Files
RedHotRoast-ios/HybridCLRData/StrippedAOTDllsTempProj/iOS/Data/unity default resources
T

6498 lines
680 KiB
Plaintext
Raw Normal View History

2026-07-17 14:03:00 +08:00
õ
8 02022.3.54f1 sÿÿñÊHW@õ‰p",é(×é0ÿÿêBJ_Áä¶!Dß•oHÿÿ¿ßc« èMZ,v^å`Ùçÿÿ1öZãCöq¿F/Á´—hÿÿƘ¬f¢‹Pª€Û¿Œ€ÿÿjS""hh¼ŠN„ç«+ÿÿÁÕ)÷¿Àù³Í¿¹§Ír("®S•ô1¬KYâ//¡!ß4ÂJÁ¹„“‹5[½OíUHÔ.D 5|dE ™XFø¯˜,ÄÀj-P/X#¨R ÈX %XØ}LY(~L'x~ĞUt'u'àÔv'&w'˜ìØ'í¸eÚ'ĞRÛ'ğY¼Ü'°tøİ'¨‘0^Ş'Øï¸ß'@„à'ĞŠhá'8øâ'05`ã'7lä'?4å'8B4 (pDˆt¡(ø¸œR¢(˜ <*¦(Ø5Œx§(ب(h©(¨È 0ª(ØÜ Ğ«(¨ì ­((
` ®(ˆ
T *à
$*8
ˆø*8
(!ù*¸Y
˜ú*P[
Äû*^
 ü*¸_
¤ı*`a
 ş*c
œÿ* d
°+Pf
¤+øh
ô+ği
H+8k
@+xl
H+Àm
+Ğo
+Øq
+ès
 +ğu

+x
 +z
¬ +¸{
¤
+`~
ô+X
+
+ˆ‡
 +(‰
 +ÈŠ
¤Ù.hÛ.hhŞ.Ğ`á.0L4L4ĞT˜:
˜8J(d9Jd:Jød;J`t<JØlœJH`J¨hJ`ŸJppKàhá.
TemplateAsset
TemplateAssetUnityEngine.UIElements UnityEngineVisualTreeAssetyFš#îøÜğ]½h„ó]VisualTreeAssetUnityEngine.UIElements UnityEngine
StyleSheetíUHzxÎ ãR×ï
StyleSheetUnityEngine.UIElements UnityEngineGUISkin!ß4ÂJÁ¹„“‹5[½OíGUISkin UnityEngine UnityEngineTileR« kõêÂ-®ÖQ|TileUnityEngine.Tilemaps UnityEngineTileBaseTileBaseUnityEngine.Tilemaps UnityEngine TextSettings•*Ç›kğhøø¨¬Ş{ã TextSettingsUnityEngine.TextCore.Text UnityEngine FontAsset¬E|lÖ¾¼+›Ô¼F2EŠ FontAssetUnityEngine.TextCore.Text UnityEngine SpriteAsset1ùCÚ4¤è‘7ù!H¨ SpriteAssetUnityEngine.TextCore.Text UnityEngineTextColorGradient
ÑKÕ ±>òŒ(TextColorGradientUnityEngine.TextCore.Text UnityEngineTextStyleSheetı…ÙsÆ-¦3Y$f‡SƒíTextStyleSheetUnityEngine.TextCore.Text UnityEngine VectorImageŒïL·¡yç×›‹òÿ6ŸŠ VectorImageUnityEngine.UIElements UnityEngine
PanelSettings‰lZBUh¤­^ÿğÁÄÖ
PanelSettingsUnityEngine.UIElements UnityEngine
UIDocumentùªm­ÕôRÉ?ãL¾C
UIDocumentUnityEngine.UIElements UnityEnginePanelTextSettingsãéìEN8z'µœiK%±PanelTextSettingsUnityEngine.UIElements UnityEngineThemeStyleSheetºg¿şÅZg\úMfé²ThemeStyleSheetUnityEngine.UIElements UnityEngine…¬œ&l…a8·°mO{®VGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>€@ <noninit>€? <noninit>@ <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿèßëëëëëë 
ë ë 
ë ë 
ë ë…bâ?°z+ùˆX›œª1)(VGlobalsunity_ObjectToWorldDepthNormalsOnly€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>€@ <noninit>€? <noninit>@ <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>?. LIGHTMODEDepthNormalsOnly


   …bâ?°z+ùˆX›œª1)(VGlobalsunity_ObjectToWorld DepthOnly€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit>
FOG_LINEARFOG_EXPFOG_EXP2Hidden/InternalErrorShader°
p°
¢ `bl$ S¬b<8 btä bX S\P$S¬!<È  Sä#8 S&4 &P( T„*¸xC+äTb 1, SLA$ SpQ S|ax<ô TcldälChà &0l nºu
ëÀVGlobals€òunity_MatrixVP,C'@H`` 0PUdcStereo"B@`!ŠˆÔ€‘T…EyeIndex, T! ÀXĞ X$$l¬/ĞşÊ
ğ0È(€%ÿÿÿÿ üxlatMtlMain#include <metal_stdlib>
ñ
texture>
using namespace ”;
struct ;ò_Type
{
float4 hlslcc_mtx4x4+ÿObjectToWorld[4];0 U+4};
vÊMtl_VertexInuÿPOSITION0 [[ attribute(0) ]] D:OutEÀmtl_PositionHp Ó, invariant ]vC
N q(Y{constan0&fbbuffer«,6ç` input(ëstage_in ]])
{)~ioutput\ u_“01!" =h.Hu.yyyy *ª.×,1]SOfma(@=0],…Txxxx,R)`+2`Ozzzz`
+31FQø1Fì;%0]Ñ ?/1)S&2S2Sy.?_3_Lwwww_ereturnß(}
4
8$xÿ
NITY_SINGLE_PASS_STEREO—TºåjUÔ_P[8];0V0?Inv3V”CameraPro&?ion9?Inv< ŒTCrÊ 6-3 _S:ŞJos[2e/ßScaleOffset[2 Z !Oint µ á6T&J1J ~&L2#Nù/i1&25ÿSi
.“i << 0x™2u£.k(\+ 1)]cIX"W©/2)j6Â/2)Æ|5/3)ãäÒÿ_INSTANCING_ONº
àÿÿÀœtÇT1PLayer.ñrender_target_array_iÌĞ*âbool has_base_ç!_i ceL1funÃ_31(4)Gğ template <type•P UVec(>
ñ bitFieldInsert(G{width, ot
Osrc2¨3)
{
v¤mask = (((, "<<t")-
ks) & 0xfİ 2 ((v
*]@) | T3 & ~<?}; 2
< ID)>_id+WBaseI":2,1_m
/ifN#
 Ğ=
ÿ«Kint(fP0x1u,·
+u,şO0u))Ğ
ÿ­|÷ êÕ/1u   ÏMULTIVIEW_ON8ÿÿÿÿÿTs&ı
32_t rp_ïq_remap_e '
f C· F EÓ(ZB>> 0œ (F;(†Fragment*¡half4 SV_Tö
o]colorY%0),fG T
0Õ%×j=“p(1.0, 01p8ÿÿ Ä4ÿÿ ô 4ÿòx)
(Ğ'•FogParams`\)À¤)€` ,Ğ)(«Èÿ

ã[COLOR& ARuser(ëÄ "iclamp(ì/h)kÿÿª' ¨.
lÄ ÃïFOG_LINEARãôß
Ç:% TEXCOORD'dÿQo.xyz =Q.3->xyzqˆ![0B ?))2!Â.3!³*m ,0,+1,N0,1(1,N0,,N0,
$
v=*2=2=n2=n2=51=*3=3=n3=n3=+. Yw = dot(/
g = sqr0!¸70.xÜ y /.zwX¤ ZA0.0f  f¿
 ®,ÿÿØ,_EXPŞ(ÿÿÿÿÿÿÿÿÿÿÿÿˆ * y8vexp2((-[\8min*$#ÿÿÍ$"$/2Å$ÿÿÿÿÿÿÿÿÿÿÿÿ­x8 + ZX ÿÿ¥ ø6 Fp`@FogCê7H ø6
PH,@/NŒ9ÿ/Iná"Î9Z Ê9§õ9%<$ L3/¬ˆÿ FD
#{½Ÿèui9Ü3
96_0Á$6_à 1È =(-FQ ¿¬
|
z9(inJ +),|/, f!ä'àÿÿÿÄÀàÿÿÿ£Pğ=)N@LãHc-ûVGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿ¥Êëëëëëë 
ë ë 
ë ë 
ë ëÍĬ’ܦÙAÓ/ÓZÒÜçÈVGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿEëëëëëë 
ë ë 
ë ë 
ë 몠¸ë¼?¬jœ¥%2£A.VGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿ²@ëëëëëë 
ë ë 
ë ë 
ë ëtìİç
|jÑLÁêkÅVGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿ„”ëëëëëë 
ë ë 
ë ë 
ë ë ªüDb
æ¿1½C&Ò–VGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿ¶ëëëëëë 
ë ë 
ë ë 
ë ë÷ ¼õ¦ƒ~2ƒ!¸”…-VGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿëëëëëë 
ë ë 
ë ë 
ë ëÒÀ¹æ¾‚Pù«n3ZxÖVGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿ²ëëëëëë 
ë ë 
ë ë 
ë 뻘câVÆ}DJ͹Yh’«VGlobalsunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit>€? <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>€? <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿ æëëëëëë 
ë ë 
ë ë 
ë ëSTEREO_INSTANCING_ONUNITY_SINGLE_PASS_STEREOSTEREO_MULTIVIEW_ONSTEREO_CUBEMAP_RENDER_ONHidden/InternalClear`T-`¢ `$ S¬° btX x SDÈ$S #<b(#x S % S4( &Ä* nºu
ğVGlobals€§òunity_MatrixVP,Ë'@H`` 0PUdcStereo"B@`!ŠˆÔ€‘T…EyeIndex, T! ÀXĞ X$$l¬/ÿuşÊ
ğ0<(€%ÿÿÿÿ üxlatMtlMain#include <metal_stdlib>
ñ
texture>
using namespace ”;
struct ;ò_Type
{
float4 hlslcc_mtx4x4+ÿObjectToWorld[4];0 U+4};
vÊMtl_VertexInuòPOSITION0 [[ attribute(0) ]] o»half4 COLOR&1&j:OutkÀmtl_PositionHp ï, invariant ]]tRuser(tİvh
s ¼(K{constan{&_bbufferö,62` input(ëstage_in ]])
{)~ioutput§ u_“01!" =h.“u.yyyy *ª.",1]SOfma(@=0],…Txxxx,R)`+2`Ozzzz`
+31FQC1Fì;%0]Ñ ?/1)S&2S2Sy.d_3_Owwww_ª"ereturng}
tS
°°Ğğÿ
NITY_SINGLE_PASS_STEREO ̺7âUL_P[8];0V0?Inv3V”CameraPro&?ion9?Inv< ŒTCrÊ 6-3 _S:ŞJos[2e/ßScaleOffset[2 Ò !Oint -
ÿ-6Ÿ&J1J É&L2ND/i1&2­ÿSi
i << 0x™£(\+ 1)]cIX"W! /2)j6Â/2)> 2> |5/3)[ 2[ 'X !F ÿ_INSTANCING_ON' T 'T ÿÿÀ ¿;ÈVPLayer'ñrender_target_array_i@D âbool has_base_[ !_i ceL1fun_3"(4{ğ template <typeàP UVecs>
ñ bitFieldInsert(G{width, o¿
Osrc2¨3)
{
v¤mask = (((ª"<<t")-
ks) & 0xfİ ((v
*]@) | T3 & ~<?}; ¦
< ID)>_id+WBaseI":2,1_á
/ifN#
 Ğ=;> ÿ«Kint(fP0x1u,+ +u,şO0u))D ÿÏ) ÷?1u)Òx !x ÏMULTIVIEW_ON˜ÿÿÿÿÿ‹ˆ/NÌsS 32_t rp_úq_remap_
È
4CX
ç Ei(ZB>> 0=
(F;z…FragmentæH ¼B¾CASV_TÙG]colorfG TŸ
·kLm¡§¥x,ÿÿghÿÿg
ÿÿFP_ColorColor€?€?€?€? _SrcBlendSrcBlend @ _DstBlendDstBlend A_ZWriteZWrite€?_ZTestZTest€@_CullCull_ZBiasZBias„x;®íÆ5Z<šÔİVGlobalsunity_ObjectToWorld _SrcBlend _DstBlend _SrcBlend _DstBlend <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>_ZTest_ZWrite_Cull <noninit>_ZBias_ZBias <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿIGNOREPROJECTORtrueQUEUE Transparent
RenderType Transparentëëëëëë 
ë ë 
ë ë 
ë ëIGNOREPROJECTORtrueQUEUE Transparent
RenderType TransparentSTEREO_INSTANCING_ONUNITY_SINGLE_PASS_STEREOSTEREO_MULTIVIEW_ONSTEREO_CUBEMAP_RENDER_ONHidden/Internal-ColoredĞ.¢ bH S`Ğb0ô b$ œ ¼ b|  Sˆ$<b¤$x S' S°) &@, nºu
ğVGlobals$ob_Color$»4òunity_MatrixVPï'@8 P<
XPUˆcStereoFB@4¨!®¬ø€µT…EyeIndex, T! äXĞ XHHĞ/“¹şÊ
ğ0Ì<(€%ÿÿÿÿ üxlatMtlMain#include <metal_stdlib>
ñ
texture>
using namespace ”;
struct _ò_Type
{
float4 hlslcc_mtx4x4+ÿObjectToWorld[4];0 U +ÁT;
};
ÊMtl_VertexInˆùPOSITION0 [[ attribute(0) ]] W[COLOR'1'k3OutlHhalfARuser(A gÀmtl_Position,p ±, invariant3svh
s Ğ(Y{constan&fbbuffer÷,63` input(ëstage_in ]])
{)~ioutputÒ u_“01!" =h.).b%=](D)RæX.yyyyZˆ,1]SOfma(@=0],…nxxxx, ³`!2`Ozzzz`
+31FQ©1Fì;%0]Ñ ?/1)S&2S2)1)i _3_Lwwww_ereturn1g}
ÜS
<ô4ÿ
NITY_SINGLE_PASS_STEREOH Åå9h£_P[8];0V0?Inv3V”CameraPro9?ion9?Inv< ŸTCrİ 6-3 _SMŞJos[2e/±ScaleOffset' M
!Oint ¨
Iÿ.6 &J1J Ê&LNE/i1&ÿ¥iY\.1i << 0xë21 õ. (\+ 1)]cIX"We /2)j6Â/2) 2 |5/3)Ÿ œ !Š ÿ_INSTANCING_ONk ˜ '˜ ÿÿÓT À- 1PLayer.ñrender_target_array_i2ˆ ââbool has_base_Ÿ !_i ceL1fun_3"(4®ğ template <typeôP UVect>
ñ bitFieldInsert(G{width, 
Osrc2¨3)
{
v¤mask = (((ª"<<t")-
ks) & 0xfİ ˜ ((v
*]@) | T3 & ~<?}; ê
< ID)>_id+WBaseI":2,1_% /ifN#
 Ğ=; ÿıKint(¸P0x1u,o +u,PO0u))ˆ ÿ­|I <'/1uZ¼ !¼ ÏMULTIVIEW_ONdÿÿÿÿÿÏÌ/Nsƒ 32_t rp_úq_remap_z
<dCÌ
[ EŞ(ZB>> 0±
(F;ª¯FragmentIn«ìB îASV_TMG
%0)ËfG TÏ
·Lާ
¥xøÿÿgğÿÿgÄ
ÿÿFP;L$@2ªbPmy2qd UnityPerDrawunity_ObjectToWorld€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>€@ <noninit>€? <noninit>@ <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿ3ëëëëëë° 
ë ë 
ë ë 
ë ëSTEREO_INSTANCING_ONUNITY_SINGLE_PASS_STEREOSTEREO_MULTIVIEW_ONSTEREO_CUBEMAP_RENDER_ONHidden/Internal-LoadingÔ0¢ ¤b8( S`°bÈ
bl° S à$Sü'<b( S4*8 Sl,4 & . nºu
¬×UnityPerDraw°
ÀFrame@ËPu_MatrixVP4ï#ğP,¤¤òStereoGlobals@X¨!®¬'€‰T…EyeIndex, T!ĞÄXĞ ((p°/ÿşÊ
ğ0<(€%ÿÿÿÿ üxlatMtlMain#include <metal_stdlib>
ñ
texture>
using namespace ˜;
struct ?ò_Type
{
float4 hlslcc_mtx4x4/ÿObjectToWorld[4];0 ("To7 0#LODFade=ïransformParams'üRenderingLayer;
};
áâ÷half4 glstate_lightmodel_ambient;&fA?SkyEquator nGroundÿIndirectSpecColorV²@_proY?ionŒå*?Inv-%VP+Oint 1ùcShadowó·ÊMtl_VertexIn“ÿPOSITION0 [[ attribute(0) ]] D:OutE€mtl_Posi8Hp â, invariant ]]NvC
N(YconstanR&nbbuffer³,>¯&@1@/` input(ëstage_in ]])
{)ÆjoutputQ01!" =h.y.yyyy *î.A,1]WOfma(D=0],Txxxx,V)d/2dOzzzzd
+31J a. 1Kù@%0]ß Q/1)X+2XEX˜d3dLwwwwdereturn*}
Ä
È$ÿ
NITY_SINGLE_PASS_STEREOE äÿa çú _P[8];0V0KcvCameraP 9?Inv< öCr\ 6-3 _ŞOos[2[/±ScaleOffset' Š!®õ\&J&LN/i1&ÿciWi << 0x©29  ³(\+ 1)]cQXWc /2)j6Â/2){ 2{ |5/3)“ 2“ Ô ÿ_INSTANCING_ONh ' ÿÿÿWL t_ü1Æ.ñ_target_array_idÒâbool has_base_— !_i1funÃ_31(4)Gğ template <type+P UVec(>
ñ bitFieldInsert(G{width, ot
Osrc2¨3)
{
v¤mask = (((Ô "<<t")-
ks) & 0xfİ Ê ((v
*]@) | T3 & ~<?}; â
œD ID) >_id+WBaseI*B2,9g /ifN#
 Ğ=;z ÿ»Kint(~P0x1u,g +u,O0u))€ ÿ­| úí/1u³ ° ° ÏMULTIVIEW_ON$ÿÿÿÿÿÿÿ¥ äsV
32_t rp_ñq_remap_ Í]C]ä
Eí(ZB>> 0B(F;†Fragment˜ASV_Tœİc
Y%0)šfG T
û%ıq=“x(0.0, 1Ñ\8ÿÿ 4ÿÿ 4ÿéPInternal-SkinningmainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿüşÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[3];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[3];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float3 u_xlat1;
uint u_xlatu1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float u_xlat5;
uint u_xlatu5;
float3 u_xlat6;
float3 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
int u_xlati12;
uint u_xlatu12;
float3 u_xlat16;
uint u_xlatu23;
int u_xlati34;
uint u_xlatu34;
bool u_xlatb34;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlatu1 = inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0];
u_xlati12 = int(mtl_ThreadID.x) + 0x1;
u_xlatu12 = inSkin[u_xlati12].value[(0x0 >> 2) + 0];
u_xlat2.x = float(0.0);
u_xlat2.y = float(0.0);
u_xlat2.z = float(0.0);
u_xlat2.w = float(0.0);
u_xlat3.x = float(0.0);
u_xlat3.y = float(0.0);
u_xlat3.z = float(0.0);
u_xlat3.w = float(0.0);
u_xlat4.x = float(0.0);
u_xlat4.y = float(0.0);
u_xlat4.z = float(0.0);
u_xlat4.w = float(0.0);
u_xlatu23 = u_xlatu1;
while(true){
u_xlatb34 = u_xlatu23>=u_xlatu12;
if(u_xlatb34){break;}
u_xlatu34 = inSkin[u_xlatu23].value[(0x0 >> 2) + 0];
u_xlatu5 = u_xlatu34 >> 0x10u;
u_xlat5 = float(u_xlatu5);
u_xlat5 = u_xlat5 * 1.52590219e-05;
u_xlati34 = int(u_xlatu34 & 0xffffu);
u_xlat16.xyz = float3(as_type<float>(inMatrices[u_xlati34].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati34].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati34].value[(0x0 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati34].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati34].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati34].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati34].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati34].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati34].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[u_xlati34].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati34].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati34].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat16.x;
u_xlat9.y = u_xlat6.x;
u_xlat9.z = u_xlat7.x;
u_xlat9.w = u_xlat8.x;
u_xlat10.x = u_xlat16.y;
u_xlat10.y = u_xlat6.y;
u_xlat10.z = u_xlat7.y;
u_xlat10.w = u_xlat8.y;
u_xlat8.x = u_xlat16.z;
u_xlat8.y = u_xlat6.z;
u_xlat8.z = u_xlat7.z;
u_xlat2 = fma(u_xlat9, float4(u_xlat5), u_xlat2);
u_xlat3 = fma(u_xlat10, float4(u_xlat5), u_xlat3);
u_xlat4 = fma(u_xlat8, float4(u_xlat5), u_xlat4);
u_xlatu23 = u_xlatu23 + 0x1u;
}
u_xlat0.w = 1.0;
u_xlat1.x = dot(u_xlat2, u_xlat0);
u_xlat1.y = dot(u_xlat3, u_xlat0);
u_xlat1.z = dot(u_xlat4, u_xlat0);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat1.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat1.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat1.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ°şÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[6];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[6];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float3 u_xlat1;
float4 u_xlat2;
int u_xlati2;
uint u_xlatu2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float3 u_xlat7;
float3 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
uint u_xlatu14;
int u_xlati26;
uint u_xlatu26;
bool u_xlatb26;
uint u_xlatu37;
float u_xlat38;
uint u_xlatu38;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]));
u_xlatu37 = inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0];
u_xlati2 = int(mtl_ThreadID.x) + 0x1;
u_xlatu2 = inSkin[u_xlati2].value[(0x0 >> 2) + 0];
u_xlat3.x = float(0.0);
u_xlat3.y = float(0.0);
u_xlat3.z = float(0.0);
u_xlat3.w = float(0.0);
u_xlat4.x = float(0.0);
u_xlat4.y = float(0.0);
u_xlat4.z = float(0.0);
u_xlat4.w = float(0.0);
u_xlat5.x = float(0.0);
u_xlat5.y = float(0.0);
u_xlat5.z = float(0.0);
u_xlat5.w = float(0.0);
u_xlatu14 = u_xlatu37;
while(true){
u_xlatb26 = u_xlatu14>=u_xlatu2;
if(u_xlatb26){break;}
u_xlatu26 = inSkin[u_xlatu14].value[(0x0 >> 2) + 0];
u_xlatu38 = u_xlatu26 >> 0x10u;
u_xlat38 = float(u_xlatu38);
u_xlat38 = u_xlat38 * 1.52590219e-05;
u_xlati26 = int(u_xlatu26 & 0xffffu);
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati26].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati26].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati26].value[(0x0 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati26].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati26].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati26].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati26].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati26].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati26].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[u_xlati26].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati26].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati26].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat6.x;
u_xlat10.y = u_xlat7.x;
u_xlat10.z = u_xlat8.x;
u_xlat10.w = u_xlat9.x;
u_xlat11.x = u_xlat6.y;
u_xlat11.y = u_xlat7.y;
u_xlat11.z = u_xlat8.y;
u_xlat11.w = u_xlat9.y;
u_xlat9.x = u_xlat6.z;
u_xlat9.y = u_xlat7.z;
u_xlat9.z = u_xlat8.z;
u_xlat3 = fma(u_xlat10, float4(u_xlat38), u_xlat3);
u_xlat4 = fma(u_xlat11, float4(u_xlat38), u_xlat4);
u_xlat5 = fma(u_xlat9, float4(u_xlat38), u_xlat5);
u_xlatu14 = u_xlatu14 + 0x1u;
}
u_xlat2.xyz = u_xlat0.xyz;
u_xlat2.w = 1.0;
u_xlat6.x = dot(u_xlat3, u_xlat2);
u_xlat6.y = dot(u_xlat4, u_xlat2);
u_xlat6.z = dot(u_xlat5, u_xlat2);
u_xlat1.z = u_xlat0.w;
u_xlat6.w = dot(u_xlat3.yzx, u_xlat1.xyz);
u_xlat0.x = dot(u_xlat4.yzx, u_xlat1.xyz);
u_xlat0.y = dot(u_xlat5.yzx, u_xlat1.xyz);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ^şÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[7];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[7];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
uint u_xlatu2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
uint u_xlatu6;
float3 u_xlat7;
float3 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
int u_xlati14;
uint u_xlatu14;
float3 u_xlat18;
uint u_xlatu26;
int u_xlati38;
uint u_xlatu38;
bool u_xlatb38;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]));
u_xlatu2 = inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0];
u_xlati14 = int(mtl_ThreadID.x) + 0x1;
u_xlatu14 = inSkin[u_xlati14].value[(0x0 >> 2) + 0];
u_xlat3.x = float(0.0);
u_xlat3.y = float(0.0);
u_xlat3.z = float(0.0);
u_xlat3.w = float(0.0);
u_xlat4.x = float(0.0);
u_xlat4.y = float(0.0);
u_xlat4.z = float(0.0);
u_xlat4.w = float(0.0);
u_xlat5.x = float(0.0);
u_xlat5.y = float(0.0);
u_xlat5.z = float(0.0);
u_xlat5.w = float(0.0);
u_xlatu26 = u_xlatu2;
while(true){
u_xlatb38 = u_xlatu26>=u_xlatu14;
if(u_xlatb38){break;}
u_xlatu38 = inSkin[u_xlatu26].value[(0x0 >> 2) + 0];
u_xlatu6 = u_xlatu38 >> 0x10u;
u_xlat6.x = float(u_xlatu6);
u_xlat6.x = u_xlat6.x * 1.52590219e-05;
u_xlati38 = int(u_xlatu38 & 0xffffu);
u_xlat18.xyz = float3(as_type<float>(inMatrices[u_xlati38].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati38].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati38].value[(0x0 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati38].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati38].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati38].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati38].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati38].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati38].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[u_xlati38].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati38].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati38].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat18.x;
u_xlat10.y = u_xlat7.x;
u_xlat10.z = u_xlat8.x;
u_xlat10.w = u_xlat9.x;
u_xlat11.x = u_xlat18.y;
u_xlat11.y = u_xlat7.y;
u_xlat11.z = u_xlat8.y;
u_xlat11.w = u_xlat9.y;
u_xlat9.x = u_xlat18.z;
u_xlat9.y = u_xlat7.z;
u_xlat9.z = u_xlat8.z;
u_xlat3 = fma(u_xlat10, u_xlat6.xxxx, u_xlat3);
u_xlat4 = fma(u_xlat11, u_xlat6.xxxx, u_xlat4);
u_xlat5 = fma(u_xlat9, u_xlat6.xxxx, u_xlat5);
u_xlatu26 = u_xlatu26 + 0x1u;
}
u_xlat2.xyz = u_xlat0.xyz;
u_xlat2.w = 1.0;
u_xlat6.x = dot(u_xlat3, u_xlat2);
u_xlat6.y = dot(u_xlat4, u_xlat2);
u_xlat6.z = dot(u_xlat5, u_xlat2);
u_xlat1.w = u_xlat0.w;
u_xlat6.w = dot(u_xlat3.yzx, u_xlat1.xyw);
u_xlat0.x = dot(u_xlat4.yzx, u_xlat1.xyw);
u_xlat0.y = dot(u_xlat5.yzx, u_xlat1.xyw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
u_xlat0.z = u_xlat1.z;
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat0.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿàşÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[10];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[10];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
uint u_xlatu3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
uint u_xlatu7;
float3 u_xlat8;
float3 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
int u_xlati16;
uint u_xlatu16;
float3 u_xlat20;
uint u_xlatu29;
int u_xlati42;
uint u_xlatu42;
bool u_xlatb42;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlat1 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat2.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1]));
u_xlatu3 = inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0];
u_xlati16 = int(mtl_ThreadID.x) + 0x1;
u_xlatu16 = inSkin[u_xlati16].value[(0x0 >> 2) + 0];
u_xlat4.x = float(0.0);
u_xlat4.y = float(0.0);
u_xlat4.z = float(0.0);
u_xlat4.w = float(0.0);
u_xlat5.x = float(0.0);
u_xlat5.y = float(0.0);
u_xlat5.z = float(0.0);
u_xlat5.w = float(0.0);
u_xlat6.x = float(0.0);
u_xlat6.y = float(0.0);
u_xlat6.z = float(0.0);
u_xlat6.w = float(0.0);
u_xlatu29 = u_xlatu3;
while(true){
u_xlatb42 = u_xlatu29>=u_xlatu16;
if(u_xlatb42){break;}
u_xlatu42 = inSkin[u_xlatu29].value[(0x0 >> 2) + 0];
u_xlatu7 = u_xlatu42 >> 0x10u;
u_xlat7.x = float(u_xlatu7);
u_xlat7.x = u_xlat7.x * 1.52590219e-05;
u_xlati42 = int(u_xlatu42 & 0xffffu);
u_xlat20.xyz = float3(as_type<float>(inMatrices[u_xlati42].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati42].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati42].value[(0x0 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati42].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati42].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati42].value[(0x10 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[u_xlati42].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati42].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati42].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[u_xlati42].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati42].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati42].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat20.x;
u_xlat11.y = u_xlat8.x;
u_xlat11.z = u_xlat9.x;
u_xlat11.w = u_xlat10.x;
u_xlat12.x = u_xlat20.y;
u_xlat12.y = u_xlat8.y;
u_xlat12.z = u_xlat9.y;
u_xlat12.w = u_xlat10.y;
u_xlat10.x = u_xlat20.z;
u_xlat10.y = u_xlat8.z;
u_xlat10.z = u_xlat9.z;
u_xlat4 = fma(u_xlat11, u_xlat7.xxxx, u_xlat4);
u_xlat5 = fma(u_xlat12, u_xlat7.xxxx, u_xlat5);
u_xlat6 = fma(u_xlat10, u_xlat7.xxxx, u_xlat6);
u_xlatu29 = u_xlatu29 + 0x1u;
}
u_xlat3.xyz = u_xlat0.yzw;
u_xlat3.w = 1.0;
u_xlat7.x = dot(u_xlat4, u_xlat3);
u_xlat7.y = dot(u_xlat5, u_xlat3);
u_xlat7.z = dot(u_xlat6, u_xlat3);
u_xlat0.yz = u_xlat1.xy;
u_xlat7.w = dot(u_xlat4.xyz, u_xlat0.xyz);
u_xlat3.x = dot(u_xlat5.xyz, u_xlat0.xyz);
u_xlat3.y = dot(u_xlat6.xyz, u_xlat0.xyz);
u_xlat2.zw = u_xlat1.zw;
u_xlat3.z = dot(u_xlat4.zxy, u_xlat2.xzw);
u_xlat3.w = dot(u_xlat5.zxy, u_xlat2.xzw);
u_xlat2.x = dot(u_xlat6.zxy, u_xlat2.xzw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat7.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat7.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat7.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat7.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat3.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat3.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat3.z);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3] = as_type<uint>(u_xlat3.w);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1] = as_type<uint>(u_xlat2.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿß
şÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[3];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[3];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
int u_xlati1;
float3 u_xlat2;
float3 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float3 u_xlat8;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlati1 = int(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]);
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati1].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati1].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati1].value[(0x0 >> 2) + 2]));
u_xlat2.xyz = float3(as_type<float>(inMatrices[u_xlati1].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati1].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati1].value[(0x10 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati1].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati1].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati1].value[(0x20 >> 2) + 2]));
u_xlat4.xyw = float3(as_type<float>(inMatrices[u_xlati1].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati1].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati1].value[(0x30 >> 2) + 2]));
u_xlat5.x = u_xlat8.x;
u_xlat5.y = u_xlat2.x;
u_xlat5.z = u_xlat3.x;
u_xlat5.w = u_xlat4.x;
u_xlat0.w = 1.0;
u_xlat5.x = dot(u_xlat5, u_xlat0);
u_xlat6.x = u_xlat8.y;
u_xlat6.y = u_xlat2.y;
u_xlat6.z = u_xlat3.y;
u_xlat6.w = u_xlat4.y;
u_xlat5.y = dot(u_xlat6, u_xlat0);
u_xlat4.x = u_xlat8.z;
u_xlat4.y = u_xlat2.z;
u_xlat4.z = u_xlat3.z;
u_xlat5.z = dot(u_xlat4, u_xlat0);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat5.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat5.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat5.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿÁ
şÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[6];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[6];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float3 u_xlat1;
float3 u_xlat2;
float3 u_xlat3;
float3 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
int u_xlati31;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]));
u_xlati31 = int(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]);
u_xlat2.xyz = float3(as_type<float>(inMatrices[u_xlati31].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati31].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati31].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati31].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati31].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati31].value[(0x10 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati31].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati31].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati31].value[(0x20 >> 2) + 2]));
u_xlat5.xyw = float3(as_type<float>(inMatrices[u_xlati31].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati31].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati31].value[(0x30 >> 2) + 2]));
u_xlat6.x = u_xlat2.x;
u_xlat6.y = u_xlat3.x;
u_xlat6.z = u_xlat4.x;
u_xlat6.w = u_xlat5.x;
u_xlat7.xyz = u_xlat0.xyz;
u_xlat7.w = 1.0;
u_xlat8.x = dot(u_xlat6, u_xlat7);
u_xlat9.x = u_xlat2.y;
u_xlat9.y = u_xlat3.y;
u_xlat9.z = u_xlat4.y;
u_xlat9.w = u_xlat5.y;
u_xlat8.y = dot(u_xlat9, u_xlat7);
u_xlat5.x = u_xlat2.z;
u_xlat5.y = u_xlat3.z;
u_xlat5.z = u_xlat4.z;
u_xlat8.z = dot(u_xlat5, u_xlat7);
u_xlat1.z = u_xlat0.w;
u_xlat8.w = dot(u_xlat6.yzx, u_xlat1.xyz);
u_xlat0.x = dot(u_xlat9.yzx, u_xlat1.xyz);
u_xlat0.y = dot(u_xlat5.yzx, u_xlat1.xyz);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat8.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat8.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat8.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat8.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿjşÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[7];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[7];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
int u_xlati2;
float3 u_xlat3;
float3 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float3 u_xlat12;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]));
u_xlati2 = int(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]);
u_xlat12.xyz = float3(as_type<float>(inMatrices[u_xlati2].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati2].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2].value[(0x10 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati2].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2].value[(0x20 >> 2) + 2]));
u_xlat5.xyw = float3(as_type<float>(inMatrices[u_xlati2].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2].value[(0x30 >> 2) + 2]));
u_xlat6.x = u_xlat12.x;
u_xlat6.y = u_xlat3.x;
u_xlat6.z = u_xlat4.x;
u_xlat6.w = u_xlat5.x;
u_xlat7.xyz = u_xlat0.xyz;
u_xlat7.w = 1.0;
u_xlat8.x = dot(u_xlat6, u_xlat7);
u_xlat9.x = u_xlat12.y;
u_xlat9.y = u_xlat3.y;
u_xlat9.z = u_xlat4.y;
u_xlat9.w = u_xlat5.y;
u_xlat8.y = dot(u_xlat9, u_xlat7);
u_xlat5.x = u_xlat12.z;
u_xlat5.y = u_xlat3.z;
u_xlat5.z = u_xlat4.z;
u_xlat8.z = dot(u_xlat5, u_xlat7);
u_xlat1.w = u_xlat0.w;
u_xlat8.w = dot(u_xlat6.yzx, u_xlat1.xyw);
u_xlat0.x = dot(u_xlat9.yzx, u_xlat1.xyw);
u_xlat0.y = dot(u_xlat5.yzx, u_xlat1.xyw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat8.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat8.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat8.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat8.w);
u_xlat0.z = u_xlat1.z;
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat0.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿşÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[10];
};
struct inSkin_Type
{
uint value[1];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[10];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
int u_xlati3;
float3 u_xlat4;
float3 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float3 u_xlat14;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlat1 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat2.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1]));
u_xlati3 = int(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]);
u_xlat14.xyz = float3(as_type<float>(inMatrices[u_xlati3].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati3].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati3].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3].value[(0x20 >> 2) + 2]));
u_xlat6.xyw = float3(as_type<float>(inMatrices[u_xlati3].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3].value[(0x30 >> 2) + 2]));
u_xlat7.x = u_xlat14.x;
u_xlat7.y = u_xlat4.x;
u_xlat7.z = u_xlat5.x;
u_xlat7.w = u_xlat6.x;
u_xlat8.xyz = u_xlat0.yzw;
u_xlat8.w = 1.0;
u_xlat9.x = dot(u_xlat7, u_xlat8);
u_xlat10.x = u_xlat14.y;
u_xlat10.y = u_xlat4.y;
u_xlat10.z = u_xlat5.y;
u_xlat10.w = u_xlat6.y;
u_xlat9.y = dot(u_xlat10, u_xlat8);
u_xlat6.x = u_xlat14.z;
u_xlat6.y = u_xlat4.z;
u_xlat6.z = u_xlat5.z;
u_xlat9.z = dot(u_xlat6, u_xlat8);
u_xlat0.yz = u_xlat1.xy;
u_xlat9.w = dot(u_xlat7.xyz, u_xlat0.xyz);
u_xlat3.x = dot(u_xlat10.xyz, u_xlat0.xyz);
u_xlat3.y = dot(u_xlat6.xyz, u_xlat0.xyz);
u_xlat2.zw = u_xlat1.zw;
u_xlat3.z = dot(u_xlat7.zxy, u_xlat2.xzw);
u_xlat3.w = dot(u_xlat10.zxy, u_xlat2.xzw);
u_xlat2.x = dot(u_xlat6.zxy, u_xlat2.xzw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat9.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat9.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat9.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat9.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat3.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat3.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat3.z);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3] = as_type<uint>(u_xlat3.w);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1] = as_type<uint>(u_xlat2.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿÎşÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[3];
};
struct inSkin_Type
{
uint value[4];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[3];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlat1 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat2.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x10 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x20 >> 2) + 2]));
u_xlat5.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.z)].value[(0x30 >> 2) + 2]));
u_xlat6.x = u_xlat2.x;
u_xlat6.y = u_xlat3.x;
u_xlat6.z = u_xlat4.x;
u_xlat6.w = u_xlat5.x;
u_xlat7.x = u_xlat2.y;
u_xlat7.y = u_xlat3.y;
u_xlat7.z = u_xlat4.y;
u_xlat7.w = u_xlat5.y;
u_xlat5.x = u_xlat2.z;
u_xlat5.y = u_xlat3.z;
u_xlat5.z = u_xlat4.z;
u_xlat2.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x10 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat1.w)].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat2.x;
u_xlat9.y = u_xlat3.x;
u_xlat9.z = u_xlat4.x;
u_xlat9.w = u_xlat8.x;
u_xlat9 = u_xlat1.yyyy * u_xlat9;
u_xlat10.x = u_xlat2.y;
u_xlat10.y = u_xlat3.y;
u_xlat10.z = u_xlat4.y;
u_xlat10.w = u_xlat8.y;
u_xlat10 = u_xlat1.yyyy * u_xlat10;
u_xlat8.x = u_xlat2.z;
u_xlat8.y = u_xlat3.z;
u_xlat8.z = u_xlat4.z;
u_xlat2 = u_xlat1.yyyy * u_xlat8;
u_xlat3 = fma(u_xlat6, u_xlat1.xxxx, u_xlat9);
u_xlat4 = fma(u_xlat7, u_xlat1.xxxx, u_xlat10);
u_xlat1 = fma(u_xlat5, u_xlat1.xxxx, u_xlat2);
u_xlat0.w = 1.0;
u_xlat2.x = dot(u_xlat3, u_xlat0);
u_xlat2.y = dot(u_xlat4, u_xlat0);
u_xlat2.z = dot(u_xlat1, u_xlat0);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat2.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat2.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ‚şÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[6];
};
struct inSkin_Type
{
uint value[4];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[6];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float3 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]));
u_xlat2 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 2]));
u_xlat6.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 2]));
u_xlat7.x = u_xlat3.x;
u_xlat7.y = u_xlat4.x;
u_xlat7.z = u_xlat5.x;
u_xlat7.w = u_xlat6.x;
u_xlat8.x = u_xlat3.y;
u_xlat8.y = u_xlat4.y;
u_xlat8.z = u_xlat5.y;
u_xlat8.w = u_xlat6.y;
u_xlat6.x = u_xlat3.z;
u_xlat6.y = u_xlat4.z;
u_xlat6.z = u_xlat5.z;
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat3.x;
u_xlat10.y = u_xlat4.x;
u_xlat10.z = u_xlat5.x;
u_xlat10.w = u_xlat9.x;
u_xlat10 = u_xlat2.yyyy * u_xlat10;
u_xlat11.x = u_xlat3.y;
u_xlat11.y = u_xlat4.y;
u_xlat11.z = u_xlat5.y;
u_xlat11.w = u_xlat9.y;
u_xlat11 = u_xlat2.yyyy * u_xlat11;
u_xlat9.x = u_xlat3.z;
u_xlat9.y = u_xlat4.z;
u_xlat9.z = u_xlat5.z;
u_xlat3 = u_xlat2.yyyy * u_xlat9;
u_xlat4 = fma(u_xlat7, u_xlat2.xxxx, u_xlat10);
u_xlat5 = fma(u_xlat8, u_xlat2.xxxx, u_xlat11);
u_xlat2 = fma(u_xlat6, u_xlat2.xxxx, u_xlat3);
u_xlat3.xyz = u_xlat0.xyz;
u_xlat3.w = 1.0;
u_xlat6.x = dot(u_xlat4, u_xlat3);
u_xlat6.y = dot(u_xlat5, u_xlat3);
u_xlat6.z = dot(u_xlat2, u_xlat3);
u_xlat1.z = u_xlat0.w;
u_xlat6.w = dot(u_xlat4.yzx, u_xlat1.xyz);
u_xlat0.x = dot(u_xlat5.yzx, u_xlat1.xyz);
u_xlat0.y = dot(u_xlat2.yzx, u_xlat1.xyz);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ4şÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[7];
};
struct inSkin_Type
{
uint value[4];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[7];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]));
u_xlat2 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x20 >> 2) + 2]));
u_xlat6.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.z)].value[(0x30 >> 2) + 2]));
u_xlat7.x = u_xlat3.x;
u_xlat7.y = u_xlat4.x;
u_xlat7.z = u_xlat5.x;
u_xlat7.w = u_xlat6.x;
u_xlat8.x = u_xlat3.y;
u_xlat8.y = u_xlat4.y;
u_xlat8.z = u_xlat5.y;
u_xlat8.w = u_xlat6.y;
u_xlat6.x = u_xlat3.z;
u_xlat6.y = u_xlat4.z;
u_xlat6.z = u_xlat5.z;
u_xlat3.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat2.w)].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat3.x;
u_xlat10.y = u_xlat4.x;
u_xlat10.z = u_xlat5.x;
u_xlat10.w = u_xlat9.x;
u_xlat10 = u_xlat2.yyyy * u_xlat10;
u_xlat11.x = u_xlat3.y;
u_xlat11.y = u_xlat4.y;
u_xlat11.z = u_xlat5.y;
u_xlat11.w = u_xlat9.y;
u_xlat11 = u_xlat2.yyyy * u_xlat11;
u_xlat9.x = u_xlat3.z;
u_xlat9.y = u_xlat4.z;
u_xlat9.z = u_xlat5.z;
u_xlat3 = u_xlat2.yyyy * u_xlat9;
u_xlat4 = fma(u_xlat7, u_xlat2.xxxx, u_xlat10);
u_xlat5 = fma(u_xlat8, u_xlat2.xxxx, u_xlat11);
u_xlat2 = fma(u_xlat6, u_xlat2.xxxx, u_xlat3);
u_xlat3.xyz = u_xlat0.xyz;
u_xlat3.w = 1.0;
u_xlat6.x = dot(u_xlat4, u_xlat3);
u_xlat6.y = dot(u_xlat5, u_xlat3);
u_xlat6.z = dot(u_xlat2, u_xlat3);
u_xlat1.w = u_xlat0.w;
u_xlat6.w = dot(u_xlat4.yzx, u_xlat1.xyw);
u_xlat0.x = dot(u_xlat5.yzx, u_xlat1.xyw);
u_xlat0.y = dot(u_xlat2.yzx, u_xlat1.xyw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
u_xlat0.z = u_xlat1.z;
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat0.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ¶şÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[10];
};
struct inSkin_Type
{
uint value[4];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[10];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlat1 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat2.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1]));
u_xlat3 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x20 >> 2) + 2]));
u_xlat7.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.z)].value[(0x30 >> 2) + 2]));
u_xlat8.x = u_xlat4.x;
u_xlat8.y = u_xlat5.x;
u_xlat8.z = u_xlat6.x;
u_xlat8.w = u_xlat7.x;
u_xlat9.x = u_xlat4.y;
u_xlat9.y = u_xlat5.y;
u_xlat9.z = u_xlat6.y;
u_xlat9.w = u_xlat7.y;
u_xlat7.x = u_xlat4.z;
u_xlat7.y = u_xlat5.z;
u_xlat7.z = u_xlat6.z;
u_xlat4.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[as_type<int>(u_xlat3.w)].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat4.x;
u_xlat11.y = u_xlat5.x;
u_xlat11.z = u_xlat6.x;
u_xlat11.w = u_xlat10.x;
u_xlat11 = u_xlat3.yyyy * u_xlat11;
u_xlat12.x = u_xlat4.y;
u_xlat12.y = u_xlat5.y;
u_xlat12.z = u_xlat6.y;
u_xlat12.w = u_xlat10.y;
u_xlat12 = u_xlat3.yyyy * u_xlat12;
u_xlat10.x = u_xlat4.z;
u_xlat10.y = u_xlat5.z;
u_xlat10.z = u_xlat6.z;
u_xlat4 = u_xlat3.yyyy * u_xlat10;
u_xlat5 = fma(u_xlat8, u_xlat3.xxxx, u_xlat11);
u_xlat6 = fma(u_xlat9, u_xlat3.xxxx, u_xlat12);
u_xlat3 = fma(u_xlat7, u_xlat3.xxxx, u_xlat4);
u_xlat4.xyz = u_xlat0.yzw;
u_xlat4.w = 1.0;
u_xlat7.x = dot(u_xlat5, u_xlat4);
u_xlat7.y = dot(u_xlat6, u_xlat4);
u_xlat7.z = dot(u_xlat3, u_xlat4);
u_xlat0.yz = u_xlat1.xy;
u_xlat7.w = dot(u_xlat5.xyz, u_xlat0.xyz);
u_xlat4.x = dot(u_xlat6.xyz, u_xlat0.xyz);
u_xlat4.y = dot(u_xlat3.xyz, u_xlat0.xyz);
u_xlat2.zw = u_xlat1.zw;
u_xlat4.z = dot(u_xlat5.zxy, u_xlat2.xzw);
u_xlat4.w = dot(u_xlat6.zxy, u_xlat2.xzw);
u_xlat2.x = dot(u_xlat3.zxy, u_xlat2.xzw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat7.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat7.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat7.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat7.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat4.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat4.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat4.z);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3] = as_type<uint>(u_xlat4.w);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1] = as_type<uint>(u_xlat2.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿêşÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[3];
};
struct inSkin_Type
{
uint value[8];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[3];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
int4 u_xlati2;
float4 u_xlat3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlat1 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlati2 = int4(int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati2.x].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.x].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.x].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati2.x].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.x].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.x].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati2.x].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.x].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.x].value[(0x20 >> 2) + 2]));
u_xlat6.xyw = float3(as_type<float>(inMatrices[u_xlati2.x].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.x].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.x].value[(0x30 >> 2) + 2]));
u_xlat7.x = u_xlat3.x;
u_xlat7.y = u_xlat4.x;
u_xlat7.z = u_xlat5.x;
u_xlat7.w = u_xlat6.x;
u_xlat8.x = u_xlat3.y;
u_xlat8.y = u_xlat4.y;
u_xlat8.z = u_xlat5.y;
u_xlat8.w = u_xlat6.y;
u_xlat6.x = u_xlat3.z;
u_xlat6.y = u_xlat4.z;
u_xlat6.z = u_xlat5.z;
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati2.y].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.y].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.y].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati2.y].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.y].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.y].value[(0x10 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati2.y].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.y].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.y].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[u_xlati2.y].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.y].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.y].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat3.x;
u_xlat10.y = u_xlat4.x;
u_xlat10.z = u_xlat5.x;
u_xlat10.w = u_xlat9.x;
u_xlat10 = u_xlat1.yyyy * u_xlat10;
u_xlat11.x = u_xlat3.y;
u_xlat11.y = u_xlat4.y;
u_xlat11.z = u_xlat5.y;
u_xlat11.w = u_xlat9.y;
u_xlat11 = u_xlat1.yyyy * u_xlat11;
u_xlat9.x = u_xlat3.z;
u_xlat9.y = u_xlat4.z;
u_xlat9.z = u_xlat5.z;
u_xlat3 = u_xlat1.yyyy * u_xlat9;
u_xlat4 = fma(u_xlat7, u_xlat1.xxxx, u_xlat10);
u_xlat5 = fma(u_xlat8, u_xlat1.xxxx, u_xlat11);
u_xlat3 = fma(u_xlat6, u_xlat1.xxxx, u_xlat3);
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati2.z].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.z].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.z].value[(0x0 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati2.z].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.z].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.z].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati2.z].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.z].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.z].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[u_xlati2.z].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.z].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.z].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat6.x;
u_xlat10.y = u_xlat7.x;
u_xlat10.z = u_xlat8.x;
u_xlat10.w = u_xlat9.x;
u_xlat11.x = u_xlat6.y;
u_xlat11.y = u_xlat7.y;
u_xlat11.z = u_xlat8.y;
u_xlat11.w = u_xlat9.y;
u_xlat9.x = u_xlat6.z;
u_xlat9.y = u_xlat7.z;
u_xlat9.z = u_xlat8.z;
u_xlat4 = fma(u_xlat10, u_xlat1.zzzz, u_xlat4);
u_xlat5 = fma(u_xlat11, u_xlat1.zzzz, u_xlat5);
u_xlat3 = fma(u_xlat9, u_xlat1.zzzz, u_xlat3);
u_xlat1.xyz = float3(as_type<float>(inMatrices[u_xlati2.w].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.w].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.w].value[(0x0 >> 2) + 2]));
u_xlat2.xyz = float3(as_type<float>(inMatrices[u_xlati2.w].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.w].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.w].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati2.w].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.w].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.w].value[(0x20 >> 2) + 2]));
u_xlat7.xyw = float3(as_type<float>(inMatrices[u_xlati2.w].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati2.w].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati2.w].value[(0x30 >> 2) + 2]));
u_xlat8.x = u_xlat1.x;
u_xlat8.y = u_xlat2.x;
u_xlat8.z = u_xlat6.x;
u_xlat8.w = u_xlat7.x;
u_xlat9.x = u_xlat1.y;
u_xlat9.y = u_xlat2.y;
u_xlat9.z = u_xlat6.y;
u_xlat9.w = u_xlat7.y;
u_xlat7.x = u_xlat1.z;
u_xlat7.y = u_xlat2.z;
u_xlat7.z = u_xlat6.z;
u_xlat2 = fma(u_xlat8, u_xlat1.wwww, u_xlat4);
u_xlat4 = fma(u_xlat9, u_xlat1.wwww, u_xlat5);
u_xlat1 = fma(u_xlat7, u_xlat1.wwww, u_xlat3);
u_xlat0.w = 1.0;
u_xlat2.x = dot(u_xlat2, u_xlat0);
u_xlat2.y = dot(u_xlat4, u_xlat0);
u_xlat2.z = dot(u_xlat1, u_xlat0);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat2.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat2.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿªşÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[6];
};
struct inSkin_Type
{
uint value[8];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[6];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float3 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
int4 u_xlati3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]));
u_xlat2 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlati3 = int4(int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x20 >> 2) + 2]));
u_xlat7.xyw = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x30 >> 2) + 2]));
u_xlat8.x = u_xlat4.x;
u_xlat8.y = u_xlat5.x;
u_xlat8.z = u_xlat6.x;
u_xlat8.w = u_xlat7.x;
u_xlat9.x = u_xlat4.y;
u_xlat9.y = u_xlat5.y;
u_xlat9.z = u_xlat6.y;
u_xlat9.w = u_xlat7.y;
u_xlat7.x = u_xlat4.z;
u_xlat7.y = u_xlat5.z;
u_xlat7.z = u_xlat6.z;
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat4.x;
u_xlat11.y = u_xlat5.x;
u_xlat11.z = u_xlat6.x;
u_xlat11.w = u_xlat10.x;
u_xlat11 = u_xlat2.yyyy * u_xlat11;
u_xlat12.x = u_xlat4.y;
u_xlat12.y = u_xlat5.y;
u_xlat12.z = u_xlat6.y;
u_xlat12.w = u_xlat10.y;
u_xlat12 = u_xlat2.yyyy * u_xlat12;
u_xlat10.x = u_xlat4.z;
u_xlat10.y = u_xlat5.z;
u_xlat10.z = u_xlat6.z;
u_xlat4 = u_xlat2.yyyy * u_xlat10;
u_xlat5 = fma(u_xlat8, u_xlat2.xxxx, u_xlat11);
u_xlat6 = fma(u_xlat9, u_xlat2.xxxx, u_xlat12);
u_xlat4 = fma(u_xlat7, u_xlat2.xxxx, u_xlat4);
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x0 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x10 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat7.x;
u_xlat11.y = u_xlat8.x;
u_xlat11.z = u_xlat9.x;
u_xlat11.w = u_xlat10.x;
u_xlat12.x = u_xlat7.y;
u_xlat12.y = u_xlat8.y;
u_xlat12.z = u_xlat9.y;
u_xlat12.w = u_xlat10.y;
u_xlat10.x = u_xlat7.z;
u_xlat10.y = u_xlat8.z;
u_xlat10.z = u_xlat9.z;
u_xlat5 = fma(u_xlat11, u_xlat2.zzzz, u_xlat5);
u_xlat6 = fma(u_xlat12, u_xlat2.zzzz, u_xlat6);
u_xlat4 = fma(u_xlat10, u_xlat2.zzzz, u_xlat4);
u_xlat2.xyz = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat2.x;
u_xlat9.y = u_xlat3.x;
u_xlat9.z = u_xlat7.x;
u_xlat9.w = u_xlat8.x;
u_xlat10.x = u_xlat2.y;
u_xlat10.y = u_xlat3.y;
u_xlat10.z = u_xlat7.y;
u_xlat10.w = u_xlat8.y;
u_xlat8.x = u_xlat2.z;
u_xlat8.y = u_xlat3.z;
u_xlat8.z = u_xlat7.z;
u_xlat3 = fma(u_xlat9, u_xlat2.wwww, u_xlat5);
u_xlat5 = fma(u_xlat10, u_xlat2.wwww, u_xlat6);
u_xlat2 = fma(u_xlat8, u_xlat2.wwww, u_xlat4);
u_xlat4.xyz = u_xlat0.xyz;
u_xlat4.w = 1.0;
u_xlat6.x = dot(u_xlat3, u_xlat4);
u_xlat6.y = dot(u_xlat5, u_xlat4);
u_xlat6.z = dot(u_xlat2, u_xlat4);
u_xlat1.z = u_xlat0.w;
u_xlat6.w = dot(u_xlat3.yzx, u_xlat1.xyz);
u_xlat0.x = dot(u_xlat5.yzx, u_xlat1.xyz);
u_xlat0.y = dot(u_xlat2.yzx, u_xlat1.xyz);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿ\ şÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[7];
};
struct inSkin_Type
{
uint value[8];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[7];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
int4 u_xlati3;
float4 u_xlat4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlat1.xyz = float3(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]));
u_xlat2 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlati3 = int4(int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x20 >> 2) + 2]));
u_xlat7.xyw = float3(as_type<float>(inMatrices[u_xlati3.x].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.x].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.x].value[(0x30 >> 2) + 2]));
u_xlat8.x = u_xlat4.x;
u_xlat8.y = u_xlat5.x;
u_xlat8.z = u_xlat6.x;
u_xlat8.w = u_xlat7.x;
u_xlat9.x = u_xlat4.y;
u_xlat9.y = u_xlat5.y;
u_xlat9.z = u_xlat6.y;
u_xlat9.w = u_xlat7.y;
u_xlat7.x = u_xlat4.z;
u_xlat7.y = u_xlat5.z;
u_xlat7.z = u_xlat6.z;
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x0 >> 2) + 2]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x10 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[u_xlati3.y].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.y].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.y].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat4.x;
u_xlat11.y = u_xlat5.x;
u_xlat11.z = u_xlat6.x;
u_xlat11.w = u_xlat10.x;
u_xlat11 = u_xlat2.yyyy * u_xlat11;
u_xlat12.x = u_xlat4.y;
u_xlat12.y = u_xlat5.y;
u_xlat12.z = u_xlat6.y;
u_xlat12.w = u_xlat10.y;
u_xlat12 = u_xlat2.yyyy * u_xlat12;
u_xlat10.x = u_xlat4.z;
u_xlat10.y = u_xlat5.z;
u_xlat10.z = u_xlat6.z;
u_xlat4 = u_xlat2.yyyy * u_xlat10;
u_xlat5 = fma(u_xlat8, u_xlat2.xxxx, u_xlat11);
u_xlat6 = fma(u_xlat9, u_xlat2.xxxx, u_xlat12);
u_xlat4 = fma(u_xlat7, u_xlat2.xxxx, u_xlat4);
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x0 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x10 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x20 >> 2) + 2]));
u_xlat10.xyw = float3(as_type<float>(inMatrices[u_xlati3.z].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.z].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.z].value[(0x30 >> 2) + 2]));
u_xlat11.x = u_xlat7.x;
u_xlat11.y = u_xlat8.x;
u_xlat11.z = u_xlat9.x;
u_xlat11.w = u_xlat10.x;
u_xlat12.x = u_xlat7.y;
u_xlat12.y = u_xlat8.y;
u_xlat12.z = u_xlat9.y;
u_xlat12.w = u_xlat10.y;
u_xlat10.x = u_xlat7.z;
u_xlat10.y = u_xlat8.z;
u_xlat10.z = u_xlat9.z;
u_xlat5 = fma(u_xlat11, u_xlat2.zzzz, u_xlat5);
u_xlat6 = fma(u_xlat12, u_xlat2.zzzz, u_xlat6);
u_xlat4 = fma(u_xlat10, u_xlat2.zzzz, u_xlat4);
u_xlat2.xyz = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x0 >> 2) + 2]));
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[u_xlati3.w].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati3.w].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati3.w].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat2.x;
u_xlat9.y = u_xlat3.x;
u_xlat9.z = u_xlat7.x;
u_xlat9.w = u_xlat8.x;
u_xlat10.x = u_xlat2.y;
u_xlat10.y = u_xlat3.y;
u_xlat10.z = u_xlat7.y;
u_xlat10.w = u_xlat8.y;
u_xlat8.x = u_xlat2.z;
u_xlat8.y = u_xlat3.z;
u_xlat8.z = u_xlat7.z;
u_xlat3 = fma(u_xlat9, u_xlat2.wwww, u_xlat5);
u_xlat5 = fma(u_xlat10, u_xlat2.wwww, u_xlat6);
u_xlat2 = fma(u_xlat8, u_xlat2.wwww, u_xlat4);
u_xlat4.xyz = u_xlat0.xyz;
u_xlat4.w = 1.0;
u_xlat6.x = dot(u_xlat3, u_xlat4);
u_xlat6.y = dot(u_xlat5, u_xlat4);
u_xlat6.z = dot(u_xlat2, u_xlat4);
u_xlat1.w = u_xlat0.w;
u_xlat6.w = dot(u_xlat3.yzx, u_xlat1.xyw);
u_xlat0.x = dot(u_xlat5.yzx, u_xlat1.xyw);
u_xlat0.y = dot(u_xlat2.yzx, u_xlat1.xyw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
u_xlat0.z = u_xlat1.z;
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat0.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿ
inMatricesÿÿÿÿÿÿÿÿinSkinÿÿÿÿÿÿÿÿ
inVerticesÿÿÿÿÿÿÿÿ outVerticesÿÿÿÿÿÿÿÿå"şÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_VertCount;
};
struct inVertices_Type
{
uint value[10];
};
struct inSkin_Type
{
uint value[8];
};
struct inMatrices_Type
{
uint value[16];
};
struct outVertices_Type
{
uint value[10];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inVertices_Type *inVertices [[ buffer(2) ]],
const device inSkin_Type *inSkin [[ buffer(3) ]],
const device inMatrices_Type *inMatrices [[ buffer(4) ]],
device outVertices_Type *outVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
int4 u_xlati4;
float4 u_xlat5;
float4 u_xlat6;
float4 u_xlat7;
float4 u_xlat8;
float4 u_xlat9;
float4 u_xlat10;
float4 u_xlat11;
float4 u_xlat12;
float4 u_xlat13;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlat0 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2]));
u_xlat1 = float4(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat2.xy = float2(as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 0]), as_type<float>(inVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1]));
u_xlat3 = float4(as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 0]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 1]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 2]), as_type<float>(inSkin[mtl_ThreadID.x].value[(0x0 >> 2) + 3]));
u_xlati4 = int4(int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 0]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 1]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 2]), int(inSkin[mtl_ThreadID.x].value[(0x10 >> 2) + 3]));
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati4.x].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.x].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.x].value[(0x0 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati4.x].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.x].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.x].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati4.x].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.x].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.x].value[(0x20 >> 2) + 2]));
u_xlat8.xyw = float3(as_type<float>(inMatrices[u_xlati4.x].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.x].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.x].value[(0x30 >> 2) + 2]));
u_xlat9.x = u_xlat5.x;
u_xlat9.y = u_xlat6.x;
u_xlat9.z = u_xlat7.x;
u_xlat9.w = u_xlat8.x;
u_xlat10.x = u_xlat5.y;
u_xlat10.y = u_xlat6.y;
u_xlat10.z = u_xlat7.y;
u_xlat10.w = u_xlat8.y;
u_xlat8.x = u_xlat5.z;
u_xlat8.y = u_xlat6.z;
u_xlat8.z = u_xlat7.z;
u_xlat5.xyz = float3(as_type<float>(inMatrices[u_xlati4.y].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.y].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.y].value[(0x0 >> 2) + 2]));
u_xlat6.xyz = float3(as_type<float>(inMatrices[u_xlati4.y].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.y].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.y].value[(0x10 >> 2) + 2]));
u_xlat7.xyz = float3(as_type<float>(inMatrices[u_xlati4.y].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.y].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.y].value[(0x20 >> 2) + 2]));
u_xlat11.xyw = float3(as_type<float>(inMatrices[u_xlati4.y].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.y].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.y].value[(0x30 >> 2) + 2]));
u_xlat12.x = u_xlat5.x;
u_xlat12.y = u_xlat6.x;
u_xlat12.z = u_xlat7.x;
u_xlat12.w = u_xlat11.x;
u_xlat12 = u_xlat3.yyyy * u_xlat12;
u_xlat13.x = u_xlat5.y;
u_xlat13.y = u_xlat6.y;
u_xlat13.z = u_xlat7.y;
u_xlat13.w = u_xlat11.y;
u_xlat13 = u_xlat3.yyyy * u_xlat13;
u_xlat11.x = u_xlat5.z;
u_xlat11.y = u_xlat6.z;
u_xlat11.z = u_xlat7.z;
u_xlat5 = u_xlat3.yyyy * u_xlat11;
u_xlat6 = fma(u_xlat9, u_xlat3.xxxx, u_xlat12);
u_xlat7 = fma(u_xlat10, u_xlat3.xxxx, u_xlat13);
u_xlat5 = fma(u_xlat8, u_xlat3.xxxx, u_xlat5);
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati4.z].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.z].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.z].value[(0x0 >> 2) + 2]));
u_xlat9.xyz = float3(as_type<float>(inMatrices[u_xlati4.z].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.z].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.z].value[(0x10 >> 2) + 2]));
u_xlat10.xyz = float3(as_type<float>(inMatrices[u_xlati4.z].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.z].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.z].value[(0x20 >> 2) + 2]));
u_xlat11.xyw = float3(as_type<float>(inMatrices[u_xlati4.z].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.z].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.z].value[(0x30 >> 2) + 2]));
u_xlat12.x = u_xlat8.x;
u_xlat12.y = u_xlat9.x;
u_xlat12.z = u_xlat10.x;
u_xlat12.w = u_xlat11.x;
u_xlat13.x = u_xlat8.y;
u_xlat13.y = u_xlat9.y;
u_xlat13.z = u_xlat10.y;
u_xlat13.w = u_xlat11.y;
u_xlat11.x = u_xlat8.z;
u_xlat11.y = u_xlat9.z;
u_xlat11.z = u_xlat10.z;
u_xlat6 = fma(u_xlat12, u_xlat3.zzzz, u_xlat6);
u_xlat7 = fma(u_xlat13, u_xlat3.zzzz, u_xlat7);
u_xlat5 = fma(u_xlat11, u_xlat3.zzzz, u_xlat5);
u_xlat3.xyz = float3(as_type<float>(inMatrices[u_xlati4.w].value[(0x0 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.w].value[(0x0 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.w].value[(0x0 >> 2) + 2]));
u_xlat4.xyz = float3(as_type<float>(inMatrices[u_xlati4.w].value[(0x10 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.w].value[(0x10 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.w].value[(0x10 >> 2) + 2]));
u_xlat8.xyz = float3(as_type<float>(inMatrices[u_xlati4.w].value[(0x20 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.w].value[(0x20 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.w].value[(0x20 >> 2) + 2]));
u_xlat9.xyw = float3(as_type<float>(inMatrices[u_xlati4.w].value[(0x30 >> 2) + 0]), as_type<float>(inMatrices[u_xlati4.w].value[(0x30 >> 2) + 1]), as_type<float>(inMatrices[u_xlati4.w].value[(0x30 >> 2) + 2]));
u_xlat10.x = u_xlat3.x;
u_xlat10.y = u_xlat4.x;
u_xlat10.z = u_xlat8.x;
u_xlat10.w = u_xlat9.x;
u_xlat11.x = u_xlat3.y;
u_xlat11.y = u_xlat4.y;
u_xlat11.z = u_xlat8.y;
u_xlat11.w = u_xlat9.y;
u_xlat9.x = u_xlat3.z;
u_xlat9.y = u_xlat4.z;
u_xlat9.z = u_xlat8.z;
u_xlat4 = fma(u_xlat10, u_xlat3.wwww, u_xlat6);
u_xlat6 = fma(u_xlat11, u_xlat3.wwww, u_xlat7);
u_xlat3 = fma(u_xlat9, u_xlat3.wwww, u_xlat5);
u_xlat5.xyz = u_xlat0.yzw;
u_xlat5.w = 1.0;
u_xlat7.x = dot(u_xlat4, u_xlat5);
u_xlat7.y = dot(u_xlat6, u_xlat5);
u_xlat7.z = dot(u_xlat3, u_xlat5);
u_xlat0.yz = u_xlat1.xy;
u_xlat7.w = dot(u_xlat4.xyz, u_xlat0.xyz);
u_xlat5.x = dot(u_xlat6.xyz, u_xlat0.xyz);
u_xlat5.y = dot(u_xlat3.xyz, u_xlat0.xyz);
u_xlat2.zw = u_xlat1.zw;
u_xlat5.z = dot(u_xlat4.zxy, u_xlat2.xzw);
u_xlat5.w = dot(u_xlat6.zxy, u_xlat2.xzw);
u_xlat2.x = dot(u_xlat3.zxy, u_xlat2.xzw);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2)] = as_type<uint>(u_xlat7.x);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat7.y);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat7.z);
outVertices[mtl_ThreadID.x].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat7.w);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2)] = as_type<uint>(u_xlat5.x);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat5.y);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat5.z);
outVertices[mtl_ThreadID.x].value[(0x10 >> 2) + 3] = as_type<uint>(u_xlat5.w);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2)] = as_type<uint>(u_xlat2.x);
outVertices[mtl_ThreadID.x].value[(0x20 >> 2) + 1] = as_type<uint>(u_xlat2.y);
return;
}
@@Globals g_VertCountInternal-BlendShapemainGlobalsÿÿÿÿÿÿÿÿinBlendShapeVerticesÿÿÿÿÿÿÿÿinOutMeshVerticesÿÿÿÿÿÿÿÿøşÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_FirstVert;
uint g_VertCount;
float g_Weight;
};
struct inBlendShapeVertices_Type
{
uint value[10];
};
struct inOutMeshVertices_Type
{
uint value[3];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inBlendShapeVertices_Type *inBlendShapeVertices [[ buffer(2) ]],
device inOutMeshVertices_Type *inOutMeshVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float4 u_xlat0;
int u_xlati0;
bool u_xlatb0;
float3 u_xlat1;
float3 u_xlat2;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) + int(Globals.g_FirstVert);
u_xlat0 = float4(as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 0]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 1]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 2]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 3]));
u_xlat1.xyz = float3(as_type<float>(inOutMeshVertices[as_type<int>(u_xlat0.x)].value[(0x0 >> 2) + 0]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat0.x)].value[(0x0 >> 2) + 1]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat0.x)].value[(0x0 >> 2) + 2]));
u_xlat2.xyz = fma(u_xlat0.yzw, float3(Globals.g_Weight), u_xlat1.xyz);
inOutMeshVertices[as_type<int>(u_xlat0.x)].value[(0x0 >> 2)] = as_type<uint>(u_xlat2.x);
inOutMeshVertices[as_type<int>(u_xlat0.x)].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat2.y);
inOutMeshVertices[as_type<int>(u_xlat0.x)].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat2.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿinBlendShapeVerticesÿÿÿÿÿÿÿÿinOutMeshVerticesÿÿÿÿÿÿÿÿ¾
şÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_FirstVert;
uint g_VertCount;
float g_Weight;
};
struct inBlendShapeVertices_Type
{
uint value[10];
};
struct inOutMeshVertices_Type
{
uint value[6];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inBlendShapeVertices_Type *inBlendShapeVertices [[ buffer(2) ]],
device inOutMeshVertices_Type *inOutMeshVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float3 u_xlat0;
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float3 u_xlat3;
float4 u_xlat4;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) + int(Globals.g_FirstVert);
u_xlat1 = float4(as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 0]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 1]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 2]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 3]));
u_xlat0.xyz = float3(as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 0]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 1]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 2]));
u_xlat2 = float4(as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 0]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 1]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 2]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 3]));
u_xlat3.xy = float2(as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 0]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 1]));
u_xlat4.xyz = fma(u_xlat1.yzw, float3(Globals.g_Weight), u_xlat2.xyz);
u_xlat3.z = u_xlat2.w;
u_xlat0.xyz = fma(u_xlat0.xyz, float3(Globals.g_Weight), u_xlat3.zxy);
u_xlat4.w = u_xlat0.x;
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2)] = as_type<uint>(u_xlat4.x);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat4.y);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat4.z);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat4.w);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2)] = as_type<uint>(u_xlat0.y);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat0.z);
return;
}
@@mainGlobalsÿÿÿÿÿÿÿÿinBlendShapeVerticesÿÿÿÿÿÿÿÿinOutMeshVerticesÿÿÿÿÿÿÿÿ›şÊ­Ş@#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct Globals_Type
{
uint g_FirstVert;
uint g_VertCount;
float g_Weight;
};
struct inBlendShapeVertices_Type
{
uint value[10];
};
struct inOutMeshVertices_Type
{
uint value[10];
};
kernel void computeMain(
constant Globals_Type& Globals [[ buffer(1) ]],
const device inBlendShapeVertices_Type *inBlendShapeVertices [[ buffer(2) ]],
device inOutMeshVertices_Type *inOutMeshVertices [[ buffer(0) ]],
uint3 mtl_ThreadID [[ thread_position_in_grid ]])
{
float3 u_xlat0;
int u_xlati0;
bool u_xlatb0;
float4 u_xlat1;
float4 u_xlat2;
float4 u_xlat3;
float4 u_xlat4;
float3 u_xlat5;
float4 u_xlat6;
u_xlatb0 = mtl_ThreadID.x>=Globals.g_VertCount;
if(u_xlatb0){
return;
}
u_xlati0 = int(mtl_ThreadID.x) + int(Globals.g_FirstVert);
u_xlat1 = float4(as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 0]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 1]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 2]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x0 >> 2) + 3]));
u_xlat2 = float4(as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 0]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 1]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 2]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x10 >> 2) + 3]));
u_xlat0.xy = float2(as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x20 >> 2) + 0]), as_type<float>(inBlendShapeVertices[u_xlati0].value[(0x20 >> 2) + 1]));
u_xlat3 = float4(as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 3]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 0]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 1]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 2]));
u_xlat4 = float4(as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 0]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 1]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 2]), as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 3]));
u_xlat5.z = as_type<float>(inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x20 >> 2) + 0]);
u_xlat6.xyz = fma(u_xlat1.yzw, float3(Globals.g_Weight), u_xlat3.yzw);
u_xlat3.yz = u_xlat4.xy;
u_xlat3.xyz = fma(u_xlat2.yzx, float3(Globals.g_Weight), u_xlat3.yzx);
u_xlat0.z = u_xlat2.w;
u_xlat5.xy = u_xlat4.zw;
u_xlat0.xyz = fma(u_xlat0.zxy, float3(Globals.g_Weight), u_xlat5.xyz);
u_xlat6.w = u_xlat3.z;
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2)] = as_type<uint>(u_xlat6.x);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 1] = as_type<uint>(u_xlat6.y);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 2] = as_type<uint>(u_xlat6.z);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x0 >> 2) + 3] = as_type<uint>(u_xlat6.w);
u_xlat3.zw = u_xlat0.xy;
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2)] = as_type<uint>(u_xlat3.x);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 1] = as_type<uint>(u_xlat3.y);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 2] = as_type<uint>(u_xlat3.z);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x10 >> 2) + 3] = as_type<uint>(u_xlat3.w);
inOutMeshVertices[as_type<int>(u_xlat1.x)].value[(0x20 >> 2)] = as_type<uint>(u_xlat0.z);
return;
}
@@Globals  g_FirstVert g_VertCountg_Weight#Internal-VT-TranslationTableReplaceReplaceTranslationTablecbReplacementDataÿÿÿÿÿÿÿÿ
_input_mapÿÿÿÿÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿkşÊ­Ş#include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbReplacementData_Type
{
uint numReplacements;
uint pad0;
uint pad1;
uint pad2;
};
kernel void computeMain(
constant cbReplacementData_Type& cbReplacementData [[ buffer(1) ]],
const device uint *_input_map [[ buffer(2) ]],
device uint *_output_buf [[ buffer(0) ]],
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
float2 u_xlat0;
int u_xlati0;
uint u_xlatu0;
bool u_xlatb0;
u_xlatu0 = mtl_ThreadGroupID.x * 0x100u + mtl_ThreadIDInGroup.x;
u_xlatb0 = u_xlatu0<cbReplacementData.numReplacements;
if(u_xlatb0){
u_xlati0 = int(mtl_ThreadIDInGroup.x) << 0x3;
u_xlati0 = int(mtl_ThreadGroupID.x) * 0x800 + u_xlati0;
u_xlat0.xy = float2(as_type<float>(_input_map[(u_xlati0 >> 2) + 0]), as_type<float>(_input_map[(u_xlati0 >> 2) + 1]));
u_xlati0 = as_type<int>(u_xlat0.x) << 0x2;
_output_buf[(u_xlati0 >> 2)] = as_type<uint>(u_xlat0.y);
}
return;
}
@cbReplacementDatanumReplacementspad0pad1pad2 $Internal-VT-TranslationTableUpsampleMaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ
şÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
float u_xlat1;
int u_xlati1;
uint2 u_xlatu1;
int u_xlati2;
bool u_xlatb2;
int u_xlati4;
bool2 u_xlatb4;
bool u_xlatb5;
float u_xlat7;
uint u_xlatu7;
int u_xlati10;
u_xlatu0 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatu1.xy = u_xlatu0.xw >> uint2(0x1u, 0x1u);
u_xlatu7 = cbTranslationTableData.width >> 0x1u;
u_xlati1 = int(u_xlatu1.y) * int(u_xlatu7) + int(u_xlatu1.x);
u_xlati1 = u_xlati1 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati1 = u_xlati1 << 0x2;
u_xlat1 = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlatb4.xy = (u_xlatu0.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb4.x = u_xlatb4.y || u_xlatb4.x;
if(u_xlatb4.x){
return;
}
u_xlati4 = int(u_xlatu0.w) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati4 = u_xlati4 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati4 = u_xlati4 << 0x2;
u_xlat7 = as_type<float>(_output_buf[(u_xlati4 >> 2) + 0]);
u_xlati10 = int(as_type<uint>(u_xlat7) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat7 = as_type<float>(as_type<uint>(u_xlat7) & 0x7fffffffu);
}
u_xlati2 = int(as_type<uint>(u_xlat7) & 0xfu);
u_xlatb2 = u_xlati2!=int(cbTranslationTableData.invLevel);
u_xlatb5 = as_type<int>(u_xlat1)!=as_type<int>(u_xlat7);
u_xlatb2 = u_xlatb5 && u_xlatb2;
if(u_xlatb2){
u_xlat7 = u_xlat1;
u_xlati1 = int(0xffffffffu);
} else {
u_xlati1 = int((u_xlati10!=0x0) ? 0xFFFFFFFFu : uint(0));
}
if((uint(u_xlati1))!=uint(0)){
_output_buf[(u_xlati4 >> 2)] = as_type<uint>(u_xlat7);
translationTable.write(float4(u_xlat7), u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ5şÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
float u_xlat1;
int u_xlati1;
uint2 u_xlatu1;
uint2 u_xlatu2;
int4 u_xlati3;
uint u_xlatu3;
bool u_xlatb3;
int3 u_xlati4;
int4 u_xlati5;
int u_xlati7;
bool2 u_xlatb7;
int u_xlati9;
uint u_xlatu9;
int u_xlati12;
bool u_xlatb12;
float u_xlat13;
uint u_xlatu13;
uint2 u_xlatu14;
int2 u_xlati15;
bool u_xlatb15;
int u_xlati18;
bool u_xlatb18;
int u_xlati19;
u_xlatu0.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatu1.xy = u_xlatu0.xy >> uint2(0x1u, 0x1u);
u_xlatu13 = cbTranslationTableData.width >> 0x1u;
u_xlati1 = int(u_xlatu1.y) * int(u_xlatu13) + int(u_xlatu1.x);
u_xlati1 = u_xlati1 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati1 = u_xlati1 << 0x2;
u_xlat1 = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlatb7.xy = (u_xlatu0.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb7.x = u_xlatb7.y || u_xlatb7.x;
if(u_xlatb7.x){
return;
}
u_xlati7 = int(u_xlatu0.y) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati7 = u_xlati7 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati7 = u_xlati7 << 0x2;
u_xlat13 = as_type<float>(_output_buf[(u_xlati7 >> 2) + 0]);
u_xlatu0.zw = uint2(cbTranslationTableData.level);
u_xlati12 = int(lookupTexture.read(u_xlatu0.xy, u_xlatu0.w).x);
u_xlati18 = int(as_type<uint>(u_xlat13) & 0x80000000u);
u_xlati19 = int((u_xlati18!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati18))!=uint(0)){
u_xlat13 = as_type<float>(as_type<uint>(u_xlat13) & 0x7fffffffu);
}
u_xlati18 = int(as_type<uint>(u_xlat13) & 0xfu);
u_xlatb18 = u_xlati18==int(cbTranslationTableData.invLevel);
if(u_xlatb18){
u_xlatu2.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati18 = 0x0;
while(true){
u_xlatb3 = u_xlatu14.y>=cbTranslationTableData.numEvictedTiles;
u_xlati18 = 0x0;
if(u_xlatb3){break;}
u_xlatu3 = u_xlatu14.y >> 0x2u;
u_xlatu9 = u_xlatu14.y & 0x3u;
u_xlati15.x = 0 - int(u_xlatu9);
u_xlati4.xyz = int3(uint3((uint3(u_xlatu9)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati5.y = int(uint(u_xlati15.x) & uint(u_xlati4.y));
u_xlati9 = int(u_xlatu9) + int(0xfffffffdu);
u_xlati5.z = (u_xlati4.y != 0) ? 0x0 : u_xlati9;
u_xlati5.w = int((u_xlati4.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.x = u_xlati4.x;
u_xlati3 = int4(uint4(u_xlati5) & cbTranslationTableData.evictedTiles[int(u_xlatu3)]);
u_xlati3.xy = int2(uint2(u_xlati3.yw) | uint2(u_xlati3.xz));
u_xlati3.x = int(uint(u_xlati3.y) | uint(u_xlati3.x));
u_xlatb3 = u_xlati12==u_xlati3.x;
if(u_xlatb3){
u_xlatu14.x = 0xffffffffu;
u_xlati18 = int(0xffffffffu);
break;
}
u_xlatu2.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu2.yx;
u_xlatb18 = u_xlatb3;
}
if((uint(u_xlati18))==uint(0)){
u_xlatu14.x = 0x0u;
}
if((u_xlatu14.x)!=uint(0)){
u_xlat13 = u_xlat1;
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu2.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati18 = 0x0;
while(true){
u_xlatb3 = u_xlatu14.y>=cbTranslationTableData.numAddedTiles;
u_xlati18 = 0x0;
if(u_xlatb3){break;}
u_xlatu3 = u_xlatu14.y >> 0x1u;
u_xlatu9 = bitFieldInsert(0x1u, 0x1u, u_xlatu14.y, 0x0u);
u_xlati4.x = int((u_xlatu9<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati15.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu3)].xz);
u_xlati15.x = int(uint(u_xlati15.y) | uint(u_xlati15.x));
u_xlatb15 = u_xlati12==u_xlati15.x;
if(u_xlatb15){
u_xlati9 = int(u_xlatu9) + 0x1;
u_xlatu9 = uint(u_xlati9) + 0xffffffffu;
u_xlati4.x = int((u_xlatu9<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati3.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu3)].yw);
u_xlatu14.x = uint(u_xlati3.y) | uint(u_xlati3.x);
u_xlati18 = int(0xffffffffu);
break;
}
u_xlatu2.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu2.yx;
u_xlatb18 = u_xlatb15;
}
if((uint(u_xlati18))==uint(0)){
u_xlatu14.x = 0xffffffffu;
}
u_xlatb12 = int(u_xlatu14.x)!=int(0xffffffffu);
if(u_xlatb12){
u_xlati12 = int(u_xlatu14.x & 0xfffffff0u);
u_xlat13 = as_type<float>(uint(u_xlati12) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb12 = as_type<int>(u_xlat1)!=as_type<int>(u_xlat13);
if(u_xlatb12){
u_xlat13 = u_xlat1;
u_xlati19 = int(0xffffffffu);
}
}
}
if((uint(u_xlati19))!=uint(0)){
_output_buf[(u_xlati7 >> 2)] = as_type<uint>(u_xlat13);
translationTable.write(float4(u_xlat13), u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ‘şÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int u_xlati1;
bool2 u_xlatb1;
bool u_xlatb2;
float u_xlat4;
int u_xlati7;
int u_xlati10;
bool u_xlatb10;
u_xlatu0 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatb1.xy = (u_xlatu0.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1 = int(u_xlatu0.w) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati1 = u_xlati1 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati1 = u_xlati1 << 0x2;
u_xlat4 = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlati7 = int(as_type<uint>(u_xlat4) & 0x80000000u);
if((uint(u_xlati7))!=uint(0)){
u_xlat4 = as_type<float>(as_type<uint>(u_xlat4) & 0x7fffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat4) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb2 = as_type<int>(u_xlat4)!=int(0x7fffffffu);
u_xlatb10 = u_xlatb10 && u_xlatb2;
if(u_xlatb10){
u_xlat4 = float(as_type<float>(int(0x7fffffffu)));
u_xlati10 = int(int(0xffffffffu));
} else {
u_xlati10 = int((u_xlati7!=0x0) ? 0xFFFFFFFFu : uint(0));
}
if((uint(u_xlati10))!=uint(0)){
_output_buf[(u_xlati1 >> 2)] = as_type<uint>(u_xlat4);
translationTable.write(float4(u_xlat4), u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ¿şÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int u_xlati1;
bool2 u_xlatb1;
uint2 u_xlatu2;
int4 u_xlati3;
uint u_xlatu3;
int3 u_xlati4;
int4 u_xlati5;
float u_xlat7;
int2 u_xlati9;
bool u_xlatb9;
int u_xlati12;
bool u_xlatb12;
int u_xlati13;
uint2 u_xlatu14;
int u_xlati18;
bool u_xlatb18;
int u_xlati19;
uint u_xlatu19;
bool u_xlatb19;
u_xlatu0.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatb1.xy = (u_xlatu0.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1 = int(u_xlatu0.y) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati1 = u_xlati1 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati1 = u_xlati1 << 0x2;
u_xlat7 = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlatu0.zw = uint2(cbTranslationTableData.level);
u_xlati12 = int(lookupTexture.read(u_xlatu0.xy, u_xlatu0.w).x);
u_xlati18 = int(as_type<uint>(u_xlat7) & 0x80000000u);
u_xlati13 = int((u_xlati18!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati18))!=uint(0)){
u_xlat7 = as_type<float>(as_type<uint>(u_xlat7) & 0x7fffffffu);
}
u_xlati18 = int(as_type<uint>(u_xlat7) & 0xfu);
u_xlatb18 = u_xlati18==int(cbTranslationTableData.invLevel);
if(u_xlatb18){
u_xlatu2.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati18 = 0x0;
while(true){
u_xlatb19 = u_xlatu14.y>=cbTranslationTableData.numEvictedTiles;
u_xlati18 = 0x0;
if(u_xlatb19){break;}
u_xlatu19 = u_xlatu14.y >> 0x2u;
u_xlatu3 = u_xlatu14.y & 0x3u;
u_xlati9.x = 0 - int(u_xlatu3);
u_xlati4.xyz = int3(uint3((uint3(u_xlatu3)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati5.y = int(uint(u_xlati9.x) & uint(u_xlati4.y));
u_xlati3.x = int(u_xlatu3) + int(0xfffffffdu);
u_xlati5.z = (u_xlati4.y != 0) ? 0x0 : u_xlati3.x;
u_xlati5.w = int((u_xlati4.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.x = u_xlati4.x;
u_xlati3 = int4(uint4(u_xlati5) & cbTranslationTableData.evictedTiles[int(u_xlatu19)]);
u_xlati3.xy = int2(uint2(u_xlati3.yw) | uint2(u_xlati3.xz));
u_xlati19 = int(uint(u_xlati3.y) | uint(u_xlati3.x));
u_xlatb19 = u_xlati12==u_xlati19;
if(u_xlatb19){
u_xlatu14.x = 0xffffffffu;
u_xlati18 = int(0xffffffffu);
break;
}
u_xlatu2.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu2.yx;
u_xlatb18 = u_xlatb19;
}
if((uint(u_xlati18))==uint(0)){
u_xlatu14.x = 0x0u;
}
if((u_xlatu14.x)!=uint(0)){
u_xlat7 = float(as_type<float>(int(0x7fffffffu)));
u_xlati13 = int(int(0xffffffffu));
}
} else {
u_xlatu2.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati18 = 0x0;
while(true){
u_xlatb19 = u_xlatu14.y>=cbTranslationTableData.numAddedTiles;
u_xlati18 = 0x0;
if(u_xlatb19){break;}
u_xlatu19 = u_xlatu14.y >> 0x1u;
u_xlatu3 = bitFieldInsert(0x1u, 0x1u, u_xlatu14.y, 0x0u);
u_xlati4.x = int((u_xlatu3<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati9.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu19)].xz);
u_xlati9.x = int(uint(u_xlati9.y) | uint(u_xlati9.x));
u_xlatb9 = u_xlati12==u_xlati9.x;
if(u_xlatb9){
u_xlati3.x = int(u_xlatu3) + 0x1;
u_xlatu3 = uint(u_xlati3.x) + 0xffffffffu;
u_xlati4.x = int((u_xlatu3<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati3.xz = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu19)].yw);
u_xlatu14.x = uint(u_xlati3.z) | uint(u_xlati3.x);
u_xlati18 = int(0xffffffffu);
break;
}
u_xlatu2.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu2.yx;
u_xlatb18 = u_xlatb9;
}
if((uint(u_xlati18))==uint(0)){
u_xlatu14.x = 0xffffffffu;
}
u_xlatb12 = int(u_xlatu14.x)!=int(0xffffffffu);
if(u_xlatb12){
u_xlati12 = int(u_xlatu14.x & 0xfffffff0u);
u_xlat7 = as_type<float>(uint(u_xlati12) | cbTranslationTableData.invLevel);
u_xlati13 = int(0xffffffffu);
} else {
u_xlatb12 = as_type<int>(u_xlat7)!=int(0x7fffffffu);
if(u_xlatb12){
u_xlati13 = int(0xffffffffu);
}
u_xlat7 = as_type<float>(int(0x7fffffffu));
}
}
if((uint(u_xlati13))!=uint(0)){
_output_buf[(u_xlati1 >> 2)] = as_type<uint>(u_xlat7);
translationTable.write(float4(u_xlat7), u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ‰şÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
float u_xlat0;
int u_xlati0;
uint4 u_xlatu1;
float2 u_xlat2;
bool u_xlatb3;
int u_xlati4;
uint2 u_xlatu4;
bool3 u_xlatb4;
float u_xlat8;
int u_xlati8;
int u_xlati10;
bool u_xlatb10;
int u_xlati12;
uint u_xlatu12;
int u_xlati14;
bool u_xlatb14;
u_xlati0 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati0 = u_xlati0 >> 0x2;
u_xlatu1 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatu4.xy = u_xlatu1.xw >> uint2(0x1u, 0x1u);
u_xlatu12 = cbTranslationTableData.width >> 0x1u;
u_xlati4 = int(u_xlatu4.y) * int(u_xlatu12) + int(u_xlatu4.x);
u_xlati4 = u_xlati4 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati8 = u_xlati4 << 0x2;
u_xlat8 = as_type<float>(_output_buf[(u_xlati8 >> 2) + 0]);
u_xlati0 = u_xlati4 + u_xlati0;
u_xlati0 = u_xlati0 << 0x2;
u_xlat0 = as_type<float>(_output_buf[(u_xlati0 >> 2) + 0]);
u_xlatb4.xz = (u_xlatu1.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb4.x = u_xlatb4.z || u_xlatb4.x;
if(u_xlatb4.x){
return;
}
u_xlati4 = int(u_xlatu1.w) * int(cbTranslationTableData.width) + int(u_xlatu1.x);
u_xlati4 = u_xlati4 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati12 = u_xlati4 << 0x2;
u_xlat2.x = as_type<float>(_output_buf[(u_xlati12 >> 2) + 0]);
u_xlati4 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati4;
u_xlati4 = u_xlati4 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati4 >> 2) + 0]);
u_xlati10 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati14 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb14 = u_xlati14!=int(cbTranslationTableData.invLevel);
u_xlatb3 = as_type<int>(u_xlat8)!=as_type<int>(u_xlat2.x);
u_xlatb14 = u_xlatb14 && u_xlatb3;
if(u_xlatb14){
u_xlat2.x = u_xlat8;
u_xlati8 = int(0xffffffffu);
} else {
u_xlati8 = int((u_xlati10!=0x0) ? 0xFFFFFFFFu : uint(0));
}
u_xlati10 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati8 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb14 = as_type<int>(u_xlat0)!=as_type<int>(u_xlat2.y);
u_xlatb10 = u_xlatb14 && u_xlatb10;
if(u_xlatb10){
u_xlat2.y = u_xlat0;
u_xlati8 = int(0xffffffffu);
}
if((uint(u_xlati8))!=uint(0)){
_output_buf[(u_xlati12 >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati4 >> 2)] = as_type<uint>(u_xlat2.y);
translationTable.write(u_xlat2.xyxx, u_xlatu1.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿv,şÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
float u_xlat0;
int u_xlati0;
uint4 u_xlatu1;
float2 u_xlat2;
uint2 u_xlatu3;
int4 u_xlati4;
uint u_xlatu4;
bool u_xlatb4;
int4 u_xlati5;
int4 u_xlati6;
int u_xlati7;
uint2 u_xlatu7;
bool3 u_xlatb7;
int3 u_xlati11;
uint u_xlatu11;
float u_xlat14;
int u_xlati14;
bool u_xlatb14;
int2 u_xlati15;
uint u_xlatu15;
bool u_xlatb15;
int u_xlati16;
uint u_xlatu16;
bool u_xlatb16;
uint2 u_xlatu17;
int2 u_xlati18;
bool u_xlatb18;
int u_xlati21;
uint u_xlatu21;
int u_xlati23;
u_xlati0 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati0 = u_xlati0 >> 0x2;
u_xlatu1.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatu7.xy = u_xlatu1.xy >> uint2(0x1u, 0x1u);
u_xlatu21 = cbTranslationTableData.width >> 0x1u;
u_xlati7 = int(u_xlatu7.y) * int(u_xlatu21) + int(u_xlatu7.x);
u_xlati7 = u_xlati7 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati14 = u_xlati7 << 0x2;
u_xlat14 = as_type<float>(_output_buf[(u_xlati14 >> 2) + 0]);
u_xlati0 = u_xlati7 + u_xlati0;
u_xlati0 = u_xlati0 << 0x2;
u_xlat0 = as_type<float>(_output_buf[(u_xlati0 >> 2) + 0]);
u_xlatb7.xz = (u_xlatu1.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb7.x = u_xlatb7.z || u_xlatb7.x;
if(u_xlatb7.x){
return;
}
u_xlati7 = int(u_xlatu1.y) * int(cbTranslationTableData.width) + int(u_xlatu1.x);
u_xlati7 = u_xlati7 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati21 = u_xlati7 << 0x2;
u_xlat2.x = as_type<float>(_output_buf[(u_xlati21 >> 2) + 0]);
u_xlati7 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati7;
u_xlati7 = u_xlati7 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati7 >> 2) + 0]);
u_xlatu1.zw = uint2(cbTranslationTableData.level);
u_xlati15.xy = int2(lookupTexture.read(u_xlatu1.xy, u_xlatu1.w).xy);
u_xlati16 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
u_xlati23 = int((u_xlati16!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati16))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu3.y = 0x0u;
u_xlatu17.x = uint(0x0u);
u_xlatu17.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb4 = u_xlatu17.y>=cbTranslationTableData.numEvictedTiles;
u_xlati16 = 0x0;
if(u_xlatb4){break;}
u_xlatu4 = u_xlatu17.y >> 0x2u;
u_xlatu11 = u_xlatu17.y & 0x3u;
u_xlati18.x = 0 - int(u_xlatu11);
u_xlati5.xyz = int3(uint3((uint3(u_xlatu11)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati18.x) & uint(u_xlati5.y));
u_xlati11.x = int(u_xlatu11) + int(0xfffffffdu);
u_xlati6.z = (u_xlati5.y != 0) ? 0x0 : u_xlati11.x;
u_xlati6.w = int((u_xlati5.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati5.x;
u_xlati4 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu4)]);
u_xlati4.xy = int2(uint2(u_xlati4.yw) | uint2(u_xlati4.xz));
u_xlati4.x = int(uint(u_xlati4.y) | uint(u_xlati4.x));
u_xlatb4 = u_xlati15.x==u_xlati4.x;
if(u_xlatb4){
u_xlatu17.x = 0xffffffffu;
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu17.y + 0x1u;
u_xlatu17.xy = u_xlatu3.yx;
u_xlatb16 = u_xlatb4;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu17.x = 0x0u;
}
if((u_xlatu17.x)!=uint(0)){
u_xlat2.x = u_xlat14;
u_xlati23 = int(0xffffffffu);
}
} else {
u_xlatu3.y = 0x0u;
u_xlatu17.x = uint(0x0u);
u_xlatu17.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb4 = u_xlatu17.y>=cbTranslationTableData.numAddedTiles;
u_xlati16 = 0x0;
if(u_xlatb4){break;}
u_xlatu4 = u_xlatu17.y >> 0x1u;
u_xlatu11 = bitFieldInsert(0x1u, 0x1u, u_xlatu17.y, 0x0u);
u_xlati5.x = int((u_xlatu11<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati18.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu4)].xz);
u_xlati18.x = int(uint(u_xlati18.y) | uint(u_xlati18.x));
u_xlatb18 = u_xlati15.x==u_xlati18.x;
if(u_xlatb18){
u_xlati11.x = int(u_xlatu11) + 0x1;
u_xlatu11 = uint(u_xlati11.x) + 0xffffffffu;
u_xlati5.x = int((u_xlatu11<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati4.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu4)].yw);
u_xlatu17.x = uint(u_xlati4.y) | uint(u_xlati4.x);
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu17.y + 0x1u;
u_xlatu17.xy = u_xlatu3.yx;
u_xlatb16 = u_xlatb18;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu17.x = 0xffffffffu;
}
u_xlatb15 = int(u_xlatu17.x)!=int(0xffffffffu);
if(u_xlatb15){
u_xlati15.x = int(u_xlatu17.x & 0xfffffff0u);
u_xlat2.x = as_type<float>(uint(u_xlati15.x) | cbTranslationTableData.invLevel);
u_xlati23 = int(0xffffffffu);
} else {
u_xlatb15 = as_type<int>(u_xlat14)!=as_type<int>(u_xlat2.x);
if(u_xlatb15){
u_xlat2.x = u_xlat14;
u_xlati23 = int(0xffffffffu);
}
}
}
u_xlati14 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati14))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati23 = int(0xffffffffu);
}
u_xlati14 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb14 = u_xlati14==int(cbTranslationTableData.invLevel);
if(u_xlatb14){
u_xlatu3.y = 0x0u;
u_xlatu17.x = uint(0x0u);
u_xlatu17.y = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb15 = u_xlatu17.y>=cbTranslationTableData.numEvictedTiles;
u_xlati14 = 0x0;
if(u_xlatb15){break;}
u_xlatu15 = u_xlatu17.y >> 0x2u;
u_xlatu16 = u_xlatu17.y & 0x3u;
u_xlati4.x = 0 - int(u_xlatu16);
u_xlati11.xyz = int3(uint3((uint3(u_xlatu16)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati5.y = int(uint(u_xlati4.x) & uint(u_xlati11.y));
u_xlati16 = int(u_xlatu16) + int(0xfffffffdu);
u_xlati5.z = (u_xlati11.y != 0) ? 0x0 : u_xlati16;
u_xlati5.w = int((u_xlati11.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.x = u_xlati11.x;
u_xlati4 = int4(uint4(u_xlati5) & cbTranslationTableData.evictedTiles[int(u_xlatu15)]);
u_xlati4.xy = int2(uint2(u_xlati4.yw) | uint2(u_xlati4.xz));
u_xlati15.x = int(uint(u_xlati4.y) | uint(u_xlati4.x));
u_xlatb15 = u_xlati15.y==u_xlati15.x;
if(u_xlatb15){
u_xlatu17.x = 0xffffffffu;
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu17.y + 0x1u;
u_xlatu17.xy = u_xlatu3.yx;
u_xlatb14 = u_xlatb15;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu17.x = 0x0u;
}
if((u_xlatu17.x)!=uint(0)){
u_xlat2.y = u_xlat0;
u_xlati23 = int(0xffffffffu);
}
} else {
u_xlatu3.y = 0x0u;
u_xlatu17.x = uint(0x0u);
u_xlatu17.y = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb15 = u_xlatu17.y>=cbTranslationTableData.numAddedTiles;
u_xlati14 = 0x0;
if(u_xlatb15){break;}
u_xlatu15 = u_xlatu17.y >> 0x1u;
u_xlatu16 = bitFieldInsert(0x1u, 0x1u, u_xlatu17.y, 0x0u);
u_xlati4.x = int((u_xlatu16<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati4.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu15)].xz);
u_xlati4.x = int(uint(u_xlati4.y) | uint(u_xlati4.x));
u_xlatb4 = u_xlati15.y==u_xlati4.x;
if(u_xlatb4){
u_xlati16 = int(u_xlatu16) + 0x1;
u_xlatu16 = uint(u_xlati16) + 0xffffffffu;
u_xlati5.x = int((u_xlatu16<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati11.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu15)].yw);
u_xlatu17.x = uint(u_xlati11.y) | uint(u_xlati11.x);
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu17.y + 0x1u;
u_xlatu17.xy = u_xlatu3.yx;
u_xlatb14 = u_xlatb4;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu17.x = 0xffffffffu;
}
u_xlatb14 = int(u_xlatu17.x)!=int(0xffffffffu);
if(u_xlatb14){
u_xlati14 = int(u_xlatu17.x & 0xfffffff0u);
u_xlat2.y = as_type<float>(uint(u_xlati14) | cbTranslationTableData.invLevel);
u_xlati23 = int(0xffffffffu);
} else {
u_xlatb14 = as_type<int>(u_xlat0)!=as_type<int>(u_xlat2.y);
if(u_xlatb14){
u_xlat2.y = u_xlat0;
u_xlati23 = int(0xffffffffu);
}
}
}
if((uint(u_xlati23))!=uint(0)){
_output_buf[(u_xlati21 >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati7 >> 2)] = as_type<uint>(u_xlat2.y);
translationTable.write(u_xlat2.xyxx, u_xlatu1.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿÛ şÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int u_xlati1;
bool2 u_xlatb1;
float2 u_xlat2;
int u_xlati4;
int u_xlati7;
bool u_xlatb7;
bool u_xlatb8;
int u_xlati10;
bool u_xlatb10;
u_xlatu0 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatb1.xy = (u_xlatu0.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1 = int(u_xlatu0.w) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati1 = u_xlati1 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati4 = u_xlati1 << 0x2;
u_xlat2.x = as_type<float>(_output_buf[(u_xlati4 >> 2) + 0]);
u_xlati1 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati1;
u_xlati1 = u_xlati1 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlati7 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
if((uint(u_xlati7))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb8 = as_type<int>(u_xlat2.x)!=int(0x7fffffffu);
u_xlatb10 = u_xlatb10 && u_xlatb8;
if(u_xlatb10){
u_xlat2.x = as_type<float>(int(0x7fffffffu));
u_xlati10 = int(0xffffffffu);
} else {
u_xlati10 = int((u_xlati7!=0x0) ? 0xFFFFFFFFu : uint(0));
}
u_xlati7 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati7))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati10 = int(0xffffffffu);
}
u_xlati7 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb7 = u_xlati7!=int(cbTranslationTableData.invLevel);
u_xlatb8 = as_type<int>(u_xlat2.y)!=int(0x7fffffffu);
u_xlatb7 = u_xlatb7 && u_xlatb8;
if(u_xlatb7){
u_xlat2.y = as_type<float>(int(0x7fffffffu));
u_xlati10 = int(0xffffffffu);
}
if((uint(u_xlati10))!=uint(0)){
_output_buf[(u_xlati4 >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati1 >> 2)] = as_type<uint>(u_xlat2.y);
translationTable.write(u_xlat2.xyxx, u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ*şÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int u_xlati1;
bool2 u_xlatb1;
float2 u_xlat2;
uint2 u_xlatu3;
int4 u_xlati4;
bool u_xlatb4;
int4 u_xlati5;
int u_xlati7;
int3 u_xlati10;
int2 u_xlati12;
bool u_xlatb12;
int u_xlati13;
uint u_xlatu13;
bool u_xlatb13;
uint2 u_xlatu14;
int2 u_xlati15;
uint u_xlatu15;
bool u_xlatb15;
int u_xlati19;
int u_xlati21;
uint u_xlatu21;
bool u_xlatb21;
u_xlatu0.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatb1.xy = (u_xlatu0.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1 = int(u_xlatu0.y) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati1 = u_xlati1 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati7 = u_xlati1 << 0x2;
u_xlat2.x = as_type<float>(_output_buf[(u_xlati7 >> 2) + 0]);
u_xlati1 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati1;
u_xlati1 = u_xlati1 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlatu0.zw = uint2(cbTranslationTableData.level);
u_xlati12.xy = int2(lookupTexture.read(u_xlatu0.xy, u_xlatu0.w).xy);
u_xlati13 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
u_xlati19 = int((u_xlati13!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati13))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati13 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb13 = u_xlati13==int(cbTranslationTableData.invLevel);
if(u_xlatb13){
u_xlatu3.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati13 = 0x0;
while(true){
u_xlatb15 = u_xlatu14.y>=cbTranslationTableData.numEvictedTiles;
u_xlati13 = 0x0;
if(u_xlatb15){break;}
u_xlatu15 = u_xlatu14.y >> 0x2u;
u_xlatu21 = u_xlatu14.y & 0x3u;
u_xlati4.x = 0 - int(u_xlatu21);
u_xlati10.xyz = int3(uint3((uint3(u_xlatu21)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati5.y = int(uint(u_xlati4.x) & uint(u_xlati10.y));
u_xlati21 = int(u_xlatu21) + int(0xfffffffdu);
u_xlati5.z = (u_xlati10.y != 0) ? 0x0 : u_xlati21;
u_xlati5.w = int((u_xlati10.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.x = u_xlati10.x;
u_xlati4 = int4(uint4(u_xlati5) & cbTranslationTableData.evictedTiles[int(u_xlatu15)]);
u_xlati15.xy = int2(uint2(u_xlati4.yw) | uint2(u_xlati4.xz));
u_xlati15.x = int(uint(u_xlati15.y) | uint(u_xlati15.x));
u_xlatb15 = u_xlati12.x==u_xlati15.x;
if(u_xlatb15){
u_xlatu14.x = 0xffffffffu;
u_xlati13 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu3.yx;
u_xlatb13 = u_xlatb15;
}
if((uint(u_xlati13))==uint(0)){
u_xlatu14.x = 0x0u;
}
if((u_xlatu14.x)!=uint(0)){
u_xlat2.x = as_type<float>(int(0x7fffffffu));
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu3.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati13 = 0x0;
while(true){
u_xlatb15 = u_xlatu14.y>=cbTranslationTableData.numAddedTiles;
u_xlati13 = 0x0;
if(u_xlatb15){break;}
u_xlatu15 = u_xlatu14.y >> 0x1u;
u_xlatu21 = bitFieldInsert(0x1u, 0x1u, u_xlatu14.y, 0x0u);
u_xlati4.x = int((u_xlatu21<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati4.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu15)].xz);
u_xlati4.x = int(uint(u_xlati4.y) | uint(u_xlati4.x));
u_xlatb4 = u_xlati12.x==u_xlati4.x;
if(u_xlatb4){
u_xlati21 = int(u_xlatu21) + 0x1;
u_xlatu21 = uint(u_xlati21) + 0xffffffffu;
u_xlati5.x = int((u_xlatu21<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati15.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu15)].yw);
u_xlatu14.x = uint(u_xlati15.y) | uint(u_xlati15.x);
u_xlati13 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu3.yx;
u_xlatb13 = u_xlatb4;
}
if((uint(u_xlati13))==uint(0)){
u_xlatu14.x = 0xffffffffu;
}
u_xlatb12 = int(u_xlatu14.x)!=int(0xffffffffu);
if(u_xlatb12){
u_xlati12.x = int(u_xlatu14.x & 0xfffffff0u);
u_xlat2.x = as_type<float>(uint(u_xlati12.x) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb12 = as_type<int>(u_xlat2.x)!=int(0x7fffffffu);
if(u_xlatb12){
u_xlati19 = int(0xffffffffu);
}
u_xlat2.x = as_type<float>(int(0x7fffffffu));
}
}
u_xlati12.x = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati12.x))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati19 = int(0xffffffffu);
}
u_xlati12.x = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb12 = u_xlati12.x==int(cbTranslationTableData.invLevel);
if(u_xlatb12){
u_xlatu3.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati12.x = 0x0;
while(true){
u_xlatb13 = u_xlatu14.y>=cbTranslationTableData.numEvictedTiles;
u_xlati12.x = 0x0;
if(u_xlatb13){break;}
u_xlatu13 = u_xlatu14.y >> 0x2u;
u_xlatu15 = u_xlatu14.y & 0x3u;
u_xlati21 = 0 - int(u_xlatu15);
u_xlati4.xyz = int3(uint3((uint3(u_xlatu15)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati5.y = int(uint(u_xlati21) & uint(u_xlati4.y));
u_xlati15.x = int(u_xlatu15) + int(0xfffffffdu);
u_xlati5.z = (u_xlati4.y != 0) ? 0x0 : u_xlati15.x;
u_xlati5.w = int((u_xlati4.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.x = u_xlati4.x;
u_xlati4 = int4(uint4(u_xlati5) & cbTranslationTableData.evictedTiles[int(u_xlatu13)]);
u_xlati15.xy = int2(uint2(u_xlati4.yw) | uint2(u_xlati4.xz));
u_xlati13 = int(uint(u_xlati15.y) | uint(u_xlati15.x));
u_xlatb13 = u_xlati12.y==u_xlati13;
if(u_xlatb13){
u_xlatu14.x = 0xffffffffu;
u_xlati12.x = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu3.yx;
u_xlatb12 = u_xlatb13;
}
if((uint(u_xlati12.x))==uint(0)){
u_xlatu14.x = 0x0u;
}
if((u_xlatu14.x)!=uint(0)){
u_xlat2.y = as_type<float>(int(0x7fffffffu));
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu3.y = 0x0u;
u_xlatu14.x = uint(0x0u);
u_xlatu14.y = uint(0x0u);
u_xlati12.x = 0x0;
while(true){
u_xlatb13 = u_xlatu14.y>=cbTranslationTableData.numAddedTiles;
u_xlati12.x = 0x0;
if(u_xlatb13){break;}
u_xlatu13 = u_xlatu14.y >> 0x1u;
u_xlatu15 = bitFieldInsert(0x1u, 0x1u, u_xlatu14.y, 0x0u);
u_xlati4.x = int((u_xlatu15<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati4.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu13)].xz);
u_xlati21 = int(uint(u_xlati4.y) | uint(u_xlati4.x));
u_xlatb21 = u_xlati12.y==u_xlati21;
if(u_xlatb21){
u_xlati15.x = int(u_xlatu15) + 0x1;
u_xlatu15 = uint(u_xlati15.x) + 0xffffffffu;
u_xlati4.x = int((u_xlatu15<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati4.y = int((u_xlati4.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati4.xy = int2(uint2(u_xlati4.xy) & cbTranslationTableData.addedTiles[int(u_xlatu13)].yw);
u_xlatu14.x = uint(u_xlati4.y) | uint(u_xlati4.x);
u_xlati12.x = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu14.y + 0x1u;
u_xlatu14.xy = u_xlatu3.yx;
u_xlatb12 = u_xlatb21;
}
if((uint(u_xlati12.x))==uint(0)){
u_xlatu14.x = 0xffffffffu;
}
u_xlatb12 = int(u_xlatu14.x)!=int(0xffffffffu);
if(u_xlatb12){
u_xlati12.x = int(u_xlatu14.x & 0xfffffff0u);
u_xlat2.y = as_type<float>(uint(u_xlati12.x) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb12 = as_type<int>(u_xlat2.y)!=int(0x7fffffffu);
if(u_xlatb12){
u_xlati19 = int(0xffffffffu);
}
u_xlat2.y = as_type<float>(int(0x7fffffffu));
}
}
if((uint(u_xlati19))!=uint(0)){
_output_buf[(u_xlati7 >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati1 >> 2)] = as_type<uint>(u_xlat2.y);
translationTable.write(u_xlat2.xyxx, u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿºşÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
int u_xlati0;
uint4 u_xlatu1;
float u_xlat2;
int u_xlati2;
uint u_xlatu2;
bool u_xlatb2;
float4 u_xlat3;
bool u_xlatb4;
float u_xlat5;
int u_xlati5;
int u_xlati7;
bool2 u_xlatb7;
int u_xlati10;
uint2 u_xlatu10;
bool u_xlatb10;
int u_xlati12;
float u_xlat15;
int u_xlati15;
int u_xlati17;
bool u_xlatb17;
u_xlati0 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati5 = u_xlati0 >> 0x2;
u_xlatu1 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatu10.xy = u_xlatu1.xw >> uint2(0x1u, 0x1u);
u_xlatu2 = cbTranslationTableData.width >> 0x1u;
u_xlati10 = int(u_xlatu10.y) * int(u_xlatu2) + int(u_xlatu10.x);
u_xlati10 = u_xlati10 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati15 = u_xlati10 << 0x2;
u_xlat15 = as_type<float>(_output_buf[(u_xlati15 >> 2) + 0]);
u_xlati2 = u_xlati10 + u_xlati5;
u_xlati2 = u_xlati2 << 0x2;
u_xlat2 = as_type<float>(_output_buf[(u_xlati2 >> 2) + 0]);
u_xlati5 = u_xlati5 << 0x1;
u_xlati5 = u_xlati10 + u_xlati5;
u_xlati5 = u_xlati5 << 0x2;
u_xlat5 = as_type<float>(_output_buf[(u_xlati5 >> 2) + 0]);
u_xlatb7.xy = (u_xlatu1.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb10 = u_xlatb7.y || u_xlatb7.x;
if(u_xlatb10){
return;
}
u_xlati10 = int(u_xlatu1.w) * int(cbTranslationTableData.width) + int(u_xlatu1.x);
u_xlati10 = u_xlati10 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati7 = u_xlati10 << 0x2;
u_xlat3.x = as_type<float>(_output_buf[(u_xlati7 >> 2) + 0]);
u_xlati12 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati10;
u_xlati12 = u_xlati12 << 0x2;
u_xlat3.y = as_type<float>(_output_buf[(u_xlati12 >> 2) + 0]);
u_xlati0 = u_xlati0 << 0x1;
u_xlati0 = u_xlati10 + u_xlati0;
u_xlati0 = u_xlati0 << 0x2;
u_xlat3.z = as_type<float>(_output_buf[(u_xlati0 >> 2) + 0]);
u_xlati10 = int(as_type<uint>(u_xlat3.x) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.x = as_type<float>(as_type<uint>(u_xlat3.x) & 0x7fffffffu);
}
u_xlati17 = int(as_type<uint>(u_xlat3.x) & 0xfu);
u_xlatb17 = u_xlati17!=int(cbTranslationTableData.invLevel);
u_xlatb4 = as_type<int>(u_xlat15)!=as_type<int>(u_xlat3.x);
u_xlatb17 = u_xlatb17 && u_xlatb4;
if(u_xlatb17){
u_xlat3.x = u_xlat15;
u_xlati15 = int(0xffffffffu);
} else {
u_xlati15 = int((u_xlati10!=0x0) ? 0xFFFFFFFFu : uint(0));
}
u_xlati10 = int(as_type<uint>(u_xlat3.y) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.y = as_type<float>(as_type<uint>(u_xlat3.y) & 0x7fffffffu);
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.y) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb17 = as_type<int>(u_xlat2)!=as_type<int>(u_xlat3.y);
u_xlatb10 = u_xlatb10 && u_xlatb17;
if(u_xlatb10){
u_xlat3.y = u_xlat2;
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.z) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.z = as_type<float>(as_type<uint>(u_xlat3.z) & 0x7fffffffu);
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.z) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb2 = as_type<int>(u_xlat5)!=as_type<int>(u_xlat3.z);
u_xlatb10 = u_xlatb10 && u_xlatb2;
if(u_xlatb10){
u_xlat3.z = u_xlat5;
u_xlati15 = int(0xffffffffu);
}
if((uint(u_xlati15))!=uint(0)){
_output_buf[(u_xlati7 >> 2)] = as_type<uint>(u_xlat3.x);
_output_buf[(u_xlati12 >> 2)] = as_type<uint>(u_xlat3.y);
_output_buf[(u_xlati0 >> 2)] = as_type<uint>(u_xlat3.z);
u_xlat3.w = as_type<float>(int(0x7fffffffu));
translationTable.write(u_xlat3, u_xlatu1.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ>şÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
int u_xlati0;
uint4 u_xlatu1;
float u_xlat2;
int4 u_xlati2;
uint u_xlatu2;
bool u_xlatb2;
float4 u_xlat3;
int4 u_xlati4;
uint2 u_xlatu4;
int4 u_xlati5;
uint2 u_xlatu5;
int4 u_xlati6;
int4 u_xlati7;
float u_xlat8;
int u_xlati8;
int u_xlati10;
bool2 u_xlatb10;
int u_xlati16;
uint2 u_xlatu16;
bool u_xlatb16;
int u_xlati17;
int u_xlati18;
int2 u_xlati21;
uint2 u_xlatu21;
float u_xlat24;
int u_xlati24;
bool u_xlatb24;
int u_xlati25;
uint u_xlatu25;
bool u_xlatb25;
int u_xlati26;
uint u_xlatu26;
bool u_xlatb26;
int u_xlati28;
bool u_xlatb28;
u_xlati0 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati8 = u_xlati0 >> 0x2;
u_xlatu1.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatu16.xy = u_xlatu1.xy >> uint2(0x1u, 0x1u);
u_xlatu2 = cbTranslationTableData.width >> 0x1u;
u_xlati16 = int(u_xlatu16.y) * int(u_xlatu2) + int(u_xlatu16.x);
u_xlati16 = u_xlati16 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati24 = u_xlati16 << 0x2;
u_xlat24 = as_type<float>(_output_buf[(u_xlati24 >> 2) + 0]);
u_xlati2.x = u_xlati16 + u_xlati8;
u_xlati2.x = u_xlati2.x << 0x2;
u_xlat2 = as_type<float>(_output_buf[(u_xlati2.x >> 2) + 0]);
u_xlati8 = u_xlati8 << 0x1;
u_xlati8 = u_xlati16 + u_xlati8;
u_xlati8 = u_xlati8 << 0x2;
u_xlat8 = as_type<float>(_output_buf[(u_xlati8 >> 2) + 0]);
u_xlatb10.xy = (u_xlatu1.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb16 = u_xlatb10.y || u_xlatb10.x;
if(u_xlatb16){
return;
}
u_xlati16 = int(u_xlatu1.y) * int(cbTranslationTableData.width) + int(u_xlatu1.x);
u_xlati16 = u_xlati16 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati10 = u_xlati16 << 0x2;
u_xlat3.x = as_type<float>(_output_buf[(u_xlati10 >> 2) + 0]);
u_xlati18 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati16;
u_xlati18 = u_xlati18 << 0x2;
u_xlat3.y = as_type<float>(_output_buf[(u_xlati18 >> 2) + 0]);
u_xlati0 = u_xlati0 << 0x1;
u_xlati0 = u_xlati16 + u_xlati0;
u_xlati0 = u_xlati0 << 0x2;
u_xlat3.z = as_type<float>(_output_buf[(u_xlati0 >> 2) + 0]);
u_xlatu1.zw = uint2(cbTranslationTableData.level);
u_xlati4.xyz = int3(lookupTexture.read(u_xlatu1.xy, u_xlatu1.w).xyz);
u_xlati16 = int(as_type<uint>(u_xlat3.x) & 0x80000000u);
u_xlati17 = int((u_xlati16!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati16))!=uint(0)){
u_xlat3.x = as_type<float>(as_type<uint>(u_xlat3.x) & 0x7fffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat3.x) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu5.y = 0x0u;
u_xlatu21.x = uint(0x0u);
u_xlatu21.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb25 = u_xlatu21.y>=cbTranslationTableData.numEvictedTiles;
u_xlati16 = 0x0;
if(u_xlatb25){break;}
u_xlatu25 = u_xlatu21.y >> 0x2u;
u_xlatu26 = u_xlatu21.y & 0x3u;
u_xlati28 = 0 - int(u_xlatu26);
u_xlati6.xyz = int3(uint3((uint3(u_xlatu26)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati7.y = int(uint(u_xlati28) & uint(u_xlati6.y));
u_xlati26 = int(u_xlatu26) + int(0xfffffffdu);
u_xlati7.z = (u_xlati6.y != 0) ? 0x0 : u_xlati26;
u_xlati7.w = int((u_xlati6.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati7.x = u_xlati6.x;
u_xlati6 = int4(uint4(u_xlati7) & cbTranslationTableData.evictedTiles[int(u_xlatu25)]);
u_xlati6.xy = int2(uint2(u_xlati6.yw) | uint2(u_xlati6.xz));
u_xlati25 = int(uint(u_xlati6.y) | uint(u_xlati6.x));
u_xlatb25 = u_xlati4.x==u_xlati25;
if(u_xlatb25){
u_xlatu21.x = 0xffffffffu;
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu21.y + 0x1u;
u_xlatu21.xy = u_xlatu5.yx;
u_xlatb16 = u_xlatb25;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu21.x = 0x0u;
}
if((u_xlatu21.x)!=uint(0)){
u_xlat3.x = u_xlat24;
u_xlati17 = int(0xffffffffu);
}
} else {
u_xlatu5.y = 0x0u;
u_xlatu21.x = uint(0x0u);
u_xlatu21.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb25 = u_xlatu21.y>=cbTranslationTableData.numAddedTiles;
u_xlati16 = 0x0;
if(u_xlatb25){break;}
u_xlatu25 = u_xlatu21.y >> 0x1u;
u_xlatu26 = bitFieldInsert(0x1u, 0x1u, u_xlatu21.y, 0x0u);
u_xlati6.x = int((u_xlatu26<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu25)].xz);
u_xlati28 = int(uint(u_xlati6.y) | uint(u_xlati6.x));
u_xlatb28 = u_xlati4.x==u_xlati28;
if(u_xlatb28){
u_xlati26 = int(u_xlatu26) + 0x1;
u_xlatu26 = uint(u_xlati26) + 0xffffffffu;
u_xlati6.x = int((u_xlatu26<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu25)].yw);
u_xlatu21.x = uint(u_xlati6.y) | uint(u_xlati6.x);
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu21.y + 0x1u;
u_xlatu21.xy = u_xlatu5.yx;
u_xlatb16 = u_xlatb28;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu21.x = 0xffffffffu;
}
u_xlatb16 = int(u_xlatu21.x)!=int(0xffffffffu);
if(u_xlatb16){
u_xlati16 = int(u_xlatu21.x & 0xfffffff0u);
u_xlat3.x = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati17 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat24)!=as_type<int>(u_xlat3.x);
if(u_xlatb16){
u_xlat3.x = u_xlat24;
u_xlati17 = int(0xffffffffu);
}
}
}
u_xlati16 = int(as_type<uint>(u_xlat3.y) & 0x80000000u);
if((uint(u_xlati16))!=uint(0)){
u_xlat3.y = as_type<float>(as_type<uint>(u_xlat3.y) & 0x7fffffffu);
u_xlati17 = int(0xffffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat3.y) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu5.y = 0x0u;
u_xlatu16.x = uint(0x0u);
u_xlatu16.y = uint(0x0u);
u_xlati25 = 0x0;
while(true){
u_xlatb26 = u_xlatu16.y>=cbTranslationTableData.numEvictedTiles;
u_xlati25 = 0x0;
if(u_xlatb26){break;}
u_xlatu26 = u_xlatu16.y >> 0x2u;
u_xlatu4.x = u_xlatu16.y & 0x3u;
u_xlati28 = 0 - int(u_xlatu4.x);
u_xlati6.xyz = int3(uint3((u_xlatu4.xxx<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati7.y = int(uint(u_xlati28) & uint(u_xlati6.y));
u_xlati4.x = int(u_xlatu4.x) + int(0xfffffffdu);
u_xlati7.z = (u_xlati6.y != 0) ? 0x0 : u_xlati4.x;
u_xlati7.w = int((u_xlati6.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati7.x = u_xlati6.x;
u_xlati6 = int4(uint4(u_xlati7) & cbTranslationTableData.evictedTiles[int(u_xlatu26)]);
u_xlati4.xw = int2(uint2(u_xlati6.yw) | uint2(u_xlati6.xz));
u_xlati26 = int(uint(u_xlati4.w) | uint(u_xlati4.x));
u_xlatb26 = u_xlati4.y==u_xlati26;
if(u_xlatb26){
u_xlatu16.x = 0xffffffffu;
u_xlati25 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu16.y + 0x1u;
u_xlatu16.xy = u_xlatu5.yx;
u_xlatb25 = u_xlatb26;
}
if((uint(u_xlati25))==uint(0)){
u_xlatu16.x = 0x0u;
}
if((u_xlatu16.x)!=uint(0)){
u_xlat3.y = u_xlat2;
u_xlati17 = int(0xffffffffu);
}
} else {
u_xlatu5.y = 0x0u;
u_xlatu16.x = uint(0x0u);
u_xlatu16.y = uint(0x0u);
u_xlati25 = 0x0;
while(true){
u_xlatb26 = u_xlatu16.y>=cbTranslationTableData.numAddedTiles;
u_xlati25 = 0x0;
if(u_xlatb26){break;}
u_xlatu26 = u_xlatu16.y >> 0x1u;
u_xlatu4.x = bitFieldInsert(0x1u, 0x1u, u_xlatu16.y, 0x0u);
u_xlati6.x = int((u_xlatu4.x<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati21.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu26)].xz);
u_xlati28 = int(uint(u_xlati21.y) | uint(u_xlati21.x));
u_xlatb28 = u_xlati4.y==u_xlati28;
if(u_xlatb28){
u_xlati4.x = int(u_xlatu4.x) + 0x1;
u_xlatu4.x = uint(u_xlati4.x) + 0xffffffffu;
u_xlati6.x = int((u_xlatu4.x<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati21.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu26)].yw);
u_xlatu16.x = uint(u_xlati21.y) | uint(u_xlati21.x);
u_xlati25 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu16.y + 0x1u;
u_xlatu16.xy = u_xlatu5.yx;
u_xlatb25 = u_xlatb28;
}
if((uint(u_xlati25))==uint(0)){
u_xlatu16.x = 0xffffffffu;
}
u_xlatb24 = int(u_xlatu16.x)!=int(0xffffffffu);
if(u_xlatb24){
u_xlati16 = int(u_xlatu16.x & 0xfffffff0u);
u_xlat3.y = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati17 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat2)!=as_type<int>(u_xlat3.y);
if(u_xlatb16){
u_xlat3.y = u_xlat2;
u_xlati17 = int(0xffffffffu);
}
}
}
u_xlati16 = int(as_type<uint>(u_xlat3.z) & 0x80000000u);
if((uint(u_xlati16))!=uint(0)){
u_xlat3.z = as_type<float>(as_type<uint>(u_xlat3.z) & 0x7fffffffu);
u_xlati17 = int(0xffffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat3.z) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu4.y = 0x0u;
u_xlatu16.x = uint(0x0u);
u_xlatu16.y = uint(0x0u);
u_xlati25 = 0x0;
while(true){
u_xlatb2 = u_xlatu16.y>=cbTranslationTableData.numEvictedTiles;
u_xlati25 = 0x0;
if(u_xlatb2){break;}
u_xlatu2 = u_xlatu16.y >> 0x2u;
u_xlatu26 = u_xlatu16.y & 0x3u;
u_xlati28 = 0 - int(u_xlatu26);
u_xlati5.xyz = int3(uint3((uint3(u_xlatu26)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati28) & uint(u_xlati5.y));
u_xlati26 = int(u_xlatu26) + int(0xfffffffdu);
u_xlati6.z = (u_xlati5.y != 0) ? 0x0 : u_xlati26;
u_xlati6.w = int((u_xlati5.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati5.x;
u_xlati5 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu2)]);
u_xlati2.xw = int2(uint2(u_xlati5.yw) | uint2(u_xlati5.xz));
u_xlati2.x = int(uint(u_xlati2.w) | uint(u_xlati2.x));
u_xlatb2 = u_xlati4.z==u_xlati2.x;
if(u_xlatb2){
u_xlatu16.x = 0xffffffffu;
u_xlati25 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu16.y + 0x1u;
u_xlatu16.xy = u_xlatu4.yx;
u_xlatb25 = u_xlatb2;
}
if((uint(u_xlati25))==uint(0)){
u_xlatu16.x = 0x0u;
}
if((u_xlatu16.x)!=uint(0)){
u_xlat3.z = u_xlat8;
u_xlati17 = int(0xffffffffu);
}
} else {
u_xlatu4.y = 0x0u;
u_xlatu16.x = uint(0x0u);
u_xlatu16.y = uint(0x0u);
u_xlati25 = 0x0;
while(true){
u_xlatb2 = u_xlatu16.y>=cbTranslationTableData.numAddedTiles;
u_xlati25 = 0x0;
if(u_xlatb2){break;}
u_xlatu2 = u_xlatu16.y >> 0x1u;
u_xlatu26 = bitFieldInsert(0x1u, 0x1u, u_xlatu16.y, 0x0u);
u_xlati5.x = int((u_xlatu26<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu2)].xz);
u_xlati28 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb28 = u_xlati4.z==u_xlati28;
if(u_xlatb28){
u_xlati26 = int(u_xlatu26) + 0x1;
u_xlatu26 = uint(u_xlati26) + 0xffffffffu;
u_xlati5.x = int((u_xlatu26<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati2.xw = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu2)].yw);
u_xlatu16.x = uint(u_xlati2.w) | uint(u_xlati2.x);
u_xlati25 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu16.y + 0x1u;
u_xlatu16.xy = u_xlatu4.yx;
u_xlatb25 = u_xlatb28;
}
if((uint(u_xlati25))==uint(0)){
u_xlatu16.x = 0xffffffffu;
}
u_xlatb24 = int(u_xlatu16.x)!=int(0xffffffffu);
if(u_xlatb24){
u_xlati16 = int(u_xlatu16.x & 0xfffffff0u);
u_xlat3.z = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati17 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat8)!=as_type<int>(u_xlat3.z);
if(u_xlatb16){
u_xlat3.z = u_xlat8;
u_xlati17 = int(0xffffffffu);
}
}
}
if((uint(u_xlati17))!=uint(0)){
_output_buf[(u_xlati10 >> 2)] = as_type<uint>(u_xlat3.x);
_output_buf[(u_xlati18 >> 2)] = as_type<uint>(u_xlat3.y);
_output_buf[(u_xlati0 >> 2)] = as_type<uint>(u_xlat3.z);
u_xlat3.w = as_type<float>(int(0x7fffffffu));
translationTable.write(u_xlat3, u_xlatu1.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿişÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int3 u_xlati1;
bool2 u_xlatb1;
float4 u_xlat2;
int u_xlati3;
bool u_xlatb3;
int u_xlati5;
bool u_xlatb5;
bool u_xlatb7;
int u_xlati13;
u_xlatu0 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatb1.xy = (u_xlatu0.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1.x = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati5 = int(u_xlatu0.w) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati1.y = u_xlati5 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati1.xz = u_xlati1.xy << int2(0x1, 0x2);
u_xlat2.x = as_type<float>(_output_buf[(u_xlati1.z >> 2) + 0]);
u_xlati13 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati1.y;
u_xlati13 = u_xlati13 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati13 >> 2) + 0]);
u_xlati1.x = u_xlati1.y + u_xlati1.x;
u_xlati1.x = u_xlati1.x << 0x2;
u_xlat2.z = as_type<float>(_output_buf[(u_xlati1.x >> 2) + 0]);
u_xlati5 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati3 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb3 = u_xlati3!=int(cbTranslationTableData.invLevel);
u_xlatb7 = as_type<int>(u_xlat2.x)!=int(0x7fffffffu);
u_xlatb3 = u_xlatb7 && u_xlatb3;
if(u_xlatb3){
u_xlat2.x = as_type<float>(int(0x7fffffffu));
u_xlati3 = int(0xffffffffu);
} else {
u_xlati3 = int((u_xlati5!=0x0) ? 0xFFFFFFFFu : uint(0));
}
u_xlati5 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati3 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb5 = u_xlati5!=int(cbTranslationTableData.invLevel);
u_xlatb7 = as_type<int>(u_xlat2.y)!=int(0x7fffffffu);
u_xlatb5 = u_xlatb5 && u_xlatb7;
if(u_xlatb5){
u_xlat2.y = as_type<float>(int(0x7fffffffu));
u_xlati3 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.z) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.z = as_type<float>(as_type<uint>(u_xlat2.z) & 0x7fffffffu);
u_xlati3 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.z) & 0xfu);
u_xlatb5 = u_xlati5!=int(cbTranslationTableData.invLevel);
u_xlatb7 = as_type<int>(u_xlat2.z)!=int(0x7fffffffu);
u_xlatb5 = u_xlatb5 && u_xlatb7;
if(u_xlatb5){
u_xlat2.z = as_type<float>(int(0x7fffffffu));
u_xlati3 = int(0xffffffffu);
}
if((uint(u_xlati3))!=uint(0)){
_output_buf[(u_xlati1.z >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati13 >> 2)] = as_type<uint>(u_xlat2.y);
_output_buf[(u_xlati1.x >> 2)] = as_type<uint>(u_xlat2.z);
u_xlat2.w = as_type<float>(int(0x7fffffffu));
translationTable.write(u_xlat2, u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿğ:şÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int3 u_xlati1;
bool2 u_xlatb1;
float4 u_xlat2;
int3 u_xlati3;
uint4 u_xlatu3;
uint2 u_xlatu4;
int4 u_xlati5;
bool u_xlatb5;
int4 u_xlati6;
int u_xlati8;
uint u_xlatu8;
bool u_xlatb8;
int3 u_xlati12;
int u_xlati14;
bool u_xlatb14;
int2 u_xlati18;
uint2 u_xlatu18;
bool u_xlatb18;
int u_xlati21;
int u_xlati22;
int u_xlati24;
uint u_xlatu24;
int u_xlati25;
bool u_xlatb25;
u_xlatu0.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatb1.xy = (u_xlatu0.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1.x = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati8 = int(u_xlatu0.y) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati1.y = u_xlati8 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati1.xz = u_xlati1.xy << int2(0x1, 0x2);
u_xlat2.x = as_type<float>(_output_buf[(u_xlati1.z >> 2) + 0]);
u_xlati22 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati1.y;
u_xlati22 = u_xlati22 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati22 >> 2) + 0]);
u_xlati1.x = u_xlati1.y + u_xlati1.x;
u_xlati1.x = u_xlati1.x << 0x2;
u_xlat2.z = as_type<float>(_output_buf[(u_xlati1.x >> 2) + 0]);
u_xlatu0.zw = uint2(cbTranslationTableData.level);
u_xlati3.xyz = int3(lookupTexture.read(u_xlatu0.xy, u_xlatu0.w).xyz);
u_xlati14 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
u_xlati21 = int((u_xlati14!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati14))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati14 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb14 = u_xlati14==int(cbTranslationTableData.invLevel);
if(u_xlatb14){
u_xlatu4.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb8 = u_xlatu18.y>=cbTranslationTableData.numEvictedTiles;
u_xlati14 = 0x0;
if(u_xlatb8){break;}
u_xlatu8 = u_xlatu18.y >> 0x2u;
u_xlatu24 = u_xlatu18.y & 0x3u;
u_xlati5.x = 0 - int(u_xlatu24);
u_xlati12.xyz = int3(uint3((uint3(u_xlatu24)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati5.x) & uint(u_xlati12.y));
u_xlati24 = int(u_xlatu24) + int(0xfffffffdu);
u_xlati6.z = (u_xlati12.y != 0) ? 0x0 : u_xlati24;
u_xlati6.w = int((u_xlati12.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati12.x;
u_xlati5 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu8)]);
u_xlati5.xy = int2(uint2(u_xlati5.yw) | uint2(u_xlati5.xz));
u_xlati8 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb8 = u_xlati3.x==u_xlati8;
if(u_xlatb8){
u_xlatu18.x = 0xffffffffu;
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu4.yx;
u_xlatb14 = u_xlatb8;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu18.x = 0x0u;
}
if((u_xlatu18.x)!=uint(0)){
u_xlat2.x = as_type<float>(int(0x7fffffffu));
u_xlati21 = int(0xffffffffu);
}
} else {
u_xlatu4.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb8 = u_xlatu18.y>=cbTranslationTableData.numAddedTiles;
u_xlati14 = 0x0;
if(u_xlatb8){break;}
u_xlatu8 = u_xlatu18.y >> 0x1u;
u_xlatu24 = bitFieldInsert(0x1u, 0x1u, u_xlatu18.y, 0x0u);
u_xlati5.x = int((u_xlatu24<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu8)].xz);
u_xlati5.x = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb5 = u_xlati3.x==u_xlati5.x;
if(u_xlatb5){
u_xlati24 = int(u_xlatu24) + 0x1;
u_xlatu24 = uint(u_xlati24) + 0xffffffffu;
u_xlati6.x = int((u_xlatu24<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati12.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu8)].yw);
u_xlatu18.x = uint(u_xlati12.y) | uint(u_xlati12.x);
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu4.yx;
u_xlatb14 = u_xlatb5;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu18.x = 0xffffffffu;
}
u_xlatb14 = int(u_xlatu18.x)!=int(0xffffffffu);
if(u_xlatb14){
u_xlati14 = int(u_xlatu18.x & 0xfffffff0u);
u_xlat2.x = as_type<float>(uint(u_xlati14) | cbTranslationTableData.invLevel);
u_xlati21 = int(0xffffffffu);
} else {
u_xlatb14 = as_type<int>(u_xlat2.x)!=int(0x7fffffffu);
if(u_xlatb14){
u_xlati21 = int(0xffffffffu);
}
u_xlat2.x = as_type<float>(int(0x7fffffffu));
}
}
u_xlati14 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati14))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati21 = int(0xffffffffu);
}
u_xlati14 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb14 = u_xlati14==int(cbTranslationTableData.invLevel);
if(u_xlatb14){
u_xlatu4.y = 0x0u;
u_xlatu3.x = uint(0x0u);
u_xlatu3.w = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb8 = u_xlatu3.w>=cbTranslationTableData.numEvictedTiles;
u_xlati14 = 0x0;
if(u_xlatb8){break;}
u_xlatu8 = u_xlatu3.w >> 0x2u;
u_xlatu18.x = u_xlatu3.w & 0x3u;
u_xlati25 = 0 - int(u_xlatu18.x);
u_xlati5.xyz = int3(uint3((u_xlatu18.xxx<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati25) & uint(u_xlati5.y));
u_xlati18.x = int(u_xlatu18.x) + int(0xfffffffdu);
u_xlati6.z = (u_xlati5.y != 0) ? 0x0 : u_xlati18.x;
u_xlati6.w = int((u_xlati5.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati5.x;
u_xlati5 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu8)]);
u_xlati18.xy = int2(uint2(u_xlati5.yw) | uint2(u_xlati5.xz));
u_xlati8 = int(uint(u_xlati18.y) | uint(u_xlati18.x));
u_xlatb8 = u_xlati3.y==u_xlati8;
if(u_xlatb8){
u_xlatu3.x = 0xffffffffu;
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu3.w + 0x1u;
u_xlatu3.xw = u_xlatu4.yx;
u_xlatb14 = u_xlatb8;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu3.x = 0x0u;
}
if((u_xlatu3.x)!=uint(0)){
u_xlat2.y = as_type<float>(int(0x7fffffffu));
u_xlati21 = int(0xffffffffu);
}
} else {
u_xlatu4.y = 0x0u;
u_xlatu3.x = uint(0x0u);
u_xlatu3.w = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb8 = u_xlatu3.w>=cbTranslationTableData.numAddedTiles;
u_xlati14 = 0x0;
if(u_xlatb8){break;}
u_xlatu8 = u_xlatu3.w >> 0x1u;
u_xlatu18.x = bitFieldInsert(0x1u, 0x1u, u_xlatu3.w, 0x0u);
u_xlati5.x = int((u_xlatu18.x<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu8)].xz);
u_xlati25 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb25 = u_xlati3.y==u_xlati25;
if(u_xlatb25){
u_xlati18.x = int(u_xlatu18.x) + 0x1;
u_xlatu18.x = uint(u_xlati18.x) + 0xffffffffu;
u_xlati5.x = int((u_xlatu18.x<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu8)].yw);
u_xlatu3.x = uint(u_xlati5.y) | uint(u_xlati5.x);
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu3.w + 0x1u;
u_xlatu3.xw = u_xlatu4.yx;
u_xlatb14 = u_xlatb25;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu3.x = 0xffffffffu;
}
u_xlatb14 = int(u_xlatu3.x)!=int(0xffffffffu);
if(u_xlatb14){
u_xlati14 = int(u_xlatu3.x & 0xfffffff0u);
u_xlat2.y = as_type<float>(uint(u_xlati14) | cbTranslationTableData.invLevel);
u_xlati21 = int(0xffffffffu);
} else {
u_xlatb14 = as_type<int>(u_xlat2.y)!=int(0x7fffffffu);
if(u_xlatb14){
u_xlati21 = int(0xffffffffu);
}
u_xlat2.y = as_type<float>(int(0x7fffffffu));
}
}
u_xlati14 = int(as_type<uint>(u_xlat2.z) & 0x80000000u);
if((uint(u_xlati14))!=uint(0)){
u_xlat2.z = as_type<float>(as_type<uint>(u_xlat2.z) & 0x7fffffffu);
u_xlati21 = int(0xffffffffu);
}
u_xlati14 = int(as_type<uint>(u_xlat2.z) & 0xfu);
u_xlatb14 = u_xlati14==int(cbTranslationTableData.invLevel);
if(u_xlatb14){
u_xlatu3.y = 0x0u;
u_xlatu4.x = uint(0x0u);
u_xlatu4.y = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb8 = u_xlatu4.y>=cbTranslationTableData.numEvictedTiles;
u_xlati14 = 0x0;
if(u_xlatb8){break;}
u_xlatu8 = u_xlatu4.y >> 0x2u;
u_xlatu24 = u_xlatu4.y & 0x3u;
u_xlati18.x = 0 - int(u_xlatu24);
u_xlati5.xyz = int3(uint3((uint3(u_xlatu24)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati18.x) & uint(u_xlati5.y));
u_xlati24 = int(u_xlatu24) + int(0xfffffffdu);
u_xlati6.z = (u_xlati5.y != 0) ? 0x0 : u_xlati24;
u_xlati6.w = int((u_xlati5.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati5.x;
u_xlati5 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu8)]);
u_xlati18.xy = int2(uint2(u_xlati5.yw) | uint2(u_xlati5.xz));
u_xlati8 = int(uint(u_xlati18.y) | uint(u_xlati18.x));
u_xlatb8 = u_xlati3.z==u_xlati8;
if(u_xlatb8){
u_xlatu4.x = 0xffffffffu;
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu4.y + 0x1u;
u_xlatu4.xy = u_xlatu3.yx;
u_xlatb14 = u_xlatb8;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu4.x = 0x0u;
}
if((u_xlatu4.x)!=uint(0)){
u_xlat2.z = as_type<float>(int(0x7fffffffu));
u_xlati21 = int(0xffffffffu);
}
} else {
u_xlatu3.y = 0x0u;
u_xlatu4.x = uint(0x0u);
u_xlatu4.y = uint(0x0u);
u_xlati14 = 0x0;
while(true){
u_xlatb8 = u_xlatu4.y>=cbTranslationTableData.numAddedTiles;
u_xlati14 = 0x0;
if(u_xlatb8){break;}
u_xlatu8 = u_xlatu4.y >> 0x1u;
u_xlatu24 = bitFieldInsert(0x1u, 0x1u, u_xlatu4.y, 0x0u);
u_xlati5.x = int((u_xlatu24<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati18.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu8)].xz);
u_xlati18.x = int(uint(u_xlati18.y) | uint(u_xlati18.x));
u_xlatb18 = u_xlati3.z==u_xlati18.x;
if(u_xlatb18){
u_xlati24 = int(u_xlatu24) + 0x1;
u_xlatu24 = uint(u_xlati24) + 0xffffffffu;
u_xlati5.x = int((u_xlatu24<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu8)].yw);
u_xlatu4.x = uint(u_xlati5.y) | uint(u_xlati5.x);
u_xlati14 = int(0xffffffffu);
break;
}
u_xlatu3.x = u_xlatu4.y + 0x1u;
u_xlatu4.xy = u_xlatu3.yx;
u_xlatb14 = u_xlatb18;
}
if((uint(u_xlati14))==uint(0)){
u_xlatu4.x = 0xffffffffu;
}
u_xlatb14 = int(u_xlatu4.x)!=int(0xffffffffu);
if(u_xlatb14){
u_xlati14 = int(u_xlatu4.x & 0xfffffff0u);
u_xlat2.z = as_type<float>(uint(u_xlati14) | cbTranslationTableData.invLevel);
u_xlati21 = int(0xffffffffu);
} else {
u_xlatb14 = as_type<int>(u_xlat2.z)!=int(0x7fffffffu);
if(u_xlatb14){
u_xlati21 = int(0xffffffffu);
}
u_xlat2.z = as_type<float>(int(0x7fffffffu));
}
}
if((uint(u_xlati21))!=uint(0)){
_output_buf[(u_xlati1.z >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati22 >> 2)] = as_type<uint>(u_xlat2.y);
_output_buf[(u_xlati1.x >> 2)] = as_type<uint>(u_xlat2.z);
u_xlat2.w = as_type<float>(int(0x7fffffffu));
translationTable.write(u_xlat2, u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ'şÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
int u_xlati0;
uint4 u_xlatu1;
float u_xlat2;
int u_xlati2;
uint u_xlatu2;
bool u_xlatb2;
float4 u_xlat3;
int u_xlati4;
float u_xlat5;
int u_xlati5;
float u_xlat7;
int u_xlati7;
int u_xlati9;
bool u_xlatb9;
int u_xlati10;
uint2 u_xlatu10;
bool u_xlatb10;
int u_xlati12;
bool2 u_xlatb12;
bool u_xlatb14;
float u_xlat15;
int u_xlati15;
int u_xlati17;
u_xlati0 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati5 = u_xlati0 >> 0x2;
u_xlatu1 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatu10.xy = u_xlatu1.xw >> uint2(0x1u, 0x1u);
u_xlatu2 = cbTranslationTableData.width >> 0x1u;
u_xlati10 = int(u_xlatu10.y) * int(u_xlatu2) + int(u_xlatu10.x);
u_xlati10 = u_xlati10 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati15 = u_xlati10 << 0x2;
u_xlat15 = as_type<float>(_output_buf[(u_xlati15 >> 2) + 0]);
u_xlati2 = u_xlati10 + u_xlati5;
u_xlati2 = u_xlati2 << 0x2;
u_xlat2 = as_type<float>(_output_buf[(u_xlati2 >> 2) + 0]);
u_xlati7 = u_xlati5 << 0x1;
u_xlati7 = u_xlati10 + u_xlati7;
u_xlati7 = u_xlati7 << 0x2;
u_xlat7 = as_type<float>(_output_buf[(u_xlati7 >> 2) + 0]);
u_xlati5 = u_xlati5 * 0x3 + u_xlati10;
u_xlati5 = u_xlati5 << 0x2;
u_xlat5 = as_type<float>(_output_buf[(u_xlati5 >> 2) + 0]);
u_xlatb12.xy = (u_xlatu1.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb10 = u_xlatb12.y || u_xlatb12.x;
if(u_xlatb10){
return;
}
u_xlati10 = int(u_xlatu1.w) * int(cbTranslationTableData.width) + int(u_xlatu1.x);
u_xlati10 = u_xlati10 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati12 = u_xlati10 << 0x2;
u_xlat3.x = as_type<float>(_output_buf[(u_xlati12 >> 2) + 0]);
u_xlati17 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati10;
u_xlati17 = u_xlati17 << 0x2;
u_xlat3.y = as_type<float>(_output_buf[(u_xlati17 >> 2) + 0]);
u_xlati4 = u_xlati0 << 0x1;
u_xlati4 = u_xlati10 + u_xlati4;
u_xlati4 = u_xlati4 << 0x2;
u_xlat3.z = as_type<float>(_output_buf[(u_xlati4 >> 2) + 0]);
u_xlati0 = u_xlati0 * 0x3 + u_xlati10;
u_xlati0 = u_xlati0 << 0x2;
u_xlat3.w = as_type<float>(_output_buf[(u_xlati0 >> 2) + 0]);
u_xlati10 = int(as_type<uint>(u_xlat3.x) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.x = as_type<float>(as_type<uint>(u_xlat3.x) & 0x7fffffffu);
}
u_xlati9 = int(as_type<uint>(u_xlat3.x) & 0xfu);
u_xlatb9 = u_xlati9!=int(cbTranslationTableData.invLevel);
u_xlatb14 = as_type<int>(u_xlat15)!=as_type<int>(u_xlat3.x);
u_xlatb9 = u_xlatb14 && u_xlatb9;
if(u_xlatb9){
u_xlat3.x = u_xlat15;
u_xlati15 = int(0xffffffffu);
} else {
u_xlati15 = int((u_xlati10!=0x0) ? 0xFFFFFFFFu : uint(0));
}
u_xlati10 = int(as_type<uint>(u_xlat3.y) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.y = as_type<float>(as_type<uint>(u_xlat3.y) & 0x7fffffffu);
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.y) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb9 = as_type<int>(u_xlat2)!=as_type<int>(u_xlat3.y);
u_xlatb10 = u_xlatb10 && u_xlatb9;
if(u_xlatb10){
u_xlat3.y = u_xlat2;
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.z) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.z = as_type<float>(as_type<uint>(u_xlat3.z) & 0x7fffffffu);
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.z) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb2 = as_type<int>(u_xlat7)!=as_type<int>(u_xlat3.z);
u_xlatb10 = u_xlatb10 && u_xlatb2;
if(u_xlatb10){
u_xlat3.z = u_xlat7;
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.w) & 0x80000000u);
if((uint(u_xlati10))!=uint(0)){
u_xlat3.w = as_type<float>(as_type<uint>(u_xlat3.w) & 0x7fffffffu);
u_xlati15 = int(0xffffffffu);
}
u_xlati10 = int(as_type<uint>(u_xlat3.w) & 0xfu);
u_xlatb10 = u_xlati10!=int(cbTranslationTableData.invLevel);
u_xlatb2 = as_type<int>(u_xlat5)!=as_type<int>(u_xlat3.w);
u_xlatb10 = u_xlatb10 && u_xlatb2;
if(u_xlatb10){
u_xlat3.w = u_xlat5;
u_xlati15 = int(0xffffffffu);
}
if((uint(u_xlati15))!=uint(0)){
_output_buf[(u_xlati12 >> 2)] = as_type<uint>(u_xlat3.x);
_output_buf[(u_xlati17 >> 2)] = as_type<uint>(u_xlat3.y);
_output_buf[(u_xlati4 >> 2)] = as_type<uint>(u_xlat3.z);
_output_buf[(u_xlati0 >> 2)] = as_type<uint>(u_xlat3.w);
translationTable.write(u_xlat3, u_xlatu1.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ³OşÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
int u_xlati0;
uint4 u_xlatu1;
float u_xlat2;
int u_xlati2;
uint2 u_xlatu2;
bool u_xlatb2;
float4 u_xlat3;
int u_xlati4;
int4 u_xlati5;
uint2 u_xlatu5;
int4 u_xlati6;
uint2 u_xlatu6;
int4 u_xlati7;
int4 u_xlati8;
float u_xlat9;
int u_xlati9;
float u_xlat11;
int u_xlati11;
int3 u_xlati13;
uint2 u_xlatu13;
bool u_xlatb13;
int u_xlati18;
uint2 u_xlatu18;
bool u_xlatb18;
int u_xlati19;
int u_xlati20;
bool2 u_xlatb20;
int2 u_xlati22;
uint u_xlatu22;
bool u_xlatb22;
int2 u_xlati24;
bool u_xlatb24;
float u_xlat27;
int u_xlati27;
bool u_xlatb27;
int u_xlati28;
uint u_xlatu28;
bool u_xlatb28;
int u_xlati29;
int u_xlati31;
uint u_xlatu31;
bool u_xlatb31;
u_xlati0 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati9 = u_xlati0 >> 0x2;
u_xlatu1.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatu18.xy = u_xlatu1.xy >> uint2(0x1u, 0x1u);
u_xlatu2.x = cbTranslationTableData.width >> 0x1u;
u_xlati18 = int(u_xlatu18.y) * int(u_xlatu2.x) + int(u_xlatu18.x);
u_xlati18 = u_xlati18 + int(cbTranslationTableData.bufferOffsetLevelAbove);
u_xlati27 = u_xlati18 << 0x2;
u_xlat27 = as_type<float>(_output_buf[(u_xlati27 >> 2) + 0]);
u_xlati2 = u_xlati18 + u_xlati9;
u_xlati2 = u_xlati2 << 0x2;
u_xlat2 = as_type<float>(_output_buf[(u_xlati2 >> 2) + 0]);
u_xlati11 = u_xlati9 << 0x1;
u_xlati11 = u_xlati18 + u_xlati11;
u_xlati11 = u_xlati11 << 0x2;
u_xlat11 = as_type<float>(_output_buf[(u_xlati11 >> 2) + 0]);
u_xlati9 = u_xlati9 * 0x3 + u_xlati18;
u_xlati9 = u_xlati9 << 0x2;
u_xlat9 = as_type<float>(_output_buf[(u_xlati9 >> 2) + 0]);
u_xlatb20.xy = (u_xlatu1.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb18 = u_xlatb20.y || u_xlatb20.x;
if(u_xlatb18){
return;
}
u_xlati18 = int(u_xlatu1.y) * int(cbTranslationTableData.width) + int(u_xlatu1.x);
u_xlati18 = u_xlati18 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati20 = u_xlati18 << 0x2;
u_xlat3.x = as_type<float>(_output_buf[(u_xlati20 >> 2) + 0]);
u_xlati29 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati18;
u_xlati29 = u_xlati29 << 0x2;
u_xlat3.y = as_type<float>(_output_buf[(u_xlati29 >> 2) + 0]);
u_xlati4 = u_xlati0 << 0x1;
u_xlati4 = u_xlati18 + u_xlati4;
u_xlati4 = u_xlati4 << 0x2;
u_xlat3.z = as_type<float>(_output_buf[(u_xlati4 >> 2) + 0]);
u_xlati0 = u_xlati0 * 0x3 + u_xlati18;
u_xlati0 = u_xlati0 << 0x2;
u_xlat3.w = as_type<float>(_output_buf[(u_xlati0 >> 2) + 0]);
u_xlatu1.zw = uint2(cbTranslationTableData.level);
u_xlati5 = int4(lookupTexture.read(u_xlatu1.xy, u_xlatu1.w));
u_xlati18 = int(as_type<uint>(u_xlat3.x) & 0x80000000u);
u_xlati19 = int((u_xlati18!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati18))!=uint(0)){
u_xlat3.x = as_type<float>(as_type<uint>(u_xlat3.x) & 0x7fffffffu);
}
u_xlati18 = int(as_type<uint>(u_xlat3.x) & 0xfu);
u_xlatb18 = u_xlati18==int(cbTranslationTableData.invLevel);
if(u_xlatb18){
u_xlatu6.y = 0x0u;
u_xlatu13.x = uint(0x0u);
u_xlatu13.y = uint(0x0u);
u_xlati18 = 0x0;
while(true){
u_xlatb28 = u_xlatu13.y>=cbTranslationTableData.numEvictedTiles;
u_xlati18 = 0x0;
if(u_xlatb28){break;}
u_xlatu28 = u_xlatu13.y >> 0x2u;
u_xlatu31 = u_xlatu13.y & 0x3u;
u_xlati24.x = 0 - int(u_xlatu31);
u_xlati7.xyz = int3(uint3((uint3(u_xlatu31)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati8.y = int(uint(u_xlati24.x) & uint(u_xlati7.y));
u_xlati31 = int(u_xlatu31) + int(0xfffffffdu);
u_xlati8.z = (u_xlati7.y != 0) ? 0x0 : u_xlati31;
u_xlati8.w = int((u_xlati7.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati8.x = u_xlati7.x;
u_xlati7 = int4(uint4(u_xlati8) & cbTranslationTableData.evictedTiles[int(u_xlatu28)]);
u_xlati24.xy = int2(uint2(u_xlati7.yw) | uint2(u_xlati7.xz));
u_xlati28 = int(uint(u_xlati24.y) | uint(u_xlati24.x));
u_xlatb28 = u_xlati5.x==u_xlati28;
if(u_xlatb28){
u_xlatu13.x = 0xffffffffu;
u_xlati18 = int(0xffffffffu);
break;
}
u_xlatu6.x = u_xlatu13.y + 0x1u;
u_xlatu13.xy = u_xlatu6.yx;
u_xlatb18 = u_xlatb28;
}
if((uint(u_xlati18))==uint(0)){
u_xlatu13.x = 0x0u;
}
if((u_xlatu13.x)!=uint(0)){
u_xlat3.x = u_xlat27;
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu6.y = 0x0u;
u_xlatu13.x = uint(0x0u);
u_xlatu13.y = uint(0x0u);
u_xlati18 = 0x0;
while(true){
u_xlatb28 = u_xlatu13.y>=cbTranslationTableData.numAddedTiles;
u_xlati18 = 0x0;
if(u_xlatb28){break;}
u_xlatu28 = u_xlatu13.y >> 0x1u;
u_xlatu31 = bitFieldInsert(0x1u, 0x1u, u_xlatu13.y, 0x0u);
u_xlati7.x = int((u_xlatu31<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati7.y = int((u_xlati7.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati24.xy = int2(uint2(u_xlati7.xy) & cbTranslationTableData.addedTiles[int(u_xlatu28)].xz);
u_xlati24.x = int(uint(u_xlati24.y) | uint(u_xlati24.x));
u_xlatb24 = u_xlati5.x==u_xlati24.x;
if(u_xlatb24){
u_xlati31 = int(u_xlatu31) + 0x1;
u_xlatu31 = uint(u_xlati31) + 0xffffffffu;
u_xlati7.x = int((u_xlatu31<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati7.y = int((u_xlati7.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati7.xy = int2(uint2(u_xlati7.xy) & cbTranslationTableData.addedTiles[int(u_xlatu28)].yw);
u_xlatu13.x = uint(u_xlati7.y) | uint(u_xlati7.x);
u_xlati18 = int(0xffffffffu);
break;
}
u_xlatu6.x = u_xlatu13.y + 0x1u;
u_xlatu13.xy = u_xlatu6.yx;
u_xlatb18 = u_xlatb24;
}
if((uint(u_xlati18))==uint(0)){
u_xlatu13.x = 0xffffffffu;
}
u_xlatb18 = int(u_xlatu13.x)!=int(0xffffffffu);
if(u_xlatb18){
u_xlati18 = int(u_xlatu13.x & 0xfffffff0u);
u_xlat3.x = as_type<float>(uint(u_xlati18) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb18 = as_type<int>(u_xlat27)!=as_type<int>(u_xlat3.x);
if(u_xlatb18){
u_xlat3.x = u_xlat27;
u_xlati19 = int(0xffffffffu);
}
}
}
u_xlati18 = int(as_type<uint>(u_xlat3.y) & 0x80000000u);
if((uint(u_xlati18))!=uint(0)){
u_xlat3.y = as_type<float>(as_type<uint>(u_xlat3.y) & 0x7fffffffu);
u_xlati19 = int(0xffffffffu);
}
u_xlati18 = int(as_type<uint>(u_xlat3.y) & 0xfu);
u_xlatb18 = u_xlati18==int(cbTranslationTableData.invLevel);
if(u_xlatb18){
u_xlatu6.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati28 = 0x0;
while(true){
u_xlatb13 = u_xlatu18.y>=cbTranslationTableData.numEvictedTiles;
u_xlati28 = 0x0;
if(u_xlatb13){break;}
u_xlatu13.x = u_xlatu18.y >> 0x2u;
u_xlatu22 = u_xlatu18.y & 0x3u;
u_xlati31 = 0 - int(u_xlatu22);
u_xlati7.xyz = int3(uint3((uint3(u_xlatu22)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati8.y = int(uint(u_xlati31) & uint(u_xlati7.y));
u_xlati22.x = int(u_xlatu22) + int(0xfffffffdu);
u_xlati8.z = (u_xlati7.y != 0) ? 0x0 : u_xlati22.x;
u_xlati8.w = int((u_xlati7.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati8.x = u_xlati7.x;
u_xlati7 = int4(uint4(u_xlati8) & cbTranslationTableData.evictedTiles[int(u_xlatu13.x)]);
u_xlati13.xy = int2(uint2(u_xlati7.yw) | uint2(u_xlati7.xz));
u_xlati13.x = int(uint(u_xlati13.y) | uint(u_xlati13.x));
u_xlatb13 = u_xlati5.y==u_xlati13.x;
if(u_xlatb13){
u_xlatu18.x = 0xffffffffu;
u_xlati28 = int(0xffffffffu);
break;
}
u_xlatu6.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu6.yx;
u_xlatb28 = u_xlatb13;
}
if((uint(u_xlati28))==uint(0)){
u_xlatu18.x = 0x0u;
}
if((u_xlatu18.x)!=uint(0)){
u_xlat3.y = u_xlat2;
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu6.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati28 = 0x0;
while(true){
u_xlatb13 = u_xlatu18.y>=cbTranslationTableData.numAddedTiles;
u_xlati28 = 0x0;
if(u_xlatb13){break;}
u_xlatu13.x = u_xlatu18.y >> 0x1u;
u_xlatu22 = bitFieldInsert(0x1u, 0x1u, u_xlatu18.y, 0x0u);
u_xlati7.x = int((u_xlatu22<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati7.y = int((u_xlati7.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati24.xy = int2(uint2(u_xlati7.xy) & cbTranslationTableData.addedTiles[int(u_xlatu13.x)].xz);
u_xlati31 = int(uint(u_xlati24.y) | uint(u_xlati24.x));
u_xlatb31 = u_xlati5.y==u_xlati31;
if(u_xlatb31){
u_xlati22.x = int(u_xlatu22) + 0x1;
u_xlatu22 = uint(u_xlati22.x) + 0xffffffffu;
u_xlati7.x = int((u_xlatu22<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati7.y = int((u_xlati7.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati13.xy = int2(uint2(u_xlati7.xy) & cbTranslationTableData.addedTiles[int(u_xlatu13.x)].yw);
u_xlatu18.x = uint(u_xlati13.y) | uint(u_xlati13.x);
u_xlati28 = int(0xffffffffu);
break;
}
u_xlatu6.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu6.yx;
u_xlatb28 = u_xlatb31;
}
if((uint(u_xlati28))==uint(0)){
u_xlatu18.x = 0xffffffffu;
}
u_xlatb27 = int(u_xlatu18.x)!=int(0xffffffffu);
if(u_xlatb27){
u_xlati18 = int(u_xlatu18.x & 0xfffffff0u);
u_xlat3.y = as_type<float>(uint(u_xlati18) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb18 = as_type<int>(u_xlat2)!=as_type<int>(u_xlat3.y);
if(u_xlatb18){
u_xlat3.y = u_xlat2;
u_xlati19 = int(0xffffffffu);
}
}
}
u_xlati18 = int(as_type<uint>(u_xlat3.z) & 0x80000000u);
if((uint(u_xlati18))!=uint(0)){
u_xlat3.z = as_type<float>(as_type<uint>(u_xlat3.z) & 0x7fffffffu);
u_xlati19 = int(0xffffffffu);
}
u_xlati18 = int(as_type<uint>(u_xlat3.z) & 0xfu);
u_xlatb18 = u_xlati18==int(cbTranslationTableData.invLevel);
if(u_xlatb18){
u_xlatu5.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati28 = 0x0;
while(true){
u_xlatb2 = u_xlatu18.y>=cbTranslationTableData.numEvictedTiles;
u_xlati28 = 0x0;
if(u_xlatb2){break;}
u_xlatu2.x = u_xlatu18.y >> 0x2u;
u_xlatu13.x = u_xlatu18.y & 0x3u;
u_xlati22.x = 0 - int(u_xlatu13.x);
u_xlati6.xyz = int3(uint3((u_xlatu13.xxx<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati7.y = int(uint(u_xlati22.x) & uint(u_xlati6.y));
u_xlati13.x = int(u_xlatu13.x) + int(0xfffffffdu);
u_xlati7.z = (u_xlati6.y != 0) ? 0x0 : u_xlati13.x;
u_xlati7.w = int((u_xlati6.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati7.x = u_xlati6.x;
u_xlati6 = int4(uint4(u_xlati7) & cbTranslationTableData.evictedTiles[int(u_xlatu2.x)]);
u_xlati13.xy = int2(uint2(u_xlati6.yw) | uint2(u_xlati6.xz));
u_xlati2 = int(uint(u_xlati13.y) | uint(u_xlati13.x));
u_xlatb2 = u_xlati5.z==u_xlati2;
if(u_xlatb2){
u_xlatu18.x = 0xffffffffu;
u_xlati28 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu5.yx;
u_xlatb28 = u_xlatb2;
}
if((uint(u_xlati28))==uint(0)){
u_xlatu18.x = 0x0u;
}
if((u_xlatu18.x)!=uint(0)){
u_xlat3.z = u_xlat11;
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu5.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati28 = 0x0;
while(true){
u_xlatb2 = u_xlatu18.y>=cbTranslationTableData.numAddedTiles;
u_xlati28 = 0x0;
if(u_xlatb2){break;}
u_xlatu2.x = u_xlatu18.y >> 0x1u;
u_xlatu13.x = bitFieldInsert(0x1u, 0x1u, u_xlatu18.y, 0x0u);
u_xlati6.x = int((u_xlatu13.x<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati22.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu2.x)].xz);
u_xlati22.x = int(uint(u_xlati22.y) | uint(u_xlati22.x));
u_xlatb22 = u_xlati5.z==u_xlati22.x;
if(u_xlatb22){
u_xlati13.x = int(u_xlatu13.x) + 0x1;
u_xlatu13.x = uint(u_xlati13.x) + 0xffffffffu;
u_xlati6.x = int((u_xlatu13.x<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati13.xz = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu2.x)].yw);
u_xlatu18.x = uint(u_xlati13.z) | uint(u_xlati13.x);
u_xlati28 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu5.yx;
u_xlatb28 = u_xlatb22;
}
if((uint(u_xlati28))==uint(0)){
u_xlatu18.x = 0xffffffffu;
}
u_xlatb27 = int(u_xlatu18.x)!=int(0xffffffffu);
if(u_xlatb27){
u_xlati18 = int(u_xlatu18.x & 0xfffffff0u);
u_xlat3.z = as_type<float>(uint(u_xlati18) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb18 = as_type<int>(u_xlat11)!=as_type<int>(u_xlat3.z);
if(u_xlatb18){
u_xlat3.z = u_xlat11;
u_xlati19 = int(0xffffffffu);
}
}
}
u_xlati18 = int(as_type<uint>(u_xlat3.w) & 0x80000000u);
if((uint(u_xlati18))!=uint(0)){
u_xlat3.w = as_type<float>(as_type<uint>(u_xlat3.w) & 0x7fffffffu);
u_xlati19 = int(0xffffffffu);
}
u_xlati18 = int(as_type<uint>(u_xlat3.w) & 0xfu);
u_xlatb18 = u_xlati18==int(cbTranslationTableData.invLevel);
if(u_xlatb18){
u_xlatu2.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati28 = 0x0;
while(true){
u_xlatb13 = u_xlatu18.y>=cbTranslationTableData.numEvictedTiles;
u_xlati28 = 0x0;
if(u_xlatb13){break;}
u_xlatu13.x = u_xlatu18.y >> 0x2u;
u_xlatu22 = u_xlatu18.y & 0x3u;
u_xlati31 = 0 - int(u_xlatu22);
u_xlati5.xyz = int3(uint3((uint3(u_xlatu22)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati31) & uint(u_xlati5.y));
u_xlati22.x = int(u_xlatu22) + int(0xfffffffdu);
u_xlati6.z = (u_xlati5.y != 0) ? 0x0 : u_xlati22.x;
u_xlati6.w = int((u_xlati5.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati5.x;
u_xlati6 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu13.x)]);
u_xlati13.xy = int2(uint2(u_xlati6.yw) | uint2(u_xlati6.xz));
u_xlati13.x = int(uint(u_xlati13.y) | uint(u_xlati13.x));
u_xlatb13 = u_xlati5.w==u_xlati13.x;
if(u_xlatb13){
u_xlatu18.x = 0xffffffffu;
u_xlati28 = int(0xffffffffu);
break;
}
u_xlatu2.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu2.yx;
u_xlatb28 = u_xlatb13;
}
if((uint(u_xlati28))==uint(0)){
u_xlatu18.x = 0x0u;
}
if((u_xlatu18.x)!=uint(0)){
u_xlat3.w = u_xlat9;
u_xlati19 = int(0xffffffffu);
}
} else {
u_xlatu2.y = 0x0u;
u_xlatu18.x = uint(0x0u);
u_xlatu18.y = uint(0x0u);
u_xlati28 = 0x0;
while(true){
u_xlatb13 = u_xlatu18.y>=cbTranslationTableData.numAddedTiles;
u_xlati28 = 0x0;
if(u_xlatb13){break;}
u_xlatu13.x = u_xlatu18.y >> 0x1u;
u_xlatu22 = bitFieldInsert(0x1u, 0x1u, u_xlatu18.y, 0x0u);
u_xlati5.x = int((u_xlatu22<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu13.x)].xz);
u_xlati31 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb31 = u_xlati5.w==u_xlati31;
if(u_xlatb31){
u_xlati22.x = int(u_xlatu22) + 0x1;
u_xlatu22 = uint(u_xlati22.x) + 0xffffffffu;
u_xlati5.x = int((u_xlatu22<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati13.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu13.x)].yw);
u_xlatu18.x = uint(u_xlati13.y) | uint(u_xlati13.x);
u_xlati28 = int(0xffffffffu);
break;
}
u_xlatu2.x = u_xlatu18.y + 0x1u;
u_xlatu18.xy = u_xlatu2.yx;
u_xlatb28 = u_xlatb31;
}
if((uint(u_xlati28))==uint(0)){
u_xlatu18.x = 0xffffffffu;
}
u_xlatb27 = int(u_xlatu18.x)!=int(0xffffffffu);
if(u_xlatb27){
u_xlati18 = int(u_xlatu18.x & 0xfffffff0u);
u_xlat3.w = as_type<float>(uint(u_xlati18) | cbTranslationTableData.invLevel);
u_xlati19 = int(0xffffffffu);
} else {
u_xlatb18 = as_type<int>(u_xlat9)!=as_type<int>(u_xlat3.w);
if(u_xlatb18){
u_xlat3.w = u_xlat9;
u_xlati19 = int(0xffffffffu);
}
}
}
if((uint(u_xlati19))!=uint(0)){
_output_buf[(u_xlati20 >> 2)] = as_type<uint>(u_xlat3.x);
_output_buf[(u_xlati29 >> 2)] = as_type<uint>(u_xlat3.y);
_output_buf[(u_xlati4 >> 2)] = as_type<uint>(u_xlat3.z);
_output_buf[(u_xlati0 >> 2)] = as_type<uint>(u_xlat3.w);
translationTable.write(u_xlat3, u_xlatu1.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿ?şÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int u_xlati1;
bool2 u_xlatb1;
float4 u_xlat2;
int u_xlati3;
int u_xlati5;
bool u_xlatb5;
int u_xlati7;
bool u_xlatb7;
int u_xlati9;
bool u_xlatb11;
int u_xlati13;
u_xlatu0 = mtl_ThreadGroupID.xyyy * uint4(0x20u, 0x20u, 0x20u, 0x20u) + mtl_ThreadIDInGroup.xyyy;
u_xlatb1.xy = (u_xlatu0.xw>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati5 = int(u_xlatu0.w) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati5 = u_xlati5 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati9 = u_xlati5 << 0x2;
u_xlat2.x = as_type<float>(_output_buf[(u_xlati9 >> 2) + 0]);
u_xlati13 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati5;
u_xlati13 = u_xlati13 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati13 >> 2) + 0]);
u_xlati3 = u_xlati1 << 0x1;
u_xlati3 = u_xlati5 + u_xlati3;
u_xlati3 = u_xlati3 << 0x2;
u_xlat2.z = as_type<float>(_output_buf[(u_xlati3 >> 2) + 0]);
u_xlati1 = u_xlati1 * 0x3 + u_xlati5;
u_xlati1 = u_xlati1 << 0x2;
u_xlat2.w = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlati5 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati7 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb7 = u_xlati7!=int(cbTranslationTableData.invLevel);
u_xlatb11 = as_type<int>(u_xlat2.x)!=int(0x7fffffffu);
u_xlatb7 = u_xlatb11 && u_xlatb7;
if(u_xlatb7){
u_xlat2.x = as_type<float>(int(0x7fffffffu));
u_xlati7 = int(0xffffffffu);
} else {
u_xlati7 = int((u_xlati5!=0x0) ? 0xFFFFFFFFu : uint(0));
}
u_xlati5 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati7 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb5 = u_xlati5!=int(cbTranslationTableData.invLevel);
u_xlatb11 = as_type<int>(u_xlat2.y)!=int(0x7fffffffu);
u_xlatb5 = u_xlatb5 && u_xlatb11;
if(u_xlatb5){
u_xlat2.y = as_type<float>(int(0x7fffffffu));
u_xlati7 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.z) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.z = as_type<float>(as_type<uint>(u_xlat2.z) & 0x7fffffffu);
u_xlati7 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.z) & 0xfu);
u_xlatb5 = u_xlati5!=int(cbTranslationTableData.invLevel);
u_xlatb11 = as_type<int>(u_xlat2.z)!=int(0x7fffffffu);
u_xlatb5 = u_xlatb5 && u_xlatb11;
if(u_xlatb5){
u_xlat2.z = as_type<float>(int(0x7fffffffu));
u_xlati7 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.w) & 0x80000000u);
if((uint(u_xlati5))!=uint(0)){
u_xlat2.w = as_type<float>(as_type<uint>(u_xlat2.w) & 0x7fffffffu);
u_xlati7 = int(0xffffffffu);
}
u_xlati5 = int(as_type<uint>(u_xlat2.w) & 0xfu);
u_xlatb5 = u_xlati5!=int(cbTranslationTableData.invLevel);
u_xlatb11 = as_type<int>(u_xlat2.w)!=int(0x7fffffffu);
u_xlatb5 = u_xlatb5 && u_xlatb11;
if(u_xlatb5){
u_xlat2.w = as_type<float>(int(0x7fffffffu));
u_xlati7 = int(0xffffffffu);
}
if((uint(u_xlati7))!=uint(0)){
_output_buf[(u_xlati9 >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati13 >> 2)] = as_type<uint>(u_xlat2.y);
_output_buf[(u_xlati3 >> 2)] = as_type<uint>(u_xlat2.z);
_output_buf[(u_xlati1 >> 2)] = as_type<uint>(u_xlat2.w);
translationTable.write(u_xlat2, u_xlatu0.xy);
}
return;
}
 @MaincbTranslationTableDataÿÿÿÿÿÿÿÿ
lookupTextureÿÿÿÿtranslationTableÿÿÿÿ _output_bufÿÿÿÿÿÿÿÿKşÊ­Ş #include <metal_stdlib>
#include <metal_texture>
using namespace metal;
struct cbTranslationTableData_Type
{
uint level;
uint invLevel;
uint width;
uint height;
uint bufferOffsetLevel;
uint bufferOffsetLevelAbove;
uint numEvictedTiles;
uint numAddedTiles;
uint4 addedTiles[32];
uint4 evictedTiles[16];
};
template <typename UVecType> UVecType bitFieldInsert(const UVecType width, const UVecType offset, const UVecType src2, const UVecType src3)
{
UVecType bitmask = (((UVecType(1) << width)-1) << offset) & 0xffffffff;
return ((src2 << offset) & bitmask) | (src3 & ~bitmask);
};
kernel void computeMain(
constant cbTranslationTableData_Type& cbTranslationTableData [[ buffer(1) ]],
texture2d<uint, access::sample > lookupTexture [[ texture(0) ]] ,
device uint *_output_buf [[ buffer(0) ]],
texture2d<float, access::write > translationTable [[ texture(1) ]] ,
uint3 mtl_ThreadGroupID [[ threadgroup_position_in_grid ]],
uint3 mtl_ThreadIDInGroup [[ thread_position_in_threadgroup ]])
{
uint4 u_xlatu0;
int u_xlati1;
bool2 u_xlatb1;
float4 u_xlat2;
int u_xlati3;
int4 u_xlati4;
uint2 u_xlatu4;
bool u_xlatb4;
int4 u_xlati5;
uint2 u_xlatu5;
bool u_xlatb5;
int4 u_xlati6;
int4 u_xlati7;
int u_xlati9;
uint u_xlatu9;
bool u_xlatb9;
uint2 u_xlatu11;
int3 u_xlati13;
int u_xlati16;
bool u_xlatb16;
int u_xlati17;
int u_xlati20;
bool u_xlatb20;
int2 u_xlati21;
bool u_xlatb21;
int u_xlati24;
int u_xlati25;
int u_xlati27;
uint u_xlatu27;
u_xlatu0.xy = mtl_ThreadGroupID.xy * uint2(0x20u, 0x20u) + mtl_ThreadIDInGroup.xy;
u_xlatb1.xy = (u_xlatu0.xy>=uint2(cbTranslationTableData.width, cbTranslationTableData.height));
u_xlatb1.x = u_xlatb1.y || u_xlatb1.x;
if(u_xlatb1.x){
return;
}
u_xlati1 = int(cbTranslationTableData.height) * int(cbTranslationTableData.width);
u_xlati9 = int(u_xlatu0.y) * int(cbTranslationTableData.width) + int(u_xlatu0.x);
u_xlati9 = u_xlati9 + int(cbTranslationTableData.bufferOffsetLevel);
u_xlati17 = u_xlati9 << 0x2;
u_xlat2.x = as_type<float>(_output_buf[(u_xlati17 >> 2) + 0]);
u_xlati25 = int(cbTranslationTableData.width) * int(cbTranslationTableData.height) + u_xlati9;
u_xlati25 = u_xlati25 << 0x2;
u_xlat2.y = as_type<float>(_output_buf[(u_xlati25 >> 2) + 0]);
u_xlati3 = u_xlati1 << 0x1;
u_xlati3 = u_xlati9 + u_xlati3;
u_xlati3 = u_xlati3 << 0x2;
u_xlat2.z = as_type<float>(_output_buf[(u_xlati3 >> 2) + 0]);
u_xlati1 = u_xlati1 * 0x3 + u_xlati9;
u_xlati1 = u_xlati1 << 0x2;
u_xlat2.w = as_type<float>(_output_buf[(u_xlati1 >> 2) + 0]);
u_xlatu0.zw = uint2(cbTranslationTableData.level);
u_xlati4 = int4(lookupTexture.read(u_xlatu0.xy, u_xlatu0.w));
u_xlati16 = int(as_type<uint>(u_xlat2.x) & 0x80000000u);
u_xlati24 = int((u_xlati16!=0x0) ? 0xFFFFFFFFu : uint(0));
if((uint(u_xlati16))!=uint(0)){
u_xlat2.x = as_type<float>(as_type<uint>(u_xlat2.x) & 0x7fffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat2.x) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu5.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numEvictedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x2u;
u_xlatu27 = u_xlatu11.y & 0x3u;
u_xlati21.x = 0 - int(u_xlatu27);
u_xlati6.xyz = int3(uint3((uint3(u_xlatu27)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati7.y = int(uint(u_xlati21.x) & uint(u_xlati6.y));
u_xlati27 = int(u_xlatu27) + int(0xfffffffdu);
u_xlati7.z = (u_xlati6.y != 0) ? 0x0 : u_xlati27;
u_xlati7.w = int((u_xlati6.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati7.x = u_xlati6.x;
u_xlati6 = int4(uint4(u_xlati7) & cbTranslationTableData.evictedTiles[int(u_xlatu9)]);
u_xlati21.xy = int2(uint2(u_xlati6.yw) | uint2(u_xlati6.xz));
u_xlati9 = int(uint(u_xlati21.y) | uint(u_xlati21.x));
u_xlatb9 = u_xlati4.x==u_xlati9;
if(u_xlatb9){
u_xlatu11.x = 0xffffffffu;
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu5.yx;
u_xlatb16 = u_xlatb9;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0x0u;
}
if((u_xlatu11.x)!=uint(0)){
u_xlat2.x = as_type<float>(int(0x7fffffffu));
u_xlati24 = int(0xffffffffu);
}
} else {
u_xlatu5.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numAddedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x1u;
u_xlatu27 = bitFieldInsert(0x1u, 0x1u, u_xlatu11.y, 0x0u);
u_xlati6.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati21.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].xz);
u_xlati21.x = int(uint(u_xlati21.y) | uint(u_xlati21.x));
u_xlatb21 = u_xlati4.x==u_xlati21.x;
if(u_xlatb21){
u_xlati27 = int(u_xlatu27) + 0x1;
u_xlatu27 = uint(u_xlati27) + 0xffffffffu;
u_xlati6.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].yw);
u_xlatu11.x = uint(u_xlati6.y) | uint(u_xlati6.x);
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu5.yx;
u_xlatb16 = u_xlatb21;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0xffffffffu;
}
u_xlatb16 = int(u_xlatu11.x)!=int(0xffffffffu);
if(u_xlatb16){
u_xlati16 = int(u_xlatu11.x & 0xfffffff0u);
u_xlat2.x = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati24 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat2.x)!=int(0x7fffffffu);
if(u_xlatb16){
u_xlati24 = int(0xffffffffu);
}
u_xlat2.x = as_type<float>(int(0x7fffffffu));
}
}
u_xlati16 = int(as_type<uint>(u_xlat2.y) & 0x80000000u);
if((uint(u_xlati16))!=uint(0)){
u_xlat2.y = as_type<float>(as_type<uint>(u_xlat2.y) & 0x7fffffffu);
u_xlati24 = int(0xffffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat2.y) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu5.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numEvictedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x2u;
u_xlatu27 = u_xlatu11.y & 0x3u;
u_xlati4.x = 0 - int(u_xlatu27);
u_xlati6.xyz = int3(uint3((uint3(u_xlatu27)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati7.y = int(uint(u_xlati4.x) & uint(u_xlati6.y));
u_xlati27 = int(u_xlatu27) + int(0xfffffffdu);
u_xlati7.z = (u_xlati6.y != 0) ? 0x0 : u_xlati27;
u_xlati7.w = int((u_xlati6.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati7.x = u_xlati6.x;
u_xlati6 = int4(uint4(u_xlati7) & cbTranslationTableData.evictedTiles[int(u_xlatu9)]);
u_xlati21.xy = int2(uint2(u_xlati6.yw) | uint2(u_xlati6.xz));
u_xlati9 = int(uint(u_xlati21.y) | uint(u_xlati21.x));
u_xlatb9 = u_xlati4.y==u_xlati9;
if(u_xlatb9){
u_xlatu11.x = 0xffffffffu;
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu5.yx;
u_xlatb16 = u_xlatb9;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0x0u;
}
if((u_xlatu11.x)!=uint(0)){
u_xlat2.y = as_type<float>(int(0x7fffffffu));
u_xlati24 = int(0xffffffffu);
}
} else {
u_xlatu5.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numAddedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x1u;
u_xlatu27 = bitFieldInsert(0x1u, 0x1u, u_xlatu11.y, 0x0u);
u_xlati6.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati21.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].xz);
u_xlati4.x = int(uint(u_xlati21.y) | uint(u_xlati21.x));
u_xlatb4 = u_xlati4.y==u_xlati4.x;
if(u_xlatb4){
u_xlati27 = int(u_xlatu27) + 0x1;
u_xlatu27 = uint(u_xlati27) + 0xffffffffu;
u_xlati6.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati21.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].yw);
u_xlatu11.x = uint(u_xlati21.y) | uint(u_xlati21.x);
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu5.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu5.yx;
u_xlatb16 = u_xlatb4;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0xffffffffu;
}
u_xlatb16 = int(u_xlatu11.x)!=int(0xffffffffu);
if(u_xlatb16){
u_xlati16 = int(u_xlatu11.x & 0xfffffff0u);
u_xlat2.y = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati24 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat2.y)!=int(0x7fffffffu);
if(u_xlatb16){
u_xlati24 = int(0xffffffffu);
}
u_xlat2.y = as_type<float>(int(0x7fffffffu));
}
}
u_xlati16 = int(as_type<uint>(u_xlat2.z) & 0x80000000u);
if((uint(u_xlati16))!=uint(0)){
u_xlat2.z = as_type<float>(as_type<uint>(u_xlat2.z) & 0x7fffffffu);
u_xlati24 = int(0xffffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat2.z) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu4.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numEvictedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x2u;
u_xlatu27 = u_xlatu11.y & 0x3u;
u_xlati5.x = 0 - int(u_xlatu27);
u_xlati13.xyz = int3(uint3((uint3(u_xlatu27)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati5.x) & uint(u_xlati13.y));
u_xlati27 = int(u_xlatu27) + int(0xfffffffdu);
u_xlati6.z = (u_xlati13.y != 0) ? 0x0 : u_xlati27;
u_xlati6.w = int((u_xlati13.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati13.x;
u_xlati5 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu9)]);
u_xlati5.xy = int2(uint2(u_xlati5.yw) | uint2(u_xlati5.xz));
u_xlati9 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb9 = u_xlati4.z==u_xlati9;
if(u_xlatb9){
u_xlatu11.x = 0xffffffffu;
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu4.yx;
u_xlatb16 = u_xlatb9;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0x0u;
}
if((u_xlatu11.x)!=uint(0)){
u_xlat2.z = as_type<float>(int(0x7fffffffu));
u_xlati24 = int(0xffffffffu);
}
} else {
u_xlatu4.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numAddedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x1u;
u_xlatu27 = bitFieldInsert(0x1u, 0x1u, u_xlatu11.y, 0x0u);
u_xlati5.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].xz);
u_xlati5.x = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb5 = u_xlati4.z==u_xlati5.x;
if(u_xlatb5){
u_xlati27 = int(u_xlatu27) + 0x1;
u_xlatu27 = uint(u_xlati27) + 0xffffffffu;
u_xlati6.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati6.y = int((u_xlati6.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati13.xy = int2(uint2(u_xlati6.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].yw);
u_xlatu11.x = uint(u_xlati13.y) | uint(u_xlati13.x);
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu4.yx;
u_xlatb16 = u_xlatb5;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0xffffffffu;
}
u_xlatb16 = int(u_xlatu11.x)!=int(0xffffffffu);
if(u_xlatb16){
u_xlati16 = int(u_xlatu11.x & 0xfffffff0u);
u_xlat2.z = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati24 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat2.z)!=int(0x7fffffffu);
if(u_xlatb16){
u_xlati24 = int(0xffffffffu);
}
u_xlat2.z = as_type<float>(int(0x7fffffffu));
}
}
u_xlati16 = int(as_type<uint>(u_xlat2.w) & 0x80000000u);
if((uint(u_xlati16))!=uint(0)){
u_xlat2.w = as_type<float>(as_type<uint>(u_xlat2.w) & 0x7fffffffu);
u_xlati24 = int(0xffffffffu);
}
u_xlati16 = int(as_type<uint>(u_xlat2.w) & 0xfu);
u_xlatb16 = u_xlati16==int(cbTranslationTableData.invLevel);
if(u_xlatb16){
u_xlatu4.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numEvictedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x2u;
u_xlatu27 = u_xlatu11.y & 0x3u;
u_xlati20 = 0 - int(u_xlatu27);
u_xlati5.xyz = int3(uint3((uint3(u_xlatu27)<uint3(0x1u, 0x2u, 0x3u))) * 0xFFFFFFFFu);
u_xlati6.y = int(uint(u_xlati20) & uint(u_xlati5.y));
u_xlati27 = int(u_xlatu27) + int(0xfffffffdu);
u_xlati6.z = (u_xlati5.y != 0) ? 0x0 : u_xlati27;
u_xlati6.w = int((u_xlati5.z==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati6.x = u_xlati5.x;
u_xlati5 = int4(uint4(u_xlati6) & cbTranslationTableData.evictedTiles[int(u_xlatu9)]);
u_xlati5.xy = int2(uint2(u_xlati5.yw) | uint2(u_xlati5.xz));
u_xlati9 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb9 = u_xlati4.w==u_xlati9;
if(u_xlatb9){
u_xlatu11.x = 0xffffffffu;
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu4.yx;
u_xlatb16 = u_xlatb9;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0x0u;
}
if((u_xlatu11.x)!=uint(0)){
u_xlat2.w = as_type<float>(int(0x7fffffffu));
u_xlati24 = int(0xffffffffu);
}
} else {
u_xlatu4.y = 0x0u;
u_xlatu11.x = uint(0x0u);
u_xlatu11.y = uint(0x0u);
u_xlati16 = 0x0;
while(true){
u_xlatb9 = u_xlatu11.y>=cbTranslationTableData.numAddedTiles;
u_xlati16 = 0x0;
if(u_xlatb9){break;}
u_xlatu9 = u_xlatu11.y >> 0x1u;
u_xlatu27 = bitFieldInsert(0x1u, 0x1u, u_xlatu11.y, 0x0u);
u_xlati5.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].xz);
u_xlati20 = int(uint(u_xlati5.y) | uint(u_xlati5.x));
u_xlatb20 = u_xlati4.w==u_xlati20;
if(u_xlatb20){
u_xlati27 = int(u_xlatu27) + 0x1;
u_xlatu27 = uint(u_xlati27) + 0xffffffffu;
u_xlati5.x = int((u_xlatu27<0x1u) ? 0xFFFFFFFFu : uint(0));
u_xlati5.y = int((u_xlati5.x==0x0) ? 0xFFFFFFFFu : uint(0));
u_xlati5.xy = int2(uint2(u_xlati5.xy) & cbTranslationTableData.addedTiles[int(u_xlatu9)].yw);
u_xlatu11.x = uint(u_xlati5.y) | uint(u_xlati5.x);
u_xlati16 = int(0xffffffffu);
break;
}
u_xlatu4.x = u_xlatu11.y + 0x1u;
u_xlatu11.xy = u_xlatu4.yx;
u_xlatb16 = u_xlatb20;
}
if((uint(u_xlati16))==uint(0)){
u_xlatu11.x = 0xffffffffu;
}
u_xlatb16 = int(u_xlatu11.x)!=int(0xffffffffu);
if(u_xlatb16){
u_xlati16 = int(u_xlatu11.x & 0xfffffff0u);
u_xlat2.w = as_type<float>(uint(u_xlati16) | cbTranslationTableData.invLevel);
u_xlati24 = int(0xffffffffu);
} else {
u_xlatb16 = as_type<int>(u_xlat2.w)!=int(0x7fffffffu);
if(u_xlatb16){
u_xlati24 = int(0xffffffffu);
}
u_xlat2.w = as_type<float>(int(0x7fffffffu));
}
}
if((uint(u_xlati24))!=uint(0)){
_output_buf[(u_xlati17 >> 2)] = as_type<uint>(u_xlat2.x);
_output_buf[(u_xlati25 >> 2)] = as_type<uint>(u_xlat2.y);
_output_buf[(u_xlati3 >> 2)] = as_type<uint>(u_xlat2.z);
_output_buf[(u_xlati1 >> 2)] = as_type<uint>(u_xlat2.w);
translationTable.write(u_xlat2, u_xlatu0.xy);
}
return;
}
 @cbTranslationTableData 
levelinvLevelwidthheight bufferOffsetLevelbufferOffsetLevelAbovenumEvictedTiles
numAddedTiles
addedTiles  evictedTiles .Internal-CreateFoveatedShadingRateTextureArray0Internal-CreateFoveatedShadingRateTextureNoArraySoftUU UU




  !!!!!!  
 "$&()*+,------,+*)(&$" 
  #&),.035689:;<<<<;:986530.,)&#  
!%),/369<?BDFHIJKLLLLKJIHFDB?<963/,)%!
  $)-159=AEILORUWY[\^^^^^^\[YWUROLIEA=951-)$   "'+05:?DIMRVZ^aegjlmoppqqppomljgea^ZVRMID?:50+'"  #(-28>DJOTY^chlptwz|‚„„„„„„‚|zwtplhc^YTOJD>82-(# 
"'-3:@GNTZ`flqv{ƒ‡Š’”•–—˜˜—–•”’Їƒ{vqlf`ZTNG@:3-'"
 !&-3:BHPW^dksx~„‰’–™ £¥¦¨©ªªªª©¨¦¥£ ™–’‰„~xskd^WPHB:3-&! 
%+29AHPX`gov~…‹‘–œ ¤¨¬¯²´¶·¹º»»»»º¹·¶´²¯¬¨¤ œ–‘‹…~vog`XPHA92+%
 !(07?HPX`iqz‚‰£¨­±µ¹¼¿ÂÄÆÇÉÉÊËËÊÉÉÇÆÄ¿¼¹µ±­¨£‰‚zqi`XPH?70(!  %,4<DMV`ir{ƒ‹“𡍮³¸½ÁÅÉÌÎÑÒÔÕÖ×רØ××ÖÕÔÒÑÎÌÉÅÁ½¸³®¨¡š“‹ƒ{ri`VMD<4,% 
 (/8@IS]gpyƒŒ•¥¬²¸¾ÃÈÌĞÓÕØÛİŞßáââããããââáߪİÛØÕÓĞÌÈþ¸²¬¥•Œƒypg]SI@8/( 

"*2;DNXclw‹”¦­µ»ÂÇÌÑÕØÜŞáäåæçééêëëëëëëêééçæåäáŞÜØÕÑÌÇ»µ­¦”‹wlcXND;2*"

$,4>GR]hs}ˆ’›¥­µ½ÄÊÏÔØÜàãåèêëíîïğñòòòóóòòòñğïîíëêèåãàÜØÔÏÊĽµ­¥›’ˆ}sh]RG>4,$

%.6@KValxƒ˜¢¬´½ÄËÑÖÛßãæèëîïñòóôõõöö÷÷÷÷÷÷ööõõôóòñïîëèæãßÛÖÑËĽ´¬¢˜ƒxlaVK@6.%

&.8BMXep|ˆ“©²»ÃÊÑ×Üàäèëíğòóõö÷øøøùúúúûûûûúúúùøøø÷öõóòğíëèäàÜ×ÑÊû²©“ˆ|peXMB8.&

'/9CO[gs€Œ˜£­·ÀÈÏÖÜáåéìïñóõö÷ùúúúûüüüııııııııüüüûúúúù÷öõóñïìéåáÜÖÏÈÀ·­£˜Œ€sg[OC9/'

'/9EP\iwƒ›§²»ÄÌÔÚàåéíğòôö÷ùúûûüııııışşşşşşşşşşıııııüûûúù÷öôòğíéåàÚÔÌÄ»²§›ƒwi\PE9/'

&/9EQ^kx…’ªµ¿ÈĞØŞãèìğòõ÷øúûüüııışşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşşıııüüûúø÷õòğìèãŞØĞÈ¿µª’…xk^QE9/&
 %/9EQ_ky‡”¡­¸ÂËÓÛáæëïòõ÷øùûüüıışşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşşııüüûùø÷õòïëæáÛÓ˸­¡”‡yk_QE9/%  $-8DP^lzˆ•¢¯ºÄÎÖİãéíñóöùùûüüışşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşşıüüûùùöóñíéãİÖÎĺ¯¢•ˆzl^PD8-$ 
#,6BO\kyˆ•£¯»ÆÏØßåêïòõ÷úûüüışşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşıüüûú÷õòïêåßØÏÆ»¯£•ˆyk\OB6,#

 *5@M[ix‡•£°¼ÇÑÙàæìğó÷ùúüüışşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşıüüúù÷óğìæàÙÑǼ°£•‡xi[M@5* 
 (2>KYgw…”¢¯¼ÇÑÚáèìñô÷ùûüışşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşşıüûù÷ôñìèáÚÑǼ¯¢”…wgYK>2(  %/;GVesƒ’¡¯»ÇÑÚâèîòõøúûüışşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşıüûúøõòîèâÚÑÇ»¯¡’ƒseVG;/% 
!,8DRap€­ºÆÑÚâèîòöøúüüşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşüüúøöòîèâÚÑÆº­€paRD8,!
 (4@M]l|Œ›ª¸ÄÏÙáèîòöùûüışşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşıüûùöòîèáÙÏĸª›Œ|l]M@4(  $0<IXhxˆ˜§µÂÎØàçîòöùûüışşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşıüûùöòîçàØÎµ§˜ˆxhXI<0$  !,7DScsƒ“£±¿ËÖßçìòöùûüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüûùöòìçßÖË¿±£“ƒscSD7,!  &2?M\m}­»ÈÓİåìñõøúüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüúøõñìåİÓÈ»­}m\M?2&  "-9GVgvˆ˜©·ÄĞÛäëğôøúüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüúøôğëäÛĞÄ·©˜ˆvgVG9-"  '4@P`p’¢²ÀÌØáéïô÷úüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüú÷ôïéáØÌÀ²¢’p`P@4' 
".:HXiz‹›¬»ÈÔŞæíò÷ùûışşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşıûù÷òíæŞÔÈ»¬›‹ziXH:."
 (4AParƒ”¥´ÃÏÚãëñõøûüşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşüûøõñëãÚÏô¥”ƒraPA4(  !-9HXi{Œ­½ÊÖàèïóøúüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüúøóïèàÖʽ­Œ{iXH9-! 
'2@P`qƒ•¦µÄÑÛåìòöùüüşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşüüùöòìåÛÑĵ¦•ƒq`P@2'

 ,8GWhz‹­½Ë×áéğõùûüşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşüûùõğéá×˽­‹zhWG8, 
 $0>M^o‚“¥µÄĞÜåíò÷úüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüú÷òíåÜĞĵ¥“‚o^M>0$ 
)5DTev‰š¬»ÊÖàéğõøûüşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşüûøõğéàÖÊ»¬š‰veTD5)
 !-:IZk~¡²ÂÏÛäìò÷úüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüú÷òìäÛϲ¡~kZI:-!  %1?O`r…—¨¹ÈÔßèïõøûüşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşüûøõïèßÔȹ¨—…r`O?1% 
)5DTew‹®¾ÌØãëòöúüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüúöòëãØÌ¾®‹weTD5)

 ,9IYl~‘¢³ÃÑÜæíó÷ûüşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşüû÷óíæÜÑó¢‘~lYI9, 
 #/=M_q„–¨¹ÈÕàèğõùüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüùõğèàÕȹ¨–„q_M=/#  &3ARcv‰œ­½ÌØãëòöúüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüúöòëãØÌ½­œ‰vcRA3&  )6EVh{ ±ÁĞÜåîó÷ûışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıû÷óîåÜĞÁ± {hVE6)   ,9IZl’¤µÅÓŞèïõùüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüùõïèŞÓŵ¤’lZI9,   ".<L^pƒ–¨¹ÉÕáêñöúüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüúöñêáÕɹ¨–ƒp^L<."  $0?Oat‡™¬¼ÌØäëò÷úışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıú÷òëäØÌ¼¬™‡taO?0$  &3BRewН¿ÎÛåíóøúışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıúøóíåÛο¯ŠweRB3& 
(5DUgz ²ÂÑİæîôøûışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıûøôîæİѲ zgUD5(

)6FWj|£´ÄÒŞçïõøüıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıüøõïçŞÒÄ´£|jWF6)
 *8HYl’¥¶ÆÔßéğõùüıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıüùõğéßÔÆ¶¥’lYH8*   +9I[m€”¦·ÇÕáéñöúüşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşüúöñéáÕÇ·¦”€m[I9+  
 ,:J\o‚•¨¹ÉÖâêòöúışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıúöòêâÖɹ¨•‚o\J:, 

!-;K]p„–©ºÊ×âëò÷úışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıú÷òëâ×ʺ©–„p]K;-!

!-<L^q„—ª»Ê×ãëò÷ûışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıû÷òëã×Ê»ª—„q^L<-!

!-<L^q„˜ª»ËØãëó÷ûışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıû÷óëãØË»ª˜„q^L<-!

!-<L^q„˜ª»ËØãëó÷ûışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıû÷óëãØË»ª˜„q^L<-!

!-<L^q„—ª»Ê×ãëò÷ûışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıû÷òëã×Ê»ª—„q^L<-!

!-;K]p„–©ºÊ×âëò÷úışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıú÷òëâ×ʺ©–„p]K;-!

 ,:J\o‚•¨¹ÉÖâêòöúışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıúöòêâÖɹ¨•‚o\J:, 
  +9I[m€”¦·ÇÕáéñöúüşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşüúöñéáÕÇ·¦”€m[I9+   *8HYl’¥¶ÆÔßéğõùüıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıüùõğéßÔÆ¶¥’lYH8* 
)6FWj|£´ÄÒŞçïõøüıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıüøõïçŞÒÄ´£|jWF6)

(5DUgz ²ÂÑİæîôøûışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıûøôîæİѲ zgUD5(
 &3BRewН¿ÎÛåíóøúışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıúøóíåÛο¯ŠweRB3&  $0?Oat‡™¬¼ÌØäëò÷úışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıú÷òëäØÌ¼¬™‡taO?0$  ".<L^pƒ–¨¹ÉÕáêñöúüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüúöñêáÕɹ¨–ƒp^L<."   ,9IZl’¤µÅÓŞèïõùüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüùõïèŞÓŵ¤’lZI9,   )6EVh{ ±ÁĞÜåîó÷ûışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıû÷óîåÜĞÁ± {hVE6)  &3ARcv‰œ­½ÌØãëòöúüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüúöòëãØÌ½­œ‰vcRA3&  #/=M_q„–¨¹ÈÕàèğõùüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüùõğèàÕȹ¨–„q_M=/# 
 ,9IYl~‘¢³ÃÑÜæíó÷ûüşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşüû÷óíæÜÑó¢‘~lYI9, 

)5DTew‹®¾ÌØãëòöúüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüúöòëãØÌ¾®‹weTD5)
 %1?O`r…—¨¹ÈÔßèïõøûüşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşüûøõïèßÔȹ¨—…r`O?1%  !-:IZk~¡²ÂÏÛäìò÷úüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüú÷òìäÛϲ¡~kZI:-! 
)5DTev‰š¬»ÊÖàéğõøûüşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşüûøõğéàÖÊ»¬š‰veTD5)
 $0>M^o‚“¥µÄĞÜåíò÷úüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüú÷òíåÜĞĵ¥“‚o^M>0$ 
 ,8GWhz‹­½Ë×áéğõùûüşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşüûùõğéá×˽­‹zhWG8, 

'2@P`qƒ•¦µÄÑÛåìòöùüüşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşüüùöòìåÛÑĵ¦•ƒq`P@2'
 !-9HXi{Œ­½ÊÖàèïóøúüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüúøóïèàÖʽ­Œ{iXH9-!  (4AParƒ”¥´ÃÏÚãëñõøûüşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşüûøõñëãÚÏô¥”ƒraPA4( 
".:HXiz‹›¬»ÈÔŞæíò÷ùûışşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşıûù÷òíæŞÔÈ»¬›‹ziXH:."
 '4@P`p’¢²ÀÌØáéïô÷úüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüú÷ôïéáØÌÀ²¢’p`P@4'  "-9GVgvˆ˜©·ÄĞÛäëğôøúüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüúøôğëäÛĞÄ·©˜ˆvgVG9-"  &2?M\m}­»ÈÓİåìñõøúüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüúøõñìåİÓÈ»­}m\M?2&  !,7DScsƒ“£±¿ËÖßçìòöùûüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüûùöòìçßÖË¿±£“ƒscSD7,!  $0<IXhxˆ˜§µÂÎØàçîòöùûüışşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşıüûùöòîçàØÎµ§˜ˆxhXI<0$  (4@M]l|Œ›ª¸ÄÏÙáèîòöùûüışşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşıüûùöòîèáÙÏĸª›Œ|l]M@4( 
!,8DRap€­ºÆÑÚâèîòöøúüüşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşüüúøöòîèâÚÑÆº­€paRD8,!
 %/;GVesƒ’¡¯»ÇÑÚâèîòõøúûüışşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşıüûúøõòîèâÚÑÇ»¯¡’ƒseVG;/%  (2>KYgw…”¢¯¼ÇÑÚáèìñô÷ùûüışşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşşıüûù÷ôñìèáÚÑǼ¯¢”…wgYK>2( 
 *5@M[ix‡•£°¼ÇÑÙàæìğó÷ùúüüışşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşıüüúù÷óğìæàÙÑǼ°£•‡xi[M@5* 

#,6BO\kyˆ•£¯»ÆÏØßåêïòõ÷úûüüışşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşıüüûú÷õòïêåßØÏÆ»¯£•ˆyk\OB6,#
 $-8DP^lzˆ•¢¯ºÄÎÖİãéíñóöùùûüüışşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşşıüüûùùöóñíéãİÖÎĺ¯¢•ˆzl^PD8-$  %/9EQ_ky‡”¡­¸ÂËÓÛáæëïòõ÷øùûüüıışşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşşııüüûùø÷õòïëæáÛÓ˸­¡”‡yk_QE9/% 
&/9EQ^kx…’ªµ¿ÈĞØŞãèìğòõ÷øúûüüııışşşÿÿÿÿÿÿÿÿÿÿÿÿÿÿşşşıııüüûúø÷õòğìèãŞØĞÈ¿µª’…xk^QE9/&

'/9EP\iwƒ›§²»ÄÌÔÚàåéíğòôö÷ùúûûüııııışşşşşşşşşşıııııüûûúù÷öôòğíéåàÚÔÌÄ»²§›ƒwi\PE9/'

'/9CO[gs€Œ˜£­·ÀÈÏÖÜáåéìïñóõö÷ùúúúûüüüııııııııüüüûúúúù÷öõóñïìéåáÜÖÏÈÀ·­£˜Œ€sg[OC9/'

&.8BMXep|ˆ“©²»ÃÊÑ×Üàäèëíğòóõö÷øøøùúúúûûûûúúúùøøø÷öõóòğíëèäàÜ×ÑÊû²©“ˆ|peXMB8.&

%.6@KValxƒ˜¢¬´½ÄËÑÖÛßãæèëîïñòóôõõöö÷÷÷÷÷÷ööõõôóòñïîëèæãßÛÖÑËĽ´¬¢˜ƒxlaVK@6.%

$,4>GR]hs}ˆ’›¥­µ½ÄÊÏÔØÜàãåèêëíîïğñòòòóóòòòñğïîíëêèåãàÜØÔÏÊĽµ­¥›’ˆ}sh]RG>4,$

"*2;DNXclw‹”¦­µ»ÂÇÌÑÕØÜŞáäåæçééêëëëëëëêééçæåäáŞÜØÕÑÌÇ»µ­¦”‹wlcXND;2*"

 (/8@IS]gpyƒŒ•¥¬²¸¾ÃÈÌĞÓÕØÛİŞßáââããããââáߪİÛØÕÓĞÌÈþ¸²¬¥•Œƒypg]SI@8/( 
 %,4<DMV`ir{ƒ‹“𡍮³¸½ÁÅÉÌÎÑÒÔÕÖ×רØ××ÖÕÔÒÑÎÌÉÅÁ½¸³®¨¡š“‹ƒ{ri`VMD<4,%  !(07?HPX`iqz‚‰£¨­±µ¹¼¿ÂÄÆÇÉÉÊËËÊÉÉÇÆÄ¿¼¹µ±­¨£‰‚zqi`XPH?70(! 
%+29AHPX`gov~…‹‘–œ ¤¨¬¯²´¶·¹º»»»»º¹·¶´²¯¬¨¤ œ–‘‹…~vog`XPHA92+%
 !&-3:BHPW^dksx~„‰’–™ £¥¦¨©ªªªª©¨¦¥£ ™–’‰„~xskd^WPHB:3-&! 
"'-3:@GNTZ`flqv{ƒ‡Š’”•–—˜˜—–•”’Їƒ{vqlf`ZTNG@:3-'"
 #(-28>DJOTY^chlptwz|‚„„„„„„‚|zwtplhc^YTOJD>82-(#  "'+05:?DIMRVZ^aegjlmoppqqppomljgea^ZVRMID?:50+'"   $)-159=AEILORUWY[\^^^^^^\[YWUROLIEA=951-)$  
!%),/369<?BDFHIJKLLLLKJIHFDB?<963/,)%!
  #&),.035689:;<<<<;:986530.,)&#  
 "$&()*+,------,+*)(&$" 
  !!!!!!  





   "'+/245542/+'"  %-4<CINQTUUTQNIC<4-%   *4?JS]elrvyzzyvrle]SJ?4*   *7ES_lx‚‹’˜œŸ¡¡Ÿœ˜’‹‚xl_SE7*  '5ETeuƒ‘§¯¶»¿ÁÃÃÁ¿»¶¯§‘ƒueTE5' 
 .>Pcvˆ˜¦³¾ÇÎÓØÚÜİİÜÚØÓÎǾ³¦˜ˆvcP>. 
$4F[p…˜©¹ÆĞÙßäèëíîïïîíëèäßÙĞÆ¹©˜…p[F4$&8Lcz‘¥¸ÇÔİåëğóõöøøùùøøöõóğëåİÔǸ¥‘zcL8&':Piš¯ÂÑŞçîóöùûüüışşşşıüüûùöóîçŞÑ¯šiP:'
&:Rk† ¶ÉÙåíô÷úüışÿÿÿÿÿÿÿÿÿÿşıüú÷ôíåÙɶ †kR:&
 $7Plˆ¢»ÎŞéñ÷úüıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıüú÷ñéŞÎ»¢ˆlP7$   4Li†¢¼ÑáìôùüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüùôìáѼ¢†iL4  .Fc »ÑâîõúüşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşüúõîâÑ» cF. '>[zš¶Îàîöûışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıûöîàζšz[>' 5Pp‘¯ÉŞìõûıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıûõìŞÉ¯‘pP5 +Dc„¥ÂÙêôúıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıúôêÙÂ¥„cD+  7Tv˜¸ÑåñùışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıùñåѸ˜vT7  *Deˆ©ÇŞí÷üşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşü÷íŞÇ©ˆeD* 5Ru˜¹ÔçôûıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıûôçÔ¹˜uR5%?`ƒ¦ÆİîøüşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşüøîİÆ¦ƒ`?% -Jl‘³Ğåóúıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıúóåг‘lJ- 4Txœ¾ÙëöüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüöëÙ¾œxT4"<]‚§Çßğùıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıùğßǧ‚]<"'Ce‹¯Îäóûşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşûóäί‹eC'
+Il’¶ÓèõüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüõèÓ¶’lI+
/Nr˜»ØëöüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüöëØ»˜rN/ 2Qvœ¿ÚíøıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıøíÚ¿œvQ2
4TyŸÂÜîøşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşøîÜŸyT4
5U{¡Ãİïùşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşùïİá{U5
5U{¡Ãİïùşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşùïİá{U5
4TyŸÂÜîøşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşøîÜŸyT4
2Qvœ¿ÚíøıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıøíÚ¿œvQ2 /Nr˜»ØëöüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüöëØ»˜rN/
+Il’¶ÓèõüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüõèÓ¶’lI+
'Ce‹¯Îäóûşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşûóäί‹eC'"<]‚§Çßğùıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıùğßǧ‚]<"4Txœ¾ÙëöüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüöëÙ¾œxT4 -Jl‘³Ğåóúıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıúóåг‘lJ- %?`ƒ¦ÆİîøüşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşüøîİÆ¦ƒ`?%5Ru˜¹ÔçôûıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıûôçÔ¹˜uR5 *Deˆ©ÇŞí÷üşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşü÷íŞÇ©ˆeD*  7Tv˜¸ÑåñùışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıùñåѸ˜vT7  +Dc„¥ÂÙêôúıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıúôêÙÂ¥„cD+ 5Pp‘¯ÉŞìõûıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıûõìŞÉ¯‘pP5 '>[zš¶Îàîöûışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıûöîàζšz[>' .Fc »ÑâîõúüşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşüúõîâÑ» cF.  4Li†¢¼ÑáìôùüışÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşıüùôìáѼ¢†iL4   $7Plˆ¢»ÎŞéñ÷úüıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıüú÷ñéŞÎ»¢ˆlP7$ 
&:Rk† ¶ÉÙåíô÷úüışÿÿÿÿÿÿÿÿÿÿşıüú÷ôíåÙɶ †kR:&
':Piš¯ÂÑŞçîóöùûüüışşşşıüüûùöóîçŞÑ¯šiP:'&8Lcz‘¥¸ÇÔİåëğóõöøøùùøøöõóğëåİÔǸ¥‘zcL8&$4F[p…˜©¹ÆĞÙßäèëíîïïîíëèäßÙĞÆ¹©˜…p[F4$
 .>Pcvˆ˜¦³¾ÇÎÓØÚÜİİÜÚØÓÎǾ³¦˜ˆvcP>. 
 '5ETeuƒ‘§¯¶»¿ÁÃÃÁ¿»¶¯§‘ƒueTE5'  *7ES_lx‚‹’˜œŸ¡¡Ÿœ˜’‹‚xl_SE7*   *4?JS]elrvyzzyvrle]SJ?4*   %-4<CINQTUUTQNIC<4-%  "'+/245542/+'"   
 %((% 
%7HWbggbWH7%
$>\x «±±« x\>$2V} ¼ÏÛâææâÛϼ }V2:f•¼Øéò÷úûûú÷ò騼•f::l¡ËæôûşÿÿÿÿÿÿşûôæË¡l:2f¡ĞìùıÿÿÿÿÿÿÿÿÿÿıùìĞ¡f2
$V•ËìúşÿÿÿÿÿÿÿÿÿÿÿÿşúìË•V$
?}¼æùşÿÿÿÿÿÿÿÿÿÿÿÿÿÿşùæ¼}? %\ ØôıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıôØ \% 7x¼éûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûé¼x7HÏòşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşòÏHW ÛøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÛ W%b«âúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúâ«b%(g±æûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûæ±g((g±æûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûæ±g(%b«âúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúâ«b%W ÛøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÛ WHÏòşÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿşòÏH7x¼éûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûé¼x7 %\ ØôıÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿıôØ \% ?}¼æùşÿÿÿÿÿÿÿÿÿÿÿÿÿÿşùæ¼}?
$V•ËìúşÿÿÿÿÿÿÿÿÿÿÿÿşúìË•V$
2f¡ĞìùıÿÿÿÿÿÿÿÿÿÿıùìĞ¡f2:l¡ËæôûşÿÿÿÿÿÿşûôæË¡l::f•¼Øéò÷úûûú÷ò騼•f:2V} ¼ÏÛâææâÛϼ }V2$>\x «±±« x\>$
%7HWbggbWH7%
 %((%  Lt‰‰tL  :‰Çåïïålj: :ŸåûÿÿÿÿûåŸ: ‰åıÿÿÿÿÿÿıå‰ LÇûÿÿÿÿÿÿÿÿûÇLtåÿÿÿÿÿÿÿÿÿÿåt‰ïÿÿÿÿÿÿÿÿÿÿïÿÿÿÿÿÿÿÿÿÿï‰tåÿÿÿÿÿÿÿÿÿÿåtLÇûÿÿÿÿÿÿÿÿûÇL ‰åıÿÿÿÿÿÿıå‰ :ŸåûÿÿÿÿûåŸ: :‰Çåïïålj:  Lt‰‰tL HÌôôÌHÌÿÿÿÿÌôÿÿÿÿôôÿÿÿÿôÌÿÿÿÿÌHÌôôÌHÿÿÿÿ
Font Materialu'ÿÿÿÿ_MainTexw'€?€?_Color€?€?€?€?_MainTex Font Texturewhite_Color
Text Color€?€?€?€?œ6$3 CâÍdÜ<VGlobals_MainTexunity_ObjectToWorld @ <noninit> A <noninit> @ <noninit> A <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit> <noninit>€? <noninit> <noninit> <noninit> <noninit>pA <noninit>€? <noninit>A <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit> <noninit> <noninit> <noninit>A <noninit>C <noninit>C <noninit> <noninit>unity_FogStart unity_FogEndunity_FogDensity <noninit> <noninit> <noninit> <noninit>unity_FogColorÿÿÿÿ(øIGNOREPROJECTORtrue PreviewTypePlaneQUEUE Transparent
RenderType Transparent!!ëë!!ëë!!ëë˜! !
ë ë! !
ë ë! !
ë ëIGNOREPROJECTORtrue PreviewTypePlaneQUEUE Transparent
RenderType TransparentSTEREO_INSTANCING_ONUNITY_SINGLE_PASS_STEREOSTEREO_MULTIVIEW_ONSTEREO_CUBEMAP_RENDER_ONGUI/Text Shader8¢ ¬b@p ø¬ bT
X
x S$!Ä$Sè'<b(ğ cô+ C0 &4 nºu
ğVGlobals˜Sñ _MainTex_ST(¿8@€b_Color8 $óunity_MatrixVPÀ$8¬¬ _X¬`cStereonB@4Ğ!ÖÔœ€İT…EyeIndex, T!  XĞ Xpp¸ø/“lşÊ
ğ0Ì<(€%ÿÿÿÿ pxlatMtlü
#include <metal_stdlib>
ñ
texture>
using namespace ”;
struct ‡ò_Type
{
float4 hlslcc_mtx4x4+ÿObjectToWorld[4];0 U +ébhalf4 ØT;
};
 ÊMtl_VertexInŸøPOSITION0 [[ attribute(0) ]] V[COLOR&1&P«2 TEXCOORD*2*:Out•Àmtl_PositionHp ï, invariant ]]Ruser(t),Ÿv”
Ÿ <(R{constanû&bbbufferL,6ˆ` input(ëstage_in ]])
{)~ioutputü u_“01!" =hu.yyyy *ª,1]SOfma(@=0],…Txxxx,R)`+2`Ozzzz`
+31FQÃ1Fì;%0]Ñ ?/1)S&2S2Sy._3_Owwww_½ªQÒ4¹3.xy“,in,C,#zw™ereturnx3}
| 
à¬Ììÿ
NITY_SINGLE_PASS_STEREOû ÈÅr_P[8];0V0?Inv3V”CameraProP?ion9?Inv< TCrô 6-3 _SdŞJos[2e/±ScaleOffset' D !Oint Ÿ  ÿƒ6õ&J1J &L2— Nš/i1&2© ÿSi 
.4i << 0x™£. (\+ 1)]cIX"W
/2)j6Â/2):
2:
|5/3)W
2W
X
)|F
ÿ_INSTANCING_ON T
'T
ÿÿê
ÿ;ÈPLayer*ñrender_target_array_i@D
 âbool has_base_[
!_i ceL1fund_3"(4{ğ template <type`P UVecÉ>
ñ bitFieldInsert(G{width, o
Osrc2¨3)
{
v¤mask = ((("<<t")-
ks) & 0xfİ
 ((v
*]@) | T3 & ~<?}; ¦ < ID)>_id+WBaseI":2,1_á /ifN#
 Ğ=;> ÿ«Kint(fP0x1u,+ +u,şO0u))D ÿÿG  ƒn/1uw x *x ÏMULTIVIEW_ON”ÿÿÿÿÿÿˆÈsÏ
32_t rp_ÿq_remap_DCÔc
Eå(ZB>> 0¹(F;"…Fragment¸ğ  ñopASV_TJc
ÈDfG THtsamplerAÈ02d<˜¢, access::,8 > A-ÍT¼

à96_0”œ., Â=).w{(Y3) *?
ÁA.w =­();xyz•è
ğ ! ÿÿÿàTÿÿÿàäÿÿÿ¿P
LegacyRuntime.oAt'PAw'€?şÿÿÿF,€¿F.€¿P,€¿P.€¿T,€¿T.€¿T:€¿T;€¿Ta€¿Tc€¿Te€¿To€¿Ts€¿V,€¿V.€¿Y,€¿Y-€¿Y.€¿Ye€¿Yo€¿Yq€¿ÍÌÌ=L<AP0ÀArial Font TexturepSphere1è·4€?€?€?Ğ|)()(=)(<=<Q=<PQPeQPdedyedxyxyxŒŒ¡Œ ¡ µ¡ ´µ´Éµ´ÈÉÈİÉÈÜİÜñİÜğñğñğ-,-,A-,@A@UA@TUTiUThih}iUiji¤jAUVUjV-ABAVB-.-B.Vjkj¥kBVWVkW..BCBWCWklk¦lWlXCWX.C/./ñXlml§mCXD/CD/ñòİñòXmYDXY/D0/0òİòŞÉİŞYmnm¨nDYE0DE0òóŞòóÉŞÊµÉÊYnZEYZ0E101óŞóßÊŞßµÊ¡µZnon©o1óôßóôÊßËÊË¡¢¡¢ ô ßôàËßàË·¢·¢yô õàôõËàÌ·ËÌ¢·£¢£yzeyzàõáÌàá·Ì¸£·¸£zezfQefÌá͸ÌÍ£¸¤£¤z{fz{QfR=QR¸Í¹¤¸¹¤{f{gRfg=R>)=>¤¹¥¤¥{|g{|RgS>RS)>*)*¥|g|hSgh>S?*>?*|}h|}ShT?ST*?+*+++?@?T@Thih}i+,+@,@TUTiU,,@A@UA,-,A--UijAUVUjV-ABAVB-.-B..i~ji}~}~}¦¥¦¥º¦¥¹º¹Îº¹ÍÎÍâÎÍáâáöâáõöõ
öõ 
 
 2121F21EFEZFFZ[Zo[2FGF[G232G3
3ö
 
 [opoªpG[\[p\3GHG\H343H4\pqp«qH\]\q]ö ÷âö÷  4 4HIH]I]qrq¬r]r^I]^4I5 45   ÷  â÷ãÎâã^rsr­sI^J5IJ 5!  !÷ øã÷øÎãϺÎÏ^s_J^_5J6!56 !
ø 
ãøäÏãäºÏ»¦º»_sts®t!6"
!"ø
ùäøùÏäĞ»ÏЦ»§¦§
"ù
äùåĞäå»Ğ¼§»¼§~ùúåùúĞåѼĞѧ¼¨§¨~j~åúæÑåæ¼Ñ½¨¼½¨jkVjkÑæÒ½ÑÒ¨½©¨©kVkWBVW½Ò¾©½¾©klWklBWC.BC©¾ª©ªlWlXCWX.C/./ªlmXlmCXD/CD/mXmYDXY/D0/000DEDYEYmnmn010E1EYZYnZ11EFEZF ˜121F2 2 
 ZnoFZ[Zo[2FGF[G232G3
3nƒonƒ
 š
ƒ«ª«ª¿«ª¾¿¾Ó¿¾ÒÓÒçÓÒæçæûçæúûúûú#"#"7#"676K76JKJ_KK_`_t`7KLK`L#787L8#$#8$û$`tut¯uL`a`ua8LMLaM$898M9auvu°vMabavbûüçûü$%$9%9MNMbNbvwv±wbwcNbc9N:%9:%üçüèÓçècwxw²xNcO:NO%:&%&üıèüıÓèÔ¿ÓÔcxdOcd:O;&:;&ıèıéÔèé¿ÔÀ«¿Àdxyx³y&;'&'ışéışÔéÕÀÔÕ«À¬«¬'şéşêÕéêÀÕÁ¬ÀÁ¬˜ƒ˜şÿêşÿÕêÖÁÕÖ¬Á­˜¬­ƒ˜oƒêÿëÖêëÁÖ­Á˜­˜op[opÖë×ÂÖ׭®­®p[p\G[\Â×îÂîššpq\pqG\H3GH®Ã¯š®¯šq\q]H\]3H434š¯šqr]qrH]I4HI4  r]r^I]^4I5 45  ! 5!5IJI^J^rsrs !
œ !565J6J^_^s_
!"!6"6JKJ_K
"
"676K7"#"7##_stK_`_t`7KLK`L#787L8#$#8$sˆtsˆ$Ÿœˆœ°œ¯°¯Ä°¯ÃÄÃØÄÃר×ìØ×ëìëìëÿÿÿ('('<(';<;P<;OPOdPPdedye<PQPeQ(<=<Q=()(=))eyzy´zQefezf=QRQfR)=>=R>fz{zµ{Rfgf{gg{{gRgSSg>RSS?S>S??)>**>?)*+?*?++Œ**++Œ+ŒìŠìííØìíîíîïŠîïïŠØíÙÙíîÄØÙÚîïÙîÚÛïÚïÛÛˆÄÙÅÅÙÚ°ÄÅÆÚÛÅÚÆÇÛˆÆÛÇLj°Å±±ÅÆœ°±²ÆÇ±Æ²³Ç²Ç³³œ±±²ˆœ²³²Ÿ³³ŸŸˆtˆŠŸŠŸŠŸtuuŠ`tuvŠuŠvwvwwƒ`uaauvL`abvwavbcwƒbwccƒLaMMab8LMNbcMbNOcNcOO8M99MN$89:NO9N:;O:O;;$9%%9:$%&:;%:&';&;''~%%& &&'¡'~'¢~£· (PRKY¾%Ù|¿'F½]S¾cÙ|¿1úE½a7X5uxs¿€¿ÍÌL={˜¾%Ù|¿?P¼½m“¾cÙ|¿
I¼½y?.P4¼O¿€¿ÍÌL=ÍÌL=?P¼½%Ù|¿{˜¾èH¼½eÙ|¿P“¾½O?ɱ‘´y¿€¿ÍÌÌ=ÍÌL=%F½%Ù|¿JY¾kùE½cÙ|¿WS¾rxs?ñ¢³s7¾€¿š™>ÍÌL=%Ù|¿a0 ¾cÙ|¿* ¾€?¢šÅ²*ú4€¿ÍÌL>ÍÌL=%F=%Ù|¿IY¾yùE=cÙ|¿OS¾pxs?ë„37>€¿€>ÍÌL==P¼=%Ù|¿y˜¾ğH¼=cÙ|¿p“¾ºO?jƒ²y?€¿š™™>ÍÌL=x˜>%Ù|¿;P¼½s“>cÙ|¿çH¼½y?-Âj2¿O?€¿43³>ÍÌL=GY>%Ù|¿"F½^S>cÙ|¿†ùE½z7>JÌŒ³qxs?€¿ÎÌÌ>ÍÌL=_0 >%Ù|¿(* >cÙ|¿å²ú2sÍ1€?€¿hfæ>ÍÌL=GY>%Ù|¿"F=_S>cÙ|¿ŠùE=|7¾háˆ3pxs?€¿?ÍÌL=x˜>%Ù|¿:P¼=r“>eÙ|¿’H¼=y¿ €µ½O?€¿ÎÌ ?ÍÌL=:P¼=%Ù|¿w˜>íH¼=eÙ|¿R“O¿:R™´y?€¿›™?ÍÌL="F=%Ù|¿FY>qùE=cÙ|¿MS>qxs¿+°³w7>€¿hf&?ÍÌL=\0 1%Ù|¿]0 >eÙ|¿ * >€¿m†Ô²\Á'´€¿533?ÍÌL=F½%Ù|¿EY>|ùE½cÙ|¿WS>pxs¿¼•\3|7¾€¿@?ÍÌL=8P¼½%Ù|¿v˜>ïH¼½cÙ|¿z“O¿Ά³y¿€¿ÏÌL?ÍÌL=v˜¾%Ù|¿9P¼=s“¾cÙ|¿ØH¼=y¿Û#4¼O¿€¿œ™Y?ÍÌL=EY¾%Ù|¿F=]S¾cÙ|¿‹ùE=w7¾
娳qxs¿€¿iff?ÍÌL=\0 ¾%Ù|¿** ¾cÙ|¿½ ‰µ! -4€¿€¿63s?ÍÌL=y–¾qxs¿‘ý¹s–¾]ys¿ò‰Ã½\7>¿3uxs¿€¿ÍÌÌ=€¾qxs¿¸ş9¾Õö¾]ys¿ø9¾y?´EO¿€¿ÍÌL=ÍÌÌ=¸ş9¾qxs¿€¾ø9¾]ys¿Îö¾¾O?Š\Ö³y¿€¿ÍÌÌ=ÍÌÌ=‘ýqxs¿y–¾ŠÃ½]ys¿®s–¾qxs?tŸ›³v7¾€¿š™>ÍÌÌ=qxs¿7¾]ys¿Ò1¾€?ÂM?³?74€¿ÍÌL>ÍÌÌ=‘Ã=qxs¿y–¾ŠÃ=[ys¿½s–¾pxs?-Å‚³€7>€¿€>ÍÌÌ=¶ş9>qxs¿€¾ø9>Yys¿îö¾»O?!G´y?€¿š™™>ÍÌÌ=€>qxs¿µş9¾ßö>[ys¿ø9¾y?;¨é³¾O?€¿43³>ÍÌÌ=y>qxs¿‘ýºs>[ys¿1ŠÃ½v7>7‹´qxs?€¿ÎÌÌ>ÍÌÌ=|7>qxs¿Ô1>[ys¿¢GÈ®0!®€?€¿hfæ>ÍÌÌ=y>qxs¿‘Ã=ºs>[ys¿&ŠÃ={7¾•ş4pxs?€¿?ÍÌÌ=€>qxs¿´ş9>ßö>]ys¿ø9>y¿áÔ´½O?€¿ÎÌ ?ÍÌÌ=´ş9>qxs¿€>
ø9>[ys¿ßöO¿PòN1y?€¿›™?ÍÌÌ=‘Ã=qxs¿y>
ŠÃ=[ys¿¹s>qxs¿g´k²u7>€¿hf&?ÍÌÌ=z72qxs¿{7>]ys¿Ò1>€¿©yJ³Ğ´€¿533?ÍÌÌ= ‘ýqxs¿y>ŠÃ½[ys¿·s>pxs¿Ùl3{7¾€¿@?ÍÌÌ=±ş9¾qxs¿€>ø9¾[ys¿ßöO¿dTÿ°y¿€¿ÏÌL?ÍÌÌ=€¾qxs¿²ş9>ßö¾[ys¿ø9>y¿¿»´¼O¿€¿œ™Y?ÍÌÌ=y–¾qxs¿
‘Ã=¼s–¾[ys¿8ŠÃ=|7¾ÓX}´pxs¿€¿iff?ÍÌÌ=z7¾qxs¿Ö1¾[ys¿2Ğ}µ—é¤4€¿€¿63s?ÍÌÌ=ݾd¿i¨¾
ݾÛd¿Ï£¾]7>Pô4uxs¿€¿š™ ¼¾d¿r ˆ¾¼¾Ûd¿(œˆ¾y?
&P3¼O¿€¿ÍÌL=š™>r ˆ¾d¿ò ¼¾"œˆ¾Ûd¿¼¾¿O?~n!³y¿€¿ÍÌÌ=š™>h¨¾d¿ݾޣ¾İd¿
ݾqxs?Ÿub³t7¾€¿š™>š™>d¿yqè¾Ûd¿*jè¾€?eV\³m@Ø3€¿ÍÌL>š™>h¨>d¿ݾì£d¿
ݾpxs?y[Ş2€7>€¿€>š™>p ˆ>d¿ï ¼¾*œˆ>Úd¿¼¾ºO?”ܲy?€¿š™™>š™ ¼>d¿o ˆ¾ ¼>Úd¿$œˆ¾y?´êÜ2¾O?€¿43³>š™>İ>d¿e¨¾$
İ>Úd¿à£¾v7>¸F‡3qxs?€¿ÎÌÌ>š™>vqè>d¿4jè>Ød¿H1×±-B[±€?€¿hfæ>š™>İ>d¿e¨>%
İ>Úd¿æ£>z7¾¥#5³pxs?€¿?š™ ¼>d¿n ˆ> ¼>Úd¿&œˆ>y¿·´¼O?€¿ÎÌ ?š™>n ˆ>d¿í ¼>%œˆ>Úd¿
¼>¾O¿3é¤3y?€¿›™?š™>e¨>d¿
İ>å£d¿'
İ>qxs¿j †2w7>€¿hf&?š™>rqh2d¿tqè>Ød¿6jè>€¿l×
³JDˆ³€¿533?š™>c¨¾d¿ İ>룾Ød¿%
İ>pxs¿”š¬1}7¾€¿@?š™>l ˆ¾d¿ì ¼>(œˆ¾Úd¿¼>½O¿øË8³y¿€¿ÏÌL?š™ ¼¾d¿m ˆ>
¼¾Ød¿-œˆ>y¿5´¼O¿€¿œ™Y?š™> ݾd¿d¨>%
ݾÚd¿ã£>x7¾ªK3qxs¿€¿iff?š™>rqè¾d¿0jè¾Úd¿¶9cµË„ç4€¿€¿63s?š™¿½O¿¸ş9¾¿O¿Åù9¾\7>ñZ2vxs¿€¿ÍÌL>{xó¾½O¿Jä°¾,ró¾ŒO¿»ß°¾y?İÿ¤3¼O¿€¿ÍÌL=ÍÌL>Jä°¾½O¿zxó¾³ß°¾ŒO¿1ró¾¿O?İHf3y¿€¿ÍÌÌ=ÍÌL>·ş9¾½O¿Â¿äù9¾ŒO¿¿qxs?oEâ²u7¾€¿š™>ÍÌL>½O¿y¿ŠO¿<u¿€?Ñ—”³VÌ3€¿ÍÌL>ÍÌL>·ş9>½O¿Á¿òù9>O¿¿oxs?µâß²7>€¿€>ÍÌL>Hä°>½O¿vxó¾»ß°>O¿,ró¾ºO?©ù³y?€¿š™™>ÍÌL>uxó>½O¿Fä°¾0ró>ŠO¿¼ß°¾y?%©@´¾O?€¿43³>ÍÌL>¿O¿³ş9¾?O¿éù9¾w7>rvܲqxs?€¿ÎÌÌ>ÍÌL>yO¿<uO¿t~D1G½1€?€¿hfæ>ÍÌL>¿O¿³ş9>?O¿ğù9>{7¾=İ‘3pxs?€¿?ÍÌL>txó>½O¿Eä°>.ró>ŠO¿¾ß°>y¿cx¬3»O?€¿ÎÌ ?ÍÌL>Eä°>½O¿sxó>·ß°>ŠO¿7ró>¾O¿Ò³3y?€¿›™?ÍÌL>³ş9>½O¿¾?æù9>ŠO¿?qxs¿ğK3v7>€¿hf&?ÍÌL>yO¿y?ŠO¿>u?€¿ |!°}L^°€¿533?ÍÌL>°ş9¾½O¿¾?ëù9¾ŠO¿?qxs¿ßœr³z7¾€¿@?ÍÌL>Cä°¾½O¿rxó>¼ß°¾‰O¿7ró>½O¿ö4³y¿€¿ÏÌL?ÍÌL>qxó¾½O¿Dä°>2ró¾‰O¿¾ß°>y¿¬ıÛ³½O¿€¿œ™Y?ÍÌL>½¿½O¿±ş9>¿‹O¿èù9>w7¾e±qxs¿€¿iff?ÍÌL>y¿½O¿>u¿ŠO¿Š4?µÄå
5€¿€¿63s?ÍÌL>ä(,¿ó5¿™À_¾€%,¿€5¿÷»_¾X7>Så³vxs¿€¿€>¤r¿ó5¿ÍÔ¾¼o¿5¿äÈÔ¾y?ŸÑO¿€¿ÍÌL=€>ÍÔ¾ó5¿£r¿ÜÈÔ¾5¿Áo¿¿O?I1±3y¿€¿ÍÌÌ=€>˜À_¾ó5¿ã(,¿)¼_¾~5¿~%,¿qxs?#€1v7¾€¿š™>€>ó5¿ù5¿~5¿h5¿€?©¶„³Ü»„3€¿ÍÌL>€>˜À_>ó5¿â(,¿7¼_>}5¿}%,¿pxs?gDc²€7>€¿€>€>ÍÔ>ó5¿¡r¿çÈÔ>~5¿½o¿ºO?~³y?€¿š™™>€> r5¿ÍÔ¾¿o?~5¿äÈÔ¾y?^Éг½O?€¿43³>€>à(,?ó5¿“À_¾~%,?~5¿/¼_¾x7>„3*³qxs?€¿ÎÌÌ>€>ö5?ó5¿h5?}5¿(O81ğG81€?€¿hfæ>€>à(,?ó5¿“À_>~%,?~5¿-¼_>y7¾vaå²qxs?€¿?€> r5¿ÍÔ>¿o?~5¿çÈÔ>y¿£›ã1»O?€¿ÎÌ ?€>ÍÔ>ó5¿Ÿr?âÈÔ>|5¿ÁoO¿í²y?€¿›™?€>“À_>ó5¿Ş(,?+¼_>|5¿€%,?qxs¿Ğ3w7>€¿hf&?€>óµ2ó5¿ô5?|5¿j5?€¿wh²p²€¿533?€>À_¾ó5¿Ş(,?5¼_¾|5¿%,?pxs¿×aÂ2|7¾€¿@?€>
ÍÔ¾ó5¿r?èÈÔ¾{5¿ÁoO¿0N43y¿€¿ÏÌL?€>r¿ó5¿ÍÔ>Áo¿|5¿æÈÔ>y¿´Ä•1½O¿€¿œ™Y?€>İ(,¿ó5¿‘À_>%,¿|5¿,¼_>w7¾Gğ0qxs¿€¿iff?€>ó5¿ó5¿j5¿{5¿Š,µñ&5€¿€¿63s?€>ÍøD¿y¿€¾ öD¿ñ|¿Uü¾Y7>£”³vxs¿€¿š™™>æ'¿y¿zx󾚋'¿ò|¿(uó¾y?!LO¿€¿ÍÌL=š™™>zxó¾y¿å'¿"uó¾ñ|¿'¿¿O?,O²y¿€¿ÍÌÌ=š™™>€¾y¿ËøD¿‚ü¾ğ|¿öD¿rxs?gϾ2s7¾€¿š™>š™™>y¿ÃO¿ò|¿òO¿€?B›?³@; 3€¿ÍÌL>š™™>€>y¿ÊøD¿–ü>ò|¿öD¿pxs?”å3€7>€¿€>š™™>wxó>y¿ã'¿.uó>ñ|¿š‹'¿ºO?UK82y?€¿š™™>š™™>â'?y¿uxó¾'?î|¿%uó¾y?f m²¿O?€¿43³>š™™>ÈøD?y¿€¾öD?ï|¿‰ü¾w7L±qxs?€¿ÎÌÌ>š™™>ÀO?y¿óO?ï|¿d†ï±WĞ$²€?€¿hfæ>š™™>ÈøD?y¿€>öD?ñ|¿Šü>y7¾<‡»²qxs?€¿?š™™>á'?y¿txó>š‹'?ò|¿+uó>y¿¿
Z1»O?€¿ÎÌ ?š™™>txó>y¿à'?$uó>ğ|¿'?¾O¿ÌB2y?€¿›™?š™™>€>y¿ÆøD?ü>ï|¿öD?qxs¿IÏ2y7>€¿hf&?š™™>½Ï2y¿¿O?ï|¿óO?€¿*HᲨ³£²€¿533?š™™>ÿÿ¾y¿ÆøD?˜ü¾ğ|¿öD?pxs¿ïÁ…3~7¾€¿@?š™™>qxó¾y¿ß'?,uó¾ğ|¿œ‹'?¼O¿¬Q2y¿€¿ÏÌL?š™™>ß'¿y¿rxó>'¿î|¿'uó>y¿/O¿€¿œ™Y?š™™>ÅøD¿y¿€>öD¿î|¿ˆü>v7¾8Ÿ[2qxs¿€¿iff?š™™>½O¿y¿óO¿í|¿2 ô§55€¿€¿63s?š™™>ïX¿rqè¾âøŒ¾UíX¿œxè¾÷Œ¾X7>.G†³vxs¿€¿43³>÷ˆ8¿rq辑¿t‡8¿œxè¾z¿y?"Š2¼O¿€¿ÍÌL=43³>‘¿rqè¾öˆ8¿v¿xè¾u‡8¿¿O?@“²y¿€¿ÍÌÌ=43³>áøŒ¾rqè¾ïX¿µ÷Œ¾£xè¾OíX¿rxs?ÉÄ2t7¾€¿š™>43³>rqè¾d¿£xè¾,d¿€?I&£²rH&2€¿ÍÌL>43³>áøŒ>rqè¾ïX¿À÷Œ>¢xè¾MíX¿pxs?£é1€7>€¿€>43³>?rqè¾óˆ8¿{? xè¾q‡8¿ºO?À4ş²y?€¿š™™>43³>òˆ8?rq辿u‡8?xè¾v¿y?*ÒJ1¿O?€¿43³>43³>ïX?rqè¾ŞøŒ¾OíX?Ÿx辺÷Œ¾x7>}˜±qxs?€¿ÎÌÌ>43³>d?rqè¾,d?¤xè¾øÆ±&3†±€?€¿hfæ>43³>ïX?rqè¾ŞøŒ>MíX?¤xè¾¹÷Œ>y7¾¦”'±qxs?€¿?43³>òˆ8?rqè¾?q‡8? xè¾z?y¿‰ÉO?€¿ÎÌ ?43³>?rqè¾ñˆ8?w?xè¾u‡8?¾O¿7E©±y?€¿›™?43³>ŞøŒ>rqè¾ïX?º÷Œ>xè¾PíX?qxs¿K°ˆ²x7>€¿hf&?43³>ä2rqè¾d?œxè¾.d?€¿÷§³ìBв€¿533?43³>ÜøŒ¾rqè¾
ïX?¾÷Œ¾šxè¾PíX?pxs¿æÀc®|7¾€¿@?43³>Œ¿rqè¾ğˆ8?y¿™xè¾u‡8?½O¿`ä
²y¿€¿ÏÌL?43³>ïˆ8¿rqè¾?u‡8¿˜xè¾x?y¿(¯2¾O¿€¿œ™Y?43³> ïX¿rqè¾İøŒ>PíX¿›x辺÷Œ>x7¾l÷ê0qxs¿€¿iff?43³>d¿rqè¾.d¿˜xè¾kÖo´tQë4€¿€¿63s?43³>ég¿y7¾y–¾
g¿=¾kx–¾Y7ï²vxs¿€¿ÎÌÌ>ÍøD¿y7¾Ã¿ øD¿=¾6¿y?oƒ²¼O¿€¿ÍÌL=ÎÌÌ>ÿy7¾ÌøD¿2¿=¾
øD¿ÀO?‡­!3y¿€¿ÍÌÌ=ÎÌÌ>y–¾y7¾çg¿†x–¾=¾g¿qxs?‚R²v7¾€¿š™>ÎÌÌ>y7¾yxs¿=¾Šws¿€?ŠTÿ²âò%2€¿ÍÌL>ÎÌÌ>y>y7¾æg¿x>=¾g¿pxs?{2€7>€¿€>ÎÌÌ>Á?y7¾ÊøD¿9?=¾øD¿ºO?!¾Û1y?€¿š™™>ÎÌÌ>ÉøD?y7¾À¿ øD?=¾3¿y?$ÿ–²¿O?€¿43³>ÎÌÌ>ãg?y7¾y–¾g?=¾‰x–¾y7>Ô͉²qxs?€¿ÎÌÌ>ÎÌÌ>uxs?y7¾Šws?=¾mnį“—°€?€¿hfæ>ÎÌÌ>ãg?y7¾y>g?=¾Šx>z7¾Tk²qxs?€¿?ÎÌÌ>ÈøD?y7¾¿?
øD?ù<¾6?y¿Çx¬²½O?€¿ÎÌ ?ÎÌÌ>¿?y7¾ÇøD?4?ú<¾
øD?¿O¿ ¾2y?€¿›™?ÎÌÌ>y>y7¾ág?‡x>ÿ<¾g?qxs¿Æ]€2v7>€¿hf&?ÎÌÌ>qxó2y7¾sxs?=¾Œws?€¿€¸²$Iï±€¿533?ÎÌÌ>y–¾y7¾àg?x–¾=¾g?pxs¿Ø•°1~7¾€¿@?ÎÌÌ>½¿y7¾ÆøD?6¿=¾
øD?½O¿”™2y¿€¿ÏÌL?ÎÌÌ>ÅøD¿y7¾¾?
øD¿ÿ<¾5?y¿o`¬1½O¿€¿œ™Y?ÎÌÌ>ßg¿y7¾y>g¿ÿ<¾ˆx>w7¾ĞZ´¯qxs¿€¿iff?ÎÌÌ>qxs¿y7¾Œws¿ü<¾4>á³İG­4€¿€¿63s?ÎÌÌ>yp¿U0 ¾ÖDœ¾ßxp¿b6 ¾‰Dœ¾X7>C®²vxs¿€¿hfæ>L¿U0 ¾Ü¿ÉL¿Z6 ¾³¿y?R¹±½O¿€¿ÍÌL=hfæ>Ü¿U0 ¾L¿¯¿c6 ¾ËL¿¿O?‘ËÓ1y¿€¿ÍÌÌ=hfæ>ÕDœ¾U0 ¾yp¿¥Dœ¾c6 ¾Úxp¿qxs?ñh¤1u7¾€¿š™>hfæ>U0 ¾-Ù|¿^6 ¾èØ|¿€?LÊc²ÎU1€¿ÍÌL>hfæ>ÕDœ>U0 ¾yp¿±Dœ>_6 ¾Øxp¿oxs?Ätݰ7>€¿€>hfæ>Ú?U0 ¾ÿL¿·?\6 ¾ÅL¿¹O?şÜ†2y?€¿š™™>hfæ>şL?U0 ¾Ù¿ÊL?X6 ¾°¿y? t¤±¾O?€¿43³>hfæ>yp?U0 ¾ÒDœ¾Úxp?Q6 ¾¨Dœ¾w7>3
ذqxs?€¿ÎÌÌ>hfæ>)Ù|?U0 ¾èØ|?E6 ¾GJ"/'€0€?€¿hfæ>hfæ>yp?U0 ¾ÒDœ>Úxp?E6 ¾¬Dœ>{7¾NP±pxs?€¿?hfæ>ıL?U0 ¾ØL?O6 ¾µ?y¿4Ÿ±¼O?€¿ÎÌ ?hfæ>Ø?U0 ¾üL?±?Z6 ¾ÊL?¾O¿4õ©1y?€¿›™?hfæ>ÒDœ>U0 ¾yp?§Dœ>a6 ¾Úxp?qxs¿Ğ92v7>€¿hf&?hfæ>%Ùü2U0 ¾'Ù|?]6 ¾èØ|?€¿zƒ·±i€¿533?hfæ>ÏDœ¾U0 ¾yp?¬Dœ¾\6 ¾Øxp?pxs¿†õݰ|7¾€¿@?hfæ>Ö¿U0 ¾ûL?´¿Z6 ¾ÉL?¼O¿Rë1y¿€¿ÏÌL?hfæ>úL¿U0 ¾×L¿[6 ¾´?y¿¯©±¼O¿€¿œ™Y?hfæ>yp¿U0 ¾ĞDœ>Úxp¿W6 ¾ªDœ>y7¾kPƒ±qxs¿€¿iff?hfæ>%Ù|¿U0 ¾èØ|¿\6 ¾…Xײşí)4€¿€¿63s?hfæ>{xs¿€7¾uxs¿Z7¾Z7>vxs¿€¿O¿y¿½O¿y¿y?½O¿€¿ÍÌL=?y¿ÅO¿y¿¿O¿¿O?y¿€¿ÍÌÌ=?7¾yxs¿o7¾qxs¿rxs?p7¾€¿š™>?€¿€¿€?€¿ÍÌL>?7>xxs¿7>pxs¿pxs?7>€¿€>?y?ÂO¿y?ºO¿ºO?y?€¿š™™>O?y¿¾O?y¿y?¾O?€¿43³>?uxs?|7¾qxs?x7¾x7>qxs?€¿ÎÌÌ>?€?€?€?€¿hfæ>?uxs?|7>qxs?}7>|7¾pxs?€¿?O?yO?y?y¿¼O?€¿ÎÌ ??y?¿O?y?¾O?¾O¿y?€¿›™??|7>sxs?s7>qxs?rxs¿s7>€¿hf&??3€?€?€¿€¿533??y7¾rxs?{7¾qxs?pxs¿{7¾€¿@??y¿¾O?y¿½O?½O¿y¿€¿ÏÌL?O¿yO¿y?y¿½O¿€¿œ™Y??qxs¿z7>qxs¿{7>{7¾pxs¿€¿iff??€¿€¿€¿€¿63s??yp¿U0 >ÖDœ¾ßxp¿b6 >Dœ¾Z7>˜×|2vxs¿€¿ÎÌ ?L¿U0 >Ü¿ÉL¿Z6 >³¿y? v1½O¿€¿ÍÌL=ÎÌ ¿U0 >L¿¯¿b6 >ËL¿¿O?Õ<
²y¿€¿ÍÌÌ=ÎÌ ?ÕDœ¾U0 >yp¿£Dœ¾b6 >Úxp¿rxs?Ìhc²s7¾€¿š™>ÎÌ ?U0 >-Ù|¿_6 >èØ|¿€?\Š2/1€¿ÍÌL>ÎÌ ?ÕDœ>U0 >yp¿±Dœ>_6 >Øxp¿oxs?¸€±7>€¿€>ÎÌ ?U0 >ÿL¿·?]6 >ÆL¿ºO? ²y?€¿š™™>ÎÌ L?U0 >Ù¿ÊL?X6 >°¿yÏ1¾O?€¿43³>ÎÌ ?yp?U0 >ÒDœ¾Úxp?R6 >©Dœ¾x7>|%n1qxs?€¿ÎÌÌ>ÎÌ ?)Ù|?U0 >èØ|?F6 >GJ"¯(€0€?€¿hfæ>ÎÌ ?yp?U0 >ÒDœ>Úxp?F6 >¬Dœ>{7¾¢üf0pxs?€¿?ÎÌ ?ıL?U0 >ØL?O6 >´?y¿wP?2¼O?€¿ÎÌ ?ÎÌ ?U0 >üL?°?X6 >ÊL?¾O¿†#@²y?€¿›™?ÎÌ ?ÒDœ>U0 >yp?¦Dœ>_6 >Úxp?qxs¿Œü—²v7>€¿hf&?ÎÌ ?%Ùü2U0 >'Ù|?_6 >èØ|?€¿óŸú1ËͰ€¿533?ÎÌ ?ÏDœ¾U0 >yp?¬Dœ¾]6 >Øxp?pxs¿Q~ °|7¾€¿@?ÎÌ ¿U0 >ûL?´¿[6 >ÉL?¼O¿ü»^°y¿€¿ÏÌL?ÎÌ L¿U0 >×L¿[6 >´?y¿ O¹1¼O¿€¿œ™Y?ÎÌ ?yp¿U0 >ĞDœ>Úxp¿X6 >«Dœ>z7¾¤#Ù1qxs¿€¿iff?ÎÌ ?%Ù|¿U0 >èØ|¿[6 >°.زı–*´€¿€¿63s?ÎÌ g¿y7>y–¾g¿=>lx–¾[7>—<æ1vxs¿€¿›™?ÍøD¿y7¿ øD¿=>6¿y?Íh;2¼O¿€¿ÍÌL=›™¿y7>ÌøD¿3¿=>
øD¿¿O?€ ª²y¿€¿ÍÌÌ=›™?y–¾y7g¿…x–¾=>g¿qxs?§²t7¾€¿š™>›™?y7>yxs¿=>Šws¿€?Dó›2G·Ê1€¿ÍÌL>›™?y>y7g¿x>=>g¿pxs?'§/€7>€¿€>›™?y7>ÊøD¿9?=>øD¿ºO?Ñøµ°y?€¿š™™>›™?ÉøD?y7¿ øD?=>3¿y?$82¾O?€¿43³>›™g?y7>y–¾g?=>ˆx–¾w7>Uô#1qxs?€¿ÎÌÌ>›™?uxs?y7>Šws?=>mnÄ/—°€?€¿hfæ>›™g?y7>y>g?=>Šx>z7¾óWà0qxs?€¿?›™?ÈøD?y7>¿?
øD?ú<>6?y¿Wlî2½O?€¿ÎÌ ?›™?¿?y7>ÇøD?5?ú<>
øD?¾O¿ŒùÔ®y?€¿›™?›™?y>y7g?†x>ÿ<>g?qxs¿#;³u7>€¿hf&?›™?qxó2y7>sxs?=>Œws?€¿¾3&µ'²€¿533?›™?y–¾y7g?x–¾=>g?pxs¿jú­²}7¾€¿@?›™¿y7>ÆøD?4¿=>
øD?¾O¿¤Oã2y¿€¿ÏÌL?›™?ÅøD¿y7?
øD¿=>6?y¿ç>Ó2½O¿€¿œ™Y?›™g¿y7>y>g¿ş<>ˆx>w7¾}Ãòqxs¿€¿iff?›™?qxs¿y7>Œws¿ÿ<>Êpܳ–©´€¿€¿63s?›™?ïX¿rqè>âøŒ¾SíX¿Ÿxè>÷Œ¾Y7>±3vxs¿€¿hf&?÷ˆ8¿rqè>¿t‡8¿xè>z¿y?©‘²¼O¿€¿ÍÌL=hf&?¿rqè>öˆ8¿u¿ xè>u‡8¿¿O?F1y¿€¿ÍÌÌ=hf&?áøŒ¾rqè>ïX¿µ÷Œ¾£xè>OíX¿rxs?6`²t7¾€¿š™>hf&?rqè>d¿£xè>,d¿€?b+2¾¬®1€¿ÍÌL>hf&?áøŒ>rqè>ïX¿¿÷Œ>£xè>LíX¿pxs?/Pv°7>€¿€>hf&??rqè>óˆ8¿|? xè>q‡8¿ºO?šLs2y?€¿š™™>hf&?òˆ8?rqè>¿u‡8?xè>v¿y?òC²¿O?€¿43³>hf&?ïX?rqè>ŞøŒ¾OíX?Ÿxè>º÷Œ¾x7>FĞg2qxs?€¿ÎÌÌ>hf&?d?rqè>,d?¡xè>øÆ1$3†±€?€¿hfæ>hf&?ïX?rqè>ŞøŒ>OíX?£xè>»÷Œ>y7¾©§„°qxs?€¿?hf&?òˆ8?rqè>?r‡8?¢xè>z?y¿H^²¼O?€¿ÎÌ ?hf&??rqè>ñˆ8?w?xè>t‡8?¾O¿ª¨2y?€¿›™?hf&?ŞøŒ>rqè>ïX?º÷Œ>xè>PíX?qxs¿z˜¥1x7>€¿hf&?hf&?ä2rqè>d?xè>,d?€¿¾I13p±´²€¿533?hf&?ÜøŒ¾rqè>
ïX?¾÷Œ¾œxè>OíX?pxs¿sH1}7¾€¿@?hf&?Œ¿rqè>ğˆ8?x¿›xè>u‡8?¾O¿ML2y¿€¿ÏÌL?hf&?ïˆ8¿rqè>?t‡8¿™xè>y?y¿ÄvÀ2½O¿€¿œ™Y?hf&? ïX¿rqè>İøŒ>PíX¿›xè>º÷Œ>x7¾`Æ1qxs¿€¿iff?hf&?d¿rqè>.d¿œxè>)ïo´¿ië´€¿€¿63s?hf&?ÍøD¿y?€¾ öD¿ò|?Rü¾X7>çM3vxs¿€¿533?æ'¿y?zx󾙋'¿ó|?%uó¾y?CpR2¼O¿€¿ÍÌL=533?zxó¾y'¿#uó¾ò|?'¿¿O?ú­:°y¿€¿ÍÌÌ=533?€¾y?ËøD¿ü¾ğ|?öD¿rxs?v"2s7¾€¿š™>533?yO¿ò|O¿€?ßÎL3Ó3€¿ÍÌL>533?€>y?ÊøD¿”ü>ò|?öD¿pxs?¹³7>€¿€>533?wxó>y'¿.uó>ñ|?™‹'¿ºO?[s·²y?€¿š™™>533?â'?y?uxó¾'?ï|?#uó¾y?$<L²¿O?€¿43³>533?ÈøD?y?€¾öD?ğ|?‰ü¾w7>Ä‚W2qxs?€¿ÎÌÌ>533?ÀO?y?óO?ï|?d†ï1WĞ$²€?€¿hfæ>533?ÈøD?y?€>öD?ñ|?Šü>y7¾Ù±13qxs?€¿?533?á'?y?txó>š‹'?ñ|?(uó>y¿'Ôñ2¼O?€¿ÎÌ ?533?txó>y'?$uó>ğ|?'?¾O¿]M³y?€¿›™?533?€>y?ÆøD?ü>ï|?öD?qxs¿·12y7>€¿hf&?533?½Ï2y?¿O?î|O?€¿±gó°ıް0€¿533?533?ÿÿ¾y?ÆøD?–ü¾ğ|?öD?pxs¿9ŒS17¾€¿@?533?qxó¾y'?)uó¾ğ|?œ‹'?½O¿Üî^²y¿€¿ÏÌL?533?ß'¿y?rxó>'¿ğ|?(uó>y¿”gJ²½O¿€¿œ™Y?533?ÅøD¿y?€>öD¿ï|?‡ü>v7¾&ñò±qxs¿€¿iff?533?½O¿y?óO¿í|?ÌÒÈ´/
µ€¿€¿63s?533?ä(,¿ó5?™À_¾%,¿5?ú»_¾Y7>Pù–3vxs¿€¿@?¤r¿ó5?ÍÔ¾ºo¿‚5?ãÈÔ¾y?Y°Ğ³»O¿€¿ÍÌL=@?ÍÔ¾ó5?£r¿İÈÔ¾5?Ào¿¿O?Õ.[³y¿€¿ÍÌÌ=@?˜À_¾ó5?ã(,¿)¼_¾~5?}%,¿qxs?ÎÿÁ2v7¾€¿š™>@?ó5?ù5¿~5?h5¿€?˜3
‡˜3€¿ÍÌL>@?˜À_>ó5?â(,¿6¼_>}5?~%,¿pxs?rğI3€7>€¿€>@?ÍÔ>ó5?¡r¿æÈÔ>~5?½o¿ºO?H3y?€¿š™™>@? r5?ÍÔ¾¿o?~5?ßÈÔ¾y?ÀeO?€¿43³>@?à(,?ó5?“À_¾~%,?}5?+¼_¾w7œ¯qxs?€¿ÎÌÌ>@?ö5?ó5?i5?}5?&O8±ñG81€?€¿hfæ>@?à(,?ó5?“À_>~%,?~5?/¼_>z7¾ÚW±qxs?€¿?@? r5?ÍÔ>¿o?~5?çÈÔ>y¿À®±»O?€¿ÎÌ ?@?ÍÔ>ó5?Ÿr?âÈÔ>}5?ÂoO¿PJ‡²y?€¿›™?@?“À_>ó5?Ş(,?,¼_>}5?€%,?qxs¿õlM²v7>€¿hf&?@?óµ2ó5?ô5?|5?j5?€¿Ê€²Ğ•€2€¿533?@?À_¾ó5?Ş(,?5¼_¾|5?~%,?pxs¿Ì]²}7¾€¿@?@?
ÍÔ¾ó5?r?èÈÔ¾{5?ÁoO¿³y¿€¿ÏÌL?@?r¿ó5?ÍÔ>Áo¿{5?æÈÔ>y¿3ì°½O¿€¿œ™Y?@?İ(,¿ó5?‘À_>%,¿|5?.¼_>x7¾Z62qxs¿€¿iff?@?ó5¿ó5?j5¿{5?Bµè<µ€¿€¿63s?@?ÿ½O?¸ş9¾¿O?Éù9¾\7>üׇ³uxs¿€¿ÏÌL?{xó¾½O?Jä°¾)ró¾‹O?¿ß°¾y?–\V´»O¿€¿ÍÌL=ÏÌL?Jä°¾½O?zxó¾²ß°¾‹O?4ró¾¿O?¦¬Ë³y¿€¿ÍÌÌ=ÏÌL?·ş9¾½O?¿äù9¾ŒO?¿qxs?n]2v7¾€¿š™>ÏÌL?½O?y¿O?;u¿€?;03š¡Õ3€¿ÍÌL>ÏÌL?·ş9>½O?Á¿òù9>O?¿oxs?íŒ27>€¿€>ÏÌL?Hä°>½O?vxó¾½ß°>O?.ró¾ºO?Éÿ3y?€¿š™™>ÏÌL?uxó>½O?Fä°¾0ró>O?·ß°¾y? ͹3¿O?€¿43³>ÏÌL?¿O?³ş9¾?O?êù9¾x7>õw93qxs?€¿ÎÌÌ>ÏÌL?yO?<uO?t~D±G½1€?€¿hfæ>ÏÌL?¿O?³ş9>O?õù9>}7¾ğ_´pxs?€¿?ÏÌL?txó>½O?Eä°>.ró>ŠO?½ß°>y¿T¸¤³»O?€¿ÎÌ ?ÏÌL?Eä°>½O?sxó>¸ß°>O?3ró>¾O¿e1y?€¿›™?ÏÌL?³ş9>½O?¾?èù9>O??qxs¿8;S²w7>€¿hf&?ÏÌL?yO?y?ŠO?>u?€¿¬+‰2õÓ¼²€¿533?ÏÌL?°ş9¾½O?¾?éù9¾‰O??qxs¿=²g3x7¾€¿@?ÏÌL?Cä°¾½O?rxó>¼ß°¾‰O?4ró>¼O¿²§œ2y¿€¿ÏÌL?ÏÌL?qxó¾½O?Dä°>5ró¾‰O?»ß°>y¿ZÚ‡²½O¿€¿œ™Y?ÏÌL?½¿½O?±ş9>¿ŠO?ğù9>x7¾0Š3qxs¿€¿iff?ÏÌL?y¿½O?>u¿ŠO?Çd>µ×N
µ€¿€¿63s?ÏÌL?ݾd?i¨¾
ݾÛd?Σ¾]7>9æú³uxs¿€¿œ™Y?ó ¼¾d?r ˆ¾¼¾Úd?-œˆ¾y?8'/´»O¿€¿ÍÌL=œ™Y?r ˆ¾d?ò ¼¾"œˆ¾Úd?¼¾ÀO?ˆr´y¿€¿ÍÌÌ=œ™Y?h¨¾d?ݾܣ¾Ûd?
ݾrxs?t³§²s7¾€¿š™>œ™Y?d?yqè¾İd?'jè¾€?/¤53êE²3€¿ÍÌL>œ™Y?h¨>d?ݾì£d?
ݾoxs?m†³7>€¿€>œ™Y?p ˆ>d?ï ¼¾*œˆ>Ûd?¼¾ºO?~Œ³y?€¿š™™>œ™Y?î ¼>d?o ˆ¾
¼>Ûd?"œˆ¾y? “ɳ¿O?€¿43³>œ™Y?İ>d?e¨¾&
İ>Úd?棾w7>ğœ01qxs?€¿ÎÌÌ>œ™Y?vqè>d?4jè>Ød?G1×1,B[±€?€¿hfæ>œ™Y?İ>d?e¨>#
İ>Ød?ö£>7¾g30´pxs?€¿?œ™Y?í ¼>d?n ˆ> ¼>Úd?&œˆ>y¿İf¼3¼O?€¿ÎÌ ?œ™Y?n ˆ>d?í ¼>&œˆ>Ûd? ¼>½O¿èà‡2y?€¿›™?œ™Y?e¨>d?
İ>å£d?+
İ>qxs¿%»K³v7>€¿hf&?œ™Y?rqh2d?tqè>Ød?9jè>€¿øY83Äî´³€¿533?œ™Y?c¨¾d? İ>죾Úd?&
İ>pxs¿‘%ı²{7¾€¿@?œ™Y?l ˆ¾d?ì ¼>)œˆ¾Úd? ¼>½O¿±é0y¿€¿ÏÌL?œ™Y?ë ¼¾d?m ˆ> ¼¾Ød?+œˆ>y¿ÁÖ`3½O¿€¿œ™Y?œ™Y? ݾd?d¨>&
ݾÚd?é£>x7¾´ğ
3qxs¿€¿iff?œ™Y?rqè¾d?0jè¾Úd?dµ;^è´€¿€¿63s?œ™Y?y–¾qxs?‘ý¹s–¾]ys?ô‰Ã½\7> «³uxs¿€¿iff?€¾qxs?¸ş9¾Õö¾[ys?ø9¾y?(Ïi´»O¿€¿ÍÌL=iff?¸ş9¾qxs?€¾ø9¾[ys?ğö¾¿O?bk´y¿€¿ÍÌÌ=iff?‘ýqxs?y–¾ŠÃ½]ys?·s–¾qxs? µS±t7¾€¿š™>iff?qxs?7¾]ys?Ì1¾€?03Ø„4€¿ÍÌL>iff?‘Ã=qxs?y–¾ŠÃ=]ys?µs–¾oxs?d.7>€¿€>iff?¶ş9>qxs?€¾ø9>[ys?Ûö¾»O?‚ä3y?€¿š™™>iff?€>qxs?µş9¾ãö>]ys?ş÷9¾y?'h>´¿O?€¿43³>iff?y>qxs?‘ýºs>[ys?ŠÃ½v7>¿´ï3qxs?€¿ÎÌÌ>iff?|7>qxs?Õ1>[ys?GÈ.Ö ®€?€¿hfæ>iff?y>qxs?‘Ã=ºs>[ys?BŠÃ=|7¾Ë—¯´pxs?€¿?iff?€>qxs?´ş9>İö>[ys? ø9>y¿α3¼O?€¿ÎÌ ?iff?´ş9>qxs?€>
ø9>[ys?ßöO¿¦±y?€¿›™?iff?‘Ã=qxs?y> ŠÃ=[ys?¼s>qxs¿¸SŒ²u7>€¿hf&?iff?z72qxs?{7>[ys?Ò1>€¿°832ü
´€¿533?iff? ‘ýqxs?y>ŠÃ½[ys?ºs>pxs¿’L³{7¾€¿@?iff?±ş9¾qxs?€>ø9¾[ys?âöO¿ŸH3y¿€¿ÏÌL?iff?€¾qxs?²ş9>àö¾[ys?ø9>y¿ğ•²½O¿€¿œ™Y?iff?y–¾qxs?
‘Ã=¼s–¾[ys?#ŠÃ=z7¾¬
à3qxs¿€¿iff?iff?z7¾qxs?Õ1¾[ys?'µvÕ§´€¿€¿63s?iff?KY¾%Ù|?'F½]S¾cÙ|?(ùE½\7>?4uxs¿€¿63s?{˜¾%Ù|??P¼½n“¾eÙ|?ZH¼½y?áşd5¾O¿€¿ÍÌL=63s??P¼½%Ù|?{˜¾æH¼½eÙ|?D“¾¾O?lÅ4y¿€¿ÍÌÌ=63s?%F½%Ù|?JY¾iùE½cÙ|?bS¾rxs?¶‹Æ²s7¾€¿š™>63s?%Ù|?a0 ¾cÙ|?* ¾€?gÉ2ú4€¿ÍÌL>63s?%F=%Ù|?IY¾vùE=cÙ|?SS¾pxs?×·³7>€¿€>63s?=P¼=%Ù|?y˜¾ğH¼=eÙ|?N“¾ºO?ꮓ´y?€¿š™™>63s?x˜>%Ù|?;P¼½r“>eÙ|?wH¼½y?TÅ7µÀO?€¿43³>63s?GY>%Ù|?"F½\S>cÙ|?XùE½z7>ä¸Â³qxs?€¿ÎÌÌ>63s?_0 >%Ù|?(* >cÙ|?ÿ²ú²„Í1€?€¿hfæ>63s?GY>%Ù|?"F=]S>cÙ|?ˆùE={7¾*%š³pxs?€¿?63s?x˜>%Ù|?:P¼=q“>cÙ|?ÓH¼=y¿ŸŠ:4¼O?€¿ÎÌ ?63s?:P¼=%Ù|?w˜>ëH¼=cÙ|?‚“O¿å´y?€¿›™?63s?"F=%Ù|?FY>oùE=cÙ|?ZS>qxs¿%Ó¤2v7>€¿hf&?63s?\0 1%Ù|?]0 >eÙ|? * >€¿+×2j×)´€¿533?63s?F½%Ù|?EY>}ùE½cÙ|?WS>pxs¿³ñd³|7¾€¿@?63s?8P¼½%Ù|?v˜>òH¼½eÙ|?T“O¿(<˜´y¿€¿ÏÌL?63s?v˜¾%Ù|?9P¼=t“¾eÙ|?€H¼=y¿[¶5µ¾O¿€¿œ™Y?63s?EY¾%Ù|?F=^S¾cÙ|?aùE=w7¾8Xj³qxs¿€¿iff?63s?\0 ¾%Ù|?)* ¾cÙ|?¶[ˆµÚ¿,´€¿€¿63s?63s?€¿€¿iqè>d¿€??€?€?iqè>d¿€??€?y–¾qxs¿‘ý¹s–¾]ys¿ò‰Ã½\7>¿3uxs¿€¿€?ÍÌÌ=KY¾%Ù|¿'F½]S¾cÙ|¿1úE½a7X5uxs¿€¿€?ÍÌL=ݾd¿i¨¾
ݾÛd¿Ï£¾]7>Pô4uxs¿€¿€?š™¿½O¿¸ş9¾¿O¿Åù9¾\7>ñZ2vxs¿€¿€?ÍÌL>ä(,¿ó5¿™À_¾€%,¿€5¿÷»_¾X7>Så³vxs¿€¿€?€>ÍøD¿y¿€¾ öD¿ñ|¿Uü¾Y7>£”³vxs¿€¿€?š™™>ïX¿rqè¾âøŒ¾UíX¿œxè¾÷Œ¾X7>.G†³vxs¿€¿€?43³>ég¿y7¾y–¾
g¿=¾kx–¾Y7ï²vxs¿€¿€?ÎÌÌ>yp¿U0 ¾ÖDœ¾ßxp¿b6 ¾‰Dœ¾X7>C®²vxs¿€¿€?hfæ>{xs¿€7¾uxs¿Z7¾Z7>vxs¿€¿€??yp¿U0 >ÖDœ¾ßxp¿b6 >Dœ¾Z7>˜×|2vxs¿€¿€?ÎÌ g¿y7>y–¾g¿=>lx–¾[7>—<æ1vxs¿€¿€?›™?ïX¿rqè>âøŒ¾SíX¿Ÿxè>÷Œ¾Y7>±3vxs¿€¿€?hf&?ÍøD¿y?€¾ öD¿ò|?Rü¾X7>çM3vxs¿€¿€?533?ä(,¿ó5?™À_¾%,¿5?ú»_¾Y7>Pù–3vxs¿€¿€?@?ÿ½O?¸ş9¾¿O?Éù9¾\7>üׇ³uxs¿€¿€?ÏÌL?ݾd?i¨¾
ݾÛd?Σ¾]7>9æú³uxs¿€¿€?œ™Y?y–¾qxs?‘ý¹s–¾]ys?ô‰Ã½\7> «³uxs¿€¿€?iff?KY¾%Ù|?'F½]S¾cÙ|?(ùE½\7>?4uxs¿€¿€?63s?€¿€¿ò5?õ5¿€??€¿€¿d?oqè¾€??€¿€¿%Ù|?I0 ¾€??€¿€¿$Ù|?k0 >€¿?€¿€¿ÿd?xqè>€¿?€¿€¿ñ5?ö5?€¿?€¿€¿kqè>d?€¿?€¿€¿R0 >%Ù|?€¿?€¿€¿a0 ¾$Ù|?€¿?€¿€¿tqè¾d?€¿?€¿€¿ô5¿ò5?€¿?€¿€¿d¿oqè>€¿?€¿€¿%Ù|¿T0 >€¿?€¿€¿$Ù|¿a0 ¾€¿?€¿€¿d¿kqè¾€¿?€¿€¿÷5¿ï5¿€??€¿€¿}qè¾şd¿€??€¿€¿u0 ¾$Ù|¿€??€¿€¿C0 >&Ù|¿€??€?€?ò5?õ5¿€??€?€?€?d?oqè¾€??€?€?€?%Ù|?I0 ¾€??€?€?€?$Ù|?k0 >€¿?€?€?€?ÿd?xqè>€¿?€?€?€?ñ5?ö5?€¿?€?€?€?kqè>d?€¿?€?€?€?R0 >%Ù|?€¿?€?€?€?a0 ¾$Ù|?€¿?€?€?€?tqè¾d?€¿?€?€?€?ô5¿ò5?€¿?€?€?€?d¿oqè>€¿?€?€?€?%Ù|¿T0 >€¿?€?€?€?$Ù|¿a0 ¾€¿?€?€?€?d¿kqè¾€¿?€?€?€?÷5¿ï5¿€??€?€?€?}qè¾şd¿€??€?€?€?u0 ¾$Ù|¿€??€?€?€?C0 >&Ù|¿€??€?4@´€?€?€?A€?Cube$???H


  (0@?¿?€?€¿€¿~ä0?ˆ¿±>¿¿?€?€¿€¿€?ü$?ˆ¿±>???€?€¿€¿€?~ä0?@ '?¿??€?€¿€¿€?€?ü$?@ '???¿€?€¿€¿€?””>ƒ¿±>¿?¿€?€¿€¿€?€?<æ„;ƒ¿±>?¿¿€¿€¿€¿€?ƒ¿±>@ '?¿¿¿€¿€¿€¿€?€?@ '?@ '????€?€¿€¿””>@ '?¿??€?€¿€¿€?<æ„;@ '???¿€¿€¿€¿ƒ¿±>ƒ¿±>¿?¿€¿€¿€¿€?@ '?ƒ¿±>?¿¿€¿€¿€¿ƒ¿±><æ„;?¿?€¿€¿€¿€?ƒ¿±>””>¿¿?€¿€¿€¿€?€?@ '?””>¿¿¿€¿€¿€¿€?@ '?<æ„;¿¿?€¿€¿€¿¸µ0?””>¿??€¿€¿€¿€?4ö~?””>¿?¿€¿€¿€¿€?€?4ö~?<æ„;¿¿¿€¿€¿€¿€?¸µ0?<æ„;?¿¿€?€?€¿””><æ„;??¿€?€?€¿€?<æ„;<æ„;???€?€?€¿€?€?<æ„;””>?¿?€?€?€¿€?””>””>???€?ï=+A
pCylinder1ğ|4@´€?€?€?à,(-./,01.230452674896:;8<=:>?<@A>BC@DEBFGDHIFJKHLMJNOLPQNRSPT)UUVWWXYYZ[[\]]^__`aabccdeefgghiijkklmmnoopqqrsstuuvwwxyyz{  

  ! !
!"
""###$$$%%%&&&'''**+| (@{xs¿€¿€7¾uxs¿X7¾Y7>vxs¿€¿ƒù">ÆO¿€¿y¿½O¿y¿y?½O¿€¿ÍÌL=ƒù">y¿€¿ÅO¿y¿¿O¿¿O?y¿€¿ÍÌÌ=ƒù">7¾€¿yxs¿s7¾qxs¿rxs?s7¾€¿š™>ƒù">€¿€¿€¿€?€¿ÍÌL>ƒù">7>€¿xxs¿~7>pxs¿pxs?~7>€¿€>ƒù">y?€¿ÂO¿y?ºO¿ºO?y?€¿š™™>ƒù">ÁO?€¿y¿¿O?y¿y?¿O?€¿43³>ƒù">uxs?€¿|7¾qxs?v7¾v7>qxs?€¿ÎÌÌ>ƒù">€?€¿€?€?€¿hfæ>ƒù">uxs?€¿|7>qxs?{7>{7¾pxs?€¿?ƒù">ÀO?€¿yO?y?y¿»O?€¿ÎÌ ?ƒù">y?€¿¿O?y?¾O?¾O¿y?€¿›™?ƒù">|7>€¿sxs?x7>qxs?qxs¿x7>€¿hf&?ƒù">3€¿€?€?€¿€¿533?ƒù">y7¾€¿rxs?}7¾qxs?pxs¿|7¾€¿@?ƒù">y¿€¿¾O?y¿½O?½O¿y¿€¿ÏÌL?ƒù">½O¿€¿yO¿y?y¿½O¿€¿œ™Y?ƒù">qxs¿€¿z7>qxs¿x7>x7¾qxs¿€¿iff?ƒù">€¿€¿€¿€¿€¿63s?ƒù">{xs¿€?€7¾uxs¿X7¾Y7>vxs¿€¿Dvô>ÆO¿€?y¿½O¿y¿y?½O¿€¿ÍÌL=Dvô>y¿€?ÅO¿y¿¿O¿¿O?y¿€¿ÍÌÌ=Dvô>7¾€?yxs¿s7¾qxs¿rxs?s7¾€¿š™>Dvô>€?€¿€¿€?€¿ÍÌL>Dvô>7>€?xxs¿~7>pxs¿pxs?~7>€¿€>Dvô>y?€?ÂO¿y?ºO¿ºO?y?€¿š™™>Dvô>ÁO?€?y¿¿O?y¿y?¿O?€¿43³>Dvô>uxs?€?|7¾qxs?v7¾v7>qxs?€¿ÎÌÌ>Dvô>€?€?€?€?€¿hfæ>Dvô>uxs?€?|7>qxs?{7>{7¾pxs?€¿?Dvô>ÀO?€?yO?y?y¿»O?€¿ÎÌ ?Dvô>y?€?¿O?y?¾O?¾O¿y?€¿›™?Dvô>|7>€?sxs?x7>qxs?qxs¿x7>€¿hf&?Dvô>3€?€?€?€¿€¿533?Dvô>y7¾€?rxs?}7¾qxs?pxs¿|7¾€¿@?Dvô>y¿€?¾O?y¿½O?½O¿y¿€¿ÏÌL?Dvô>½O¿€?yO¿y?y¿½O¿€¿œ™Y?Dvô>qxs¿€?z7>qxs¿x7>x7¾qxs¿€¿iff?Dvô>€¿€?€¿€¿€¿63s?Dvô>€¿€¿iqè>d¿€??€?€?iqè>d¿€??ƒù"?{xs¿€?€7¾uxs¿X7¾Y7>vxs¿€¿€?Dvô>{xs¿€¿€7¾uxs¿X7¾Y7>vxs¿€¿€?ƒù">ÆO¿€¿y¿€¿y?¼O¿€¿ÍÌL=ƒù">{xs¿€¿€7¾€¿\7>uxs¿€¿ƒù">y¿€¿ÅO¿€¿¿O?y¿€¿ÍÌÌ=ƒù">€¿€¿ò5?õ5¿€??7¾€¿yxs¿€¿rxs?t7¾€¿š™>ƒù">€¿€¿d?oqè¾€??€¿€¿€¿€?ãÃ3€¿ÍÌL>ƒù">€¿€¿%Ù|?I0 ¾€??7>€¿xxs¿€¿pxs?7>€¿€>ƒù">€¿€¿$Ù|?k0 >€¿?y?€¿ÂO¿€¿ºO?y?€¿š™™>ƒù">€¿€¿ÿd?xqè>€¿?ÁO?€¿y¿€¿y?¿O?€¿43³>ƒù">€¿€¿ñ5?ö5?€¿?uxs?€¿|7¾€¿v7>qxs?€¿ÎÌÌ>ƒù">€¿€¿kqè>d?€¿?€?€¿€¿Çpß"€?€¿hfæ>ƒù">€¿€¿Q0 >%Ù|?€¿?uxs?€¿|7>€¿z7¾pxs?€¿?ƒù">€¿€¿b0 ¾$Ù|?€¿?ÀO?€¿y?€¿y¿¼O?€¿ÎÌ ?ƒù">€¿€¿sqè¾d?€¿?y?€¿¿O?€¿¾O¿y?€¿›™?ƒù">€¿€¿ô5¿ò5?€¿?|7>€¿sxs?€¿qxs¿x7>€¿hf&?ƒù">€¿€¿d¿oqè>€¿?3€¿€?€¿€¿Ö;г€¿533?ƒù">€¿€¿%Ù|¿U0 >€¿?y7¾€¿rxs?€¿pxs¿|7¾€¿@?ƒù">€¿€¿$Ù|¿a0 ¾€¿?y¿€¿¾O?€¿½O¿y¿€¿ÏÌL?ƒù">€¿€¿d¿kqè¾€¿?½O¿€¿y?€¿y¿½O¿€¿œ™Y?ƒù">€¿€¿÷5¿ï5¿€??qxs¿€¿z7>€¿x7¾qxs¿€¿iff?ƒù">€¿€¿}qè¾şd¿€??€¿€¿€¿»XŒµ€¿€¿63s?ƒù">€¿€¿u0
   + *+**6+)*)*56)5*5A6()()45(4)5@A4@5@LA'('(34'3(4?@3?4@KL?K@KWL&'&'23&2'3>?2>3?JK>J?KVWJVKVbWVabambJUVUaV>IJIUJ2=>=I>&121=2almlxmlwxU`a`lakwl`klkvwITUT`U=HIHTI_k`T_`jvk_jkjuvS_THST<H=1<=^j_S^_iuj^ijituGSH<GHR^SGRS]i^R]^hti]hihstgshgrs\h]\ghQ]RQ\]FRGFQR;G<;FGfrgfqr[g\[fgP\QP[\EQFEPQeqfepqZf[ZefO[POZ[dpedopYeZYdecodcnoXcdXdYMXYNYZMYNNZOBMNBNCCNO7BCCODDOPDPE7C88CD,789DE8D9,8--89!,-9E::EF:F;!-"!"-9..9:"-./:;.:/" ".##./"#/;00;<0<1  # #/$$/0#$%01$0%%1&%&



$$%%

y (°?¥?€?€¿€¿ÍÌÌ>¥?€?€¿€¿ÍÌÌ=š™™>¥?€?€¿€¿ÍÌL>ÌÌL>¥?€?€¿€¿š™™>ÌÌÌ=¥?€?€¿€¿ÍÌÌ>¥?€?€¿€¿?ĞÌ̽¥?€?€¿€¿š™?ÌÌL¾¥?€?€¿€¿333?š™™¾¥?€?€¿€¿ÍÌL?ÎÌ̾¥?€?€¿€¿gff?¿¥?€?€¿€¿€??ÍÌ̤ÍÌÌ>€?€¿€¿ÍÌÌ=ÍÌÌ>ÍÌ̤ÍÌÌ>€?€¿€¿ÍÌÌ=ÍÌÌ=š™™>ÍÌ̤ÍÌÌ>€?€¿€¿ÍÌL>ÍÌÌ=ÌÌL>ÍÌ̤ÍÌÌ>€?€¿€¿š™™>ÍÌÌ=ÌÌÌ=ÍÌ̤ÍÌÌ>€?€¿€¿ÍÌÌ>ÍÌÌ=ÍÌ̤ÍÌÌ>€?€¿€¿?ÍÌÌ=ĞÌ̽ÍÌ̤ÍÌÌ>€?€¿€¿š™?ÍÌÌ=ÌÌL¾ÍÌ̤ÍÌÌ>€?€¿€¿333?ÍÌÌ=š™™¾ÍÌ̤ÍÌÌ>€?€¿€¿ÍÌL?ÍÌÌ=ÎÌ̾ÍÌ̤ÍÌÌ>€?€¿€¿gff?ÍÌÌ=¿ÍÌ̤ÍÌÌ>€?€¿€¿€?ÍÌÌ=?𙙤š™™>€?€¿€¿ÍÌL>ÍÌÌ>𙙤š™™>€?€¿€¿ÍÌÌ=ÍÌL>š™™>𙙤š™™>€?€¿€¿ÍÌL>ÍÌL>ÌÌL>𙙤š™™>€?€¿€¿š™™>ÍÌL>ÌÌÌ=𙙤š™™>€?€¿€¿ÍÌÌ>ÍÌL>𙙤š™™>€?€¿€¿?ÍÌL>ĞÌÌ½š™™¤š™™>€?€¿€¿š™?ÍÌL>ÌÌL¾š™™¤š™™>€?€¿€¿333?ÍÌL>𙙾𙙤š™™>€?€¿€¿ÍÌL?ÍÌL>ÎÌÌ¾š™™¤š™™>€?€¿€¿gff?ÍÌL>¿š™™¤š™™>€?€¿€¿€?ÍÌL>?ÌÌL¤ÌÌL>€?€¿€¿š™™>ÍÌÌ>ÌÌL¤ÌÌL>€?€¿€¿ÍÌÌ=š™™>š™™>ÌÌL¤ÌÌL>€?€¿€¿ÍÌL>š™™>ÌÌL>ÌÌL¤ÌÌL>€?€¿€¿š™™>š™™>ÌÌÌ=ÌÌL¤ÌÌL>€?€¿€¿ÍÌÌ>š™™>ÌÌL¤ÌÌL>€?€¿€¿?š™™>ĞÌ̽ÌÌL¤ÌÌL>€?€¿€¿š™?š™™>ÌÌL¾ÌÌL¤ÌÌL>€?€¿€¿333?š™™>š™™¾ÌÌL¤ÌÌL>€?€¿€¿ÍÌL?š™™>ÎÌ̾ÌÌL¤ÌÌL>€?€¿€¿gff?š™™>¿ÌÌL¤ÌÌL>€?€¿€¿€?š™™>?ÌÌÌ£ÌÌÌ=€?€¿€¿ÍÌÌ>ÍÌÌ>ÌÌÌ£ÌÌÌ=€?€¿€¿ÍÌÌ=ÍÌÌ>š™™>ÌÌÌ£ÌÌÌ=€?€¿€¿ÍÌL>ÍÌÌ>ÌÌL>ÌÌÌ£ÌÌÌ=€?€¿€¿š™™>ÍÌÌ>ÌÌÌ=ÌÌÌ£ÌÌÌ=€?€¿€¿ÍÌÌ>ÍÌÌ>ÌÌÌ£ÌÌÌ=€?€¿€¿?ÍÌÌ>ĞÌ̽ÌÌÌ£ÌÌÌ=€?€¿€¿š™?ÍÌÌ>ÌÌL¾ÌÌÌ£ÌÌÌ=€?€¿€¿333?ÍÌÌ>š™™¾ÌÌÌ£ÌÌÌ=€?€¿€¿ÍÌL?ÍÌÌ>ÎÌ̾ÌÌÌ£ÌÌÌ=€?€¿€¿gff?ÍÌÌ>¿ÌÌÌ£ÌÌÌ=€?€¿€¿€?ÍÌÌ>?€?€¿€¿?ÍÌÌ>€?€¿€¿ÍÌÌ=?š™™>€?€¿€¿ÍÌL>?ÌÌL>€?€¿€¿š™™>?



  !" !"!#$"#$#%&$%&%'Q&'Q'R½¾¿¿H½¿IHÀI¿¿wÀI<HH<=<)=<()()I><>(<(>*(*(í*>+*+*I?>?+>ìíìÙíì+ìØÙØÅÙîìîØìØÄÅ}ÅÄ}Ä~ÚÄØîÚØ~ÄÆÚÆÄ~Æî,+?,+ïÚîïîÆÇÇÛÆÚïÛÚÛÇÆ,ÇÈÈïÜÇÛÜÈÇğÛïğïğÜÛÈÉÉİÈÜİÉÈñÜğñİÜğñğÉÊʃŞÉİŞÊÉòİñòŞİñòñƒÊ˃ËßÊŞßËÊóŞòóߪËÌÌàËßàÌËÌÍÍòóòôßóôàßáÌàáÍÌÍÎÎóôóõàôõáàâÍáâÎÍÎÏψ ô õôöáõöâáãÎâãÏΈÏЈĞ 
õ 
öõ÷âö÷ãâäÏãäĞÏĞÑÑŠ 
  ö
 ÷öøã÷øäãåĞäåÑĞŠÑÒŠÒ
 
 ÷  ø÷ùäøùåäæÑåæÒÑÒÓÓŒ     
ø 
ùøúåùúæåçÒæçÓÒŒÓÔŒÔ!  !
 ù
úùûæúûçæèÓçèÔÓÔÕÕ"
!"
úûúüçûüèçéÔèéÕÔÕÖÖ#"#ûüûıèüıéèêÕéêÖÕÖ××××ë×Ö×ëëÖêëëÿÿëêÿşêéÿêşşéıÿÿşşış'''ııüü';˜;'&&;'&%&%˜;G˜G;&::&%G;:%$$$#GP|P:%99%$G:FF:9PGF9$88$#F988#77#"F8EE87PFE7"6E766"!|PÃÃ{|PEOÃPO6!55! E6DD65OED5 4D544 ÃOÂÂzÃODNÂON433D4CNDCC4332C322ÂNMNCM211C2BB21MCB10B100ÂMÁÁyÂMBLÁML0//B0ALBAA0//.A/..ÁLKLAK.---,A.@@.-@-,KA@@,?J@?K@JJ?IÀJIÀKJÁKÀÀxÁš (àLÅO¿€¿y¿ÜòN¿xĞ ½e[¿y?·Òª¯½O¿€¿ÍÌL=ƒù">ÅO¿€?y¿ÛòN¿wĞ =e[¿y?ÂW’°½O¿€¿ÍÌL=Dvô>zxs¿€?7¾fHs¿vĞ =!¾\7>'ÇQ1uxs¿€¿Dvô>zxs¿€¿7¾fHs¿vĞ ½!¾\7>'ÇQ±uxs¿€¿ƒù">y¿€¿ÅO¿c[¿yĞ ½ÜòN¿¾O?Ÿ+°y¿€¿ÍÌÌ=ƒù">y¿€?ÅO¿c[¿yĞ =ÜòN¿¾O?+0y¿€¿ÍÌÌ=Dvô>7¾€¿yxs¿9¾wĞ ½cHs¿rxs?àÇw/t7¾€¿š™>ƒù">7¾€?yxs¿9¾wĞ =cHs¿rxs?àÇw¯t7¾€¿š™>Dvô> Ó²€¿€¿qĞ ½xÍ¿€?ɲT¨/€¿ÍÌL>ƒù"> Ó²€?€¿qĞ =xÍ¿€?É2T¨/€¿ÍÌL>Dvô>}7>€¿wxs¿D>wĞ ½aHs¿pxs?Ùͱ7>€¿€>ƒù">}7>€?wxs¿D>wĞ =aHs¿pxs?ÙÍ17>€¿€>Dvô>y?€¿ÂO¿e[?yĞ ½ÛòN¿½O?—µ-°y?€¿š™™>ƒù">y?€?ÂO¿e[?yĞ =ÛòN¿½O?—µ-0y?€¿š™™>Dvô>ÁO?€¿y¿ÜòN?yĞ ½c[¿y?ß!U0¾O?€¿43³>ƒù">ÁO?€?y¿ÜòN?yĞ =c[¿y?ß!U°¾O?€¿43³>Dvô>uxs?€¿}7¾cHs?uĞ ½;¾v7>ÿ¬H¯qxs?€¿ÎÌÌ>ƒù">uxs?€?}7¾cHs?uĞ =;¾v7>ÿ¬H/qxs?€¿ÎÌÌ>Dvô>€?€¿Vt±xÍ?rĞ ½¡™¬¸]ô®€?€¿hfæ>ƒù">€?€?Vt±xÍ?rĞ =¡™¬¸]ô.€?€¿hfæ>Dvô>uxs?€¿|7>cHs?tĞ ½B>|7¾‡ß0pxs?€¿?ƒù">uxs?€?|7>cHs?tĞ =B>|7¾‡ß°pxs?€¿?Dvô>ÀO?€¿y?ÚòN?vĞ ½h[?y¿µI1»O?€¿ÎÌ ?ƒù">ÀO?€?y?ÚòN?vĞ =h[?y¿µI±»O?€¿ÎÌ ?Dvô>y?€¿¿O?c[?yĞ ½ÜòN?¾O¿ Ë=¯y?€¿›™?ƒù">y?€?¿O?c[?xĞ =ÜòN?¾O¿Ë=/y?€¿›™?Dvô>{7>€¿sxs?=>xĞ ½cHs?qxs¿W ¯w7>€¿hf&?ƒù">{7>€?sxs?:>_Ğ =cHs?qxs¿Ë¹r1u7>€¿hf&?Dvô>hµM2€¿€?sĞ ½xÍ?€¿‡çö¯9­€¿533?ƒù">hµM2€?€?@Ğ =xÍ?€¿7ˆ¯F+-€¿533?Dvô>{7¾€¿sxs??¾wĞ ½cHs?qxs¿—ޱy7¾€¿@?ƒù">{7¾€?sxs??¾]Ğ =cHs?qxs¿çOƒ±y7¾€¿@?Dvô>y¿€¿¾O?e[¿yĞ ½ÛòN?½O¿° ±y¿€¿ÏÌL?ƒù">y¿€?¾O?f[¿yĞ =ÛòN?¼O¿eï/y¿€¿ÏÌL?Dvô>¾O¿€¿y?ÜòN¿oĞ ½c[?y¿×ä­¾O¿€¿œ™Y?ƒù">¾O¿€?y?ÜòN¿oĞ =c[?y¿×äO¿€¿œ™Y?Dvô>qxs¿€¿z7>cHs¿]Ğ ½;>v7¾õí/qxs¿€¿iff?ƒù">qxs¿€?z7>cHs¿]Ğ =<>v7¾èkb0qxs¿€¿iff?Dvô>€¿€¿¿cĞ ½æPѰ˜x&3€¿€¿63s?ƒù">€¿€?¿cĞ =æPѰ˜x&³€¿€¿63s?Dvô>L¿ ”?Ü¿ÉL¿f6 >³¿y?ÄW€±½O¿€¿ÍÌL=ÎÌ ?yp¿ ”?×Dœ¾İxp¿d6 >Dœ¾]7>T£2uxs¿€¿ÎÌ ¿ ”?L¿±¿f6 >ÊL¿¾O?qÏ1y¿€¿ÍÌÌ=ÎÌ ?ÕDœ¾ ”?yp¿¤Dœ¾c6 >Úxp¿rxs?>ÆÌ±t7¾€¿š™>ÎÌ ?P­ ”?-Ù|¿`6 >èØ|¿€?d_ê2‡”1€¿ÍÌL>ÎÌ ?ÓDœ> ”?yp¿°Dœ>`6 >Øxp¿pxs?.ì2€7>€¿€>ÎÌ ? ”?ÿL¿³?]6 >ÉL¿½O?CÚ¡1y?€¿š™™>ÎÌ L? ”?Ú¿ÊL?^6 >±¿y?¥cˆ±¾O?€¿43³>ÎÌ ?yp? ”?ÓDœ¾Úxp?`6 >§Dœ¾v7>ÑÇ1qxs?€¿ÎÌÌ>ÎÌ ?)Ù|? ”?Tq±èØ|?`6 >0¦Id±€?€¿hfæ>ÎÌ ?yp? ”?ÒDœ>Øxp?_6 >ªDœ>z7¾$-å1pxs?€¿?ÎÌ ?ıL? ”?ØL?]6 >´?y¿Á…ë.»O?€¿ÎÌ ?ÎÌ ? ”?üL?±?_6 >ÊL?¾O¿˜¼œ¯y?€¿›™?ÎÌ ?ÑDœ> ”?yp?¦Dœ>Z6 >Úxp?qxs¿eİœ°v7>€¿hf&?ÎÌ ?-K2 ”?'Ù|?S6 >èØ|?€¿– ²Kù!1€¿533?ÎÌ ?ÑDœ¾ ”?yp?¬Dœ¾Z6 >Úxp?pxs¿$F 2{7¾€¿@?ÎÌ ?׿ ”?ûL?´¿_6 >ÉL?¼O¿DJ…1y¿€¿ÏÌL?ÎÌ L¿ ”?×L¿_6 >±?y¿´p£±¾O¿€¿œ™Y?ÎÌ ?yp¿ ”?ĞDœ>Úxp¿`6 >¥Dœ>u7¾:_v²qxs¿€¿iff?ÎÌ ?%Ù|¿ ”?èØ|¿^6 >{Ųw´€¿€¿63s?ÎÌ ?ÌøD¿Ş§?ÿ øD¿=>6¿y?©Ö{±¼O¿€¿ÍÌL=›™g¿Ş§?y–¾g¿
=>nx–¾]7>Üu¾2uxs¿€¿›™¿Ş§?ÌøD¿3¿=>
øD¿¾O?ä$²y¿€¿ÍÌÌ=›™?y–¾Ş§?çg¿ƒx–¾=>g¿rxs?…zj²t7¾€¿š™>›™?@Ns²Ş§?yxs¿=>Šws¿€?+Z3 Ì2€¿ÍÌL>›™?y§?åg¿x>=>g¿pxs?À 2€7>€¿€>›™§?ÊøD¿6?=> øD¿¼O?Œy?€¿š™™>›™?ÉøD?ާ?Á¿
øD?=>5¿y?{6•2½O?€¿43³>›™g?ާ?y–¾g?=>†x–¾u7>šñÖ±qxs?€¿ÎÌÌ>›™?uxs?ާ?À`h±Œws?=>ŞÎ¯í$Ÿ0€?€¿hfæ>›™g?ާ?y>g?=>‰x>y7¾ 22qxs?€¿?›™?ÈøD?ާ?¿? øD?=>8?y¿R>]²»O?€¿ÎÌ ?›™?¿§?ÇøD?4?=>
øD?¿O¿„
y?€¿›™?›™?y§?ág?‡x>=>g?qxs¿DyJ²v7>€¿hf&?›™?ø£C2ާ?sxs?=>Œws?€¿Bø°Z!0€¿533?›™?y–¾Ş§?ág?x–¾=>g?pxs¿–XÖ0{7¾€¿@?›™¿Ş§?ÆøD?6¿=>
øD?½O¿Mzb2y¿€¿ÏÌL?›™?ÆøD¿Ş§?¾? øD¿=>4?y¿„52¾O¿€¿œ™Y?›™g¿Ş§?y>g¿=>†x>u7¾öR{²qxs¿€¿iff?›™?qxs¿Ş§?Šws¿=>à|ɳd›´€¿€¿63s?›™?öˆ8¿\º?¿s‡8¿Ÿxè>y¿y?“Ò²¼O¿€¿ÍÌL=hf&?ïX¿\º?ãøŒ¾SíX¿ xè>¡÷Œ¾]7>a¥3uxs¿€¿hf&?¿\º?öˆ8¿w¿Ÿxè>u‡8¿¾O?ÃHŠ2y¿€¿ÍÌÌ=hf&?áøŒ¾\º?ïX¿µ÷Œ¾¡xè>OíX¿rxs?5`²t7¾€¿š™>hf&?€ñc²\º?d¿Ÿxè>,d¿€?
ÎA3ï†Å2€¿ÍÌL>hf&?ßøŒ>\º?ïX¿Á÷Œ>Ÿxè>OíX¿pxs?”2€7>€¿€>hf&??\º?óˆ8¿z?œxè>s‡8¿¼O?¦Oí±y?€¿š™™>hf&?òˆ8?\º?¿t‡8?xè>x¿y?ÇG‡°½O?€¿43³>hf&?ïX?\º?ßøŒ¾PíX?xè>º÷Œ¾w7>@ 2qxs?€¿ÎÌÌ>hf&?d?\º?€´Y±,d?œxè>^«/şİ'°€?€¿hfæ>hf&?ïX?\º?ŞøŒ>PíX?xè>¼÷Œ>z7¾üİ»±qxs?€¿?hf&?òˆ8?\º??s‡8?œxè>z?y¿ûÌ%±¼O?€¿ÎÌ ?hf&??\º?ñˆ8?w?šxè>v‡8?¿O¿@†²y?€¿›™?hf&?ŞøŒ>\º?ïX?º÷Œ>xè>PíX?qxs¿sHW1x7>€¿hf&?hf&?¨I72\º?d?˜xè>.d?€¿I˜52¹±€¿533?hf&?ŞøŒ¾\º?ïX?¾÷Œ¾›xè>PíX?pxs¿{˱|7¾€¿@?hf&?¿\º?ğˆ8?{¿›xè>s‡8?»O¿6r+³y¿€¿ÏÌL?hf&?ğˆ8¿\º??v‡8¿šxè>w?y¿×¾²¾O¿€¿œ™Y?hf&? ïX¿\º?İøŒ>PíX¿–xè>¸÷Œ>v7¾#­m2qxs¿€¿iff?hf&?d¿\º?.d¿–xè>ôäY´ÖÉÕ´€¿€¿63s?hf&?å'¿Œ<Ë?zxó¾'¿î|?*uó¾y?a«±½O¿€¿ÍÌL=533?ÌøD¿Œ<Ë?€¾ öD¿ï|?^ü¾^7>2Ê3uxs¿€¿533?zxó¾Œ<Ë?å'¿&uó¾î|?'¿¾O?³*²y¿€¿ÍÌÌ=533?€¾Œ<Ë?ËøD¿…ü¾í|? öD¿rxs?Í02s7¾€¿š™>533?à÷N²Œ<Ë?ÃO¿í|O¿€?—3 s[3€¿ÍÌL>533?€>Œ<Ë?ÊøD¿–ü>í|?öD¿pxs? _»1~7>€¿€>533?uxó>Œ<Ë?ã'¿,uó>í|?'¿¼O?òù2y?€¿š™™>533?â'?Œ<Ë?wx󾟋'?ì|?*uó¾y ²¾O?€¿43³>533?ÈøD?Œ<Ë?€¾öD?ì|?Šü¾v7>q‰2qxs?€¿ÎÌÌ>533?ÀO?Œ<Ë?¬E±ôO?ì|?Å…1¸±€?€¿hfæ>533?ÈøD?Œ<Ë?€>öD?í|?‘ü>{7¾-%¢1pxs?€¿?533?á'?Œ<Ë?txó>'?î|?.uó>y¿:J¨1¼O?€¿ÎÌ ?533?txó>Œ<Ë?à'?&uó>í|?'?¾O¿&.²y?€¿›™?533?€>Œ<Ë?ÆøD?ü>í|?öD?qxs¿ĞJR2y7>€¿hf&?533?øk&2Œ<Ë?¿O?ì|O?€¿:x¬±³¦z1€¿533?533?€¾Œ<Ë?ÆøD?•ü¾í|?öD?pxs¿½¨Q1~7¾€¿@?533?rxó¾Œ<Ë?ß'?,uó¾í|?'?¼O¿¾Vª1y¿€¿ÏÌL?533?ß'¿Œ<Ë?rxó>Ÿ‹'¿ì|?*uó>y¿‚•²½O¿€¿œ™Y?533?ÅøD¿Œ<Ë?€> öD¿ë|?‹ü>v7¾!;³2qxs¿€¿iff?533?½O¿Œ<Ë?öO¿ë|?E´´Êø´€¿€¿63s?533?£r¿z‚Ú?ÍÔ¾¼o¿5?ßÈÔ¾y?R8±½O¿€¿ÍÌL=@?ã(,¿z‚Ú?›À_¾~%,¿5?¼_¾^7>P¨_3uxs¿€¿@?ÍÔ¾z‚Ú?£r¿ŞÈÔ¾5?¾o¿½O?õÿ²y¿€¿ÍÌÌ=@?˜À_¾z‚Ú?ã(,¿%¼_¾5?|%,¿qxs?³ȱu7¾€¿š™>@?å4²z‚Ú?ù5¿5?f5¿€?Sğ4hö4€¿ÍÌL>@?•À_>z‚Ú?á(,¿4¼_>5?{%,¿pxs?ˆ62€7>€¿€>@?ÍÔ>z‚Ú?¡r¿ãÈÔ>5?¾o¿¼O?ëß-2y?€¿š™™>@? r?z‚Ú?ÍÔ¾¾o?€5?áÈÔ¾y?•ñO?€¿43³>@?à(,?z‚Ú?•À_¾|%,?5?'¼_¾v7>'Zğ±qxs?€¿ÎÌÌ>@?ö5?z‚Ú?€Å,±f5?5?²6æ2€?€¿hfæ>@?à(,?z‚Ú?“À_>|%,?€5?.¼_>z7¾x¤²qxs?€¿?@? r?z‚Ú?ÍÔ>¾o?5?åÈÔ>y¿¸¢1»O?€¿ÎÌ ?@?ÍÔ>z‚Ú?Ÿr?ßÈÔ>}5?Áo?¿O¿6³y?€¿›™?@?’À_>z‚Ú?Ş(,?*¼_>~5?}%,?qxs¿Dj2w7>€¿hf&?@?@u2z‚Ú?ô5?5?g5?€¿tº¼²ÚÁ¼2€¿533?@?’À_¾z‚Ú?Ş(,?3¼_¾~5?}%,?pxs¿¦ı´²|7¾€¿@?@?ÍÔ¾z‚Ú?r?æÈÔ¾}5?¿oO¿ñk<²y¿€¿ÏÌL?@?r¿z‚Ú?ÍÔ>Áo¿}5?âÈÔ>y¿1_Û²¾O¿€¿œ™Y?@?İ(,¿z‚Ú?‘À_>~%,¿}5?+¼_>w7¾ƒg0qxs¿€¿iff?@?ó5¿z‚Ú?h5¿}5?¹­û´İ£û´€¿€¿63s?@?zxó¾Şç?Jä°¾êèğ¾”ÍO?o#±¾©ª?lÅ-<DúK¿€¿ÍÌL=ÏÌL?¿Şç?¹ş9¾¿O?Àù9¾]7>„@3uxs¿€¿ÏÌL?Jä°¾Şç?zxó¾ ½¯¾üdN?pµö¾“•M?\Øg¼u¿€¿ÍÌÌ=ÏÌL?·ş9¾Şç?¿„@O?ü»¿Kju?ÙÈ´<ÅC‘¾€¿š™>ÏÌL?_²Şç?y¿Û;@O?ÎF¿öö?Ø|=¼¡GC¼€¿ÍÌL>ÏÌL?µş9>Şç?À¿r7>@O?׿¿<q?ôÈ´<7ûª>€¿€>ÏÌL?Fä°>Şç?vx󾤱>@O?Ápò¾‘ßP?ÿ|=¼Óû?€¿š™™>ÏÌL?uxó>Şç?Hä°¾î_ó>ùdN?åS´¾O?÷®ó;û7O?€¿43³>ÏÌL?¿ç?µş9¾¶I
?P|P?ş 7¾ô•>±-Y<êàt?€¿ÎÌÌ>ÏÌL?yç?±³q?ùdN?¤‚µ;|”"<xØg¼6ö?€¿hfæ>ÏÌL?¿ç?³ş9>Zx?údN?ùÌ5>ˆ–¾\®ó;gs?€¿?ÏÌL?txó>Şç?Eä°>_ğ>O|P?<¤®>[I¿ˆ-Y<OAL?€¿ÎÌ ?ÏÌL?Eä°>Şç?sxó>"½¯>ùdN?vµö>“•M¿Øg¼t?€¿›™?ÏÌL?²ş9>Şç?¾<>@O?ş»?Kju¿úÈ´<ÅC>€¿hf&?ÏÌL?0Óñ1Şç?y»@O?ÑF?öö¿ç|=¼ğHC<€¿533?ÏÌL?²ş9¾Şç?¾?ûÌ5¾ødN?]x?gs¿w®ó;‡–¾€¿@?ÏÌL?Dä°¾Şç?rxó>=¤®¾O|P?_ğ>OAL¿¥-Y<ZI¿€¿ÏÌL?ÏÌL?rxó¾Şç?Dä°>wµö¾ødN?#½¯>t¿Øg¼“•M¿€¿œ™Y?ÏÌL?½¿Şç?±ş9>˜¿ødN?ú–@>$Ö¾L®ó;T†s¿€¿iff?ÏÌL?y¿Şç?„‚¿’ÍO?è=Z;Ïÿşº 1;£ÿ¿€¿63s?ÏÌL?ò ¼¾€ ò?r ˆ¾ñB¶¾}Ud?{Á¾dw!?/<¦¤F¿€¿ÍÌL=œ™Y?ݾ€ ò?j¨¾w•Ù¾©Æd? ¾Éo°>hL<iLp¿€¿œ™Y?µåQ¾Ü•ò?%ù;QÚT¾º]c?ıØÑ¾ˆ_l?8#= ŒÃ¾€¿>œ™Y?²¦=Ü•ò?¶Rä¾w=Ëd?ïóâ¾­1|?È <ƒ­/>€¿fff>œ™Y?v£>Ü•ò?v£¾Ó!£>^ıc?;-¦¾
 :?é:¼Â5/?€¿gf¦>œ™Y?İ>€ ò?f¨¾ÃüÚ>bÑd?óô ¾‚Ó>ø†»ˆs?€¿ÎÌÌ>œ™Y?³Rä>Ü•ò?¦ã>d?K+=3½ ¾R³9Ó|?€¿53ó>œ™Y?í ¼>€ ò?n ˆ>.ôº>bÑd?ôE…>ï´¿b¯¢<k^J?€¿ÎÌ ?œ™Y?¬åQ>Ü•ò?"ùÍ>Å—O>^ıc?<tĞ>WMk¿óıò<É>€¿ ?œ™Y?Á¦½Ü•ò?±Rä>Pû‹½?ed?}›ä>½W}¿…€»K¾€¿œ™9?
øD¿=¾5?y¿F€±²½O¿€¿œ™Y?ÎÌÌ>¾¿Ş§¿ÆøD?6¿=¾
øD?½O¿²y¿€¿ÏÌL?ÎÌÌ>y–¾Ş§¿ág?‹x–¾=¾g?pxs¿æ{±{7¾€¿@?ÎÌÌ>ø£C2ާ¿sxs?=¾Œws?€¿¶ğ°²r°€¿533?ÎÌÌ>y§¿ág?ˆx>=¾g?qxs¿Ûú°w7>€¿hf&?ÎÌÌ>¿§¿ÇøD?4?=¾
øD?¿O¿í…2y?€¿›™?ÎÌÌ>ÈøD?ާ¿¿? øD?=¾8?y¿»’°2»O?€¿ÎÌ ?ÎÌÌ>ãg?ާ¿y>g?=¾‹x>{7¾ìô°0pxs?€¿?ÎÌÌ>uxs?ާ¿À`h±Œws?=¾¼˜°/½j±€?€¿hfæ>ÎÌÌ>ãg?ާ¿y–¾g?=¾†x–¾u7>ÇGX2qxs?€¿ÎÌÌ>ÎÌÌ>ÉøD?ާ¿Á¿
øD?=¾3¿y?(?ú1¾O?€¿43³>ÎÌÌ>À§¿ÊøD¿6?=¾ øD¿¼O??ÒI1y?€¿š™™>ÎÌÌ>y§¿åg¿x>=¾g¿oxs?Hv#27>€¿€>ÎÌÌ>@Ns²Ş§¿yxs¿=¾Šws¿€?¾[ƒ³ß¿ª2€¿ÍÌL>ÎÌÌ>y–¾Ş§¿çg¿„x–¾=¾g¿qxs?Ş^)1t7¾€¿š™>ÎÌÌ>ÿާ¿ÌøD¿3¿=¾
øD¿¾O?+bC2y¿€¿ÍÌÌ=ÎÌÌ>ÌøD¿Ş§¿Ã¿ øD¿=¾5¿y?›ß²½O¿€¿ÍÌL=ÎÌÌ>d¿\º¿.d¿–xè¾äõZ´¡ÕÖ4€¿€¿63s?43³>ïX¿\º¿ãøŒ¾SíX¿ xè¾¢÷Œ¾^7>»?³uxs¿€¿€?43³> ïX¿\º¿İøŒ>PíX¿–x辸÷Œ>v7¾|úŠ0qxs¿€¿iff?43³>ğˆ8¿\º¿?v‡8¿šxè¾w?y¿a¸>2¿O¿€¿œ™Y?43³>¿\º¿ğˆ8?z¿›xè¾t‡8?¼O¿Cy¿€¿ÏÌL?43³>ŞøŒ¾\º¿ïX?¾÷Œ¾›xè¾PíX?pxs¿Îö°|7¾€¿@?43³>¨I72\º¿d?˜xè¾.d?€¿
È62´Jº1€¿533?43³>ŞøŒ>\º¿ïX?º÷Œ>xè¾PíX?qxs¿yÂp²x7>€¿hf&?43³>?\º¿ñˆ8?w?šxè¾v‡8?¿O¿cF2y?€¿›™?43³>òˆ8?\º¿?s‡8?xè¾{?y¿z\Ğ2»O?€¿ÎÌ ?43³>ïX?\º¿ŞøŒ>PíX?xè¾¼÷Œ>z7¾Ät>2qxs?€¿?43³>d?\º¿€´Y±,d?œxè¾r€±İ ü±€?€¿hfæ>43³>ïX?\º¿ßøŒ¾PíX?x辺÷Œ¾x7>¹§!²qxs?€¿ÎÌÌ>43³>òˆ8?\º¿¿t‡8?xè¾y¿y?òKÛ²½O?€¿43³>43³>?\º¿óˆ8¿z?œxè¾s‡8¿¼O?£y?€¿š™™>43³>ßøŒ>\º¿ïX¿Á÷Œ>Ÿxè¾OíX¿pxs?-ì17>€¿€>43³>€ñc²\º¿d¿¡xè¾,d¿€?<³çÊ3€¿ÍÌL>43³>áøŒ¾\º¿ïX¿µ÷Œ¾¡xè¾OíX¿rxs?ÇÄ2t7¾€¿š™>43³>‘¿\º¿öˆ8¿w¿Ÿxè¾u‡8¿¾O??¢²y¿€¿ÍÌÌ=43³>öˆ8¿\º¿‘¿t‡8¿Ÿxè¾y¿y? Çm2½O¿€¿ÍÌL=43³>½O¿Œ<Ë¿öO¿ë|¿C÷¯´×(ò4€¿€¿63s?š™™>ÌøD¿Œ<Ë¿€¾ öD¿ï|¿^ü¾^7>¾ßû²uxs¿€¿€?š™™>ÅøD¿Œ<Ë¿€> öD¿ë|¿‰ü>v7¾RCà2qxs¿€¿iff?š™™>ß'¿Œ<Ë¿rxó>Ÿ‹'¿ì|¿*uó>y¿Ñœ±¾O¿€¿œ™Y?š™™>rxó¾Œ<Ë¿ß'?,uó¾í|¿'?¼O¿´ìX²y¿€¿ÏÌL?š™™>€¾Œ<Ë¿ÆøD?”ü¾í|¿öD?pxs¿†á ²|7¾€¿@?š™™>øk&2Œ<Ë¿¿O?ì|¿ôO?€¿2:V±@«±€¿533?š™™>€>Œ<Ë¿ÆøD?ü>í|¿öD?qxs¿%Y°y7>€¿hf&?š™™>txó>Œ<Ë¿à'?&uó>í|¿'?¾O¿cˆ†0y?€¿›™?š™™>á'?Œ<Ë¿txó>'?î|¿.uó>y¿ ;в»O?€¿ÎÌ ?š™™>ÈøD?Œ<Ë¿€>öD?í|¿‘ü>z7¾ò~2qxs?€¿?š™™>ÀO?Œ<Ë¿¬E±ôO?ì|¿ô²/²ÍÊq²€?€¿hfæ>š™™>ÈøD?Œ<Ë¿€¾öD?ì|¿Šü¾w7>ñ0E±qxs?€¿ÎÌÌ>š™™>â'?Œ<Ë¿wxó¾'?ë|¿*uó¾y?Mfϲ½O?€¿43³>š™™>uxó>Œ<Ë¿ã'¿,uó>í|¿'¿¼O?ø“2y?€¿š™™>š™™>€>Œ<Ë¿ÊøD¿˜ü>î|¿öD¿pxs?œx}²7>€¿€>š™™>à÷N²Œ<Ë¿ÃO¿í|¿ôO¿€?óųNòP3€¿ÍÌL>š™™>€¾Œ<Ë¿ËøD¿…ü¾í|¿ öD¿rxs?Çıª2t7¾€¿š™>š™™>zxó¾Œ<Ë¿å'¿&uó¾î|¿'¿¾O?BPɲy¿€¿ÍÌÌ=š™™>å'¿Œ<Ë¿zxó¾'¿ğ|¿*uó¾y?éÆU±½O¿€¿ÍÌL=š™™>ó5¿z‚Ú¿h5¿}5¿}ÿ´~ ÿ4€¿€¿63s?€>ã(,¿z‚Ú¿›À_¾~%,¿5¿¼_¾^7>]Ÿ³uxs¿€¿€?€>İ(,¿z‚Ú¿‘À_>%,¿}5¿+¼_>v7¾¦áµ0qxs¿€¿iff?€>r¿z‚Ú¿ÍÔ>Ào¿~5¿ãÈÔ>y¿ÖFæ°½O¿€¿œ™Y?€>ÍÔ¾z‚Ú¿r?æÈÔ¾}5¿¿oO¿#ı”2y¿€¿ÏÌL?€>’À_¾z‚Ú¿Ş(,?3¼_¾~5¿~%,?pxs¿{¨2|7¾€¿@?€>@u2z‚Ú¿ô5?5¿g5?€¿,Z…²g_…²€¿533?€>’À_>z‚Ú¿Ş(,?,¼_>5¿}%,?qxs¿±EŒ²x7>€¿hf&?€>ÍÔ>z‚Ú¿Ÿr?àÈÔ>~5¿ÀoO¿œ= ²y?€¿›™?€> r?z‚Ú¿ÍÔ>¾o?~5¿æÈÔ>y¿W…v2»O?€¿ÎÌ ?€>à(,?z‚Ú¿“À_>|%,?€5¿.¼_>z7¾n8!2pxs?€¿?€>ö5?z‚Ú¿€Å,±f5?5¿M>±×€?€¿hfæ>€>à(,?z‚Ú¿•À_¾|%,?€5¿)¼_¾w7>ò邲qxs?€¿ÎÌÌ>€> r?z‚Ú¿ÍÔ¾¾o?5¿àÈÔ¾y?7…õ°½O?€¿43³>€>ÍÔ>z‚Ú¿¡r¿áÈÔ>5¿½o¿¼O? ²y?€¿š™™>€>•À_>z‚Ú¿á(,¿5¼_>€5¿{%,¿oxs?V€9³7>€¿€>€>å4²z‚Ú¿ù5¿5¿f5¿€?(å³1å3€¿ÍÌL>€>˜À_¾z‚Ú¿ã(,¿$¼_¾€5¿|%,¿qxs?Ó:ö2u7¾€¿š™>€>ÍÔ¾z‚Ú¿£r¿ŞÈÔ¾5¿¾o¿¾O?Ϊ2y¿€¿ÍÌÌ=€>£r¿z‚Ú¿ÍÔ¾¼o¿5¿ßÈÔ¾y?ìnS2½O¿€¿ÍÌL=€>y¿Şç¿ƒ‚¿“ÍO¿é=Z;åu§¼xÅ-<î¿€¿63s?ÍÌL>¿Şç¿¹ş9¾¿O¿Áù9¾^7>zó*³uxs¿€¿€?ÍÌL>½¿Şç¿±ş9>˜¿ødN¿ú–@>k\™¾eØg¼8t¿€¿iff?ÍÌL>rxó¾Şç¿Dä°>wµö¾ødN¿"½¯>ì ¿§®ó;ŠüN¿€¿œ™Y?ÍÌL>Dä°¾Şç¿rxó>=¤®¾O|P¿›_ğ>~ÚQ¿’-Y<¾”¿€¿ÏÌL?ÍÌL>²ş9¾Şç¿¾?üÌ5¾ùdN¿\x?+¦r¿iØg¼i£¾€¿@?ÍÌL>0Óñ1Şç¿y»@O¿ĞF?.Ù¿ñÈ´<“QØ<€¿533?ÍÌL>²ş9>Şç¿¾?‰<>@O¿ş»?;at¿æ|=¼d˜>€¿hf&?ÍÌL>Eä°>Şç¿sxó>4®¯>@O¿iİó>%K¿åÈ´<QÚ?€¿›™?ÍÌL>txó>Şç¿Eä°>fİó>@O¿5®¯>¾ë¿}=¼GIM?€¿ÎÌ ?ÍÌL>¿翳ş9>ı»?@O¿‹<>ÇC‘¾üÈ´<Kju?€¿?ÍÌL>y翱ĞF?@O¿Ü»ïHC¼ß|=¼öö?€¿hfæ>ÍÌL>¿翵ş9¾×?@O¿r7¾+ûª>èÈ´<Á<q?€¿ÎÌÌ>ÍÌL>uxó>Şç¿Hä°¾Ápò>@O¿¤±¾Óû?ù|=¼‘ßP?€¿43³>ÍÌL>Fä°>Şç¿vx󾤱>@O¿Àpò¾†õR?É´<<ê?€¿š™™>ÍÌL>µş9>Şç¿À¿r7>@O¿Õ¿t~r?ì|=¼¾ÿ£>€¿€>ÍÌL>_²Şç¿y¿û;@O¿ÎF¿/Ù?üÈ´<ıPؼ€¿ÍÌL>ÍÌL>·ş9¾Şç¿Â¿„@O¿ü»¿;at?ä|=¼
d˜¾€¿š™>ÍÌL>Jä°¾Şç¿zxó¾ ½¯¾üdN¿pµö¾‰üN?1®ó;í ¿€¿ÍÌÌ=ÍÌL>zxó¾Şç¿Jä°¾êèğ¾”ÍO¿p#±¾ûß?!1;ŠĞN¿€¿ÍÌL=ÍÌL>rqè¾€ ò¿´à¾6f¿"%Ì:í½½“2=o¨~¿€¿63s?š™>ݾ€ ò¿j¨¾w•Ù¾©Æd¿ ¾ÌyŸ>×&©;íBs¿€¿€?š™> ù;ܕò¿­åQ>dо c¿„U>!Ğà¾ë¼ıe¿€¿`?š™>m ˆ¾€ ò¿ì ¼>±œ‰¾Qe¿µV¶>W|R¿É”¨<²¿€¿ÏÌL?š™>¦½Ü•ò¿±Rä>Pû‹½>ed¿~›ä>&Õ~¿Eÿ<©¸½€¿œ™9?š™>«åQ>Ü•ò¿"ùÍ>ôBR>ÉQd¿°TÎ>‰:b¿ì<bšï>€¿ ?š™>&ùÍ>Ü•ò¿§åQ>°TÎ>ÉQd¿øBR>Ü5á¾4<6åe?€¿hf?š™>³Rä>Ü•ò¿½¦½/¸ä>ÉQd¿ç½B0>ô<K-|?€¿›™Ù>š™>v£>Ü•ò¿v£¾»¾£>ÉQd¿º¾£¾¶Ø7?â<±"2?€¿gf¦>š™>±¦=Ü•ò¿µR侑w=Ëd¿ïóâ¾K@~?à‰¡<§Šë=€¿fff>š™>µåQ¾Ü•ò¿&ù;QÚT¾º]c¿ıØÑ¾Ğ´k?AA½‡ìƾ€¿>š™ ¼¾€ ò¿r ˆ¾ñB¶¾{Ud¿{Á¾1¢ ?ï æ»©RG¿€¿ÍÌL=
=>nx–¾]7>Üu¾2uxs¿€¿€?›™?ïX¿\º?ãøŒ¾SíX¿ xè>¡÷Œ¾]7>a¥3uxs¿€¿€?hf&?ÌøD¿Œ<Ë?€¾ öD¿ï|?^ü¾^7>2Ê3uxs¿€¿€?533?ã(,¿z‚Ú?›À_¾~%,¿5?¼_¾^7>P¨_3uxs¿€¿€?@?¿Şç?¹ş9¾¿O?Àù9¾]7>„@3uxs¿€¿€?ÏÌL?ݾ€ ò?j¨¾w•Ù¾©Æd? ¾Éo°>hL<iLp¿€¿€?œ™Y?¬d–¾.¿ù?výî,™¾*Ìs?Et½Eõ]>¨!ä;Oèy¿€¿œ™y?iff?Ğ:¾ómş?ŒÙE½E«¾øá|?İ‘½ÑV>Ö <¼Qm}¿€¿œ™y?63s?Ğ:¾ómş?ŒÙE½E«¾øá|?İ‘½ÑV>Ö <¼Qm}¿€?63s?@•)¼.ü?XWJ»×$h?/<¬Á×>€¿?€?@•)¼.ü?XWJ»%¸°>
Ô;Cp?€¿?€?@•)¼.ü?XWJ»˜Ë¿­ĞX»zS?€¿?€?@•)¼.ü?XWJ»§¿Õï+¼3gP½€¿?€?@•)¼.ü?XWJ»ûî¿t¼òIX¿€??€?Àü”)¼.ü¿gWJ»§¿Ñï+<=gP½€¿?Àü”)¼.ü¿gWJ»™Ë¿—ĞX;zS?€¿?Àü”)¼.ü¿gWJ»%¸°>
Ô»Cp?€¿?Àü”)¼.ü¿gWJ»×$h?/¼­Á×>€¿?Àü”)¼.ü¿gWJ»Õ‹A?c7¾»L'¿€??Ğ:¾ómş¿ŒÙE½C«¾øá|¿İ‘½¡{>œZ'<à!}¿€¿ÍÌL=zxs¿€¿7¾fHs¿vĞ ½!¾\7>'ÇQ±uxs¿€¿€??€¿€¿¿cĞ ½æPѰ˜x&3€¿€¿63s??qxs¿€¿z7>cHs¿]Ğ ½;>v7¾õí/qxs¿€¿iff?O¿€¿y?ÜòN¿oĞ ½c[?y¿×ä­¾O¿€¿œ™Y??y¿€¿¾O?e[¿yĞ ½ÛòN?½O¿° ±y¿€¿ÏÌL??{7¾€¿sxs??¾wĞ ½cHs?qxs¿—ޱy7¾€¿@??hµM2€¿€?sĞ ½xÍ?€¿‡çö¯9­€¿533??{7>€¿sxs?=>xĞ ½cHs?qxs¿W ¯w7>€¿hf&??y?€¿¿O?c[?yĞ ½ÜòN?¾O¿ Ë=¯y?€¿›™?O?€¿y?ÚòN?vĞ ½h[?y¿µI1»O?€¿ÎÌ ??uxs?€¿|7>cHs?tĞ ½B>|7¾‡ß0pxs?€¿??€?€¿Vt±xÍ?rĞ ½¡™¬¸]ô®€?€¿hfæ>?uxs?€¿}7¾cHs?uĞ ½;¾v7>ÿ¬H¯qxs?€¿ÎÌÌ>O?€¿y¿ÜòN?yĞ ½c[¿y?ß!U0¾O?€¿43³>?y?€¿ÂO¿e[?yĞ ½ÛòN¿½O?—µ-°y?€¿š™™>?}7>€¿wxs¿D>wĞ ½aHs¿pxs?Ùͱ7>€¿€>? Ó²€¿€¿qĞ ½xÍ¿€?ɲT¨/€¿ÍÌL>?7¾€¿yxs¿9¾wĞ ½cHs¿rxs?àÇw/t7¾€¿š™>?y¿€¿ÅO¿c[¿yĞ ½ÜòN¿¾O?Ÿ+°y¿€¿ÍÌÌ=O¿€¿y¿ÜòN¿xĞ ½e[¿y?·Òª¯½O¿€¿ÍÌL=?yp¿ ”¿×Dœ¾İxp¿d6 ¾Dœ¾]7>FCl²uxs¿€¿hfæ>zxs¿€¿7¾fHs¿vĞ ½!¾\7>'ÇQ±uxs¿€¿g¿Ş§¿y–¾g¿ =¾mx–¾\7>Ş$ ³uxs¿€¿ÎÌÌ>ïX¿\º¿ãøŒ¾SíX¿ xè¾¢÷Œ¾^7>»?³uxs¿€¿43³>ÌøD¿Œ<Ë¿€¾ öD¿ï|¿^ü¾^7>¾ßû²uxs¿€¿š™™>ã(,¿z‚Ú¿›À_¾~%,¿5¿¼_¾^7>]Ÿ³uxs¿€¿€>¿Şç¿¹ş9¾¿O¿Áù9¾^7>zó*³uxs¿€¿ÍÌL>ݾ€ ò¿j¨¾w•Ù¾©Æd¿ ¾ÌyŸ>×&©;íBs¿€¿š™>¬d–¾.¿ù¿výî,™¾*Ìs¿Et½áŸ/>F<ç2|¿€¿ÍÌÌ=4@´€?@€?E¾ÅA€?CylinderğX€3À³?€??à *+*

  ! !
!"
""###$$$%%%&&&'',-.,./V)WU)VW)DT)UD)ES)TE)FR)SF)GQ)RG)HP)QH)IO)PI)JN)OJ)KM)NK)LL)MC(B1(CB(A0(1A(@2(0@(?3(2?(>4(3>(=5(4=(<6(5<(;7(6;(:8(7:(99(8X (0@{x󾀿€7¾uxs¿Y7¾[7>vxs¿€¿LÎ=³ãí9kÑ<Ëg*;ÆϾ€¿y–¾½O¿y¿y?½O¿€¿IQM>³ãí9{l=Ëg*;y–¾€¿ÅϾy¿¿O¿¿O?y¿€¿xÏ™>³ãí9΀Û=Ëg*;7¾€¿yxó¾s7¾qxs¿rxs?s7¾€¿IöÌ>³ãí9b >Ëg*;€¿¿€¿€?€¿Œ?³ãí9™S>Ëg*;7>€¿xxó¾~7>pxs¿pxs?~7>€¿ñ¡?³ãí9’Ò‚>Ëg*;y>€¿ÂϾy?ºO¿»O?y?€¿X53?³ãí9R#œ>Ëg*;ÁÏ>€¿y–¾¾O?y¿y?¾O?€¿¼ÈL?³ãí9tµ>h*;uxó>€¿|7¾qxs?u7¾v7>qxs?€¿ \f?³ãí9¾ÄÎ>h*;?€¿€?€?€¿ï?³ãí9kè>Ëg*;uxó>€¿|7>qxs?{7>{7¾pxs?€¿Î=³ãí9³?Ëg*;ÀÏ>€¿yO?y?y¿»O?€¿0QM>³ãí9e[
?Ëg*;y>€¿¿Ï>y?¾O?¾O¿y?€¿jÏ™>³ãí9¶?Ëg*;|7>€¿sxó>x7>qxs?qxs¿x7>€¿8öÌ>³ãí9¬&?Ëg*;€2€¿?€?€¿€¿„?³ãí9QT3?Ëg*;y7¾€¿rxó>|7¾qxs?pxs¿|7¾€¿é¡?³ãí9Ÿü??Ëg*;y–¾€¿¾Ï>y¿½O?½O¿y¿€¿O53?³ãí9÷¤L?Ëg*;½Ͼ€¿yO¿y?y¿½O¿€¿´ÈL?³ãí9MMY?Ëg*;qx󾀿z7>qxs¿x7>x7¾qxs¿€¿\f?³ãí9©õe?Ëg*;¿€¿€¿€¿€¿}ï?³ãí9 r?Ëg*;{xó¾€?€7¾uxs¿Y7¾Z7>vxs¿€¿%Î=²Ú?ıĞ<Ë~"?ÆϾ€?y–¾½O¿y¿y?¼O¿€¿AQM>²Ú?{l=Ë~"?y–¾€?ÅϾy¿¿O¿¿O?y¿€¿xÏ™>²Ú?΀Û=Ë~"?7¾€?yxó¾s7¾qxs¿rxs?s7¾€¿IöÌ>²Ú?b >Ë~"?€?¿€¿€?€¿Œ?²Ú?™S>Ë~"?7>€?xxó¾~7>pxs¿pxs?~7>€¿ñ¡?²Ú?’Ò‚>Ë~"?y>€?ÂϾy?ºO¿»O?y?€¿Y53?²Ú?R#œ>Ë~"?ÁÏ>€?y–¾¾O?y¿y?¾O?€¿¿ÈL?²Ú?tµ>Ë~"?uxó>€?|7¾qxs?u7¾u7>qxs?€¿$\f?²Ú?ËÄÎ>Ë~"??€?€?€?€¿ï?²Ú?wè>Ë~"?uxó>€?|7>qxs?{7>y7¾qxs?€¿0Î=²Ú?³?Ë~"?ÀÏ>€?yO?y?y¿»O?€¿5QM>²Ú?e[
?Ë~"?y>€?¿Ï>y?¾O?¾O¿y?€¿jÏ™>²Ú?Ë~"?|7>€?sxó>x7>qxs?qxs¿x7>€¿8öÌ>²Ú?¬&?Ë~"?€2€??€?€¿€¿„?²Ú?QT3?Ë~"?y7¾€?rxó>|7¾qxs?pxs¿|7¾€¿é¡?²Ú?Ÿü??Ë~"?y–¾€?¾Ï>y¿½O?½O¿y¿€¿N53?²Ú?÷¤L?Ë~"?½Ͼ€?yO¿y?y¿½O¿€¿®ÈL?²Ú?MMY?Ë~"?qxó¾€?z7>qxs¿x7>x7¾qxs¿€¿\f?²Ú?©õe?Ë~"?¿€?€¿€¿€¿yï?²Ú? r?Ë~"?€¿€¿€?§ÉÛ´€¿¬?²øÿ>¹
?ïÑS?€?€?€¿*&¨3€¿¶?®øÿ>¼3>îÑS??€¿€?€?€¿tØ5:³ãí9kè>Ëg*;?€?€?€?€¿Œğ5:²Ú?wè>Ë~"?¿€¿€¿€¿€¿¬ÿ5:³ãí9 r?Ëg*;¿€?€¿€¿€¿pç5:²Ú? r?Ë~"?{xó¾€?€7¾uxs¿Y7¾Z7>vxs¿€¿%Î=²Ú?mF?Ë~"?{x󾀿€7¾uxs¿Y7¾[7>vxs¿€¿LÎ=³ãí9mF?Ëg*;ÆϾ€¿y–¾€¿ŸX?õš¿€¿}uÊ=G£J?²ÖÔ>.xm?{x󾀿€7¾€¿ñÍ9?¯0¿€¿è<;'?.qÈ>Na?y–¾€¿ÅϾ€¿mn?èmº¾€¿ĞU>M¼f?%è>™w?7¾€¿yx󾀿
š{?Şÿ<¾€¿ä±>ƒÆx?ï<?WR}?€¿¿€¿€?³«Ù2€¿®?Øı~?¹
?u?7>€¿xx󾀿
š{?äÿ<>€¿ëM'?ƒÆx?5?WR}?y>€¿ÂϾ€¿mn?Ömº>€¿©µJ?K¼f?B_'?•w?ÁÏ>€¿y–¾€¿¥X?ëš?€¿«Îf?A£J?«1?+xm?uxó>€¿|7¾€¿ûÍ9?¥0?€¿ÙØx?‡;'?i97?Na??€¿€¿ÊW?’õ
?€¿+? øÿ>*\9?ìÑS?uxó>€¿|7>€¿€?}͇µ€¿ÕØx?5z±>i97?ÙUF?ÀÏ>€¿y>€¿€?ğk^µ€¿¡Îf?UU>©1?®+:?y>€¿¿Ï>€¿€?ŞÎû´€¿µJ?ãÉ=;_'?E„0?|7>€¿sxó>€¿€?/ÈÍ´€¿ßM'?ÆEæ<5?‡Q*?€2€¿?€¿€?`,Xµ€¿¤?İz;¹
?Å.(?y7¾€¿rxó>€¿€?¡€¿Ø±>ZFæ<ï<?‡Q*?y–¾€¿¾Ï>€¿€?€¿ĞU><ãÉ=%è>F„0?½Ͼ€¿y>€¿€?)²´€¿•uÊ=°UU>²ÖÔ>°+:?qx󾀿z7>€¿€?‡ÙÚ3€¿Tè<Hz±>4qÈ>ÙUF?¿€¿€¿ÃW?õ
¿€¿@˜†;®øÿ>®+Ä>îÑS?{xó¾€?€7¾€?€¿µ€¿æØx?;'?¶‚¬>Na?ÆϾ€?y–¾€?€¿?[7µ€¿³Îf?G£J?6 >.xm?y–¾€?ÅϾ€?€¿!¿oµ€¿­µJ?M¼f?bÎŒ>•w?7¾€?yxó¾€?€¿v܇µ€¿ğM'?ƒÆx?
ôh>WR}?€?¿€?€¿Îϳ€¿³?Øı~?¼3>u?7>€?xxó¾€?€¿Ñ’5€¿î±>ƒÆx?Ö&ú=WR}?y>€?ÂϾ€?€¿ 6¼5€¿õU>K¼f?tÕ˜=•w?ÁÏ>€?y–¾€?€¿
„5€¿ÛuÊ=C£J?W4=(xm?uxó>€?|7¾€?€¿á  5€¿L‘è<‰;'?ü!P<ÿMa??€?€?ÇW¿—õ
?€¿ œ†;¤øÿ>†ã;ìÑS?uxó>€?|7>€?÷Í9¿©0?€¿Œ‘è<7z±>ü!P<ÙUF?ÀÏ>€?y>€?X¿şš?€¿øuÊ=UU>‡4=®+:?y>€?¿Ï>€?mn¿ımº>€¿ŸU>ãÉ=ŒÕ˜=E„0?|7>€?sxó>€? š{¿=>€¿õ±>¦Eæ<å&ú=†Q*?€2€??€?€¿ºÓ2€¿±?ˆÚz;¶3>Ä.(?y7¾€?rxó>€? š{¿şÿ<¾€¿ëM'?¶Eæ< ôh>†Q*?y–¾€?¾Ï>€?mn¿åmº¾€¿©µJ?ãÉ=ZÎŒ>C„0?½Ͼ€?y>€?ŸX¿õš¿€¿«Îf?“UU>0 >®+:?qxó¾€?z7>€?ıÍ9¿£0¿€¿İØx?;z±>®‚¬>ÙUF?¿€?€?ÒW¿†õ
¿€¿1?¦øÿ>2Ȱ>ìÑS?€3À³?€???Kª ASphere ???±²®±²­±®­°±°l±±lm²mÍml®²¯¯²d²ƒdª­®«®¯ª®«0°­/0­/­ª/ªªª«01°«1k°1k°kl«¬«¯¬¬ÇkÇ.ÊlkÊkÇÍlʬ¯c¯dc¬b¬cbbÆÇ.Æ.-ÉÊÇÉÇÆb¹¹bcºbº¹cd»c»ºÅÆ-Å-,¹dg»dg»gf»f¸º»¸¸fe¹º·º¸·¹·¸eµ·¸µµeµ"·µ´´µ"·´´"!´³³´!³³! ³³  jmÄŠjÁÄjÁjiijÍjŒÍiÍÌÌÍÊÌÊÉhiÌËÌÉhÌ˾Ái¾ihËÉÈÈÉÆÈÆÅhË(h(¾hË++ËÈ+È**ÈÅ*Å))Å,),'¾('½¾&½'½Á¾&¼½¼&#¼½ÀÁ¼À½ÀÄÁ#¿¼¼¿À#$¿ÀÃÄ¿ÃÀ$¿¿ÂÃ$%ÂÈÄĈÈÂÃÂ%Â%Öy ÕyÖÒÕÖÒÖÓÓÖpÖpÕxyÑÕÒÔxÕÑÔÕÏÒÓÎÑÒÎÒÏHÔÑGHÑGÑÎGÎÎ22ÎÏHIÔ2Ï3IwÔÔwxIw3ÏĞÏÓĞ3Ğ4ëwëFîxwîwëĞÓoÓpo4ĞnĞon4nêëFêFEnİİ7noŞnŞİopßoߪ7İÚ7Ú6İŞÛİÛÚ6Ú×6×55×858×98ÚØ×ר9ÚÛØØ:9ØÙ:ÛÙØÙ:ŞÜÛÛÜÙŞßÜÙqÜqÙ=qßrÜÜrq=qææqr<=æßsrpsßps<æã;<ãærççrsãæç;ãà;àà>çsèèsãçäàãääçè>àáàäá>á?äèåáäå?áâáåâ?â@åèvèvåvuâåuâut@ât@tADAéDéEDBéAéêEBìéìêéCìBìíêíëêíîëCïìïíìïCïïğíğïğîíğğñîñğñxîññyxyñyJœûJûûKJşûşûüKşüûüLKşšüıLıLşÿüÿşÿıüšzzšı}O}ÿı}ıÿzÿôz˜ôO}
NO
z{ô{z~}
}~{~˜óôó˜N
MNô÷{ó÷ô{|÷|{~|
~ 
  ~òóòSòóö÷òöóSõòòõöSTõ÷ú|öú÷|
ú
|   
TøõTUøõùööùúõøùú
ùúUƒøUƒøùùøƒ

   ƒRƒƒ    MŸMŸ    ¡¡ ¡¢  ¢¢£££§§§¦RRQ¦


Q¦
¤
QP¤
P¤P¥±V²±V³±WV³"´"³ W"  XW´%"­%´ !X!X"# %#"#! ­%¬­![#$!$!%&#&%&$#¬«¬[.Z[.&$Š.Š&'$'&'Š$«ª«Z.+YZ+ˆ'ˆ'Šˆ'.Š/+.//Šª¨ª¨©©©®ˆˆ  ˆ/00 ®®¯ ¯¯° 0 ,/0+/,3°3°¾6639996-0,0-(+,Y+(µY(µ((,)()),-)··)*)-*·*¸-*-9¸*Œ*Œ¸Œ¹98Œ8896¹Œ7Œ87¹7À865785563À74754À4¿53245223¾2¾½¿4142112½¿1º1½»º1»º»¼ÅÆÅ<Ä<Å<Ä;<Ã;Ä<?;?<?Ã:;Á:ÃÁÂ:;>?:>;?B>B?B Â=::=>ÂÇ=>AB=A>B ABâ Ç@==@AÇÈ@â]áâ]Aœ@œA]œÈ@@œÈÉá]\àá\]œZZœ\]ZWÉZWWÉÜà\[ßà[ß[Ş\ZYYZW[\YVWÜYWVVÜÛŞ[X[YXXYVŞXİUVÛXVUİXUUÛÙİUØØUÙØÙÚÊ\ËÊC\ÌCÊC]\ÌFCÍFÌCD]FDCD^]ÍIFÎIÍÎÏIDE^E^FGDIGFGEDÏJIIJGÏĞJEaGHEJHGHEĞKJJKHĞÑKaR`aRHKHRÑKKÑÒ`RO_`ORSSORSTÒSTTÒš_OLÓ_LÓLÔOSPPSTLOPQTšPTQQšÔLMLPMMPQÔMÕNQMQNÕMNN˜ÕNÖÖN˜Ö˜×ìíîìgíògìgïíòjgójòghïjhghğïómjèmóhiğiñğjkhmkjkihèmçèi¡ñûñ¡klil¡imnknmnlkç`æ`çû¡vúûvŸn`Ÿl¢¡v¡¢nolŸono¢læ_`å_æúvsõús`cŸ_c`Ÿ oc Ÿo£¢ £ov¢wsvww¢£å^_ã^åãä^_bc^b_äa^^abäéacf bfc 
£f
 w£xx£
édaéêdaebbefadef©
e©fê§dêë§d¨ee¨©d§¨¦
©x
¦twxswt{§ë{ë~¨§~§{©¨¦©¨~ux¦txupstõspôõpôpöptqöpqqtuöq÷÷qrqur÷røu¦¥ru¥¥¦ør¤r¥¤ø¤ù¥¤¥~ù¤¤ù~}}}~{|}||}{z|}zz{zÿ|y|zyyzÿyüyÿıüyıüış (0¨p^“>^“¾^“¾:Í?:Í¿;Í¿ Ò4?ÎL˺°75?€¿b¿>üé¢>&:±>.:±>^“>^“¾^“>:Í?:Í¿;Í?³;5¿Í_ÛºÎ4?€¿¥?üé¢>&:±>òb'?^“¾^“¾^“¾:Í¿:Í¿;Í¿¬;5?ECÛº Î4¿€¿ ìı=üé¢>öb'?.:±>^“¾^“¾^“>;Í¿:Í¿:Í?Ò4¿©^˺¶75¿€¿æ˜_?üé¢>öb'?òb'?=â“>®g“>=⓾ƹ?ô?ƹ¿g/5? È©ºaÚ4?€¿b¿>/?":1?¿‹>=â“>®g“>=â“>ƹ?ô?ƹ?óÓ4¿`cúÌ55?€¿¥?/?":1? 4=⓾®g“>=⓾ƹ¿ô?ƹ¿øÓ4?ºPúÇ55¿€¿ ìı=/?€?¿‹>=⓾®g“>=â“>ƹ¿ô?ƹ?g/5¿Æ©ºbÚ4¿€¿æ˜_?/?€? 4¿€¿ªµy¾ŒEx?€¿è5¿>9²< ? ?3³£1?
×£±€?`u{?¡€¿BÅ>’Åx?X?Ä‹>?3³£±0´?RD滟 oºÁšu:ËxT; ÿ?€¿jVÿ>ÿ:?Á‹>>®ÿ¯3{Ø#²?ÖHŞ»~ş?€¿ 
¸«ët´€¿Ÿ??ÿ:?ûÿÿ>€‹>¿3³£1¿G滆—oºÃ¬u:÷:X»ÿ¿€¿Ì’?ÿ:?ö‹>ôÿÿ>p´ëQ¸*¿LBî»Dş¿€?O¶Ó· E4€¿¦İ~>ÿ:?X?ìÿÿ>`e³Í|´¾Í|´¾ó5¿ó5¿„ÿ?Lƒ2;Mƒ2»€¿¦İ~>Ìã> ?.:±>Í|´¾Í|´¾ó5¿ô5¿m:¤:m:¤ºæÿ¿€¿ˆqºÌã>öb'? ?Âu3Í|´¾Í|´>ñ5¿õ5?„ÿ¿Bƒ2;?ƒ2;€¿Ÿ??Ìã> ?òb'?Í|´>Í|´¾
×#3ô5?ó5¿Ù7¤ºÛ7¤ºæÿ?€¿jVÿ>Ìã>&:±> ?
µ>¤ ´>Âõ³m 5?zş4?0Q»0ŸQ;Tÿ?€¿jVÿ>„9?":1?Ä‹>Âu3¤ ´>
µ>zş4?m 5?Õÿ¿ØıѺÑîÑ:€¿Ÿ??„9?X? 4
µ¾¤ ´>m 5¿zş4?¾“Q;¾¢Q;Tÿ¿€¿Ì’?„9?€?Ä‹>Âõ(´¤ ´>
µ¾zş4?m 5¿Õÿ?6ıѺ/îѺ€¿¦İ~>„9?X?¿‹µ>™™ ®Íµ>5?*¹¼5?ï5¿Ï‘>8ø5?€¿¥?ÿ:?À‹>
µ>…¤gº
µ¾¤5?Ót#¼¤5¿ù5?.ï=8î5?€¿b¿>ÿ:?Á‹>À‹µ¾™™ .͵>5¿*¹¼5?ø5¿ >8ï5¿€¿æ˜_?ÿ:?ûÿÿ>4
µ¾+¢gº
µ¾¥5¿²t#¼¤5¿í5?r>8ù5¿€¿ ìı=ÿ:?õ‹>&:±>õu>R(¾R(¾C ö>Å¿¿Å¿¿¸ÆE?P½úJ"?€¿Î?µ>œ>«ëÄ>.:±>™9.>f¦©¾f¦©¾i¤®>È)*¿Ç)*¿cf?É8Ú<÷ÏŞ>€¿@¦>ÌÄ”>Ø>.:±>õX´=¦±¾¦±¾.5>Ò)2¿Ò)2¿üx?|"z<m>€¿ç«“>±>ˆNì>.:±>õu¾R(¾R(¾X ö¾Ë¿¿·¿¿P€I?[\ß;Ÿä¿€¿°;>œ>$Š?.:±>™9.¾f¦©¾f¦©¾q¤®¾Õ)*¿¶)*¿Äb?D<ÖŒí¾€¿Ìœ1>ÌÄ”>h±?.:±>õX´½¦±¾¦±¾ë-5¾Ø)2¿Ï)2¿`Âx?*·6¼úŒq¾€¿zcV>±>œØ ?.:±>R(¾R(¾õu¾Å¿¿Å¿¿C ö¾g?Ñn¼P]I¿€¿Ø`Õ=œ>öb'?ëÄ>f¦©¾f¦©¾™9.¾Ç)*¿È)*¿i¤®¾ÿ#í>éb ¼àb¿€¿¤˜=ÊÄ”>öb'?.Ø>¦±¾¦±¾õX´½Ò)2¿Ò)2¿.5¾ş
p>³@P<xØx¿€¿€"=±>öb'?ÒNì>R(¾R(¾õu>·¿¿Ë¿¿X ö>ª "¿^ =¤ìE¿€¿Nªd?œ>öb'?=Š?f¦©¾f¦©¾™9.>¶)*¿Õ)*¿q¤®>£Nß¾c}м§Ff¿€¿–Bl?ÌÄ”>öb'?~±?¦±¾¦±¾õX´=Ï)2¿Ø)2¿ë-5> o¾aö`¼Çæx¿€¿Dtu?±>öb'?ÂØ ?õu¾R(¾R(>C ö¾Å¿¿Å¿?¶ÆE¿£‚½şJ"¿€¿}‡Z?œ>$Š?òb'?™9.¾f¦©¾f¦©>c¤®¾Æ)*¿Ê)*?cf¿Ö8Ú<ìÏŞ¾€¿8ïR?ÌÄ”>h±?òb'?õX´½¦±¾¦±>ş-5¾Ğ)2¿Ö)2?üx¿!z<€¿Š½I?±>œØ ?òb'?õu>R(¾R(>X ö>Ë¿¿·¿?R€I¿KZß;œä?€¿ƒ¶$?œ>«ëÄ>òb'?™9.>f¦©¾f¦©>j¤®>Ó)*¿¹)*?Äb¿Ş<ÏŒí>€¿ÌN,?ÌÄ”>Ø>òb'?õX´=¦±¾¦±>â-5>Ô)2¿Ó)2?`Âx¿l¶6¼õŒq>€¿v€5?±>ˆNì>òb'?R(>R(¾õu>Å¿?Å¿¿C ö>a¿wl¼T]I?€¿³“?œ>&:±>=Š?f¦©>f¦©¾™9.>Ç)*?È)*¿i¤®>ü#í¾}b ¼àb?€¿kû?ÊÄ”>&:±>~±?¦±>¦±¾õX´=Ó)2?Ò)2¿ .5> p¾˜@P<xØx?€¿¿É ?±>&:±>ÂØ ?R(>R(¾õu¾Å¿?Å¿¿C ö¾š "?z =±ìE?€¿p…É>œ>&:±>ëÄ>f¦©>f¦©¾™9.¾Ç)*?È)*¿i¤®¾Nß>ú|м¬Ff?€¿şµØ>ÌÄ”>&:±>.Ø>¦±>¦±¾õX´½Ò)2?Ó)2¿ .5¾o>|ø`¼Çæx?€¿Uë>±>&:±>ÒNì>ë±>ö@>°v¾²?mÖ?ÿñõ¾•?S*c< L?€¿p…É>¶m2?":1?VÚ‰>ë9ª>…é>\Ï.¾ñ"*?¥&*?@Ë®¾Íå>ÁÇ&<MÀd?€¿şµØ>˜6?":1?ÆQl>Â=²>®Ç±>3ó´½j02?z$2?E5¾¶8u>}nì;Sx?€¿Uë>~8?":1?ÀîD>ë±>ö@>°v>²?mÖ?ÿñõ>ê׿QÖF¼}ÖK?€¿³“?¶m2?":1?€‹=ë9ª>…é>\Ï.>ì"*?§&*?GË®>Aÿæ¾°í»ud?€¿kû?˜6?":1? Œ=Â=²>®Ç±>3ó´=g02?$2?H5>”˜»ª?x?€¿¿É ?~8?":1?Rì=°v>ö@>ë±>ÿñõ>mÖ?²?ä¶K¿6<Ã?€¿ƒ¶$?¶m2?ä;? 4\Ï.>…é>ë9ª>GË®>§&*?ì"*?á•d¿K´ <!zæ>€¿ÌN,?˜6?ŒëD? 43ó´=®Ç±>Â=²>M5>~$2?g02?oXx¿áëy;•€x>€¿v€5?~8?RÄN? 4°v¾ö@>ë±>ÿñõ¾mÖ?²?­)L¿³Xs¼.f¿€¿}‡Z?¶m2?4'v? 4\Ï.¾…é>ë9ª>GË®¾§&*?ì"*?6 d¿H¼Pæ¾€¿8ïR?˜6?Nl? 43󴽮DZ>Â=²>I$2?g02?sx¿Ù¸»ÕÃv¾€¿Š½I?~8?Äub? 4ë±¾ö@>°v>²¿mÖ?ÿñõ>¿*c< L¿€¿Pªd?¶m2?€?€‹=ë9ª¾…é>\Ï.>ì"*¿§&*?GË®> Íå¾FÉ&<LÀd¿€¿–Bl?˜6?€? Œ=Â=²¾®Ç±>3ó´=h02¿$2?M5>Ê8u¾–mì;Rx¿€¿Dtu?~8?€?Rì=ë±¾ö@>°v¾²¿mÖ?ÿñõ¾è×?S×F¼~ÖK¿€¿Ø`Õ=¶m2?€?VÚ‰>ë9ª¾…é>\Ï.¾ì"*¿§&*?GË®¾?ÿæ>'±í»ud¿€¿¤˜=˜6?€?ÆQl>Â=²¾®Ç±>3ó´½h02¿$2?M5¾›z>×»ª?x¿€¿€"=~8?€?ÀîD>°v¾ö@>ë±¾ÿñõ¾mÖ?²¿ä¶K?6<ÿ€¿²;>¶m2?4'v?¿‹>\Ï.¾…é>ë9ª¾:Ë®¾¨&*?î"*¿ä•d?³ <zæ¾€¿Ìœ1>˜6?Nl?¿‹>3󴽮DZ>Â=²¾>$2?h02¿oXx?hçy;‘€x¾€¿zcV>~8?Äub?¿‹>°v>ö@>ë±¾ÿñõ>mÖ?²¿®)L?Ys¼-f?€¿Î?µ>¶m2?ä;?¿‹>\Ï.>…é>ë9ª¾@Ë®>¥&*?ñ"*¿8 d?ÀG¼Pæ>€¿@¦>˜6?ŒëD?¿‹>3ó´=®Ç±>Â=²¾>5>{$2?k02¿”sx?ø»ÂÃv>€¿é«“>~8?RÄN?¿‹>R(>õu¾R(>¼¿?m ö¾¼¿?;ê4¿W½‰:š5?€¿¥?(e²>8=f¦©>™9.¾f¦©>Å)*?z¤®¾Ä)*?7ÿ4¿Å«²9®
5?€¿¥?¿)É>w=¦±>õX´½¦±>î1?»a<¾î1?¥5¿­8A5?€¿¥?×ã>aQì=ë±>ğu>ë±>·?O6ö>ÿ¶?ó"5¿f.:Şæ4?€¿¥?kC'?ZÚ‰>ë9ª>Rø->ë9ª>à$*? Ë®>Á$*?“ 5¿…Ğ9Qş4?€¿¥? á?uQl>Â=²>¸6³=Â=²>292?<H3>(92?5¿3ø®8H5?€¿¥?rŠ?sîD>ë±>ğu>ë±¾·?O6ö>ÿ¶¿Øæ4?.Ëš:ù"5?€¿b¿>kC'?ZÚ‰>À‹>ë9ª>Rø->ë9ª¾à$*? Ë®>Á$*¿\ş4?ıË9ˆ 5?€¿b¿> á?vQl>À‹>Â=²>¸6³=Â=²¾«*2?ß5>¢*2¿¬5?GÏ9:5?€¿b¿>rŠ?tîD>À‹>R(>õu¾R(¾¼¿?m ö¾¼¿¿™5?`º‰:<ê4?€¿b¿>(e²><=À‹>f¦©>™9.¾f¦©¾Å)*?z¤®¾Ä)*¿­
5?ÿ¢²98ÿ4?€¿b¿>¿)É>y=À‹>¦±>õX´½¦±¾{Ö1?$?¾|Ö1¿|5?wo69j5?€¿b¿>×ã>cQì=À‹>R(¾õu¾R(>Å¿¿C ö¾Å¿5¿`Š:.ê4¿€¿æ˜_?(e²>‰ëÄ>4f¦©¾™9.¾f¦©>Ç)*¿i¤®¾È)*?ª
5¿b5²9;ÿ4¿€¿æ˜_?¿)É>ÿœØ>4¦±¾õX´½¦±>î1¿÷a<¾î1?>5¿/
5¿€¿æ˜_?×ã>‡Nì>4ë±¾ğu>ë±>·¿e6ö>·?áæ4¿‹Üš:ï"5¿€¿æ˜_?kC'?:Š?4ë9ª¾Rø->ë9ª>Ğ$*¿Ë®>Ğ$*?Uş4¿· Î9 5¿€¿æ˜_? á?l±?4Â=²¾¸6³=Â=²>.92¿H3>.92?C5¿$ë®8£5¿€¿æ˜_?rŠ?–Ø ?4R(¾õu¾R(¾Å¿¿C ö¾Å¿¿.ê4?nŠ:¨5¿€¿ ìı=(e²>È‹=&:±>f¦©¾™9.¾f¦©¾È)*¿i¤®¾Ç)*¿:ÿ4?›?²9ª
5¿€¿ ìı=¿)É>s=&:±>¦±¾õX´½¦±¾yÖ1¿Q$?¾yÖ1¿n5?Ü49x5¿€¿ ìı=×ã>{Qì=&:±>ë±¾ğu>ë±¾·¿e6ö>·¿ğ"5?Tİš:áæ4¿€¿ ìı=kC'?GÚ‰>&:±>ë9ª¾Rø->ë9ª¾Ğ$*¿Ë®>Ğ$*¿ 5?Î9Uş4¿€¿ ìı= á?wQl>&:±>Â=²¾¸6³=Â=²¾¨*2¿Ã5>¨*2¿95?t{ 9­5¿€¿ ìı=rŠ?fîD>&:±>Â¥›²G!Ó¾öp¾
)T¿C¿_í?g—Z<ŞÛ¡¼€¿¦İ~>G.o> ?ëÄ>®ï'³®Çê¾ÍLH¾ÿÖk¿n'Ǿ—¬~?°ğ!=YÅ¿½€¿¦İ~>†2> ?.Ø>G)K²™ùù¾pmνõ§z¿µ"P¾¢'z?Dä0=€¿¦İ~>şĞ= ?ÒNì>öp¾G!Ó¾
×£2C¿
)T¿SĞ<suŒ¼<á¿€¿ˆqºI.o>$Š? ?ÍLH¾®Çê¾
·Ñ¯|'ǾüÖk¿ˆT¤=§Ä
½ò¿€¿ˆqºù€1>h±? ?Âmν™ùù¾Ã"P¾õ§z¿>áıÚ¼ºÆ}¿€¿ˆqº5’ã=œØ ? ?ÌÌL3G!Ó¾öp>
)T¿C?uõ¿Âu$<—s<€¿Ÿ??G.o> ?=Š?R¬²®Çê¾ÍLH>ÿÖk¿n'Ç>L¿ïI=Ê5 =€¿Ÿ??†2> ?~±?R€·²™ùù¾pmÎ=õ§z¿µ"P>¦¸~¿‚7¦<u,È=€¿Ÿ??İgÖ= ?ÂØ ?öp>G!Ó¾
×#3C?
)T¿¿˜¨¼Ü°c¼Êë?€¿jVÿ>G.o>«ëÄ> ?ÍLH>®Çê¾Â§2n'Ç>ÿÖk¿d×½Óâ5½ŠS~?€¿jVÿ>i£->Ø> ?pmÎ=™ùù¾
×#²°"P>õ§z¿¶C¾˜Á½$ß|?€¿jVÿ>ÒÇ=ˆNì> ?áò>bÓ>\³ü4?Œ2T?kñõ»$û¥;Pı?€¿jVÿ>ì=C?ä;?Ä‹>{üH>\ë>¸…³©ÔÆ>rèk?c“½hü÷<8?€¿jVÿ>FõP?ŒëD?Ä‹>¤ Ï=…Kú>p=
³áGN>|Àz?">¾ê<¡i}?€¿jVÿ>ìf?RÄN?Ä‹>ÌÌL3bÓ>áò>Œ2T?ü4?Pı¿sü¥»Zóõ;€¿Ÿ??ì=C?X?€‹=¸3\ë>{üH>wèk?™ÔÆ>L9¿‹÷¼2Ú’=€¿Ÿ??FõP?X? Œ=¸…2…Kú>R Ï=|Àz?ÏGN>^|¿¶Ù½ÜÜ.>€¿ı§??Ÿæf?X?Rì=áò¾bÓ>ü4¿Œ2T?óõ;Hü¥;Pı¿€¿Ì’?ì=C?4'v?Ä‹>{üH¾\ë>›Ôƾwèk?´¢”=•Œú<o4¿€¿Ì’?FõP?Nl?Ä‹>R Ͻ…Kú>ÌGN¾~Àz?Rk;>.=¸}{¿€¿Æs?+f?Äub?Ä‹>¸´bÓ>áò¾Œ2T?ı4¿Pı?wı¥»Øôõ»€¿¦İ~>ì=C?X?VÚ‰>ëQ¸³\ë>{üH¾uèk?›Ôƾ—8?½û÷¼ “½€¿¦İ~>FõP?X?ÆQl>¤p=³…Kú>R Ͻ|Àz?ÏGN¾~?jx̼1ø½€¿¦İ~>ìf?X?ÀîD>G!Ó>öp¾
×#³)T?C¿ÓµF:ùÿ?€¿jVÿ>h¥><=>®Çê>ÍLH¾¤¨¤³üÖk?}'Ǿ¸{Ì¡¸€?€¿jVÿ>üâÀ>x=>™ùù>Âmν
×#³‹pz?xCT¾«ê°¹›øª9‰cº¸ÿÿ?€¿jVÿ>Œ³ß>bQì=>3ÛÔ>®Ç-ë9>§£T?H? ¼†ˆ?܉¿üûÙ5¦¥T?€¿ ÷?ÿ:?À‹>@=3ƒì>™™.
ïC>†Kl? ø»òÄ>Šóľ‚sE7CMl?€¿ ?ÿ:?À‹>Œ={û>-ÂÅÇ=öız?1nâ»úmI>9oI¾v& ·ÿz?€¿ õ?ÿ:?À‹>ØRì=¸ÖÓ>Gy>)\´4ET?V?µrºÓëH:ùÿ?€¿jVÿ>üÁ-?ZÚ‰>>£pë>f&H>
×#´Ãîk?°¶Æ>ıN8çvŸ¸€?€¿jVÿ>€ ?vQl>>{´ú>RhÍ={.´ÓÍz?†CM>áܺúëÃ9Pêˆ:öÿ?€¿jVÿ>9œ?tîD>>¸ÖÓ>¤gºáò¾<<T?ˆ^¼K!¿ï"?(g¸º>T?€¿¿¾Î>ÿ:?Á‹>;Ú‰>£pë>‚¤gº{üH¾èåk?Ó8 ¼cÔÆ¾,ÖÆ>)³˜¸!èk?€¿”Ş>ÿ:?Á‹>¼Ql>{´ú>ΤgºR ϽÔz?å[ú»P¢L¾ ªL>¥¡X;PÕz?€¿”Âî>ÿ:?Á‹>¸îD>)\3öp¾G!Ó>C¿
)T?ùÿ¿w F:¥»:€¿Ÿ??h¥>‰ëÄ>€‹>=š¢3ÍLH¾®Çê>'ǾúÖk?€¿f¡¡¸ }¸€¿Ÿ??üâÀ>ÿœØ>€‹>B¬3Âmν™ùù>˜T¾lz?€¿˜·R£†¶€¿Ÿ??Œ³ß>‡Nì>€‹>ë9¾p=
.3ÛÔ>†ˆ¿H? ¼§£T?¦¥T¿¢Ú5܉¿€¿ÖêW?ÿ:?ûÿÿ>ğ‹=
ïC¾{­3ƒì>òľ ø»†Kl?CMl¿ªuE7Šóľ€¿l P?ÿ:?ûÿÿ>`Œ=ÂÅǽ
×.{û>ÿmI¾oâ»öız?~ÿz¿†& ·>oI¾€¿ìèG?ÿ:?ûÿÿ>Sì=)\3Gy>¸ÖÓ>V?4ET?ùÿ¿lI:˜€º€¿Ÿ??üÁ-?:Š?€‹>
×£3f&H>£pë>»¶Æ>Àîk?€¿w*¸ 78€¿Ÿ??€ ?j±?€‹>
×£3¤hÍ={´ú>œÕM>[Æz?€¿5™[¸¸>47€¿Ÿ??9œ?–Ø ?€‹>ë9>p=
®3ÛÔ>†ˆ?H? ¼§£T?¦¥T¿GNµÜ‰?€¿,S'?ÿ:?ûÿÿ>RÚ‰>
ïC>{-3ƒì>òÄ> ø»†Kl?CMl¿~
½¶‹óÄ>€¿–4/?ÿ:?ûÿÿ>¦Ql>ÂÅÇ=\®{û>nI>ınâ»õız?~ÿz¿Ù_¦5AoI>€¿U7?ÿ:?ûÿÿ>´îD>G!Ó¾öp¾
×#3)T¿C¿º«F:ùÿ¿€¿Ì’?h¥>Ì‹=ôÿÿ>®Çê¾ÍLH¾z%3ÿÖk¿n'Ǿ˜Ğ 8˜3£¸€¿€¿Ì’?üâÀ>t‹=ôÿÿ>™ùù¾pmν
×#3pz¿gCT¾Íݰ¹t÷:¥¥“ºòÿ¿€¿Ì’?Œ³ß>|Qì=ôÿÿ>¸ÖÓ¾ ¢gºáò¾<<T¿^^¼K!¿ï"?#_8º>T¿€¿œ{À=ÿ:?õ‹>®ëÄ>£pë¾Ç¡gº{üH¾èåk¿§8 ¼cÔÆ¾+ÖÆ>õ†Ÿ8"èk¿€¿Hp=ÿ:?õ‹>.Ø>{´ú¾Ë¡gºR ϽÔz¿æ\ú»J¢L¾ªL>¼Y»PÕz¿€¿Ø=ÿ:?õ‹>ŞNì>¸ÖÓ¾Gy>4ET¿V?±‡
I:ùÿ¿€¿ˆqºüÁ-?GÚ‰>ôÿÿ>£pë¾f&H>Áîk¿º¶Æ>ݸŠÿ¸€¿€¿ˆqº€ ?xQl>ôÿÿ>{´ú¾¤hÍ=ÓÍz¿CM>EѺ(õ:B¤/¹ıÿ¿€¿ˆqº9œ?gîD>ôÿÿ>3ÛÔ¾…Ë­ë9>§£T¿H? ¼†ˆ?܉¿¿Nµ¦¥T¿€¿øFg?ÿ:?ö‹>5Š?3ƒì¾™™®
ïC>†Kl¿ ø»òÄ>‹óľ!½¶CMl¿€¿b(o?ÿ:?ö‹>x±?{û¾­ÂÅÇ=öız¿´o⻺mI>:oI¾eŸ®5ÿz¿€¿âHw?ÿ:?ö‹>»Ø ?ÒŞ2öp¾G!Ó¾C¿
)T¿ùÿF:9µº€¿¦İ~>h¥>ì;?ìÿÿ>Â-²ÍLH¾®Çê¾}'ǾüÖk¿€?”Ḫ™8€¿¦İ~>üâÀ>šëD?ìÿÿ>Â-3Âmν™ùù¾ÕîS¾uz¿óÿ?qÑœºr²„9€¿¦İ~>Œ³ß>ZÄN?ìÿÿ>áò>°£gº¸ÖÓ¾K!?„^¼<<T¿º>T?æõ^8ï"?€¿~°>ÿ:?X?~ëÄ>{üH>ï£gº£pë¾`ÔÆ>Ç8 ¼èåk¿"èk?臟8)ÖÆ>€¿©C >ÿ:?X?"Ø>R Ï=T£gº{´ú¾J¢L>ú[ú»Ôz¿PÕz? ªL>€¿ª>ÿ:?X?¶Nì>\B´Gy>¸ÖÓ¾W?2ET¿ùÿI:ª:€¿¦İ~>üÁ-?D'v?ìÿÿ>®Ga´f&H>£pë¾À¶Æ>Àîk¿€?ô7¸dB¸€¿¦İ~>€ ?†Nl?ìÿÿ>…k´¤hÍ={´ú¾•±L>KÕz¿øÿ?5§s:›ÕF9€¿¦İ~>9œ?ºub?ìÿÿ>áò¾a¢gº¸ÖÓ¾K!¿i^¼<<T¿º>T?“Dg¸ï"¿€¿P®>ÿ:?X?8Š?{üH¾ ¢gº£pë¾aÔÆ¾±8 ¼èåk¿"èk?±˜¸+ÖÆ¾€¿ú3=>ÿ:?X?z±?R Ͻ£gº{´ú¾U¢L¾w\ú»Ôz¿OÕz?H­X;ªL¾€¿úµ]>ÿ:?X?ÁØ ?®w~>G µ¾®w~¾ò!ş>‰T6¿ò!ş¾ô5?Ï›3ò5?€¿b¿>Î>«ëÄ>ëÄ>33>Â=žÍ‡¾Oϲ>MF¿ªú¿h}T? °» Ä?€¿¯>h€>Ø>ëÄ>GÁ¸=R¨Ï¾Â
¾rà8>V™P¿Æ
¿9w?ş
7= m€>€¿H3™>ë–s>ˆNì>ëÄ>͇>Â=ž33¾ªú?MF¿Oϲ¾İ<?]u<%ÇR?€¿(¨Ï>h€>«ëÄ>.Ø>…[<>¾Ù¾…[<¾ùé»>½ĞZ¿ù黾á6@?Ëö =É(?€¿b¿>.\[>Ø>.Ø>Á=õˆæ¾…›D¾½BA>΂g¿ÒľŒöi?Mtœ<ú–Ï>€¿¢­¤>>>ˆNì>.Ø>Â
>R¨Ï¾GÁ¸½Ç
?V™P¿rà8¾¿™b>M"‡½Èy?€¿ô‘å>ë–s>«ëÄ>ÒNì>…›D>õˆæ¾Á½ÓÄ>΂g¿½BA¾°çã>*Ë:D=e?€¿™Ú>Wy3>Ø>ÒNì>¸>Ê=
õ¾¸>ʽí÷J>‘¼u¿ï÷J¾à«@?¾ÈŸ<b}(?€¿ØÂ¾>+Õ>ˆNì>ÒNì>®w~¾G µ¾®w~¾ò!ş¾‰T6¿ò!ş¾ô5?œÜJ³ó5¿€¿ ìı=Α>$Š?ëÄ>͇¾Â=ž33¾ªú¿MF¿Oϲ¾ü• ?·+Ş;û–V¿€¿ôÕ¼=h€>$Š?.Ø>Â
¾R¨Ï¾GÁ¸½Æ
¿V™P¿uà8¾
"‡>Yõ=5Âv¿€¿€]J=í–s>$Š?ÒNì>33¾Â=žÍ‡¾Oϲ¾MF¿ªú¿ü–V?ú+Ş»û• ¿€¿">h€>h±?ëÄ>…[<¾¾Ù¾…[<¾ù黾½ĞZ¿ù黾x"4?ìÙA;íå5¿€¿ ìı=`¯V>h±?.Ø>…›D¾õˆæ¾Á½Úľ͂g¿ÏBA¾üÓ>Áqp<ÿh¿€¿,“=åa>>h±?ÒNì>GÁ¸½R¨Ï¾Â
¾uà8¾V™P¿Ç
¿õ³v?(U
½ÿ”‡¾€¿¼TK>í–s>œØ ?ëÄ>Á½õˆæ¾…›D¾¿BA¾Î‚g¿Òľ"ci?2†¼«9Ò¾€¿`4>é>=>œØ ?.Ø>¸>ʽ
õ¾¸>ʽ÷÷J¾‘¼u¿øJ¾´‹,?ç‹Z<4=¿€¿œ5>g•>œØ ?ÒNì>®w~¾G µ¾®w~>ò!ş¾‰T6¿ò!ş>ğ5¿Z
‡´ö5¿€¿æ˜_?Α>$Š?=Š?33¾Â=žÍ‡>Oϲ¾MF¿ªú?cƒW¿NI<‰!
¿€¿!vW?h€>h±?=Š?GÁ¸½R¨Ï¾Â
>uà8¾V™P¿Æ
?7jx¿Ÿée=¢¦p¾€¿<L?í–s>œØ ?=Ї¾Â=ž33>ªú¿MF¿Oϲ>qñ¿r‰¼@X¿€¿­»g?h€>$Š?~±?…[<¾¾Ù¾…[<>ù黾½ĞZ¿ùé»>~Ç0¿ke¼¬ 9¿€¿æ˜_?`¯V>h±?~±?Á½õˆæ¾…›D>¿BA¾Î‚g¿ÒÄ>%½h¿(p]< "Õ¾€¿h>R?§7:>œØ ?~±
¾R¨Ï¾GÁ¸=Ç
¿V™P¿uà8>Œd‚¾œ›+½•Sw¿€¿’°r?í–s>$Š?ÂØ ?…›D¾õˆæ¾Á=Úľ͂g¿ÏBA><5Ó¾M}¼u+i¿€¿fól?åa>>h±?ÂØ ?¸>ʽ
õ¾¸>Ê=÷÷J¾‘¼u¿øJ>ΰ5¿d6:gX4¿€¿Èa?…à>œØ ?ÂØ ?®w~>G µ¾®w~>ò!ş>‰T6¿ò!ş>õ5¿ı=´ñ5?€¿¥>«ëÄ>=Ї>Â=ž33>ªú?MF¿Oϲ>ñf
¿ñQ¹‡gU?€¿V?h€>«ëÄ>~±
>R¨Ï¾GÁ¸=Æ
?V™P¿uà8>H¾-BÀ<°²u?€¿p ?ë–s>«ëÄ>ÂØ ?33>Â=žÍ‡>Oϲ>MF¿ªú?ˆgU¿²<9ğf
?€¿ßÇ'?h€>Ø>=Š?…[<>¾Ù¾…[<>ùé»>½ĞZ¿ùé»>ÿ³6¿Gº»YP3?€¿¥?.\[>Ø>~±?…›D>õˆæ¾Á=ÒÄ>΂g¿½BA>ô޾"™g;¹sf?€¿J9>Ø>ÂØ ?GÁ¸=R¨Ï¾Â
>và8>V™P¿Æ
?¤Ëu¿ú°È¼Ú>€¿Æ¼2?ë–s>ˆNì>=Š?Á=õˆæ¾…›D>½BA>΂g¿ÒÄ>=÷i¿‹œ¼È“Ï>€¿šÿ,?åy;>ˆNì>~±?¸>Ê=
õ¾¸>Ê=í÷J>‘¼u¿ï÷J>¼İ?¿NW”¼”j)?€¿çu?mG>ˆNì>ÂØ ?®7>-µ>®7¾ş>T`6?ş¾ó5?»²S3ô5?€¿b¿>¸°9?ä;?VÚ‰>\‡>=rÅ>áª3¾°ñ?IF?1ú²¾g(?^”¼íR?€¿(¨Ï>nÕ>?ä;?ÆQl>>™éÏ>=b¹½Qù ?%¢P?%Í8¾y>FRM=Oúw?€¿ô‘å>Â#B?ä;?ÀîD>áª3>=rÅ>\‡¾1ú²>IF?°ñ¿ïR?Ç]”<d(?€¿¯>nÕ>?ŒëD?VÚ‰>
ÿ<>Ú>
ÿ<¾ìÔ»>ÆÙZ?ìÔ»¾ô5?K˜²ó5?€¿b¿>;WE?ŒëD?ÆQl>=BE>¤Ğæ>™1½¥¶Ã>8•g?‡A¾ŸZÍ>¦&¯<bqj?€¿›Ú>ÌO?ŒëD?ÀîD>=b¹=™éÏ>¾Í8>'¢P?Rù ¿Oúw?:RM½y>€¿H3™>Â#B?RÄN?VÚ‰>™1Â=¤Ğæ>=BE¾uA>:•g?¶Ã¾kqj?£'¯¼tZÍ>€¿¢­¤>ÌO?RÄN?ÆQl>fîÊ=™Yõ>fîʽñI>¡×u?"ñI¾n5?€œwºğm4?€¿b¿>şà^?RÄN?ÀîD>®7>-µ>®7>ş>T`6?ş>ó5¿

³ô5?€¿¥?¸°9?ä;?€‹=áª3>=rÅ>\‡>1ú²>IF?°ñ?V¿1x;~ ?€¿ßÇ'?nÕ>?ŒëD?€‹==b¹=™éÏ>>%Í8>%¢P?Qù ?Ù¨r¿Ü+¯»Ë£>€¿Æ¼2?Â#B?RÄN?€‹=\‡>=rÅ>áª3>°ñ?IF?1ú²>~ ¿*V?€¿V?nÕ>?ä;? Œ=
ÿ<>Ú>
ÿ<>ìÔ»>ÆÙZ?ìÔ»>ó5¿möq²ó5?€¿¥?;WE?ŒëD? Œ=™1Â=¤Ğæ>=BE>yA>:•g?¶Ã>¾\g¿3 ö;¯Û>€¿šÿ,?ÌO?RÄN? Œ=>™éÏ>=b¹=Rù ?'¢P?#Í8>Σ¾÷,¯;Ù¨r?€¿p ?Â#B?ä;?Rì==BE>¤Ğæ>™1Â=¦¶Ã>8•g?…A>´Û¾ ö»½\g?€¿œJO?ŒëD?Rì=fîÊ=™Yõ>fîÊ=ñI>¡×u?ñI>÷5¿8x9íğ4?€¿¥?şà^?RÄN?Rì=®7¾-µ>®7>ş¾T`6?ş>ò5¿œ½¦3ô5¿€¿æ˜_?¸°9?4'v?€‹=\‡¾=rÅ>áª3>°ñ¿IF?1ú²>i(¿Y^”¼ìR¿€¿­»g?nÕ>?4'v? Œ=¾™éÏ>=b¹=Rù ¿'¢P?&Í8>y¾1RM=Núw¿€¿”°r?Â#B?4'v?Rì=áª3¾=rÅ>\‡>1ú²¾IF?°ñR¿L^”<i(¿€¿!vW?nÕ>?Nl?€‹=
ÿ<¾Ú>
ÿ<>ìÔ»¾ÆÙZ?ìÔ»>ó5¿¨Jo²ó5¿€¿æ˜_?;WE?Nl? Œ==BE¾¤Ğæ>™1Â=¶Ã¾:•g?yA>Õ¬º¾Ô#=ô(n¿€¿fól?ÌO?Nl?Rì==b¹½™éÏ>>#Í8¾'¢P?Rù ?Oúw¿@RM½ €¿<L?Â#B?Äub?€‹=™1½¤Ğæ>=BE>xA¾:•g?¶Ã>•Œm¿ñ½Jî½¾€¿h>R?ÌO?Äub? Œ=fîʽ™Yõ>fîÊ=ñI¾£×u?ñI>q{2¿şa„;¼„7¿€¿æ˜_?»k`?Äub?Rì=®7¾-µ>®7¾ş¾T`6?ş¾ó5?*†²ó5¿€¿ ìı=¸°9?4'v?VÚ‰>áª3¾=rÅ>\‡¾"ú²¾“IF?±ñ¿—V?x;~ ¿€¿">nÕ>?Nl?VÚ‰>ëa¹½™éÏ>¾Í8¾'¢P?Rù ¿ß¨r?ø'¯»¥£¾€¿ºTK>Â#B?Äub?VÚ‰>\‡¾=rÅ>áª3¾°ñ¿IF?1ú²¾~ ?V¿€¿ôÕ¼=nÕ>?4'v?ÆQl>
ÿ<¾Ú>
ÿ<¾æÔ»¾ÆÙZ?ôÔ»¾ú5?г5¿€¿ ìı=;WE?Nl?ÆQl>™1½¤Ğæ>=BE¾oA¾8•g?¨¶Ã¾¿\g?ö;©Û¾€¿`4>ÌO?Äub?ÆQl>¾™éÏ>=b¹½Rù ¿'¢P?#Í8¾Ñ£>ˆ-¯;بr¿€¿€]J=Â#B?4'v?ÀîD>=BE¾¤Ğæ>™1½¶Ã¾:•g?yA¾°Û> ö»½\g¿€¿,“=ÌO?Nl?ÀîD>fîʽ™Yõ>fîʽñI¾£×u? ñI¾ò5?E”«1ô5¿€¿ ìı=şà^?Äub?ÀîD>G µ>®w~¾®w~¾|T6?#"ş¾ç!ş¾Ïy?²bò»Ö£R?€¿ptÍ>¶±¯><=;Ú‰>Â=Å>͇¾3MF?´ú¿7ϲ¾ÈÜĞ>>¾±» ºi?€¿Œ£Ü>¹Àª><=¼Ql>R¨Ï>Â
¾GÁ¸½V™P?Æ
¿và8¾K
\>Af»æz?€¿%„í>êë¦><=¸îD>Â=Å>…3¾Í‡¾MF?jϲ¾©ú¿ªé?ê«âº¸S?€¿§uÎ>’ŸÇ>y=;Ú‰>¾Ù>…[<¾…[<¾ÂĞZ?껾Ò黾˜É>·»Rk?€¿áŞ>k­Ä>y=¼Ql>õˆæ>…›D¾Á½Í‚g?ÚľÏBA¾{ªP>[y§ºÙ z?€¿¸}î>Â>x=¸îD>R¨Ï>GÁ¸½Â
¾ò=P?~aB¾M¿ ¿¹T?>~ºT?€¿¦ÀÎ>$ã>cQì=;Ú‰>õˆæ>Á½…›D¾y"g?»ÂI¾[£Ã¾
{Ç>ØB?ºNÅk?€¿M„Ş>­¾á>cQì=¼Ql>
õ>¸>ʽ¸>ʽ‡u?éïP¾2éH¾ZM>~:­Ìz?€¿Äî>„]à>bQì=¸îD>G µ>®w~¾®w~>|T6?#"ş¾ç!ş>'¼¿!b¬;wR?€¿1œ?¶±¯>8=@=Â=Å>…3¾Í‡>MF?jϲ¾©ú?꿸^à:Ò·S?€¿–?’ŸÇ>w=@=R¨Ï>GÁ¸½Â
>=‡P?öF@¾ó€ ? ¿Ä%è7*NT?€¿ö?$ã>aQì=@=Â=Å>͇¾33>MF?¶ú¿6ϲ>ê×оWá³;»i?€¿£?¹Àª>8=Œ=¾Ù>…[<¾…[<>ÂĞZ?껾Òé»>
§É¾`èü:ÕNk?€¿ùI?k­Ä>x=Œ=õˆæ>Á½…›D>ã]g?,I¾U¸Â>ñ•ƾùç1¶¨õk?€¿C?­¾á>bQì=Œ=R¨Ï>Â
¾GÁ¸=V™P?Ä
¿rà8>-[¾D h;Ëz?€¿X”?êë¦><=ØRì=õˆæ>…›D¾Á=Í‚g?ÚľÍBA>‘«P¾{¦:Ë z?€¿?Â>x=ØRì=
õ>¸>ʽ¸>Ê=u?DDQ¾‹iG>¶K¾oÀY5âz?€¿#ô?„]à>bQì=ØRì=롵>®w~>®7>Ğh6?ê(ş>Áàı>ÀS¿ó$ô»¾R?€¿2œ?$(?ZÚ‰>@={äÅ>ë ‡>áª3>8`F?Ÿà?1ɲ>,Ùо©»óºi?€¿¤+?ZÚ‰>Œ=^Ğ>>=b¹=µP?ÙÜ ?ÃÒ8>0î[¾-“ »uz?€¿X”?-?ZÚ‰>ØRì={äÅ>Ø2>\‡>#hF?á²> Í?Á¸¿ş®ğºBÙS?€¿–?6¦?uQl>@=¸^Ú>
'<>
ÿ<>ÒñZ?g¨»>G‘»>].ɾ »šhk?€¿ùI?H?uQl>Œ=ë1ç>=rD>™1Â=õ›g?JÃ>§,A>ÙxP¾'ñ­ºm£z?€¿?{n?uQl>ØRì=^Ğ>¤¨·=>NûP?Û±7>;Œ ?,Û¿Ónx¹oT?€¿ö?ôã?sîD>@=ë1ç>ëyÀ==BE>jÑg?ƒgA>¥‚Â>¥
ƾ~¹Il?€¿C?¨–?sîD>Œ=̼õ>õ0É=fîÊ=òñu?uNJ>MG>K¾•–¹Fäz?€¿#ô?<G?sîD>ØRì=롵>®w~>®7¾Ğh6?ê(ş>Áàı¾æ¡?Ö·¡;U‰R?€¿ntÍ>$(?ZÚ‰>;Ú‰>{äÅ>Ø2>\‡¾#hF?á²> Í¿­¼?°U×: ÖS?€¿§uÎ>6¦?vQl>;Ú‰>^Ğ>¤¨·=¾O½P?Ï8>áĞ ¿³%?q;:Û<T?€¿¦ÀÎ>ôã?tîD>;Ú‰>{äÅ>ë ‡>áª3¾;`F? à?#ɲ¾¢ÍĞ>sŒ®;x½i?€¿Œ£Ü>¢+?ZÚ‰>¼Ql>¸^Ú>
'<>
ÿ<¾ÒñZ?o¨»>?‘»¾µ7É>θ;£fk?€¿áŞ>H?vQl>¼Ql>ë1ç>ëyÀ==BE¾J¢g?ÍA>ñtþ›úÆ>ˆ‚:qàk?€¿M„Ş>¨–?tîD>¼Ql>^Ğ>>ëa¹½µP?ÚÜ ?¶Ò8¾`[>y<b;Sz?€¿%„í>-?ZÚ‰>¸îD>ë1ç>=rD>™1½ò›g?TÃ>¨,A¾ËuP>¶º±:•£z?€¿¸}î>{n?vQl>¸îD>̼õ>õ0É=fîʽ éu?A=I>ZQI¾N@M>"Ò·9Îz?€¿Äî><G?tîD>¸îD>®w~>®w~¾G µ>"ş>"ş¾pT6?£R¿F_ò»ìy?€¿®&?¶±¯>‰ëÄ>RÚ‰>…3>͇¾Â=Å>@ϲ>µú¿MF? ºi¿‹¼±»ÖÜĞ>€¿“E.?¹Àª>‰ëÄ>¦Ql>õÀ¸=Â
¾R¨Ï>$à8>Æ
¿Z™P?íz¿˜n»Ó \>€¿Şµ6?êë¦>‰ëÄ>´îD>͇>…3¾Â=Å>´ú?Oϲ¾MF?
¸S¿³âº±é?€¿ .'?’ŸÇ>ÿœØ>RÚ‰>…[<>…[<¾¾Ù>Öé»>ä黾ÈĞZ?Rk¿¢»˜É>€¿=/?k­Ä>ÿœØ>¦Ql>Á=…›D¾õˆæ>¦BA>Õľ΂g?Û z¿ v§ºQªP>€¿ª27?Â>ÿœØ>´îD>Â
>GÁ¸½R¨Ï>ó€ ?öF@¾=‡P?¦NT¿¥e˸P ?€¿T'?$ã>ƒNì>RÚ‰>…›D>Á½õˆæ>V¸Â>)I¾ã]g?ök¿µ£¸ş“Æ>€¿ô5/?­¾á>‡Nì>¦Ql>¸>Ê=¸>ʽ
õ>iG>DDQ¾u?âz¿ıpz6_¶K>€¿V7?„]à>‡Nì>´îD>®w~¾®w~¾G µ>ò!ş¾ò!ş¾‰T6?ıvR¿mN¬;7¼¿€¿ıX?¶±¯>‰ëÄ>ğ‹‡¾33¾Â=Å>ªú¿Oϲ¾MF?Ö·S¿Ïwà:ÿé¿€¿bX?’ŸÇ>ÿœØ>ğ‹
¾GÁ¸½R¨Ï>õ€ ¿4G@¾;‡P?,NT¿¼I÷7 ¿€¿âéW?$ã>‡Nì>ğ‹=33¾Í‡¾Â=Å>Bϲ¾«ú¿"MF?!»i¿Rî³;Õ×о€¿qøP?¹Àª>‰ëÄ>`Œ=…[<¾…[<¾¾Ù>ğ黾껾½ĞZ?ÚNk¿o†ı:ï¦É¾€¿Ç=P?k­Ä>ÿœØ>`Œ=…›D¾Á½õˆæ>c¸Â¾HI¾Ş]g?¥õk¿e1*¶–ƾ€¿P?­¾á>‡Nì>`Œ=õÀ¸½Â
¾R¨Ï>\à8¾Æ
¿V™P?Ìz¿"h;á,[¾€¿$ˆH?êë¦>‰ëÄ>Sì=Á½…›D¾õˆæ>ÁBA¾âľ˂g?Ë z¿é¦:«P¾€¿Z H?Â>ÿœØ>Sì=¸>ʽ¸>ʽ
õ>ŒiG¾DDQ¾u?âz¿^‡Q5¶K¾€¿îçG?„]à>‡Nì>Sì=®7¾®w~>롵>µàı¾)ş>Ãh6? ¾R¿­ô»ÊS¿€¿ÿX?$(?:Š?ğ‹=áª3¾ë ‡>{äÅ>ɲ¾«à?7`F?öºi¿õz©»Ùо€¿qøP?¢+?:Š?`Œ==b¹½>^Ğ>ÄÒ8¾ÙÜ ?µP?uz¿%” ».î[¾€¿$ˆH?-?:Š?Sì=\‡¾RØ2>{äÅ> Í¿+á²> hF?BÙS¿{¹ğºÁ¸¿€¿bX?6¦?l±?ğ‹=
ÿ<¾
'<>¸^Ú>‘»¾p¨»>ØñZ?hk¿QI»s.ɾ€¿Ç=P?H?l±?`Œ=™1½=rD>ë1ç>·,A¾QÃ>ò›g?m£z¿=®ºÚxP¾€¿Z H?}n?l±?Sì=¾¤¨·=^Ğ>;Œ ¿Ÿ±7>RûP?oT¿fÛy¹'Û¿€¿âéW?ôã?–Ø ?ğ‹==BE¾ëyÀ=ë1ç>˜‚¾fgA>oÑg?Jl¿
«|¹ 
ƾ€¿P?¨–?–Ø ?`Œ=fîʽõ0É=̼õ>bG¾€NJ>ğñu?Fäz¿÷³¹ıŠK¾€¿îçG?<G?–Ø ?Sì=®7>®w~>롵>µàı>)ş>Ãh6?a‰R¿ÃË¡;Ö¡?€¿®&?$(?:Š?RÚ‰>\‡>RØ2>{äÅ> Í?+á²> hF?›ÖS¿
=×:³¼?€¿ .'?6¦?j±?RÚ‰>>¤¨·=^Ğ><Œ ?±7>QûP?oT¿‚³}9Û?€¿T'?ôã?–Ø ?RÚ‰>áª3>ë ‡>{äÅ>ɲ>ªà?7`F?s½i¿Ñ~®;¹ÍĞ>€¿“E.?¢+?:Š?šQl>
ÿ<>
'<>¸^Ú>!‘»>p¨»>ØñZ?œfk¿ô];×7É>€¿=/?H?j±?¦Ql>=BE>ëyÀ=ë1ç>˜‚Â>fgA>oÑg?Êl¿'ó9Æ>€¿ô5/?¨–?–Ø ?¦Ql>=b¹=>^Ğ>ÈÒ8>ØÜ ?µP?Qz¿P4b;[>€¿Şµ6?-?:Š?´îD>™1Â==rD>ë1ç>¾,A>RÃ>ò›g?”£z¿Àñ:ÛuP>€¿ª27?}n?j±?´îD>fîÊ=õ0É=̼õ>iG>NJ>ğñu?&äz¿šÏ8~K>€¿V7?<G?–Ø ?´îD>G µ¾®w~¾®w~>|T6¿ç!ş¾#"ş>áy¿chò»É£R¿€¿Î¡f?¶±¯>Ì‹=5Š?Â=žÍ‡¾…3>MF¿©ú¿jϲ>ÿÜо⽱»ºi¿€¿\9n?¹Àª>Ì‹=x±?R¨Ï¾Â
¾GÁ¸=Y™P¿Ç
¿:à8>
g»êz¿€¿ª©v?êë¦>Ì‹=¼Ø ?Â=ž33¾Í‡>MF¿6ϲ¾¶ú?±é¿¨âº
¸S¿€¿l"g?’ŸÇ>u=5Š?¾Ù¾…[<¾…[<>ÂĞZ¿Ò黾ê»>ø—ɾËi»Rk¿€¿ ôn?k­Ä>u‹=x±?õˆæ¾…›D¾Á=Ó‚g¿Åľ¢BA>_ªP¾"\§ºÛ z¿€¿t&w?Â>t=¼Ø ?R¨Ï¾GÁ¸½Â
>;‡P¿4G@¾õ€ ?V ¿²yȸ¢NT¿€¿ëGg?$ã>}Qì=5Š?õˆæ¾Á½…›D>Ş]g¿HI¾c¸Â>”ƾm§¸ök¿€¿¾)o?­¾á>}Qì=x±?
õ¾¸>ʽ¸>Ê=Ÿ–u¿:DQ¾wiG>f¶K¾áÎÌ6âz¿€¿àIw?„]à>|Qì=»Ø ?G µ¾®w~¾®w~¾‰T6¿ò!ş¾ò!ş¾9¼?TL¬;üvR¿€¿Ø¤Å=¶±¯>È‹=®ëÄ>Â=ž33¾Í‡¾MF¿Oϲ¾ªú¿ÿé?xà:Ö·S¿€¿øŸÁ=’ŸÇ>s‹=®ëÄ>R¨Ï¾GÁ¸½Â
¾ï=P¿·aB¾J¿ ¿[T?‡“:ZT¿€¿üsÀ=$ã>{Qì=®ëÄ>Â=žÍ‡¾3MF¿ªú¿Oϲ¾ç×Ğ>aí³;»i¿€¿hèˆ=¹Àª>È‹=.Ø>¾Ù¾…[<¾…[<¾½ĞZ¿ù黾ù黾ø¦É>„ı:ØNk¿€¿ƒ=k­Ä>t‹=.Ø>õˆæ¾Á½…›D¾t"g¿ÖÂI¾f£Ã¾ízÇ>'*A:TÅk¿€¿\e=­¾á>|Qì=.Ø>R¨Ï¾Â
¾GÁ¸½V™P¿Å
¿rà8¾-[>wh;Ëz¿€¿Ì
=êë¦>Ì‹=ŞNì>õˆæ¾…›D¾Á½Î‚g¿Òľ½BA¾„«P>ç¦:Ë z¿€¿pÿ=Â>t=ŞNì>
õ¾¸>ʽ¸>ʽ’‡u¿àïP¾éH¾Ú$M>H¥Ò9gÏz¿€¿¸È=„]à>|Qì=ŞNì>롵¾®w~>®7¾Ãh6¿)ş>µàı¾ÉSô» ¾R¿€¿Ü¤Å=$(?GÚ‰>®ëÄ>{äÅ¾ë ‡>áª3¾7`F¿«à?ɲ¾!ÙĞ>Ez©»öºi¿€¿hèˆ=¢+?GÚ‰>.Ø>^о>=b¹½µP¿ÙÜ ?ÅÒ8¾,î[>n• »uz¿€¿Ì
=-?GÚ‰>ŞNì>{äžRØ2>\‡¾ hF¿+á²> Í¿Á¸?N¹ğºBÙS¿€¿øŸÁ=6¦?wQl>®ëÄ>¸^Ú¾
'<>
ÿ<¾ØñZ¿p¨»>‘»¾t.É>$H»–hk¿€¿ƒ=H?wQl>.Ø>ë1ç¾=rD>™1½ò›g¿QÃ>»,A¾ÛxP>? ®ºm£z¿€¿pÿ=}n?wQl>ŞNì>^о¤¨·=¾S½P¿dÏ8>áĞ ¿.&?ÆÉ<T¿€¿üsÀ=ôã?fîD>®ëÄ>ë1ç¾ëyÀ==BE¾O¢g¿°A>ãtþIúÆ>Ykº‚àk¿€¿\e=¨–?fîD>.Ø>̼õ¾õ0É=fîʽéu¿L=I>gQI¾¤ıL>ê׺RÑz¿€¿¸È=<G?fîD>ŞNì>롵¾®w~>®7>Ãh6¿)ş>µàı>Ö¡¿ÁË¡;a‰R¿€¿Î¡f?$(?GÚ‰>5Š?{äžRØ2>\‡> hF¿+á²> Í?³¼¿ş:×:›ÖS¿€¿l"g?6¦?xQl>5Š?^о¤¨·=>QûP¿±7><Œ ?Û¿6£}9oT¿€¿ëGg?ôã?gîD>5Š?{äÅ¾ë ‡>áª3>7`F¿ªà?ɲ>¶Íоæ®;t½i¿€¿\9n?¢+?GÚ‰>x±?¸^Ú¾
'<>
ÿ<>ØñZ¿p¨»>!‘»>×7ɾ ];œfk¿€¿ ôn?H?xQl>x±?ë1ç¾ëyÀ==BE>oÑg¿fgA>˜‚Â>ƾ[ÿl¿€¿¾)o?¨–?gîD>x±?^о>=b¹=µP¿ØÜ ?ÆÒ8>[¾o1b;Qz¿€¿ª©v?-?GÚ‰>»Ø ?ë1ç¾=rD>™1Â=ò›g¿QÃ>º,A>ÖuP¾;ı:”£z¿€¿t&w?}n?xQl>»Ø ?̼õ¾õ0É=fîÊ=ğñu¿€NJ>fG>{K¾¶÷Î8&äz¿€¿àIw?<G?gîD>»Ø ?®w~¾®w~¾G µ¾#"ş¾ç!ş¾|T6¿É£R?^hò»áy¿€¿°>¶±¯>ì;?8Š?…3¾Í‡¾Â=žjϲ¾©ú¿MF¿ºi?ô¾±»ıÜо€¿êw9>¹Àª>ì;?z±?GÁ¸½Â
¾R¨Ï¾9à8¾Æ
¿Y™P¿êz?Gi»ú \¾€¿9[>êë¦>ì;?ÁØ ?͇¾33¾Â=ž¶ú¿6ϲ¾MF¿
¸S?¤©âº±é¿€¿ >’ŸÇ>šëD?8Š?…[<¾…[<¾¾Ù¾껾Ò黾ÂĞZ¿Rk?Éi»ø—ɾ€¿”b<>k­Ä>šëD?z±?Á½…›D¾õˆæ¾¯BA¾Ëľ҂g¿Û z?{y§ºUªP¾€¿B,]>Â>šëD?ÁØ ?Â
¾GÁ¸½R¨Ï¾J¿ ¿·aB¾ï=P¿T?»!º¼T¿€¿ ²>$ã>ZÄN?8Š?…›D¾Á½õˆæ¾f£Ã¾ÖÂI¾t"g¿MÅk?ù·?º{Ǿ€¿l9=>­¾á>ZÄN?z±?¸>ʽ¸>ʽ
õ¾0éH¾èïP¾‡u¿­Ìz?õ:ZM¾€¿ğ¹]>„]à>ZÄN?ÁØ ?®w~>®w~¾G µ¾ç!ş>#"ş¾|T6¿ wR?£c¬;&¼?€¿ÌP±>¶±¯>ì;?~ëÄ>͇>…3¾Â=ž©ú?jϲ¾MF¿Ò·S?qaà:ê?€¿—O°>’ŸÇ>šëD?~ëÄ>Â
>GÁ¸½R¨Ï¾M¿ ?~aB¾ò=P¿WT?&:`T?€¿–°>$ã>ZÄN?~ëÄ>33>͇¾Â=ž6ϲ>¶ú¿MF¿»i?¹ß³;î×Ğ>€¿°!¢>¹Àª>ì;?"Ø>…[<>…[<¾¾Ù¾Òé»>껾ÂĞZ¿ÕNk?
êü: §É>€¿\¬ >k­Ä>šëD?"Ø>…›D>Á½õˆæ¾Y£Ã>¹ÂI¾y"g¿XÅk?ß%A:ŞzÇ>€¿ï@ >­¾á>ZÄN?"Ø>GÁ¸=Â
¾R¨Ï¾uà8>Ç
¿V™P¿Êz?Th;-[>€¿A>êë¦>ì;?¶Nì>Á=…›D¾õˆæ¾ÏBA>Úľ͂g¿Ë z?¦:–«P>€¿„G>Â>šëD?¶Nì>¸>Ê=¸>ʽ
õ¾.éH>åïP¾‡u¿gÏz?şçÓ9Ñ$M>€¿®>„]à>ZÄN?¶Nì>®7>®w~>롵¾µàı>)ş>Ãh6¿ ¾R?wô»ÊS?€¿ÌP±>$(?D'v?~ëÄ>áª3>ë ‡>{äžɲ>¬à?9`F¿ûºi?&{©» ÙĞ>€¿°!¢>¢+?D'v?"Ø>ëa¹=>^о¬Ò8>ÚÜ ?µP¿wz?Ğ™ »î[>€¿A>-?D'v?¶Nì>\‡>RØ2>{äž Í?+á²> hF¿BÙS?åºğºÁ¸?€¿—O°>6¦?†Nl?~ëÄ>
ÿ<>
'<>¸^Ú¾‘»>z¨»>ØñZ¿—hk?G»o.É>€¿\¬ >H?†Nl?"Ø>™1Â==rD>ë1羫,A>ZÃ>ñ›g¿m£z?, ®ºÍxP>€¿„G>}n?†Nl?¶Nì>>¤¨·=^оáĞ ?bÏ8>S½P¿ˆ<T?ÚÈî¹.&?€¿–°>ôã?ºub?~ëÄ>=BE>ëyÀ=ë1ç¾ãtÃ>¯A>O¢g¿‚àk?lºIúÆ>€¿ï@ >¨–?ºub?"Ø>fîÊ=õ0É=̼õ¾_QI>L=I>éu¿RÑz? «×ºœıL>€¿®><G?ºub?¶Nì>®7¾®w~>롵¾µàı¾)ş>Ãh6¿a‰R?Ì¡;Ö¡¿€¿°>$(?D'v?7Š?\‡¾RØ2>{äž Í¿+á²> hF¿›ÖS?î<×:³¼¿€¿ >6¦?†Nl?7Š?¾¤¨·=^оàĞ ¿cÏ8>T½P¿Ú<T?ºÁ:´%¿€¿ ²>ôã?ºub?8Š?áª3¾ë ‡>{äžɲ¾¬à?9`F¿x½i?€®;¢Íо€¿êw9>¢+?D'v?z±?
ÿ<¾
'<>¸^Ú¾‘»¾z¨»>ØñZ¿fk?Ô];Ğ7ɾ€¿”b<>H?†Nl?z±?=BE¾ëyÀ=ë1ç¾ätþ°A>O¢g¿tàk?÷m:úƾ€¿l9=>¨–?ºub?z±?ëa¹½>^о·Ò8¾ÚÜ ?µP¿Sz?:7b;o€¿9[>-?D'v?ÁØ ?™1½=rD>ë1羺,A¾]Ã>ñ›g¿”£z?⿱:ÛuP¾€¿B,]>}n?†Nl?ÁØ ?fîʽõ0É=̼õ¾pQI¾N=I>éu¿Îz?7:¹9A@M¾€¿ğ¹]><G?ºub?ÁØ ?pmÎ=™ùù¾
×#²°"P>õ§z¿½ú#ƒ¼m4?€¿jVÿ>ÒÇ=ˆNì> ?¿€¿o v?ºd¾€?è5¿>9²< ? ?¿€¿ún+?Z>¿€¿h‘ô=9²< ? ?Í|´¾Í|´¾ó5¿ô5¿m:¤:m:¤ºæÿ¿€¿Ì’?Ìã>öb'? ?öp¾G!Ó¾
×£2C¿
)T¿SĞ<suŒ¼<á¿€¿Ì’?I.o>$Š? ?ÍLH¾®Çê¾
·Ñ¯|'ǾüÖk¿ˆT¤=§Ä
½ò¿€¿Ì’?ù€1>h±? ?Âmν™ùù¾Ã"P¾õ§z¿>áıÚ¼ºÆ}¿€¿Ì’?áüÓ=œØ ? ?¿€¿xÀ">ó¾|¿€¿¹_?6ô¦< ? ?¿€¿& |¿?3>€¿¹_?6ô¦< ? ?¿€¿Œ?¿e\*?€¿¿V?¦j< ? ?pmÎ=™ùù¾
×#²°"P>õ§z¿Ã+m¾ğD½ ¼x?€¿jVÿ>ÒÇ=ˆNì> ?3³£1?
×£±€?ô£U¾Ğ]z?€¿BÅ>’Åx?X?Ä‹>3³£1?
×£±€?uÜ2¿î&7?€¿>©?Ôy?X?Ä‹>3³£1?
×£±€?/$x¿Æ{>€¿B`?¸y?X?Ä‹>3³£1?
×£±€?*Ğm>(y¿€¿B`?¸y?X?Ä‹>
µ¾¤ ´>m 5¿zş4?¾“Q;¾¢Q;Tÿ¿€¿ˆqº„9?€?Ä‹>áò¾bÓ>ü4¿Œ2T?óõ;Hü¥;Pı¿€¿ˆqºì=C?4'v?Ä‹>{üH¾\ë>›Ôƾwèk?´¢”=•Œú<o4¿€¿ˆqºFõP?Nl?Ä‹>R Ͻ…Kú>ÌGN¾~Àz?Rk;>.=¸}{¿€¿ˆìf?Äub?Ä‹>3³£1?
×£±€?LD;?fŒ.¿€¿t”>’Åx?X?Ä‹>^“>^“¾^“¾:Í?:Í¿;Í¿ Ò4?ÎL˺°75?€¿b¿>üé¢>€2À‹>R(>R(¾õu¾Å¿?Å¿¿C ö¾š "?z =±ìE?€¿p…É>œ>€2;Ú‰>f¦©>f¦©¾™9.¾Ç)*?È)*¿i¤®¾Nß>ú|м¬Ff?€¿şµØ>ÌÄ”>€2¼Ql>¦±>¦±¾õX´½Ò)2?Ó)2¿ .5¾o>|ø`¼Çæx?€¿Uë>±>€2¸îD>Í|´>Í|´¾
×#3ô5?ó5¿Ù7¤ºÛ7¤ºæÿ?€¿jVÿ>Ìã>€2>R(>R(¾õu>Å¿?Å¿¿C ö>a¿wl¼T]I?€¿³“?œ>@=^“>^“¾^“>:Í?:Í¿;Í?³;5¿Í_ÛºÎ4?€¿¥?üé¢>f¦©>f¦©¾™9.>Ç)*?È)*¿i¤®>ü#í¾}b ¼àb?€¿kû?ÊÄ”>Œ=¦±>¦±¾õX´=Ó)2?Ò)2¿ .5> p¾˜@P<xØx?€¿¿É ?±>ØRì==â“>®g“>=â“>ƹ?ô?ƹ?óÓ4¿`cúÌ55?€¿¥?/?¹‹>ë±>ö@>°v>²?mÖ?ÿñõ>ê׿QÖF¼}ÖK?€¿³“?¶m2?¹‹>@=ë9ª>…é>\Ï.>ì"*?§&*?GË®>Aÿæ¾°í»ud?€¿kû?˜6?¹‹>Œ=Â=²>®Ç±>3ó´=g02?$2?H5>”˜»ª?x?€¿¿É ?~8?¹‹>ØRì=
µ>¤ ´>Âõ³m 5?zş4?0Q»0ŸQ;Tÿ?€¿jVÿ>„9?¹‹>>ë±>ö@>°v¾²?mÖ?ÿñõ¾•?S*c< L?€¿p…É>¶m2?¹‹>;Ú‰>=â“>®g“>=⓾ƹ?ô?ƹ¿g/5? È©ºaÚ4?€¿b¿>/?¹‹>À‹>ë9ª>…é>\Ï.¾ñ"*?¥&*?@Ë®¾Íå>ÁÇ&<MÀd?€¿şµØ>˜6?¹‹>¼Ql>Â=²>®Ç±>3ó´½j02?z$2?E5¾¶8u>}nì;Sx?€¿Uë>~8?¹‹>¸îD>^“>^“¾^“>:Í?:Í¿;Í?³;5¿Í_ÛºÎ4?€¿¥?üé¢> :±>¿‹>R(>õu¾R(>¼¿?m ö¾¼¿?;ê4¿W½‰:š5?€¿¥?(e²>‰ëÄ>¿‹>õu>R(¾R(>X ö>Ë¿¿·¿?R€I¿KZß;œä?€¿ƒ¶$?œ> :±>RÚ‰>™9.>f¦©¾f¦©>j¤®>Ó)*¿¹)*?Äb¿Ş<ÏŒí>€¿ÌN,?ÌÄ”> :±>¦Ql>õX´=¦±¾¦±>â-5>Ô)2¿Ó)2?`Âx¿l¶6¼õŒq>€¿v€5?±> :±>´îD>Âu3Í|´¾Í|´>ñ5¿õ5?„ÿ¿Bƒ2;?ƒ2;€¿Ÿ??Ìã> :±>€‹>f¦©>™9.¾f¦©>Å)*?z¤®¾Ä)*?7ÿ4¿Å«²9®
5?€¿¥?¿)É>ÿœØ>¿‹>¦±>õX´½¦±>î1?»a<¾î1?¥5¿­8A5?€¿¥?×ã>ƒNì>¿‹µ>™™ ®Íµ>5?*¹¼5?ï5¿Ï‘>8ø5?€¿¥?ÿ:?ûÿÿ>¿‹>õu¾R(¾R(>C ö¾Å¿¿Å¿?¶ÆE¿£‚½şJ"¿€¿}‡Z?œ> :±>ğ‹=^“¾^“¾^“>;Í¿:Í¿:Í?Ò4¿©^˺¶75¿€¿æ˜_?üé¢> :±>4™9.¾f¦©¾f¦©>c¤®¾Æ)*¿Ê)*?cf¿Ö8Ú<ìÏŞ¾€¿8ïR?ÌÄ”> :±>`Œ=õX´½¦±¾¦±>ş-5¾Ğ)2¿Ö)2?üx¿!z<€¿Š½I?±> :±>Sì==⓾®g“>=â“>ƹ¿ô?ƹ?g/5¿Æ©ºbÚ4¿€¿æ˜_?/?îb'?4°v¾ö@>ë±>ÿñõ¾mÖ?²?­)L¿³Xs¼.f¿€¿}‡Z?¶m2?îb'?ğ‹=\Ï.¾…é>ë9ª>GË®¾§&*?ì"*?6 d¿H¼Pæ¾€¿8ïR?˜6?îb'?`Œ=3󴽮DZ>Â=²>I$2?g02?sx¿Ù¸»ÕÃv¾€¿Š½I?~8?îb'?Sì=Âu3¤ ´>
µ>zş4?m 5?Õÿ¿ØıѺÑîÑ:€¿Ÿ??„9?îb'?€‹>°v>ö@>ë±>ÿñõ>mÖ?²?ä¶K¿6<Ã?€¿ƒ¶$?¶m2?îb'?RÚ‰>ë±>ğu>ë±>·?O6ö>ÿ¶?ó"5¿f.:Şæ4?€¿¥?kC'?:Š?¿‹>=â“>®g“>=â“>ƹ?ô?ƹ?óÓ4¿`cúÌ55?€¿¥?/?îb'?¿‹>ë9ª>Rø->ë9ª>à$*? Ë®>Á$*?“ 5¿…Ğ9Qş4?€¿¥? á?j±?¿‹>Â=²>¸6³=Â=²>292?<H3>(92?5¿3ø®8H5?€¿¥?rŠ?–Ø ?¿‹>\Ï.>…é>ë9ª>GË®>§&*?ì"*?á•d¿K´ <!zæ>€¿ÌN,?˜6?îb'?šQl>3ó´=®Ç±>Â=²>M5>~$2?g02?oXx¿áëy;•€x>€¿v€5?~8?îb'?´îD>^“¾^“¾^“>;Í¿:Í¿:Í?Ò4¿©^˺¶75¿€¿æ˜_?üé¢>3òb'?R(¾õu¾R(>Å¿¿C ö¾Å¿5¿`Š:.ê4¿€¿æ˜_?(e²>Ì‹=òb'?R(¾R(¾õu>·¿¿Ë¿¿X ö>ª "¿^ =¤ìE¿€¿Nªd?œ>35Š?f¦©¾f¦©¾™9.>¶)*¿Õ)*¿q¤®>£Nß¾c}м§Ff¿€¿–Bl?ÌÄ”>3x±?¦±¾¦±¾õX´=Ï)2¿Ø)2¿ë-5> o¾aö`¼Çæx¿€¿Dtu?±>3¼Ø ?Í|´¾Í|´¾ó5¿ô5¿m:¤:m:¤ºæÿ¿€¿Ì’?Ìã>3ôÿÿ>f¦©¾™9.¾f¦©>Ç)*¿i¤®¾È)*?ª
5¿b5²9;ÿ4¿€¿æ˜_?¿)É>u=òb'?¦±¾õX´½¦±>î1¿÷a<¾î1?>5¿/
5¿€¿æ˜_?×ã>}Qì=òb'?͵¾™™ .͵>5¿*¹¼5?ø5¿ >8ï5¿€¿æ˜_?ÿ:?ö‹>òb'?R(¾R(¾õu¾Å¿¿Å¿¿C ö¾g?Ñn¼P]I¿€¿Ø`Õ=œ>€2®ëÄ>^“¾^“¾^“¾:Í¿:Í¿;Í¿¬;5?ECÛº Î4¿€¿ ìı=üé¢>€2&:±>f¦©¾f¦©¾™9.¾Ç)*¿È)*¿i¤®¾ÿ#í>éb ¼àb¿€¿¤˜=ÊÄ”>€2.Ø>¦±¾¦±¾õX´½Ò)2¿Ò)2¿.5¾ş
p>³@P<xØx¿€¿€"=±>€2ŞNì>Í|´¾Í|´¾ó5¿ô5¿m:¤:m:¤ºæÿ¿€¿ˆqºÌã>3ôÿÿ>G!Ó¾öp¾
×#3)T¿C¿º«F:ùÿ¿€¿ˆqºh¥>Ì‹=ôÿÿ>®Çê¾ÍLH¾z%3ÿÖk¿n'Ǿ˜Ğ 8˜3£¸€¿€¿ˆqºüâÀ>t‹=ôÿÿ>™ùù¾pmν
×#3pz¿gCT¾Íݰ¹t÷:¥¥“ºòÿ¿€¿ˆqºŒ³ß>|Qì=ôÿÿ>¿3³£1¿G滆—oºÃ¬u:÷:X»ÿ¿€¿ˆqºÿ:?ö‹>ôÿÿ>=⓾®g“>=⓾ƹ¿ô?ƹ¿øÓ4?ºPúÇ55¿€¿ ìı=/?¿‹>&:±>ë±¾ö@>°v¾²¿mÖ?ÿñõ¾è×?S×F¼~ÖK¿€¿Ø`Õ=¶m2?¿‹>®ëÄ>ë9ª¾…é>\Ï.¾ì"*¿§&*?GË®¾?ÿæ>'±í»ud¿€¿¤˜=˜6?¿‹>.Ø>Â=²¾®Ç±>3ó´½h02¿$2?M5¾›z>×»ª?x¿€¿€"=~8?¿‹>ŞNì>
µ¾¤ ´>m 5¿zş4?¾“Q;¾¢Q;Tÿ¿€¿ˆqº„9?¿‹>ôÿÿ>ë±¾ö@>°v>²¿mÖ?ÿñõ>¿*c< L¿€¿Pªd?¶m2?¿‹>4Š?ë±¾ğu>ë±>·¿e6ö>·?áæ4¿‹Üš:ï"5¿€¿æ˜_?kC'?GÚ‰>òb'?=⓾®g“>=â“>ƹ¿ô?ƹ?g/5¿Æ©ºbÚ4¿€¿æ˜_?/?¿‹>òb'?ë9ª¾Rø->ë9ª>Ğ$*¿Ë®>Ğ$*?Uş4¿· Î9 5¿€¿æ˜_? á?xQl>òb'?Â=²¾¸6³=Â=²>.92¿H3>.92?C5¿$ë®8£5¿€¿æ˜_?rŠ?gîD>òb'?ë9ª¾…é>\Ï.>ì"*¿§&*?GË®> Íå¾FÉ&<LÀd¿€¿–Bl?˜6?¿‹>x±?Â=²¾®Ç±>3ó´=h02¿$2?M5>Ê8u¾–mì;Rx¿€¿Dtu?~8?¿‹>»Ø ?
µ¾¤ ´>m 5¿zş4?¾“Q;¾¢Q;Tÿ¿€¿Ì’?„9?¿‹>ôÿÿ>¸ÖÓ¾Gy>4ET¿V?±‡
I:ùÿ¿€¿Ì’?üÁ-?GÚ‰>ôÿÿ>£pë¾f&H>Áîk¿º¶Æ>ݸŠÿ¸€¿€¿Ì’?€ ?xQl>ôÿÿ>{´ú¾¤hÍ=ÓÍz¿CM>EѺ(õ:B¤/¹ıÿ¿€¿Ì’?9œ?gîD>ôÿÿ>^“¾^“¾^“¾:Í¿:Í¿;Í¿¬;5?ECÛº Î4¿€¿ ìı=üé¢>*:1?ñb'?R(¾õu¾R(¾Å¿¿C ö¾Å¿¿.ê4?nŠ:¨5¿€¿ ìı=(e²>ì;?ñb'?õu¾R(¾R(¾X ö¾Ë¿¿·¿¿P€I?[\ß;Ÿä¿€¿°;>œ>*:1?8Š?™9.¾f¦©¾f¦©¾q¤®¾Õ)*¿¶)*¿Äb?D<ÖŒí¾€¿Ìœ1>ÌÄ”>*:1?z±?õX´½¦±¾¦±¾ë-5¾Ø)2¿Ï)2¿`Âx?*·6¼úŒq¾€¿zcV>±>*:1?ÁØ ?`e³Í|´¾Í|´¾ó5¿ó5¿„ÿ?Lƒ2;Mƒ2»€¿¦İ~>Ìã>*:1?ìÿÿ>f¦©¾™9.¾f¦©¾È)*¿i¤®¾Ç)*¿:ÿ4?›?²9ª
5¿€¿ ìı=¿)É>šëD?ñb'?¦±¾õX´½¦±¾yÖ1¿Q$?¾yÖ1¿n5?Ü49x5¿€¿ ìı=×ã>ZÄN?ñb'?
µ¾+¢gº
µ¾¥5¿²t#¼¤5¿í5?r>8ù5¿€¿ ìı=ÿ:?X?ñb'?õu>R(¾R(¾C ö>Å¿¿Å¿¿¸ÆE?P½úJ"?€¿Î?µ>œ>*:1?~ëÄ>R(>õu¾R(¾¼¿?m ö¾¼¿¿™5?`º‰:<ê4?€¿b¿>(e²>ì;?&:±>^“>^“¾^“¾:Í?:Í¿;Í¿ Ò4?ÎL˺°75?€¿b¿>üé¢>*:1?&:±>f¦©>™9.¾f¦©¾Å)*?z¤®¾Ä)*¿­
5?ÿ¢²98ÿ4?€¿b¿>¿)É>šëD?&:±>¦±>õX´½¦±¾{Ö1?$?¾|Ö1¿|5?wo69j5?€¿b¿>×ã>ZÄN?&:±>
µ>…¤gº
µ¾¤5?Ót#¼¤5¿ù5?.ï=8î5?€¿b¿>ÿ:?X?&:±>™9.>f¦©¾f¦©¾i¤®>È)*¿Ç)*¿cf?É8Ú<÷ÏŞ>€¿@¦>ÌÄ”>*:1?"Ø>õX´=¦±¾¦±¾.5>Ò)2¿Ò)2¿üx?|"z<m>€¿ç«“>±>*:1?¶Nì>=â“>®g“>=⓾ƹ?ô?ƹ¿g/5? È©ºaÚ4?€¿b¿>/?€?&:±>ë±>ğu>ë±¾·?O6ö>ÿ¶¿Øæ4?.Ëš:ù"5?€¿b¿>kC'?D'v?&:±>°v>ö@>ë±¾ÿñõ>mÖ?²¿®)L?Ys¼-f?€¿Î?µ>¶m2?€?~ëÄ>\Ï.>…é>ë9ª¾@Ë®>¥&*?ñ"*¿8 d?ÀG¼Pæ>€¿@¦>˜6?€?"Ø>3ó´=®Ç±>Â=²¾>5>{$2?k02¿”sx?ø»ÂÃv>€¿é«“>~8?€?¶Nì>Âõ(´¤ ´>
µ¾zş4?m 5¿Õÿ?6ıѺ/îѺ€¿¦İ~>„9?€?ìÿÿ>ë9ª>Rø->ë9ª¾à$*? Ë®>Á$*¿\ş4?ıË9ˆ 5?€¿b¿> á?†Nl?&:±>Â=²>¸6³=Â=²¾«*2?ß5>¢*2¿¬5?GÏ9:5?€¿b¿>rŠ?ºub?&:±>°v¾ö@>ë±¾ÿñõ¾mÖ?²¿ä¶K?6<ÿ€¿²;>¶m2?€?7Š?ë±¾ğu>ë±¾·¿e6ö>·¿ğ"5?Tİš:áæ4¿€¿ ìı=kC'?D'v?ñb'?=⓾®g“>=⓾ƹ¿ô?ƹ¿øÓ4?ºPúÇ55¿€¿ ìı=/?€?ñb'?ë9ª¾Rø->ë9ª¾Ğ$*¿Ë®>Ğ$*¿ 5?Î9Uş4¿€¿ ìı= á?†Nl?ñb'?Â=²¾¸6³=Â=²¾¨*2¿Ã5>¨*2¿95?t{ 9­5¿€¿ ìı=rŠ?ºub?ñb'?\Ï.¾…é>ë9ª¾:Ë®¾¨&*?î"*¿ä•d?³ <zæ¾€¿Ìœ1>˜6?€?z±?3󴽮DZ>Â=²¾>$2?h02¿oXx?hçy;‘€x¾€¿zcV>~8?€?ÁØ ????¶Ò @ñİÅ@CapsuleÀ &?€??²m±m²®±²®²¯¯²d²¢d±lm­±®°l±­°±«®¯ª­®ª®«0°­/0­/­ª/ªªª«01°«1k°°kl1k«¬«¯¬¬ÇkÇ.ÊlkÊkǬ¯c¯dc¬b¬cbbÆÇ.Æ.-b¹¹bcºbº¹cd»c»º¹dg»d£g»gf»f¸º»¸¸fe¹º·º¸·¹·¸eµ·¸µµeµ"·µ´´µ"·´´"!´³³´!³³! ³³  %¤¥%¥Â$%ÂÂ¥¦$¿#$¿Â¦ÿÂÃæ§#¿¼#¼¼&¿ÃÀ¼¿ÀçÄÀÃÄħ¨&¼½¼À½&½'ÀÄÁ½ÀÁ'½¾½Á¾'¾(ÁÄjÄ©j(¾h(h¾ÁiÁji¾ihhËË+hiÌhÌËijÍiÍÌ+ËÈ+È*jmÍjªmÍmlÍlÊÌÍÊËÌÉÌÊÉËÉÈÉÊÇÉÇÆÈÉÆ*ÈÅÈÆÅÅÆ-*Å)Å-,)Å,),Öy ÕyÖÒÕÖÒÖÓÓÖpÖ«pÕxyÑÕÒÔxÕÑÔÕÏÒÓÎÑÒÎÒÏHÔÑGHÑGÑÎGÎÎ22ÎÏHIÔ2Ï3IwÔÔwxIw3ÏĞÏÓĞ3Ğ4ëwëFîxwîwëĞÓoÓpo4ĞnĞon4nêëFêFEnİİ7noŞnŞİopßoߪ7İÚ7Ú6İŞÛİÛÚ6Ú×6×55×858×98ÚØ×ר9ÚÛØØ:9ØÙ:ÛÙØÙ:ŞÜÛÛÜÙŞßÜÙqÜqÙ=qßrÜÜrq=qææqr<=æßsrpsßp¬s<æã;<ãærççrsãæç;ãà;àà>çsèès­ãçäàãääçè>àáàäá>á?äèåáäå?áâáåâ?â@åèvè®våvuâåuâut@ât@tADAéDéEDBéAéêEBìéìêéCìBìíêíëêíîëCïìïíì¯ïC¯°ïïğí°ğïğîí°±ğğñî±ñğñxî±²ññyx²yñ²³y¹Jº¹ûJ»û¹ûKJ»şû¼ş»ûüKşüûüLK¼ş¸¼üıLıLşÿüÿşÿıü¸z·z¸ıŠŠÿıŠıÿzÿ·ôzô·Š}O}z{ô{zŠ}Š{óôµóO}
NO
ô÷{ó÷ô{|÷|{Œ|Œ}~
}~~Œµòó´òµ´Sòóö÷òöóSõòòõöSTõ÷ú|öú÷|Œú|~ŒŒTøõTUøõùööùúõøùúùúUøUøùùø

~
~ ƒƒ
ƒ 
 
 N
MNƒR

ƒƒ   M½M½¾¾¾¿     ¿ ¿À  ÀÀÁÁÁÅÅÅÄRRQÄ


QÄ
Â
QPÂ
PÂPÃÏVĞÏVÑÏWVÑ"Ò"Ñ W"  XWÒ%"Ë%Ò !X!ˆX"# %#"#! Ë%ÊË!ˆˆ#$!$!%&#&%&$#ÊÉÊ[&$&'$'&'$ÉÈÉ[.Z[.ˆ'ˆ'ˆ'Š.ŠŠÈÆÈÆÇÇÇ̈ˆƒƒˆŠƒÌÌ̓ÍÍÎ ƒƒ /Š.Š/ÎÎİ 0 /0+./Z.+YZ+3İ3İÜ 0 6639996+/,,/0Y+((+,ÓY(Ó(ÔÔ()(,)Ô)Õ,0--0),-Õ)*)-*Õ*Ö-*-9Ö*Œ*ŒÖŒ×98Œ8896׌7Œ87×7ß865785563ß74754ß4Ş53245223Ü2ÜÛŞ4142112ÛŞ1Ø1ÛÙØ1ÙØÙÚäåä<ã<ä<ã;<â;ã<?;?<?â:;à:âàá:;>?:>;?B>B?Bá=::=>áæ=>AB=A>BABæ@==@Aæç@Aš@šAšç@@šçè]]šœœš]œèœèü]\\]œZZœ\]ZWüZWWüû\[ÿ[ÿ[ş\ZYYZW[\YVWûYWVVûúş[X[YXXYVşXıUVúXVUıXUUúøıU÷÷Uø÷øùé\êéC\ëCéC]\ëFCìFëCD]FDCD^]ìIFíIìíîIDE^E^FGDIGFGEDîJIIJGîïJEGHEJHGHEïKJJKHïğKaHKHğ˜KK˜ğñ˜aR`aR˜R˜ñ˜ñ `RO_`ORSSORST STT š_OLò_LòLóOSPPSTLOPQTšPTQQšóLMLPMMPQóMôNQMQNôMNN˜ôNõõN˜õ˜ö

gg
gjgjghjhghmj mhiijkhmkjkih m iœœklilœimnknmnlk``œ¡¡Ÿn`Ÿlœ¡œnolŸonol_`_¡vv`cŸ_c`Ÿ oc Ÿo o¡¢v¡¢¢^_^^_bc^b_a^^ab
acf bfc f ¢££
da
 daebbefadef¡e¡f Ÿd  Ÿd ee ¡dŸ 
¡£
w¢£v¢w§Ÿ § #©¡ 
¡©¨ Ÿ¨Ÿ§© ¨x£
w£xsvwvss{§#{#"¦
©x
¦~¨§~§{©¨¦©¨~swttwxsppstpppqptqqtxuux¦qtuqrqurru¦¥ru¥¥¦r¤r¥¤¤¥¤¥~¤¤%~}}}~{%|}|%|$}{z|}zz{"z"!$|y|zyyz!$yy!y & (0Px°Á“¾ÔêI¿¯Á“><Í¿5Í¿=Í?NÕ4¿&L¾ºs45¿€¿Ş¿>à‘ä=ÌÕô>û•J?°Á“¾“üI¿¬Á“¾>Í¿8Í¿7Í¿–;5?şÚºÎ4¿€¿ü ?à‘ä=ÌÕô>tÔ?°Á“>ÕêI¿¯Á“>;Í?9Í¿<Í?˜;5¿ŞõÚºÎ4?€¿Yş=Ø‘ä=ƒ>û•J?°Á“>”üI¿¯Á“¾:Í?7Í¿?Í¿UÕ4?­;¾ºl45?€¿ë6`?Ø‘ä=ƒ>tÔ?¬Á“¾ÙêI?¯Á“><Í¿:Í?9Í?t45¿~W¾ºLÕ4¿€¿Ş¿>Æmc?c>”»?¬Á“¾ÙêI?¬Á“¾<Í¿;Í?9Í¿Î4?{øÚºš;5¿€¿ı ?Æmc?c>}J?±Á“>ØêI?¯Á“>;Í?9Í?;Í?Î4¿KüÚº™;5?€¿Yş=Æmc?”»?±Á“>ØêI?¬Á“¾<Í?9Í?;Í¿o45?÷:¾ºRÕ4?€¿ë6`?Æmc?}J?&™Ó3€¿ŒÊn3òÿ¿ê§¯:*éV>_¾«º[Lz¿€?<å}>ó—:çñ»>AÃ-?V>³€?JÙ³€?ï|¿Å÷>€¿Tcz>2•?ˆã=`ª-?¿
?ŠÒç2‚«¿“ëO=ê˜8?æ8c §:òÿ¿€¿??=!? ê=¢¥ˆ²¿?¿•WP=*«¿€?š·|ìØ´€¿ô$@?Ù??Û¼> ê=?
?ŠÒç2‚«?ñëO=İ8!S~ºøÿ?€¿¬ºÙ??Š\c? ê=¢¥ˆ²
??ÕÇO= «?€¿’–Õ¶”­4€¿`t??ˆã=bvç=&™Ó3g…Z¿Ïö´>è5¿ş5?Wÿ¿»éO;£éO;€¿\t>ô.£=çñ»>û•J?Ïö´>g…Z¿ŒÊn3İ5?û5¿~M
`»éûºÿ?€¿¬ºô.£=ƒ>AÃ-?&™Ó3&—Z¿Îö´¾ğ5¿ö5¿Wÿ?çO;yçO»€¿ô$@?ô.£=çñ»>tÔ?Ïö´¾g…Z¿ŒÊn3Ş5¿ú5¿M‹:ƒÏÓ:hL»˜ÿ¿€¿?ô.£=ÌÕô>AÃ-?Òö´¾i…Z?ŠÒç2í5¿ø5?ÓçO;ÃçO;Wÿ¿€¿?"šk?c>`ª-?¢¥ˆ²i…Z?Ïö´¾õ5?ñ5¿Õÿ?¶Ñº¶Ñº€¿ô$@?"šk?ˆã=}J?Òö´>i…Z?ŠÒç2ø5?í5?į¤»Ë¯¤;Xş?€¿o¹?"šk?`ª-?¢¥ˆ²i…Z?Óö´>ñ5?õ5?Õÿ¿n®Ñºk®Ñ:€¿\t>"šk?ˆã=”»?Íö´¾¿?Îö´¾ÖÕ4¿ ©8=ÕÕ4¿ö5?Râ»6ñ5¿€¿ı??œË? ê=Íö´¾
?Ïö´>Ö4¿Æ8="Ö4?õ5¿m;Š6ñ5¿€¿Ş¿>Ù??€¯=? ê=Ïö´>¿?Îö´¾ÛÕ4?4©8=ÎÕ4¿ê5?>º6ı5?€¿ë6`?Ù??%÷ƒ> ê=Ïö´>
?Ïö´>!Ö4?Ø8=Ö4?ó5¿?Š6ô5?€¿Yş=Ù??™êF? ê=Æ›v¾›SO¿5“>„
ö¾„¿¿Š¿?n
L¿ähc<û¿€¿ª³µ>”DÏ=æ>û•J?V¯.¾ªU¿Tª>«¤®¾½)*¿Á)*?CÊd¿÷V%<œ¥å¾€¿®w¦>¼“¸=ÇnØ>û•J?Ó´½+Y¿W²>ú+5¾Ü)2¿é)2?x¿~
ğ;ò<u¾€¿~”>Tɨ=x@Ê>û•J?Ë›v>™SO¿5“>‡
ö>†¿¿†¿?ÖK¿~jG¼hØ?€¿f>œDÏ=üF>û•J?`¯.>ªU¿Tª>±¤®>½)*¿¾)*?ƒd¿•æï»¨Çæ>€¿`ù1>¼“¸=õŸ>û•J?!Ó´=+Y¿W²>ş+5>İ)2¿é)2?>x¿ñC»ü)z>€¿¼ÛV>Tɨ=ğ¸­>û•J?5“>SO¿É›v>Š¿?…¿¿‚
ö>¤ı¿ˆÈ8<¢ºK?€¿<¯Õ=”DÏ=ƒ>Ë]C?Sª>ªU¿^¯.>Â)*?¹)*¿°¤®>hL澯@ <k¡d?€¿L¿˜=¼“¸=ƒ>%<?U²>+Y¿Ó´=ê)2?Ù)2¿,5>%x¾Ï;¡Wx?€¿ õ=Tɨ=ƒ>kí4?5“>YeO¿Å›v¾Š¿?‡¿¿}
ö¾m?«xq¼£$L?€¿%Le?”DÏ=ƒ>>
?Sª>i(U¿Y¯.¾Â)*?¹)*¿­¤®¾åæ>¡_¼˜¬d?€¿!êl?¼“¸=ƒ>lE?U²>ê*Y¿ Ó´½22?¡22¿4¾½sx>èL#»…Yx?€¿º"v?Tɨ=ƒ>Ÿ}&?Ë›v>XeO¿3“¾
ö>…¿¿Š¿¿p
L?3ic<ù?€¿³![?œDÏ=üF>tÔ?`¯.>i(U¿Rª¾¼¤®>½)*¿º)*¿=Êd?GW%<³¥å>€¿´ƒS?¼“¸=õŸ>tÔ?!Ó´=ê*Y¿U²¾ ,5>â)2¿ã)2¿x? ğ; =u>€¿KJ?Tɨ=ğ¸­>tÔ?Æ›v¾YeO¿3“¾
ö¾Š¿¿…¿¿ÖK?¶jG¼fØ¿€¿6(%?”DÏ=æ>tÔ?V¯.¾i(U¿Rª¾«¤®¾Á)*¿¼)*¿ ƒd?Céï»›Çæ¾€¿4Æ,?¼“¸=ÇnØ>tÔ?Ó´½ê*Y¿U²¾
,5¾â)2¿ã)2¿>x?JE»*z¾€¿Íş5?Tɨ=x@Ê>tÔ?2“¾YeO¿Å›v¾‡¿¿†¿¿‡
ö¾§ı?ßÈ8< ºK¿€¿Äı?”DÏ=ÌÕô>>
?Tª¾i(U¿Y¯.¾¼)*¿½)*¿µ¤®¾oLæ>fA <i¡d¿€¿Æ_?¼“¸=ÌÕô>lE?W²¾ê*Y¿ Ó´½22¿¥22¿é4¾,x>8ÿ;åVx¿€¿-'
?Tɨ=ÌÕô>Ÿ}&?2“¾›SO¿É›v>‡¿¿…¿¿‰
ö>m¿Qxq¼$L¿€¿Ê>”DÏ=ÌÕô>Ë]C?Tª¾ªU¿^¯.>¼)*¿½)*¿¹¤®>æ¾G]¼¬d¿€¿ŠDÙ>¼“¸=ÌÕô>%<?W²¾+Y¿Ó´=ç)2¿İ)2¿,5>àÔv¾…ğ¹»~rx¿€¿»µë>Tɨ=ÌÕô>kí4?4“¾›SO?Ë›v>‡¿¿…¿?‚
ö>ú¿¨ic<o
L¿€¿Ê>nf?c>^ô?Tª¾ªU?a¯.>»)*¿»)*?ä®>µ¥å¾şW%<<Êd¿€¿ŠDÙ>ˆíh?c>Œ,?U²¾/Y?Ó´=ß)2¿ç)2?ö+5>=u¾Ùğ;x¿€¿»µë>Øæj?c>¾d&?4“¾›SO?Ç›v¾‡¿¿…¿?‚
ö¾fØ?rjG¼ÖK¿€¿Äı?nf?c>éDC?Tª¾ªU?[¯.¾¼)*¿¹)*?䮾ºÇæ>»çﻃd¿€¿Æ_?ˆíh?c>º <?U²¾/Y?
Ó´½á)2¿å)2?÷+5¾*z>.A»>x¿€¿-'
?Øæj?c>ŠÔ4?Æ›v¾œSO?4“¾~
ö¾†¿?Š¿¿¢ºK?È8<¤ı¿€¿6(%?nf?.G>}J?]¯.¾©U?Sª¾Á¤®¾·)*?Â)*¿`¡d?Ò< <“Læ¾€¿4Æ,?ˆíh?ƒÁ*>}J?Ó´½/Y?W²¾,5¾á)2?å)2¿¤Wx?*
;êŒx¾€¿Íş5?Øæj?åd>}J?Λv>œSO?4“¾„
ö>†¿?ˆ¿¿¢$L?³yq¼m?€¿³![?nf?oã<}J?b¯.>ªU?Sª¾¿¤®>¸)*?À)*¿’¬d?_¼ÿæ>€¿´ƒS?ˆíh?€c=}J?Ó´=/Y?W²¾ñ+5>ã)2?ã)2¿}rx?›ì¹»íÔv>€¿KJ?Øæj?««ª=}J?6“>œSO?Ç›v¾¿?ƒ¿?x
ö¾ù?Ùfc<p
L?€¿%Le?nf?éDC?Wª>©U?[¯.¾É)*?²)*?·¤®¾œ¥å>W%<BÊd?€¿!êl?ˆíh?º <?Y²>/Y?
Ó´½ì)2?Ú)2?,5¾ÀÅv>öñ»;hsx?€¿º"v?Øæj?ŠÔ4?6“>œSO?Ë›v>¿?ƒ¿?x
ö>]Ø¿°jG¼ÖK?€¿<¯Õ=nf??Wª>©U?a¯.>È)*?±)*?¾¤®>´Çæ¾ÿãﻃd?€¿L¿˜=ˆíh?Œ,?Y²>/Y?Ó´=ì)2?Ú)2?,5>ğ)z¾>H»>x?€¿ õ=Øæj?¾d&?Λv>œSO?7“>‡
ö>„¿?ˆ¿?£ºK¿¡Ê8<¢ı?€¿f>nf?oã<”»?b¯.>ªU?Wª>¹¤®>¸)*?Á)*?a¡d¿&< <Læ>€¿`ù1>ˆíh?€c=”»?Ó´=/Y?Y²>ê+5>à)2?æ)2?¥Wx¿^;ãŒx>€¿ÀÛV>Øæj?««ª=”»?Æ›v¾œSO?7“>
ö¾ƒ¿?Š¿?$L¿Õvq¼
m¿€¿ª³µ>nf?.G>”»?]¯.¾©U?Wª>¤®¾µ)*?Ã)*?¬d¿H^¼æ¾€¿®w¦>ˆíh?ƒÁ*>”»?Ó´½/Y?Y²>ÿ+5¾Ş)2?ç)2?}rx¿)ï¹»çÔv¾€¿€”>Øæj?åd>”»?4“¾°Â=¿3“¾†¿¿Š
ö¾„¿¿Qê4?2F‰:„5¿€¿ı ?º[
>œË?R<ı>Tª¾—Ç+¿Sª¾º)*¿¹¤®¾¾)*¿;ÿ4?Ѓ²9ª
5¿€¿ı ?PÃ->œË?¦’î>W²¾!¶¿W²¾å)2¿ğ+5¾â)2¿Ñ5?õ95¿€¿ı ? ?W>œË?üèß>4“¾ó°=?4“¾„¿¿Œ
ö>‡¿¿5?‰3‰:Tê4¿€¿ı ?i]?œË?á·ó<Tª¾Ùµ+?Sª¾¶)*¿È¤®>¾)*¿¯
5?Äa²96ÿ4¿€¿ı ?,T?œË?Ô^m=Y²¾d¤?W²¾Ã(2¿ìN5>É(2¿,5?âY5¿€¿ı ?90J?œË?ıp°=4“¾ó°=?7“>¿¿
ö>‡¿?Uê4¿M‰:5¿€¿Ş¿>i]?€¯=?á·ó<Tª¾Ùµ+?Wª>¶)*¿Ã¤®>À)*??ÿ4¿Ep²9¦
5¿€¿Ş¿>,T?€¯=?Ô^m=Y²¾d¤?Y²>Ş)2¿Ò+5>ì)2?Ú5¿õº
9 5¿€¿Ş¿>90J?€¯=?ıp°=4“¾ò°=¿5“>‚¿¿
ö¾‡¿5¿P9‰:Rê4¿€¿Ş¿>º[
>€¯=?R<ı>Tª¾Øµ+¿Wª>¸)*¿¹¤®¾Â)*?±
5¿s²94ÿ4¿€¿Ş¿>PÃ->€¯=?¦’î>W²¾b¤¿Y²>ß)2¿á+5¾è)2?5¿y5¿€¿Ş¿> ?W>€¯=?üèß>5“>°Â=¿3“¾‰¿?y
ö¾Š¿¿‚5?q=‰:Tê4?€¿ë6`?º[
>%÷ƒ>R<ı>Tª>—Ç+¿Sª¾¾)*?½¤®¾¹)*¿ª
5?t„²9;ÿ4?€¿ë6`?PÃ->%÷ƒ>¦’î>X²>!¶¿W²¾ê)2?
,5¾Ù)2¿ 5?í$5?€¿ë6`? ?W>%÷ƒ>üèß>6“>ó°=?4“¾Š¿?|
ö>†¿¿Pê4?¶E‰:…5?€¿ë6`?i]?%÷ƒ>á·ó<Tª>Ùµ+?Sª¾Â)*?¹¤®>·)*¿3ÿ4?ƒx²9²
5?€¿ë6`?,T?%÷ƒ>Ô^m=Y²>d¤?W²¾Í(2?öN5>¿(2¿¶5?µ905?€¿ë6`?90J?%÷ƒ>ıp°=5“>ò°=¿5“>‰¿?
ö¾…¿?Sê4¿µ7‰:ƒ5?€¿Yş=º[
>™êF?R<ı>Tª>ص+¿Wª>À)*?·¤®¾¹)*?6ÿ4¿Êl²9¯
5?€¿Yş=PÃ->™êF?¦’î>X²>b¤¿Y²>å)2?ú+5¾à)2?Ï5¿S95?€¿Yş= ?W>™êF?üèß>6“>ó°=?7“>ˆ¿?
ö>†¿?5¿F‰:Tê4?€¿Yş=i]?™êF?á·ó<Tª>Ùµ+?Wª>Â)*?µ¤®>¸)*?¦
5¿Av²9>ÿ4?€¿Yş=,T?™êF?Ô^m=Y²>d¤?Y²>é)2?Û+5>ß)2?5¿Iì
5?€¿Yş=90J?™êF?ıp°=&™Ó3âi¿ïÑ>E)T¿½B?–ú¿»ë;J.<€¿\t>è_M=çñ»>Ë]C?&™Ó3½u¿{ÔH>åÖk¿ã'Ç>å¿Ç 5<×dÖ<€¿Xt>ÿß<çñ»>%<?&™Ó3u[}¿RùÎ=áØz¿7kL>f/}¿CØñ<c>€¿Tt>àúO<çñ»>kí4?ğÑ>âi¿ŒÊn3A? *T¿f1 :ænZ¼©ö»Rø?€¿¬ºØ_M=üF>AÃ-?wÔH>½u¿ak3C$Ç>™×k¿÷ª:vä
½BqX¼ñÒ?€¿ªºÿß<õŸ>AÃ-?^ùÎ=u[}¿… n3ºeL>Ùz¿ë®:uˆ½jH¼wi?€¿ªºàúO<ğ¸­>AÃ-?&™Ó3Óói¿ëѾF)T¿¸B¿–ú?­¸ë;œ‹.¼€¿õ$@?è_M=çñ»>>
?&™Ó3ÛÎu¿tÔH¾åÖk¿ã'ǾËÙ?›”Y<5Ô½€¿ö$@?ÿß<çñ»>lE?&™Ó34m}¿DùνZêz¿øş|?°Kø<1e¾€¿ê$@?ÀP<çñ»>Ÿ}&?íѾâi¿ŒÊn3A¿ *T¿T1 :lm/<œ¼Ãù¿€¿?Ø_M=æ>AÃ-?yÔH¾½u¿Hp3B$Ǿ™×k¿
÷ª:"B=xq¼=Ø¿€¿?ÿß<ÇnØ>AÃ-?;ùνu[}¿… n3¦eL¾Ùz¿ë®:Ş»x=æñ`¼İ€¿€¿?àúO<x@Ê>AÃ-?ìѾâi?ŠÒç2¹B¿H)T? Ô4<§5ô;0ú¿€¿?*s?.G>`ª-?wÔH¾½u?GÚá2ş'ǾàÖk?àö<ÚAP<İ¿€¿?y?ƒÁ*>`ª-?Nùνx[}?ŠÒç2'kL¾áØz?*=nÇ<.Í¿€¿Â¼ÿ>¸ä|?åd>`ª-?¢¥ˆ²âi?ëѾF)T?¸B¿4ú?{è󻀿ô$@?*s?ˆã=éDC?¢¥ˆ²½u?uÔH¾âÖk?ö'Ǿ˜å?¬æ4¼Í8Ö¼€¿§ğ??éy?ˆã=º <?¢¥ˆ²x[}?FùνãØz?#kL¾…o}?éãæ¼kª
¾€¿4÷>?»Ø|?ˆã=ŠÔ4?ñÑ>âi?ŠÒç2ºB?F)T?êé<–÷?€¿o¹?*s?oã<`ª-?|ÔH>½u?ğÆğ2í'Ç>äÖk?œ½Ş©q<İĞ?€¿o¹?y?€c=`ª-?KùÎ=x[}?ŠÒç2kL>ãØz?¡Z€½È1Q<Ğy?€¿o¹?À|?««ª=`ª-?¢¥ˆ²âi?ïÑ>F)T?¸B?Ÿú¿Àæê»*ğ-<€¿\t>*s?ˆã=^ô?¢¥ˆ²½u?{ÔH>âÖk?ö'Ç>õÙ¿ÒY¼Ñ=€¿\t>y?ˆã=Œ,?¢¥ˆ²x[}?SùÎ=ãØz?"kL>ÉÓ|¿mU½J{>€¿\t>À|?ˆã=¾d&?!°Ó¾õòG¿ŒÊn3³)T¿B¿mY:— ºô98ºúÿ¿€¿?$Rì==!?R<ı>;fë¾?2¿ak3(×k¿&ǾXAË7‚;ºîÿ¿€¿?ä >=!?¦’î>ï¢ú¾&鿌Ên3äÓz¿ÍL¾Sö9 í7æ"ƺíÿ¿€¿?†ÏP>=!?üèß>$°Ó¾¿?ëѾBÒS¿g <=H¿ºn?
ÏÓ·‰ T¿€¿$_??è ? ê=;f뾿?uÔH¾vk¿PŞC=qǾQ«Ç>p™¸»k¿€¿Ìw??•? ê=ò¢ú¾¿?Dùνpwz¿B)L=ó‚M¾ÓM>â%:jÆz¿€¿-Q??!? ê=$°Ó¾øòG?ŠÒç2D)T¿¿B?:sF:ùÿ¿€¿?½ub?=!?á·ó<=fë¾?2?ğÆğ2äÖk¿î'Ç>¸jΠ¸€¿€¿?ØÆW?=!?Ô^m=ò¢ú¾'é?ŠÒç2gÓz¿¡ÖL>¸8¾ä‡¸6¹€¿€¿?ÌK?=!?ıp°=$°Ó¾
?ïÑ>®ÒS¿};=/H?™n¿.ì7  T¿€¿ÎEÏ>Ù??'“6? ê=;fë¾
?{ÔH>vk¿PC=qÇ>ùªÇ¾¾ù7.»k¿€¿~ß>Ù??ş{/? ê=ò¢ú¾
?RùÎ=Uwz¿(¾K=’‹M>¶ÌM¾^(Õ6ĞÆz¿€¿¼aï>Ù??Öd(? ê=&™Ó3´H¿$°Ó¾¾B¿B)T¿ùÿ?RF:5꺀¿ô$@?$Rì=Û¼>R<ı>¡­3ÛP2¿9fë¾í'ǾäÖk¿€?V˜¡¸·u8€¿ô$@? ä >Û¼>¦’î>¡­3äú¿ğ¢ú¾ÎL¾ÖÓz¿€?F!¹J¯8€¿ô$@?ˆÏP>Û¼>üèß>ìÑ>¿?$°Ó¾H <=BÒS¿‰ T?˜Ó·ºn?€¿ƒX?Ù??0> ê=|ÔH>¿?9fë¾qÇ>|ŞC= vk¿»k?£œ¸K«Ç>€¿º›P?Ù??i > ê=OùÎ=¿?î¢ú¾Ã‹M>'ML=Şvz¿ÉÆz?îP·/ÍM>€¿uH?Ù??¢®> ê=¢¥ˆ²øòG?$°Ó¾¸B?F)T¿ùÿ?ZOF:_è:€¿ô$@?½ub?Û¼>á·ó<¢¥ˆ²?2?9fë¾å'Ç>åÖk¿€?Ö ¸¦Ñ¸€¿ô$@?ØÆW?Û¼>Ô^m=¢¥ˆ²'é?î¢ú¾3ñL> Òz¿€?î(¹Î
¸€¿ô$@?ÌK?Û¼>ıp°=ìѾ¿?$°Ó¾H¿Ô <=BÒS¿Œ T?¸½8¶n¿€¿ÖÆ'?Ù??<†ç> ê=wÔH¾¿?9fë¾qǾ†ŞC= vk¿»k?* 8L«Ç¾€¿.®/?Ù??åWÙ> ê=Jùν¿?î¢ú¾Ä‹M¾ML=Şvz¿ÉÆz?¦7?ÍM¾€¿ÌÔ7?Ù??—)Ë> ê="°Ó>ùòG¿ŒÊn3³)T?B¿Y:¨£º2X):úÿ?€¿o¹?Rì=Š\c?R<ı>9fë>?2¿ÀDs3+×k?&Ǿ¸A: ޺‚צ8ıÿ?€¿o¹?ä >Š\c?¦’î>ì¢ú>&鿌Ên3âÓz?.ÍL¾Óõ9“<¹!ñ:şÿ?€¿o¹?†ÏP>Š\c?üèß>!°Ó>
?ïÑ>°ÒS?d};=(H?—n¿"Æ·¡ T?€¿DºÀ=Ù??N? ê=8fë>
?{ÔH>vk?*PC=ÿpÇ>ùªÇ¾òz÷·.»k?€¿€??#U? ê=î¢ú>
?RùÎ=Uwz?b¾K=¢‹M>»ÌM¾° ·ÏÆz?€¿(•??@\? ê=!°Ó>øòG?ŠÒç2H)T?¹B?¶×ºvº;·ÿ?€¿¬º½ub?Š\c?á·ó<=fë>?2?GÚá2âÖk?ğ'Ç>ZZºkê:òÿ?€¿¬ºØÆW?Š\c?Ô^m=î¢ú>,é?ŠÒç2gÓz?­ÖL>Á
8 A¦¸Úcd9€?€¿¬º"ÌK?Š\c?ıp°=!°Ó>¿?ëѾFÒS?° <=H¿±n? Î8 T?€¿Äêg?Ù??%²x? ê=8fë>¿?uÔH¾vk?uŞC=qǾR«Ç>Ä 8»k?€¿Òo?Ù??úšq? ê=î¢ú>¿?Dùνpwz?w)L=ƒM¾–ÖM>­¹º=Æz?€¿ºøw?Ù??Óƒj? ê=&™Ó3õòG¿$°Ó>¿B¿D)T?ùÿ¿àXF:Îî:€¿\t>$Rì=ˆã=irü>¡­3?2¿=fë>ö'ǾâÖk?€¿àñ ¸.鸀¿\t> ä >ˆã=»Èí>¡­3&é¿î¢ú> ÎL¾ØÓz?€¿æ5!¹|¡¸€¿\t>ˆÏP>ˆã=ß>ìѾ
?$°Ó>0H¿™};=®ÒS? T¿>@Æ·n¿€¿nv°>Ù??oã<bvç=wÔH¾
?=fë>ùpǾYPC=vk?0»k¿(Ôù·òªÇ¾€¿»§ >Ù??€c=bvç=Iùν
?î¢ú>y¾K=Wwz?ÒÆz¿õ¸ ·’ÌM¾€¿€Z??««ª=bvç=¢¥ˆ²øòG?$°Ó>·B?H)T?ùÿ¿¸IF:Œäº€¿`t>½ub?ˆã=7ç<¢¥ˆ²?2?=fë>ò'Ç>âÖk?€¿_$¡¸Ô8€¿`t>ØÆW?ˆã=g=¢¥ˆ²'é?ğ¢ú>ÎL>ØÓz?€¿Q2!¹”8€¿`t>ÌK?ˆã=TI­=ìÑ>
?$°Ó>1H?j};=«ÒS? T¿l{ì7œn?€¿äû??.G>bvç=|ÔH>
?=fë>ùpÇ>OPC=vk?0»k¿Øwù7òªÇ>€¿F™=>Ù??ƒÁ*>bvç=PùÎ=
?î¢ú>yM>$¾K=Wwz?ÑÆz¿í&Õ6œÌM>€¿À3^>Ù??åd>bvç=$¾âËZ¿$>"ş¾T6¿“"ş>ô5¿É#2³ò5¿€¿Ş¿>h¢=æ>Ë]C?‰Œ3¾ ëb¿`‡>#ϲ¾MMF¿xú?6ªV¿y¸ì;x ¿€¿RŒ¯>T=ÇnØ>Ë]C?>¹½e$h¿=m>¯Ş8¾©™P¿q
?ÅIt¿÷Ó<>™¾€¿’™>([=x@Ê>Ë]C?`‡¾ ëb¿Œ3>qú¿OMF¿)ϲ>x ¿¹ì»1ªV¿€¿æ/Ğ>T=æ>%<?åÚ<¾»2m¿êÚ<>r黾÷ĞZ¿pé»>ì5¿§€£´ú5¿€¿Ş¿>àC3=ÇnØ>%<?&½aœs¿µ E>BA¾Ú‚g¿ÏÄ>SÀg¿C©<útÙ¾€¿¥> Â=x@Ê>%<?=m¾e$h¿+>¹=k
¿­™P¿ÃŞ8>j™¾çѼ¾It¿€¿0*æ>([=æ>kí4?² E¾`œs¿5Â=ÆÄ¾Ú‚g¿ BA>uÙ¾9©¼PÀg¿€¿2§Ú>0Â=ÇnØ>kí4?nÇʽ`àz¿|ÇÊ=/I¾„ëu¿/I>¡E/¿/ô¼N“:¿€¿Ş¿>P<x@Ê>kí4? $>âËZ¿$>˜"ş>T6¿˜"ş>õ5¿ª•E´ñ5?€¿Yş=h¢=üF>Ë]C?
`‡>¡ëb¿Œ3>ú?GMF¿$ϲ>×j ¿¬_m;9
V?€¿ä½=L=üF>%<?=m>e$h¿+>¹=r
?§™P¿¥Ş8>gŸ¾oY¬8íFs?€¿xQJ=([=üF>kí4?“Œ3> ëb¿`‡>&ϲ>DMF¿‚ú?:
V¿ê_m»Öj ?€¿Ğ>TŸ>Ë]C?íÚ<>À2m¿êÚ<>ué»>÷ĞZ¿pé»>î5¿€Ä5?€¿Yş=¸C3=õŸ>%<?´ E>`œs¿5Â=ÊÄ>İ‚g¿ÒAA>Äᾚ²:ğe?€¿°4“=0Ÿ>kí4?+>¹=c$h¿=m>˜Ş8>¦™P¿v
?ïFs¿úr¬¸ñfŸ>€¿¨ÄK>0[=ğ¸­>Ë]C?@Â=aœs¿µ E>ÜAA>Ü‚g¿ÍÄ>¹Ëe¿‹Hº@§á>€¿ª¾4> Â=ğ¸­>%<?‡ÇÊ=^àz¿|ÇÊ=ı.I>…ëu¿é.I>û<3¿>ƒ9;È6?€¿zá>€´Œ<ğ¸­>kí4? $>¡İZ¿ $¾“"ş>T6¿•"ş¾÷5?¾Á˜4ï5?€¿ë6`?h¢=üF>>
?“Œ3>^ıb¿
`‡¾(ϲ>FMF¿€ú¿>ªV?Z½ì;ûw ?€¿X?TŸ>>
?+>¹="6h¿:m¾šŞ8>§™P¿r
¿ÆIt?=Ó<4™>€¿âM?0[=ğ¸­>>
?
`‡>`ıb¿‰Œ3¾ú?GMF¿#ϲ¾ûw ?W¼ì»>ªV?€¿Ğ_h?L=üF>lE?íÚ<>~Dm¿åÚ<¾wé»>÷ĞZ¿p黾ê5?ÿ©´ü5?€¿ì6`?¸C3=õŸ>lE?@Â= ®s¿¯ E¾ŞAA>Ü‚g¿ÎľÁg?lÿ<¨oÙ>€¿bÒR? Â=ğ¸­>lE?=m>#6h¿>¹½R
?e¦P¿œ£7¾€š>4ÕÔ»<#t?€¿õ\s?([=üF>Ÿ}&?´ E>®s¿&Â½Ä Ä>kg¿ò?¾Å€Ú>?rİ»±‚g?€¿wm?0Ÿ>Ÿ}&?‡ÇÊ=òz¿nÇʽ,7I>•üu¿ì×G¾P,0?¯ Ù»?»9?€¿í6`?p<ğ¸­>Ÿ}&?$¾¡İZ¿ $¾‹"ş¾T6¿’"ş¾ö5?Æ^ß²ğ5¿€¿ü ?h¢=æ>>
?`‡¾^ıb¿‰Œ3¾qú¿OMF¿&ϲ¾áj ?ÿ`m;3
V¿€¿ê?T=æ>lE?=m¾#6h¿>¹½L
¿h¦P¿º£7¾lŸ>û赺Fs¿€¿óì ?([=æ>Ÿ}&?‰Œ3¾^ıb¿
`‡¾!ϲ¾NMF¿tú¿6
V?÷`m»Üj ¿€¿â;(?T=ÇnØ>>
?åÚ<¾yDm¿åÚ<¾p黾÷ĞZ¿p黾ñ5?"× 5¿€¿ı ?àC3=ÇnØ>lE?² E¾®s¿&½à ľh’g¿Rò?¾UÏá>ä¿7ºâÁe¿€¿q®?0Â=ÇnØ>Ÿ}&?>¹½#6h¿:m¾°Ş8¾ª™P¿n
¿ìFs?ØÂ¬¸gŸ¾€¿93?([=x@Ê>>
?&½ ®s¿¯ E¾BA¾Ú‚g¿ĞľìÃe?™Ì&º Çá¾€¿ˆw-? Â=x@Ê>lE?nÇʽòz¿nÇʽ37I¾“üu¿ØG¾25?gŠº¦ù4¿€¿ı ?P<x@Ê>Ÿ}&? $¾äËZ?$>"ş¾T6?"ş>ô5¿KÖ´ó5¿€¿Ş¿>Ô¼k?.G>^ô?`‡¾¤ëb?“Œ3>ú¿DMF?)ϲ>ûw ¿>¾ì;?ªV¿€¿æ/Ğ>˜¼o?.G>Œ,?:m¾f$h?+>¹=s
¿«™P?mŞ8>ö™¾ Õ<ĞIt¿€¿0*æ>Nr?.G>¾d&?Œ3¾¤ëb?`‡>1ϲ¾CMF?€ú?:ªV¿‹¼ì»x ¿€¿TŒ¯>˜¼o?ƒÁ*>^ô?êÚ<¾À2m?íÚ<>x黾÷ĞZ?ké»>è5¿˜yƒ4ş5¿€¿Ş¿>ÄËt?ƒÁ*>Œ,?· E¾bœs?8Â=ßľڂg?ÃAA>ĞXÛ¾áJì;]Og¿€¿3§Ú>Şów?ƒÁ*>¾d&?%>¹½f$h??m>uŞ8¾©™P?u
?ÑIt¿Äּ€¿’™>Nr?åd>^ô?/½cœs?¼ E>ÍAA¾Ú‚g?ÖÄ>]Àg¿"¨¼ÏtÙ¾€¿¥>ßów?åd>Œ,?wÇʽaàz?€ÇÊ=ò.I¾‡ëu?æ.I>o‡2¿jl;y7¿€¿Ş¿>v‡{?åd>¾d&? $¾äËZ? $¾›"ş¾T6?"ş¾ô5?\ü²ò5¿€¿ı ?Ô¼k?.G>éDC?Œ3¾¤ëb?`‡¾.ϲ¾DMF?ú¿8
V?£cm;Ùj ¿€¿â;(?˜¼o?ƒÁ*>éDC?&>¹½f$h?:m¾sŞ8¾©™P?u
¿úFs?'®8°fŸ¾€¿93?Nr?åd>éDC?`‡¾¤ëb?Œ3¾ú¿DMF?*ϲ¾Öj ?÷cm»:
V¿€¿ê?˜¼o?.G>º <?êÚ<¾À2m?æÚ<¾u黾÷ĞZ?m黾ê4?ŒE¸¹Ç5¿€¿ü ?ÄËt?ƒÁ*>º <?0½cœs?´ E¾ÍAA¾Ú‚g?Úľɾe?ó:öÛá¾€¿×w-?Åów?åd <?;m¾f$h?>¹½s
¿«™P?mŞ8¾ş`Ÿ>Ï>ò¸èGs¿€¿ôì ?Nr?.G>ŠÔ4?· E¾bœs?)½Üľڂg?ÄAA¾ZÊà>3غ¿f¿€¿À°?}ïw?ƒÁ*>ŠÔ4?xÇʽaàz?pÇʽó.I¾‡ëu?ç.I¾`5?Qjä8„ó4¿€¿8õ?¸{?åd>ŠÔ4?$>äËZ? $¾Ÿ"ş>T6?™"ş¾ğ5?/µ…3ö5?€¿ë6`?Ô¼k?oã<éDC?`‡>¤ëb?Œ3¾€ú?FMF?(ϲ¾şw ?ù»ì;<ªV?€¿Ğ_h?˜¼o?oã<º <?>m>f$h?>¹½s
?ª™P?uŞ8¾#÷™>˜7<n$t?€¿õ\s?Nr?oã<ŠÔ4?•Œ3>¤ëb?`‡¾+ϲ>FMF?~ú¿<ªV?‚½ì»şw ?€¿X?˜¼o?€c=éDC?íÚ<>À2m?æÚ<¾jé»>úĞZ?j黾pû4?Ï«9u5?€¿ë6`?ÄËt?€c=º <?´ E>cœs?)½ÎÄ>İ‚g?ÎAA¾ÙGÛ>6„î;YSg?€¿vm?ßów?€c=ŠÔ4?+>¹=f$h?=m¾hŞ8>­™P?r
¿uCt?*ù¼z-™>€¿âM?Nr?««ª=éDC?5Â=bœs?´ E¾ÆAA>İ‚g?Ïľ Çg?,±¼€UÙ>€¿`ÒR?Şów?««ª=º <?}ÇÊ=`àz?pÇʽè.I>‡ëu?ò.I¾Š +?´·{<[>?€¿<†^?`Š{?««ª=ŠÔ4?$>äËZ?$> "ş>T6?"ş>ò5¿¸A4õ5?€¿Yş=Ô¼k?oã<^ô?•Œ3>¤ëb?`‡>%ϲ>HMF?}ú?;
V¿Tdm;Ôj ?€¿Ğ>˜¼o?€c=^ô?">¹=f$h?=m>eŞ8>­™P?r
?ÅFs¿}»8ògŸ>€¿¬ÄK>Nr?««ª=^ô?`‡>¤ëb?“Œ3>€ú?CMF?-ϲ>Ùj ¿Äam»8
V?€¿à½=˜¼o?oã<Œ,?íÚ<>À2m?íÚ<>gé»>úĞZ?pé»>T5¿ÂK´·“5?€¿Yş=ÄËt?€c=Œ,?7Â=bœs?¼ E>ÅAA>Ü‚g?×Ä>¤Âe¿Æ
!:DÌá>€¿–È4>-ôw?««ª=Œ,?@m>f$h?.>¹=u
?©™P?uŞ8>´fŸ¾Ø ®¸ùFs?€¿xQJ=Nr?oã<¾d&?´ E>cœs?8Â=ËÄ>İ‚g?ÌAA>>Åá¾`€(º]Äe?€¿°4“=ßów?€c=¾d&?~ÇÊ=`àz?€ÇÊ=ç.I>‡ëu?ï.I>>5¿ÓŒ·©5?€¿Yş=v‡{?««ª=¾d&?ѵ¾Ó?¿$>T6¿ "ş¾œ"ş>z¿…/ò»]£R¿€¿…úÍ>†(>'“6?R<ı>BÞºC¿“Œ3>BMF¿ƒú¿+ϲ>oÜоaÒ±» ºi¿€¿5İ>äòü=ş{/?R<ı>Ê4оÀF¿+>¹=¦™P¿{
¿kŞ8><»z¿€¿\"î>ˆñ=Öd(?R<ı>DÞ!í,¿`‡>DMF¿*ϲ¾€ú?oé¿§Úâº7¸S¿€¿}üÎ>d^+>'“6?¦’î>~QÚ¾¼@/¿îÚ<>óĞZ¿}黾é»>w—ɾfD»Rk¿€¿|«Ş>¢É&>ş{/?¦’î>Æ$ç¾.R1¿7Â=Ø‚g¿áľ¸AA>º¨P¾g1¨ºğ z¿€¿¬ï>&·">Öd(?¦’î>É4оÅ1¿=m>§™P¿_Ş8¾z
?q[¿M$Ù¹’T¿€¿¶GÏ>¼(V>'“6?üèß>Ç$ç¾L¿· E>Ú‚g¿°AA¾ŞÄ>¸ˆÇ¾Ò "ºkÂk¿€¿;ß>şüS>ş{/?üèß>¾¬õ¾ïb¿€ÇÊ=«æu¿\^I¾k^I>JM¾&êé¹Íz¿€¿·cï>Ì×Q>Öd(?üèß>ѵ¾Áä?¿ $¾T6¿Ÿ"ş¾œ"ş¾Æ¼?´@¬;vR¿€¿È?†(>è ?R<ı>DÞàş,¿`‡¾DMF¿)ϲ¾€ú¿Ôé?ĞMà:ó·S¿€¿Ëƒ?d^+>è ?¦’î>É4о„C¿:m¾§™P¿aŞ8¾w
¿•Z?Mé:&T¿€¿0^?¼(V>è ?üèß>BÞÅËC¿Œ3¾BMF¿ƒú¿+ϲ¾Ø×Ğ>׳; »i¿€¿ƒg?äòü=•?R<ı>~QÚ¾{R/¿æÚ<¾óĞZ¿}黾}黾2¦É>_şı:Ok¿€¿M¬?¢É&>•?¦’î>Ç$ç¾Ã]¿° E¾Ú‚g¿±AA¾ŞÄ¾
ŠÇ>%:$Âk¿€¿nv?şüS>•?üèß>Ê4о\ÒF¿>¹½3¢P¿G
¿í8¾Z9[>£m;hz¿€¿İğ?ˆñ=!?R<ı>Æ$ç¾íc1¿'½o‰g¿Üľ³@¾Ì¯P>n¹  z¿€¿µs?&·">!?¦’î>¾¬õ¾®t¿oÇʽ0êu¿4`I¾İI¾yOM>ÆJŠº1Íz¿€¿0P?Ì×Q>!?üèß>ƒµ¾Ó?? $¾T6¿£"ş>˜"ş¾~z?å.ò»^£R¿€¿É?àu^?è ?á·ó<BÞ ºC?Œ3¾@MF¿…ú?5ϲ¾sÜĞ>ïÕ±»ºi¿€¿ƒg?¥a`?•?á·ó<Ê4о ÀF?>¹½¦™P¿y
?€Ş8¾/\>
:»z¿€¿İğ?ğŞa?!?á·ó<BÞ&í,?`‡¾BMF¿<ϲ>~ú¿pé?ÉÑâº6¸S¿€¿Ëƒ?j(U?è ?Ô^m=~QÚ¾½@/?æÚ<¾óĞZ¿€é»>z黾p—É> G» Rk¿€¿M¬?˜MV?•?Ô^m=Ç$ç¾/R1?'½ڂg¿ÚÄ>ÅAA¾Á¨P>'7¨ºğ z¿€¿µs?7RW?!?Ô^m=Ì4оÄ1?<m¾=˜P¿l9>³
¿7[?u{ë¹¹T¿€¿0^?ÑuJ?è ?ıp°=Ç$ç¾L?° E¾<g¿¼dA>åÿþî‡Ç>ޯ.º•Âk¿€¿nvK?•?ıp°=¾¬õ¾ğb?oÇʽÌåu¿ÒxI>ÿTI¾RM> p¹Íz¿€¿0P?ŠK?!?ıp°=ƒµ¾Ó??$>T6¿¦"ş>˜"ş>ʼ¿#<¬;˜vR¿€¿„úÍ>àu^?'“6?á·ó<BÞ&í,?`‡>BMF¿8ϲ>~ú?Öé¿‘<à:ñ·S¿€¿}üÎ>j(U?'“6?Ô^m=Ì4оÄ1?>m>§™P¿gŞ8>z
?˜Z¿ië:$T¿€¿¶GÏ>ÑuJ?'“6?ıp°=BÞ ºC?“Œ3>@MF¿„ú?5ϲ>î×о~Ò³;»i¿€¿5İ>¥a`?ş{/?á·ó<~QÚ¾¼@/?íÚ<>óĞZ¿|é»>|é»>.¦É¾‘ş:Ok¿€¿|«Ş>˜MV?ş{/?Ô^m=Ç$ç¾L?· E>Ú‚g¿ÇAA>ÚÄ>ŠÇ¾(:%Âk¿€¿;ß>ÂK?ş{/?ıp°=Ì4оÀF?.>¹=¦™P¿x
?‚Ş8>Ñ*[¾†şg;êz¿€¿\"î>ğŞa?Öd(?á·ó<Ç$ç¾/R1?7Â=Ü‚g¿ÖÄ>ËAA>ªP¾¦:Ş z¿€¿¬ï>7RW?Öd(?Ô^m=¾¬õ¾ğb?€ÇÊ=ªæu¿k^I>q^I>pNM¾e•½9GÍz¿€¿·cï>ŠK?Öd(?ıp°=$¾Âä?¿Äƒµ¾™"ş¾œ"ş¾T6¿`£R?}1ò»{z¿€¿0!'?(><†ç>R<ı>Œ3¾ÆËC¿>Þ$ϲ¾ƒú¿DMF¿#ºi?»Ô±»aÜо€¿v¾.?àòü=åWÙ>R<ı>>¹½\ÒF¿É4о|Ş8¾{
¿¥™P¿z?·:»*€¿57?ˆñ=—)Ë>R<ı>`‡¾àş,¿>Þú¿(ϲ¾DMF¿7¸S?ßÛâºné¿€¿,¢'?d^+><†ç>¦’î>çÚ<¾{R/¿}QÚ¾y黾|黾ôĞZ¿Rk?©@»s—ɾ€¿­y/?¢É&>åWÙ>¦’î>!½ëc1¿Æ$ç¾ÂAA¾ØÄ¾Ü‚g¿ğ z?Í3¨º¿¨P¾€¿E²7?(·">—)Ë>¦’î>;m¾„C¿É4оw
¿ŒŞ8¾§™P¿“T?’)Ù¹o[¿€¿ÉÇ'?¼(V><†ç>üèß>² E¾Ä]¿Æ$ç¾ÓľØAA¾Ú‚g¿mÂk?×
"º¯ˆÇ¾€¿Œ¯/?üüS>åWÙ>üèß>nÇʽ­t¿»¬õ¾j^I¾y^I¾ªæu¿Íz?÷ãé¹JM¾€¿ÉÕ7?Î×Q>—)Ë>üèß> $>Áä?¿Âƒµ¾™"ş>"ş¾T6¿vR?EA¬;Á¼?€¿¸(Y?†(>0>R<ı>`‡>àş,¿>Þ€ú?3ϲ¾CMF¿ò·S?úJà:Õé?€¿¼§X?d^+>0>¦’î>=m>„C¿É4оy
?•Ş8¾£™P¿#T?÷×:™Z?€¿X?¼(V>0>üèß>“Œ3>ÆËC¿>Þ8ϲ>‚ú¿@MF¿»i?rÕ³;ê×Ğ>€¿rQ?àòü=i >R<ı>òÚ<>{R/¿}QÚ¾Šé»>€é»¾îĞZ¿ÿNk?şöı:D¦É>€¿<ĞP?¢É&>i >¦’î>µ E>Ã]¿Æ$ç¾ÚÄ>ÒAA¾Ø‚g¿%Âk?­8:ŠÇ>€¿^šP?şüS>i >üèß>0>¹=[ÒF¿É4о€Ş8>{
¿¥™P¿éz?)ùg;Ş*[>€¿ÍI?Œñ=¢®>R<ı>;Â=íc1¿Æ$ç¾ÅAA>Úľڂg¿Ş z?q‹¦:ªP>€¿¤—H?&·">¢®>¦’î>‚ÇÊ=­t¿»¬õ¾u^I>q^I¾ªæu¿FÍz?蔽9tNM>€¿tH?Î×Q>¢®>üèß>$>Ó??ăµ¾–"ş>™"ş>T6¿a£R?ñ0ò»yz?€¿¸(Y?àu^?0>á·ó<•Œ3> ºC?>Þ*ϲ>ú?DMF¿"ºi?¾Ô±»gÜĞ>€¿rQ?¥a`?i >á·ó<!>¹= ÀF?É4о…Ş8>v
?§™P¿z?"8»9\>€¿ËI?ğŞa?¢®>á·ó<`‡>&í,?>Þú?0ϲ>DMF¿7¸S?–Ôâºoé?€¿¼§X?j(U?0>Ô^m=íÚ<>½@/?{QÚ¾xé»>}é»>ôĞZ¿ Rk?šE»o—É>€¿<ĞP?˜MV?i >Ô^m=5Â=/R1?Æ$ç¾ÂAA>ÒÄ>Ü‚g¿ğ z?N7¨º¼¨P>€¿¤—H?7RW?¢®>Ô^m=@m>Æ1?É4о²
?9>;˜P¿¹T?Ùyë¹7[?€¿X?ÒuJ?0>ıp°=´ E>L?Æ$ç¾áÿÃ>ËdA><g¿–Âk?°±.ºë‡Ç>€¿\šP?ÂK?i >ıp°=xÇÊ=ğb?»¬õ¾‹]I>uI>ëäu¿‘Íz?;ı¹´HM>€¿tH?ŠK?¢®>ıp°= $¾Ó??ăµ¾"ş¾™"ş>T6¿vR?\=¬;Á¼¿€¿0!'?àu^?<†ç>á·ó<`‡¾&í,?>Þzú¿5ϲ>GMF¿ö·S?Dà:Ğé¿€¿,¢'?j(U?<†ç>Ô^m=;m¾Å1?É4о°
¿†9>=˜P¿]T?»–:BZ¿€¿ÉÇ'?ÑuJ?<†ç>ıp°=Œ3¾ ºC?>Þ0ϲ¾ú?DMF¿ »i?dس;Ø×о€¿v¾.?¥a`?åWÙ>á·ó<êÚ<¾¼@/?{QÚ¾~黾ƒé»>ñĞZ¿Ok?õş:3¦É¾€¿¬y/?˜MV?åWÙ>Ô^m=³ E¾L?Æ$ç¾æÿþÏdA>9g¿MÂk?|»:E‰Ç¾€¿Œ¯/?ÂK?åWÙ>ıp°=&>¹½ÀF?É4о—Ş8¾t
?§™P¿èz?6ıg;ë*[¾€¿57?ïŞa?—)Ë>á·ó<+½/R1?Æ$ç¾ÍAA¾ÙÄ>Ú‚g¿Ş z?¡¦:#ªP¾€¿E²7?7RW?—)Ë>Ô^m=xÇʽğb?»¬õ¾’]I¾yI>ëäu¿SÍz?Ò¼Ì9|MM¾€¿ÉÕ7?ŠK?—)Ë>ıp°=ăµ>Áä?¿ $¾T6?‰"ş¾"ş¾rz?á0ò»f£R?€¿ Eg?†(>%²x?R<ı>=ÃÅ>ÆËC¿Œ3¾IMF?}ú¿"ϲ¾\ÜĞ>4Ô±»$ºi?€¿dân?àòü=úšq?R<ı>Å4Ğ>\ÒF¿>¹½3¢P?C
¿ 8¾v]>¾^:]öy?€¿
Yw?ˆñ=Óƒj?R<ı>=ÃÅ>àş,¿`‡¾LMF?$ϲ¾xú¿eé?Ûâº=¸S?€¿Æg?d^+>%²x?¦’î>{QÚ>{R/¿æÚ<¾óĞZ?z黾}黾v—É>hB»Rk?€¿›o?¢É&>úšq?¦’î>Â$ç>íc1¿'½o‰g?ÔľE³@¾ 'Q>Ô]±:Ršz?€¿2Öw?&·">Óƒj?¦’î>Å4Ğ>„C¿:m¾ª™P?Ş8¾q
¿j[?+Ù¹—T?€¿·ëg?¼(V>%²x?üèß>Â$ç>Ä]¿° E¾×‚g?ëAA¾ãľ¿ˆÇ>
"ºiÂk?€¿zÓo?üüS>úšq?üèß>»¬õ>®t¿oÇʽ,êu?c`I¾èI¾øiM>e§Í:ÊËz?€¿·ùw?Ì×Q>Óƒj?üèß>ăµ>Ó?¿$>T6?"ş¾"ş>¼¼¿#@¬;¢vR?€¿hçÅ=†(>N?R<ı>=ÃÅ>!í,¿`‡>JMF?#ϲ¾yú?Ìé¿MOà:ø·S?€¿ˆßÁ=d^+>N?¦’î>Å4Ğ>Å1¿=m>ª™P?Ş8¾r
?‘Z¿´è:)T?€¿¤²À=¼(V>N?üèß>=ÃÅ>ºC¿“Œ3>HMF?}ú¿%ϲ>Í×оËÖ³;#»i?€¿@ıˆ=àòü=#U?R<ı>{QÚ>¼@/¿îÚ<>óĞZ?z黾€é»>6¦É¾éøı:Ok?€¿ˆ#ƒ=¢É&>#U?¦’î>Â$ç>L¿· E>ׂg?éAA¾ãÄ>ŠÇ¾c#:"Âk?€¿Œt=üüS>#U?üèß>Å4Ğ>ÀF¿+>¹=¥™P?w
¿ Ş8>+[¾¹÷g;çz?€¿
=ˆñ=@\?R<ı>Â$ç>.R1¿7Â=Ø‚g?ØÄ¾áAA>=ªP¾4‰¦:Ü z?€¿ ½=&·">@\?¦’î>»¬õ>ïb¿€ÇÊ=¨æu?Œ^I¾y^I>yNM¾½½9FÍz?€¿P…=Ì×Q>@\?üèß>ǃµ>Ó??$>T6?“"ş>…"ş>nz¿²0ò»i£R?€¿dçÅ=àu^?N?á·ó<=ÃÅ>ºC?“Œ3>IMF?zú?&ϲ>]ÜоtÕ±»$ºi?€¿@ıˆ=¤a`?#U?á·ó<Ç4Ğ> ÀF?+>¹=©™P?r
?šŞ8>K\¾¥9»z?€¿
=ğŞa?@\?á·ó<=ÃÅ>&í,?`‡>JMF?%ϲ>wú?gé¿.Ğâº<¸S?€¿ˆßÁ=j(U?N?Ô^m={QÚ>½@/?íÚ<>óĞZ?}é»>zé»>q—ɾBF» Rk?€¿ˆ#ƒ=˜MV?#U?Ô^m=Å$ç>/R1?7Â=Ø‚g?ÚÄ>ãAA>å¨P¾n3¨ºî z?€¿ ½=7RW?@\?Ô^m=Ç4Ğ>Æ1?>m>ª™P?yŞ8>r
?k[¿/
Ù¹–T?€¿¤²À=ÒuJ?N?ıp°=Å$ç>L?· E>Ú‚g?ÎAA>ÚÄ>µˆÇ¾ "ºlÂk?€¿ŒtK?#U?ıp°=»¬õ>ğb?€ÇÊ=ªæu?q^I>†^I>,JM¾‰Îé¹~Íz?€¿P…=ŠK?@\?ıp°=ǃµ>Ó?? $¾ T6?"ş>†"ş¾¹¼?µ=¬;¤vR?€¿ Eg?àu^?%²x?á·ó<=ÃÅ>&í,?`‡¾JMF?)ϲ>vú¿Ìé?D>à:ø·S?€¿Æg?j(U?%²x?Ô^m=Ç4Ğ>Æ1?<m¾?˜P?†9>­
¿?Z?j™:_T?€¿·ëg?ÒuJ?%²x?ıp°==ÃÅ>ºC?Œ3¾LMF?xú?#ϲ¾Î×Ğ>'Ô³;"»i?€¿dân?¤a`?úšq?á·ó<{QÚ>¼@/?æÚ<¾ôĞZ?}é»>v黾+¦É><üı:Ok?€¿›o?˜MV?úšq?Ô^m=Å$ç>L?° E¾:g?ËdA>èÿþE‰Ç>LÊ:MÂk?€¿zÓo?ÂK?úšq?ıp°=Ç4Ğ>ÀF?>¹½ª™P?q
?œŞ8¾F4\>v.; z?€¿
Yw?ğŞa?Óƒj?á·ó<Å$ç>/R1?'½ׂg?İÄ>ëAA¾./Q>áf²7ı™z?€¿2Öw?7RW?Óƒj?Ô^m=»¬õ>ğb?oÇʽÊåu?ÙxI>UI¾7hM>`йõËz?€¿·ùw?ŠK?Óƒj?ıp°=$>Ó?¿Åƒµ>œ"ş>”"ş¾T6?^£R¿'/ò»~z?€¿Re>†(>.G>irü>“Œ3>ºC¿BÃÅ>"ϲ>ú¿FMF?#ºi¿Ó±»bÜĞ>€¿jÚ9>àòü=ƒÁ*>irü>0>¹=œÀF¿Æ4Ğ>uŞ8>y
¿§™P?z¿á;»\>€¿ş´[>Œñ=åd>irü>`‡>!í,¿BÃÅ>}ú?ϲ¾IMF?:¸S¿ç×âºké?€¿Fi>d^+>.G>»Èí>òÚ<>¼@/¿}QÚ>~é»>s黾ôĞZ?Rk¿^B»w—É>€¿>Ç<>¢É&>ƒÁ*>»Èí>;Â=.R1¿Ä$ç>ÏAA>İľ؂g?ï z¿è9¨ºË¨P>€¿œ©]>&·">åd>»Èí>=m>Å1¿Æ4Ğ>t
?‡Ş8¾§™P?•T¿@Ù¹m[?€¿²ÿ>¼(V>.G>ß>µ E>L¿Ä$ç>àÄ>ÚAA¾Ø‚g?jÂk¿ "º¼ˆÇ>€¿¼=>şüS>ƒÁ*>ß>‚ÇÊ=îb¿¾¬õ>s^I>q^I¾ªæu?Íz¿İê¹JM>€¿´7^>Î×Q>åd>ß>$¾Ó?¿Äƒµ>•"ş¾œ"ş¾T6?œvR¿e>¬;ļ¿€¿µÁ±>†(>oã<irü>`‡¾!í,¿BÃÅ>zú¿"ϲ¾IMF?ø·S¿¤Qà:Íé¿€¿½¿°>d^+>oã<»Èí>;m¾Å1¿Æ4Ğ>s
¿Ş8¾ª™P?(T¿Áê:Z¿€¿†t°>¼(V>oã<ß>Œ3¾ºC¿BÃÅ>ϲ¾ú¿HMF?%»i¿ÍÖ³;Ä×о€¿+‡¢>àòü=€c=irü>çÚ<¾¼@/¿}QÚ>u黾u黾÷ĞZ?Ok¿·şı:'¦É¾€¿¾¡>¢É&>€c=»Èí>² E¾L¿Ä$ç>ØÄ¾áAA¾Ø‚g?%Âk¿S:ŠÇ¾€¿¥ >üüS>€c=ß>>¹½ÀF¿Æ4Ğ>qŞ8¾y
¿§™P?êz¿òúg;Æ*[¾€¿Ş™‘>ˆñ=««ª=irü>!½-R1¿Ä$ç>ËAA¾Ûľڂg?Ş z¿7„¦:)ªP¾€¿Ÿ>(·">««ª=»Èí>nÇʽîb¿¾¬õ>k^I¾y^I¾ªæu?GÍz¿Ñ»½9gNM¾€¿„X>Î×Q>««ª=ß> $¾Ó??ѵ>Œ"ş¾›"ş>T6?d£R¿c.ò»vz¿€¿µÁ±>àu^?oã<7ç<Œ3¾ ºC?BÃÅ>+ϲ¾~ú?FMF?!ºi¿aÓ±»jÜо€¿+‡¢>¥a`?€c=7ç<%>¹½ÀF?É4Ğ>‡Ş8¾s
?ª™P?z¿W:»3€¿Ş™‘>ğŞa?««ª=7ç<`‡¾&í,?BÃÅ>zú¿/ϲ>HMF?:¸S¿UÏâºké¿€¿¼¿°>j(U?oã<g=çÚ<¾½@/?}QÚ>z黾|é»>óĞZ? Rk¿ I»o—ɾ€¿¾¡>˜MV?€c=g=*½/R1?Æ$ç>ÌAA¾ÜÄ>Ø‚g?ï z¿{4¨ºÌ¨P¾€¿Ÿ>7RW?««ª=g=;m¾Å1?É4Ğ>u
¿oŞ8>ª™P?•T¿Ù¹m[¿€¿†t°>ÑuJ?oã<TI­=³ E¾L?Æ$ç>ÛľÒAA>Ú‚g?kÂk¿R"º¶ˆÇ¾€¿¥ >ÂK?€c=TI­=wÇʽğb?¾¬õ>m^I¾j^I>ªæu?Íz¿vŞé¹JM¾€¿†X>ŠK?««ª=TI­=$>Ó??ѵ>•"ş>"ş>T6?vR¿¨;¬;Ƽ?€¿Re>àu^?.G>7ç<`‡>&í,?BÃÅ>{ú?+ϲ>HMF?õ·S¿;à:Ñé?€¿Di>j(U?.G>g=@m>Æ1?É4Ğ>w
?lŞ8>©™P?&T¿Šì:”Z?€¿²ÿ>ÒuJ?.G>TI­=•Œ3> ºC?BÃÅ>%ϲ>}ú?HMF?!»i¿ÒÒ³;Ö×Ğ>€¿hÚ9>¥a`?ƒÁ*>7ç<íÚ<>¼@/?}QÚ>sé»>wé»>öĞZ?Ok¿Sş:$¦É>€¿@Ç<>˜MV?ƒÁ*>g=´ E>L?Æ$ç>ÕÄ>ÏAA>Ú‚g?&Âk¿2$:ŠÇ>€¿¾=>ÂK?ƒÁ*>TI­=->¹=ÀF?É4Ğ>}Ş8>q
?«™P?êz¿+h;Â*[>€¿ş´[>ğŞa?åd>7ç<7Â=/R1?Æ$ç>ÏAA>ÛÄ>Ú‚g?Ş z¿7¦:$ªP>€¿©]>7RW?åd>g=yÇÊ=ğb?¾¬õ>m^I>j^I>ªæu?GÍz¿«½9lNM>€¿¶7^>ŠK?åd>TI­=¿
¿ŒÊn3 «¿˜ÇO½8¾“ö¶ñšœºôÿ¿€¿?Pà>=!?T?Ñ>r¿2¿¿¿WÈO½ «¿€?¸„޶ŒÕ´4€¿ô$@?Pà>Û¼>T?Ñ>?
¿ŠÒç2 «?@ÈO½†x8JD·W:öÿ?€¿o¹?Pà>Š\c?T?Ñ>r¿2
¿?ÈO½ «?€¿]骶–'µ´€¿\t>Pà>ˆã=iuĞ>Ïö´¾¿¿Îö´¾"Ö4¿7Ö4¿ì5?͹Š6ú5¿€¿ı ?Pà>œË?T?Ñ>Ïö´¾
¿Ïö´>Ö4¿;Ö4?ö5¿Š6ñ5¿€¿Ş¿>Pà>€¯=?T?Ñ>Ïö´>¿¿Îö´¾&Ö4?SÖ4¿í5?1 k6ù5?€¿ë6`?Pà>%÷ƒ>T?Ñ>Ïö´>
¿Ïö´>!Ö4?YÖ4?î5¿ Ÿ6ø5?€¿Yş=Pà>™êF?T?Ñ>!°Ó¾¿¿ëѾ°ÒS¿[};½+H¿–n?B,ì7¢ T¿€¿$_?Pà>è ?T?Ñ>8f뾿¿tÔH¾vk¿ÕOC½qǾüªÇ>[ïù7.»k¿€¿Ìw?Pà>•?T?Ñ>î¢ú¾¿¿Dùν;xz¿S¾K½zM¾‰ÌM>Õü°ºÂÆz¿€¿-Q?Pà>!?T?Ñ>!°Ó¾
¿ïÑ>®ÒS¿Z};½-H?›n¿âVÆ·Ÿ T¿€¿ÍEÏ>Pà>'“6?T?Ñ>8fë¾
¿{ÔH>vk¿ÕOC½qÇ>üªÇ¾ñx÷·-»k¿€¿~ß>Pà>ş{/?T?Ñ>î¢ú¾
¿RùÎ=Uwz¿õ½K½”‹M>­ÌM¾P™ ·ĞÆz¿€¿¼aï>Pà>Öd(?T?Ñ>ğÑ>¿¿$°Ó¾.H?§};½®ÒS¿  T?2ì7™n?€¿ƒX?Nà>0>T?Ñ>xÔH>¿¿9fë¾üpÇ>VPC½vk¿/»k?æÈş7ôªÇ>€¿º›P?Pà>i >T?Ñ>YùÎ=¿¿ğ¢ú¾—‹M>v¾K½Uwz¿ÏÆz?#VÔ6»ÌM>€¿uH?Pà>¢®>T?Ñ>íѾ¿¿$°Ó¾-H¿ª};½®ÒS¿Ÿ T?¾JÆ·›n¿€¿ÖÆ'?Pà><†ç>T?Ñ>wÔH¾¿¿9fë¾ùpǾVPC½vk¿0»k?÷l÷·òªÇ¾€¿.®/?Pà>åWÙ>T?Ñ>@ùν¿¿ğ¢ú¾”‹M¾y¾K½Uwz¿ĞÆz?oÜ ·­ÌM¾€¿ÌÔ7?Pà>—)Ë>T?Ñ>"°Ó>
¿ïÑ>°ÒS?Ş};½(H?”n¿@ ì7£ T?€¿DºÀ=Pà>N?T?Ñ>9fë>
¿{ÔH>~vk?­PC½qÇ>ÿªÇ¾äáù7-»k?€¿€=Pà>#U?T?Ñ>ğ¢ú>
¿RùÎ=Uwz?º¾K½M>ÀÌM¾lµÔ6ÏÆz?€¿ •=Pà>@\?T?Ñ>"°Ó>¿¿ëѾ²ÒS?â};½'H¿•n?1Æ·£ T?€¿Äêg?Pà>%²x?T?Ñ>9fë>¿¿tÔH¾~vk?­PC½qǾ«Ç>s÷·-»k?€¿Òo?Pà>úšq?T?Ñ>ğ¢ú>¿¿Dùν;xz?¿K½)zM¾5ÌM>(­:ÇÆz?€¿ºøw?Pà>Óƒj?T?Ñ>íѾ
¿$°Ó>/H¿ ~;½®ÒS?  T¿ù!ì7™n¿€¿nv°>Pà>oã<iuĞ>wÔH¾
¿=fë>ùpǾ±PC½vk?0»k¿tíù7òªÇ¾€¿»§ >Pà>€c=iuĞ>@ùν
¿î¢ú>u‹M¾V¾K½Wwz?ÑÆz¿»ÖÔ6˜ÌM¾€¿€Z>Pà>««ª=iuĞ>ğÑ>
¿$°Ó>/H?~;½¬ÒS? T¿;%Æ·n?€¿âû>Nà>.G>iuĞ>xÔH>
¿=fë>ûpÇ>°PC½vk?/»k¿€ü·õªÇ>€¿F™=>Pà>ƒÁ*>iuĞ>YùÎ=
¿î¢ú>}M>W¾K½Wwz?ÑÆz¿îÅ ·–ÌM>€¿¾3^>Pà>åd>iuĞ>&™Ó3€¿ŒÊn3òÿ¿ê§¯:åt|¿Fÿh9ŠÈ)>€¿<å}>ó—:çñ»>AÃ-?&™Ó3€¿ŒÊn3òÿ¿ê§¯:
ƒ¿ö‘Œ:ªİL?€¿<å}>ó—:çñ»>AÃ-?Ïö´>g…Z¿ŒÊn3İ5?û5¿~M
`»éûºÿ?€¿o¹?ô.£=ƒ>AÃ-?ğÑ>âi¿ŒÊn3A? *T¿f1 :ænZ¼©ö»Rø?€¿o¹?Ø_M=üF>AÃ-?wÔH>½u¿ak3C$Ç>™×k¿÷ª:vä
½BqX¼ñÒ?€¿o¹?ÿß<õŸ>AÃ-?^ùÎ=u[}¿… n3ºeL>Ùz¿ë®:uˆ½jH¼wi?€¿o¹?àúO<ğ¸­>AÃ-?&™Ó3€¿ŒÊn3òÿ¿ê§¯:Z¡~¾ƒ#ª:yõw?€?tn@?„ï:çñ»>AÃ-?&™Ó3€¿ŒÊn3òÿ¿ê§¯:ݶ|?bk`¹Ûˆ#¾€¿tn@?„ï:çñ»>AÃ-?&™Ó3€¿ŒÊn3òÿ¿ê§¯:0»?Útº Q¿€¿tn@?„ï:çñ»>AÃ-?V>³€?JÙ³€?~|>x¿€?Tcz>2•?ˆã=`ª-?V>³€?JÙ³€??ª~M¿€¿ -??-€?ˆã=`ª-?V>³€?JÙ³€?ş*}?å¾€¿ -??-€?ˆã=`ª-?V>³€?JÙ³€?NzN¾ä½z?€? -??-€?ˆã=`ª-?Òö´>i…Z?ŠÒç2ø5?í5?į¤»Ë¯¤;Xş?€¿¬º"šk?`ª-?ñÑ>âi?ŠÒç2ºB?F)T?êé<–÷?€¿¬º*s?oã<`ª-?|ÔH>½u?ğÆğ2í'Ç>äÖk?œ½Ş©q<İĞ?€¿ªºy?€c=`ª-?KùÎ=x[}?ŠÒç2kL>ãØz?¡Z€½È1Q<Ğy?€¿ªºÀ|?««ª=`ª-?V>³€?JÙ³€?¦Ê¿S?€¿Tcz>2•?ˆã=`ª-?°Á“¾ÔêI¿¯Á“><Í¿5Í¿=Í?NÕ4¿&L¾ºs45¿€¿Ş¿>à‘ä=€¯=?şò?2“¾›SO¿É›v>‡¿¿…¿¿‰
ö>m¿Qxq¼$L¿€¿Ê>”DÏ='“6?şò?Tª¾ªU¿^¯.>¼)*¿½)*¿¹¤®>æ¾G]¼¬d¿€¿ŠDÙ>¼“¸=ş{/?şò?W²¾+Y¿Ó´=ç)2¿İ)2¿,5>àÔv¾…ğ¹»~rx¿€¿»µë>Tɨ=Öd(?şò?Ïö´¾g…Z¿ŒÊn3Ş5¿ú5¿M‹:ƒÏÓ:hL»˜ÿ¿€¿?ô.£==!?şò?2“¾YeO¿Å›v¾‡¿¿†¿¿‡
ö¾§ı?ßÈ8< ºK¿€¿Äı?”DÏ=è ?şò?°Á“¾“üI¿¬Á“¾>Í¿8Í¿7Í¿–;5?şÚºÎ4¿€¿ü ?à‘ä=œË?şò?Tª¾i(U¿Y¯.¾¼)*¿½)*¿µ¤®¾oLæ>fA <i¡d¿€¿Æ_?¼“¸=•?şò?W²¾ê*Y¿ Ó´½22¿¥22¿é4¾,x>8ÿ;åVx¿€¿-'
?Tɨ=!?şò?¬Á“¾ÙêI?¬Á“¾<Í¿;Í?9Í¿Î4?{øÚºš;5¿€¿ı ?Æmc?œË?xêÉ:4“¾›SO?Ç›v¾‡¿¿…¿?‚
ö¾fØ?rjG¼ÖK¿€¿Äı?nf?è ?xêÉ:Tª¾ªU?[¯.¾¼)*¿¹)*?䮾ºÇæ>»çﻃd¿€¿Æ_?ˆíh?•?xêÉ:U²¾/Y?
Ó´½á)2¿å)2?÷+5¾*z>.A»>x¿€¿-'
?Øæj?!?xêÉ:Òö´¾i…Z?ŠÒç2í5¿ø5?ÓçO;ÃçO;Wÿ¿€¿?"šk?=!?xêÉ:4“¾›SO?Ë›v>‡¿¿…¿?‚
ö>ú¿¨ic<o