diff --git a/tests/Examples/micro_speech/micro_speech.tosa.mlir b/tests/Examples/micro_speech/micro_speech.tosa.mlir index 00e4ef494..02958bfac 100644 --- a/tests/Examples/micro_speech/micro_speech.tosa.mlir +++ b/tests/Examples/micro_speech/micro_speech.tosa.mlir @@ -28,6 +28,8 @@ module attributes {tfl.description = "TOCO Converted.", tfl.schema_version = 3 : %15 = "tosa.const"() <{value = dense<[427, -518, -94, 186]> : tensor<4xi32>}> : () -> tensor<4xi32> %16 = "tosa.const"() <{value = dense<"0xFFF9FD0A0708070307F2D109F0E92809DF05FAF0E8E3130E08EFD3EE0FE8EB14F7EDFD1FE8D5EBFC0EF4F70705EAF61FF8DBDC0B03DDD8F30F19E109FCE40204F104EBF31E06FD11FCFAF61F0F02F5F7FF24DFF7F8F3F6E9EF03DDF228E1F222F409F7F9F0D4F9EEFF14DAF311E2F60CF2EBF8E8E3080217F40B0C27E60203F91418F6EB1F0CF1EEFC08F0FEFDEE17FD1CEFFDDE0405F031FA0BDC0DEDF5FAF4080CD71E1503F502F4FBED01FED61FFDFD0EFA06F1F9E216E9F1030D0DDFF91A0EF6FC0A19E2E00915F0F106F1E1EF1A08E8FD121406F1FCEAFBF7EA1D09FAF608F2E7F8FC16F50E08F90A0326D802F5F6F6EF1FE4E2FB021BE6DE00F2EDFB18E4161A1DF1F6EA1605DEFB18F5E4FEE21B1C0CE802EEFB0724F2E9FA0D05F103FEF61906FFF904FB15EFF1F8E9E11004FCE61FED0BEF001EE616F309FD0808060623DFFC08F4EA0CF2E618F502F9500901DA0B051218EF040ED9FFDCF616F9F4ECFFEAE6FA0AEDEF02F02521F126F5ED09EAEA24FA11FCDFF30A280C19FFF5D60EE22A06FA03F9E6EF23F9FAE6FEFC03061AF908E0E5FF0501E712021D0503050BEEEDFC0FF302E015DF02ED1026EF0D06EEEFF6EB1109F4F7060F012A0B01DDFCF4F117030407FC22FCDEFE0B03F3FB0C250419040301FAFBF7F60E150E09FF06FAFB1EFB0522F9FEF71DEDDF1809EBEF0412EADFFBDAF6DF17EFEFE11AD9E2E2FC0511F6EEE8F2E1082604ED03E0FBEE0CEEF6042DF2D3F4E0F80CFE110BD7FD18070D0708F4C60A0A1F0CF41D020B090E21FF170B0DF2EDD70AF80306FAE5FD03140FE91AF4DA01E60906110DFDEB1623FA000B17F7DAD71BFA010305FED602EEEE02F306ED03EC01F20F05170BFB0F050313FF0602F5F4182BF00017FCFD050B0E14E1240824E6EB2112FB12E7F4E80E18EEF5F3D9F3DBEC0C1ECF14DBE3DC020CFBDB1BD0FEF9FE2AF5000BCDE0E20E04F8DA1CE50FE8F4F71506F802F70FFB17F9DA01DAD1F602FD16F1E4FA07EE0AF3FDF223F0E10A1A121FEF2709F10C1323FDF503FE09FD16F807082508F8F60AF1F5070905CCF80813F91D110FDCEEF327F9F922FA0DE213FB11031EFFFBEDF10E0B0F0006E015F313FC18F9FF09FA1F12E5E206F9F407150B04DB0DEBF3E606E5EED822D810EAF91CF7D311C3F8DE0500E607FDD303EAE01314CFEBCDD3DEF5F00C0CFAEBD3FBFD08F9F410FAD3F41111F8EFF8F8F1FCE1F71204F4FBEDEF0CFD1CFE0EFDE2FE0A02FEE61FEFE5E6F81627E82005E3F1EFEEED0D1116FBF3FF1401FF151002E52829131316E600D226FD0304050706F10E050DE20F02E107F71CFA1430F7EE00FA3D061C040607051A10F6EE0AEB04EBDF1D09D5E8D6F4F00F1DEAF2F8A60BDC090824EE24AAE4CB15EFE7E90CCF06E31211000714D7DEF60F0B04FB0DF80DF61BF121DDFCF4E9F8E8F706031ECEE1EAF605F9161504E014F71E1C0A27EFF30FF3EE04F8F107E3050B001C152707F7FA0BFAFA1713E1F5FB0C212FD7FBF5FDD3F4070EFD0BFCFAF50E02FAFA19FDFAFC13240CE431F812F40418292719FC0811E307FE2640050204020FEEF427EAF4F511260BE705D2F6EAFA0BF9FA16BA00FB0D0BF9E6F6C5F8F6010FEDED13CD0DDA0617EE071DB8FAE2EAF2EE0400DCD0FBF5ECFEF10DF0DBF90D03030E0ADAD601F206141C1FE8E80EFD0CF5F33DF30510FA1B18083609F1EBF92201F3F7FFF00CE90129211503EEE91AF7150625FAF0E4F11F01DC2DCEE9EA0B062C0A30E709F4F01029F93DE7DCE4F73B27233A0A060EFD2C072B1CFA00F911EA14EBFC1803F1161204CF12DDE40EF009E8F3FBA8F9EEFB1E1DFD05ABE5FF01FE04F902B9DCDF05F1EFF11EC7EEF71E0000F810ECE8040FF6FF0409E00A0EE4F0F1162BD3E10AEFF9FE0B22F5010AF802001719F30521FAEEEE12F2FAF50512EEE428FAF103151618FD0F2104F4E50C0613DE36E8FBE7FDF6120E1DEAF8D4E81907E51CF70CEF050F09DD1AEAD7F9F912172E1008FE14F51DFA0633EDFEF711F015E224F60AE2FC2312DD11FDE508FF15F6F11BAEFEE6152C2D1515C5F8EAE70704FE28A1F2E1F9F8FFF422B4DB0320E6F30E19E30AFAEEF3E5D8F9F1DE0605F2F5E716D8FE07EAEE0EFAFFDBE703ED01FD091AFAE60510E9011F13F7F6FB13FFDBEDFE0A100929F504F5260D0CF916FA02F42EDEF5E11DFB020B2307EAD90AF30A0F1EE7F1D70BF6FF0D24CC0AEEDA14121129F41AEF0BFAEC0C1BF4FFF5EF0F10D404F9F8ECF92105D327F317FFF615F9ED0AAC02FDFB04290603B8E6D517091BF61BABDCDFFD06090937BBED19D7E2DD0501ECFBE40EEBF0031704EB09EEEBE70C16CB0E17D8E1F82B19DEEB10F2FFF8EE0EE7F01508F8DF060DF914FA0B04FD152320FFFD1D0CF1FE150A02EDFEFB04FB1EDD05E016F9F6FD32DCF2D308F4EC1725E2F0EEF10DFE132D0111D4E407FB32111407D70210EB2B1D01FCF3F0131ADB2000F0F0051603D4E3C2F006021E0AEC1FABEAFAE32022031BB30EE3F31D27E310A7DAF3000A0A04FBB20F0CF507FF131EDBF6F9EFE8E7FB18EBEC09DAF1F00B04E1FA1C25EE010B29D70C040BEFFD1CFCF1FB0B0FDFED17380CD7FFFD01FCFBFB181A18E3F9F4FA20060911081DF8FA1DF51CF5FE0307E433C80CE113FFE5102CD3F0ED040701F116E013FA1107FA19160100072600EC1D2305F407172C1DEEF00C09E31A240BF31ECEFEFE12211AF623C303F4101A2AF408BFFF04F40B1D1AF8CC00F713F4FDF419BDEF0C0D02FC1213E9E7F5FAFAF61A2ECED40112FDFC2610CCE7EE13EEFFEFEA000E1A17040C040CE6F3F6DBDD04F4221116F307ECF8F2070302F50AF6021D1B1106F80602EAF31DCE00EDF9EFF6EC22C7F0EDDBE0021107E8F0D1EDFFFD0C2ED4EDEC0EF107010E0EFEDA0B0A0A1F2E130700071421E9FCF01ED7EA3407C60CD4ECFD06240AF315AFFFE9F10D3EE918BA13EDD70B31050EAF13D60E10020214CBD5F90CF90E1F24D5EBFFF1F50C0807F4D70610E8EFFC2FEEF118F8F4021121D31214E4F4020524CAF2F3EBE7F8161AEB0D0516F1EC111C091EE0E6FA0E0D2AEA2EEDF9F7160905DDD602EBF5F3E43BED04E00EFD09FD35DC18F304FA051534E5E1E4F4E0F908320408F40FFF08092F0602FD050C24E31EF50CDDF81820D814EFF4170825140406B0F5F5090F3EFF28B3F519D81421D9F7B7E5FEE7071E0415C5F91420EB010118CE00E6E2F7FBF30DD3F304F8F003F125B5EF05E001F60416D1010A2101050E01F00AF30003F8FA030BDEFEFFFBEA0902F5E8E70800F5F80F13FAEBE8FB1F0816E6FAE10003DDF126E51DD9FFF2F8FF33EAE5030C07F9F80FE11EDD0F00F106210905F3ECE6040732F1F9F201181FD2E20AF4CAFC2816C210F2FC08E92A0FFAF5A907ECE919430B1CA6E9F4160D2BFC119AE1F11CF50FE418C0D91426E6F80A17ECFBE122DFF2FE1ED4EBD70E08F6EFFCE6D4F70BFBF50125D7FB0DFEFFF31D32FEEE12F20CEC0210EF01F20BF3F7FA25FB0D111504FC0C21122900FAF6F50622EAE2EE00FDF00B1DD3E4E40AFCE8EA2CEDEDEFE8F205FD15D8DACAEEFA00FE0EF2F00EF504031D2BEE050F101335E20410DFCFEB4026E403F3F9F514242ADFFEABE5FE1C2735DBFFAC01F6FC191A111FA8F5020F1A1FF7F2A2001522E4130009D9D50219FDF8E7FFFBE0EFF7EEF3F319B0DF000F08F31517EC0F111402081017E608F700EDF72907100505E7EDF4F915F9F0080003092128F60EFBF303F70F0CF0F5E3D8F8F2091CE7FBE4F6FAF8F142F6DADDD7FAFF2F2CDA0ADEECF114FB1DEBEEF2EBF3ED0E35F00619042F23E207130FE9F0222ED91ACBEDFD04271EF60796D6D8111856D2FB92FC0B0A172CE504A2F8E2041A0DEB11A2E5E5F802F71703CAE90C1FFEF51812DD0815FFFCF6E11DE2E1FEFC03FFF223D20113DDF3F4F207EF031521D8F809F3E8EAE8F208F0041AF219FB1B15FC1D30E51E09E8E909F72AE10E0021F3FFFB01DFF2FEF4FCF00B0BDDE4D214F7FE0B3901E6E427FAE4042CE204F507F203F010F5F6FC16221BF811E409F6F0411ECF04EAEE0EF61B2FC7F1BAEF0F161E39051E90E60DFA223FE323A5E3E90F052702119905FA050301FF26D3F7F7F905F4EF23D2DD0508FAFF0304BDD71406EF06E505EAEA02FD0D0008FFE7FBFE13FEECF902F3FFFF0804ED191DFA0A0DF20FEC251CEC0B01FF01F60809E8E2EC23E5E9F02EBDE1EF14E9F6F51DDCE3D7FCF9F2FE24F205D5EDE9F9FA2DF0FEEEF2E8F70614011006F30E0EC21DF21CEDE35321B80CDE0315EB4639DFF6A3EEF6E03350DD279F0713E21F35ED1FB70711ED1728F420C1ECEF1602FAE01BF7DBFD0AE7FBE725E2E7F8F0EEE90206C9E414E3E2F7F8FDDDE2080AE405F516E701001CE7F0F619FE0CF20603E80BFEE319081A10FD0021F0EB1802F304F018DB0501DEEDE92315AFE6F10AE6EA0118D8FDF1E6ECF50E1ECCFCE700E9110030F914F419DDF7F72FF4F2FF27151CBC2FE914F5E84430E81DE41811000C2BF32996E006EE3E55DC1398DFF0FE1733E809A307EF0E1D37DDFEB500F7E0EAFDFD19BCFD15FE01F3D520BFE3150EF0F6F214CCF0F704F2FF0B02D2D8FAFCE50200FBF0DC1E1002010018E9DB1EF6FC03EF0A0016000FF416FA0BE2FAE007FB02210EDD0BEAF0EBFB1909D4F2EF0B00EB1A2FEA0603F6F8FBFE1DEADDEDFDFBE7FE18F4FC0BF6FC0BFB2807FF071E0321CF2205E6EAE7432EE714FB0A1EFE2C24D5FD9ED1F21C325101F3ACE1F4E51C37F10FA7DB00F60F18E110C9C5E8EBF2FDF602C2FF0019030F0222D4E7070FE51A090BDCD20005EEF8DC14D00A0AFAEB04F306DE05FBFDE3ECFD14D7110EE606ECDE22D70003F5F50D0105EA0B1604FF13F312D2DF0BE406F6082DD3D6E70AECFFFE01DFF4DF1CFEF9F713CAFF0306E9F70608D7F3ED08E3FD0C1115FB15082840E70D08ECE8166746C816F10224003A43D612AEE7F4F83A65E40CB2EF1FE82959F811C4E1FEFA2743C91EBBFBF313150DF113CDF007190700D8EBBFF0FCF6EF160102C1DFFDE90606F108D7CCFB0EFC14F21AE20DEB090710E613EBF51514EBFEF917D2E31EF5040AF10EDEE701200CFCDCF9E5E9FF1D0AFEEC25AFD20116FC17E81ECDD9E2F1EB08FF33E5FBEB04FEF7FD1FEEFFEDF8E0FFFD2B0AF5151DF33F16F6F2EEF4EFF0560A1ABCFC2FFBF0561E0EC6E8060B11623EF9B8C9EDEB02632CFDC5E900170F37FE20CCE0E00EE6200AFDDFEE0B02EE1FFB06D2EDFEEBFC12FD1400D808F6EC17F91000D918F1EE0FF403EEEBF0EFF2060400F40F0906F70BFD010303F4F6DD141CEFF1DDF713D915EF02D2E70505E209F211F5BAF004E0010610E6EFFC12F9F41B2FE30FD7F60B11F70C000618EF06030A09F61A0DEDFE2C43F4E5DEF502255A49D4E6241EF70E5C5DF0F9E41CEB287F5BECFADB0CF5204951E1EDE60E2628333505E1E41FFCF9391804EDED01E7E6080903E7F90E06EC08121ADAEFDFF9E21E1C0012D701F721171319DEE0EC16011B060CF0E81803060E09FA03F3DD01FB0A2AF4F6DAE9FEE91219E905DF00EBF2100CE1CDCBF21FD90CFAFBE8DE00FCE5001102E6171400F2FD00E1102412ECED1E0918030C04F4150F1018D62910041CEF0F0CC704FEEBFFF5E315FECB10FF12FBE4EBF90002F114130102F901060CF50A1E01190E05F50AFFFFF2FBDBF80617F2F70D0EF4FAF714DBE0FD0816F716FC09270709FB0AFC0CE4DBEEFF10F309FAF423F3F419FFFAFF190F11EDECF80F10F3FF0BF7060B0E07E4180A080E020A051902F3FEFE0B0FFCFA05F9E2F91BF70F07FC12FE01FDF004F4FD07F2040407EF0CED0EF6EF080704E9F320DA15F8FFECE0F6FFE9080110F0FCE908E8F5F8E517E603FC09F5DDF2FF05F6F8F507FCF104F313E10FF20AF9FD1CE0111BE6EF05050C231009FEF71AF1FC111DFF0303E607110C0D16050525F310100609E81AF0EE09FF24F7FBE606FA080300F204F0EB141C0321141DFE03F60209FF0013EF101E0B1D1CF1F6E7FD1401FF13F7FC0021E3EB070E09F1F8FD03EE19FDFFFBFFEAFB07F00A04040B12FE0BE0FFF6E5FC11EDFD1503DDDB04FEFF0EFFFAFBE5EFF6FE220FE8FEF4FDD9030ADFCFF11405FDFBF3FBFB0FF8050903F7050513FBEB23E718FB00FEDDE9EAD3E81AEF01F1091DD8FCDA1903ECE5F3ED0AF4130BF70C00F9EAE3FEFF0D0A1BD717EBE9000EEE24EF0907F0F507F5F5101706F7FC02FBF9E70A26F30101090B0227F8EEFD1CF8F20FFC0DE0EA020B00E008FE1004FEEB13010C0EED09010CE310DFD114F3EF09F0EEE511F4F600E8200AFCEAF70216E7F30DE404E6EFF80F2302E001010105F50DF5F5E1FF0400F40DEEF1EFF70BFF1BEC05E7F31312F2F3FCEA06FE1312DB11E2FC0D1CE81DFCF2E2131DDAF61C181EF4FA03DC0FFFFF180BEDF1F802F410F9EB0B0E0F01021B061000E7230DF61108F50F0513F701010CF6F9F02901E91102FAEB160E10090E1C0AE3D301E30006E2E919EF12F3FC020B0C0DEDFDF6F9E9F228FE03EC0300F8DE0D25071AE7FD29D8F7FBDE0C080622EE1D0507F0FBFE07F104E901FCF100EBE308ECFE04EBFC01F60EDFF812E316DC210AE606E51007F71EDEE30716ED23F2120DE9F9E8FE0E02180AEAECFBFE0C1B1920FA07E50C0427DBE6FE0D0A0AFE39DDDE05EC09050A2CF4021FD324EE0F3CF5FDF8F812F5F319F9DAF60A0AF4090FFC000101F3F805F30C190EFDFAE1FC0C03FB1B06CCE408F910E9060017E80D12CAF523E421F61933DDFA0C0114070034DA05070107E4062402FFF009FCF40306EE08E21DFA0CFC0203E5F0E20A18120C1E20ED20E4012A090D0ED0F4DDFD2BF2080CF8F7FCF915EF191C01FFE201F3300EFB15E81C00FA16EFEAFB05F00E0213F40103E529070924F9E3F8DE2DF4F540EDDF07EF0F0A0B320DE800E6F6FCFD191109F303EAF1FB02FD06FFFE09EC060C15F906D7E3F7ED0103FD14010EE0370DD2182FEA120D053AD5071EF22111F936D3F512F6FBF6060FDEF90609DFFF0BF3F501F1EAF20212FC0EEEF8EB00EF210F09EFEB1EEFF226F917F1F1F00C101DFF1D0603F6FB141B0322FDEC03FAF8012B1E1B090907FFF020EE14FBF6F811D929F4FA07EF20F9F230EEF0F3D60DFE0336F5D701E604F0051F0FDDFFF81FF20437FA00FDF810E1FB0DEDF6E2FE08FE070808110AF0F8F504EA0812060D0F104028C0FB3F081D091B3DEEF4291320FC114CDB021505ECEB0A22E7000201D4EA0AF3E3F8F5FA010D1906241302F5F1F11B0F1904E3F9E70229FC29ECE904DC221DFD1F01ECE8F5141B19060E020DF906FC1507FA0CE1181AE81BE9EF0A18FC05F914DC0401FF07FDF02CF2EC0EE71A05E8351309F907FEFA0D400CEAF4040111FC23EBF4E904EBE70709FBF1F6FD02FA02FF00FFF1F11AE910E30B0C08041B0A2B10E1011F0604EC1949EEF8220C20020731E7FF0FF0FDEA1326CEFAFFEEE9FE150804050DFADDF8070B33EFECF9D9E61D1041F6DF11E3141DFB2B15DC09F60516001C27E4FCF71608082FDDF8FAE90E0B0B021202FD1903EB11F4090915120DEF1CE4FE170C0904EA2FF21E02FBFEE3002E04F90C05270C072DF70BFBF91CDF113605F202F80B0705FBFC0E13FAFB09F5FD0615F90318FD1A0A03E2FB001EFE4F27E1F731F01BEC075FE2F8400517240C3CF31013F80BF3F936E1F3F4E8EFF8FCEBE3FBF0EEDB060C111E10E2E9EB0D340F43D9EF08EC051D0233EFF4F7E6F922070406E902F0FC24202417E60F05F6FC1FF2010DE7FF1DF0FAD000FF0E23F9F311DE0D05040B0BFB260D0DFFE816E80B3C18E404FFFAF3FF40EE06FC0D00F7133FF7130608F913F219FDF9F3E6FC07F6FD0A22000119FFE7FF08FD03FD1FE72808DEF343F60CFE1E52F20417F2080D0438DE0C10EFDF0F0124DEE10DFDD4F6120EED01F0F3FDFF18F336DAF6EFE8EF37274EF8F4FFE5F3320B3608E9F6E21321FE12EDDDFBF8050F031C04FCF2230E03FCF918F7011B03F5FDDEF319FC1102E713DED8F205280202270708FF07270E1940FB020CF60D070F47F8050EFD031E0732E7F6240101020AFFF62615F0041303FAFEF6F1092AE6EAF61713EBFF15EB2306C8F633EBF4E7122AE3E632FA16151740F1081AF3F60C0C11D02202EEEAF4F8F9131017F5F10A0EFD32DAF1E2DBF2341F53FCE4F2F6F21D044AECEE06DF011A0427FCE6FDD9FD0E000C16F303F7FC0E0F090606040802EDF5E4E607060318EA13E2FA10F202EC033CF6F60A1009F81524FD0D090100FF001AF0EE08031D051646E6F808000909FF01FC20FCEC051B03F112E4FA241CF5F20511E7FA0220EA3110CFD833EEFF09203FE20A29EE3AF21E39021EFEF2EFE20D0FF11902E7ECFFFEE4FEFB02F6F1F4071A2AF906F9DAF422024F0AF3FCF3F6250A2801F709E60528F71EF2EE13EE050F0A09E8E80E05120F1502ECF802F705F8FFDC0001001217EC19FA09FAF31D0B0725EA0CF5FA04F7FE33FE14EF04F000003AEAFA1001E400FF23E926151004140D08F8FD10FB002106FA0F08F10928F0D80D080902FB12030EFBCEF039E509F61F35DD1C25EF170CF63EF02108FFD7FCFD1FE51812E9F5E912F60213F40AFD0309082F07EEFDD7002B293BDBDEF1E1F74712350CE409EF172BEA2DF8E818EF03110A10FFE8070C0703180508F8F80618E9F9E00F0D180401F01CF614FD120C0C0234F6E6FDF9F9FD002AFCF9FF0AFE1BF534DCF91513E71BF725FD09080AF0170F04F4E90607F502FCF509EEF1073803050F160FEDFF21F83407D1F927000C211842E6021AF12FF10E3BEEF808EAFEF90318F5F80DEB0110090215FBF10BF20608092F1902FEE4061F1749F2E202EF0426163F08F10AFDF92801150BF910DC0220F716E60903F1F5121CFB2A08FA0A16F615F00611FD0EF9F612EDF3FD1F0BFA0830F8FF0BEB10FF07220D070903F6F8FC26F8EE1102030AEF38FE131B09FE0605F304DFFC00E715ECF1F8FCED050EF31509010DFD0024E23113D51B2BE803081D33DCFD24E420FA0733011206F5EFF7FA1301ECEEE0FD0DFF09F600ED07EA0EFF0E26FCF0E7E7FE30FF240406F4F5F8230E3DF2FD04E8FB23FE33E101FDDCFB0EFA22FB11FAFF0821301303F203F80FEC0DEF0F10100FF6F91EF7E508FA09FF0015020008FEFB0E1528FAFB1306FB05F611F60B0615E100E90FE11D18FD0B0FFFF2F5FD14FFF4FEE2F8140BEB0735E2EB0B0422FE0E1DF22411CCEC25F7FFF90629E4071CDBF81DFA44F2010FE61103EE1706E00CD8E9FD11FE07DDEAFFDEDD0A0930F201E4E0EB2D122DEBFCF0E8F91F083FEB0E13F90C1C0225ECF605F3F4180812E9FBFDF908131C08ECFE02F119F31DF1071112FAF2F60DFF170AFB1FF81124F6FCFE07ED051C21FEFE160D080F0933F41F140CFEF5EB2AEEF31219EC0106F705220BEBEB06E1F50DEEFB0A31FFE3EA1809E3071AF815FCCCF22AE501EA101FD90213F616010E3C021704F1F702070C021FF4E6F0E905F4FDE4F7E9FCEF060226F1F1EBE9E6301C380F03F1100430191FFBFC05E2FE18F21CF2F50EF2051D2812F0F00F0A031A1AF30813EFF51C0600EE121D0318060A0EF0EBFA0D08FF06240F030A0F0EFF0833FC000EFBFB050719E8E7121115F70C1AF62808EBF225EE0103ECEDFAF0F2EFF10223EF0141FAF4F415F5F5F928DE20F6C7DE21E4FEEC0D2CEE2410F01D120E2B06F8FD0108EFFD0FEBEDE1DFF1E516E308FCF6F6D8F023FC2BF5FFE7F4E929092B0CFF080BED29143CF5EB18F61022F91723020CF6FA2FFE1EEBFD03F0071C09FAE10D0F1803FEF0EC0B10021406EFF7EA0B05FE1F060E0700E10101070509F7EF15F7120503041D0410120605000818D6F2FA07F81207FDDD0004FBF809F309FBF0E80927F5F80601020EF61FFA29F8D60122F81DE31A390A0D19F512FB1D2A03F60CF2FDEC1813FE1AE8DD01F83001F8FEE4E7FFEB23FA2CF0FCE70AF818102301FAE8F1FA1D0E17E7E4F5F90C170C13E8E11719050B0F23EDFFFEE01416000D1C0BF5FB18EEFFFFF3180C05FAF6FEFEF8F809EFF80EF000F80CF8F6071611F8EAFFFF01200708FD1CFC06ED0D0815F025011B0002FE010501FDF1E50CE4E1F0FAEE0E35EE15EF0AF901F51F051F0DE1F4FFF523021830FCF00D040D06291DF90806E513FD0D26EF09DCF205DF0CF6F3D9F808EFEB0FF93A03FFE0F7F01512410BF10404E20E0B2C03EA02FBE708E922F3F21CFAF311041FF5020F1A1F240B061FF3060002E8F6F4E8072EFBF81009F00EFFFE1C141706E2F1FA0111131229F10F1FFAFDFD02070EFB0E040101EDFEDEFD08EFF60AFF0FE7F20F02EA10F9ECFD09EA1F46DDE2F708F5F7E933FB2FF6B51D15EB11F72A2E081DF4FB15FA2234FF06F6FDFAF903F5F4F4D5EA010822F1F206D1E50CEF12030802F7051B07393421E2E30B0CF629F7240AFCFF1AFD05FFFF0E0A1A09FB150403F7FE00FCFB11FA1D0E06EDFC23D8F204E50F1629FEF5ECE20EEB091D110511E429120212190E1AEEF90509F5FD0504E4F11701F2FE0BF40D0406FEFFECE900FF0303FDF115FCF3FFFE09EE3C01EC02F0F620EB160732F3CEF002D411E6280EE321EECE1ED9232606FAF9F101E60B07DC21BCE3EFF812FCE6FEF5D4150A0013FCECF3D61AE321362A03E9E3FF00131C0E20E5F5240B201413F8041B2F0A1500F41A110D03180F18041FFBF21F1503FB0B17FB0B1B1FF407F9F9F8F4140FF6FEDD0BFF0118041B0AEDE7F916020100F7F107F006F80B02F3FF20FD0104F5D9F4F4F2E8FF0400F0E2FEED1BEF20FAFBF4021807FBEFE4080DE10E25C6FD0C1C0BF0011CD411F51B09FBDA13E3F91014F0F0FD1FCFF4E4FB0E0A11EDDCFCE6F7FC13E10BE40411EE2114E107E4FB08032B27F60D021B0909F814190F0B0110091203F518F3FBF5020E0D0007FC18250BF0F9E608012414FAEDE51F09FE08EE1A1A0500FF0CFEF91111EAFE08F9F0E4010DF1000BEA19EAF3F808121C1FFBEFF0F214E103FAF9DAE9FCF3FF1204F7FC170FFC2903E5F2EE1EFA04ED25F4E115101EEF1C04DEE50821FDFDEA03CADA26000AFD05F0D4E11AE4F507E7FADFD403F010150CF4EDE3FB0F1E160900ECEA13160B01FBFF00FB071308F4E41200FBFAFC08EB19021CE826F310090F1902FBECF7E2FBFA11F30B08FFD9F81218060722FF19F50B0A13F2FA0221EB111717ECE10EF7E8D80E01F1EDEDF009F7E7FDF0F9DBEEDCFBF80AF50BD4D7080618060C13FD09132612F4EF00F52818FE040E211A0A1E09F00D0FECF3172200EC0E01E90809F2F208F00BD90914F5F60419F411E9F20D20170A050C0401FDF4FB1B0CF20BFFFE01D8FA0EF514F90104F8FA02E8F9F9EAF107FF1E010BF70AF70CFDECF305F8DA0B15F6EEF910FAFE08F0E6EC05FF15191F11FC09080106FE0408FBFB08F4F62810F9280BF80D0100FF020508EAE9F4F601EADF1FFE0AF9F70C1B06EDF6F20303FD04F5100A0BF4F8F1E705FEE70BF1ECF4EC06EEDE051BFE13F3D9EA041005ED15020B10FA02050B0207FCF5151405F70CFEF6F4FA06FC13DCE409FA0223EC061113F8FA27280B23ECF109170F13FFF2FC0AF50D0326010FFEF1FBE6F002F2FF0211FFFD1C020BF6140C0B2128F0110506EDF90AF2EFF8F1FE0DF9F7EA0008DB020FFE04EF201601E8EDE422F61900040113EB0DEC0108050C0EFE0212F727F9FD18FE24F713ED1E09FFD8F412F8040C1C11FD171D0113EE11F3F806F616FE1516DC1F0025EEFFF7F602DD15F11408E8E521EAF01A07EA08EAE41E001317EC11D61118170415033AD6020704E6E5FE0EFFEDFCFBFF1C060AFBF9EA1A21F504060AE316EA04E2F9F9E6FB0FFC06FB1007071307FC16EF07DC121F08F4E91406F7F10C010CE604F3F2E5F3EF1DF62007FEF405EE10FD0E0B020DD807FB260A1C21061FF4063718FA161E24FBF012F902091716F3F917F2020A2DE7E325F0F90FDD15E604FCF1170AEA2407F1111329F4C5FB07EF130BE1F1EBF81B09081F15F20502DD090F16100130F2E027FEF10E0E07E6070B18FE0F0107F40710E7FBF3F70BF91518250C1402080A0F10ECEE1A03140FFA25FF180D0BEA1F28100CE7EEF7FA03150C1D010012EE01F1F80BF3FD04F8021E0EF30210FD070B0903103E080E0CF4E7FD1C271AEDE108DCD9F11E0712F110FBC8080F031DDC2304F90AFF080EC9390A0107ECE005E814D8E1FAD6F8EDDBFF1DF5170F1CDCEDFFFF0413F5E7D212DBE11311230EF931DCEF070A20F2F913FF1C2ADFDBE711F2FDFB28001503022007F7191313F609FEFD2014F5F5FC140E17FE1504F9F61DF61BE4EEFD00E9EECE0F2005020D0605F8EFDF1617E6F110F30604DBFBE7F80211FF0D0AFA270AFCE81117F00D0DEEDFDDF115D6F700EF2EE624FDD504F00808ED2207E109D00B18E63F0AE5E2F90802D61315BD000EF8E2CAEC0EE6EF1511CBDFF9032210FBF9E508E11110FCFA00F830E50814E812E204190BFA33F3ECFEF825F82128EF00DEFF2B03FC100CCFFD190A0CF2F70CFD021CDF260DF00BCE15FBEC27F6F9E5E2FBFDD828ECE9F2CA0902060CFA0501D50A02FB0417DDFEEBF1091012FF00E026F7EDF400F2FA0702F506E803FDDCF2C2FF0BD62504E9F0D90809C52312F61311F318F034FEFEEDEA0217DC1B1BEAFEEAFEF2C4FD04E90D0D09CAD4E1041EFF0FEFD60FD5F826D633E8F53BF1E839E808E5010204F6190AD0EB0B15F70E23F6F4D8F41723251401D7FDF91F1B110A18F5F50FE02E01E5DBE2F214FA2A00E2EAFD0EFCC13508F6F9EC0006000BF601FEEA0B0805E4EAD7FDEEF30C0C0D02FDEE171013FD0703F80CD4EDFE07F4EEF403C2182CD133D8DBFAED101CE3370AEAFEF6EF20ED32F7F5F3CAFD0ACF0D10DE071810F0D60C04EB1AF908C4CBE40B19FC29F6EC07F3ED2BE9FA02EC2BF0F22DE8ED001213ED1A3DF00504FC13100140F20602F92224FF1800EBE814F925E0FF03E5FD08EA2E0B05E7DEE4F5EA3AF4F4E7EDECF8EE300ADB05F716FFF7FA1FEFE4CEF81304F901E103F9F90804FAE4E7F728FDFD00FCFBEF0AEC0C0AD205FBCDFB9DEA1CE525E8EA0BF0F30DAB490EEB00E20329E03D06F7F8CF0C1AD61FEFFDFFEF0CDBE02006DF1AE7FCB2D1DF13071F0CF7DE0ADBDF1AF5290DEB2CCF0E26FEEF04F514091334FFFE0E060E10F92A0BE6FEF11A3629290505D81412260B18FFD7DF0FED31F7FCEC0BEF0CD230F904FEEFE4FBD132E5EEF00CE613ED1E0BE4E0FAF414F418F7D9F6EDEAFC06FCF5EDEB05031B0BFF0BEF01F1160500EE0ADB10B4140FE11CFDF0F8C31117BA4715E601EAF10C084A15F0F7EA00F5D4F1FFE00CF417D8EA03FFD518FB07C7C9DDF3150D22EADB0AD6091DE52D04FC35C60E33F1D7EA011B0E012AFFEFF1F70FFF003BE80AFFF40D1F0417F7DFEC122636070C06E7D613E3300900F5E0F311E2380DF605EC0500E524EFFEF800D818F1260BF2FCE0E4060B1A05C6F6E8DEFE0C0309FEE2181BFBF706F1FEF6EF1B070D010AEDF0AD1A17D637FDD8ECCAF115C433F1EDF0E9150DF236DEFD0EFB100FF6F90CEAF0E50BEEC110F4E81FEE00D0E4E713072712EAEA0FEAF414EEFE09FB31DB1B1CE7EFF5F71A06012CEDFB04FA0719EC2B0DFCD8FC0F1FFC2DF3C9DA0AFE2900FA09E8F621F34A1AF800E7F0210122F300E906E315D73D0C07F1F3EC17DF291BFDFEEBED17F6230AEAEEF9F30F0CF8F5EDE81C1407170B0DEDF7ED1007D5F209D6F7B5F619C92515E8F5C4F92AB0390E0211F0F71DEB39100215E00801EE1C1E0804F202E8DAFAFBE0FE0502D3CAF4EC1016050DD709DCF61EF810EDF727F50828EEECE0F817FB232EF1FAF5FC1A10F732FBFBE8F10324EB25F9CAF1FE012E071803E5EA10FA3B070F1104F71DF124D908EF02DD07C82C0D06EC17DA21DF34D9FBF2F4EC0E0A0F0FDBF0FBE60F0004F9010505FE08F30EF2FB01FD181DF6EE06CFFCAE2721D23303E0E0C9FB3ABD4D04E8F5E6EB19F24B1DFCF7D9FFFEEA0F040E00ED19E9E9FF11EF140117BCB5EF0C22270F01D403CE0125FFF9F00A1CE50F1CEEF4F1F40C00081CF4D5F1FC1F11001803F7E4FF07091A18FFEAECFD132BF80CFADFF611DA2ADCFCFFFFEC12E137FDEBFEEAD112FA281A0DF0F7E00CEB3514EB00EBE71BFC0900F204F9E51A0E0812F8FE090F0DEA03E1FEF2EC0D02DB041DD401CA1329CA2804E2F1DB0B2CCD4400E7F4D01215FF421105FDD9111CF415ECF224D61DECDAF5ECE522F20BBDD0EB05071B01EDF502CF0815FD1CE50419C72522F3DEFBFB20F6EB25FEF508F5170E041CF9EEECE10612FF2A13EDFE051825200913EAD705063325FF0AF0EA17E130FA0D0A04000EE916200D02E8ED07E83CF1D9FAE1ED18FCF009E305FED10B0EF525FDFB301E08FC0C21EAFCE51E16F5F4FCF0EAC42127E92BDBDBECE5FE37E24625FAECE4F319F24C0600FBEB1010F72AF8E918EE21E8D5F40AED24FEF9B2BCF31D002F0708E1F1ED2727FE22FD0220D80525ECF1FF0A0FE6FE46FDE1CAF722030821F50FF7FB0CFB142D03E5E4090B1AE60128E9D60BF72CFB11EE0BED17F03CF508FAF8CD17FA39EA11F5EDEE0AEC41D6E7F9FAC815F7080EE308E8ECFDFEF100E9F409260216F001EF01FF0322DBFCF5DEE5C40128D43808D0ECD5042FCE4EEBF9E7DFF01BF542F1F609D50A0D080405E20ED719DBDAE125DE150E14BDB0E3E5241EF80DD8F7F2FF18F507F00225D51E2EDFE705EF11E8E747F4E1DE09361A1111F512E5E71801172A0305EA090B120417F0EED711ED3C1716FF02DC21F32EE513EFECE210D02EEEFF01E0E50BDA1FF8F6FB07DB05F60CF3F010F9F5F20D10F7F6FF2B0D061EF30CE901F223FEE9DD12DDF7BB221BD43829D4CFF5F927DD4700F2E509FC0EF9340A02FDEC251D031509F11BD017DADAE707E315F102B9CEE60C1031FEF7D9FAEDED33F419E7FE3FE5062EE6F2DCF518E6012FEEE7E4FE2C03F7200507E2061E05ED2F03EAF80E0C1FFF20F4E8E11CEC221E05FDF5CA30E930E414FFF2DC17F826E10B0111C202F136100205EDF115FA17F8F7F1E8D3FD08FB27F5F513060BF001F9D70EEC12FEFDEE25D8F1B2091CBF34EAC8EADB0E24DE47FEDCE0F30620FE2BF61814CD1916FE1A15F811F422D7CCDD15DC14F902BBCAE3F30D1E2A0CE405E0182A0720EDF617CFF42AD6FBCE0337E2FD1DFBE5E00529EF1623F701F40C14FFEE31F912F914F60CF60B0FD8DCFE0F37FA010904D10B0C29F30AF9EDC218F425180F08F7ED1FF74F0EF0E400EBFA1A0C03E9FCF0CC0605F21204E2160A0AF30BF3DCFD10FC0EE2E0FEF0FFB1061BE43013C6C3FA0C1ED95711E1D6FAEE1DF737EAF005EF241EF110E8EB19D118F5C8F8ECF51FF2FFB3D2E60E062E0717E0F502F920071608E81DD30834DAF2CEFB1FE1002DDBDFCC05FBF70033F90B011328F80724F80F030DE906FE18F9EDF50CE02C0EF906FBCE27E82919F9010EC825ED30EB01FE10DC1E001E10F900FCC80E041304F002FED80F1BF7E1F8DE12E2EF0A02E0DDF10E2A2515EB02F4F0BFFC27DC420FE9BFE82033C93F10ECF303022C0438060AF9E51C3F0F0C25E206E603F4D7FEF6E72FFA03B6CBF1110A2CFC1EE0FFC2DD1DF310FA071EF62007E6F10AE827F1F524EDFDEE1315E9E222E5F9DD1D3204FA2500EEFD0B0E23FA0F01F8F015E421F710F9E7C319E134FFEDF4EFD7210131EEF7F2F3E50AEE2E1EF20C07C2080A141400FCF9D6FBF8E5F1FAE01521EF06F900F5F40B0B1802F504DBFDCC321DC93B12D9AFCF0F26DE35E4DBD322112EFB36FAFD02EB0F370B141DDD18E010E0DF14F9F019F7FBC4E5E71101311AF7D8F1E9F321F9FEE4E902D00614D7FCEC0610FCF01CE7ECE30321E40412F0F3ED163602FD1311DFEB1907100CF908F8F41DFD1D16F40A08EC0C093DE00BEE10D11E1543EBFAF305C7F2D92520EEE9FDCE160C27060A06F9D60B05E802E8D21001F2150904D3E2FEF0321BD9F5EACCCB101CF13B02D4BFCAFE12DB3BF8D5E713101AF4380908EEF4F43CF71504E4FAF404EEF407F8E93BE21FD5EDE6FD18492106D8DEFAF01BFEDE08F714C70F1DCF00EAFF1BD5080DD9F1F41623D80C29DCF1F22149FCE20801F0F817F90FF5FA1AEFEC09EB1A0C170911E91AF729F9FD0701DD0AEC221503FDE2D215EC4DD7FCF60BCC0E0403F7FBFB0DEB1907F4F4E5DE2207EAF7EB23C8EE03040F19C3F806D0F7FE0EE70A02B0B800FB180F22F7E9DC0915230D2213E2EDEB18200B12FC02F1DB0EE104DB0FF31A06EFDBDCDDFB002A20FDC1E3EF0114F214000F28D9FFF4DC09FA1C08D1030AF4E4DB2030EA0611E226F71622F90702F5F6FB1D0C160A07F911DE200819040A0B0CF7F4FC41F1F81609DC0E1A2B1FE7FE01E0FDE234ECF3F503EC0BFB04F6DDFD06140DFAFCF10ACA01EC0E0EECD7EED4F2FE16FABD0DEFCBC4EEED131019F8B1F1E300F30CF6DEC61527142915F6F4F5E7000B2F0CEF030FFD08F3F9F9050D34151BC8D1F21B0A221211E9F4E12A2003F2F8140BD0F40EBFC6D80405F8F404C9EAFDF7FAE31B11DE0C112529E502EFEF02FA1A211909080504E5FAED2D26FA17F6E8121231FC0D00F7EB19F12A0614EC08D3210732E3020BFBD8270705E6F5F50AF72C2AD81BDAF7EAF6F90EF80C05C7D60612E3E1E1D8DBC6F8E6FA0C07F8E7E10F00F303F0DECCF5FCEF1E1613FBF403E9FCFA15E81509F10DDB0AE809F51A04F8D8D404EE252909FEF3F5D40A1519F512FE04E701EBDEBEFE0912DF13E0EFC7FF0308FEF219E0E40C221E05F716F2F90617F60C1E2308FEDCFD1711DFF50F010308EE1B020B1B0C161A000F2614F8F4F31916220AD0F9F1052B1E1EEFF50605E73F2A06F0151413201BDE100533F80804170D0FF601ED28251C13FBEAFBF31CF91FF0FB17F8FF10F70B2404000D0CF70A1613F8050AF1F5EEF8140EEDFE1BFE17131012211CFAE50B080C101B03EF0D050AF004111500FDEF0218F409FAF602F7FD13EF13F7F9170FFAF815FF04EFF015FAFEF0F4ED061C02FBF705FB0CEFF4F0F6EC17F3F5EF02FDE5210CF11E08F10BF7091DF2F9F2FB0EEDF8FADDF0FDDB1AF4EF0C060FDFE20606EEFA0D17FCF9151AE4FB0C1AFC1B040720FF090FF226191F0D02160303FD05011B0A11FA2113FB0C05F3DDE4DC221B15140EE800F7F8F40B0BFD21E30FE12201210B1F0910E218110EED011412FD11F6E920E1F51B2722FAF7FE13F6DC060DF405200D0BE415280C00F5070C0A060EF3FBFE0408F4EF03E4EB06EEEDDBEB1DF4FA0CFCFE11F7F8F5EFE7FC1BDC17FDFE00EAF4F1F70F2104FD0D0C0A14FD190901FDE20C0CE025FBFF0D18F60B191210090B06121C1003130A050F090121E40126F9F4051900FF0BFF1609E7EEEDF50F2FEE19030A10EEF72EF408F7EE0700FC0EF0120805ED11FCFBF725F1050CF9FA030C160425F8E7FC110D19D8FA0B06FDEF13F6FF0EF904F1DCFBE1F60B1507F7020EF1FDE3EB07F1EF03FEF80710F700F9F20EF9F21DF5D8FFE6182A1B0316FEF4F5FD0401FEFE07FC0EFA15EB0215EAFD04E5FEEDFE1A092A1BDFFBF8F1041A3407F90DF5EFEC101A0B0F13FE10221E02E6F711FA11FC1B2112F4181629E40C2E120720F61DF41233F4EEFE0506FB130C0EF000F8EEF31700F7FBFC0FF4D50AEDEBF5E9EFD8F0F8E219F7F80A0B09FAE70FFCE802001AFEFD1BE6EF0FE310F1E20B0E06290001F3001104F2F7EAF8E0090E13F40009FAF50CFF18080DFADEFA03F2F31BEB06EAFBFF0DF51017F8E8F1F1F500030A090AF3FB3326E717E3FA1F24FC0702E2EB082CF8021F04EB0B0417F7FF1CED003FD5171DFE03F11C17EC0E54EEF525FA08EE13320ED8090FEEE50610F4FBE4FB09DE13FF02F9EC0A00E9FDDC0604DB0601F809E20C14DAFE20E309DA1412E105FFF30008FBF1FDF304FA08FF011D0BFD0AF4FBFCF919EDFCF206E702F60CFCFB010CEB1BFFFF081DF7E8FCF40CFAF1EEEDDDFC0605DC1AFCF907DF1B140CFC0116E1ED0934EEE41C1BFC3B0315F2EB1400DD2404F1EDFDE632F924040E2203142FF51A37F418030F4BE60D5CF71F1CE6230C154EE0051CECFF041315EE07EC0CDDF80E030C1FE80EF5ECFCE2E8FBF600E5EAF3D3F5FDD2FD1BED09D123FAD4F7E9F00AD61403E610F418FEE10B25F5FCE9F2E9F40DF500F91702FD0304F8F514E3D3EBE709F31417EEE6F6FF1126F4F702FA050816FF0DF7F1F7E6FB040407020409F5FC5FD6E72A23F41B0601EAE70525E32507EAFBFB0925DE370407E5FF142F0A302304F023FE1CD22B5501E526FE14ED2446E6EE0FFDEDEF0E1E050A12FFE4F50CEDFDEA0D131AE5FCC2EF0AE20FFEFF0CF0FFDFEA00F6E104D82620DCF41906E8D21004F1020C06F0F0041FF4F5EDF1FAF10402F8FB04F1E5E40AF0FEEF1CE3EBF30017011319DAF806DE11EAF7F4EF03040BE8080EE2EEDE060E29FBFA0002EC1B52FFDE3A2F1330E9FFF6E7151DD93C0FE614EE131FE73308FC060C0819D92B1F0710241629FC314DF0D93FF220E22549E5EC0AF5F2D9221FED22020A1608F7FB0EFBFB1DF31CF6E1CF19F40FEEF904D1F9E2DAF124F507DF1DF9DB180BEA08CAF2FAEC040E17EDF10615FCFD08FAE3E40AFCEE08F509EFEE06EFE11907E8E6DFEA0DF116EEEDF809FAFB0CF8EBDA00FC04FEF5FFF6E10C0A130DF6F51507CAEC500ED0264CF823EBFF08E3112CF92AF1E90BE90F15EC33110C0D010132E3412711022E0709E3224DF105270325F52C3BF400160BECFE170DFFE7FE2406EEF0E9FA1CF21908FAFFD20102EA05F2F40BD2F90DCD0D12F20EE11F00E71404FF09DBFCD906F9EB01EFFAFBF5FCFB14E2F9F502FDFC01F7F300ECE7F200F111ECF0E9110A070401EEFBF2140112F0F2F1F0FB0803F801E8F917260FEAF7F81EFEF2F83F00D41C53FE1E0FEFDDED1019E7340EDEDFFA0E29E316090612EBF932E01A1DF3ED100731F21252EBF71EF71ADC3E33E3FB1F0B08FE131AF4F8FE08FCE9FEEBE6F6021802E8FBF30108D71304E602E6D701D4F00E0518E508E5D21612FE0ED3FC1FE9F81106F3D5F8FFF0040AD9F8FDF512FF061BE6FEFEDEEEF618F1F806F302EA0414FCEEE609F9EEE3E7FCD9EFFC0A0C03F6E2110F191810EFE522F5E5E94BF7DB0C4FDE22160916D1F819E024FEB8FBE5121CE322090529F71031E1333FFDED04032EED3036EE162FF51BDC3A56E5EF26FF03D73116EFF10813010203F1F208FF0512F2EEDAEDECEAF70CF109E6E600CC100D0D20F41823ECF900E407D4FB16D201E60106F0FE03F309010D05F7D402FBFB08F01FF3FEEB020E1B0F04F5F01F14F706DCF9E901FF08F206FFFFF3051AFCFAEBFBFA1220F6E0E81CFAD60D2C04E1093BD32AEEF7EDF1F70DF0320FC90E001024FB31F0F4DDF50425C7272516112E0930D12C34E6F021F521C84039DEF012F310E81F18FAEA0711DFEDFAF007EFF30510E5F3E9E9E8D601F9050BEEF912E305FDE616E21B12C500FD0204D2FFECF6FD00E4F7F3EBFAF80D03FAFEE4DBE306FFF4F21BF1F702010413E50C05F70A03030B03EEF72120FFF309E5FFEC17000614EBF218161FECEEE11E03FAFE2803C90C3FD8301603F8E9FB28E1360ADFE5EB081CCD29F2FC0AED0129F1201304EC170A35C31A46E0D73C0928D12220D5FA28FAFFEA1D23E007070FF1F108F0F8FF051B05FAF0FBE3E4CC1AF90906EEF403D014F4FF1DE811F4D1F4040BFBDC0A0CEBED06F304DDDFF9EAFCF5F2FBEAE303EE0EFFDB1E04F71A040C0DDA04E9FF04000CF9E4FBF614DE1B000BFE06F80FDC01EFEF0DF8F10FF9F9DF0DE4D9F92BEEE80940F92F0AFAE8E9010EE7230AD019D30E04DA2B0FE7E6F3FB2CD336190EFE031A2ED02332F1E12A091BF6293ECE150AE8ECDF4428D9FDFA09FFE708ECF4EF011911F3EBEBED1ADD150F07FEEBFFD6D504F50710E60CE4DA0C08EE06D8F8F1E00108FEF9F3DF03E6F40AFFF2E0D9EB011002FC0D14EAF80318F309FC0C0B1FF505F7F900FD04FC160700DFF9FA0CFBF4F7F0EB071720FBF0EC0400F8F22DF9D90B55EC3326F80AF20B25DF2905D114E2F212DD28FCEC08FD023AE629250D10090A32F5172DEAFB35FC28D0292FCB060F04F2F3341CF40805FCFDED0FF8E9F00916FE02FFD4EA0AEB0CF8F409F4F207D90BFDE41AEF1408D8FCF5E103CFF111DB150710F8FCE2F1F5DEFFE701EAEEE9020A18ECFEF909F30E02F1FCF9160507090D0EF704ED04DB0404F6DCEEECF5FEF402E40BE0170AE0F7DC11D6FEFA35DEE60644F9350AFBFFECFB16D9230FD4EFDF060BD925FFF8EBF40A20E5221CEBF40D0C19E11E31E9FB20F023FE3528B40628E7FBE92A1AEF150CEDF1040E0AFF16010417EAECDCF4F704161F0A11EF12DFD90CF51002F31003D3F50B0200CBF623F6F11FF9FCF0F6FEFAF8F9F4FB0AD629090200FCFCEEF505FB1EF1F1F302EC1C0C0E0B04F6E714082701FEE5E7011BF0F6FFF4E7EE180D08F8D607F408FF1D13E70B42EF2800F9F0F30015FD1A22C1F5E0F809E60E05F9F6010113DC1F0DFB04080B15DB2834ED0B3AED16E33932C40B20E7F7023524FCE81CF8F1FA0C1DF205FF120F01ECEAF003E715FD0508E01BF8E11EEDDC11EBFD1AEB09F9F300E8E608F7DE1E000000E409F2F8E7F20DFAE20F0408F213F8F9F1FF031112E9F413070C132BF7DDF9E9FADB1DF6F6F9E4F60DEB0D08E7E7F2031DD9D8E4F7EADCDC2602EEFA38FC1AEFDAF1DF0B1AE01616DC04FAF7EE022502F5FB08F611F51208F4E31BF53ADC202EE0F530E409F83C45D30823D809E43530E4FE07F6050105FFF60D02FD03050D00F5D6CF1906EE0DF20118EF12040221D9020DEBE9130815F0EE03EC0617ED001AEEF2FC09ECF8F818F41304F602F0FCFEE3010A1C1BEC0E01FB0811F50014E61207F41507FCFBF5F1012101E9E8EFDBDF1F0ADDD11604FDE124F0ECF438E116FDE0ECE70C2A040C17DCE8F203ECFD19FEF3F0F3FB18DF1C0009F4180B1FF63422F42245EB23CF3234F2F929D4F70B382A09E605010BFE17FB00EB08FD0C021DEAFA0BEB09FEFE10E0F606F015F30911E4F907E1ED17050CE1DBF2F8EA22E90200FDE7F2F8F9FCFAE8E8EBE90D04F8F8F7F80D030C13F20FF9E6FD0F1908F7FA01F3121E050A09FD0B070802FCD6E814011319EFDA0E0A07EF34E0051E4EE919FFE104FB0E11051F15D4ECF9E7F9FC25FF06F201F62A172411F31A1FFB32EB332F00082CF026F42536D9F11AD5ECF93227FCF4F0E3FA0C1617FAF9E51F1FFAFFFD0D02E90EF01209DA02EAE50AFF0313F00AF9E9FF10FC1AF3F70FF4FAF405100ADD09F7F0E50707FA02D7F8F701FB0EF8070FFE0312050913F8DCFD270FECF70700FC12F8FBEAE4E9E9E0FFDCD6EBF2F70D1BE9C40600FD0446F9E9132D0C1FF8D30C141105E52708C5EFDFDD04F81110F0E7FB033CE7140CF4F61B0A23F22D1A08FF32E71A052B34F10A00E802DF2C2A03E6FCEFFCE4030103EEE915050313110EEEF5221B0EFDF30A02DD20EB06F8E2060EDE0DF9161C0CE0F0EC0C0FF2271DDEE6F0F9F0020A0706F90FFAF0EEF1F7FF020B0D1BEEF605FF1C1704051700FF0DF32310FD05FBEA031007D7F7FFF3F117EDD3CB141CF50347F6F7F23EF222F4EDFCEE0BF4F12510D0F600EF10FC15E5DBF3EA1022F22B11F90AFCF553162543E00E13FC2DE25565F40801DF0A00491CFEDFEFF2F9F6FDFFF302F6140BE809FCFCE2E5110309FB06101AF30DFA0AD5F51A11F2FC1FFE0EE4EFD7EE061E041228F70E06F8EEF01A01F7FD0311191004FBD7FA16060723FA1411F1121004E1EEF7210E0A0AF8070AEE031FFAC4EC12011EFDF1E8CCF417FFDD4510EEFA3DE727DDD7F9F4F606F81E13E7E2F1E3F3F71812E40ADBFFFFFE200900F723F62D142628E5FF0FE31DE85643E7FBF9E6E9E2191908FAF3E523070FF8F8F3FC112A05F4F1FAFBF11E130FF9F5FA09F903F0F0E7ECF10CE6EEF6200FE900F4FEF0130A1713EE13FBFFF8FDF4E2E806FC1403170003E6FDF2121220EB1002F7130D11FDDEF507F304FF0605FBEAF00A00B5E81A03FE0D1AE7C0D6DCF6F839F5D5F822FA2205D0F42DFC000A1BFCE60914FA001D1AFDF318FCEB15F50E0AF3F11B0514032D27FB1822EFF606282BDEECEFE8D3FE1712011305F700DEF3E503FB070BFDDCDF030C00FA060E0205FAFDED090CFDFB0CF0E404D6F3090AF9F8E2EFDFF0F8030F20F4E3F802E2E5250FEBF8E9FD040C0CFE0108FCFC1B01E513F9E80720FE06ECFE09EF14040BF5E7FF0A0209E9C4160DE71514F1D0ECE7F0F03305DAF20B08380107FDD806D9F0161FFFF7E0D8F3F712080E05F603EF1B12F4E80F02FDF2162622E007F7E6EB16221A0B01F5EAD2220F131508F0FBED11F3E9FFDE0A180F02FBF9FBE8121801F4F6F8F01F2415F5001CF9010A11D5011202ECFD07F2EAF9FFF7FB15ECE501EB05F910FE28E50AEB1B0EF9DE02150AFFFE112403F80008FD0EEBF3F6F7140EFCF5DEF5"> : tensor<4x4000xi8>}> : () -> tensor<4x4000xi8> %17 = "tosa.const"() <{value = dense<[-374, 169, -48, 208, 82, 6, -1201, -694]> : tensor<8xi32>}> : () -> tensor<8xi32> + %shift = "tosa.const"() {value = dense<31> : tensor<1xi8>} : () -> tensor<1xi8> + %shift30 = "tosa.const"() {value = dense<30> : tensor<1xi8>} : () -> tensor<1xi8> %18 = "tosa.reshape"(%arg0) <{new_shape = array}> : (tensor<1x1960xi8>) -> tensor<1x49x40x1xi8> %19 = "tosa.depthwise_conv2d"(%18, %0, %17) <{acc_type = i32, dilation = array, pad = array, quantization_info = #tosa.conv_quant, stride = array}> : (tensor<1x49x40x1xi8>, tensor<10x8x1x8xi8>, tensor<8xi32>) -> tensor<1x25x20x8xi32> %20 = "tosa.rescale"(%19) <{double_round = true, input_zp = 0 : i32, multiplier = array, output_zp = -128 : i32, per_channel = true, scale32 = true, shift = array}> : (tensor<1x25x20x8xi32>) -> tensor<1x25x20x8xi8> @@ -55,24 +57,24 @@ module attributes {tfl.description = "TOCO Converted.", tfl.schema_version = 3 : %42 = "tosa.clz"(%41) : (tensor<1x1xi32>) -> tensor<1x1xi32> %43 = "tosa.sub"(%42, %3) : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> %44 = "tosa.logical_left_shift"(%41, %43) : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> - %45 = "tosa.mul"(%44, %6) <{shift = 31 : i8}> : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> + %45 = "tosa.mul"(%44, %6, %shift) : (tensor<1x1xi32>, tensor<1x1xi32>, tensor<1xi8>) -> tensor<1x1xi32> %46 = "tosa.add"(%45, %7) : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> - %47 = "tosa.mul"(%46, %44) <{shift = 31 : i8}> : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> + %47 = "tosa.mul"(%46, %44, %shift) : (tensor<1x1xi32>, tensor<1x1xi32>, tensor<1xi8>) -> tensor<1x1xi32> %48 = "tosa.sub"(%8, %47) : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> - %49 = "tosa.mul"(%46, %48) <{shift = 31 : i8}> : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> - %50 = "tosa.mul"(%49, %9) <{shift = 0 : i8}> : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> + %49 = "tosa.mul"(%46, %48, %shift) : (tensor<1x1xi32>, tensor<1x1xi32>, tensor<1xi8>) -> tensor<1x1xi32> + %50 = "tosa.mul"(%49, %9) : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> %51 = "tosa.add"(%46, %50) : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> - %52 = "tosa.mul"(%51, %44) <{shift = 31 : i8}> : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> + %52 = "tosa.mul"(%51, %44, %shift) : (tensor<1x1xi32>, tensor<1x1xi32>, tensor<1xi8>) -> tensor<1x1xi32> %53 = "tosa.sub"(%8, %52) : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> - %54 = "tosa.mul"(%51, %53) <{shift = 31 : i8}> : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> - %55 = "tosa.mul"(%54, %9) <{shift = 0 : i8}> : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> + %54 = "tosa.mul"(%51, %53, %shift) : (tensor<1x1xi32>, tensor<1x1xi32>, tensor<1xi8>) -> tensor<1x1xi32> + %55 = "tosa.mul"(%54, %9) : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> %56 = "tosa.add"(%51, %55) : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> - %57 = "tosa.mul"(%56, %44) <{shift = 31 : i8}> : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> + %57 = "tosa.mul"(%56, %44, %shift) : (tensor<1x1xi32>, tensor<1x1xi32>, tensor<1xi8>) -> tensor<1x1xi32> %58 = "tosa.sub"(%8, %57) : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> - %59 = "tosa.mul"(%56, %58) <{shift = 31 : i8}> : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> - %60 = "tosa.mul"(%59, %9) <{shift = 0 : i8}> : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> + %59 = "tosa.mul"(%56, %58, %shift) : (tensor<1x1xi32>, tensor<1x1xi32>, tensor<1xi8>) -> tensor<1x1xi32> + %60 = "tosa.mul"(%59, %9) : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> %61 = "tosa.add"(%56, %60) : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> - %62 = "tosa.mul"(%39, %61) <{shift = 30 : i8}> : (tensor<1x4xi32>, tensor<1x1xi32>) -> tensor<1x4xi32> + %62 = "tosa.mul"(%39, %61, %shift30) : (tensor<1x4xi32>, tensor<1x1xi32>, tensor<1xi8>) -> tensor<1x4xi32> %63 = "tosa.sub"(%10, %42) : (tensor<1x1xi32>, tensor<1x1xi32>) -> tensor<1x1xi32> %64 = "tosa.arithmetic_right_shift"(%62, %63) <{round = true}> : (tensor<1x4xi32>, tensor<1x1xi32>) -> tensor<1x4xi32> %65 = "tosa.rescale"(%64) <{double_round = false, input_zp = 0 : i32, multiplier = array, output_zp = -128 : i32, per_channel = false, scale32 = true, shift = array}> : (tensor<1x4xi32>) -> tensor<1x4xi8>