gpu-lexer 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -9,12 +9,12 @@ type SyntaxClassName =
9
9
  | "constant"
10
10
  | "operator";
11
11
 
12
- interface HighlightSpan {
12
+ interface SyntaxSpan {
13
13
  type: SyntaxClassName;
14
14
  start: number;
15
15
  end: number;
16
16
  }
17
17
 
18
- export declare function highlight(
18
+ export declare function parse(
19
19
  code: string,
20
- ): Promise<HighlightSpan[]>;
20
+ ): Promise<SyntaxSpan[]>;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var _=[23968,.0540662466,24e3,.0057985403,24384,.0556010777,24768,.065214726,25152,.0312690831,25536,.030763232,25920,.0194139154,26568,.0420147142,26952,.0418414185,27336,.0473219579,27720,.037357165,28104,.041405755,28488,.01876311533,28872,.045973659,29256,.0266342413,29640,.0296973836,35400,.0825740214,35472,.0078468741,35856,.066773991,35865,.0066587973,36889,.087513347,36905,.0380333854,37065,.0554284473,37129,.027291421,38153,.0284734772,38185,.0038603861,39209,.066199641,39241,.111921195,41289,.044858679,41321,.017279027],DA="ABCDBCFIACDDECCBABACBAABEACBECFFCADCEEECBIHFBCBCFBHAEHFEABBCACDECACABAKFIEOIFAIFGGACBACFDDKFHCABDEAACEDCDAHBDAACEAFEBCAGDGDCEDCICACCAAAABGBAAACAGDBBDDACEADCBBAGAFFABAACAABAGECACBCEBCAAIIEDAABEGBBAACCCFABDCGCCDBECCAAHEIBCAFAAIMDBCACEHEBFBGAADBCBKDCJEMHIGDBDEQJAEDDEHGABDGCBCDAEIHCHGSDGKBAHYOjSGGBGFEdRRCLCaHABUdAZHQAUHJHEAVMiCRQNUXhmAFEWVcaHRGcPdLaNfCKJAUEFDSDFPGKCBAkFPMeIAWkSGkHICRERCACCBDCAEDADAABBBCACDCADCCACEDBBBCBCDEECECABACCBEAABEDACCABAEABEABDCABCEBDEBDBDCEACBEAACAAEACEDCABBCADCBCAECCADBCCECCECBBAACBBEDCCDDBAEEBEBCBAAAEDAAEABBCEABDBAEBCBEBAACBEACCCCADDABBDBEDCAEAABABDBDCBDEEDBACDBAEACCBACCDCECACBBDBBEBCBBAACBCCCCEABADEECACBACCDBADAABCEDBBDCEDBDABBCBDAADAAEBBECIFBEECOCBBFEAEHDBCHCCHHFHHCCAGABAEBCECIHIEMIDEEDEAEDACABCDIDFCBDACCABABCBCADCDAABEAACEDEDBBBACCBEEBEEBACCEBAACDCBCADDCCCCEDABCAAHIABEDMOEEKICBCEEMBJCFJKRVEMLBGCBBBACACBBDAAEDBECAACBEEAABDAAAECCEDEBEEACCACBBBACAAAACEBAEBBBCDEBACECCBADAACABCABEEABCCABDCECCABCDEEECCCDEBCCCADDCBCBDAACBDBEEEEBAEACDCAACBBCDDADAEABDEAEEABECABDDECAAABACDEDEADADBBBDCADEAAACBDDBCBBBBADABBABCABBCAECCCDCAAEBCCACCBCEACABDCBDCCBDACBDBECABBADCCBBCAAAEAAAEBBAAEDDECBECBCEACAEBBCEDBBDCCCDBBCECDACADCCACBBADAAACEAECCDCABAECCBCAADCAECABECADBCCDCBEBDBDCACCEACCCEADCCDBEBEAEBCAEEDDCECCDAAEAACCEBCBCBEBBCCBBABCDIIKWEDARFaWQKFQOPNFJJPCHSFBRHGENEAABACCBCEBEECCDAEADBABABDBBDBABAACDAEDAADBDACCBCEBEBBCCDBDEDADAACEBBCECABBACBBCBAABBAEBEEDBACBACCACBCBDEDEEADCDEACBCBEDBCEBCDBCAAHAAEIACIFHCGDBADFEEHDEBDBCCABGBDDEOEAEGLHCAGHMADEGEFCCGBIFGJHKQKAMGIFGVKCEDEEHBIKEJBFHFACCCCDEBLACFTDAHEDGBAIJFJHCDLCDONEGdADACIBJAGBGFJDBIFCEEBCCAGAECJBMDIOHAHDIABFMAGECFBHCQBDJCCCMGCEDDKBDODBDFJLMABAFCCEHDAEHAAECDGOUAAEcMQDKAGLKROBIDBEDHCBBFDBFHDBAEAECYAMJCRRFUFLQDDGWGIBKSBTfDILECIQJNFBEAFGGNEGCJADARBFBAHQMACBUQDYPTBIDHECIKQRRGCAEGACOBBCCIBGDMCBUAAAPEQBGMHBRDNFBHROHABHeBKMFBCEeHKLDPCGDBFPIHDEFEAFNGPBECDAGEHFCBABBMSAIGHBHDGAFACGIFBEDEKAJLCLgAABGDEIDGAAACKAJCCJBEYKEMKJFDIAHFADCKBACACDBFEECACACFCECAIAAFAFMJIHEMEbSWCJLnLABJIYNRVITBLBTBXFPEAFCQQVCUKNJbFCGJGIIZDIADCDHMTDPKCJGGCZEMQLPXIUEJCAAVNQIDIABCHHNABJKAONCMSBHjAUBCBEHlFGGAKLDGRLRSETBOITAOOFLfMBDBGQIfEMGEDEFQdCZSAbQcKTASYFJjHQINLIMNFAAGMNEMNLTGKPBAADDMIBNZHMKDPSBZdOKEHPIKfPZWJHKOMDDIoCHdFGOBAIGRDCMCKLEODPNFMJCAGPHEQNfXICFKDSOTLECFOPMGFEbGILIOUJBMeCTdKBAAIUcXGMCGQTKMLFXFDAKCMKDKFEFEUEAGEADDFMCAKDHDQCDALFFBAOHBDDCJFBCGDDGEEBFDHDFCDGCAHGKCAFHAHKPCGDBBABEGHBAAIABBBNIBEQADBDAQBBDBAGAIFLCBCEkBGWAAAJGDJIHLIDCGGKFABAHDIAIAABMBIECABDICEGHBKNAKFVAAECJDAAEJBBBEAMCBHBBAJDHCJJMFDDBOEGGFHCDJHICBAGMXEREHGBCHLJMLAIHIJMFMICDHHGDGFCNFBGGCIBZVCHGDOQBEHGJCQKEEGJASEXUGDDIDDEDFHFKBKCJAAICECAKJFEDEIDQBIAGJHCBLBIGHKCFCGSHIEPENIIFOIVIKAAANHIHFAFEBGJTEIBBMDDMHCBDEBFGAILKPFLHHDBEEKAXOEPJDJMOFCAJAONMPEOFdRPDFLNABGBNMIBHCDOBQKFHAIXTDCMDLCBBDJLKAJBJCEGFVMFWENDDECtAAbBeABILDBAGESRZAEHHBEOODBERIBJFEBOGFLECBIHCVSINYJBCDKNgIMANMkLQFBFJFJITNKADBOCHiHAZIGNBBJDRSGPIQIMGCHDCERHQHMDJNDKIKGLGCBIHBMVDILCCDGAFDNCEGOGTGFCLCAADHBAAIOPCNANEIFEKAJLKDCHLKBKCLHELBLFACNGGGCBWBREKHFBCDKPFQAGOCLKDBLAHEJJJMHBMRCKDDCJEAOBFMCGFDGAGFBDFGDZQIIKKYHWLLGQMJYCWQKMGFSWDZHSBUKbXVDBENAKHHBFICGARDGCLYKKKARMHDEHMIEAOHICNPHECJCFDYIAFMOIGHACFEILOEGFAFGGFFCFCDMLDOAOHESEMHFIFEDHFBEAMHQCACDDEBaEHEICFEBACDDGFGELGDKCMAGLJREKAHFFAEGHDFOQNDXHRJMVDTNRMFTHDFBJGCHBHDBQFGRHFDEFFACBIILDECMjQOFFQNEJDaJTNFQGJKLEbIAZLMAGFBCNDGbFILeQQLBFGVQCEGFQNAQbGIlBPZGIDnqGFWMXIQMIPDBeDSfElUJbAUFLQGUQNIDKPTUROIFTBWMDRAVNJUIRJEnaXCBDFHFBGnDfCEADOCEAEHBCAAUCFBDEGGRZKVICKKFMQMPxKEESWEFJCDBNWWMlJSCKMAHBJDYJDGiPCQEFCCQFKFKFMIEIWEHCDEHHBJBCKEEIBJHEKGAKBKBPBEDBFJOKHaGAOBFEABCJEPBEEHFLNJANDBXIUFJCCAEBCAHDEIBBBGFECAGABEECCIAEBEGNBGDBGJAACABDAGCLFAHCFGELRDCCBEACFEBBABAECCFAEEBCAEEHEIAADECDHGCACACIGDJAGGDKCBDDFAIHBECCCBAHFADDCGBDBBHAEGDIBAFCCBECAAFECGBCNECCBFEGGALBEQFCIFDCBCEAABCKDGDCJAACDGDHMDHGEIHEBEFKCAAIKIACHGICAGDFAEFDIAFCAGDFAEGDANKGKEINDDDDAIFEAACBABJFEKBAAACBCCBCBACIGGECAMCLLGMCACKMADDNAJJDAAELDBCHFAHMJOWTEREJIGIHKIKBGKDJDKHUIBMAAAAMNEBDCECCECDDCGHDEEHCACEFAABBDGABHFKFJADEABFGEGBGDIBGEBGICAKHFBAHHDSLFLFDCECEDGICDEBEHKAEGFGAOCEECICBFCKDBHICDDFRFEDADIDADICFAKCADEAFEBDABABGCKADAKFADEAEAEBBAGKADGEGMYAAGLGJMSIiLWVHELKNEHWDOQIBAAFCCIIACFDCGHACFCBCCAGBDBABCBFDHDBEBCAEAADCBBBBDICFBCECBBBFEGADBEAACCDAECBBFDBBCBJHDEGKCBCEGEIBFBHGHLKFEEAFAGDIALFCGADMFEGBIABIJFFBAABCEGLDEIPBBCFGJAGHBBAGDEFCAAJFDGGEADACGBBAFCFABIAFCICGHEMLDQHDDZMQJKAIEaAUFAMMFKDABKIFEOCJCUDKAEHHECGFCQPBCFHNFEAJINOEWAHJBBWTKSPEEOWEIOERACGCGGHAAAEdPDGEHIJHJOWEFACEJAVFQMBALiEOFPFABPBKBWJBLFDACEOAHKIFKFAABJIGKAEMKECGMEBDBJNDNJRDHDXADJNTOCKABDRGAKDJFEBpEBJCEGHDKCEDGFCESFgDGIAAFaPCIACBDDDEDBBCCCCBCBABBBCDAABDCAEDDCBABACAAEDDDEBCCABEABCBAACCCBBCCEBACEAEBCCCCDBECADECEAAACCBECCBDCBCBCCBEBBBBCBACBEAECDEEACBAAAABEDACEDECABECCCCBEBDAACADDCBACBCAEBCDACCBCACCAADACCCDCAADBABEBCEAEEACCECDADAAEAEEDDBAAACBEAAEAADAEEDAACACAAEABCBDADBDABBCDEBBCCDACABAADAECCDACDECDAACBDDDEBAACCBCBBAABEBBEABCEDDCBDDBACDBBBCBBBACKACBKGIBBAEDCCHBAAHGGCHARDDBFDCAABADABMBEAOEAAIBAAADABCDDDMDDBACBAAACCAAABDEABEAEBBACCCDBBBCADCAABDCAADCDACCEBCBCCADCBCDCBCCCDCEBAABCDEEBAACACDECABDDCBACDAAADAABABCACACDEEDEECCCADCACECCDCACBCDBEAEBCABACACACBCCBCCCDBADEBDACCEBDCDEBDDCEECCABEBBBAECECAAECADDEBECECCCCCCBABBCCBDBCCBDECBDBCDDABCEADDAEBECAEDCCCBCBAABCCEEADCCEDCACACCCAAACEABAABBCCEECACBAACBEABCCAECCABACBDBBBAEAEBEABDBACBCBCBBCECDCCCBBCCBBCCAAADCCABBAAAACEEEECBBADADCBEACBACACCAEBABACABEBCABACDBBDEEBDCBBCEECDABAEBCABAAABBEBBBABCBACCBAADAABCCADECACCCCCBDDCBBCECEEAAECBCACADCCBBBEEACCCDAEADBCBACBCCCBCADBADABDCAEBECAIMEWGFAPLYQOKFOIRPDLLTBHSJHJLKALCADDDDABBABBBBAEDDBCABCBDDCECDBADEDADACDBCDAABCBBDBCDEBDAEBBDECBCCABCCABEABACEEEAEEBADEDCAAEEDCBADCBABBBCCEDACBEBCDACCCADDBBDCCDAEBECCKAEIHFCIBAABFEIBDDAFEADBDCDFDKMGCKGHABAEAGEAGAIAGKKBKBIDDISIAQIIJIROCCBBGFEIGGJCAFFABIGCAIDPAAHLFFHGJCHEEFBJDEBHCHOJGCdDDACQBJACBIBDLACDAIBCDBDKCCCPDKBIQDAFBKAHFKAEGBHDBASJCFCGCOGCEHFIBDOFFFAFJIDBDFGBCFDADHECBBDIOUABBaMYHMGELIVMAECAEBHIBEFFDFDBDFEBCAYEIHEPTJQDNQAFCWGKCGQHVfFIJEDCQHLDFAAHGCPGICJBDDPBFDEFUQDDCUUFYPVDODFGCKKOTNGCGAIBAOBDCCMGKJICDUABCNCOFBQNERAFDDDPIBBAFgDIKHEDGcJKHBNCMADDPKHBEACBBHGLFIDEFACFFDAAFDMOBIGHCFDGIFEAGGBCKCCOBNLALcEGCCFEICACCGEMDHDBNECcKEOKJCBCDBBEBCKDCMCDAAACGDBDBBFEBBAECBFDHMIGLAIGJFADDRLBEABFHQKEQEAAbEIBEEGIIFAJDAABBFBKBHFACIACDIECJIMKCCECMCFJFCEEEHCEADDCRGAIIOACBGGCBGCCIDEHKSGOAHCJHECJBCGDLBODPABECBEEHRLBCBFIDGGJAHAFSGFBKCMMFFFQDBBOECFOEEECCHFNFHGHDCEABCMENDKEBHABCAJAAGBIEBJDARCFBMHHMEDWRALBDFJODFDFBECIGRNBBFBFHQEBGBCIPQUIBEDDHHHHABCFGLFJMVJDGADAEFGCVKBAKXFJDBCWFGFeGXBZAHKODeZGGGGHPWMKACBABODQKDGJBHIUEBEBCJDDGBBIADDOADANHCFGIBDADEDACEGACGACAFJFBDEBKFADEIIAHFEFMLBBHCCCACKFCGAEAEABPOHCQBFEFFUDAHFCCBGFNFDAEkBAWBBAFMBFCFNKBEKMEJCDDDCEAIBCAOCGEABAFMCEGHCKHAOAZFAGCHFCFCJACBGBKADFAADNFHAJHIDBFEQEBGDHBBJNEABBCMXGNIGaJODGBAJODIIGOEAMEHUAIFFQnhIIINDYNIXHDFKqEQGQIGMMKXKfQBIHXVaGBIEAQCBEJMBaHOUDSIHHHQAQMIKGPDSEGLEEJHPJCIFFHDYDOELFOXFUfGLQKUBBJJICMJDBFKHCCAKFOOCCKHLBHMKDMLFECPCOHKBIHDVDWCEQPDNEYPaGbCHBWDJHJFEBGOECLQBADKABWIJNKLLLBALKOIHQQNSORNMDJSEaMOKXNGLJMRSJRIGRHDIcMENKJJDcGGVLAQGDHTNbALAAELIWjDTJLAWOhcgKJEVJTPUVKJYICLDkbbEBHMHPOJMDNJPQHRIATEMDCPAOCGLKAHACHBALFZeJOKIGIMHKNAOIVQPKACPKHFBCKKFRCVQVMJKNJDQQASFJTLKCIHIOAGHAUCAAFGHKCIICJOFFAIGBUDINODFMLEDDWuKOURHEIHLcAHDCHDEKIDLTDJHOCEKAQDFYRPQCgETMYMDYOGOFEFOeGEFSYHaOTRHRTTUfLQBgBDbVGIAjMTISFfAcURDLAILTXYEBYNPAIQBUPWMFIKLLUNNSDKDIUoCJFdJBUEDIIWFAEGSFYGPJSAFAJEKJODGBBLWDLOKIAMFEJQOBiQFOBJXMNAOAQDFKGROSZCLOGIFAVCBIGPFIHVJDERJkjIJPVGNBDFIIEJKYFJINSPcLFWHGFLPKEWBKKXAUGODGKLDcIEFMOEJHWQMILGJYCLYWGFAATKQKFKEEAGBCMCBJDMHDJDCCdOROMIONKIOATKADACDNGWHPGNDIPGNBOaFIAVWiPENGVCHDAiBAHCbEGdWBjDJBAJUIKKGWOPGBOTPQPMKLTFWMBXCdPDYETLKhabAFDHHFAIlFfEEBCEDIACBGCDBYAJHFCIGRfKVICMKHIWKNrKCCYSGAFCJHJaWInNOGKMAJADDeJBBiVKOEBDGQAODMFGGECQINLDMAJOBACHANFCOADEBQRCEAfJEVKGJMEDUEBOCBEBABDAPECGLHRRFCJAEbGQMBHHEJBQFBEAELAKDDBGEAEJGDNPIBEDFFIHDCECLPDAIDQBEEKDBBACGABMKAJCCCCCDLDCAAFJIFCACIMFHEFCDCBFICCFCADCACFAAAADBACBABAABAEAIDDGBAABCACBFBACAFADGBAABACADDCDCABGCBCDCIADDGABFFCGCMGBBFMJCCKCHCOQMGFMGLCEAIAAHBHBBDCEFCCCCFGHGETCGDJFBAFGCBAEEBAFADCGMDBAEBBBEACDGHADKITHHOBEVUCFGGEAAAEIAEOCKBTEDCBFDDCGOBIFJKKTLHEQBNNMMLUACNVGwFDNDKHTCADBBEHJNAIHMIGECEGBDKCDAAFECCFRAFBEIHGJDFACBBECFCCDMCHPBBEADFABEFDAJDDFBCHBCFGBBBFBEDFBGDLCBDCBABAECBBEIBEEACBCBBEACDBLBDDBNBBECBDCBEFGBDEAEFFFCAGBGMDGCADDFFCBGCDCCDCAIAGCDEAAAHEACAXACEACEVOAGAJJFGKKBWQGKKGEGNDKNCEDNJXCEBDCBCAGBCBAADABIAFBAADAICDIAEHBDDDBDBBABCDDCDABIBDABCCAGCHCAEABFCBFEABEBHBFDDCAKCACAADFCECDGCADOKHCEAAEMDTCDCKLFfGCOIIBKKDJJHPBKIFDGCAADAEACEAELCIUIBSDIIXECJDAAFCDEADCHHGDBGGCMBFEDQQLHHEGIEIICFBMOEECBDFHDAEAIBHCDCFDCCPGADDANDCDACGECFCHCBCGGACGDCIFAIHEBGBDHABTFWHGCNcNaNFOLKBHCFMGHOJDMWPBCLBDMUGHEAIFFXLKOAENiBOFNAFDVBIDSFBLFABEGUBFQEDCCCCAJMGECIMKBDCKDAJAFJDRJNBLCRDJLVNOBIBFJPMDKBFDIBrCEFDEMHHIAAFCCAESAiAAICCAaNBGBBDDAACCCCAECBBAECDAECEBDBAACAACQPLEEGDABSAGKIFEAKSBKGOIPGAJGMGAMGEFKJHOPIJGNFBCOABCEDJGCDFBCEHBGFDNFSPHHERCACHAEDBGBAICEQDILEFXACFAHBFJBDIDDMAACDAHBAEDXIDQDCFHFEABAFFEOQBAGKALGJANAAEGECAGMGAKKIDEGLJCGBBFGCMDLKDAFDECNRDDAHGKBFBBCOCENDHBGNMEGDEFDGBHHFFMMBGTEFCFBBBBEMAALCKDDEKBEFCEGGKZNFAADACEAMBCFBHHBASEGLCIJMCFOHKCGAOFHQGGADJGBJGENBAEQIUEGIAHPKBJEPCAMHCEASBCCOFJBFAKMLLAFAECGIEJEMFBGSVCBAEOLGJKMGJHIAARFBIFDGJIFKEAGGADEHMGJDGFGSBCRLSJAKEDGJHWACVNBEMPEDBFAAJHNCCEcCBADGNKECCHGLPPGGCPDDMAPBIBKDAEGHMBBQEHIFIGEDLBJIQFBGEEEBCBBMHAFHJFCACANAKDLMFCGCHPIDICHCJTAAFDEBGFDGIJDARKGGIICBALEBEHKUKCAONKCKUGCCCIKGMFLDECKQDBFDACACHIEEIBABJIDGUDSDNJDIEFJKIPCJDGHKMALAGHQGHPOOHILBFEEDHGEDLFFMIAJJFGBDJFDEDFJCNHBEEACRJPAHJOIGHEFFNHMEDGGGHFDBDEAAAHDFBGGEGOHNCCBHEHCJQNDDCRCPSFLIAUEGLLDCHAKJAEIEGFEHKLUIBFCMBKCIJBHAMGHNAEEEABAGBIFHHADHFJJMPDBCECIAEEMFBIFNHECQGAELEGCBBFMECCMHLDUCICJEGIJENGAAIENFYKCBBCBGQEFAFIKFDDBFDCEGFBLALMADABBEFLEGDBFKNHDBFDDBCFIDAIFEXDHAGBKEAMCICAEMJAACJBBIDCBFECAEAXDBCEeEBMELIJHAEQCMJCHDEADIEIGGAFLHAEMDCCKEDGEEESFBFDGCAJLHCEIDGBUAMIEICHEHIAAADLHCAAIDGJGBJEGGLJEHSXGGFAEGGIDJEmKUCIKLADFCHACaDCQFKFKROGGAAGEBDDEMIIBHKFQAAIDGDBJCGGEGICBJJGHBDVBATGOJDIMHHGDKGBDIBCKGAEJMDOADGNACIAUDAANCCCEFHDEHMGHEEWCCAFGJFUEACDEDFEEDACHTKABDCJJLCBDJKFBICDBZEHGJBBBDABHCFBBGMEIABBBCCGKBIIKCJIBEBFECFEDFGDJCCDABBJBBGAIBJOGEACAGGNEEECCABCUOPJHLQFFFKAFQCKDGBDGRBQABBORIICMCBMBNIBAABEIIBMBBDDFHGBMIIKKHBRGFFCNBPcFMEDAHDDEIECJHAIELJGECKKEBIGIAEBBEGOCAJBHABFCBTACCKGLIDFECDAAKDIEGJAKSVDFCDBSHECACDAPMNJBODCJBBIFMAAAIMFGGCGENABFMMCBBIAPAFRPFDCFCGDWFHTHEHPGNCJBAGGAFFAKDICDAEQHBAOBKADJEAFFFSFFMAFIHDBRGIDEAGJCPDDHBDGGADAKGNAEGBEHCBEMACAMBHAFQAEECFMMMGFBDCJPMRADIFKIBSCIGAWGDDIJJAEIADBAMCFHIAAKFBGEAEDEVGFXBIBHLLFDBKBJACFBEDGEMHAIBEDELNHLIKCMENEAEGEBNAJCBBAFCHJBBDBGFFOHWMFIGdLUIOEELMRCAHAAEDEEBIAHKASFEEIFELFCBGKALIFCHJECSEAFPSGAHJIBIAEFGBFAGDCHBFVFAJIDCFCYNURBBFOJHKBEL9WDUDFKKFBDTAILYCAKKAGGTCEAGAFCCDEGAAHNOIBFEEEFHIAKGCCKCJNHPAECMXaHAJBBIFVGBHGAFHCJADBDBJEFFKCEBAKDFFHEFAAKABIFAHFJFKIBPDDLBMGLGDGHIFDFBKDICFCCMCVCFHNAINKAECBADIYIBFHFDAAGABOFHGFDJGDDRBCDBGBDKHDJBEJEEGLFOEDLDLLFCBFOMAEBHJJBECSQEAJVCGDNEAUKDONFLHNAFCTJJEBICBODGHHKABRGBOEIKKEFKHLEIHOBEeHGGEPEBCECJFECADAFBLCIDKIDIAGGGEABEDGICACABKDHJBICLHFSBABBLDRFBEAICTMQKECLABAGDCMAJBCBBBFKJSDFMEAFEQSFECBAANJLGBGEICFEFQNOEPDBDIQDMLLAGAAMCLFBMGGKHFHBCHGABFABCHJFGHGHIEIEAFFCECEGQBLMFHHLGGJKENGIDLEAEBKQAHJLDAMIIAHCJEBCEAEABBBIKFGEBDBNNSCJIIFBLBACBIMDOHHDCGANMODHHNDDGBBGGDDIFFXAEJCKABHFHAAFFBBCDCDBFIBFEFDFEIMBAILJFICBKGKFCRGFINFMPJNNIMACCEMBIFJAHBGMIIAWAKKSMJCSREDLDEADOFGEEEABFBGCCQDMAHDIBNTCKABGQDCBCTHALCBEBFCBDBBAHCYCQAFJCEBLFDBHCEDQENDUIAEGLAHFUBGAEDJCBBIJDKHFADLLIMDGEEFEACACGIFABPNFYLEERBIFFCASDGCGCCKEGADKGFECDIJGDVAIAEIJRDGCDCQHEBFDIBFEEDGALCDOILABJHMCQBJIADCEJLDBDCBFARCDBILHRBALQDAANFCGHKJFCAMJHBLMHHSDGMDMCHABKFGDKIGADBHYCAMFDFEGACASKAGLDHBAHAGMDJIDLFPPAAHGBCJBDbTNNBEKNAIBGABLHGEFAKAMAKLICFBAAEEOFJHKAGMDBCCQAAXOBBDRHIBKJCLIDPFEHAGGBLCEDAEJAGAEDFCEBKODAICQJFYABCDQHQRGFHMDFFGGLIIFDDCKAAJKDPMFJABSDGIMKGFLIDBDMACHEIKEPDHHNFHOFBBHBGKUHBGBECNHBEAMBASCACCISLNINAHGCMTEPGGBBKLAFNGNEAIBEQDLCXCEADFFKDJPLHMDEBBIBIBMFALANDBQQCCSOMEFIHTCFJABAHAHKADKMBDFCGJFBEAILMMFDNKGCCGEIBEJAJEOEGDKGNCBMLTMJAEDSEFHAKCBFCBQBJNISCHAEALODJAOCHDFCIPBCFCGGJHAHICKFDUHDAIAKVFCDECLCBLBKDIGODAPDIBMDDCOHBDGBBMIKGGKACAGABAFCPCLAGCICJAFAIKKGFCCGHPCBEGFCFEOBBCqBECLDEIFIBCMGFAGAICJGCLDIAIIBBIDPADEFACADGHKIDFEBFNKGXCBDMALJUcSWEIHPKIBLICYLFNOCARCCKNUFNIBAFLNEGGEACQFCEMGBFPACFGJIKGHMGKFFCPBAEACTDEEEGJJGDFOEAHJMLFCEJBBCDRHDLGULHBAECBOKDEFBEHHBBEIMEGAGAKKABAMBDMHPGCCGVKFJEHEHMPDBEIAMDICEDKBJDCDKICCFTGFFABKBHGGLDCFLRENRFCHEKHBAEHGBHEIBFLDRADAAECIDFBQFCCCFIAEGEDDGDHAABFQMCNDJBKHKEGAEDCGGUCCKCAKENAIDKCBJGAHOEKCFGDFLAFEDGCKBDFMCASBADCBFJADADEBEHIQCIDNGEOBBBCBMAMAAGBEKBFBACGFLGCIFBFBGAKAJKBCITRAGHPQFFCCBGKFKDBACBOIEQINBFOCKDTCCDIFKGABBJMLFBQAGFGIRGAGDQFFJFEMDEEEASGAFCEVPLCCQFTKHHBDQTDFBMQKMJRJEFDJIHGADEEGAMAEBEDFBCGJIEALLAFEGICHCGCGIAEEBMBKQFJEIQGDBACEMRLCWILFBEKIDHPaDJDJGCBBNMCDBINDADHTFAIOIGAGTdCQJGNTKLLGLGAPLRBCLTGABHDHDDKJGAMGEHNGFBKEIQFMCFFCMEGGJDEILDAGCEJACGCFHIDHDAAABJAGEIGLCRGIFBIALHIAHFBAJBICEKFHNDIPJBJCONBHBGOBDKAIFEFHCANBLOGECMIMEBAHGGJGMDBEGRAeDNAAAADFMFAMHCHQBKACBTGFGAFBHEBBICPCLGIEBDBGIBICFCCUJLGGIDGASDEKOFGDGSBGEIINCCHGKGBMGAFONFQTMFEJJDCMBDCECFCDBBBEELCEHFPDQLAHCNCACFGCHCIBAMEKQBGJGBNCGDADADHDFIBFKBAACBDBCEBRMAQDDDHHEAEEFFAQYBBGKDJBNCJAAGKGAIKOIDKGGDAELJGEBBBGDKHHGADBDIBJPHDBJBIAHCBAMAAHAHACDEECBEDDICFDAHMKAETCHEBBDCICMCAJBOFBDIECFDIGCGVHBACFACCIIDACHBDHBMCKNDMJOCBMFIECEGDCOCCADJGBHEGLABGSIUGEADFNIDJELIAOBBIAUDAAQJHDFBEIJDBAAKKIKGFCKNEEUREBFEMJKJQKENHIAGNDFMDDENCLMIBEMFHBLOCNBGDCOAGPPSLAKEJIFFQCCTLACMNDDBJCEJJHICAUCIAHERGEDKHILJRAKEHBCKGFHKBECCEEJGBEOGHOFBEBDFCFKIFAGAEBDDBAIHBJFLDACAFLCEALKHCEBDTCBEEFKHTIEHAGAGFDCGNJCHGIIEGEABLICIBIWICAQLIGKSGAAAIQKEHTFGAKMHDDHBIBEFKOAIDDALGACSBMHHFFIAFLMGJAHFGFGICHHKJMIBPIMJGJFDBGFFECFNFAKGFJJFEFFNADAEHJIHLDKFACNFRGFDKAGBCDDJDGGFCIGLHDAFMCBHJABAGKEMODFCABHKHAHSJFBARBLMDNGBUCEJJDGHAQJCIGECDIJENWEBABGBOIIPFCBQGFTEGCGDICCCGJDHBHFJFFIPAACHCKDGEMFBODJJGEWGDCHEDECALIEAAQHRCWEKEBAGEFGPCEHCAJDWEGBHABEUIFGDIIDHBDHDAECDENANKBFCCEEBNEIBBAGNHCFBAJBFAEDCKDCTDLBIBKGDKAGACBELCAEHDHMFADLGEAGAXFBDIaAGMGJCFNEBKEOHCJBICFKCKIEAJHBCAKDGAGEHEGDISFFABKEFLFJBDCDGCQLCMDIEFAFKBKBJPHDADEACJGHRCIKJJAHYdKIBACEGKFJCkMeGMEJAAHEDAAaBEQFGFIPOAACEKIBHBEKEKBBIDKBDQBKHAHAGGIIAEAHPIJCPTCDPAQLDBGBDEDICABGABMCFCBKDMGACJEECHUDAALBFKMDFJKFOCRCKQDBBDBLDWIDIBEHDCCBCGDTAFBFELLNABDDIHBMDBDRADKHDCABDABDNAHAIDGCFAACBKICIKGEHKBICJGAFEBBGDJBILHFEHBDKGMBLMMGEKCICLEGEDCBBEQMLDJHMBDBMDFMAIFGDAMPCIBCBITCEAKEAOBLIFAEDIIMBMABLHDNIDOKKMSHBRMFHCRAPYDQGJIJAFBICALDCMELJECCIKCFIGADACFGIMBCFCFCADEANEECKGJKFDAGDABIDIEGHAGYXHFCBDKJABCGFBPELHDMABHBBIBMBEDMKDGEAEGLCBIKIECDKGPDFNPDJEBAAHODAXHCAHIJEFCCEGCFHDKDEEFBEQFAFMBIBDJKECFHSFBGABIJDBNAIJGBCLCVFFFBBICDJDICPCEEAEHABIMCEAEBJBFQDBBBEOMQMHDAEHFOPCDGDOGESBGKCQEDDEJDJCBCAAHIGFJIBDIJEICCEBERGHXFEFLLDJDCKDRBGLDCAGGKJAIDACCJLLJEGAGENCDGIBCRIJCDDBJDJJEDFAAADODWIHKDXJOGKBCJONEAJACGCAIDEEFOASDEKEJGTJCAAKEJGBDFJMAQGCHPUADFLIDOGCFGADBIDAFEHPPBFEAADCUJUJHABMPHOGKH5SHWBBEGDBEPKEHOKGIGBCGLBEEOCBEEAFGBCNROIEHCGKHFQBQGBDEILLHHGCEKXYJBLBAEHTIFHEEFFMHCJBCAFBJHQIGHHIJBAJIFAGKBHOFAHJPLIKHNACLFQCLIDCPBBFLGMCGCFCCGCRHFFDDKJGBGBBCBBOECBBDFAACAAQFHIHDDMDBRDCHDKBFGBBNBAJAAELFKCDHFNLFBELOIDAAPRJFCKSMCBLPBMGJEBOMLMLJLHNDHCTHDEBMGDKJAHJKAARICQIGMKADKFFAIHOFAiHAGGNCFMGBFFCCCDGJDNCIAMADCEGCCKCBEFGKBEFABKFJDCGDNFAQDACALBPHACAEBLKOGADDCBBGDDKCHBCBBCBMJODDMAEAEIUBGBBFALBHCBGGCAECFQJKGPHDDEIJIHDAEBHOEJHBOGGMDFHBDHIDBDBBBLLACJBJCACEDJDCIGEKOFDMJBFJGENKMNGEJJIECDGMCFFHBCQKDCHBJADCAAAAABBGOLIIEAAJLQCJKKACNFBAAGKBOHHFAKEDMEBHHNCDCBJCMFHCDDNEBDEMBAABAEAFDNGAAGHHBEDBKJFHIKGDAOLAFACBOEEHCHQHEJHQNHHNIKCBGKKAEBFAFEKMIIAUGIMOMNEULEFJAECBKFMGBEBACCACGQCIEHDKCFNEIEAKODEDBNDEPAAGHDEBDDCBJBUIUCFDEGAJDAAJGIAKCHFUGAKGHCHDSHBDGFHCFAIJFGBHCDDHIMBEAEDACEDBAMDABNPJcHEGXLQDDKCSFKCGGCIGCDDMGFECJIJGARCKCAGJRBEABCMHABBFIDHCCDKAHCDIOJCEHJMEQCDGFABINRAIHGEFEPEDFGNFTBAFSBAAPFGINMHHIBMLLBLILEYBEOJGEDEFMDECEIIDADFUCCGAHFCMBADQKDEHFAADBACOAFMBNJPRIBDGMCLCAfTLHDEKPCGBEDEPLCGHBMBOFEJEBFIECAGICHDGCGGABAFICDZOFFCJLEAQFCJGCNBGFBAGDDBBADCFBICEDCEIDIMAAKCIHBWDDBAQFONGDBEDLLECNIGLABCIACFKCLKHPBDSHCKMICBHIHADODGFBGIGNDJFLLJMDLFFBEKSFDMCABNLACDMEFMGAACEQLLALADEMIRIPKMAEMJDFRGNEGIDASDNIZBCBCFBGHHHJHCCGBEIFGCIHBHDFBCQKIAWKICDOJPCDJADBBALEDBMIBDFGBDADEDEJOMEBTKEGCKAMDBHCJIOECBQGJABOPPQPBABQGDFGKEACAASBLPMQCHCBDNOHJEKCBFJDMPDABAKILJAHIGGCDOLBACGOdHBCAIJGCJAODKGGAANFEFKDECOLCDABCIIMKCKBGFDDHGFEJCFFGEIEHDDDMIMBAEEKFNBAAIDAFMQFAAqEMCVAGEFKBAICDBCDGAJEGRNMEICFBGFRCGEBBCGCGLKMAJCHHRIIXEBBKCNFQYMYEGFLIKBNGBQHNNKBANACKNYJLIDCBFJDEIAEGGFGAIBDDTBADBHIKGDICIAFAHFEEDCTAAGAGHBKLESEGJHIJHBCHBBEAPDBNESLNDADABMECGBBBLFACCEIBKBIAEKCAAECDMHLIBGETSDJEFCJMPLDKMIKFEECEKLHCCJICCALbGHBIBMDJAKJFADJPCJLDCFBMHGBIJCCCIGHFHBNEEGAABGHDDEBACGAGAAACFBCJFAAABIOBTBFAOJKCACCFBKAQGEIGAIGRBMBGABJEJLGCEADKBFPEDCBKBABBHMBIUEECBDDFAEEFECBDKOCGBJEDMCDCCBQFMAAIDGMBBBDAABFECCBAAEIDKAPKDEEPTAGHLMFDACDEEAGFBFCAKCGKGJGFOEMFPCCFGJKGCBCJOHDDOEEDKIPEAIDMFDPDGODEBCGQIABDIPPHABIBRKFDDFONAFEEQIIJPFCFAHKFECBAECGKAIACFHBGGJKBEJNCFEEIAFAGACMBGGASCIODDCMQGHCDICITJEYEJFBKKGDDNWFFAJGECDNMCFDANFCBFLFBIUGADEPfBODEPLKFHGHIBJLHABLPICBHDHABIFIBKEEJNGFFOCKMJSBCFCIKBGJDEEJDBIDAFIEGAJDKFLFDEBADCEKOENCLMGADGELCICHBCCHBEFCIBFRNKLPAHAOFADBBCAAIACDIBBIFJCJAEBGKCIGBGFGKHBMBDCINCYDNEAEBBHGBCOFAHSDIIEDbGHAAFCHKBLKETCLKCBDAAAGEIAFAAAAAAABACDCAABCABABCABBABAAACCCACCCAACADCABCACDBCDCBAAAADBCADABABECABAACBDBACBACBAACABBBABBGABBCBAACCGAAAEBCCABCBCCACBGCABCBBAABEABEABCCAAABBAAACEAAACABACAABBBAAACADBACAEECFAGCADDCAACCAEAAECAAACABEAADDACABBEACEBBCDDACCBDAACBDCCEBCEAEBCBABCBACBAABBCCCEFACCCEACABABABAADAADAAACAAABAAACCABBBABCBACACCACABDCCBABDEEAGACAACAAAEACABBBDECCCBACCBABACCDCAACCBACAABBCABACAAACCDAACCCADBABADACCFAABAAABAAABBBBABBBABDABAABAACEACACBAAACACABCBABCBAFCABEACABACEDAAAAAABBAAABDBABCABCACDACABBABBBABAAAEBEAABECABABCCBECDACBAAGAEBACCGABBACABBBAAAAAEAACCABACBCACECAACDABCABCBACACAACABAAADBCABACCABAAADAAACGBDCAABACCABAEADEEBACAADAABCAAECABAAAABAAECBDBCCCAACFCCBABACDAECBAAACEABBAAABGEACACADABAEBBAADEBABAAAACCAGBAGBBCDBBACDAAACAABCABEBEACCADABCBABAABDBACCACADACADAEAABCAACAACCDAABAAAAAAACAAACBCEACCBAABCAFACBAAAACAAACEAACABACADDBAAADDECCAAADABCBACACDABGEBBCCCDBACCDABCABBABEFAEBACCBAGCBCBCBACBCCBADCADBBBBAABABAACBBAAABACEDAAAECABCAACAAAABAADBEFCAECCACBEAADBABCAAABCCADACAAAACCAAAABAAABAABAACBAACEACBAADBBBACADBDBBEAABECBAAADCGBABCBBEAACAACCABADCCBBBECCABCDBAAAACCCBBACBABCFAAAAAAAEBDDCBCACCCCBBBBAAABCBBBABBAADDCBCCABBBCBABCABEBAACAAAAEFCBCCAAAACADCBACCABCBCCGAGABBCBAABBAEBDCDCECABAABCBACAEBABEAABEAFBBCCEACCCBAEAGBAAAEADDDABABBEAAAEAAAEBDABDCCACABABACABCBACBACACAAACABCCACCDCAEAEADAEEBBAAACBCAABFBBBCBBABBCADDAECECAAGBBCEACAABAAAAAAEBBCACCEBCACAAADCEAAADAAAAAEACAAEAACBAACBCCACEEABABCABECAABAACCCAACAABBBAAAABBABCABBAAADBCCCAAABCADAAAAABCABAABBCACAACDAEBCAADABABAAAAACDABBBDABCACBAEACABDAADBCBBCCBAAAAAAABBBBDAAABACCAEAAAAAAAAABAABDBAACCAAAAAAAAAAACCAACAABBEDEGBBBAABCADAACCADABCCBADCACBBABCBBBCBCCBCABACCBBEACACBAECACBAABABEABABABCAAABCCCBAAAAABBAACBAAABAECBCCBAACBCBBDBACABABEAAABABAADECAACDBABBABBCACDEBAABCFABABABABBCCBAABDBEFCCCCEBCABABGNCABDBBACCBCCECBEBAEBBDCGAACEBEBAABCADBBBCAACCBEBEBECCABEAEDCCCABCCAAAAAABDAAABBAAEBACDAACBAACAAABDCACBBCCABAABBBBAABAFACCBCABABFCAACCBBAAAAEADAAACBABACBAABBDDACCABACCAABAABBBCAAAABBBAAAAAADBBCAABDBACAAABDCCABABCAFAABCDCAEBAACABBADAADBBBABEADAABCABCCAADDBBGCCACBDCACAADAAAAADCBBACCBACCCDAAACDCDECDCBECCIAAFCECCFBBCCBCAACDEABEAABAAAAAABBAACBAAAACBCAAABBBABBBBAABACCABDAAAAABBABDCEAEAAADCAAADBBBBBACCEABDABBACCCAABCCAAAAGCCAECBCAEBABABCBABCAAABAEBCDEBCBBBBCBAAABADCAAACCEAABCACAACBBCBAAABCAAACACCBCBAACCBCAAAAABAAAAECCCCCACCBABACAACABCAAAACBBBAEABACAAAABCBBCBCBACBCABAACAAACCCBBAACACEABAAAEBAACCBCABBAAABAAABCAAECBAFAAAAACADACCCABACACABBABADBEACAAAECACCAADBCBCABAAADAABACCBDCCAAACAABAAAAACAABCAAAECBBACCCCCDABCBDEAAABAABCACACBAECAAACACAAAAAACABEBBCAACBCAACABAEAADCACDBCADBACCDCACABABBACCCACACAAABABBCBCHBBABECCAEBEFCAABBBADDCCCDCABAABGAFACABAACDCCCBCABBECEBAABDAAACEFBBAAADBAABBBAAAABAADABACBCBCACADEEBCBCCABGDDEABBEDDDBBAAAACDEABADBAECAABBCBCEAACABAEBCBACCAGBCBBEABACBBEAABAAAAAABECABBACACECCCBCBACAAAABCBABBACBBAABAAAACCACACAAABAABABBABAAABAACBCCBACAAABCAAHAAABBCAABEAACACBCECDBAAACACEACBBAACBAAAAADBCBBACAAAACCBABCBACDAAAAABCAAACBECABAACAABACCAAAACCCCFAAAAADCACCCBCBACDAEABACECCACBCBBCBCBAACCBACAABAABEACAAAAABAGCABABACAAEBCACACCEBCAABBBBBBACAAAAEBBDCDACABCBECCCCACAEAACACABADAADABACABAABACABEACBAAABABACADEBAGGBAEDDCBDEDCDAABAABEABCDABCEABAAECDBADEEBBACACBAAAABBCBACBCCBBAAAECAECBCBCBCABGCEAAECAACAECFADAECACACACABCCBBAAECBEADAABCCCBECCECABCBBACBBBDCCCCACACBEBCAAABDCBCBEABCBBACACBABBABCBBAABDACBDADADBBABBCCAACAACBACDACCACAADABACACACDBCEBABAAACABEBCAABBAGAADCACACCBFAAACEAABBAACAAAAACAAACBAABAAABAABCABACABDCCACABBBCBAABCBBBABACCCAAAABCECCDBCBEABCDBCADEAAABBAAEFBBACDAEAAABACAABACCCAEBAAABBABAAABCCEEADDEAABFAAAICFDFCCDACADCABCBECBAACBACCBACCACCBDCBBABAEABBAAECCBDDBBABAACCCCEDCAGCCACEEAABECCAACBBCCACAAAACEBAADBEGAACGCCACCBBCFCCCBAAAEAAABABAACBAAEAAAACAAACBBAACADCBAAAABBAACABHCBCAACBBAAEAAABBAAAABABBFCABACAAACBCABABAAAFAAAABBACBABACBBBAACAAAAABBBCAABCAAACBAABAABAABACCACAAAABADBAAAACACAACBBCGGCABECBBBCAEBBBBABAEECCEACAAAAAACBBAACCCAACACBACCAAAACCAABBDAECACBCAABBDAAAGCGABAADAACAACABAAAAEEABEEABBBACADCBCBBFABACBDAAECAACABBADBCAEBEEAAAAACFBBDBCCCECCAABDCACACDCFCAADAAAACCCAAACBBAAAABCAABACACACAAAABBABAEAABBAADCGGAADCDGACCAEABHCAACCBDDBACGEAABBBCABCABBDAAAEEABACCAEAHCCAACBGICCADIBCBCCCEAECAAAAAACAHBAEEAAAAACCBEGBBAEBCACBBACAABCADCACBABABEACACAEAEAEECAADEACABECBABCBFABADDABBAACBGBEDEABBCBEBCEHEGECEFAAPCFBEGHABEFBEGDHEAIAGDFZEBACBGADJCAHGCMBDJBCGCCCGDBACAFHBKDDFCDEACCDFEBDCQCKDCDSHCDCKADHOBECEGCBHCDOFCDUQCGAEADAGEECEJFGEBABFGCAAECMBACDLHBDDCBLCCDNBJDHECDDIABBDBHBElAdGKCFKBEABFEBAAWBDDFEMNPIGFFSDIBDBTCBDEBHCCJaFGPnGJKBKMIJOiIGLCAGIVPKIIRFODZCDELtAfSEaAFFjCLPCMNOKPDHEpSFjFUBRhAJKMFGJjCOCGHGBAGAKDABMOAFQEEJGLHEXKCGBWHBHGCxVAAMLCGIFFKVRODXDCIIHJLPjGLKNCjbKCIGMDbWEkBAgQOFAiBKLQiICHESLNFElACoFIUHEJEFPEIHGMkFLKBTOSWOUCeSLBODPHMKFJLWCFPDNgAOTDHePKBJTQNEYPBPBQCPWKDLAHEHDMhUDFINQGAKCTEOJBFIONCSBKBcHHCCFDGNAEECHlXMTHJFBHPFSDkKHkeLlAsHRBhDPONHFXCHFIIKDDRedPBFCYVDFKJKFPKFCNRDQHVNHEIIJPTOGATWOmEBOAHEAZTIDPOEFDDDNUbDFNGTHFVNEKCEPcMTSTFJNDHSUEJGKFFUJCDdFdEEAICBGOFCbFNAGjBFBERTSMLYJOBEGFLCBDUBFMfATHPKAZIEHFIKNFEHOGGLGrCUMbMhjFGZTNGRQqSMCHFBCDJBACEREDBGBIbDGKJFDGNFCWEGGURTNvkTJTJBXOJMAXGILFJnWDXcNBBHnONEXCdFKLIjIHDWLaMEIEDIFSRIWYZRMDLKHHAkaKPEHCXGCAHPIBINJEKFAEPJHmKIBTCBDJaAWWKKDLIBLuNCBcCAHQGAeEFQDgJJEXUSBCKLaAAJiaFIBEBWIQBCWDEIEPCYINJAJPBgAVPWDYEALAIIJDAZLSANnGAUAHRzQAGKtMIZlQRHLfXMSHgTCzEDKBGOEDhkDNJXMEQQJQCIGhEFVPBDoBRPSEBGBFVGELHSVaBXEOX2HNFLNbWBHPNRBWXLIVEGbEZXCHSQXQEVFRZBbFNAAAABAABACBDBABCAAABAAACAABAACCCCABAAACAAAAAAAABACBAAAAAAAAABAAAAABACACAAABAAAAAAAACAAACAAAAAAAAAACAAAAACAAAABCBABAAAAAAAABADAAAAAAAAAAAAAAABAAAAACCAAAAAAAAAABAAAAAAAAAAABAAAACACAAAAAAAAACBBAAAAAACABABAAACAACAAABAABBACAABAAAAAAAAAAAAAAAABAAAAABAAAAAAACBBBAABBABCBACAABCBACACAAABABBBABCAAAAAAABAABBACAAAABAAAAAAABAABBCAAAAAAAAAACCCACAAAAAABBAACAAAAACAAAACACAACAAAAABACAAAAAAAAAAACAAACACCAAAABAAAABAAABCACECCBCCCACAABCAAAAAAAABCABABCBAAACABAAAACBAAAAABABACACBCACBABAABABDAAACAAACAACAAABBBABCBACBABCBABBBCCBABAAAAAAABBCAABCAAABAAACBABAACACAACCCAABAAAAABAACCABBCBAAAAACBABBACABCABBAABBAABAABAACACAAAACAABCCBAAABACABBACBBCBAAAAACBBAACBAAACACABAAAAAAACAABAEABAABAAAAABBAAABAAAAACBAACCAAAAACAAAAABCABBAABCAAAAAAABAAABAACACBBACABAACBAAAAACBCAAAADCAAACAACACAAABABABAABCAACAAAABACCCABACAAAAACAABAAACBABCAACCACBCBCBABDBEBABCCAABAACACBBAACAAAACBACBACAACCAAAAAAAAAACCCAAACAABBACACAAABAAAACABAAAAAAAAAAAAAAACAAAAAACAAACBAAACAAAAAAAAACCACCCBBAAAAABABACAACAACAAAAAACCABAABAAABCACACABABACABACBACBBACAAACCACCDBCFCABBADAAACBBAAACBACABAAAAABAAABBCAAACABBACACABACAAABAACCAABAAAAAACAAAACAAACCAAAAABBAABABAABAAAAAACAABBCBCAAAAAAAAABACBAACABAAADBAAAACCABACDBAAAAECACAACAAABAAAAAAACABAACAACAACAAAAAAAAACAAAACCABABCAAAAAAACACAAAAAABAAAAAABCAAAAAAAAAAABACCAAAAAAACAAEACAACBABEAAABAAABCAAACCBAAAACAACAAAAAACACBBBBCABBACAAAABACAABACCBABAAAAAAAAAACABAAAAAACAAAAAAAAABACAAAAAACBAAAAAAAAAAACCABAABAABAAAAAAAAAAAABABCBAABBBAACBABCAABCCAABCABAAAAAABABCCAABABAAAAAAAABCAAABAACBABBABAACBAAABAAABABBAAABAABAAAABBAABABAACCBBBCBBBDACCBABACAAAAAABCBADBCACACAAAACAEABCCAAAABBBBBBACAACABBACBAAAABCCCAABACCAAEAABABABAAAACBBBBCCABCCAAAAAACCBAABAAAABAAACAACABAAAAADBAACABCABABABBBAAAAAACCCACAAACCAABABBBBAABAAADAAAABAAACACACCAAADAAAAAABAAAAACAAAAABAACABAABBBACAACAAABCACBBBAAAAACBCACAAAABCBAACCAAAAABCAABACAACCCAABCBAAEAAABAACAABAAACAABAAAABAABAAACAAAAAADACBCAABAABAACABBABAACAABABAABBCAAAACABAAAAAAAAAAAAAAAAAACAABAAAAACAAACCAAAAAAAACCBABCACCCBAAAAABAAAAAAAAACABBBAAACABCACABBABEAAAAAACBECAAAAAAAEEAAAAACBBCAACAAAAAAAAABAABACAABAB0JJfSQSkImcCUUev-jfSHjJDAFEeOXAGmckSKQWGUkWaWWiaaYkeakUeeWYaUcqeecgaIWUcaSgQascgaUieeiWYoaiaSekucoWcAWSQiYaQgseccMmWgcSaaoccWigwUYWSSUSasiiUykagiOaIQmKYccwceYq0SSUWgWQmmgiWeacYcWySOaOcaWqmmMq-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DEANEGBEEEBAIOCJCKXCHGAEGCEFADAHHDHLABEBCAQCDBCBQLCNDLFAACCEFICAEABAHHBAAFAADEJFKCGGBDGJEGAEADEJBLEYDOCBCHDAJEBBNCANLGDJBAJIABJCCJBEIADGGAJCBCCDFCDGHLHFGIDFDDCACBDCEPFCICIHKCECOOYAISGFEKDBQGHICBENBGDBJKGKCAOEEEAODECBCBIVBBCFBFBBGDGCJAACBBOCAGEGBADECADNDBGKAKTKBRAFEAFECBDDBCGHIFBBGMEDCBFGEDHCHCIBAFDDDBHFGDCBFHCEIDABGDIAEAFEJHADHACEPHCDSHEJOIAJHAFLFCDAABBCBAPDAFFDCDJGEBJSFKBCCLDOAHJAICDGJEFFGDAGBIECBAFQHEGAHDJBJAJCJiRIKDDAGSFCEFCDFAIBMSFFEFAALCAGADAEBEMGLGANCGEDDIBBEUCGAGIFKFGIHIAFCEKCLCHGEECCRAJFDIAGEEIKHBKALCGFIMDDEAEMIFBEGNKHFAKCBFFLFFBCKABBICADIACGADAKBFDADBGABJHCEGOIJYsKIeGCEGGIJEHHADCFFKCDCHAGDFBCIGCHAAEAIDBHBGBFAEAHDGCDBBAABDCBAEDGBCCCCAFOBUCYDBGlEJCAGJCCCIMHBNHECBQFAAFAFEZCIDMFALMIPCCDBNKEDCLEGKGABIDGABJDDFEAEBEEFHAHQLQBCNCDRUBLADZhEEOBBARJADDFLBDIFCFEDFAAGDBGEDCLBJOBABLDBDDDADAEHDHABLCBECFBGBEHGTKCKHgOICHCBIAEEOFDACDNNJDQEHMDGEKDHIEDICbFHBGPBEAEGDHJCADCGKCBDDABAFBICBCCCBGJDBDHKOeFCREBECCBAFIBKEBKABCKOFGACECMCCBECDIBJEJNAHICGAGGDDEBEDBCABFECABECLBMJELAABUATHOQGMIAGEAFJCHGCAHTBMADABEMCDGFHIEADQJCFDFFACCEBDJCBAHCCGECCEKHDODAFIDDCDNBTBICA2GQLFHKABGGDEBHABJTLFJLHLGMCBAAIHCFDINIGBCIBEADDIDEJLEHBJIEAEAIEHBEBGFAKBKBBEKAaqokMLECGaBDDNDRFCAJFJGIAJCJDCLCGHBNCJNABDJLCABAAAECEGIGHEBCDGLGDFFBGBCCBDCAOFPIJJLKEQCCBEAFBBALLEIDBGEEJCBEAAHDEJERIHCDCGDJCCBCJBDAGDBAJBAAHAIABCABAGBHIBAAKIGDEEObEKJAAABFCFGDJHCKBCIBKHFFHADAKHEDCHOCBDIKCBCABCCBNADMIDAEAKJGEHAAACCGICDDCCIKBDAFMVAAEBBDGAAMBEBFLKACDCEGFCDBEEDJCAGGFGBOGCCBLCCOHGGHBCBBDCABBIACAEHBABAAMGBKOBJHBYAGIACHJBBEJACTEEEABMCHFBABBCBAGGLEAEIMBCGICBDCADHBCEECHDAAFCGBDGDDGDKCDCJFANWOAFACBAADGOQABCQIODGDCMIAFBEAACFUBGJAHEOBMDBAFKAEMAHBIAIABDFGFCFJCHKaAJGBESEDBKYCWWIKaGBDJGCEKBGAANAMGGGJMBDFAGAAACABABGCDKECQBAFCBDEEBHDEAIDDMACFAEEAFFGHDPLAKdPBbAHEDCADBHAKIENIBLHGMAGBFGBBCAGBIbEDFBDBECCCECAEGGLABAEGDGDBEAAFDDAPCDKFFEODYBKFGBLBBFGBDBAAAACJEFIAIBBKGNCODFHGJHGAEHGCCFDDFHFCJFCDIEHFDHEIHDLEBLAKECFIAJHINMRAOCEAACBCECCABAQAEKBHJBGBHDFCEAHDCEAAEDICADAGBAADFDAFHFEDGHECBBEAGEDCDGODMHLMDPLHADIBBDAHBAJDDGTDEOHIBBJBAFDDJAFEHBBCDCFBEIEADDBCGCAGEBGFGBCAFEDAACAGABJENHGDHMEGHDHAACDKGAGBDAIUAFHDSFBFCKBCBBGIDYAAAOUGEBDDCAAEDABJIBCABJBCAAAEBABBEAEIFHFKGhJFNBECBBDDDFECEAFFBIDFOGBFACHCABCIEJHFABIAABBFFADGAEEDIBDADADFAGBDAABEBIAEALBKVcFLUDHFGBBDFCGCAIOCGBDNHCEAHFCHFABDLQGGBFKBCBADCAAEDAABBEECEBEDHCFEBCACEHBIIOHEVNBAGEAEFEDCAAJCAGGJFAIEFCBEDCAHGHBBGRBECKFBDHBFEEAJHGBEFAEAEKDFEHKAADBCCBAJADUJHMdOREAAADHICBGKBGIDIOGBCACBADAEGGLBBCBEKDFCCCEBGCGFGDFEACCGGCBJKCBEAGEAADSGOCIADJVELEACBBABDAEHDEPEHFPGMLEFGOFDLEEDEJBBNKYADDCAFEFABIAAACBBDAFIHCABCDADFDAHNHCAUQMBNHBACEEKCCBFBENFDHGQCAFCCIABKAFEKREFCAIBCCEACEGBGCBKFBBGAJECCABACACHIDEFEEKTEMQEJAIBEECQEHJGDBBGDEGOAAKDIJGKANCHDGCABEHIJLBBAHBFHCDCDCBEEDAGAHIABEIBIDEPJGCFQCPKAICKBDLBFEFFCBFJKELEHBKDBCBEBENAFQCKBAFBFGDBGECJBBDGACGAGFABAFMCDDBFGDBAAMYFA-wAGKIIBCHNEHCBGMKDMILSMBJBCNABHIDCABCDBAUAIFBDBAEECJPFDEDBDIEDMGPBACDCACGGDDBCLQJEBBBECIDDBDFBDBECNGGKKJBCIJEEJBKHCSDDIHZCEDEADFCCAJAOEBACDGCAAAEDDGBCCCLNBCDIVEGYGEJAFBAAAFECEBEHGBBDNABNBGDDEAKMBKABGBUGICAFFBIFEBAFDBAECGFDKGBCACGGACBGABLHSVGDBBBGDCBFBAAHCHGHACBKNBCCADBFKIRBDECBCETABEEGDFHCCBCKAAEBKCBAFBBFAGDEBABCIELEMDRQCAEEAEEKCGAGACDFGBGFBGLEBECLGDUDDJACHCAABCABECEFBIDFBFFFFCBAIFGADDEHFLOQIAGDABEDgDEFCDGBBBLDFAAADEDOIAEKELDOHBBFABABEJBDDADKAAJCFDGCAADDDBBCFBCFAFAEAGFRBNIGNIDGGCADAAEEBAFBGEGAGHIACABGBLAADBBACGBGEFcIFAAGBBDFIOEAREICAFACDBEADBEADEIHGBFXFDhAeAGCGCACAFCEKAGGDLIJOEFCAFCDLDIAJKFGIBBAIAFDAAAAFBCBDABABBGICAKDLBDEAGBUFMAAERIYCCBCGAGDEBIKECAOFELGCFJPGMEHOEKBFQEHCKQACEBBCBGCEGFEDEADFCDDKGCCDBIBBAKHARJCRvnHJDCDBACDDBFCKCJJIADCAIIABCCLKBVEENAIHDBCBIHDBDEBQCCBDEGCIABHGEBBIEAGCDDEHMNDQiAGBBACDECDBBDHBCXDMEHGHAIBDAHBAAFDHCGCDCJBGCGCCDCCEEEOCACAGDHCCECABCBFCHFLHBCBDiIFHEFBAADIBAAQACGGFGECHKEDFBDEKEBAGEEBCMFEIABDBAFECBACJEIAEGAFGBACKICCABFFIJHAJHDIMADGEFFICCIGCFIEBFDFDDCIAHDAAGODKGFGGLKGIEBKBBDAJJFKDCBBCGDECEICBDAGEBARCMLMCADEGFDAFDAFBGCBBDDHAFEGDDBLFKEFKGFGHEGHABMCCAFJEDCDEJACACECEQGFMECGAEEDDDKDOADBBNACXEBDBECBFALBIBCDHKGYODFCCFKSFJRIKDCEBMKCCBANCFABDJHAGAABHMCBEDLBIADIBDCQHEDEGGCEWAFCEBBACGEFBBBGAEJMKBDHGHDEACKEGBKICCSCKEEDFDCAPBFGGADCBDBDDCCABFGGGCDDEHHOHFBHEAHECBHBHGCBBBeECFOHFCHFALEAFCPEHMACCIIAFCFGDGDCGQDBHBGBKHGBLGCAADBAFEASEDEFfHOGBAKCCGHHFEGEGAJMEIBKGFICBEBCEBBHMQJECPNCDICMDAEBFDEKCFDBGDCIAEHDCGBJGFDHDKXDCAABGCEDFEHCDDCBAKMDFBOFBBHCEAECEBAKEFFCAKDCJBCGBECFCGMJDBAAIFECBBGACDGACCGSBDIAIPFQGDGACCFCCBGFBMQCHFHFTFVBEOEFCIMHHGBABIHCBGDFAICEAADABDDBDKEGCACFDBBEBHHABJGAbVWGDCCDHGAACECNBBPCACNKEDCJBBHBGABAEPCGDMIDCGDBDBAEMICKDAGBGDHBEEGCACEIHGGLFbKLHbnBCHCCJDAFGGECEFJGBEBIGDKBHAAJEAKEDKGHCFBAGABHAFMBHFPGGCDEEEEJIFIABCGHBJCAMCEKhVIBMADCHAAFECDCDJFIFHNTDAICEFFDCGBFEFHCDLHBABEKAECCBBEBADFDBDJICICCBGEGCGDBNAPKBGBBKBHDJFBCHGFBCFRGKDDIGBCIACECFADFMEGFAFOBDEFBBDBHIEKEGCCDDCBIHACBBFGFECDBJKMJFcILFCACIAGADEBCBJJAAGGJKGYDCFBAEJNIMCAJGBLAAAEADEGGGDIBGCCFDCBBKBPBBCBAAGEBAEVEVBDEaAABABAFACDIEBAIGGHKEBEBIJAMCDADCYFECFACFCCAAHBIECEBEDBBCGCABIACGFBCDFCCBGAKOCLFUHBIECCDKBIDCGCDDJBTJAIFFIEHBAMGJNBGJEAEGKCLAGKDMAFFJBCGFCGDEBFBJBHFFCIBQHMJPDWKFCBEDGBDDEEAAGDGBHAFGBAEHOAFDEEBMBFADDIEMCEEGGEJHHHFEDDABGEEGGEDKHFIEBAMCEKDQFBGBDGAAEHHEBCAFGFDMELNCCEACGDNAOQCDFJAEJHBHFBKBADDAMAAEEECBJFDBAMDJDGAACFIABQGOBRGPEAAAHCHFDCAAAHDOAFDCCLBBBEJFBBCCBBBAHSAHCABBICFGECDDHDEGNBCNBCBKFHNMDECFJMFWZFIfFHNACAFDEDHCALMIEGNKAABDDAHABNGGBDKECNADCFFDEBANFCJGHFBGHCGDADDHFACCCAMCBCERfPIIAIBHGAABEACAFBLKADCOBECEBDAAQABIFEBALFFDGCACDEFEEHAGBEIADDDGGDCKBFEBJJDGCEEiSAFHHFCDGEaEVHYK3FhVM4mOCOGgPiKLiSL-XZXRFBfaEePMEUUHHaAReOdGHMJUWVYLSKbQ5BNPiaPTILi2mss0eoqswmmmuysU48ummkuc-6ws6o0wkqe4iswyskmqosqiwykoeeem2wqwwkswegi2ggwowcqqmmqeswimmyko44mi2kgwegawgmqsukooiooemkckaoqq2-icskiqcmcmgkqmkcokgoomkmgicgimuyoeoiioYmYkmmsiiYsggqmmmmggiicos2okgkcqWkSsoooioYscgqqiioicmoiq0omocmcecqcmkqqmkeqkg0wgigoeososumumiqceaqamiqqkkeqke0wgieoemqquumwkiogeaqcmioqkmgokeywgiemeksqusoumiqeecqamimqkkimieywikeoemqqusoumiocccqckimqkmisie0wigeqgkqquskwmioESc9YhfBRHBCEJLAGOBQMtWALJONNJNALcNTLGCKOPQCAXVFCgRDIteJDHHJNFAKREKRbcHgIFGKSHJDHTYEDLjKSHHUPTQURCMDKHADaHeUOLDDONGHVKLGQBBOJLaOAGQeBKCLSYNiAJHPINCHGFGBALDSPYJKCQFSFdQGNCNeIVBPMXLFBIcAFFGYFBDCCcEARVMJZOKQNJHFDHFgJDIBFJODJEGMUIAALCMNILEEDALGFRBaPHCFFAIJNOKAGSOnHDDhDBCFCNFNIALFBEBNKFMJFSMOHARUHNFWFHCKKBPPKRZOJDERFAKhJHiKAEKPdCRFGSWHVJNJBOCScOUPPYYFLbSOOOGBRJGFNHHFOBZLHLPGMNeLGKeARESYMIQfhVgJVJCIcUTErKhUBSMGDUOjliFBVBWKRnibYTHMYNTDVLDIAEOAKCAGjHCURSCVXPAEDZBHIPXVJBLdNRLQaIIWVGHCJMNIGAdJFZEFeCXBFJDNFDGMOAIKRJHQAEMZlnaECXHCGFLFGDECFIaHRRKMDUiFBCIJRGBINTIGQGPVSGEROEFRPRCSLQGKIDMDDQJEPQP-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-cYCSgeCCYZkdJYZdhJdZFcKnKB";var SA="enable f16;struct pe{a:u32,b:u32,c:u32,d:u32}struct qe{start:u32,count:u32,e:u32,c:u32,f:u32,g:u32}struct re{start:u32,count:u32,stream:u32,h:u32}@group(0) @binding(0) var<storage,read> L:array<u32>;@group(0) @binding(1) var<storage,read_write> vd:array<atomic<u32>>;@group(0) @binding(2) var<uniform> E:pe;@group(0) @binding(3) var<storage,read> M:array<qe>;@group(0) @binding(4) var<storage,read> i:array<f32>;@group(0) @binding(5) var<storage,read_write> pa:array<f16>;@group(0) @binding(6) var<storage,read_write> r:array<f16>;@group(0) @binding(9) var<storage,read> qa:array<re>;@group(0) @binding(10) var<storage,read_write> db:array<f32>;@group(0) @binding(11) var<storage,read_write> l:array<f32>;@group(0) @binding(12) var<storage,read_write> F:array<vec2<u32>>;var<workgroup> j:array<vec4<f32>,1024>;var<workgroup> m:array<f32,2016>;var<workgroup> Ob:array<f32,128>;var<workgroup> Pb:array<f32,576>;var<workgroup> eb:array<f32,72>;fn W(Qb:vec3<u32>)->u32{return Qb.x+Qb.y*65535u;}fn Mb(Rb:vec3<u32>)->u32{return Rb.x+Rb.y*4194240u;}fn ab(wd:f32)->f32{return 1./(1.+exp(-wd));}fn bb(ra:u32,xd:u32,yd:u32,t:u32)->f32{if (ra<xd||ra>=yd){return 0.;}let X=L[ra*2u];let N=L[ra*2u+1u];let Sb=X&3u;var u=i[0u+Sb*32u+t];u+=i[0u+(4u+((X>>2u)&7u))*32u+t];u+=i[0u+(12u+((X>>5u)&127u))*32u+t];u+=i[0u+(140u+((X>>12u)&127u))*32u+t];if (Sb==0u){u+=i[0u+(268u+(((X>>19u)&255u)&255u))*32u+t];u+=i[0u+(524u+((N>>15u)&127u))*32u+t];}let zd=652u;let Ad=N&127u;for(var sa=0u;sa<7u;sa++){if ((Ad&(1u<<sa))!=0u){u+=i[0u+(zd+sa)*32u+t];}}let Tb=(N>>7u)&15u;let Ub=(N>>11u)&15u;if (Tb!=0u){u+=i[0u+(659u+Tb-1u)*32u+t];}if (Ub!=0u){u+=i[0u+(673u+Ub-1u)*32u+t];}let Vb=(N>>22u)&31u;let Wb=(N>>27u)&31u;if (Vb!=0u){u+=i[0u+(687u+Vb-1u)*32u+t];}if (Wb!=0u){u+=i[0u+(718u+Wb-1u)*32u+t];}return u;}fn ud(fb:u32,G:u32,ta:u32,ua:u32,Xb:vec2<f32>)->f32{var va=i[23968u+G];for(var O=0u;O<5u;O++){if (fb+O>=ta+2u&&fb+O<ua+2u){va+=bb(fb+O-2u,ta,ua,G)*i[36905u+O*32u+G];}}va+=bb(bitcast<u32>(Xb.x),ta,ua,G)*i[37065u+G];va+=bb(bitcast<u32>(Xb.y),ta,ua,G)*i[37097u+G];return tanh(va);}fn Nb(Bd:u32,wa:u32)->vec2<f32> {var Yb=i[38153u+wa];var Zb=i[39209u+wa];for(var Y=0u;Y<32u;Y++){let ac=j[Bd*32u+Y].x;Yb+=ac*i[37129u+wa*32u+Y];Zb+=ac*i[38185u+wa*32u+Y];}let bc=ab(Zb);return vec2<f32>(bc,(1.-bc)*tanh(Yb));}fn cb(cc:f32,dc:f32,Cd:f32,Dd:f32,ec:u32,Ed:u32)->f32{let Z=min(Ed,11u)*32u+ec;let Fd=tanh(cc*i[24000u+Z]+dc*i[24384u+Z]+Cd*i[24768u+Z]+Dd*i[25152u+Z]+i[25536u+Z]);let Gd=select(dc,cc,ec<16u);return (Fd+Gd)*.5;}fn oa(fc:f32,Hd:f32,Id:f32,Jd:f32,Kd:f32,Ld:f32,Md:u32,Nd:u32,Od:bool)->f32{let z=min(Nd,11u)*32u+Md;let Pd=select(i[28872u+z],i[29256u+z],Od);let Qd=tanh(fc*i[35472u+z]+Hd*i[26568u+z]+Id*i[26952u+z]+Jd*i[27336u+z]+Kd*i[27720u+z]+Ld*i[28104u+z]+Pd);let gc=ab(i[28488u+z]);return fc*gc+Qd*(1.-gc);}@compute @workgroup_size(64) fn a(@builtin(global_invocation_id) Rd:vec3<u32>){let gb=Mb(Rd);if (gb>=E.c){return;}let hc=qa[gb];var hb=0xffffffffu;var ic=0xffffffffu;for(var ib=0u;ib<hc.count;ib++){let jb=hc.start+ib;let jc=L[jb*2u]&3u;if (jc!=1u&&jc!=2u){if (hb==0xffffffffu){hb=jb;}ic=jb;}}F[gb]=vec2<u32>(hb,ic);}@compute @workgroup_size(64) fn b(@builtin(global_invocation_id) Sd:vec3<u32>){let kc=Mb(Sd);if (kc>=E.a){return;}let xa=M[kc];var lc=0xffffffffu;for(var kb=0u;kb<xa.c;kb++){let mc=xa.e+kb;let nc=F[mc];F[mc].y=lc;if (nc.y!=0xffffffffu){lc=nc.y;}}var oc=0xffffffffu;for(var lb=xa.c;lb>0u;lb--){let pc=xa.e+lb-1u;let qc=F[pc].x;F[pc].x=oc;if (qc!=0xffffffffu){oc=qc;}}}@compute @workgroup_size(32) fn c(@builtin(workgroup_id) Td:vec3<u32>,@builtin(local_invocation_id) Ud:vec3<u32>){let aa=W(Td);if (aa>=E.c){return;}let s=qa[aa];let mb=M[s.stream];let q=Ud.x;if (q<s.count){let rc=s.start+q;var sc=F[aa].y;var tc=F[aa].x;for(var ya=rc;ya>s.start;ya--){let uc=L[(ya-1u)*2u]&3u;if (uc!=1u&&uc!=2u){sc=ya-1u;break;}}for(var za=rc+1u;za<s.start+s.count;za++){let vc=L[za*2u]&3u;if (vc!=1u&&vc!=2u){tc=za;break;}}j[q*32u].y=bitcast<f32>(sc);j[q*32u].z=bitcast<f32>(tc);}workgroupBarrier();for(var P=0u;P<s.count;P++){let wc=ud(s.start+P,q,mb.start,mb.start+mb.count,j[P*32u].yz);db[(s.start+P)*32u+q]=wc;j[P*32u+q].x=wc;}workgroupBarrier();for(var ba=0u;ba<s.count;ba++){let xc=Nb(ba,q);j[ba*32u+q].y=xc.x;j[ba*32u+q].z=xc.y;}var ca=vec2<f32>(1.,0.);for(var nb=0u;nb<s.count;nb++){let ob=j[nb*32u+q];ca=vec2<f32>(ob.y*ca.x,ob.y*ca.y+ob.z);}var da=vec2<f32>(1.,0.);for(var pb=s.count;pb>0u;pb--){let qb=j[(pb-1u)*32u+q];da=vec2<f32>(qb.y*da.x,qb.y*da.y+qb.z);}let Aa=(aa*32u+q)*4u;l[Aa]=ca.x;l[Aa+1u]=ca.y;l[Aa+2u]=da.x;l[Aa+3u]=da.y;}@compute @workgroup_size(32) fn d(@builtin(workgroup_id) Vd:vec3<u32>,@builtin(local_invocation_id) Wd:vec3<u32>){let yc=W(Vd);if (yc>=E.a){return;}let Ba=M[yc];let zc=Wd.x;var H=0.;for(var rb=0u;rb<Ba.c;rb++){let sb=((Ba.e+rb)*32u+zc)*4u;let Xd=l[sb];let Yd=l[sb+1u];l[sb+1u]=H;H=Xd*H+Yd;}H=0.;for(var tb=Ba.c;tb>0u;tb--){let ub=((Ba.e+tb-1u)*32u+zc)*4u;let Zd=l[ub+2u];let ae=l[ub+3u];l[ub+3u]=H;H=Zd*H+ae;}}@compute @workgroup_size(32) fn e(@builtin(workgroup_id) be:vec3<u32>,@builtin(local_invocation_id) ce:vec3<u32>){let vb=W(be);if (vb>=E.c){return;}let x=qa[vb];let Ac=M[x.stream];let k=ce.x;for(var Ca=0u;Ca<x.count;Ca++){j[Ca*32u+k].x=db[(x.start+Ca)*32u+k];}workgroupBarrier();for(var ea=0u;ea<x.count;ea++){let Bc=Nb(ea,k);j[ea*32u+k].y=Bc.x;j[ea*32u+k].z=Bc.y;}let Cc=(vb*32u+k)*4u;var I=l[Cc+1u];for(var wb=0u;wb<x.count;wb++){let Dc=wb*32u+k;let Ec=j[Dc];I=Ec.y*I+Ec.z;j[Dc].w=I;}I=l[Cc+3u];for(var xb=x.count;xb>0u;xb--){let Fc=(xb-1u)*32u+k;let Gc=j[Fc];I=Gc.y*I+Gc.z;j[Fc].z=I;}workgroupBarrier();for(var fa=0u;fa<x.count;fa++){let Hc=x.start+fa;var Ic=db[Hc*32u+k]+i[41289u+k];let Jc=39241u+k*64u;for(var ga=0u;ga<32u;ga++){let Kc=j[fa*32u+ga];Ic+=Kc.w*i[Jc+ga]+Kc.z*i[Jc+32u+ga];}let Lc=f32(f16(tanh(Ic)));j[fa*32u+k].y=Lc;pa[Hc*32u+k]=f16(Lc);}workgroupBarrier();var yb=32u;var Da=x.count;var ha=0u;loop{if (yb<=1u){break;}let Mc=yb/2u;for(var ia=0u;ia<Mc;ia++){let Ea=ia*2u;var Fa=0.;if (Ea<Da){let Ga=Ea*32u;let Ha=(ha&1u)==0u;let Nc=select(j[Ga+k].x,j[Ga+k].y,Ha);Fa=Nc;if (Ea+1u<Da){let Ia=(Ea+1u)*32u;let Ja=k^(1u<<ha);Fa=cb(Nc,select(j[Ia+k].x,j[Ia+k].y,Ha),select(j[Ga+Ja].x,j[Ga+Ja].y,Ha),select(j[Ia+Ja].x,j[Ia+Ja].y,Ha),k,ha);}}if ((ha&1u)==0u){j[ia*32u+k].x=Fa;} else{j[ia*32u+k].y=Fa;}}workgroupBarrier();yb=Mc;Da=(Da+1u)/2u;ha+=1u;}let de=Ac.f+Ac.g-1u+x.h;r[de*32u+k]=f16(j[k].x);}@compute @workgroup_size(256) fn f(@builtin(workgroup_id) ee:vec3<u32>,@builtin(local_invocation_id) Oc:vec3<u32>){let Pc=W(ee);let o=Oc.x&31u;let Ka=Oc.x>>5u;if (Pc>=E.a){return;}let p=M[Pc];let fe=p.f+p.g-1u;for(var zb=p.c+Ka;zb<p.g;zb+=8u){r[(fe+zb)*32u+o]=f16(0.);}storageBarrier();workgroupBarrier();var v=p.g;var La=p.c;var Ab=5u;loop{if (v<=1u){break;}let Bb=v/2u;let ge=p.f+Bb-1u;let Ma=p.f+v-1u;let Qc=o^(1u<<min(Ab,4u));for(var Na=Ka;Na<Bb;Na+=8u){let Q=Na*2u;var Cb=0.;if (Q<La){let Rc=f32(r[(Ma+Q)*32u+o]);Cb=Rc;if (Q+1u<La){Cb=cb(Rc,f32(r[(Ma+Q+1u)*32u+o]),f32(r[(Ma+Q)*32u+Qc]),f32(r[(Ma+Q+1u)*32u+Qc]),o,Ab);}}r[(ge+Na)*32u+o]=f16(Cb);}storageBarrier();workgroupBarrier();v=Bb;La=(La+1u)/2u;Ab+=1u;}if (Ka==0u){l[p.f*32u+o]=f32(f16(f32(r[p.f*32u+o])));}storageBarrier();workgroupBarrier();v=1u;var R=4u+(31u-countLeadingZeros(p.g));loop{if (v>=p.g){break;}let Sc=p.f+v-1u;let J=p.f+v*2u-1u;let Tc=p.g/(v*2u);let Uc=(p.c+Tc-1u)/Tc;for(var ja=Ka;ja<v;ja+=8u){let A=ja*2u;if (A>=Uc){continue;}let Db=l[(Sc+ja)*32u+o];let Vc=f32(r[(J+A)*32u+o]);if (A+1u<Uc){let Wc=f32(r[(J+A+1u)*32u+o]);let Eb=o^(1u<<min(R,4u));let Xc=l[(Sc+ja)*32u+Eb];let Yc=f32(r[(J+A)*32u+Eb]);let Zc=f32(r[(J+A+1u)*32u+Eb]);l[(J+A)*32u+o]=f32(f16(oa(Db,Vc,Wc,Xc,Yc,Zc,o,R,false)));l[(J+A+1u)*32u+o]=f32(f16(oa(Db,Wc,Vc,Xc,Zc,Yc,o,R,true)));} else{l[(J+A)*32u+o]=f32(f16(Db));}}storageBarrier();workgroupBarrier();v*=2u;R=select(0u,R-1u,R>0u);}}@compute @workgroup_size(64) fn g(@builtin(workgroup_id) he:vec3<u32>,@builtin(local_invocation_id) Oa:vec3<u32>){let ad=W(he);if (ad>=E.c){return;}let C=qa[ad];let bd=M[C.stream];let Pa=Oa.x<32u;let n=Oa.x;if (Pa){for(var Qa=0u;Qa<C.count;Qa++){m[(31u+Qa)*32u+n]=f32(pa[(C.start+Qa)*32u+n]);}}workgroupBarrier();var w=32u;var Ra=C.count;var y=0u;loop{if (w<=1u){break;}let Fb=w/2u;let ie=Fb-1u;let Sa=w-1u;if (Pa){for(var Ta=0u;Ta<Fb;Ta++){let S=Ta*2u;var Gb=0.;if (S<Ra){let cd=m[(Sa+S)*32u+n];Gb=cd;if (S+1u<Ra){let dd=n^(1u<<y);Gb=cb(cd,m[(Sa+S+1u)*32u+n],m[(Sa+S)*32u+dd],m[(Sa+S+1u)*32u+dd],n,y);}}m[(ie+Ta)*32u+n]=Gb;}}workgroupBarrier();w=Fb;Ra=(Ra+1u)/2u;y+=1u;}if (Pa){let je=bd.f+bd.g-1u+C.h;m[n]=l[je*32u+n];}workgroupBarrier();w=1u;y=4u;loop{if (w>=32u){break;}let ed=w-1u;let K=w*2u-1u;let fd=32u/(w*2u);let gd=(C.count+fd-1u)/fd;if (Pa){for(var ka=0u;ka<w;ka++){let B=ka*2u;if (B>=gd){continue;}let Hb=m[(ed+ka)*32u+n];let hd=m[(K+B)*32u+n];if (B+1u<gd){let id=m[(K+B+1u)*32u+n];let Ib=n^(1u<<y);let jd=m[(ed+ka)*32u+Ib];let kd=m[(K+B)*32u+Ib];let ld=m[(K+B+1u)*32u+Ib];m[(K+B)*32u+n]=oa(Hb,hd,id,jd,kd,ld,n,y,false);m[(K+B+1u)*32u+n]=oa(Hb,id,hd,jd,ld,kd,n,y,true);} else{m[(K+B)*32u+n]=Hb;}}}workgroupBarrier();w*=2u;y=select(0u,y-1u,y>0u);}let D=Oa.x/8u;let Ua=Oa.x%8u;for(var Jb=0u;Jb<4u;Jb++){let Va=Jb*8u+D;let la=C.start+Va;let Kb=Va<C.count;let md=select(1u,L[la*2u]&3u,Kb);let Wa=Kb&&md!=1u&&md!=2u;for(var ma=Ua;Wa&&ma<16u;ma+=8u){var nd=i[36889u+ma];for(var T=0u;T<32u;T++){let ke=f32(pa[la*32u+T]);let le=f32(f16(m[(31u+Va)*32u+T]));let od=35865u+ma*64u;nd+=i[od+T]*ke+i[od+32u+T]*le;}Ob[D*16u+ma]=ab(nd);}workgroupBarrier();for(var U=Ua;Wa&&U<72u;U+=8u){var Lb=i[35400u+U];for(var V=0u;V<32u;V++){let me=f32(pa[la*32u+V]);let ne=f32(f16(m[(31u+Va)*32u+V]));let pd=29640u+U*80u;Lb+=i[pd+V]*me+i[pd+32u+V]*ne;}let oe=29640u+U*80u+64u;for(var Xa=0u;Xa<16u;Xa++){Lb+=i[oe+Xa]*Ob[D*16u+Xa];}Pb[D*72u+U]=tanh(Lb);}workgroupBarrier();for(var na=Ua;Wa&&na<9u;na+=8u){var qd=i[35856u+na];for(var Ya=0u;Ya<72u;Ya++){qd+=i[25920u+na*72u+Ya]*Pb[D*72u+Ya];}eb[D*9u+na]=qd;}workgroupBarrier();if (Ua==0u&&Kb){var rd=0u;if (Wa){var sd=eb[D*9u];for(var Za=1u;Za<9u;Za++){let td=eb[D*9u+Za];if (td>sd){sd=td;rd=Za;}}}let ignored=atomicOr(&vd[la/4u],rd<<((la&3u)*8u));}workgroupBarrier();}}",fA="abcdefg",RA=A=>A?SA:SA.slice(11).replaceAll("f16","f32");var UA=["plain","comment","string","number","keyword","type","function","constant","operator"];var HA=512,ZA=4,eA=[],aA=0,W=1,h=2,KA=5;function yA(){return[HA,new Uint32Array(HA*2),new Uint32Array(HA*2)]}function vA(A){let B=A[aA]*2,C=new Uint32Array(B*2),D=new Uint32Array(B*2);C.set(A[W]),D.set(A[h]),A[aA]=B,A[W]=C,A[h]=D}function WA(A){let B=eA.pop()??yA(),C=0,D=0,O=!0,a=-1,K=-1;for(;D<A.length;){let M=D,t=A.charCodeAt(D),I;t===10||t===13?I=2:sA(t)?I=1:lA(t)?I=0:I=3;let J=Number(O)<<4,e=JA(t),L=e,Q=0,i=0;if(I===0){Q=2166136261,i=2654435769;do{let c=JA(A.charCodeAt(D));L=c,Q=Math.imul(Q^c,16777619),i=Math.imul(i^c,2246822519),c>=97&&c<=122?J|=1:c>=65&&c<=90?J|=2:c>=48&&c<=57?J|=4:c===95&&(J|=8),D+=1}while(D<A.length&&lA(A.charCodeAt(D)))}else if(I===1)do{let c=A.charCodeAt(D);L=JA(c),c===9&&(J|=32),D+=1}while(D<A.length&&sA(A.charCodeAt(D)));else I===2?(D+=1,t===13&&A.charCodeAt(D)===10&&(L=10,D+=1)):(t===92&&(J|=64),D+=1);C===B[aA]&&vA(B);let S=D,P=S-M,f=C*2;if(B[W][f]=I|xA(P)<<2|e<<5|L<<12|(Q>>>0&255)<<19,B[W][f+1]=J|(I===0?(i>>>0&127)<<15:0),C>0){let c=_A(a,e);if(B[W][f+1]|=c<<7,B[W][f-1]|=c<<11,I===3||K===3){let p=qA(a,e);B[W][f+1]|=p<<22,B[W][f-1]|=p<<27}}B[h][C*2]=M,B[h][C*2+1]=S,C+=1,a=L,K=I,I===2?O=!0:I!==1&&(O=!1)}return[B[W].subarray(0,C*2),B[h].subarray(0,C*2),Uint32Array.of(0,C),C,A.length,B]}function qA(A,B){return 1+((Math.imul(A+1,131)^B)>>>0)%31}function MA(A){A?.[KA]&&(eA.length<ZA&&eA.push(A[KA]),A[KA]=null)}function sA(A){return A===9||A===11||A===12||A===32}function lA(A){return A>127||A===95||A>=48&&A<=57||A>=65&&A<=90||A>=97&&A<=122}function JA(A){return A>127?95:A&127}function xA(A){return Math.min(7,31-Math.clz32(Math.max(1,A)))}function _A(A,B){return A===47&&B===47?1:A===47&&B===42?2:A===42&&B===47?3:A===45&&B===45?4:A===61&&B===62?5:A===58&&B===58?6:A===60&&B===47?7:A===123&&B===123?8:A===36&&B===123?9:A===125&&B===125?10:A===45&&B===62?11:A===63&&B===63?12:A===63&&B===46?13:A===60&&B===62?14:0}function tA(A,B,C,D=0){let O=[],a=0;for(let M=0;M<B.length/2;M++){let t=B[M*2],I=B[M*2+1],J=D+M,e=C[J>>2]>>(J&3)*8&255;a<t&&K(a,t,"plain"),K(t,I,UA[e]??"plain"),a=I}return a<A&&K(a,A,"plain"),O;function K(M,t,I){let J=O.at(-1);J&&J.type===I&&J.end===M?J.end=t:O.push({type:I,start:M,end:t})}}var jA=1,zA=4,Y=8,$A=64,U=128,w=32,AB=16384,bA=5,j=0,TA=1,BB=2,d=3,m=4,Z=5,LA=6,rA=7,k=8,z=9,uA=10,y=-1,OA=0,CB=1,cA=2,DB=0,EB=1,GB=2,FB=3,IB=4,HB=5,gA=6;function YA(A=globalThis.navigator?.gpu,B,C,D){let O=!1,a,K,M,t,I,J=[],e=new Uint32Array(4),L=[],Q=0,i=!1,S=!1,P=new Uint32Array,f=new Uint32Array,c=D??mA;async function p(){if(!K){if(a)return a;a=(async()=>{if(B)O=B.features?.has?.("shader-f16")??!1;else{if(!A)throw new Error("WebGPU unavailable");let u=await A.requestAdapter();if(!u)throw new Error("WebGPU unavailable");O=u.features?.has?.("shader-f16")??!1;let F=O?["shader-f16"]:[],E=eB(u.limits),r={...F.length?{requiredFeatures:F}:{},...Object.keys(E).length?{requiredLimits:E}:{}};B=await u.requestDevice(Object.keys(r).length?r:void 0)}C===void 0&&(C=RA(O));let G=B.createShaderModule({code:C});{let u=F=>{let E={layout:"auto",compute:{module:G,entryPoint:F}};return B.createComputePipelineAsync?B.createComputePipelineAsync(E):B.createComputePipeline(E)};K=await Promise.all(Array.from(fA,u))}let H=aB();M=B.createBuffer({size:H.byteLength,usage:U|Y}),B.queue.writeBuffer(M,0,H)})();try{await a}catch(G){throw a=void 0,G}}}async function mA(G,H=new Uint32Array([0,G.length/2]),u){return G.length===0?u(new Uint32Array):(await p(),VA(G,H,u))}async function VA(G,H,u){let F=G.length/2,E=Math.ceil(F/4)*4,r=o(j,G.byteLength,U|Y),N=o(TA,E,U|zA|Y),n=o(BB,E,jA|Y),V=o(d,16,$A|Y),R=I=KB(H,I),s=R[GB],b=R[FB],l=R[IB],T=R[HB],pA=o(m,s.byteLength,U|Y),hA=o(Z,b.byteLength,U|Y),nA=O?2:4,XA=F*32*nA,wA=T*32*nA;o(LA,XA,U),o(rA,wA,U),o(k,Math.max(l*32*16,T*32*4),U),o(z,l*8,U),o(uA,F*32*4,U);try{B.queue.writeBuffer(r,0,G),B.queue.writeBuffer(pA,0,s),B.queue.writeBuffer(hA,0,b),e.set([H.length/2,F,l,T]),B.queue.writeBuffer(V,0,e);let v=B.createCommandEncoder();v.clearBuffer(N,0,E);let AA=t??=NA(),q=v.beginComputePass(),BA=(CA,x,iA)=>{q.setPipeline(CA),q.setBindGroup(0,x);let PA=Math.min(65535,iA);q.dispatchWorkgroups(PA,Math.ceil(iA/PA))};return[Math.ceil(l/64),Math.ceil(H.length/128),l,H.length/2,l].forEach((CA,x)=>BA(K[x],AA[x],CA)),BA(K[bA],AA[bA],H.length/2),BA(K[6],AA[6],l),q.end(),v.copyBufferToBuffer(N,0,n,0,E),B.queue.submit([v.finish()]),await n.mapAsync(1),u(new Uint32Array(n.getMappedRange(),0,E/4))}finally{n.mapState==="mapped"&&n.unmap()}}function o(G,H,u){let F=J[G];if(F?.[CB]>=H)return H>F[cA]&&(F[cA]=H,t=void 0),F[OA];F?.[OA].destroy();let E=Number(B.limits?.maxBufferSize??1/0);if(H>E)throw new RangeError(`WebGPU buffer limit: ${H} > ${E}`);let r=JB(H,E),N=B.createBuffer({size:r,usage:u});return J[G]=[N,r,H],t=void 0,N}function NA(){let G=F=>F===y?{buffer:M,size:M.size}:{buffer:J[F][OA],size:J[F][cA]},H=(F,E)=>B.createBindGroup({layout:F.getBindGroupLayout(0),entries:E.map(([r,N])=>({binding:r,resource:G(N)}))});return[[[0,j],[2,d],[9,Z],[12,z]],[[2,d],[3,m],[12,z]],[[0,j],[2,d],[3,m],[4,y],[9,Z],[10,uA],[11,k],[12,z]],[[2,d],[3,m],[11,k]],[[2,d],[3,m],[4,y],[5,LA],[6,rA],[9,Z],[10,uA],[11,k]],[[2,d],[3,m],[4,y],[6,rA],[11,k]],[[0,j],[1,TA],[2,d],[4,y],[3,m],[5,LA],[9,Z],[11,k]]].map((F,E)=>H(K[E],F))}function kA(G){let H=WA(G),[,u,,F,E]=H;if(F===0){let N=tA(E,u,new Uint32Array);return MA(H),N}let r=new Promise((N,n)=>L.push([H,N,n]));return Q+=F,Q>=AB?oA():QA(),r}function QA(){i||S||(i=!0,queueMicrotask(()=>void oA()))}async function oA(){if(S||L.length===0)return;S=!0,i=!1;let G=L.splice(0);Q=0;let H=G.reduce((E,r)=>E+r[0][3],0),u=G[0][0][0],F=G[0][0][2];if(G.length>1){let E=H*2,r=G.reduce((R,s)=>R+s[0][2].length,0);P=$(P,E),f=$(f,r),u=P.subarray(0,E),F=f.subarray(0,r);let N=0,n=0,V=0;for(let R of G){let[s,,b,l]=R[0];u.set(s,N);for(let T=0;T<b.length;T+=2)F[V++]=n+b[T],F[V++]=b[T+1];N+=s.length,n+=l}}try{await c(u,F,E=>{if(E.length!==Math.ceil(H/4))throw new Error(`GPU returned ${E.length*4} label slots for ${H} tokens`);let r=0;for(let N of G){let[n,V]=N,[,R,,s,b]=n;V(tA(b,R,E,r)),r+=s}})}catch(E){for(let r of G)r[2](E)}finally{for(let E of G)MA(E[0]);S=!1,L.length>0&&QA()}}return{h:kA,i:p,r:c,e:o,g:NA,b:J,p:e,get d(){return B},get f(){return O},get c(){return K},get q(){return t},set q(G){t=G},get l(){return I},set l(G){I=G}}}function KB(A,B){if(B?.[gA]?.length===A.length){let e=!0;for(let L=0;L<A.length;L++)if(B[gA][L]!==A[L]){e=!1;break}if(e)return B}let C=A.length/2,D=0,O=0;for(let e=0;e<C;e++){let L=Math.ceil(A[e*2+1]/w),Q=dA(L);D+=L,O+=Q*2-1}let a=$(B?.[DB],C*6),K=$(B?.[EB],D*4),M=a.subarray(0,C*6),t=K.subarray(0,D*4),I=0,J=0;for(let e=0;e<C;e++){let L=A[e*2],Q=A[e*2+1],i=Math.ceil(Q/w),S=dA(i);M.set([L,Q,I,i,J,S],e*6);for(let P=0;P<Q;P+=w)t.set([L+P,Math.min(w,Q-P),e,Math.floor(P/w)],I*4),I+=1;J+=S*2-1}return[a,K,M,t,D,O,A.slice()]}function $(A,B){if(A?.length>=B)return A;let C=16;for(;C<B;)C*=2;return new Uint32Array(C)}function dA(A){return 2**(32-Math.clz32(A-1))}function JB(A,B=1/0){let C=256;for(;C<A&&C<=B/2;)C*=2;return C<A&&(C=Math.ceil(A/4)*4),C}function eB(A){if(!A)return{};let B={};for(let C of["maxBufferSize","maxStorageBufferBindingSize"]){let D=Number(A[C]);Number.isFinite(D)&&D>0&&(B[C]=D)}return B}function aB(){let A=new Float32Array(DA.length),B=0;for(let C=0;C<_.length;C+=2){let D=_[C],O=_[C+1];for(let a=B;a<D;a++){let K=DA.charCodeAt(a),M=K>=97?K-71:K>=65?K-65:K>=48?K+4:K===45?62:63;A[a]=(M&1?-(M+1)/2:M/2)*O}B=D}return A}var MB;async function UB(A){return(MB??=YA()).h(A)}export{UB as highlight};
1
+ var x=[23968,.0541586299,24e3,.0057660572,24384,.0557118462,24768,.065317723,25152,.0312961244,25536,.0308361823,25920,.0195166853,26568,.0420909774,26952,.0418975276,27336,.047354825,27720,.0373829026,28104,.0413190626,28488,.0187972976,28872,.0458890546,29256,.0265615102,29640,.0297521603,35400,.082732847,35472,.0079024468,35856,.0667879658,35865,.00678773369,36889,.087580004,36905,.0380158386,37065,.0554504625,37129,.0270735256,38153,.028419793,38185,.0038484008,39209,.0662292511,39241,.111957104,41289,.044876814,41321,.0171665492],EA="ABCDBCFIACDDECCBABCCBAABEACBECFFCADCEEECBIHHBCBCFBHAEHFEABBCACDECACABAKFIEOIFAIFGGACBACFDDKDHCABFEAACEDCDAHBDAACEAFEBCAGDGDCEDCICACCAAAABGBAAACAGDBBDDACEADCBBAGAFFABAACAABAGECACBCEBCAAIIEDAABEGBBAACCEFABDCGCCDBECCAAHEIBCAFAAIMDBAACEHEBFBGAADBCBKDCJEMHIGDBDEQJAEDDEHGABDECBCDAEIHCHGSFGKBAHYOjSGGBGFEdRRCLCaHABUdAZHQAUHJHEAVMiCRQNUXhmAFEWVcaHRGcPdLaNfCKJCUEFDSDFPGKCBAkFPMeIAWkSGkHICRERCACCBDCAEDADAABBBCACDCADCCACEDBBBCBCDEECECABACCBEAABEDACCABAEABEABDCABCEBDEBDBDCEACBEAACAAEACEDCABBCADCBCAECCADBCCECCECBBAACBBEDCCDDBAEEBEBCBAAAEDAAEABBCEABDBAEBCBEBAACBEACCCCADDABBDBEDCAEAABABDBDCBDEEDBACDBAEACCBACCDCECACBBDBBEBCBBAACBCCCCEABADEECACBACCDBADAABCEDBBDCEDBDABBCBDAADAAEBBECIFBEECOCBBFEAGHDBCHCCHHFHHCCAGABAEBCECIHIEMGDEEDEAEDACABCDIDFCBDACCABABCBCADCDAABCAACEDEDBBBACCBEEBEEBACCEBAACDCBCADDCCCCEDABCAAHIABCDMOEEKICBCEEMBJCFJKRVEMLBGCBBBACACBBDAAEDBECAACBEEAABDAAAECCEDEBEEACCACBBBACAAAACEBAEBBBCDEBACECCBADAACABCABEEABCCABDCECCABCDEEECCCDEBCCCADDCBCBDAACBDBEEEEBAEACDCAACBBCDDADAEABDEAEEABECABDDECAAABACDEDEADADBBBDCADEAAACBDDBCBBBBADABBABCABBCAECCCDCAAEBCCACCBCEACABDCBDCCBDACBDBECABBADCCBBCAAAEAAAEBBAAEDDECBECBCEACAEBBCEDBBDCCCDBBCECDACADCCACBBADAAACEAECCDCABAECCBCAADCAECABECADBCCDCBEBDBDCACCEACCCEADCCDBEBEAEBCAEEDDCECCDAAEAACCEBCBCBEBBCCBBABCDIIKWEDARFaWQKFQOPNFJJPCHSFBRHGENEAABACCBCEBEECCDAEADBABABDBBDBABAACDAEDAADBDACCBCEBEBBCCDBDEDADAACEBBCECABBACBBCBAABBAEBEEDBACBACCACBCBDEDEEADCDEACBCBEDBCEBCDBCAAHAAEGACIFHCGDBADFEEHDEBDBCCABGBDDEOEAEGLHCAGHMADEGEFCCGDIFGJHKQIAMGIFGVKCEDEEHBIKEJBFHFACCCCDEBLACFTDAHEDGBAIJFJHEDLCDONEGdADACIBJAGBGFJFBIFCEEBCCAGAECJBMDGOHAHDIABFMAGECFBHCQBDJCCCMGCEDDKBDODBDFJLMABAFCCEHDAEHAAECDGOUAAEcMQDKAGLMROBIDBEDHCBBFDBFHDBAEAECYAMJCRRFUFLQDDGWGIBISBTfDILECIQJNFBEAFGGNEGCJADARBFBAHQMACBUQDWPTBIDHECIKQRRGCBEGACOBBCCIAGDMCBUAAAPEQBGMHBRDNFBHPOHABHeBKMFBCEeHKLDPCGDBFPIHDEFEAFNIPBECDAGEHFCBABBMSAIGHBHDGAFACGIFBEDEKAJLCLgAABGDEIDGAAACKAJCCJBEYKEMKJFDIAHFADCKBACACDBFEECACACFCECBIAAFAFMJIHEMEbSWCJLnLABJIYNRVITBLBTAXFPEAFCQQVCUKNJbDCELGIIZDIADCBHMTDPKCJGGCZEMQLPXIUEJCAAVNQIDIABCHHNABLKAONCMSBHjAUBCBEHlFGGAKLDGRLRSETBOITAOOFLfMBDBGQIfEMGEDEFQdAZSAbQcITASYFJjHQINLIMNFAAGMNEMNLTGKPBAADDMIBNZHMKDPSBZdOKEHPIKfPZWJHKOMDBIoCHdFGOBAIGRDCMCKLEODPNFMJCAGPHEQNfXICFKDSOTLECFOPMGFEbGILIOUJBMeCTdKBAAIUcXGMCGQTKMLFXFDAKCMKDKFEFEUEAGEADDFMCAKDHDQCDALFFBAOHADDCJFBCGDDGEEBFFHDFCDGAAHGKCAFJAHKPCGDBBABEGHBAAIABBBNIBEQADBDAQBBDDAGAIFLCBCEkBGWAAAJGDJIHLIFCGGKFABAHDIAIAABMBIECABDICEGHBKNAKFVAAECJBAAEJBBBEAOCBHBBAJDHCJJMFDDBOEGGFHCDJHICBAGMXCREHGBCHLJMLCIHIJMFMICBHHGDGFCNFBIGCIBZVCHGDOQBEHGJCQKEEGJASEXUGDDIDDEDFHFKBKCJAAICECAKJDEDEIDQBIAIJFCBLBIGHKCFCGSHIEPENIIFOIVIKAAALHIHFAFEBGJTEIBBMDDMHCBDEBFEAILKPFLHHDBEEKAXOEPJDJMOFCAJAONMPEOFdRPDFLNABGBNMIBHCDOBQKFHAIXTDCMDLCBBDJLKAJBHAEGFVMFWENDFECtAAbBeABILDBAGESPZAEHFBEOODBERIBJFEBOGFLECBIHCVSINYJBCDKLgIMANMiLQFBFJFJITNKADBOCHiHAZIGNBBHDRSGPIQIMGCHDCERHQHMDJNDKIKGLGCBKHBMVDIJCCDGAFDNCCGOGTGFCLCAADHBAAIORCNANEIFEKAJJKDCHLKBKCLHELBLFACNGGGCBWBREKHFBCDKPFQAGOCLKDBLAHEJJJMHBMRCKDDCJEAOBFMCGFDGAGFBDFGDZQIIKKYHWLLIQMJYCWQKMGFSWDZFSBUKbXVDBENAKHHBFIAGARDGCLYKKKARMHDEHMIEAOHICNPHCCJCFDYIAFMOIGHACFEILMEGFAFGGFFCFCDMLDOAOHESEMHFIFEDHFAEAMHQCACDDCBaEHEICDEBACDDGFGELGDKCMAGLJREKAHFFAEGHDFOQNDXHRJMVDTNRMFTHDFBJGCHBHDBQFGRHFDEFFACBGILDECMjQOFFQNEJDaJTNFQGJKLEbIAZLMAGFBCNBGbFILeQQLBFGVQCEGFQNAQbGIlBPZGIDnqGFWMXIQMIPDBeDSfElUJZAUFLQGUQNIDKPTUROIFTBWODRAVNJUIRJEnaXCBDFHFBGlDfCEADOCEAEHBCAAUCFBDEGGRZKVICKKDMQMPxKEESWEFJCDBNWWMlJSCKMAHBJDYJDGiPEQEFCCQDKFKFMIEIWEHCDEHHBJBCKEEIBJHEKGAKBKBPBEDBFJOKHaGAOBFEABCJEPBEEHFLNJALDBXIUFJCCAEBCAHDEIBBBGFECAGABEECCIAEBEGNBGDBGJAACABDAGCLFAHCFGELRDCCBEACFEBBABAECCFACEBCAEEHEIAADECDHGCACACIGDJAGGDKCBDDFAIHBECCCBAHFADDCGBDBBHAEGDIBAFCCBECAAFECGBENECCBFEGGALBEQFCIFDCBCEAABCKDGDCJAACDGDHMDHGEIHEBEFKAAAIKIACHIICAGDFAEFBIAFCAGDFAEGDANKGKEINDDDDAIFEAACBABJFEKBAAACBCCBCBACIGGECAMCLLIMCACKMADDNAJJDAAEJDBCHFAHMJOWTEREJIGIHKIKBGKDJDKHUGBMAAAAMNEBDCECCECBDCGHDEEHCACGFAABADGABHFKFJADEABFGEGBGDGBGEBGICAKHFBAHHDSLFLFDCECEDGICDEBEHKAEGFGAOCEECICBFCKDBHICDDFPFEDADIDADICFAKCADEAFEBDABABGCKADAKFADEAGAEBBAGKADGEGMYAAGLGJMSIiLWVHELKNEHWDOQIBAAFCCIIACFDCGHACFCBCCAGBDBABEBFDHDBEBCAEAADCBBBBDICFBAECBBBFEGADBEAACCDAECBBFDBBCBJHDEGKCBCEGEIBFBHGHLKFEEAFAGDIALFCGADMFEGBIABIJFFBAABCEGLDEIPBBCFGJCGHBBAGDEFCAAJFDGGEADACGBBAFCFABIAFAICGHEMLDQHDDZMQJKAIEaAUFAMMFKDABKIFEOCJCUDKAEJHECGFCQPBCFHPFEAJINOEWAHJBBWTKSPEEOWEIOERACGCGGHAAAEdPDGEHILHJOWEFACEJAVFQMBALiEOFPFABPBKDWJBLFDACEOAHKIFKFAABHIGMAEMKECGMEBDBJNDNJPDHDXADJNTOCKABDRGAKDJFEBpEAJCEGHDKCEDGFCCSFgDGIAAFaPCIACBDDDEDBBCCCCBCBABBBCDAABDCAEDDCBABACAAEDDDEBCCABEABCBAACCCBBCCEBACEAEBCCCCDBECADECEAAACCBECCBDCBCBCCBEBBBBCBACBEAECDEEACBAAAABEDACEDECABECCCCBEBDAACADDCBACBCAEBCDACCBCACCAADACCCDCAADBABEBCEAEEACCECDADAAEAEEDDBAAACBEAAEAADAEEDAACACAAEABCBDADBDABBCDEBBCCDACABAADAECCDACDECDAACBDDDEBAACCBCBBAABEBBEABCEDDCBDDBACDBBBCBBBACKACBKGIBBAEDCCHBAAHGGCHARDDBFDCAABADABMBEAOEAAIBAAADABCDDDMDDBACBAAACCAAABDEABEAEBBACCCDBBBCADCAABDCAADCDACCEBCBCCADCBCDCBCCCDCEBAABCDEEBAACACDECABDDCBACDAAADAABABCACACDEEDEECCCADCACCCCDCACBCDBEAEBCABACACACBCCBCCCDBADEBDACCEBDCDEBDDCEECCABEBBBAECECAAEAADDEBECECCCCCCBABBCCBDBCCBDECBDBCDDABCEADDAEBECAEDCCCBCBAABCCEEADCCEDCACACCCAAACEABAABBCCEECACBAACBEABCCAECCABACBDBBBAEAEBEABDBACBCBCBBCECDCCCBBCCBBCCAAADCCABBAAAACEEEECBBADADCBEACBACACCAEBABACABEBCABACDBBDEEBDCBBCEECDABAEBCABAAABBEBBBABCBACCBAADAABCCADECACCCCCBDDCBBCECEEAAECBCACADCCBBBEEACCCDAEADBCBACBCCCBCADBADABDCAEBECAIMGWGHAPLYQOKFOIRPDJLTBHSJHJLKALCADDDDABBABBBBAEDDBCABCBDDCECDBADEDADACDBCDAABCBBDBCDEBDAEBBDECBCCABCCABEABACEEEAEEBADEDCAAEEDCBADCBABBBCCEDACBEBCDACCCADDBBDCCDACBECCKAEIHFCIBAABFEIBDDAFEADBDCDHDKMGCKGHABAEAGEAGAIAGKKDKBIDDISIAQIIJIROCCBBGFEIGGJCAFFABIGCAIDPAAHLFFHGJCHEEFBJDEBHCHOJGCdDDACQBJACBIBDLACDAIBCDBDKCCCPDKBIQDAFBKAHFKAEGBHDBASJCFAGCOGCGHFIBDOFFFAFJIDBDFGBCFDADHECBBDIOUABBaMYHMGELIVMAECAEBHIBEFFDFDBDFEBCAYEIHGPTJQDNQAFCWGKCGQHVfFIJEDCQHLDFAAHGCPGICJBDBPBFDGFUQDDCUUFYPVDODFGCKKOTNGEGAIAAOBDCCMGKJICDUABCNCOFBQNERAFDDDPIBBAFgDIKHEDGcJKHBNCMADDPKHBEACBBHGLFIDEFACFFDAAFDMOBIGHCFDGIFEAGGBCKCCOBNLCLcEGCCFEICACCGEMDHDBNECcKEOKJCBCDBBEBCKDCMCDAAACGDBDBBFEBBAECBFDHMIGLAIGJFADDRLAEABFHQKEQEAAbEIBEEGIIFAJDAABBFBKBHFACIACDIECJIMKCCECMCFJFCCEEHCEADDCRGAIIOACBGGCBGCCIDEHISGOAHCJHECJBCGDLBODPAAECBEEHRLBCBFIDGGHAHAFSGFBKCMMFFFQDBBOECFOEEECCHFNFHGHDCEABCMCNDKEBHABCAJAAGBIEBJDARCFBMHHMEDWRALBDFJODFDFBECIGRNBBFBFHQEBGBCIPQUIBEDDHHHHABCFGLFJMVJDGADAEFGCVKBCKXFJDBCWFGFeGXBZAHKODeZGGGGHPWMKACBABODQKDIJBFIUEBEBCJDDGBBIADDOADANHCFGIBDADEDACEGACGACAFJFBDEBKFADEIIAHFEFMLBBHCCCACKHCGAEAEABPOHCQBFEFFUDAHFCCBGFNFDAEkBAWBBAFMBFCFNKBEKMEJCDDDCEAIBCAOCGEABAFMCEGHCKHAOAZFAGCHFCFCJACBGBKABDAADNFHAJHIDBFEQEBGDHBBJNEABBCMXGNGGaJODGBAJODIIGOEAMEHUAIFFQnhIIINDYNIXHDFKqEQIQGGMMKXKfQBIHXVaGBIEAQCBEJMBaHOUBQIHHHQAQMIKGPDSEGLEEJHPJCIDFHDYDOELFOXFUfGLQKUBBJJICMJDBFKHCCAKFOOACKHLBHMKDMLFECPCOHKBIHDTDWCEQPDNEYPaGbCHBWDJHJFEBGOECLQBADKABWIJNKLLLBALKOIHQQNSORNMDJSEaMOKXNGLJMRSJRIGRHDIcMENKJJDcGGVLAQGDHTNbALAAELIWjDTJLAWOhcgKJEVJTPUVKJYICLDibbEBHMHPOJMDNJPQHRIATEMDCPAOCGLKAHACHBALFXeJOKIGIMHKNAOIVQPKACPKHFBCKKFRCVQVMJKNJDQQASFHTLKCIHIOAGFAUCAAFGHKCIICJOFFAIGBUDINODFMLEDDWuKOURHEIHJcAHDCHDEKIDLTDJHOCEKAQDFYRPQAgETMYMDYMGOFEFOeGEFSYHaOTRHRTTUfLQBgBDbVGIBjMTISFfAcURDLAILTXYEBYNPAIQBUPWKFIKLLUNNQDKDIUoCJFdJBUEDIIWFAEGSFWGPJSAFAJEKJODGBALWDLOKIAMFEJQOBgQFOBJXMNAOAQDFKGROSZCLOGIFAVCBIGPFIHVJDERHkjIJPVGLBDFIIGJKYFJINSPcLFWHGFLPKEWBKKXAUGODGILDcIEFMOEJHWQMILGJYCLYWGFAATKQKFKEEAGBCMCBJDMHBJDCCbOROMIONKIOATKADACDNGWHPGNDGPGNBOaFIAVWiPENGVCHDAiBAHCbEGdWBjDJAAJUIKKGWOPGBOTPQPMKLTFWMBVCdRDYETLKhaZAFDHHFAIlFfEEBCEDIACBECDBYAJFFCIGRfKVICMIHIWKNrKCCYSGAFCJHJaWInNOGKMAJADDeJBBiVKOEBDGQAODMFGGECQINLDMAJOBACFANFCQADEBQRCEAfJEVKGLMEDUEBOCBEBABDAPCCGLFPRFCJAEZGQMBHFEJBQFAEAELAKDDBGEAEJGDNPIBEDFFIHDCECLPDAIDQBEEKDBBACGABMKAJCCCCCDLDCAAHJIFCACIMFHEFCDCBFICCFCADCACFAAAADBACBABAAAAEAIDDGBAABCACBFBACAFADGBAABACADDCDEABGCBCDCIADDGABFFCGCMGBBFMJCCKCHCOQMGFMGLCEAIAAHBHBBDCEFECCCFGHGETCGDJFBAFGCBAEEBAFADCGMDBBEABBEACDGHADKITHHOBEVSCFGGEAAAEIAEOCKBTEDCAFDDCGOBIFJKKTLHEQBNNMMLUACNVGwFDNDKHTCADBBEHJNCIHMIGEAEEBDKCDAAFECCFRAFBEIHGJDDAABBECFCCDMCHPABEADFABEFDAJDDFBCHBCFGBBBFBEDFBGDLCBDCBABAECBBEIBEEACBCBBEACDBLBDDBNBBECBDCBEFGBDEAEFFFCAGBGMDGCADDFFCBGCDCCDCAIAGCDEAAAHEAEAXACEACEVOAGAJJFGKKBWQGKKGEGNDKNCEDNJXCEBDCBCAEBCBAADABIAFBAADAICDIAEHBDDDBDBBABCDDCDABIBDABCCCGCHCACABFCBFEABEBHBFDDCAKCACAADFCECDGCADOKHAEAAEMDTCFCKLFfGCOIGBKKDJJHPBKIFDGCAADAEACEAELCIUIBSDIIXECJDAAFCDECDCHHGDBGGCMBFEDQQLHHEGIEIICFBMOEEABDFHDAEAIBHCDEFDCCPGADDANDCDACGECFCHCBCGGACGDCIFAGHEBGBDHABTFWHGCNcNaNFOLKBHCFMGHOJDMWPBCLBDMSGHEAIFFXLKOAENiBOFNAFDVBIDSFBLFABEGUBFQEDCCCCAJMGECIMKBDCKDAJAFJDRJNBLCRFJLVNOBIBFJPMDKBFDIBrCEFDEMHHIAAFCCAESAiAAICCAaNBGBBDDAACCCCAECBBAECDAECEBDBAACAACQPLEEGFABSAGKKFEAKSBKGOIPGAJGMGBMGEFKJHOPIJGNFBCOABCEDJGCDFBCEHAGFDNFSPHHERCACHAEDBGBAICEQDILEFXACFAHBFJBDIDDMAACDAHBAEDXIDQDCFHFEABAFFEOQBAGKALGJANAAEGECAGMGAKKIDEGLJCGBBFGCMDLIDAFBECLRDDAHGIBFBBCOCENDHBGNMEGDEFDGBHHFFMMBGTEDCFBBBBEMAALCKDDEKBEFCEGGIZLFAADACEAMBCFBHHBASEGLCIJMCFOHKCGAOFHQGGAFJGBJGENBAEQIUEGIAHPKBJEPCAMHCEAQBCCOFJDFAKMLLAFAECGIEJEMFAGSVCBAEOLGJKMGJHIAARDBIFDGJIFKEAGGADEHMGJDGFGSBCRLSJAKEDGJHWACVNBEMPEDBFAAHHNCCEcCBCDGNKECCHGLPNGGCPDDMCNBIBKDAEGHMBBQEHIFIGEDLBJIOFBGEEEBCBBMHAFHJFCAEANAKDLMFCGCHPIDICHCJTAAFDEBGFDGIJDCRKGGIICBALEBEHKUKCAONKCKUGCCCIKGMFLDECKQDBFDACACHIEEIBAAJIDGUDSDNJDIEFJKIPCJDGHKMALAGHQGHPOOHILBFEGDHGEDLHFMIAJJFGBDJFDEDFJCNHBEEACRHPAHJOIGHEFFNHMEDGGGHFDBDEBAAHDFBGGEGOHNCCBHEHCJQNDDCRCNSFLIAUEGLLDCHAKJAEIEGFEHKJUIBFCMBICIJBHAMGHNAEEEBBAGBIFHHADHFJJMPDBCECIAEEMFBGFNHECQGAELEGCBBFMECCMHLDUCICJEGGJENGAAIELFYKCBBCBGQEFAFIKFDDBFDCGGFBLALMADABBEFLEGDBFKNHDBFDDDCFIDAIFEXDHAGBKEAMCICAEMJAACJBBIDCBFECAEAXDBCEeCBMELIJHAEQCMJCHDEADIEIGGAFLHAEMDCCKEDGEEESFBHDGCAJLHAEIDGBUAMIEICHEHIAAABLHCAAIDGJGAJEGGLHEHSXGGDAEGGIDJEmKUCIKLADFCHACaDCQFKHKROGGAAGEBDFEMIIBHKFQAAIDGDBJCGGEGICBJJGHBDVBATGOJDIMHHGDKGBDIBAKGAEJMDOADGNACIAUDAANCCCEFHDEHMGHEEUCCAFGJHUEACDEDFEEDACHTKABDCJJLCBDJKFBICDBZEHGJBBBDABHCFBBGMEIABBBCCGKBIIKCJIBEBFECFEDFGDJCCDABBJBBGAIBJOGEACAGGNEEECCABAUOPJHLOFFFKAFQCKDGBDGRBQABBMRGICMCBMBNIBAABEIIBMBBDDFHGBMIIKKHBRGFFCNBPcFMEDAHDDEIECJHAIELJEECKKEBIGIACBBEGOCAJBHABFCBTACCKGLIDHECDAAKDIEGJAKSVDFCDBSHCCACDAPMNJBODCJBBIFMAAAIMFGGCGELABFMKCBBIAPAFRPFDCDCEDWFHTHEHPGNCJBAGGAFFAKDICDBEQHBAOBKADLEAFFFSFFMAFIHDBREIDEAGJCPDDHBDGIADAKGNAEGBEHCBEMCCAKBHAFQAEECFMMMGFDDCJPMRADIFKIBSCGGAWGDDGJJAEIADBAMCFHKAAKFBGEAGDEVGFVBIBHLLFDBKBJACFBEDGEMHAIBEDELNHLIKCMENEAEGEBNAJCBBAFCHJBBDBGFFOHWMFIGdLUIOEELMREAHAAEDEEBICHKASFEEIFELFCBGKALIFCHJECSEAFPSGAHJIBIAEFGBFAGDCFBFVFAJIDCFCYLURBBFOJHKBEL9WDUDFKKFBDTCILYCAKIAGGTCEAGAFCCDEIAAHNOIBFEEEFHIAKGCCKCJNHPAECMVaHAJBBIFVGBHGAFHCJADBDBJEFFKCEDAKDFFHEFAAKABIFAHFJFKIBPDDLBMGLGDGHIFDFBKDICFCCMCVCFHNAINKAECBADIYIBFHFDAAGABOFHGFDJGDDRBCDBGBDKHDJBEJEEGLFOEDLDLLFCBFOMAEBHJJBECQQEAJVCGDNEAUKDONFLHNAFCTJJEBICBODGHHKABRGAOEIKKEFKHLEIHOBEeHGGEPEBCECJFECADAFBLCIDKIDIAGGGCABEBEICACABKDHJBIALHFSBABBLDRFBEAICTMQKECLABAGDCMAJBCBBBFKJSDFMEAFEQSFECBAANJLGBGEICFEFQNOEPDBDIQDMLLAGAAMCLFBMGGKHFHBCHGABFABCHJFGHGHIEKEAFFCECEGQBLMFHHLGGJKENGIDLEAEBKQAHJLDAMIIAHCJEBCEAEABBBIKFGEBDBNNSCJIIFBLBACBIMDOHHDCGANMODHHNDDGBBGGBDIFFXAEJCKABHFHAAFFBBCDCDBFIBFEFDFEIMBAILJFICBKGKFCRGFINFMPJNNIMACCEMBIFHAHBGMIGAWAKKSMJASREDLDEADOFGEEEABFBGCCQDMAHDIBNTCKABGQDCBCTHALCBEDFCBDBBAHCWCQAFJCEBLFDBHCEDQENDUIAEGLAHFUBGAEDJCBBIJDKHFADLLGMDGEEFEACACGIFABPNFYLEERBIFDCASDGCGCCKEGADKEFECDIJGDVAIAEIJRDGCDCQHEBFDGBFEEDGALCDOILABJHMCQBJIADCEJLDBDCBFARCDBILHRBALQDAANFCGHKHFCAMJHBLMHHSDGMDMCHABKFGDKIGADBHYCAMFDFEGBCASKAGLDHBAHBGMDJIDLFPPAAHGACJBDbTNNBEKNAIBGABLHGEFAKAMAKLICFBAAEEOFJFKAGMDBCCQAAXOBBDRHIBKJCLIDPFEHAGGBLCEDAEJAGAEDFCEBKODAICQJFYABCDQHQRGFHMDFFGGLIIFDDCKAAJKDPMFJABSDGIMKGFJIDBDMACHEIKEPDHHNFHOFBBHBGKUHBEBECNHBEAMBASCACCISLNINAHGCMTEPGGBBKLAFNGNEAIBEQDLCXCEADFFIDJPLHMDEBBIBIBMFALANDBQQCESOMEFIFTAFHABAJAHKADKMBDFCGJFBEAILMKFDNKGCCGEIBEJAHEOEGDKGNCBMLTMJAEDSEFHAKCBFCBQBJNISCHAEALODJAOCHDFCIPBCFCGGJHAHICKFDUHDAIAKVFCDECLCBLBKDIGODAPDIBMDDCOHBDGBDMIKGGKACAGABAFCPCLAGCICJAFAIIKGFCCGHPCBEGFCFEMBBCqBECLDEIFIBCMGFAGAICJGCLDIAIIBBIDPADEFACADGHKIDFEBFNKGXCBDMALJUcSWEIHPKIBLICYLFNOCAPCCKNUFNIBAFLNEGGEACQFCEMGBFPACFGJIKGHMGIFDCPAAEACTDEEEGJJGDFOEAHJMLFCEJBBCDRHDLGULHBAECBOKDEFBEHHBBEIMEGAGAKKABAMBDMHPGCCGVKFJEHEHMPDBEIBMDICEDKBJDCDKIACFTGFFABKBHGGLDCFLRENRFCHEKHBAEHGBHEIBFLDRADAAECIDFBQFCCCFIACGEDDGDHAABFQMCNDJBKHKEGAEDCGGUCCKCAKENAIDKCBJGAHOEKCFGDFJAFEDGCKBDFMCASBADCBFJADADEBEHIQAIDNGEOBBBCBMAMAAGBEKBFBACGFJGCIFBFBGAKAJKBCITRAGHPQFFCCBGKFKDBACBOIEQINBFOCKDTCCDIFKGABBJMLFBQAGFGIRGAGDQFFJFEMDEEEASGAFCEVPLCCQFTKHHBDQTDFBMQKMJRJEFDJIHGADEEGAMAEBEDFBCGJIEALLAFEEICHCGCGIAEEBMBKQFJEIQGDBACEMRLCWILFBEKIDHPaDJDJGCBBNMCDBINDADHTFAIOIGAGTdCOJGNTKLLGLGAPJRBCLTGABHDHDDKJGAMGEHNIFBKEIQFMCFFCMEGGJDEILDAGCEJACGCFHIDHDAAABJAGEIELCRGIFBIALHIAHFBAJBICEKFHNDINJBJCONBHBGOBDKAIFEFHCANBLOGECMIMEBAHGGJGMDBEGRAeDNAAAADFMFAMJCHOBKACBTGFGAFBHEBBGCPCLGIEBDBGIBICFCCUJLGGIDGASDEKOFGDGQBGEIILCCHGKGBMGAFMNFQTMFEJJDCMBDCECFCDBBBEELCEHFPDQLCHCNCACFGAHCIBAMEMQBGJGBNCGDADADHDFIBFKBAACBDBCEBRMAQDDDHHEAEEFFAQWBBGKDJBNCJAAGKGAIKOIDKGGDAELJGEBBBGDKHHGADBDIAJPHDBJBIAHCBAMAAHAHACDEECBEDDICFDAHMKAETCHEBBDCICMCAJBOFBDIECFDIGCGVHBBCFACCIIDACHBDJBMCKNDMJOCBMFIECEGDCOCCADJGBHEGLABGSIUGEADFNIDJELIAOBBICUDAAQJHDFBEIJDBAAKKIKGFCKNEEUREBFEMJKHQKENHIAGNDFMDDENCLMIBEMFHBLOCNBEDCOCGPPSLAKEJIFFQCCTLACMNDDBJCEJJHICAUCIAHERGEDMHILJRAKEHBCKEFHKBECCECJGBEOGHOFBEBDFCFKIFAGACDDDBAIHBJFLDACAFLCEAJKHCEBDTCBEEFKHTIEHAGAGFDCGNJCHGIGEGEABLICIBIWICAQLGGKSGAAAIQKEHTFGAKMHDFHBIBEFKOAIDDALGACSBMHHFFIAFLMGJAHFGFGICHHKJMIBPIMLGJFDBGFFECFNFAKGFJJFEFFNADAEHJIHLDKFACNFRGFDKAGBCDDJDGGFCIGLHDAFMCDHJABAGKEMQDFCABHKHBHSJFBARBLMDNGBSCEJJFGHAQJCIGECDIJENWEBABGBOIIPFCBQGFTEGCGDICCCGJDHBHFJFFIPAACHCKDGEMFBODJJGEWGBCHEDECALIECAQHRCWEKEBAGEFGNCEHCAJDWEGDHABEUIFGDIIDHBDHDAECDENANKBFCCEEBNEIBBAGNHCFBAJBFAEDCKDCTDLBIBKGDKAGACBELCAEHDHMFADLGEAGAXFBDIaAGMGJCFNEBKEOHCJBICFKCIIEAJHBCAKDGAGEHEGDISDFABKEFLFJBDCDGCQLCMDIEFAFKBKBJPHDAFEACJGHRCIKJJAHYdIIBAAEGKFJCkMeGMEJAAHGDAAaBEQFGFIPOAACEKIBHBEKEIBBIDKBDQBKHAHAGGIIAEAHPIJCPTCDPAQLDBGBDEDICABEABMCHCBKDMGACJEECHUDAALBHKMDFJKFOCRCKQDBBDBLDWIDIBEHDCCBCGDTAFBFELLNABDDIHBMDBDRADKHDCABDABDNBHAIDGCFAACBKICIKGEHKBICJGAFGBBGDJDGLHFEHBDKGMBLMMGEKCICLEGEDCBBEQMLDJHMBDBMDFMAIFGDAMPCIBCBITCEAKEAOBLIFAEDIIMBMABLHDNIDOKKMSHBRMDHCRBPYDQGJIJAFBICALDCMELJECCIKCFIGADACFGIMBCFCFCADEANEECKGJKFDBGDABIDIEGHAGYXHFCBDKJADCGFBPELHDMABHBBIBMBEDMKDGEAEGLCBIKIECDKGPDFNNDJEBAAHODCXHCAHKLEFCCEGCFHDKDEEFBEQFAFMBIBDJKECFHSFBGABIJDBNAIJGBCLCTFFFBBICDJDKCPCEEAEHABIMCEAEBJBFQDBBBEOMQMHDAEHFONCBEDOGESBGKCQEDDEJDJCBCAAHIGFJIBDIJEICCEBERGHXFEFLLDJDCKDRBGLDCAEGKJAIDACCJLJJEGAGELCDGIBCRIJCDDBJDJJEDFAAADODWIHKDXJOGKBCJONEAJACGCAIDEEFOASDEKEJGTJCAAKEJGBDFJMAQGCHPUADFLIDOGCFGCDAIDAFEHPPBHEAADCUJUJHABMPHOGKH5SHWABEGDBEPKEHOKGIGBCGLBEEOABEEAFGBCNROIEFCGKHFQBQGBDEILLHHGCEIXYJBLBAEHTIFHEEFFMHCJBCAFBJHQIGHJIJAAJIFAGKBHOFAHJPLIKFNACLFQELIDCPBBFLGMCGCFCCGCRHFFDDKJGBGBBCBBOECBBDFAACAAQFHIHDDMDBRDCHDKBFGBBNBAJAAELFKADHFNLFBELOIBAAPRJFCKSMCBLPBMGJEBOMLMLJLHNDHCRHDEBMGDKJAHJKAAPICQIGMKADKFFAIHOFAiHAGGNCFMGBFFCCADEJDNCGAMADCEGCCKCDEFGKBEFABKFJDCGDNFAQDACALBPHACBEBLKOGADDCBBGFDKCHBCBACBMJODDMAEAEIUBGBBDALBHCBGGAAECFQJKGPHDDEIJIFDAEBHOEJHBOGGMDFHBDHIDBDBBBLLACJBJCACEDJDCIGEKOFDMJBFJGENKMNGEJJIECDGMCFFHBCQKDCHBJADCAABAABBGOLIIEAAJLQCJKKACNFBAAGKBOHHFAKEDMEBHHNCDEBJCMFHCDDLEBDEMBAABAEAFDNGAAGHHBEDBKJFHIKGDCOLCFBCBOEEHCHQHEJHQNFHNIICBGKKAEBFAFEKMIIAUGIMOMNEULEFJAECBKFMGBEBACCACGQCIEHDKCFNEIEAIODEDBNDEPAAGHDEBDDCBJBUIUCFDEGAJDAAJGIAKCHFUGAKGHCHDSHBDGFHCFAIJFGBHCBDHIMBGAEDACEDBAMDABNPJcHEGXLQDBKCSFKCGGCIGCDDMGFECJIJGARCKCAGJRBEABCMHABBFGDHCCBKAHCDIOJCEHJMESCBGFABINRAIHGCFEPEDFGNFTBAFSBAAPFGINMJHIBMLLBLILEYDEOJGEDEFMDECEIIDADFUCCGAHFCMBADQKDEHFAADBACOAFMBNJPRIBDGMCLCAfTLHDEKPCGDEDEPLCGHBMBOHEJEAFIECAGICHDGCGGABAHICDXOFFCJLEAQFCJGCNBGFAAIDDBBADCFBICEDCEIDGMAAKCIHBWDDBAQFONGDBEDLLECNIGLABCIACFKALKFPBDSHCKMICBHIHADODGFBGIGNDJFLLJMDLFFBEKSFDMCABNLACDMEFMGAACEQLLALADEMIRIPKMAEMJDFRGNEGIDASDLIZBCBCFBGHHHJHCCGBEIFGCIHBHDFBCQKIAWKICDOJPCDJADBBALEDBMIADFGADADEDEJOMEBTKEGCKCMDBHCJIOGCBQGJABOPPQPBABQGDFGKEACAASBLPMQCHCBDNOHJEKCBFJDMPDABCKILJAJIGGCDOLBACGOdHBCAIJGCJAODKGGAANFEFKDECOLCDABCIIMKCKBGFDDHGFEJCFFGEIEHDDDMIMBAEEKFNBAAIDAFMQFAAqEMCVAGEFKBAICDBCDGAJEGRNMEICFBGFRCGEBBCGCGLKMAJCHFRIIVEBBKCNFOYMYEGFLIKBLGBQHNNKBANACKNYJLGDCBFJDEIAEGGFGAIBDDTBADBHIKGDICIAFAHFEEDCTAAEAGHBKLESEGJHIJHBCHBBEAPDBNESLNDADABMECGBBBLFCCCEIBIBIAEKCAAECDMHLIBGETSDLEFCJMPLDIMIMFEECEKLHCCJICCALbGHBIBMDJAKJFADJPCJLDCFBMHGBIJCECIGHFHBNEEGAABGHDDEBACGAGAAACFBCJFAAABIOBTBFAOJKCACCFBKAQGEIGAIGRBMBGABJEJLGCEADKBFPEDCBKBBBBHMBIUEECBDDFAECFECBDKOCGBJEBMCDCCBQFMAAIDGKBBBDAABFECCAAAEIDKAPKDEEPTAGHLMFDACDEEAGFAFCAKCGKGJGFOEMFPCCFGJKGCBCJOHDDMEEDKIPEAIDMFDPDGODEBCGQIABDIPPHABIBRKFDDFONAFEEQIIJPFCFAHKFECBAECGKAIACFHBGGJKBEJLCFEEIAFCGACMBGGASCIODDCMQGHCDICITJCYEJFBKKGDDNWFFAJGECFNMCFDANFCBFLFBIUGADEPfBODEPLKFHGHIBJLHABLPICBHBHCBIFIBKEEJNGFFOCKMLSBAFCIKBGJDEEJDBIDAFIEGAJDKFLFDEBADCEIOENCLMGAFGELCICHBCCHBEFCIBFRNKLPAHAOFADBBCAAIACDIBBIFJCJAEBGKCIGBGFGKHBMBDCINCYDNEAEBBHGBCOFAHSDIIEDbGHACFCHKBLKETCLKCBBACAGEIAFAAAAAAABACDCAABCABABCABBABAAACCCACCCAACADCABCACDBCBCBAAAADBCADABABECABAACBDBACBACBAACABBBABBGABBCBAACCEAAAEBCCABCBCCACAGCABCBBAABEABGABCCAAABBAAACEAAACABACAABBBAAACADBACAEECFBGCADDCAACCAEAAECAAACABEAADDCCABBEACEBBCDDAACBDAACBDCCEBCEAEBCBABCBACBAABBCCCEFACCCEACABABABAADAADAAACAAABAAACCABBBABCBACACCACABDCCBABDEEAGACAACAAAEACCBBADECCCBACCBABACCDCAACCBACAABBCABAAAAACCDAACCCADBABADACCDACBAAABAAABBBBBBBBCBDABAABAACCACAABAAACACABCBAACBAFCABEACABACEDAAAAAABBAAABBBABCABCACDACABBABBBABAAAEBEABBEEABABCCBECDAEBAAGAEBACCGABBAEABBBAABAAEAACCABACBCCCECAACDABCABCBACACAACABAAADBCABACCABAAADABACGBDCAABACCABAEADEEBCCAADAADCAAECABAAAAAAAECBBBACCAACFCCBABACDAEEBAAACEABBAAABGEACACADABAEBBAADEBABAABACAAGBAGBBCDBBACDAAACAABCABEBEACCADABCBABAABDBACCACADACADAEAAACAACAACCDAABAAAAAAACAAACBAEACCBAABCAFACBAAAACAAACEAACABACADDBAAABDEACAAADABCBACACDABGEBBCCCDBACCDABCABBABEFAEBACCBAGCBCBCBACBCCBADCADBBBBAABABAACBBAAABACEDAAAECABCAACAAAABAADBEFCAECCACAEBADBABCAAABCCADACAAAACCAAAABAAABAABAACBBACECCBAADBBBACADBDBBEAABECBAAADCGBABCBBEAACAAECADADCCBBBECCABCDBACABCCCBBACBABCHAAAAAAAEBDDCBCACCCCBBABAAABCBBBABBAADDCBCCABBBEBABCBBEBAACAAAAEFCBCCAAAACADCBACCABCDCCGAEABBCBAABBAEBDCDCECABAABCBACAEBABEAABEAFBBCCEACCCBAEAGBAAAEADDDABABBEAAAEAAAEBDABDCCCCABBBACAACBACBACACAAACABCCACCDCAEAEADAEEBBABACBCAABFBBBCBBABBCADDAECECAAGBBCEACACBAAAAAAEBBCACCEBCACAAADCEAAADAAAAAEACAAEAACBAACBCCACEEABABCABEAAABAACCCAACAABBBAAAABBABCABBAAADBCCCAAABCADAAAAABCABAABBCACAACDAEBCAADABABAAACACDABBBDABCAEBAEACCBDAADBCBBCCBAAAAAAABBBBDAAABACCAEAAAAAAAAABAABDBAAACAACAAAAAAAACCAACAABBEDEGBBBAABCADAACCADABCCBADCACBBABCBBBCBCEBCABACCBBEACACBAECACBAABABEABBBABCAAABCCCBAAAAABBAACBAAABAECBCCBAACBCBBDBACABABEAAABABAADECAACDBABBABBCACDEBAABCFABABABABBCCBACBDBEFCCCCEBCABABGNCABBBBACCBCCECAEBAEBBDCGAACEBEBAABCABBBDCAACCBEBEBECCABEACDCCCABCCAAAAAABDAAABBAAEAACDAACBAACAAABDCACBBCCABAABBBBAABAFACCBCABABFCAACCBBAAAAEADAABCBABACBAABBDDACCABACCAAAAABBBCAAAABBBAAAAAADBBCAABDBACAACBDCCABABCAFAABCDCAEBAACABBADAADBBBABEADAABCABCCAADDBAGCCACBDCAAAADAAAAADCBBACCBACCCDAAACDCDECDCBECCIAAFCECCFBBCCBCAACDEABEBABAAAAAABDAACBAAAACBCAAABBBABBBBAABACCABDABAAABBABDCEAEAAADCAAADBBBBBACCEABDABBACCCAABCCAAAAGCCAECACAEBABABCBABAAAABAEBCDEBCABBBCBAAABADCAAACCEAABCACAAABBCBAAABCAAACACCBCBAACCBCAAAAABAAAAECCCCCACCBABACAACABCAAAACBBBAEBBACAAAABCBBCBCBACBCABAACAAACCCBBAACAAEABAAAEBAACCBCABAAAABAAABCAAECBAFAAAAACADACCCABACACABBABADBCACAAAECACCAADBCBCABAAADAABACCBDCCAAACAABABAAACAABCBAAECBBACCCECDABCBDEAAABAABCACCCBAECAAACACABAAAACABEBBCAACBCAACABACCADCACDBCADBACCDCACABABBACCCACACAAABABBCBCHBBABECCAEBEFCAABDAADDCCCDCABAABGAFACABCACDCCCBCABBECEDAABDAAACEFBBAAAFBAABBBAAAABAADABACBCBCACADEEBABCCABGDDEABBEDDDDBAAAACDEABABBAECAABBCBCEAACABAEBCBACCAGBCBBEABCCBBEAABACAAABBECABBACACECCCBCBCCAAAABCBABBACBBAABAAAACCACACAAABAABABBABAAABAACBCCBACAAABCAAHAAABBCAABEAACACBCECDBAAACACEACBBAACBAAAAADBCBBACAAAACCBABCBACDAAAAABCAAACAECABAACAABAACAAAACCCCFAAAACDCACCCBABACDAEAAACECCACBCBBCBCBAACCBACAABAABEACAAAAABAGCABBBACAAEBCACACCEBAAABBBBBBACAAAACBBDEDACABCBECCCCAAAEAACCCBBADAADABAAABAABACCBEACBAAABCBACADEBAGGBAEDDCBDGDCDAABAABEABCDABCEABAAECDBADCEBBACACBAAAADBCBACBCCBBAAAECAECBCBCBCAAGCEBAECAACAECFADAEAACACACABCCBBAACABEADAABCCCBEAEECABCBBACBBBDCCCCACACBEBCAAABBCBCBEABCBBACACBABBABCBBAABDCCBDADADBBABBCCAACAACBACDACCACAADABACACACDBCEBABAAACABEBCAABBAGAADCACACCBFAAACEAAABAACAAAAACAAACBAABAAABAABCABACABDCCACABBBCBAABCBBBABACCCAAAABCECCDBCBEABCDBCADEAAADAAAEFBBACDAEAAABCCAABACCCAEBAAABBABAAABACEEADDEAABFAAAICFDFCCDACADCABCBECBACCBACCBACCACCBDCBBABAEABDAAECCBDDBBABAACCCCCBCAGCCCCEEAABECCAACBBCCACAAAACEBAADDEGAACGCCACCBBCFCCCBAAAECAABAAAACBAAEAAAACAAACBBAACADCBAAAABBAACCBHCBCAACDBAAEAAABBAAAABABBFCBBACAAACBCCAADAAAFAAAABBACBABACBBBAACAAAAADBBCAABCBAACBAABAABAABACCACAABABADBAAAACACAACBBCGGCABECBBBCAEBBBBABAEECCEACAAAAAACBBCACCCAACACBACCAAAACEAABDDAECACBCAABBDAAAGCGABAAFAACAACABAAAAEEABEEABBBAAADCBCBBFABACADAAECAACABBADBCAEBEEAAAAACFBADBCCCECCAABDCACAADCFCAADAABACCCAAACBBAAAABAAABACACACAAAABBABAEAABBAADCGGAADADGACCAEABHCAACCBDDBACGEAABBBCABCABBDAAAEEABACCAEAHCCAACBGICCADIBCBCCCEAECAAAAAACAHBAEEAAAAACCBEGBBAEBCACBBACCABCADCACBABABEACAEAEAEAEECAADEACABECBABCBFABADDABBAACBGBEDEABBCBEBCEHEGECEFACPCFBEGHABEHBEGDHGAIAGDFZEBBCBGADJCAHICMBDJBCGCCEGFBACAFHBKDDFEDEACCDFEBDCQCKDCDSHCDCKCDHOBECEGCBHCDOFCDUQCGAEADAGEECEJFGEBABFGCAAECMBACDLHBDDCBLCCDNBJDHECDDIABBDBHBElAdGKCFKBEABFEBAAWBDDFEMNPIGFFSDIBDBVCBDEBHCCJaFGPnGJKBKMIJOiIGLCAGIVPKIIRFODZCDELtBfSEaAFFhCLPCMNOKPDHEpSFjFUBRhAJKMFIJjCOCGHGBAGCKDBBMOAFQEEJGLHEXKCGBWHBHGCxVAAMLCGIFFKVRODXDCIIHJLPjGLKNCjbKCGGMDbWEkBAgQOFAiBKLQiICHESLNFElACoFKUHEJGFPEIHGMkFLKBTOSWOUCeSLBODPHMKFJLWCFPDNgAOTDHePKBJTQNEYPBPBQCPWKDNAHEHDMhUDFINQGAKCTEOJBFIONCSBKBcHHCCFDGNAEECHlXMTHJFBHPFSDkKHkeLlAsHRBhDPONHFXCHFIIKDDRedPBFCYVDFKJKFPKFCNRDQHVNHEIIJNTOGATWOmEBOAHEAZTIBPOEFDDDNSbDFNGTHFVNEKCEPcMTSTFJNDHSUEJGKFFUJCDdFdEEAICBGOFCbFNAGjBFBERTSMLYJOBEGFLCBDUBFMfATHPKAZIEHHIKNFEHOGGLGrCUMbMhjFGZTNGRQqSMCHFACDJBACEREDBGBIbDGKJFDGNFCWEGGURTNvkRJTJBVOJMAXGIJFJnWDXcNBBHnONEXCdFKLIjIHDWLaMEIEDIFSRIWaZRKDLKHHAkaKPEHCXGCAHPIBINJEKFAEPJHmKIBTCBDJaAWUKKDLIBLuNCBeCAHQGAeEFQDgJJEXUSBCKLaAAJiaFIBEBYIQBCWDEIEPCYINJAJNBgAVPWDYEALAIIJDAZLSANnGAUAJRzQAGKtMIZlQRHLfXMSHgTCzEDKBGOEDhkDNJXMEQQJOCIGhEFVPBDoBRPSEBGBFVGELHSVaBXEOX2HNDLNbWBHPNRBWXLIVEGbEZXCFQQXQEVFRZBbFNAAAABAABACBDBABCAAABAAACAABAACCCCABAAACAAAAAAAABACBAAAAAABAABAAAAABACACAAABAAAAAAAACAAACAAAAAAAAAACAAAAACAAAABCBAAAAAAAAAABADAAAAAAAAAAAAAAABAAAAACCAAAAAAAAAABACAAAAAAAAABAAAAAAAAAAAAAAAACBBAAAAAACABABAAACAAAAAABACBBACAABAAAAAAAAAAAAAAAABAAAAABAAAAAAACBBBAABBABCBACAABABACACAAABABABABCAAABAAABAABBACAAAABAAAAAAABACBACAAAAAAAAAACCAACAAAAAABBAACAAAAACAAAACACAACAAAAABACAAAAAAAAAAACAAACACCAAAABAACCBAAABCACECCBCCCACAABCAAAAAAAABCABABCBAACCABAAAACAAABAABADACAABCACBABAABABDAAACAAAAAACAAABBBABCBACBABCBABBBCCBABAAAAAAABBCCABCAAABAAACBABAACACAACCCAABAAAAABAACCABBCBAAAAACBABBACABCABBAABBAABAABAACAAAAAACAABCCBAAABACABAACBDCBCCAAACBBAACAAAACACABAAAAAAACAABAEABAABAAAAABBAAABAAAAACBABACAAAAACAAAAABCABBAABCAAABAAABAAABAACACBBACABAACBAAAAACBCAAAADCAAACAACACAAABABABAABCAACAAAABACCCABACAAAAAAAABAAACBABAAACCACACBCAABDBEBABCCAABAACACBBAACAAAACBACBACAACCAAAAAAAAAACCCAABCAABBACACAAABAAAACABAAAAAAAAAAAABAACCCAAAACAACCBAAACACAAAAAAACCACCCBBAAAAABABACAACAACAAAAAACCABAABAAABCACACABABACADACBACBBACCAACCACCDBCFCABBADAAACBBAAACBACABAAAAABAAABBCAAACABBACACABACAAABAACCAABAAAAAACAAAACAAACCAAAAABBAABABAABAAAAAACAABBCBCAAAAAAAAABACBAACAAAAADBAAAACCABACDBAAAAECACAACAAABAAAAAAACABAACAACAACAAAAAAAAACAAAACCABABCAAAAAAACACAAAAAAAAAAAAABCAAAAAAAAAAABACCAAAAAAACAAEACAACBABEAAABAAABAAAACCBAAAACAACAAAAAACACBBBBCABBACAAAABACAABACCBABAAAAAAAAAACABAAAAAACAAAAAAAAABAAAAAAAACBAAAAAAAAAAACCAAAABAABAAAAAAAAAAAABABCBAABBBAACBABCAABCCAABCABAAAAAABABCCACBABAAAAAAAABCAAABAACBABBABAACBAAABAAABABBAAABAABAAAABBAABABAACCBBBCBBBDACABABCCAAAAAABCBADBCAAACAAAACACAACCAAAABBABBBAAABCABBACBAAAABCCAAABACCAAEAABABABAAAACBBBBCAABCCAAAAAACCBAABAAAABAAAAAACABAAAAADBAACCBEABABABBBAAAAAACCCAAAAACCAABABBBBAABAAADAAAABCAACACAACAAADAAAAAABBAAAACAAAAABAACBBAABBBACAACAAABCACBBAAAAACCBCACAAAABCBAACCAAAAABCAABACAACCAAABEBAAEAAABAACAABAAACAABAABABAABAAACAAAAAABACBCAABAABAACABBABAACAABABAABACAAAACABAAAAAAAAAAAAAAAAAAAAABAAAAACAACCCAAAACCAACCBABCAECCBAAAAABAAAAAAAAACABBBAAACABCACABBABEAAAAAACBECAAAAAAAEEAAAAACBACBACAAAAAAAAABAABCCCABAB0JJfSQSmGocCUUev-jhUHhJBAFEeOXCGmckSKQWGUkWaWWiaaYkeakUeeWYaScqeecgaIWUcaSgQascgaUieeiWYoYgaSekucoWcAWSQiYaQgseceMmWgcSaaoccWigwUYWSSUSasiiUykagiOaIQmKWccwceYq0SSUWgWQmmgiWeacYcWySOaOcaWqmmMq-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DEANEGBEEEBAIOCJCKXCHGAEGCEFADAHHDHLABEBCAQCDBCBQLCNDLFAACCEFIEAEABAHHBAAFAADEJFKCGGBDGJEGAEADEHBLEYDOCBCHDAJEBBNCANLGDJBBJIABJCCJBEIADIGAJCBCCDFCDGHLHFGIDFDDCACBDCEPFEICIHKCCCOOYAISGFEKFBQGHICBENBGDBJKGKCAOEEEAODECBCBIVBBCFBFBBGDGCJAACBBOCAGEGBADECADNDBGKAKTKBRAFEAFECBDDBCGHIFBBGMEDCBFGEDHCHCIBAFDDDBHFGDCBFHCEIDABGDIAEAFEJHADFACEPHCDSHEJOIAJHAFLFCDAABBCBAPDAFFDCDJIEBJSFKBCCLDOAHJAICDGJEFFGDAGBIGCBAFQHEGAHDJBJAJCJiPIKDDAGSFCEFCDFAIBMSFFEFAALCAGADAEBEMGLGANCGEDDIBBEUCGAGIFKFGIHIAFCEKCLCHGEECCRAJFDIAGEEIKHBKALCGFIMDDEAEMIFBEGNKHFAICBFFLFFBCKABBICADIACGADAKBFDADBGABJHCEGOIJYsKIeGCEGGIJEHHADCFFKCDCHAGDFBCIGCHAAEAIDBHBGBFAEAHDGCDBBAABDCBAEDGBCCCCAFOBUCYDBGlEJCAGJCCCIMHBNHECBQFAAFAFEZCIDMFCLMIPCCDBNKEDCLEGKGABIDGABJDDFEAEBECFHAHQLQBCNCDRSBLADZhEEOBBARJADDFLBDGFCFEDFAAGDBGEDCLBJOBABLDBDDDADAEHDHABLCBECFBGBEHGTKCKHgOICHCBIAEEOFDACDNNJDQEHMDGEKDHIEDICbFHBGPBEAEGDHJCADEGICBDDABAFBICBCCCBGJDBDHKOeFCREBECCBCFIDKEBKABCKOFGACECMCCBECDIDJEJNAHICGAGGDFEBEDBCABFECABECLBMJELAABUATHOQGMIAGEAFJCHGCAHTBMADABEMCDGFHGEADQJCFDFFACCEADJCBAHACGECCEKHDODAFKDDCDNBTBICA2GQLFHKABGGDEBHABJTLFJLFLGMCBAAIHCFDINIGBCIBEADDIDEJNEHBJIEAEAIEHBEBGFAKBKBBEKAaqokMLECGaBDDNDPFCAJFJGIAJCJDCLCIHBNCLNABDJLCABAAAECEGIGHEBCDGLGDFFBGBCCBDCAOFPIJJLKEQCCBEAFBBALLEIDBGEEJCBEAAHDEJERIHCDCGDJCCBCJBDAGDBAJBAAHAIABCABAGAHIBAAKIGFEEObEKHAAABFCFGDJHCKBCIBKHFFHADAKHEDCHOCBDIKCBCABCCBNADMIDAEAKJGEHAAACCGICDDCCIKBDAFMVAAEBBDGAAMBEBFLKACDCEGFCDBEEDJCAGGFGBOGCCBLCCOHGGHBCBBDCABBIACAEHBABAAMGBKOBJHBYAGIACHJBBEJACTEEEABOCHFBABBCBAGGLEAEIMBCGGCBDCADHBCEECFDAAFCGBDGDDGDKCDCJFANWOAHACBBADGOQABCQIODGDCMIAFBEAACFUBGJAHEOBMDBAFKAEMAHBIAIABDFGFCFJCHKaAJGBESEDBKYCWWIKaGBDJGCEKBGAANAMGGGJMBDFAGAAACABABGCDKECQBAFCBDEEBHDEAIDDMACFAEEAFFGHDPLAKdPBbAHEDCADBHAKIENIBLHGMAGBFGBBCAGBIbEDFBDBECCCECAEGGLABAEGDGDBEAAFDDAPCDKFFEODYBKFGBLBBFGBDBAAAACJEFIAGBBKGNCODFHGJHGAEHGCCFDDFHFCJFCDIEHFDHEIFDLEBLAKECFIAJHINMRAOCEAACBAECCABAQAEKBHJBGBHDFCEAHDCEAAEDICADAGBAADFDAFHFEDGHECBBEAGEBCDGODMFLMDPLHADIBBBAHBAJDDGTDEOHIBBJBAFDDJAFEHBBCDCFBEIEADDBCGCAGEBGFGBCBFEDAACAGABJENHEFHMEGHDHAACDKGAGBDAIUAFHDSFBFCKBCBBGIDYAAAOUGEBDDCAAEDABJIBCABJBCAAAEBABBEAEIFHFKGhJFNBECBBDDDFECEAFFBIDFOGBFACHCABCIEJHFABIAABBFFADGAEEDIBBADADFAGBDAABEBIAEALBKXcFLUDHFGBBDFCGCAIOCGBDNHEEAHFCHFABDLQGGBFKBCBADCAAEDAABBEECEBEDHCFEBCACEHBIIOHEVNBCGEAEFEDCAAJCAGEJFAIEFCBEDCAHGHBAGRBECKFADHBFEEAJHGBEFAEAEKDDEHKAABBCCBAJADUJHMdOREAAADHICBGKBGIDIOGBCACBADAEGGLDBCBEKDFCCCEBGCGFGBFEACCGGCBJKCBEAGEAADSGOCIADJVELEACBBABDAEHDEPEHFPGMLEFGOFDLEEDEJBBNKYADDCAFEFABIAAACDBDAFIHCABCDADFDAHNHCAUQMBNHBACEEKCCBFBENFDHGQCAFCCIABKAFEKREFCBIBCCEACEGBGCBKFBBGAJECCABACACHIDEFEEKTEMQEHAIBEECQEHJGDBBGDEGOAAKDIJGIANCHDGCABEHIJLBBAHBFHCDCDABEEDAGAHIABEKBIDEPJGCFQCPKAICKBDLBFEFFCBFJKELEHBKDBCBEAENAFQCKBAFBFGDBGECJBBDGACGAGFABAFMCDDBFGDBAAMYFA-wAGKIIBCHNEHCBGMKDMILSMBJBCNABHIDCABCDBAUAIFBDBAEECJPFDEDBDIEDMGPBACDCACGGBDBCNQJEBBBECIDDBDFBDBECNGGKKJBCIJEEJBKHCSDDIHZCEDEADFCCAJAOCBACDGCAAAEDDGBCCCJNBCDIVEGYGEJAFBAAAFECEBEHGBBDNABNBGDDEAKMBKABGBUGICAFFBIFEBAFDBAECGFDKGBCACGGACBGABLHSVGDBBBGDCBFBBAHCHGHACBKNBCCADBFIGRBDECBCETABEEGDFHCCBCKAAEBKCBAFBBFAGDEBABCIELEMDRQCAEEAEEKCGAGACDFGBGFBGLEBECLGDUDDJBCHCAABCABECEFBIDFBFFFFCBAIFGADDEHFLOQIAGDABEDgDEFCDGBBBLDFAAADEDOIBEKELDOHBBFABABEJBDDADKAAJCFDGCAADDDBBCFBCFAFAEAGFRBNIGNIDGGCADAAEEBAFBGEGAGHIACABGBLAADBBACGBGEFcIFAAGBBDFIOEAREICAFACDBEADBEADEIHGBFXFDhAeAGCGCACAFCEKAGGDLIJOEFCAFCDLDIAJKFGIBBAIAFDAAAAFBCBDABABBGICAKDLBDEAGBUFMAAERIYCCBCGAGDEBIKECAOFELGCFJPGMEHOEKBFQEHCKQACEBBCBGCCGFEDEADFCDDKGCCDBIBBAKHARJCRvnHJDCDBACDDBFCKCJJIADCAIIABCCLKBVEENAIHDBCBIHDBDEBQCCBDEGCIABHGEBBIEAECDDEHMNDQiAGBBBCDECDDBDHBCVDMEHGHAIBDAHBAAFDHCGCDCJBGCGCCDCCEEEOCACAGDHCCECABCBFCHFLHBCBDiIFHEFBAADIBAAQACGGFGECHKEDFBDEKEBAGEEBCMFEIABDBAFECBACJEIAEGAFGBACKICCABFFIJHAJHDIMADGEFFICCIGCFIEBFDFDDCIAHDAAGODKGFGGLKGIEBKBBDAJJFKDCBBCGDECEIABDAGEBARCMLMCADEGFDAFDBFBGCBBDDHAFEGDDBLFKEFKGFGHEGHABMCCAFJEDCDEJACACECEQGFMECGAEEDDDKDOADBBNACXEBDBECBFALBIBCDHKGYODFCCFMSFJRIKDCEBMKCCBANCFABDJHAGAABHMCBEDLBIADIBDCQHEDEGGCEWAFCEBBACGEFBBBGAEJMKBDHEHDEACKEGBKICCSCKEEDFDCAPBFGGADCBDBDDCCBBFGGECDDEHHOHFBHEAHECBHBHGCBBBeECFOHFCHFALEAFCPEHMACCIIAFCFGDGDCGQDBHBGBKHGBLGCAADBAFEASEDEFfHOGBAKCCGHHFEGEGAJMEIBKGFICBEBCEBBHMQHECPNCDICMDAEBFDEKCFDBGDCIAEHDCGBJGDDHDKXDCBABGCEDFEHCDDCBAKMDFBOFBBHCEAECEBAKEFFCAIDCJBCGBECFCGMJDBAAIFECBBGACDGACCGSBDIAIPFQGDGACCFCCBGFBMQCHFHFTFVBEOEFCIMHHGBABIHCBGDFAICEAADABDDBDKEGCACFDBBEBHHABJGAbVWGDCCDHGAACECNBBPCACNKEDCJBBHBGABAEPCGFMIDCGDBDBAEMICKDAGBGDHBEEGCACEIHGGLFbKLHbnBCHCCJDAFGGECEFJGBEBIGDKBHAAJEAKEDKGFCFBAGABHAFMBHFPGGCDEEEEJIFIABCGHBJCAMCEKhVGBMADCHAAFECDCDJFIFHNTDAICEFFDCGBFEFHCDLHBABEKAECCBBEBABFDBDJICICCBGEGCGDBNAPKBGBBKBHDJFBCHGFBCFRGKDDIGBCIACECFADFMEGFAFOBDEFBBDBHIGKEGCCDDCBIHACBBFGFECDBJKMJFcILFCACIAGADEBCBJJAAGGJKGYDCFBAEJNIMAAJGBLAAAEADEGGGDIBGCCFDCBBKBPBBCBAAGEBBEVEVBDEaAABABAFACDIEBAIGGHKEBEBIJAMCDADCYFECFACFCCAAHBIECEBEDBBCGCABIACGFBCDFCCBGAKOCLFUHBIECCDKBIDCGCDDJBTJAIFFGEHBAMGJNBGJEAEGKCLAGKDMAFFJBCGFCGDEBFBJBHFFCIBQHMJPDWKFCBEDGBDDEEAAGDGBHAFGBAEHOAFDEEBKBFADDIEMCEEGGEJHHHFEDDABGEEGGEDKHFIEBBMCEKDQFBGBDGAAEHHEBCAFGFDMELNCCEACGDNAOQCDFJAEJHBHFBKBADDAMAAEEECBJFDBAMDJDGAACFIABQGOBRGPEAAAHCHFDCAAAHDOAFDCCLBBBEJFBBCCBABAHSAHCABBICFGEEDDHDEGNBCNBCBKFHNMDECFJMFWZFIfFHNACAFDEDHCALMIEGNKAABDDAHABNGGBDKECNADCFFDEBANFCJGHFBGHCGDADDHFACCCAMCBCERfPIIAIBHGBABEACAFBLKADCOBECEBDAAQABGFEBALFFDGCACDEFEEHAGBEIADDDGGDCKBFEBJJDGCEEiSAFHHFCDGEaEVHYK3FhVM4mOAOGgPgKLiSL-XZXPFBfaEePMEUUHHaAReOdGHKJUWVYLSKbQ5BNPiaPTILi2mss0eoqswmmmuysU4-ummkuc-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-cYCSgeCCYZkdJYbdhHfZFcKnKB";var SA="enable f16;struct ve{a:u32,b:u32,c:u32,d:u32}struct we{start:u32,count:u32,e:u32,c:u32,f:u32,g:u32}struct xe{start:u32,count:u32,stream:u32,h:u32}@group(0) @binding(0) var<storage,read> M:array<u32>;@group(0) @binding(1) var<storage,read_write> Fd:array<atomic<u32>>;@group(0) @binding(2) var<uniform> F:ve;@group(0) @binding(3) var<storage,read> N:array<we>;@group(0) @binding(4) var<storage,read> i:array<f32>;@group(0) @binding(5) var<storage,read_write> ua:array<f16>;@group(0) @binding(6) var<storage,read_write> r:array<f16>;@group(0) @binding(9) var<storage,read> va:array<xe>;@group(0) @binding(10) var<storage,read_write> ib:array<f32>;@group(0) @binding(11) var<storage,read_write> l:array<f32>;@group(0) @binding(12) var<storage,read_write> G:array<vec2<u32>>;var<workgroup> j:array<vec4<f32>,1024>;var<workgroup> m:array<f32,2016>;var<workgroup> Wb:array<f32,128>;var<workgroup> Xb:array<f32,576>;var<workgroup> jb:array<f32,72>;fn X(Yb:vec3<u32>)->u32{return Yb.x+Yb.y*65535u;}fn Ub(Zb:vec3<u32>)->u32{return Zb.x+Zb.y*4194240u;}fn fb(Gd:f32)->f32{return 1./(1.+exp(-Gd));}fn gb(wa:u32,Hd:u32,Id:u32,t:u32)->f32{if (wa<Hd||wa>=Id){return 0.;}let Y=M[wa*2u];let O=M[wa*2u+1u];let ac=Y&3u;var u=i[0u+ac*32u+t];u+=i[0u+(4u+((Y>>2u)&7u))*32u+t];u+=i[0u+(12u+((Y>>5u)&127u))*32u+t];u+=i[0u+(140u+((Y>>12u)&127u))*32u+t];if (ac==0u){u+=i[0u+(268u+(((Y>>19u)&255u)&255u))*32u+t];u+=i[0u+(524u+((O>>15u)&127u))*32u+t];}let Jd=652u;let Kd=O&127u;for(var xa=0u;xa<7u;xa++){if ((Kd&(1u<<xa))!=0u){u+=i[0u+(Jd+xa)*32u+t];}}let bc=(O>>7u)&15u;let cc=(O>>11u)&15u;if (bc!=0u){u+=i[0u+(659u+bc-1u)*32u+t];}if (cc!=0u){u+=i[0u+(673u+cc-1u)*32u+t];}let dc=(O>>22u)&31u;let ec=(O>>27u)&31u;if (dc!=0u){u+=i[0u+(687u+dc-1u)*32u+t];}if (ec!=0u){u+=i[0u+(718u+ec-1u)*32u+t];}return u;}fn Ed(kb:u32,H:u32,ya:u32,za:u32,fc:vec2<f32>)->f32{var Aa=i[23968u+H];for(var P=0u;P<5u;P++){if (kb+P>=ya+2u&&kb+P<za+2u){Aa+=gb(kb+P-2u,ya,za,H)*i[36905u+P*32u+H];}}Aa+=gb(bitcast<u32>(fc.x),ya,za,H)*i[37065u+H];Aa+=gb(bitcast<u32>(fc.y),ya,za,H)*i[37097u+H];return tanh(Aa);}fn Vb(Ld:u32,Ba:u32)->vec2<f32> {var gc=i[38153u+Ba];var hc=i[39209u+Ba];for(var Z=0u;Z<32u;Z++){let ic=j[Ld*32u+Z].x;gc+=ic*i[37129u+Ba*32u+Z];hc+=ic*i[38185u+Ba*32u+Z];}let jc=fb(hc);return vec2<f32>(jc,(1.-jc)*tanh(gc));}fn hb(kc:f32,lc:f32,Md:f32,Nd:f32,mc:u32,Od:u32)->f32{let aa=min(Od,11u)*32u+mc;let Pd=tanh(kc*i[24000u+aa]+lc*i[24384u+aa]+Md*i[24768u+aa]+Nd*i[25152u+aa]+i[25536u+aa]);let Qd=select(lc,kc,mc<16u);return (Pd+Qd)*.5;}fn ta(nc:f32,Rd:f32,Sd:f32,Td:f32,Ud:f32,Vd:f32,Wd:u32,Xd:u32,Yd:bool)->f32{let A=min(Xd,11u)*32u+Wd;let Zd=select(i[28872u+A],i[29256u+A],Yd);let ae=tanh(nc*i[35472u+A]+Rd*i[26568u+A]+Sd*i[26952u+A]+Td*i[27336u+A]+Ud*i[27720u+A]+Vd*i[28104u+A]+Zd);let oc=fb(i[28488u+A]);return nc*oc+ae*(1.-oc);}@compute @workgroup_size(64) fn a(@builtin(global_invocation_id) be:vec3<u32>){let lb=Ub(be);if (lb>=F.c){return;}let pc=va[lb];var mb=0xffffffffu;var qc=0xffffffffu;for(var nb=0u;nb<pc.count;nb++){let ob=pc.start+nb;let rc=M[ob*2u]&3u;if (rc!=1u&&rc!=2u){if (mb==0xffffffffu){mb=ob;}qc=ob;}}G[lb]=vec2<u32>(mb,qc);}@compute @workgroup_size(64) fn b(@builtin(global_invocation_id) ce:vec3<u32>){let sc=Ub(ce);if (sc>=F.a){return;}let Ca=N[sc];var tc=0xffffffffu;for(var pb=0u;pb<Ca.c;pb++){let uc=Ca.e+pb;let vc=G[uc];G[uc].y=tc;if (vc.y!=0xffffffffu){tc=vc.y;}}var wc=0xffffffffu;for(var qb=Ca.c;qb>0u;qb--){let xc=Ca.e+qb-1u;let yc=G[xc].x;G[xc].x=wc;if (yc!=0xffffffffu){wc=yc;}}}@compute @workgroup_size(32) fn c(@builtin(workgroup_id) de:vec3<u32>,@builtin(local_invocation_id) ee:vec3<u32>){let ba=X(de);if (ba>=F.c){return;}let s=va[ba];let rb=N[s.stream];let q=ee.x;if (q<s.count){let zc=s.start+q;var Ac=G[ba].y;var Bc=G[ba].x;for(var Da=zc;Da>s.start;Da--){let Cc=M[(Da-1u)*2u]&3u;if (Cc!=1u&&Cc!=2u){Ac=Da-1u;break;}}for(var Ea=zc+1u;Ea<s.start+s.count;Ea++){let Dc=M[Ea*2u]&3u;if (Dc!=1u&&Dc!=2u){Bc=Ea;break;}}j[q*32u].y=bitcast<f32>(Ac);j[q*32u].z=bitcast<f32>(Bc);}workgroupBarrier();for(var Q=0u;Q<s.count;Q++){let Ec=Ed(s.start+Q,q,rb.start,rb.start+rb.count,j[Q*32u].yz);ib[(s.start+Q)*32u+q]=Ec;j[Q*32u+q].x=Ec;}workgroupBarrier();for(var ca=0u;ca<s.count;ca++){let Fc=Vb(ca,q);j[ca*32u+q].y=Fc.x;j[ca*32u+q].z=Fc.y;}var da=vec2<f32>(1.,0.);for(var sb=0u;sb<s.count;sb++){let tb=j[sb*32u+q];da=vec2<f32>(tb.y*da.x,tb.y*da.y+tb.z);}var ea=vec2<f32>(1.,0.);for(var ub=s.count;ub>0u;ub--){let vb=j[(ub-1u)*32u+q];ea=vec2<f32>(vb.y*ea.x,vb.y*ea.y+vb.z);}let Fa=(ba*32u+q)*4u;l[Fa]=da.x;l[Fa+1u]=da.y;l[Fa+2u]=ea.x;l[Fa+3u]=ea.y;}@compute @workgroup_size(256) fn d(@builtin(workgroup_id) fe:vec3<u32>,@builtin(local_invocation_id) I:vec3<u32>){let Gc=X(fe);let Hc=Gc>>2u;if (Hc>=F.a){return;}let fa=N[Hc];let wb=I.x&31u;let Ic=(Gc&3u)*8u+(I.x>>5u);var xb=0.;var yb=0.;for(var zb=0u;zb<fa.c;zb+=32u){let Ab=zb+wb;let ge=fa.c-1u-Ab;let Jc=Ab<fa.c;let Bb=((fa.e+Ab)*32u+Ic)*4u;let Cb=((fa.e+ge)*32u+Ic)*4u;var x=vec4<f32>(1.,0.,1.,0.);if (Jc){x=vec4<f32>(l[Bb],l[Bb+1u],l[Cb+2u],l[Cb+3u]);}j[I.x]=x;for(var ga=1u;ga<32u;ga=ga<<1u){workgroupBarrier();var ha=vec4<f32>(1.,0.,1.,0.);if (wb>=ga){ha=j[I.x-ga];}workgroupBarrier();x=vec4<f32>(x.x*ha.x,x.x*ha.y+x.y,x.z*ha.z,x.z*ha.w+x.w);j[I.x]=x;}workgroupBarrier();var ia=vec4<f32>(1.,0.,1.,0.);if (wb>0u){ia=j[I.x-1u];}if (Jc){l[Bb+1u]=ia.x*xb+ia.y;l[Cb+3u]=ia.z*yb+ia.w;}let Ga=j[I.x|31u];xb=Ga.x*xb+Ga.y;yb=Ga.z*yb+Ga.w;workgroupBarrier();}}@compute @workgroup_size(32) fn e(@builtin(workgroup_id) he:vec3<u32>,@builtin(local_invocation_id) ie:vec3<u32>){let Db=X(he);if (Db>=F.c){return;}let y=va[Db];let Kc=N[y.stream];let k=ie.x;for(var Ha=0u;Ha<y.count;Ha++){j[Ha*32u+k].x=ib[(y.start+Ha)*32u+k];}workgroupBarrier();for(var ja=0u;ja<y.count;ja++){let Lc=Vb(ja,k);j[ja*32u+k].y=Lc.x;j[ja*32u+k].z=Lc.y;}let Mc=(Db*32u+k)*4u;var J=l[Mc+1u];for(var Eb=0u;Eb<y.count;Eb++){let Nc=Eb*32u+k;let Oc=j[Nc];J=Oc.y*J+Oc.z;j[Nc].w=J;}J=l[Mc+3u];for(var Fb=y.count;Fb>0u;Fb--){let Pc=(Fb-1u)*32u+k;let Qc=j[Pc];J=Qc.y*J+Qc.z;j[Pc].z=J;}workgroupBarrier();for(var ka=0u;ka<y.count;ka++){let Rc=y.start+ka;var Sc=ib[Rc*32u+k]+i[41289u+k];let Tc=39241u+k*64u;for(var la=0u;la<32u;la++){let Uc=j[ka*32u+la];Sc+=Uc.w*i[Tc+la]+Uc.z*i[Tc+32u+la];}let Vc=f32(f16(tanh(Sc)));j[ka*32u+k].y=Vc;ua[Rc*32u+k]=f16(Vc);}workgroupBarrier();var Gb=32u;var Ia=y.count;var ma=0u;loop{if (Gb<=1u){break;}let Wc=Gb/2u;for(var na=0u;na<Wc;na++){let Ja=na*2u;var Ka=0.;if (Ja<Ia){let La=Ja*32u;let Ma=(ma&1u)==0u;let Xc=select(j[La+k].x,j[La+k].y,Ma);Ka=Xc;if (Ja+1u<Ia){let Na=(Ja+1u)*32u;let Oa=k^(1u<<ma);Ka=hb(Xc,select(j[Na+k].x,j[Na+k].y,Ma),select(j[La+Oa].x,j[La+Oa].y,Ma),select(j[Na+Oa].x,j[Na+Oa].y,Ma),k,ma);}}if ((ma&1u)==0u){j[na*32u+k].x=Ka;} else{j[na*32u+k].y=Ka;}}workgroupBarrier();Gb=Wc;Ia=(Ia+1u)/2u;ma+=1u;}let je=Kc.f+Kc.g-1u+y.h;r[je*32u+k]=f16(j[k].x);}@compute @workgroup_size(256) fn f(@builtin(workgroup_id) ke:vec3<u32>,@builtin(local_invocation_id) Yc:vec3<u32>){let Zc=X(ke);let o=Yc.x&31u;let Pa=Yc.x>>5u;if (Zc>=F.a){return;}let p=N[Zc];let le=p.f+p.g-1u;for(var Hb=p.c+Pa;Hb<p.g;Hb+=8u){r[(le+Hb)*32u+o]=f16(0.);}storageBarrier();workgroupBarrier();var v=p.g;var Qa=p.c;var Ib=5u;loop{if (v<=1u){break;}let Jb=v/2u;let me=p.f+Jb-1u;let Ra=p.f+v-1u;let ad=o^(1u<<min(Ib,4u));for(var Sa=Pa;Sa<Jb;Sa+=8u){let R=Sa*2u;var Kb=0.;if (R<Qa){let bd=f32(r[(Ra+R)*32u+o]);Kb=bd;if (R+1u<Qa){Kb=hb(bd,f32(r[(Ra+R+1u)*32u+o]),f32(r[(Ra+R)*32u+ad]),f32(r[(Ra+R+1u)*32u+ad]),o,Ib);}}r[(me+Sa)*32u+o]=f16(Kb);}storageBarrier();workgroupBarrier();v=Jb;Qa=(Qa+1u)/2u;Ib+=1u;}if (Pa==0u){l[p.f*32u+o]=f32(f16(f32(r[p.f*32u+o])));}storageBarrier();workgroupBarrier();v=1u;var S=4u+(31u-countLeadingZeros(p.g));loop{if (v>=p.g){break;}let cd=p.f+v-1u;let K=p.f+v*2u-1u;let dd=p.g/(v*2u);let ed=(p.c+dd-1u)/dd;for(var oa=Pa;oa<v;oa+=8u){let B=oa*2u;if (B>=ed){continue;}let Lb=l[(cd+oa)*32u+o];let fd=f32(r[(K+B)*32u+o]);if (B+1u<ed){let gd=f32(r[(K+B+1u)*32u+o]);let Mb=o^(1u<<min(S,4u));let hd=l[(cd+oa)*32u+Mb];let id=f32(r[(K+B)*32u+Mb]);let jd=f32(r[(K+B+1u)*32u+Mb]);l[(K+B)*32u+o]=f32(f16(ta(Lb,fd,gd,hd,id,jd,o,S,false)));l[(K+B+1u)*32u+o]=f32(f16(ta(Lb,gd,fd,hd,jd,id,o,S,true)));} else{l[(K+B)*32u+o]=f32(f16(Lb));}}storageBarrier();workgroupBarrier();v*=2u;S=select(0u,S-1u,S>0u);}}@compute @workgroup_size(64) fn g(@builtin(workgroup_id) ne:vec3<u32>,@builtin(local_invocation_id) Ta:vec3<u32>){let kd=X(ne);if (kd>=F.c){return;}let D=va[kd];let ld=N[D.stream];let Ua=Ta.x<32u;let n=Ta.x;if (Ua){for(var Va=0u;Va<D.count;Va++){m[(31u+Va)*32u+n]=f32(ua[(D.start+Va)*32u+n]);}}workgroupBarrier();var w=32u;var Wa=D.count;var z=0u;loop{if (w<=1u){break;}let Nb=w/2u;let oe=Nb-1u;let Xa=w-1u;if (Ua){for(var Ya=0u;Ya<Nb;Ya++){let T=Ya*2u;var Ob=0.;if (T<Wa){let md=m[(Xa+T)*32u+n];Ob=md;if (T+1u<Wa){let nd=n^(1u<<z);Ob=hb(md,m[(Xa+T+1u)*32u+n],m[(Xa+T)*32u+nd],m[(Xa+T+1u)*32u+nd],n,z);}}m[(oe+Ya)*32u+n]=Ob;}}workgroupBarrier();w=Nb;Wa=(Wa+1u)/2u;z+=1u;}if (Ua){let pe=ld.f+ld.g-1u+D.h;m[n]=l[pe*32u+n];}workgroupBarrier();w=1u;z=4u;loop{if (w>=32u){break;}let od=w-1u;let L=w*2u-1u;let pd=32u/(w*2u);let qd=(D.count+pd-1u)/pd;if (Ua){for(var pa=0u;pa<w;pa++){let C=pa*2u;if (C>=qd){continue;}let Pb=m[(od+pa)*32u+n];let rd=m[(L+C)*32u+n];if (C+1u<qd){let sd=m[(L+C+1u)*32u+n];let Qb=n^(1u<<z);let td=m[(od+pa)*32u+Qb];let ud=m[(L+C)*32u+Qb];let vd=m[(L+C+1u)*32u+Qb];m[(L+C)*32u+n]=ta(Pb,rd,sd,td,ud,vd,n,z,false);m[(L+C+1u)*32u+n]=ta(Pb,sd,rd,td,vd,ud,n,z,true);} else{m[(L+C)*32u+n]=Pb;}}}workgroupBarrier();w*=2u;z=select(0u,z-1u,z>0u);}let E=Ta.x/8u;let Za=Ta.x%8u;for(var Rb=0u;Rb<4u;Rb++){let ab=Rb*8u+E;let qa=D.start+ab;let Sb=ab<D.count;let wd=select(1u,M[qa*2u]&3u,Sb);let bb=Sb&&wd!=1u&&wd!=2u;for(var ra=Za;bb&&ra<16u;ra+=8u){var xd=i[36889u+ra];for(var U=0u;U<32u;U++){let qe=f32(ua[qa*32u+U]);let re=f32(f16(m[(31u+ab)*32u+U]));let yd=35865u+ra*64u;xd+=i[yd+U]*qe+i[yd+32u+U]*re;}Wb[E*16u+ra]=fb(xd);}workgroupBarrier();for(var V=Za;bb&&V<72u;V+=8u){var Tb=i[35400u+V];for(var W=0u;W<32u;W++){let se=f32(ua[qa*32u+W]);let te=f32(f16(m[(31u+ab)*32u+W]));let zd=29640u+V*80u;Tb+=i[zd+W]*se+i[zd+32u+W]*te;}let ue=29640u+V*80u+64u;for(var cb=0u;cb<16u;cb++){Tb+=i[ue+cb]*Wb[E*16u+cb];}Xb[E*72u+V]=tanh(Tb);}workgroupBarrier();for(var sa=Za;bb&&sa<9u;sa+=8u){var Ad=i[35856u+sa];for(var db=0u;db<72u;db++){Ad+=i[25920u+sa*72u+db]*Xb[E*72u+db];}jb[E*9u+sa]=Ad;}workgroupBarrier();if (Za==0u&&Sb){var Bd=0u;if (bb){var Cd=jb[E*9u];for(var eb=1u;eb<9u;eb++){let Dd=jb[E*9u+eb];if (Dd>Cd){Cd=Dd;Bd=eb;}}}let ignored=atomicOr(&Fd[qa/4u],Bd<<((qa&3u)*8u));}workgroupBarrier();}}",fA="abcdefg",RA=A=>A?SA:SA.slice(11).replaceAll("f16","f32");var UA=["plain","comment","string","number","keyword","type","function","constant","operator"];var HA=512,ZA=4,eA=[],MA=0,W=1,X=2,KA=4;function yA(){return[HA,new Uint32Array(HA*2),new Uint32Array(HA*2)]}function vA(A){let B=A[MA]*2,C=new Uint32Array(B*2),E=new Uint32Array(B*2);C.set(A[W]),E.set(A[X]),A[MA]=B,A[W]=C,A[X]=E}function WA(A){let B=eA.pop()??yA(),C=0,E=0,u=!0,I=-1,H=-1;for(;E<A.length;){let r=E,J=A.charCodeAt(E),e;J===10||J===13?e=2:sA(J)?e=1:lA(J)?e=0:e=3;let O=u?16:0,a=JA(J),L=a,c=0,n=0;if(e===0){c=2166136261,n=2654435769;do{let t=JA(A.charCodeAt(E));L=t,c=Math.imul(c^t,16777619),n=Math.imul(n^t,2246822519),t>=97&&t<=122?O|=1:t>=65&&t<=90?O|=2:t>=48&&t<=57?O|=4:t===95&&(O|=8),E+=1}while(E<A.length&&lA(A.charCodeAt(E)))}else if(e===1)do{let t=A.charCodeAt(E);L=JA(t),t===9&&(O|=32),E+=1}while(E<A.length&&sA(A.charCodeAt(E)));else e===2?(E+=1,J===13&&A.charCodeAt(E)===10&&(L=10,E+=1)):(J===92&&(O|=64),E+=1);C===B[MA]&&vA(B);let P=E,i=P-r,S=C*2;if(B[W][S]=e|xA(i)<<2|a<<5|L<<12|(c&255)<<19,B[W][S+1]=O|(e===0?(n&127)<<15:0),C>0){let t=jA(I,a);if(B[W][S+1]|=t<<7,B[W][S-1]|=t<<11,e===3||H===3){let p=qA(I,a);B[W][S+1]|=p<<22,B[W][S-1]|=p<<27}}B[X][C*2]=r,B[X][C*2+1]=P,C+=1,I=L,H=e,e===2?u=!0:e!==1&&(u=!1)}return[B[W].subarray(0,C*2),B[X].subarray(0,C*2),Uint32Array.of(0,C),C,B]}function qA(A,B){return 1+((Math.imul(A+1,131)^B)>>>0)%31}function aA(A){A?.[KA]&&(eA.length<ZA&&eA.push(A[KA]),A[KA]=null)}function sA(A){return A===9||A===11||A===12||A===32}function lA(A){return A>127||A===95||A>=48&&A<=57||A>=65&&A<=90||A>=97&&A<=122}function JA(A){return A>127?95:A}function xA(A){return Math.min(7,31-Math.clz32(A))}function jA(A,B){return A===47&&B===47?1:A===47&&B===42?2:A===42&&B===47?3:A===45&&B===45?4:A===61&&B===62?5:A===58&&B===58?6:A===60&&B===47?7:A===123&&B===123?8:A===36&&B===123?9:A===125&&B===125?10:A===45&&B===62?11:A===63&&B===63?12:A===63&&B===46?13:A===60&&B===62?14:0}function LA(A,B,C=0){let E=[];for(let I=0;I<A.length>>1;I++){let H=A[I*2],r=A[I*2+1],J=C+I,e=B[J>>2]>>(J&3)*8&255;u(H,r,UA[e]??"plain")}return E;function u(I,H,r){let J=E.at(-1);J&&J.type===r&&J.end===I?J.end=H:E.push({type:r,start:I,end:H})}}var _A=1,zA=4,g=8,$A=64,U=128,j=32,AB=16384,bA=5,_=0,TA=1,BB=2,T=3,Y=4,w=5,rA=6,tA=7,k=8,z=9,uA=10,Z=-1,OA=0,CB=1,cA=2,EB=0,DB=1,GB=2,FB=3,IB=4,HB=5,dA=6;function YA(A=globalThis.navigator?.gpu,B,C,E){let u=!1,I,H,r,J,e,O=[],a=new Uint32Array(4),L=[],c=0,n=!1,P=!1,i=new Uint32Array,S=new Uint32Array,t=E??VA;async function p(){if(!H){if(I)return I;I=(async()=>{if(B)u=B.features.has("shader-f16");else{if(!A)throw new Error("WebGPU unavailable");let D=await A.requestAdapter();if(!D)throw new Error("WebGPU unavailable");u=D.features.has("shader-f16");let F={};for(let M of["maxBufferSize","maxStorageBufferBindingSize"])F[M]=D.limits[M];B=await D.requestDevice({requiredFeatures:u?["shader-f16"]:[],requiredLimits:F})}C===void 0&&(C=RA(u));let G=B.createShaderModule({code:C}),K=D=>B.createComputePipelineAsync({layout:"auto",compute:{module:G,entryPoint:D}});H=await Promise.all(Array.from(fA,K));let N=eB();r=B.createBuffer({size:N.byteLength,usage:U|g}),B.queue.writeBuffer(r,0,N)})();try{await I}catch(G){throw I=void 0,G}}}async function VA(G,K,N){return await p(),mA(G,K,N)}async function mA(G,K,N){let D=G.length/2,F=D+3&-4,M=o(_,G.byteLength,U|g),Q=o(TA,F,U|zA|g),f=o(BB,F,_A|g),V=o(T,16,$A|g),R=e=KB(K,e),s=R[GB],m=R[FB],l=R[IB],b=R[HB],pA=o(Y,s.byteLength,U|g),XA=o(w,m.byteLength,U|g),nA=u?2:4,hA=D*32*nA,wA=b*32*nA;o(rA,hA,U),o(tA,wA,U),o(k,Math.max(l*32*16,b*32*4),U),o(z,l*8,U),o(uA,D*32*4,U);try{B.queue.writeBuffer(M,0,G),B.queue.writeBuffer(pA,0,s),B.queue.writeBuffer(XA,0,m),a.set([K.length/2,D,l,b]),B.queue.writeBuffer(V,0,a);let y=B.createCommandEncoder();y.clearBuffer(Q,0,F);let AA=J??=NA(),v=y.beginComputePass(),BA=(CA,q,iA)=>{v.setPipeline(CA),v.setBindGroup(0,q);let PA=Math.min(65535,iA);v.dispatchWorkgroups(PA,Math.ceil(iA/PA))};return[l+63>>6,K.length+127>>7,l,K.length*2,l].forEach((CA,q)=>BA(H[q],AA[q],CA)),BA(H[bA],AA[bA],K.length/2),BA(H[6],AA[6],l),v.end(),y.copyBufferToBuffer(Q,0,f,0,F),B.queue.submit([y.finish()]),await f.mapAsync(1),N(new Uint32Array(f.getMappedRange(),0,F/4))}finally{f.mapState==="mapped"&&f.unmap()}}function o(G,K,N){let D=O[G];if(D?.[CB]>=K)return K>D[cA]&&(D[cA]=K,J=void 0),D[OA];D?.[OA].destroy();let F=B.limits.maxBufferSize;if(K>F)throw new RangeError(`WebGPU buffer limit: ${K} > ${F}`);let M=JB(K,F),Q=B.createBuffer({size:M,usage:N});return O[G]=[Q,M,K],J=void 0,Q}function NA(){let G=D=>D===Z?{buffer:r,size:r.size}:{buffer:O[D][OA],size:O[D][cA]},K=(D,F)=>B.createBindGroup({layout:D.getBindGroupLayout(0),entries:F.map(([M,Q])=>({binding:M,resource:G(Q)}))});return[[[0,_],[2,T],[9,w],[12,z]],[[2,T],[3,Y],[12,z]],[[0,_],[2,T],[3,Y],[4,Z],[9,w],[10,uA],[11,k],[12,z]],[[2,T],[3,Y],[11,k]],[[2,T],[3,Y],[4,Z],[5,rA],[6,tA],[9,w],[10,uA],[11,k]],[[2,T],[3,Y],[4,Z],[6,tA],[11,k]],[[0,_],[1,TA],[2,T],[4,Z],[3,Y],[5,rA],[9,w],[11,k]]].map((D,F)=>K(H[F],D))}function kA(G){let K=WA(G),[,N,,D]=K;if(D===0){let M=LA(N,new Uint32Array);return aA(K),M}let F=new Promise((M,Q)=>L.push([K,M,Q]));return c+=D,c>=AB?oA():QA(),F}function QA(){n||P||(n=!0,queueMicrotask(()=>void oA()))}async function oA(){if(P||L.length===0)return;P=!0,n=!1;let G=L.splice(0);c=0;let K=G.reduce((F,M)=>F+M[0][3],0),N=G[0][0][0],D=G[0][0][2];if(G.length>1){let F=K*2,M=G.reduce((R,s)=>R+s[0][2].length,0);i=$(i,F),S=$(S,M),N=i.subarray(0,F),D=S.subarray(0,M);let Q=0,f=0,V=0;for(let R of G){let[s,,m,l]=R[0];N.set(s,Q);for(let b=0;b<m.length;b+=2)D[V++]=f+m[b],D[V++]=m[b+1];Q+=s.length,f+=l}}try{await t(N,D,F=>{let M=0;for(let Q of G){let[f,V]=Q,[,R,,s]=f;V(LA(R,F,M)),M+=s}})}catch(F){for(let M of G)M[2](F)}finally{for(let F of G)aA(F[0]);P=!1,L.length>0&&QA()}}return{h:kA,i:p,r:t,e:o,g:NA,b:O,p:a,get d(){return B},get f(){return u},get c(){return H},get q(){return J},set q(G){J=G},get l(){return e},set l(G){e=G}}}function KB(A,B){if(B?.[dA]?.length===A.length){let a=!0;for(let L=0;L<A.length;L++)if(B[dA][L]!==A[L]){a=!1;break}if(a)return B}let C=A.length/2,E=0,u=0;for(let a=0;a<C;a++){let L=A[a*2+1]+j-1>>5,c=gA(L);E+=L,u+=c*2-1}let I=$(B?.[EB],C*6),H=$(B?.[DB],E*4),r=I.subarray(0,C*6),J=H.subarray(0,E*4),e=0,O=0;for(let a=0;a<C;a++){let L=A[a*2],c=A[a*2+1],n=c+j-1>>5,P=gA(n);r.set([L,c,e,n,O,P],a*6);for(let i=0;i<c;i+=j)J.set([L+i,Math.min(j,c-i),a,i>>5],e*4),e+=1;O+=P*2-1}return[I,H,r,J,E,u,A.slice()]}function $(A,B){if(A?.length>=B)return A;let C=16;for(;C<B;)C*=2;return new Uint32Array(C)}function gA(A){return 2**(32-Math.clz32(A-1))}function JB(A,B){let C=256;for(;C<A&&C<=B/2;)C*=2;return C<A&&(C=Math.ceil(A/4)*4),C}function eB(){let A=new Float32Array(EA.length),B=0;for(let C=0;C<x.length;C+=2){let E=x[C],u=x[C+1];for(let I=B;I<E;I++){let H=EA.charCodeAt(I),r=H>=97?H-71:H>=65?H-65:H>=48?H+4:H===45?62:63;A[I]=(r&1?-(r+1)/2:r/2)*u}B=E}return A}var MB;async function RB(A){return(MB??=YA()).h(A)}export{RB as parse};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gpu-lexer",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Experimental language-agnostic WebGPU syntax highlighter",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",