From 8d1fd61a3723ab8cb6b7bfeb8be38e16282cc1ed Mon Sep 17 00:00:00 2001
From: Alexandre Courbot <acourbot@nvidia.com>
Date: Fri, 19 Feb 2016 15:36:31 +0900
Subject: [PATCH] nvidia: Add GM20B signed firmware

These NVIDIA-signed firmwares are required to enable the graphics
engine on Tegra X1.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
---
 WHENCE                             |  14 ++++++++++++++
 nvidia/gm20b/acr/bl.bin            | Bin 0 -> 832 bytes
 nvidia/gm20b/acr/ucode_load.bin    | Bin 0 -> 18592 bytes
 nvidia/gm20b/gr/fecs_bl.bin        | Bin 0 -> 576 bytes
 nvidia/gm20b/gr/fecs_data.bin      | Bin 0 -> 1964 bytes
 nvidia/gm20b/gr/fecs_inst.bin      | Bin 0 -> 17021 bytes
 nvidia/gm20b/gr/fecs_sig.bin       | Bin 0 -> 76 bytes
 nvidia/gm20b/gr/gpccs_data.bin     | Bin 0 -> 2068 bytes
 nvidia/gm20b/gr/gpccs_inst.bin     | Bin 0 -> 9964 bytes
 nvidia/gm20b/gr/sw_bundle_init.bin | Bin 0 -> 7616 bytes
 nvidia/gm20b/gr/sw_ctx.bin         | Bin 0 -> 5448 bytes
 nvidia/gm20b/gr/sw_method_init.bin |   1 +
 nvidia/gm20b/gr/sw_nonctx.bin      | Bin 0 -> 1432 bytes
 13 files changed, 15 insertions(+)
 create mode 100644 nvidia/gm20b/acr/bl.bin
 create mode 100644 nvidia/gm20b/acr/ucode_load.bin
 create mode 100644 nvidia/gm20b/gr/fecs_bl.bin
 create mode 100644 nvidia/gm20b/gr/fecs_data.bin
 create mode 100644 nvidia/gm20b/gr/fecs_inst.bin
 create mode 100644 nvidia/gm20b/gr/fecs_sig.bin
 create mode 100644 nvidia/gm20b/gr/gpccs_data.bin
 create mode 100644 nvidia/gm20b/gr/gpccs_inst.bin
 create mode 100644 nvidia/gm20b/gr/sw_bundle_init.bin
 create mode 100644 nvidia/gm20b/gr/sw_ctx.bin
 create mode 120000 nvidia/gm20b/gr/sw_method_init.bin
 create mode 100644 nvidia/gm20b/gr/sw_nonctx.bin

diff --git a/WHENCE b/WHENCE
index 1d6fb86b..e249c49e 100644
--- a/WHENCE
+++ b/WHENCE
@@ -3114,6 +3114,20 @@ File: nvidia/gm206/gr/sw_bundle_init.bin
 File: nvidia/gm206/gr/sw_ctx.bin
 File: nvidia/gm206/gr/sw_method_init.bin
 File: nvidia/gm206/gr/sw_nonctx.bin
+File: nvidia/gm20b/acr/bl.bin
+File: nvidia/gm20b/acr/ucode_load.bin
+File: nvidia/gm20b/gr/fecs_bl.bin
+File: nvidia/gm20b/gr/fecs_data.bin
+File: nvidia/gm20b/gr/fecs_inst.bin
+File: nvidia/gm20b/gr/fecs_sig.bin
+File: nvidia/gm20b/gr/gpccs_bl.bin
+File: nvidia/gm20b/gr/gpccs_data.bin
+File: nvidia/gm20b/gr/gpccs_inst.bin
+File: nvidia/gm20b/gr/gpccs_sig.bin
+File: nvidia/gm20b/gr/sw_bundle_init.bin
+File: nvidia/gm20b/gr/sw_ctx.bin
+File: nvidia/gm20b/gr/sw_method_init.bin
+File: nvidia/gm20b/gr/sw_nonctx.bin
 
 Licence: Redistributable. See LICENCE.nvidia for details
 
