From e7ff43272ccae49fe4b1dcf198ed51c82d7c1472 Mon Sep 17 00:00:00 2001 From: Vladyslav Burzakovskyy Date: Tue, 27 Sep 2022 23:46:23 +0200 Subject: [PATCH] chore(common/defs/fido): add invity [no changelog] --- common/defs/fido/invity.json | 4 ++++ common/defs/fido/invity.png | Bin 0 -> 8189 bytes core/src/apps/webauthn/knownapps.py | 8 ++++++++ core/src/apps/webauthn/res/icon_invity.toif | Bin 0 -> 136 bytes core/src/trezor/res/resources.py | 2 ++ 5 files changed, 14 insertions(+) create mode 100644 common/defs/fido/invity.json create mode 100644 common/defs/fido/invity.png create mode 100644 core/src/apps/webauthn/res/icon_invity.toif diff --git a/common/defs/fido/invity.json b/common/defs/fido/invity.json new file mode 100644 index 0000000000..399b5487ce --- /dev/null +++ b/common/defs/fido/invity.json @@ -0,0 +1,4 @@ +{ + "name": "Invity", + "webauthn": ["invity.io"] +} diff --git a/common/defs/fido/invity.png b/common/defs/fido/invity.png new file mode 100644 index 0000000000000000000000000000000000000000..12023e42b118bd99d7717dfd2f8f73d747af42f5 GIT binary patch literal 8189 zcmV zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3;cb|krWMgK7h4FTQ^2X-yZK*QHQh)9-i^Q5k> zCOerKfw<4|K>qsbe)qadKfNBlZsUJgQT<%V^XI$QS8~&S z|4;q)_ncJ^&usMW*kdL>`F*I*qulR!;~+5Mek}8+@Hg>&xqljes_k|f7wxjs4*pEn zoOi(<7u|B*9k=h-=_X5ze*3~#@23y#%ezR3JD)mA zH^84iKmS8wxk%()3UlQFyB*IZMsnY3E0~+;z#9`^S?wweS3uM4%7m~}) z7VnF5#Icf}&dPl-(GODKQu2#c`WQkcIo0dle5SbjUZ4E)GA%?RQpll@nie{_iZR7( zVu_U+>M5j{Qp%~Mnp)~P=xn%WXFQLSeN-m|;(n_zP#+qubrPkVNH_f*|ucnq; zX|=W1J2&lIx%25>J1-1B!iXb{Jj$q}jXo)#8E2Y#mRV<;-7LStiYu+W%BriazTKvj zcHC*_U3T4V_d}_jaNN2!Tr zoWe@S8Y^+-dCuSwayrJJJm|Su!`#KP{ytI;v4^>Q=s;kNou}_@PZoB@=CuR$6soOp zb;UEcxJ(&2jvY&Lb#1PlPaqv+cD68c@OjkIeM_mXR1XOXuH0*y`qS2;@I5KKCYW*_~~_-`iimp4=#~FbFoEjg%RooTH`?Mk+q;KsOZP zeJJ={!nU1v*EZ6refL1z?IH?uGNUASTC-zAcRSX(Eg|uNV)kREKGx*x95WBP%-KDTUn@3Z z=|-J}I1;~*%}U9Z%3|9|oni;OJzTuF<=JD|5V-ebVIj2=!Sx=fXn%O6JTW|phREj6 zVf?$V3UeHxLg6cUL!)Nyuw9&cCCXU{+;%)_Ps98~&HNh1u-uq>y0VC7&tshcyspbhc>##45~sdPn>-HdNIf+(;pN;L>mEE| zv7M*xJ2v`=h*RAA!mS{21QMm^7it36-EGuX1fK-oBK;G4iMh-M;J_5KhmC+c zKt~>|9`xSrRIWSXg(Nf7IQybhf))Se*V03&uCO#S!i61hW&=wqrML!6GF+=A%@Z2U z-YG;{xll2Ys^Yvk5}X4D#?w>_WE;BY<4`dI6^a5Axgl|< zfD+*#VyuL}7g`M~S!eiMv=U-HR*PDRt9K=KOtlk1O~iGpl)Ni5Z@S5WA+u7wbW<`O zsy?~E{F^(cWnsYRfx6MpES&}`bzG!R2dx2={SvQ4F0DD27G3XiUpOQB#*NGG==FC-HycU@oaK={OtM|Zi~L)Y6EaR7zV25rn$zl z)`yH7mAn1L5;H?ONP=&eo%4$($c+zZ!;g#0oh?8qS4%Vig)4&FdZv)f@HVeCQ?xt4 zon`rfNjYdOA;@l|VfxH^!h&fsp&A+J&ZJWifBe&;un0}#f1?}p74Vt1>5ibvss(cr z^?%E;>dji|mu-2exd}lAato00DX~G(Ur!UcKo=fBkhHaM77^sdL?ym!7?X?7L*+%?-du zmAakE#=qV2II0Jy^6={|k8lQIBv1S?{io>vIrxjB?Fa$d(UlOW656Y0YDiUL6bQM@ zr%q9N-zk
hJ0{c2SMbU6r|h?@5XE#dnR02v&a`OQ1ym># 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 literal 0 HcmV?d00001 diff --git a/core/src/apps/webauthn/knownapps.py b/core/src/apps/webauthn/knownapps.py index 54c6d0f6c6..8dc3669946 100644 --- a/core/src/apps/webauthn/knownapps.py +++ b/core/src/apps/webauthn/knownapps.py @@ -211,6 +211,14 @@ def by_rp_id_hash(rp_id_hash: bytes) -> FIDOApp | None: use_sign_count=None, use_self_attestation=None, ) + if rp_id_hash == b"\x9c\x2e\x02\xc4\xff\xf7\x76\x62\xe1\xde\x80\x3b\x43\x9e\x11\xc0\xdd\x0c\x3f\x66\x42\xce\xc4\xe6\x84\xd6\x49\x87\x0a\xd1\xbb\x59": + # WebAuthn key for Invity + return FIDOApp( + label="invity.io", + icon="apps/webauthn/res/icon_invity.toif", + use_sign_count=None, + use_self_attestation=None, + ) if rp_id_hash == b"\x53\xa1\x5b\xa4\x2a\x7c\x03\x25\xb8\xdb\xee\x28\x96\x34\xa4\x8f\x58\xae\xa3\x24\x66\x45\xd5\xff\x41\x8f\x9b\xb8\x81\x98\x85\xa9": # U2F key for Keeper return FIDOApp( diff --git a/core/src/apps/webauthn/res/icon_invity.toif b/core/src/apps/webauthn/res/icon_invity.toif new file mode 100644 index 0000000000000000000000000000000000000000..d13db26677984936a8e50c9699d1325b8392d4c3 GIT binary patch literal 136 zcmV;30C)dXPf12V06+kI0002((#Z{gAP_)N81P89)<6ZeITd*EC@u-IsEPhRSD9x} zV~B`|S_*C+&L=p0eEj;-Z7QX2@-08V4IdxB-dEY4&rNTCe;)r|{@edww84%3s(#$w q>K`lHhL4Ybm#>n0TBWx?`E^^g&--QdzkmFa`2P6ms2Cz5qD>17q(kZe literal 0 HcmV?d00001 diff --git a/core/src/trezor/res/resources.py b/core/src/trezor/res/resources.py index d1db8e5ef4..b9052997a2 100644 --- a/core/src/trezor/res/resources.py +++ b/core/src/trezor/res/resources.py @@ -88,6 +88,8 @@ def load_resource(name: str) -> bytes: return b'TOIF@\x00@\x00\xac\x03\x00\x00\xed\x92?S\xe2@\x18\xc6w$\xccX\xa6\xb4\xcc\x900CI)]\x18\xb1\xa0\xa3\xa5\xd316t\xb6t!\xb1\xf0\xbe\x81C\x833\xa1\xb8\xa1\xb2\xbeF\xb9\xd8\xf1!0\xc35\x0c\x95)\xb3\xcc\x9c\xcb\x1a\xf2g\xff\x90M\xa26\xbe[]ny\x9e\xf5\xf7{\x01\xf8\x19r\xe6\xbdy\xef\xfb\xf2\xcc\xd3\xaaW\xf5.\x1be\xb5_6P\x9ey\x9a\xf5\xfe\xd9\x1d\xba\xaf\x9ae\xf5\xab&\xca;\xbb\xcbz\xdf}F\xf7\xdd\xe7\xb2\xfa\xc5\xf20\xad\xf2\x0c\x88\xe6aZ\xe5\x19\x10\xcd\xc3\xb4\xca3 \x96\x17\xd1*\xc7\x80h^D\x0b\x1d\xef\xa2h\xff\xd1M<\xef\xb0\x81\x88\x16:\xcec\xd1~\xe71\x9ew\xc8@\x92\x16:\xfaI\x91v\xfd$\x9d\xc77\x90\xa4U\xdc\x80w\x91\xce;\xba\xc9N\xab\xb8\x01\xb1<\x92V\xd5\xab\x170\xa0\x9f\xd4=2\x91\x9dG\xd2*f@4\x8f\xa4U\xcc\x80X\x1e\x9dV~\x03\xa2ytZ\xe8\xcc{y\xfa\xe7=V\x1e\xdd\x00\x9d\x16:W\xf7y\xfa\xaf\xeeYy4\x03,Z\x98\x98r,\xda\xae\x1c\xf3\xf2H\x03lZ\xf9\x0c\xf0\xf3H\x03lZ\xf9\x0c\x88\xe5\xf1h\xe51 \x9a\xf7\xd0\xef\xf8\x1a\xf7Hs\xebw\xf6#\xcd\xf9i\x1d\xff\xa1\x1f\xef\xb7f\x0e4\x02\xde\x91\xfc\xaa\x97\xfdH>?\xcd\x81\xd6,j\xd7ei+m\x8d\x03/\xa8gn\xaf{\xfc$\x03\xa2>]\x0e\xfb_\xfb\xe8\xdf\xef\x87\xfb\x82\xdbu\xd6\xfe\xdb5\x97$\xc4m\xaf\xfd\x88\xfeG\xff\xd6\xe1\xfc\xee\xdf[\xd6\xfe\x7fo\x1c\xf2A\xd8\x15\x1a\xc0\xf4\xf1q\xa1\xcd\xfce\'\xa3\x81\xba\xd7af\xd8\x81\x0b\xa36l\xc0\xecF_\xa4\xad\r\x8b\x1a\xe0\xd1\xb7a\xbc\xcb\xec\xa2~u\x1c\xff&m5X\xcc\x00\x9b\xbe\x06\x93M\xea\x18\xf5\xbb\x9b\xe4\xd7w\x0b\x05\x0c\xb0\xe9\xbb\x01\xd1\xb3I\xd3\xc7g\xc5\xdc\x82\xeb\x83\x06\xae\xd7,\xf3+H6\x99\xdd4}|\x1c\x98\xd7\x00\x8b\xbe\x03i=\xea\x98\xa4\x8f\x8f\x01\xf3\x18`\xd2\x87\xf4\x16w\xc3\xea\x7f?P\xdc\x00\x9d\xbe\x04Y\x1d\xee\xa66`\xf6o\x1da\x034\xfaN\xc0n\xa8\r\xd0\x06\xb2\x18\xb8\x94=\xe4\x19\xa0\xd1\xb7\x03\x97\xc9\xde\xec\x82\xddL\x94\xca\x82~\xc7\x86"\x06h\xf4mF{e1Q@lFC\xfa=\x8dx\xc1\x0b\xd3\xc0\x0bA_c\xb4\x8f\x86\x80\x98v\x8b\xee\xc1\xcdh\x80\xa4\xbf\n\xe8\xdc\xdb-@\x1d]\xb6f\xe4\xfd\x15\xb1\x05\xd7t\xfa^\xda\xfc\x8a\xf2\xd7[3]\x06\x9c\xa9\r\xc8\xdf80\x8b\x814}\xda\xde\xa1}?4\xcb\xa6Jl\xa3\x91x\x81\x16\xd0\xfa\xb5$%\xa2]],\x9b \xd3\xe8\xb2:&\xde\x9ex\xc19\xd1~\x9e\xa0/\x91\xedc>\xf7\xf4\x98\xdd\xf46:q\x03k\x82\xfe:\xfa_\'Ho\x9c\xd9\x05\xc23Q*\t\x0fnl\x0fI\x03\x1as\xef*\x8b\x89\x02r\xceh\x18O\xb2!\xcb@\x9c\xbe\x9dh\x1f\rA\xa1i\xb7\xe2\x1e\xb4\xfd\x0b\xa6\t\x03\xd3=}\r\xc6\xb9\xb7[\xa0\xf0\xe8\xb25\x8b2Wa\x8f\x9f\xa0\xef\xe3\xaf\xab\x98yk&\xb6q\xbc\xa9\r\xf6\xfd\xfb-8\'\xe8\xc7\xcd\xd7\x06\xa0\xd4Y6\xd5E\xb8\x87i\x03!}\x17\x86\x1b\xb7l\x82\xd2G\x97\xd51\xce7`\xd2\x80\x84\xe9\x7f\xb4\xab\xe3\xf2\xb8\xa7\xe7\xb5\xff\xb1\x8d\xbb\x17\xd4w\xed\xf5\x1d}\t\xe2\x8d3\xbb\xe0Sg\xa2Tv\x1e\x9c\xbd\x01D\xdf\t0\xf7\x89\x02\xbe`\xe6\xbf\xf0\x1eJ>\xa6\x8f\xf7n4\x04_6\xed\x96\xbb\xb1!2\x80\xe8\xdb\xd0\xdd\xb4[\xe0KG\x97\xff\xfe\xd1\xe0t=]k\xd0\x9a}\xde\xc6\xf1\xa660|\xc3\xaf\r\xc0\xb7\xcdS\xe3\xa9\x01~\xa6\xc0\xfc\x07' if name == "apps/webauthn/res/icon_google.toif": return b'TOIF@\x00@\x00#\x04\x00\x00\xc5\xd2?h\x1bg\x14\x00\xf0\x07N\xe5O\x1eZIC\x90e\x0c\x1f\xba \x84z\xc56\xd2\xb5\tr\xcd\xd9\\\x8arPP\x86R\x0f\r\xc8\x8aIC \x83\x03\x85\x88.>,\xa7U\x02\x85\x16JI\'\xc9\xb6\x06\x81\x97\x0e\x1d\x142HJ\x8e\xa2\xa1CJ;\xa8\xb4 +\xd5\x19%\xcdP\x88\xc6\x83\xdcY8\xb6"}\xba\xff\xd5{\xe3}\xf7\xfd\xde\xf7\xde\x030\x1a,\xae%\xa9\xcc\xfa\xfdbY\xacK\r\xd7\x9fRCz"V\xb3%.\xf74%\xcc\x83\x83Q`\xb9\x9cXw=\x1b\x99\xadl\xa9\x95\xc2\x1e{e\xd6Oe\xa4\'\x1ar_\x15\xeb\x05\x81\xb5\xc7^\xc6\xdc\xb7\xae\x96\x01\xfbu\x16\xcb;\tk6F\x94`\xce>\xce\xed\xd2Z\xd8\xac.\xb0\x9a\xd3\xd65\x8b\x89\r3\xba\xf2\xf2gve\xb1\xcc\xfa\r\xf5\xdd\x93-\xd9\xa7\xab)5\x84\xf3\xfa\xb7]\xac\xda\xab\xabS\xa8%u\xeb\xf5\xf1\xe9\xd83\xce\xb7\x03\x14\x7f\x1a\xa7\xce\xe5\xc6\xa9\xd7\x92zo\x15\xab\\\xae\xb6*\x9c_\xc6\xac\x7f\x19\xaf\xcd\xef$&6\xb2%W\xcb\x8a\x8e=RC[\x96\x1a\x94\xb0\x16&\xdc\x80j\xab\xc5\xb29\x1d`\xfd\xbev/\'2\x18i\xdd\xb3\x93\x10\xeb\xc6ua^K/\x96\x97\xb1\xce\xcb\x10%\x18\xd3\x01\xf64\xf6\x9e\xcb\x81\xa1`\xfdFN\xa7.\x04\xbbwF\xe8T\x06\x9c\x8d\xfd\xa6,\xc8\x17\x9f\x13\xf4\x9c\xb3x\xde_\xe96e5\xa9\x7fC\x03z\xb6\xe4\xf0\xdb!\x7f\xab\xa7\xab\xd9z\xd9?\x07\xa9al\x92fb\xf3\xf1\x89\xaf\xcc\xa1\xfb\xd6\xa99\xb4R\x8e\xeb\x9e\x8a\xdc\xec\xcb\x8a\xfc\xcf\xf3\xde\x1c\xc4:8\x1e\xcd\xcbMy0k/\xaf\xfd/\xaf\x07\xc0\xf7\x86\xf9My\xad+\xb60r\xdeg\x1f\x0e\xf7\x9b2\xeck\xff-\xa1\xdbQ\xb39\x17\x19\xae\xab)\x06\xcc\xe8\x1bA\xb2\xfeA\xb4\xff\xec$M\xd6\xd5\x0c\xcd`\x83zr\x84\xbe\xc4\xdd\xf0\xf6\x9f\x0e\xbaG\xfb<\x13\xa6\xabH\xaf\x9d\x86nd\x94\xfec|\xf0\x9fk\x94V\x05S\xca\x1cXM\x1b\xc3\x19\xdf7\xb1\xcf\xb8Q\xfe\xdd\xe9\xc1\xff\x04\xe8\xc4\xb4*\xe0\x99N\xac\x1d8 \xf6\xa1\x00\xd9@\xe9h\x924\x93Y$\xe9\x9fF\x87\xff\xfd\xc8\xab\xed\xf7\xf2:\x1d\xa2\xce\xf8V\xdc\x07\xa8\xa0\x98-\x94v\x9f\xf3\xb9f\x12t\xa4\xef\xd4\xcfC+\x98\xe5Db\xfd!Jo\x05\xfa\xf2\xbf\xc5+\x03\xfe\\p\xd4\xec\x10mo\x05\xef1_\xf6\xe9\xefGGoO\n\xae\xdb\\\xc1\xbb\xcc\x0f\xaf\xe7\xf0 \x9e\xd6\xdc\xdf\x02\xe4l\xae\x80g~;\xaa\xe0\xaf\xf8\x1e\x02\x1d!\xd8\xde\x03\x9ey\x9b\x99^\x14u\xe9\xbd)\x1c\xda\xbc\x899\xba\xaa[\xefE;\x10\xb1M?\xa4R`<\xd2\xee\x92\rs\x98b\xb6\x03`2X\xa5\x0bS\x96\xf4I\xfa\x00\x81\xa5\xa8\xa2\x8f(s\x93H\xd0\xbb^\xb0%\n \x06\xea1\xfdr\x84\xf9\x85\xda\xb2\xc9>\x0e\x0c[\xee\x10\xa5\xb5\x11S\xca\xaeq>\x01\x9c\x8b\x02<\xf2\x8a\x81\xaf\xa80\x9d\xa3\xebt\'\xd6\x89\xd5\xe9\x04}H\x85f8\xdf\x8a\x1b\x1b\xbc\xed\x15' + if name == "apps/webauthn/res/icon_invity.toif": + return b'TOIF@\x00@\x00|\x00\x00\x00\xed\xd2\xc9\r\x80 \x10@Q\x18\xf0H\xb7\xd6@\x05\xb69\x15x\xf1(.\t\xb2\xa8\x89\xfe?W\x99gPc\x88\x88\x88Z\nn\x1e\xce\'8||\xfc\xfa\xd2m*\xa5o\xf2-?\xbf\r\x1f\x1f\xbf\xdeW\xd9\x9e\xcfMo\x7f\x7f\x1e\xff_\xfe\xdb\xff_\xb4\xc1\x8d\xfe\xaa~\xdc\xde\xea\x1f+\xdb\x86\x8f\x8f\x7f\x97\xaf\x92{Z\xa5\xb7?\xf9u[\xb4\xcf\xfbe\xf5\xbf\x7f\xfc\x92\xf8\xfe\xf8\xe9\xa8\x18""\xa2M\x0b' if name == "apps/webauthn/res/icon_keeper.toif": return b'TOIF@\x00@\x00\xd7\x05\x00\x00\xdd\x92?h\x1bI\x14\xc6\xa78\xb8-Rl\x91B\xe5\x18r\xe0\xedN\xe5v+q)V\x90\xc2[n5\xde\xc4\x07R*\xcb\xa4\xb1\x9a!\n*,\x93\xe2\x14\xdc(\xc5\x9c\xad\xb8\x08\x9b\x14A\xee\xb6\x18\x88\xc0\x85-\xae8T\n\x06\x82\xce\x85\x11)\x0e\xa547\xb3\x7f\xa4\x95\xb4+\x8d\x1c\xf9\xcc\xddL5\xb3o\xf6\xf7\xde\xf7}\x00\xac\xbe>g\x8a\x85\x8f{\xbb\x87\x9f\xde\xfc\xf6\xe6\xe7WO\x9eo\xe6\x8fU\xf0/\xad\x1dM}\xf5\xe2\xc3\xd1\xd9\xd1\xd9\xc3w\xbb\x87_\xab_+[\xbc\x8f?\xdf\xbe\xde\xfb\x92\xb9k\xf6\xb6\xf2\xe4y\xc0\xde=\xbcv\x8a\x85\xe9\xbdY\xd8\xd1r\xca\xdd\xd1\x8fU\xf5U0\xf7\x83\xa7\xc5\xc2{\xeb\xc2\xbe\xb6/\xf8>\xb0&=\\\xe9w\xe5\xc4K\xf5\x8f\x8a\xa0\x7fzs\xc0\xc9\x0f\x9e\xc6\xb9\xa7\xd9s}3\x1f\xa9p\x17>@pmG\xf4k\xe7\xc2V\xf2?ll+\x90\xdf\xbfT\x1fm\xech\xa7\xd9\x1a\xef\xc1\xf4;0\x0b\x9f\xd7\xde\xc1N\xf6\xe1\xbb\xa3\xb3\xbf\xdf\x1eX\x0f\x9e\xbe\xb7\x1em\xcc\xabS\xcb\x9e\xf2\x1d\xa8\xb0\x99\xdf^\xab\x0b9\xe5\xf5\xde\xd1\xd9\x8b\x0f\x17\xbe\xdfi\xfa>\xda8\xd7O\xb3J>\xc8\x01\\#\xff\xb1V,\xbc\xf8\xf0q\xaf\xc8\xa7\x7f\xac\xa5\xd7}\x81\xa2\x83@\x83y\x8dn\xbf\xae\xf8_w\x0f\x8b\x85\x0b\xbbX\x80K:\x15.\x84\x1e(\xeb\xa1o+J\xfeJ\x17\xec\xc5\xd3\x07\xeb\\\xaf\x85\n,\xaf\x95[_2\xe7\xba\xffG\x9e\xfc\xdc\xd2\x99\x8e\xd5s\xfdJ\x17|%\x0f\xd7\xe4\xfei\xd6\xe4\xff;\xb0\x0e,\x99\xfaZ\xe8\x80Y8V\xd7\xc5/\xfa|\xb3 \xa7WP\xbf\xae\x0cN\xf8E)>\xe4\x19\x08\xf8\xe7\xfa}\xf0\x85\x03\x01\x7f3\x7f\x1f\xfa\x03pz\'\xfc\xf7\xff\x19~\xed\x9e\xf9;Z\xc4\x87\xff\x03\xfe\x8eV\xcb\x9a+\xf1\x1f\x87|\xb3\x90Sn\xcf5\x14\xc3\x01-\xda\xcc\xbb\xbf\xb8?\xb5\x06\x8d\xbf\x1a\xbfV\xb0\x0e4\xac\x1a\xca]\xf3\xb1\xca\xca\xb0\x87\x07\xe0\x06&n\xf0\x8d\x7f\xeb\x12\x0f\xba\xb8\x0e*\xb8\xc4L\xa4S\x08\x95u\xf0\x91jTQ\x1f\x0f\xc4\x867\xabm:\xe2]{\xdb\xee3w\xd0\xacU\x7f|\xfe\xbbz\x8b\xd9s\x01\xfb6\xfc\x84\x8e\x86\xa0k\xb4Q\x9d\x94H\xce\x90R\x83\xac\x95\x1f\xdfH\x97\xe1SS\x9e\xcfF\xa4\x83\x1bl\x9f\x96i\x19V\xd9\t\xe8\x82\x05\xd5x\xad|\xec\x01k^Q\x9e\x1e\x9bvR^\xe4d\xf8L\x86\xdf\x9b\xfc\x8bd\xa8i\xd8\xc8\x816\xd6\x91\x1a\xcd`\xf4\xe7_\x11)>\xb0\x96\xf1A+\x98\x1b\xa9l\x1f\xf6f\x1c\xb9$%\xf1\xd5P\xa0;\x97ES\x06\x0f\x97\xf0i3\xa8\xc3\x0e\x1d\xa6\xe8<\x00\x96\xafBs\xa679\xbe\xbd\x88\x8f\xda~\x8d\x02\xdc%Y\xaf\xf3*\x80\xbd)\xdd,\x19\xbe\xe1\xa4\xf3\xf1@8\x0c\x01jO)2$\x1e\xf6P\x7f\xbe\x03\x92a\xa3U\xf9h\x01\x1f\xfa\x7f 1]\xd1\x00\xda0JbN\xa4\x8etH3P\x87m\xf1\xcbJ\xec\xb5-\xc3\xc7\xa5\x88Nf\xf8\xf42\xc8v\xdc\x8d \xf1\x90O\xca=\x018c\xf4\x85\xcb0\xeb\x7f\xeds\x07T0\xae6\xa4\xf8$\x95\xef\xcf\x03&\x89\xe7\xee\xfa/XY$\x91\x8d@\x85\xbb\x97\xe5D\xae\xe1$q\x93\x0c G\x86O\xcb\xc9|~\x12,s\x92\x05\xec\xcfN\x1a\xb1|\x94B\r\xc3;\xee\x04\x80\xd5\xd5\xf8,\x8d\xdf\xf4?\xbb\xd3jr\xf7\xa7\xf2\x19\xfe\xa3\x13:\xd6\xe1\x8a\xd8\xb3\xdd-\xe1\xef\'\xf3\x83\xf4\x92aH\xef\xfbte6\xa3\x0c\x8a\xdbq\xea{\xf1\xbc\x10)>\xa8$\xf3\xc5\x9f)\x1cwS\x99\x9f\xde\xef+\xcb\xaf\xb5qU7\xee\x18-\xcb\xe0a5\xe2\xc7g\xe3)\x16\xf9\xce\x8d\xbd\xd4\xfd\xe2\xd6,\x1fh\\qg|v\xf9\x9b\xd2x\x82}\x19\xbe\x91\xc8\'C\xdf\x9b\xad1\xdf\xcf\x1e\xec\xcd\xd0\xbf\xf9]6\xe2\x8e\xd3\xe6\xb4fK\xf9\xf5$\xfd\x91\xef7\xb0"5\xc2\x9c\xcf\xb8\x8f=qK\xc3\xf4\xb1\x11V\xa7j\xaa2|4\xe1\x0fc\xf3\xfb\xc9\x9ed\t&\xf2EF!\x88\xd2\x87\xeaS/n\x0c)>n$\xf1\xb9\xb2 \x9e,\xe6\x1f\xb17\x95\xd0K\x10\xaf\xe9\x19\xdc\x0bv\x19\xe3\xd7e\xf8$\x91\xcf\xd3\x9b\xe1\xb3)\xd1l\xc2Y\xee\x95\x1d\xfb>\x0cz\x82\xfe\x9d\xd1\'\x99x\xf6"=\x96/\xdaL\xe6\x0bm\xb9;\xed\xf0\xd4\r\xcb[\xe1l}\x98\ro4v\x89\x1b"\x9fH\xe7\xaa\xc5\xd3\xd1\x90\xe1\xb3\x14>mN\xa6\xf3\xcf\xe5\xb0_\x93\x96\xd9\x16T\xf8\xf0\xad)\x1ds\x91V\xe3\x0cI\xf1A+\x85?\x14~B\xc0\'\x8d\xf4tb\xb4\x0c\x11Y\xb0\xc6\xa7F\xa8K\x9b6\xd1 >\xc1\xd2\xe5&\xf3\xa3\x89\xb1\x1eS\xd43\x1c\xac3\x137\xa2Yi\xc7pA7\xee8O\xc5\xcd*|\x98\xce\x1f\x8aL\xcd\xa6*}\x0b? \xa0\x9d\xe8\xccNd\xf8F*\x9f;\xd8\x81\x8a\xdf\xa35\xeb\xed\x1c;T\x8b6\xa7\xfbY\xbeP;\x9d\xcf\xfdt\x83\x0e(\x8c\x92\x9f\xc4\x06-\xae:\x9f\x9d\x9dL}qe\xf8\xd8[\xc4\x17\x0esv\x982Z\x16\xdd\x82\x90\xcaF\xa0\xc7N\x90\x83U\xf1\x95\xc1\x89\xf2Q\xef\xab\xf1\xe90y>6beC\x89%F\xc1*V\xe37$\xc3\x93\xf7mN\xbb\xb6\x0c\x9f,\xe5\x07Y\xc4\r\x92\x8b3\xfdN\x00\xd0\xb0\x83\xda \xf1\r\x92\xe2\xd3\x8e\x0c?r\x1a\xf6\xb0\x07\\\xee\xb3\x8b=\xd8[\x9cJ^)\xb1\xd8\xa5<\x7f\x95\x8d\x06\xb4|\x1f|24\xda\x9c\xac\x01\xc9EJh\r|<@\x9eQ\x87\x16\x83`\xf5\xa5\xa1\xf6\xea|2\xa4\x1d\xd0\x82U\xc3F:R\xc0w.\xec\x18\xfdE|<\x00]\xd4\xa6MXE\x0e\xcd\x01\xcd\xf8n\xe2\xec\xa2\x19\xd0B}\xd8#\x1d\xa3\xcdNp\x1dTp\tX\x84\xb3\xb0\n\xd7F\xf9\x07' if name == "apps/webauthn/res/icon_kraken.toif":