diff --git a/nvidia/gm20b/acr/bl.bin b/nvidia/gm20b/acr/bl.bin
new file mode 100644
index 0000000000000000000000000000000000000000..e333202d7fe15d0dc00d599851f8b0931d52cbe7
GIT binary patch
literal 832
zcmeHD%}T>S5T4CX-PqQ~;!Ol!A!j9c^$i3Od=l@yv^hlFSnXbl51?3b$UcJ}yb4}>
zYJ@?OXjf-RgdX|=f&)9>?##|NA78$+cfg>IeS#x%wM}Z`w`rbMb5?54a1NjyP}2(^
zSYZw5OKAz|i5p*xw?x#{A7F|?^0?%&?kp$nQo4HFRNEriR4<v#!&6|@t&=9eAbq8D
zCy~Dw8xH_ycxa6PS_2<|W))UttFVcc>Fb(i(z%~!Z+R%!bJPO5BJpPEXY*)w$&H3)
zc)hZur>{U^h`@%lJJV5By6LwO_Jw>=*dBjMAdfk=cS#&Oj-Zmzv%C`n+;a%ZM^fL%
Yz{g-4gT9JsrJ8=O_(#tC#~*g!2M#@fsQ>@~

literal 0
HcmV?d00001

diff --git a/nvidia/gm20b/acr/ucode_load.bin b/nvidia/gm20b/acr/ucode_load.bin
new file mode 100644
index 0000000000000000000000000000000000000000..1145e28cc566ab572649cfe24085304ef2dd720f
GIT binary patch
literal 18592
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
HZwUMs<K__h

literal 0
HcmV?d00001

diff --git a/nvidia/gm20b/gr/fecs_bl.bin b/nvidia/gm20b/gr/fecs_bl.bin
new file mode 100644
index 0000000000000000000000000000000000000000..54ed6399d49bf399da46fea361478480d9476d89
GIT binary patch
literal 576
zcmew$B5Tda009a>$^pb=0uc}p17m<_kU|)SieF$5U|{&i!mxKqoj?r352j9__>B3S
zGv)})n9cX^8v}&TG36)6lz%*b=du2ufA!yOs3`Z0nOu9H?3w?;E-Z%O*F2UTGl8b>
zcn2hw&Huvj@drCh<xKv6(;4=Dv8#_^=wo1D+w*V2ub-?t{(}_$`NHx32lL)9oeUjJ
czve>>1}pDm=miP<+`4zk52#y5De8v+08Qdbp#T5?

literal 0
HcmV?d00001

diff --git a/nvidia/gm20b/gr/fecs_data.bin b/nvidia/gm20b/gr/fecs_data.bin
new file mode 100644
index 0000000000000000000000000000000000000000..bf3092ba607cc26c12966a2393b097145cf28476
GIT binary patch
literal 1964
zcmeH^p>Etj7=(YHHdliM3oO-=3l<n0FtA&tjiP|DWcdOPSn2^sS76|BgMtGA22o`f
z1r!t>C^%3U7;vDVu#Zsn3Gx61olUN^PvDh4&+oOoo*BP=-`VWczD%=I$+Gk8&H1Y{
z;qu%?jO;#gGEetzZ+67Zj%P>xckiBm`~6(*iJCzv0DHjx1Omwsr#V!W!*6rQHRsRN
zT@L-7vnr6B6_BQY?x|mhDxpJ?lu#%kYtoQyiOU})d|AQ|mxzlc)Orb#8j{xV*VL|t
zmJP%ZOPURW9kC5$(LnE8m_v)?Ps?v_A$p78o+>@Uwx<s8F;GYN{Rnw2BHGIzbKhtq
z@94d9=XVgF?*$`X3?qF?bbXL$g&B25Ra8ZtQ|Hl25c!5!k`j=LG>G&E>MivvB9S~=
z$ge2iBy_<uW##(i3S8d{Qk^{g6KBfp^#UUv^LkLJhfq%FZw?-SN536C-?8flc0LsB
zk6o%7_M%46xW2BK<qA5c7R=`IJ#4tozQP6)6X{@V$DGW4dCY#;LZ?0CqKDA~Y{lNX
o0l_WRjIafJsYb*%>~cRM=|3Skkc6J6H8n6bFf}kW@c#z>0*{Y;;Q#;t

literal 0
HcmV?d00001

diff --git a/nvidia/gm20b/gr/fecs_inst.bin b/nvidia/gm20b/gr/fecs_inst.bin
new file mode 100644
index 0000000000000000000000000000000000000000..88109e5cdb0b82212c77d090cc881b7aac767838
GIT binary patch
literal 17021
zcmb7s4SZZxweQ+z&Ls1d&Lj;q>9kGy0k(X$rD{vdX$t)*rD(v*y-)nQ!d34@ed_h|
z>GO@#(gHKK%}}N^DQ#woF%nu}dM1hKWyYx*2?%H}a-UW{S~VaMu!GL@X7Y93f9-S5
zOwv~2_4gxl_C9;Bz4l&fuk~MR@56Bl5KXC+?FwDlLZeFCJfd7F)*+ImLa^G6p9t6N
z8>I+UDP#M{FCtX!7)#J7`IQK*RPeY<t)`t+O}W##6O)Ome7w34T*`$Z!!gw1=q?q!
zjs7}GAW<QprHOW;XYNGqWbWl1$EpY&`{Rz-pG9VWEV(cFa_;4Pp*myaV}{5)T}lrJ
zT-kW?1P@!s!-50V=HNzfaQ)kGP=5{w?-sNZJuMDg)$f!83~O<4l8BmZCgNZs_BKph
za1Imy0VdGXV&bNE%7itt#Ye>O8~US0PeIS7&a5f;=BLiAE;KAnoly&}m8mn%Le0E%
zp?aC7Dil#jut+X|l<^y!t^Y}XA@n1{dWKpA{>t(?E<@@ctD;<oN2KGlI6_Wp@AUiE
z@f3#s#7Z#MN$D<f`%Q6V<3`VEw=s5<_{m5Y=pRq~BmRv&B`XpqxzL>`1h2`)(a7jY
zaAEn0hw*Q$$7;g`u5K(7N?>r`*rRj<1x88!Hjh%NE?d|{ijim<Y*Y*0;0-j_c<iyw
z)M(^#p(h2@Y!l4~hkF`bgE6Dv-IR}ug1070B(l9B%x=)F6ue%KiW25N=mwFRD3-=6
zcohcS;j3aaE9#KV(I7%KVk}0RNQ~V}<F%z&DOpODj+Ks=PL=XgQBg{Ujw&>foO*}~
zE0u}-#Hoqn6UQb}6Um9#s2HVml7cL<@Cm~()*C(X$%M0wd}6GGRn8V7{KzUT)nmps
zi_jIy*aMXB@(*;7AnZZ>I+d~gXx$n{2e}7%D<~|IY+)ynBRj19&Oz8X#><Jf;?!L9
zdZ>H6=*k=T8}yLhqmfE}XM~7lC+S$KG)l~8z@p0v;1|h+)lj~|_;n<?^}8apnh8Wy
z)|0k*Rm@y~lBG5#Tq17JU}{JD5iy4%DQ?#vR|YyRbC5Qq(x%mFI;mWn?(uk`0bCO~
zj5hltz4-e;WB`8;WS)t^BxE{H#S>~KA)jA5o*6ln`B5tK!twYCW$!*$>|xR0<>Cc=
zMqs&4Oc;h^vPV6Exg5(6ipd_#_2**puoDY7N~!-#`3Z0S46NBRB4+RcPwx>nd*p|?
zL;vvHe8DmKsI$K?U($GtY3u^EY{594=-<<n?hs=}`UG8wS||+H=Hub3I%v#*aEC*q
zDuyi8=}G;^>8xm=R5#`Kd-L~;Hd?Io$5kv;`Xv!0EKWY-&G(CFeYB;&SIrKF{>4e@
z`C@+Ml|COYqB|biV7?r$)qkWv>u<K?pdZrTfGz)=leo%SdD#L2m6GBX9wA$x%4$(k
zvIRYf4bDm!rSF4y_IVy#_eRx9X&elfHO}M2)~T*y<-Mtjk_q#br9?9qvzM2jm-LXc
ze{gO^4(F`lwB>6lddG|?JuTRlJceZ)41Kr?%b4wre*X7!LJwo$!Ji#cYlJL<)w5p(
zroSpFk(PtheYEKP82|OnhMvx@Rqz-Ll6G4)MfM(%uV+)NV;Q$=!bsZJs%fByYUm{1
zw!9TL{QdEO_GP>B*!e0k%(*QukCiKpL|^otjV-*u$Dx}oyvnkom*+H@RExpC8qpnS
zAuGm(#rji{^`|PVKP6e8=Q3HxYm;?6fOS<{?y9gJwpqX2t_17nR)Y0&E5W*5X(XJI
zv5Ia?n@IS)6B!qNU-}VX1Ak3q;s(<YL?&7pNu-a$Q20I4m}&RA$nPz;*hL$aZ10XG
z8x`aAlh~@o`OTz1HZVd8cf_yYUs$(4oOo5ql#;POtKDxDga3uy7MXazgefZMI!q&F
zS2-$G(Dy+-RU-xuIig?M(30;9$c<JbE+j6SOP}uwuq?*KIaNR&EfKnkr{i(JVf;6^
zN5yP&er)>ew?aR}Z_O&}eW|XMTJ$59fn`OAZWJw>NiYx6Az@dA_5~}(1Qs0Ip=4m+
z?)OpzMguk`0UHxwyAEMr=Amf){VkjSy*fKsBk4rzyEklJ<S7>e(U#2{VNlGsY?e)L
zp<>H9vIWiWp%@7mE{qlaN(W3?w<x+!8%!E6w3VJ2><D%u+~QRubc?&<zyJ@WF~AHh
zjHG+uEpPYR{$v~Q))pYOyMVT~1GHpUZG|*7%}cq~Tw`~s=uK0uG1rt^u;VN|mg`6^
z$SnXOH1>2^pzw>X^qYZdO3qIAR4;{9tuFfNDBYvZqx2)r&y#kQ7p2wBD6RPfY0JDY
zXQ8jU$*puJi@_Gs)?zVlWQUYKK=q7FZ(&0=b|o=CZ2BM*Km{(zSNCaaB#q@&<Q8Mg
zi07I+U@;!tV5DE7YYd*Mw1VTel~&4ikcx6ACcYID-@+b3&8^QZ<H@=x^cfEs0mu>?
z{|!U7mwGb3qNG4=1e;|^!0#LAXr99=9r^@w;ZZEjf)6u$Sk_s#9_W~;XRP2Cw$^hm
z*y@S*v6lLss8(%ars<YMfGHTz{v8^A!=?czZqh&(jQ3ts{dv*>xH>4fq{4hpl=;r~
zdi<fUV%p%wEA+YcGo03JpRD!xvHh$Ta(7wJWedVxBiCc)_h-9y!cu&&i?U0;%f{k4
z<4$b)-6OI7y>P2a=Dt|!42;K()L&52^Igrfcf_hs#$qFCxs^7rhLW)zvhNP779mK&
zC-#<HfXVTME90ijW69V{YV6Oh?iY%|`weCRGfnQdmw!d6F1mbCop%9m=`9d9@8>W?
zu6?71pwaG%z~RJJEvjRKpMGS)YesaUvF^LS_@m$6p3w<+-3us-N=2=#fY~xPaO;;~
zVzx_f%^SVhWxs%g+p!}OtzW91(V$`pR-c!}xwHNbi}ac?Uh8p%K2U=hL)|211fp44
zQR;2Vd6l|}l^Uvidn+mW^Ln5DMDKCf9#b(y`h>Ec(kBEfrk0&W={IQ>om7C5&5{Ep
zN4cb+q*^5jr6Y6?tK8HN034?t0F6y_9m=hAJupKlu@xfF|H{S&7IG5vyV5i;)}C9Q
z*pp}&>c|67raRPEjoz3${`o-qfbf%X<DRiwo!Z6LQ&n%wlRluVB5k9;yh@F7=V~|m
z={k(Jgyqe$HdbOQE5+ao#wg6H#UUn-t@1TycKo)&@&bc(xdd({buUaw>L7kawkzA~
ztJ;Yu3y|?&XUXVxHuotk_l@FDfvvXPP4+<Nb2_0-rBg}qE9hu-BZUVNloA*V{)Pv0
zScA!4F&>H$hhJ2Bfkz&U%~ltB{=I&6TQ0-4Y(!re)b~<k2}%z{n(;T`Mrf6~SLy#@
z6-Z@rDNyR~b!EGl2c#e5gp&c;Bf&L;Q|sd+O6EW;w+~u@4G+r6&fSLKCg3uefLmF_
zYG7Nd)*n)2DckSXemQb7f%WHJiO>fE1Z>N=K=`+={==Lo{u>O+?H0cN4|8~*avNZR
zLp4J8>?W0~x*^8b4Sun^7JfWC7`^cibIk3Ro=-XX#v)7pL9ZkiZT_%CbQN;Zz&SO(
zb81}Y)Tq;I1`mA)V77jG6>}PGm|in@NT6z-SruLK;TEscHVV5*$cnQ6PuI|grt>e?
z5h^;1J;M0HnSz5jv%`=b1P3kM{W$ahV)Ru(iYzIJk+n4<#n=YzO?JjQ)b2zvSTdyM
znnI0DiF{#wvJ<A5n`TP+<XC=qeKCmbcwrsKM^c(_o>Ilj(u5Ep@!$5-)X$R%_~TF2
z5!Ra5*`6K$%IQ_J)L>e94PaXHU9vSQc%4weeanrjtj4^mvhjE1>)t4@yxq7r%95#+
zSaRhOV38EARgta<eAbY2?f5NnYCjiZEA++K_x<v)rq)^G;$3(hbgxWK_r#!gR*`k@
zv=OTn>G^>ngY`PM525VT&v!q}u@sZ!Rg>Yk?SB@s=Y@5a>vt#b*Roa8O0&y`%QAl}
z8R-Gwz7EV$Mi47n$+j_}XJ^Bb+SY`_SC7zBq1UPaJ@kVBA9!MEr+c6^ZqZk2(Eg#G
z`o<a{upL$8QLyhG_ERWOPkJyq+*uAOv2U-{lTa%CNT^vsS5P>NHUPIwJg7ft691!k
zQ0QGl{x221HI$wdi%84X6VuMFN+z@y>uHa>o}Kf3E-v_IpPgBA3sSOO`dZt>KzXI{
zQ*3pOHz9b)=ibr}=xf;$WrvMxmmJ+hllQ8VyPe4I2+LY>2cAeauJ2<DxuK-!NnW4`
zZBdXFg2`NzEo_Ba^R%vb305f_FDa7;oXHVHDF{!}lP!NSBL9oUNQw}l_g(<Y4O6Q7
zO!H@2<y5WY4Q~ScCcuXA>^IHA=h)eNzBetxr|xW#Z)&G8?sM)8o6Re>KP-4k=Fl%P
zx4DzBwm>(N`<*~3!RH8B*z}t%Zy4v@)+7X0mf4?YvyY`!QnkcnP4?$m?ANlp!AtAS
zH1^MWGoAfueQf3h76$`>cv$$HlG?Cb=-ide`XUvp&8*KUv(6Gj&QSaFg;IDoP&3PJ
zVQG>6AQahFJ&mEXsd{C-wuKu}knDq5MCLojzsSDrrqDGNWdOC6oM8$>?rofiE14P7
zPWY_%3wGt4?xXgTOS^lDHMMfThB-XYq75`yav*Vp)ZhX5Th=6_bA9{CW$iCtvgcsU
zQ1X?*lF>ih&|h>-o^~?)ToBmvpu$?W$K%S(O|lLR3S&>Bn7r4yC!tK1oO?<t(u%SD
zBK=h0LzH?VQ1mUK^i%5l@T?YneoEahioVSVg&HXRtm``S;i;C(=*SZ-RP<q=J==V_
zS^IRD5Jvry!~(=g4dioZ*Wj-z|2pO0Dz~BsO}}7jfrSuQHu}}fUK_!YH%<Uy<r0I-
znjUwnlYWFb&GP5~i<&SO1S{)f$Kw&&!G_8jp(fkKB3l8GrSu0w8|JXJc!buTM`YPv
zJ?RtrC7dKOM16MfC{gzLNsp>uVu(IzbFq0LuR4%ASSA%LlVazeeI5Y``w(tgi>61Q
z3HGQ#xE74y;SuzC`XMOI_W&);rYkxAm-)4`4DXj4&o#XHcr(Ld?jrMV<0}fwNBx1)
zR<_;xVCr{nOkHL{6RB<mnZne)9=CWrq3-S!GJ(23o%PJ)qylnjgB%1P4#6TSq>VIE
zI_rHG-W>~;-zg9P8kq{*Ny4FhV=kK2E@l$7<z^-c9vZ1vZ5=nMTg6T4%S{mGVH9pM
zAVD27)kZ^NHxi&F(h3;;XaH!wo=0dUz}zR8JvSoLA@TTr)odq}-J1lfV$D3#pUW1q
z>ODZtchk>A_EX#GNudqTB|z>r3LshwK%)l?+RS@P+cKAOi?!o(5w_#RB$10$LMr3y
ziNQoux`bH8m<{+&z>4tDFbn|p-R|Oor;PL_aWSPo;8;!C>>!;Jf}^{(Fi4e{2K>Nq
z2Yzd4{}!|uQcZ^1z$^ISWX7FfeJitGA0|?f3s^Iar-g~hn2hTyME^$gZ)yb4j|A`I
z+g;OxtMm4O`xZs->xixj%TK{mmu|N*N*+(>b1LacxKaG>ebhBPVi-gI*ZK<q*oX)q
ze<r!SFR`}ozBTz_n3zCc=hcx0&ZlOd57z@Q-<Nbm2?^$2-V2_Ku(h0==$+aqI4c#~
zI4`?I-w>vyH{JCR6y?@=#Hb~AYjSREk%-l*nVw|wBe^?tPquderjfdr6<w#0%H@=`
znN{Aq(#5fn%r^77U3Al(OsN-?Fk;N3df#O?&20h*l4N2V)&4!M%(CX(8r`E`$_=_3
zi>~7aGZg{fIUG_rsW0KP4>iaIb(JR-<DYJpC<hiAMg={m&94^o#Oyfb?hV+(auR1T
zH<sCpciD-ON|wSaDtQdl{=)mta~EbH4K#H~KOFigvcDKP+iQ=^vtf5&p34xYZ>+<X
z(jqrJSV7nIW0tSkbF>NZ>MO)fffp41N^bMj?5EICQ}FAr#uGdj@<#AnX}9_xfGx-P
zO}a+(z%}A<3kj_)Si9uDzPal#8<_6R2o{AHx?&yhNBk0%6rc`RbIXx4Drirrxz6?j
zqJ6(}6XhpI)X9>{2&ez~hW^2Z{#RV=x!!b6PB?LT^ljM8v1BJxKJoIgnosJUzQ*+u
zAA)s0hT6ugOMvu%XEw`&*MS+<4lMxFid*_{KGcx8HQSR*KMt1w{D-hYx)gYkk2kSd
zUzV+BLaeAvY%8l+O_NmC^dSl`ylsvwAq0rpN1F(0mRnZQS!mV?13OyTiWXZyeZY%!
z^?;9-6I{Rt6iQwKBF#;l1O+~Yh6>Uy0rl%IK=cWs`?6i^ZDcmhR6B$g)iQi&3kL#v
zPqueBHnD!_;hT_G>hDr`525OyVMJYKGd{7<4?)Mhza{)FpII~(gJGfR&1T{suWRL*
z1*-25S~IepUf<&7;z*TmanT1O?o}7h5^1k%ah*u}Y4Q7o_A0ljmu>3N21?-%EWT1`
z3l^fjVe!XMp0~J3XkVAKoWlfKPK%cFCurkxK7lsm94CvGY*UXml9uxiWYKa4n3nTb
z#I*Ea=#qNmP!>X8AqxD0lJad(cPT|*JxZi}1npJjd!*%g?0~Wrf9sXIQ0r56lBRN>
z*Id`5&ucET&nXvdx_{X9MXOKV^+B{LxITp1H(a;MJ{WmkBWYJGWFFpXu%G^Vp?vZz
z3uPBbq2(Sx-g2Jl*tO-db$7Y-*AU1g({895Tq2ZB-h$9Rj#l%sT{r{)7_jpA_Ewg%
zm+A^I@ga`Y;PIs{Y)9gFD-Qj`xGt~_NB(yr6TSr*677YBoTieQ!uL_mo%82r?JQpj
zKsE%hJa-^DE9b7<jA$K5AK)ao$M{ve``%&@;A?K^pPMN6v22$`EBL69ewH3KEEY_b
zZZ2JGm1V%V4Y}{Km$F#Xv_&-2O-@T=-T_uOA<y%Bo2==%Hk7U{yG4-Mf*BtF_PE0_
z(=$%X#eq(gs$l_n2gviUUmN2a^h5GYTCxU<gfkRbmSb=-3?5H4J)YhV%aM(TeF!>5
z(#<C%mTi3nNN%RBzYxAmmA>pc)0bVvzH9}Xi0y11u2^jPvQ7OzaIrI!XUfUB@M!RB
z$s2OFRtyB3+OKCgwTeeuV*0dgOz|F2w0v5Ftrxj9WuJDH?b9}$>(kmWqg<)`j$#db
z@)@&)_4e>31l-Hvx0c6qTkfLbQ?O(mi(ugFn<{XCa?O;|msth%A7af;u9ph=JL%@u
zqXLRQWARW1fQY!@9B{m!+?Slob8J>{^c3dAVOO79cpW|w`UfAfe!D2Fv|Scf*!_E6
zS{j}-GH=Fm9r99-n&0CZ8$o2IcAqW=Uopa1nw)#!F@Q-XtylHOU7QhW3cVkA+0R4f
zI<mO9p}bW9cIkM{hFuu-`M#0`PjVMXfD(XErKO*;h1zTjRXel966kbrazpNmWjXG`
z@ZDDyT`wBBHxa7GORjvuz(z}saNe^2*RJFNEUp-S*)SMCO*tn=B!ueg#5EZBZlD@K
zDO<98Z=MEhmV^T)MA{BY+dxF?yNGfhjXf?hdg`rS!<g)K@&pDv0S6)}o5q00=TN+e
zU`(t8Wm#kaAX8Zy0}@*y>BYcGm++?zvw*66Q>w~;GsJ5@;Al?>^IFC(FgpCAVGJ1I
z81;>a2(Ny}&`bIFxRQDCc;AR3gN+Vfecwopc|)UbWXUeNR?*g6jFy=bF$izqG^2<T
z#h!6Nj(eZN>6C-`lqC`Cew`EEXKSAv92#mN8BT$lVC-wq#XO9tizA+uoS@db^Z_Vf
zXksC>ij|NRZ80kvpK-#ZRd#fwneU^80W?B)unsb$Kn5MT9c0p#cvMA13h-jWm7!hh
zI2x63<$%Z~+B;Rim7HfY<pEPB$5jR<j8i57QYK$lP2e*5hO_%mMQ<JHuX|=EXW3}P
zOy6XeWYs&#tMIs?i*WSW8x147!QOjNKL})r($9hpx#@AyN-55F(-=U55<P{ai8ONk
z-(SGzwrT&9^gF{ugQoZ;C1`}Xd*w}`Hr)O(B5|y{-w~lJ<z8h#hirC&e2V^E{f5xt
z`Mh<%;z!agbU}c^5O=%#8kmZ;_|@=xRT<^=dDbQO$s0vD8pOez2@EAfloVB=U9=Pq
z4it=a3=6Xx`R)&jF-LnxBPQGa`#D48$;Tb3dwo3Xh++KI=;;NP^kJRJHF?y@ZS3T1
zZ_L*QGJvV|NSVu#0jmAl-Aktxy=6wK?5XjXyV|ROGOKeVaCXQivp~i@jmgtxf#5x#
z-6|JjWHgU)b60Mp+;+~iwmgS~$FnrNzY3X`YJEKE9x|?rBw^SRHo=@52^l1?3aPhh
zv`3dwwBb}R+dFlw;EBc-txFxOfoX3z7QFK?O#9|#(zd{sCoe&m$zh3%coar!u0I;+
zm#vR2S{-f(2W5Qo?YHS5ClTjKc&AO`;<G2QULt6YG8f25L84v@k8sY*uV|mRLRzLu
zRN;Z9@GRMGxBJ(hIP`}15vFkYITRR2%N@(4c$3O>)fcWHbK~)*lZUT-X8sk>a<sdJ
zuYM<t#qbntWZW@i<TLwInW<CSeV4HD7>SLYpn;R7@nD+~d&)j}MP8@_Zxrg^!{I$!
zmY2@5EKe7MKQa&xUC(mz`>ZP>_E|RWdO(}XcRkp9nD(oUekEcZPlKp5h8+&15b6|M
zgE6@3GC{dcL~x3p*?9|5=x%gd#dRLV8$c3uxiIUXDy&~(l0HZQoGFeZ{Q1cQoS6c9
z7=fg6``8S$&O*HQD^7HngI(Q5KNj{_T_)X~s|D$YaT|okg7(0558&?sdChHqd`gLz
zoR4?1F=f`_fHEC?&#gRxwKFDwpiDCB@rj)eS<DVtbzYdhUaRgItF9JxxD+V|ALKf3
z9j2KPY%!Q2SW|N<Gv<j&@<K~%P|}cU?<;9CJhkugNHIuzU9tVrCQ9_d=7SLmt}j|b
zl2K^I*hsr_pPF7nf1>yrM=Kez4#P+c7n`a96<{oQ%R1ZlRqY*iWmTBz{;r1XlF7%M
zPHBCs#a(Ej1um!5&6N6gk-AyYaW)md)MaP<!w6H^{^vaHUSuYa55hUQ=~laE%PWyp
zj7IbTmuj%XMfZ~8f?g|8&!Ux}j`%#jFQNYZBl(%rttp$dvb9zPTN|lRh!N+(jXmJ`
zlx=!oCy^YJ`Pn*(_HJnL;_%;OHN6SvpAeLFni8?K@>|rKs*xrN4cSOB&Rn!^nuR)j
zIpr?pc`s6JFaaAih+x&UQLmh9qZVE9c3s+7S&YawY{>RVn73u*o+_FplAZEwrhs4b
zGAo~QOH0C51j`|vznRh99zdOa2ri>1^O6**EQF6ML(Tew)?t=EkUpyTIRZ!@b>J=;
zn#tQsck$h&TkLRSiygHTFozj=xS3Il@oDo)Z15!`y$qN8U|nvM)}`6bzTu31lo_nx
zlYae4{nt=qMkwk3gUmS38KUf<TH>Y1b#&if^zJ_wk9>9}9{Ixg@CbvMcZf+Ea621_
z1e%%iR`Mj~{$-Z31&D)1lVD-Mv!SIndF8Yn&h@N=rcMDgu$`A%t+S!MV;wtdhms$5
zBunWL_(F#xJ)%^TL!@3U-<W-oH?-{1;c4rtqM?o|v_2rpTK#ETtM#?1uT%c8H`H;3
zT)GHa&)fi?v72Uxp)C%hGclA{lP)Q9C|z>Y$x(3jhqS?w<+9M1Xw(LmQ(tEzZ%xTb
zIakLitoEjN;^P4@Z_!dKXcv3iroZ8B`QZ3eP$Iit{rfonXEadRXsgVPwhhKy`_~l}
zD1d0hgAFG)nZ1Q`2=B7J3=3Ycx7>1u1u{hJ`v2%$wjj5grm5m|*0mwZ$kyuxc08O?
zO_pTFt7;|XHgn8zBqa@mN40}b@9kywIPnD|!VLbG3@G3Tg`No^g08sz^f&1;nJTOp
zb>7xz8TITo?dVEM?^G@$3H+{6rUSoO+7G}_83($#c%Ej?na%i;=vl+C`jzqFV7|IL
z#`w_FsC$#AY?X?%o7(nH@F5aA7ZPSzE8Sf--dA$<m8#7&vAs-~R1N8$LxNGeiho@^
zP-T7o20AHUJC*2!@mGff$1`PsAi;=7Fc6U$;R+ZL=LI8AN~b)-QJ)P+$}prdii9Cv
z1%5iiP(*rt$;;a5yqLH`cs=^zvv7s*o{KAl_iy70@%Ffak4M{2Uh^_zQRdi#i}<3i
zbA8{*YeFYwFvA{?llwB{W8}$+?sB$Rrn7fax^lPpym$oWZ5k%Ao##Q)KYEVuw6?TF
z_m{r=?Hr+n@8w38`2G`b+eO>^Zn<ye#~$S@Kf4;+KXPJwyK5$v;FqTQa||uxH0>+z
z#)TOi`&kJ^Hikc8vn=DTIaktF>zgbXDdZOUvzPDEPZgigR=mgj)ac}{W4IzCzqrbD
z#<23a&g4mazjaDA(~1AdA#klst1oB5+S>QfScbEcClEN8pxhi%a$)8ak?_W3l=9`~
zFb*2By@of3>lF$h2pAg^9JU4#;(p^|jxP{y*eTMLD4G|~WRi3zcP<zw*GK5bNCh<Q
zS<tj+O;gdkLCDD1Xe=0O;^`4w9pZp**!I2VMYH%^wUPx`z^52E&XBo)Z}Yts72vCV
zQnXL0?Gw&i3CVy~qyz>VfbJ(xb50KD7r0Phyzzbh7Qln>U0a6>ZS1H!y7%QT^X4y>
zmpIJtqu@=EXkUgu@*;^fQ|-I&rS#==DHua~7#`5$!0nd99Il_wRm($}d(Ha;F<j6J
zF~x5pW6f))`BuwFO*%a7!qq(G;72QsagL2EEYeV6jU}FmX|KJvJhVledt${F)7XDj
z`d(m;Ay^=0PnN^9gO(M@6PG{x$oI;--}u1jUsjWuNoq@0BS5N3PQ?>mPUIzGt>n&h
zo{H?}o2U{5cJi@)n9roF!z@lcV+<+iYytI1b0iEVj@6EIamVuhkZmhn%~ZOgfA8$>
zr)BqVPz3zoW2A>bWGY+WL&K3~_zU)x*bYd_ajth8nA29Rk=a?9fvW&+nSsN4TKKzi
z1ZkZ=A`4tOfBcE`mos>+WV&uHZPg#rf2jXB{7EGIKZOkYzhUIhSJCz_Rnc8vMPB4t
z<>P>I(Zl!PaMZk8n7cF@o>p2LZJ$=!9Nj;y^wDT?TIqAqOr@k<bTy}@K-UB?Ne@%C
zo-bjV*7Ma&(R#jt=~>SoVQT!G{4D6)vZ2MS*OLH3D4FrZ;5Q+!$jtLc79JynJ7w56
z<M2_BVk5B6glNoolkL_q77WBIO<a1u5}?+uvZh4B3c^)=u2<jy=(y#$O!)%uKp?w2
z09EB-;n}_c7x<Y`ONufx0*#Xq$@mu5DWo=}{`r*9C)db(Co<UqZp?4s5N4R~h5a5i
zbv!LTftbK9vF>c328Cw)OtlJpP|=LpG%NTxauZD<ZdY(w$|$Lf#Sx?nYOTeki)yA5
zSp|cFwK5B<Q9$s7LMKJmO?x9Z$hWvdYh5j9e~V9ZaSAZ?08RZ7u$Zb~C*6C-N={rl
z?&b5SyFnPyQI)ghnvK^X^Bi7B1CL|q?p(0}-y1x!XY8mG$ENs>z^A#_;Rq`;_4^~Q
z8n^=ln-S0a;&?{;%ev<~_!ChWno$Gyv#(i4nP0}X(hia97+Z#~Z`AIo;sSgj^1s)C
zmmT^0@Zp>Oto{joRR2r+Z>aq_xN~)^o!WoHXU*-;IbtsbQ0$&Uskq>jk?$6xj@)<j
zAAu*=r;TiU7wr_r$Z2Z<Hc>OCCzqjPYA>}eT4XH~z5$*!7ONU{%#bJx11mF|S7v;>
ziYv^vbR(80#B~w&T;8i3=l|k3ch(ojzZ}KKCCKmMlVkq67T*%4dx9NGsykTpwd2~O
z?^Ag86@4GTbJdtgbypRAII8XuEAWgjW1d#hJ<8>{ujEK6+Ng#%?*EB5Zh6h>5!VBX
zwx26KUqBP@PDOi0!xt>|MPD<1W)~ZFpnL7F(V@2JdlO9ppH;L?>+udJ!3k8)DK^}J
zCKo)3cNcz8(f%1X>3eSZusG6v3#7<QE&CptEi3wPDW~V6JMnx`(f1xD{m8;*MN9F}
zD@Rbd()?y-`4H%=s8Y1wFrBMTptNdKXro-Z?I0cLz713tqwr6Y6oH~1>Ha4wx(cZH
zA7}6p!zZ5+8t(E#6$Ng(c^~7yz5rT%2HhSL+L9KEK=t`u8i_dv9)j&ct6PthF1%Y(
zqwtMYNE;w6>tjEpy^4Ez<F-G8mB3qVF9rY<M4NKPRuXQ&CpvhC<ghoC!&jvk%q^H6
zCwW5|K(2Vw&9(Y?=%)9O*3Gm%IJnYWvezelDm!I=K#Q!Wwp;k)9{zw8ADNXTG2W%x
z3Ji`tiOT|aucy$Owek%JUWzLUCh6A~TTh<3q4la=`$ODYHQ)aXUmBWEf0}1M;ozC;
zO!uKJG@s-ssAU^v1H8Za9WHkY>0r<#eK9UK$tTZ>&^PVpP;dFE(PrGUDpa~!whirg
zk7VGdievz`NoJIpCwa!rJ4sqSTywphYo$?S%gv1Pht><R>2_hgV1-VfjBG^pfw9wo
zj+>|sZz8K5G!+Bx-9*(WwyAf+UZ{BTtDA^FS#EW}Jqz{%t!gvwj`M@pe(>R;o@*{|
zj<h(rd0|DMutLG-wiiRN1IDkuNJhyRED2;Fd^A*AQVjZdJ}t~04;nz9v%CyEntH$V
zX!))tK8(!v!a-V9oSq$e82<+X&dp{X&f{S~wn*45a6*~lHtorM@?IXY+SU~~SbMlJ
z9M%{Sax=4AGaQwNT^E~IoVIST69pJ}=CJ`TN+J9nHqaW!(Hu}bxA3}8->qdf;Kqr0
zaMb-^F?fb=g(JBTCfqbbhgXeVkQXPX4W4p(at=;VIce=BcZ2rV4FpMOXEvC1v&nrS
zvbq(~+72-cS>6Rhxt(w!!M@dI9p4w0D*TZe4o42)TbB@@`}5;!3jJoC`FJ^GqU64q
hyOkq@20QtNV>|npKWE^hcx}nGa%8DXxE*ub{{yTZ0-^u_

literal 0
HcmV?d00001

diff --git a/nvidia/gm20b/gr/fecs_sig.bin b/nvidia/gm20b/gr/fecs_sig.bin
new file mode 100644
index 0000000000000000000000000000000000000000..5b75d1b72351f5a0862411645f80a23c0614d318
GIT binary patch
literal 76
zcmXS2r=GNQ|M`!H=N)dGlJn6m=jQfn(TY2`N*?UH=3D$&ondPb+cmkp#(hy{4betk
e3Q<lQ^D<^7CqIkmbe!B>^_h`@fdPb>fEWPJmLLxR

literal 0
HcmV?d00001

diff --git a/nvidia/gm20b/gr/gpccs_data.bin b/nvidia/gm20b/gr/gpccs_data.bin
new file mode 100644
index 0000000000000000000000000000000000000000..035d9321d1c7c841e41f0f9310cdb6f1e2dbe107
GIT binary patch
literal 2068
zcmeH`A#B?~6o&tK*VtLE=}9w)CIbV5kV)sN)vBr>pkN@N(h3F!20E!=z+jpN3IePt
zpdetN(4e58pkN@NU|?V%prD|jARwSHU|?WipQVlk3=~Z{<<ozDIlp)Bzw@hiMVfD>
z>ptI9o^R(bwl~(rs6IcEoHTgMgORaDZqF!HLn=X`TsK4`e&C=B9&TU?cah?xDP>Jo
zwOH3uJVu>W(zDWg7(lj4o;KQ6+-qyUVovQSrhew7Qy6>M89Mjm$`xPb)W~JJEPV+F
zFa!nE3}k#D?Z9_n|50jWHw-bL50x+i+mP99$bM)jJ7+$ow|PT5hoPcRp^PE+x}n&I
zN}iFb#E**ih-&~b9whWy!VfU?7qibNtlftT>W>3O_@~;t6{IH}eUtjV01Z%s8uj_R
z9x=|>bxg!NDOB~lD>4qK>*~5g_DpRTM~X7&MKbKcouU^!vllD8cX(ekmDKyXY{?q@
zF0AYjom;tLRW@ql_8RB2#?d&b11bJ{bj!)?q4Mf<y}Ff`zQTm_n4;I5!!6w9<YpOZ
z%@(=~eI5^?B=)7gDKwVh2Ynx$q2~|GU#}<Ry@KlnOo`1FFemnN0l$d-UO?Tfhl1~7
z$oFx=oHH~Nqt2YU<)Gif@SbC|W^_+|7d)Im#r?YEp4~9Nh3P*qV|~H>JmUThpnO1v
f<T{2C`KwTGG<ljl=R7|`eK(h5>A=!~|JQ*((2$S|

literal 0
HcmV?d00001

diff --git a/nvidia/gm20b/gr/gpccs_inst.bin b/nvidia/gm20b/gr/gpccs_inst.bin
new file mode 100644
index 0000000000000000000000000000000000000000..7dd1a7a70dcd43a87c65ae3c5ff90005043f6bcb
GIT binary patch
literal 9964
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
K;)U-R<Me+djX(GR

literal 0
HcmV?d00001

diff --git a/nvidia/gm20b/gr/sw_bundle_init.bin b/nvidia/gm20b/gr/sw_bundle_init.bin
new file mode 100644
index 0000000000000000000000000000000000000000..9381678c9bdf2a4f1581811b43310badf7368f04
GIT binary patch
literal 7616
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
K75vLQ+<yV*xbwjP

literal 0
HcmV?d00001

diff --git a/nvidia/gm20b/gr/sw_ctx.bin b/nvidia/gm20b/gr/sw_ctx.bin
new file mode 100644
index 0000000000000000000000000000000000000000..b1450139c8a920b4f3a342b72c026d16d51aa66d
GIT binary patch
literal 5448
zcmYk<F=!iC9LMqhNtgIYL~;~C6;P9F(V!O5id2IrCXtKVdhp=E6hkwZL<JW#sNlha
zAqO?7lemor4<>}xg9i^DJb3V65)U3c1Zrp~88SFvN}z$5HiIDn^?$klJAE~X4?q3&
z?!9|Y@16WyOWZ4f{T6b#0Eci9F2Q9uf-BC4B2{PYNDZ#T4Y&yp!!39eUWYf}O?V65
zhIimycn{t;-xKfT0QnR6Df|pRgpXhu8Qgy#4&VYD!bP|Qm*EJmz;(C*PnbW|Ihu5N
zATkBF&0lHFyvx-wyzD$ApRYP=%^JK8Z@_!-KJ1USw1xB)zy&yji*N}p!x3D8t8fjj
z!%cV^Zo@O?e!njr<gwY);jF;^*R6L0Eb4n;PJ)8De^n%Oxqi9itTkmgf-7(huEQ;O
z5}t<V;CXXSuNxy@fEVE<xCbx8EARt&)f~%BSwp@KZ@`=I7Q7Abz`O81{1`rf<(rm{
zI(_+Y0GHr09KjX13fJH|+;G-;Z#ru?hT&0o44#B#s`ak(kG%L^-7JCl4QE|?&CEHO
z%q-G1C+l_=o`dIM`7XUya>39!6p5Tg{ON(E4bQ+GxC_t1tMD4U4sXDl@D?0Rr+xNh
z<o#-9J+t6C+<@2HgYj;dli%zn@-289-ZjU$R=j7{Z6mjD-t~6nG3pQCC-77F8GHyI
z!7t#K@LTgIIi0-k2jlYRQs2<HV2&0?&V=T_<LGqJytb0hmCV<B*UyzvAGvyMXUCjR
z7FL|LuM!^)%q7hW$V0ej{y}R>E`Ki1+s>NHVk>!<;ZGJX`{pDG%%=|XVat5>oPKaS
z`BcQ)jyHYhIDaEBe>SoIUTpqA`yc-_@~-~d<b5HvTs&<0W}VY+!5oAVg)TqeKVO7P
z&O`m7vh$l)S0~I#^ONutd<~w4+whDzx#b<?U080V{lA$E#e6Bb@Xu+UQ~Ksu9hjA^
z!oU*3RdXbDor|=cFK(Ug24?-PgmBe7s(Ib4eGZ?R_3=aw2ld{If#oH948Mj?;J4-}
z38V7uv~PXsOU0b@t?H~3S<9>++)3+`8XpeeLS|3G%pyg&1V?ZMuEMp<p42moG~g!O
zf=A&ocs#Qw6Pb0r!Bg-w+=gf1PG(QKne`lj=inG#fEVGV%%1czi!8${@G86pufrRe
zJ=x4GvITF$yYL>o4?oWA$w6k3C-77F5I%xmz%Mg<a-3P@HGBfg-E@6k)b$ydlYP5j
zPWJ84ob200bFy!jP+xZS+RnB)*|)=`!TK-4CAbVna0RZyHMnKgXX$>&te2HItBIn@
zFM~eFug<4>mCXA4H7Dmt&E?uq-C6Sn+=N^3C_Dy_!xQi%JOy8ar{Oj{19#vqJPXgk
z^Kc9=z>Dw_+=G|lRakoIeU688-!tnilmIT8ea**K+`Ndi%^z#Nh+OWcHOJzKZ$6c@
zY5wrEJ_DFVE=!nM_fqGN^gogFt{$|`cO<Htb=qavd{Gy~o~zMZ9;AJ^uk_7-os~E+
zCud(|PRc9h@XJ7|=7+D|T&ba^VgBz@|HonTg$p7R=46Zu<}2!+`Hb5CZE)WLxB!Rd
zTv=q){O_wjWehdr=HyJDKt2UugQwv(JOg*&S$GbfhhumFUWAw69=r^%z#Hbff9SsL
z@_b&lo%NaIcwl)ApTKWn`F(KDeK>#%a0nOS5?qEOxB^$<8eE4Pa1$PeTkt4629Lut
za0l+1BV99d=6}w5GLM?d!}MMykIZXkrEJ4H@GiWUIqw~17CAQe^Lnl!KY`^@dfntK
k^UcXw7MPQ>tYA*gvJmw}SFim%Fz3CV9GW$bj|P_i0pp%VL;wH)

literal 0
HcmV?d00001

diff --git a/nvidia/gm20b/gr/sw_method_init.bin b/nvidia/gm20b/gr/sw_method_init.bin
new file mode 120000
index 00000000..13114cb4
--- /dev/null
+++ b/nvidia/gm20b/gr/sw_method_init.bin
@@ -0,0 +1 @@
+../../gm200/gr/sw_method_init.bin
\ No newline at end of file
diff --git a/nvidia/gm20b/gr/sw_nonctx.bin b/nvidia/gm20b/gr/sw_nonctx.bin
new file mode 100644
index 0000000000000000000000000000000000000000..cafe85a2435e01152de087acb87b9a1233d903cc
GIT binary patch
literal 1432
zcmXxkF=!J}90u_3(yQJO@P;5abg0sygJ^~f6$8D%2^k7TXeDBY3=R$s5en(xaNwa=
zdesOHRjPJy=-{Bxp+m7%3U<hlAw!1_K??2QP_RP>A$~9K^Pl0D@BiMt_qgOPMu=Y{
zZKU*g=VCvjzy-8vk>AQrh(FFvgcJ@C8Cg~8GfycOWl2uZ9OunfLNgsrxhc1(&wd((
zW*C|D7HytrSj%;5L<fTbW+=BsO?}+A<DM+Xc3r<|`ynm4QCOuOuZteoeocBwg<W7>
zy3cKnW#NU*$unyz3#rY49Fy*{?e8mhWOt~89(8gK{3Xgy!8ig06o^qA3Y26_o2^zW
zp`?|{OuCuQC9z^NUQrkDj4bb^HQ%-dGST@O?<<(*yp)>CWLxgZed>$?UFDw90S-)`
z*Bw&xyZ4n(XovYXHFc_drtH%K`(NJK@hy7Hysg}!1Lj@j4f$DiWl#3ykvx@W@?8Fv
zcx%`9SMC0JYW|mz@)R}u*C=l%X4S9DH`H-`tje|jdCji3EB9nx7C+c^K~1g8Bl*eb
z02|6D^fl*gDsRhOc}V>rj|1htT=-bQ+}%;c)Knr<naPgM)s->5+Q4)=%vVtRX3y(V
zQyw+<BTvn9<<p<bx2_j79>_8^_a~H*tjZbL+cE3LI2;Oe*f+H<+bN%a<~%i3qh|j_
zIyS!PJf(9ph+|s+5g?(LE&~fo_Bx-MD#$>N$#FR$C*?I+lr=d^`8q<KmbmUb9a;FA
tH0Yi5yZeydj-I%W=#4neJ*M}nMYl;Y=^!z(QtISfFQfi=7@vo>{|_l%2J!#^

literal 0
HcmV?d00001

-- 
GitLab