From c40a76cc10915d9844dfa62ddb575c0d970a66d3 Mon Sep 17 00:00:00 2001 From: avery Date: Sun, 22 Feb 2026 21:49:18 -0500 Subject: [PATCH] Awperative V1.1 --- .../Kernel/Component/Component.cs | 12 ++- .../Kernel/ComponentDocker/ComponentDocker.cs | 75 ++++++++++++++++-- AwperativeKernel/Kernel/Inspector/Show.cs | 11 +++ .../net8.0/AwperativeKernel.AssemblyInfo.cs | 2 +- .../AwperativeKernel.AssemblyInfoInputs.cache | 2 +- ...ativeKernel.csproj.CoreCompileInputs.cache | 2 +- ...perativeKernel.csproj.FileListAbsolute.txt | 1 + .../obj/Debug/net8.0/AwperativeKernel.dll | Bin 19456 -> 20480 bytes .../obj/Debug/net8.0/AwperativeKernel.pdb | Bin 18320 -> 19004 bytes .../obj/Debug/net8.0/ref/AwperativeKernel.dll | Bin 8704 -> 9216 bytes .../Debug/net8.0/refint/AwperativeKernel.dll | Bin 8704 -> 9216 bytes 11 files changed, 96 insertions(+), 9 deletions(-) create mode 100644 AwperativeKernel/Kernel/Inspector/Show.cs diff --git a/AwperativeKernel/Kernel/Component/Component.cs b/AwperativeKernel/Kernel/Component/Component.cs index f61ee9f..9066d84 100644 --- a/AwperativeKernel/Kernel/Component/Component.cs +++ b/AwperativeKernel/Kernel/Component/Component.cs @@ -26,6 +26,13 @@ public abstract partial class Component : ComponentDocker public bool Enabled = true; + + /// + /// Component name + /// + public string Name; + + /// /// Order for when Components are called on. Only applies between Components on the same Docker. @@ -42,8 +49,11 @@ public abstract partial class Component : ComponentDocker /// To be called when the Component is created. /// /// Docker that this spawned in this Component - internal void Initiate(ComponentDocker __parent) { + /// Name of the component + internal void Initiate(ComponentDocker __parent, string __name, string[] __tags) { ComponentDocker = __parent; + Name = __name; + _tags = [..__tags]; Create(); } diff --git a/AwperativeKernel/Kernel/ComponentDocker/ComponentDocker.cs b/AwperativeKernel/Kernel/ComponentDocker/ComponentDocker.cs index 87abefc..1614edb 100644 --- a/AwperativeKernel/Kernel/ComponentDocker/ComponentDocker.cs +++ b/AwperativeKernel/Kernel/ComponentDocker/ComponentDocker.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; - +using System.Reflection; namespace AwperativeKernel; @@ -130,7 +130,11 @@ public abstract class ComponentDocker /// Arguments to construct the Component with /// Type of Component to instantiate /// - public __Type Add<__Type>(object[] __args) where __Type : Component { + public __Type Add<__Type>(object[] __args, string name = "", string[] tags = null) where __Type : Component { + + if(name == "") { name = typeof(__Type).Name; } + if (tags == null) tags = []; + @@ -162,7 +166,7 @@ public abstract class ComponentDocker //Add to docker and initialize the new Component _Components.Add(newComponent); - newComponent.Initiate(this); + newComponent.Initiate(this, name, tags); return (__Type) newComponent; @@ -175,7 +179,7 @@ public abstract class ComponentDocker /// /// /// - public __Type Add<__Type>() where __Type : Component => Add<__Type>([]); + public __Type Add<__Type>(string name = "", string[] tags = null) where __Type : Component => Add<__Type>([], name: name, tags: tags); @@ -316,7 +320,7 @@ public abstract class ComponentDocker /// /// Finds the first instance of a component with a given tag /// - /// + /// Tag to search for /// internal Component Get(string __tag) { if (_taggedComponents.TryGetValue(__tag, out SortedSet components)) @@ -325,7 +329,17 @@ public abstract class ComponentDocker return null; } + + + /// + /// Finds the first instance of a component with a given tag + /// + /// Tag to search for + /// Component that has been found + /// + internal bool TryGet(string __tag, out Component __component) { __component = Get(__tag); return __component != null; } + /// /// Finds all Components with a given tag @@ -340,6 +354,16 @@ public abstract class ComponentDocker } + + /// + /// Searches for all Components with a given tag + /// + /// + /// + /// + internal bool TryGetAll(string __tag, out ImmutableArray __components) { __components = GetAll(__tag); return __components.Length > 0; } + + /// /// Finds the first Component that has all the given tags @@ -350,6 +374,15 @@ public abstract class ComponentDocker + /// + /// Finds the first Component that has all the given tags + /// + /// + /// + internal bool TryGet(List __tags, out Component __component) { __component = Get(__tags); return __component != null; } + + + /// /// Finds all Components that have all the given tags /// @@ -370,6 +403,16 @@ public abstract class ComponentDocker return [..foundComponents]; } + + + + /// + /// Tries to get all components with the given tags + /// + /// + /// + /// + internal bool TryGetAll(List __tags, out ImmutableArray __components) { __components = GetAll(__tags); return __components.Length > 0; } @@ -394,6 +437,16 @@ public abstract class ComponentDocker Debug.LogError("Docker does not have target Component", ["Type", "Docker"], [typeof(__Type).ToString(), GetHashCode().ToString()]); return null; } + + + + /// + /// + /// + /// + /// + /// + public bool TryGet<__Type>(out __Type __component) where __Type : Component { __component = Get<__Type>(); return __component != null; } @@ -430,6 +483,18 @@ public abstract class ComponentDocker return [..foundComponents]; } + + + + /// + /// + /// + /// + /// + /// + public bool TryGetAll<__Type>(out ImmutableArray<__Type> __components) where __Type : Component { __components = GetAll<__Type>(); return __components.Length > 0; } + + diff --git a/AwperativeKernel/Kernel/Inspector/Show.cs b/AwperativeKernel/Kernel/Inspector/Show.cs new file mode 100644 index 0000000..8636783 --- /dev/null +++ b/AwperativeKernel/Kernel/Inspector/Show.cs @@ -0,0 +1,11 @@ +using System; + + +namespace AwperativeKernel; + + +[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] +public class Show : Attribute +{ + public bool UseInspectorDefaults = true; +} \ No newline at end of file diff --git a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfo.cs b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfo.cs index 6f5eb04..8236e87 100644 --- a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfo.cs +++ b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("AwperativeKernel")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b0f5efc0d7c0e8575f8d65258fc04f5f6c0198ff")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+31304e9361e9cb2c8a96c5b71df5898a3a6da2a5")] [assembly: System.Reflection.AssemblyProductAttribute("AwperativeKernel")] [assembly: System.Reflection.AssemblyTitleAttribute("AwperativeKernel")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfoInputs.cache b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfoInputs.cache index 8f3302d..9bac41f 100644 --- a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfoInputs.cache +++ b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.AssemblyInfoInputs.cache @@ -1 +1 @@ -58a3ed0a72d5710615a3b290d863e83a9ed7dd9e66d3e9ec7d3e4367fd65f804 +35c328d3af30548ed777d71d5913f389ba8fda839eeb8f7de7916868a456c94c diff --git a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.csproj.CoreCompileInputs.cache b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.csproj.CoreCompileInputs.cache index ffe374e..c5e7555 100644 --- a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.csproj.CoreCompileInputs.cache +++ b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -e9ac80148ad36c975d2dc92051a6a9a191bea17d88f00cb4594c69ebd55d71a4 +1492481e4eae3b80db2d149ab088600d21214f29161b6bc87c6dbab466600b9b diff --git a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.csproj.FileListAbsolute.txt b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.csproj.FileListAbsolute.txt index 35172c4..b052c26 100644 --- a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.csproj.FileListAbsolute.txt +++ b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.csproj.FileListAbsolute.txt @@ -25,3 +25,4 @@ /home/avery/Projects/Awperative/Build/Kernel/net8.0/AwperativeKernel.deps.json /home/avery/Projects/Awperative/Build/Kernel/net8.0/AwperativeKernel.dll /home/avery/Projects/Awperative/Build/Kernel/net8.0/AwperativeKernel.pdb +/home/avery/Projects/Awperative/AwperativeKernel/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.sourcelink.json diff --git a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.dll b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.dll index c7bc86e89b43cb77cdae71edfc8dfe40e456c6a2..8a10c6c72cb11d562abbc4f0122e86b9af3f19ea 100644 GIT binary patch literal 20480 zcmeHvYjj-Ik#3!5pYE0#b<39DqWzF*)V3^Jwvn+h$d--YFUeq@a;w$08%uq}>6VQ! zHX?v?nE(R>GJ}KH1w#@Nl9@0o$?$L(SRt9o3JhchZbA|g--O(RnUxh-2{)NcuDM^; zKBv1S8ORL$xOc5-bN1d2%-`r)mAAM|#LW+kIqE73Y&Y=u3s2YC|D2p*z3DeFpZMzH+ydlo71{4;3x ztxU@QRdOF>6nVmT1vU=N&p^R zizJDMD}A|9l3$W&cZ*l_vVcUk5fpf!8}L;9E`qsQyj;HvLY9>t#KXL{;HmmuM6{|3 zl;X{-SNv4>7TvoHeWi&sh5iqxjrt)pHJfMY#$hP{0g=t-m3j)Wts8D58?_mn>sxi| zKn{GIbRz|kZPLxdFoRhPp6%m7qenx)*PC&3UO413 zi`uj~p*Bt7=C%4E?vq)hS=@Bhu%I*yt1`@a0z-%d3sK){(?3E6j4e*ZdLEqWG1`7R z&=eZto@*TRTpONOPj<+i03vc+)>@R(`^ZCSaLOHXps=O}PuFPhMAIa%LGsC7lJlTe zcPFB8y_qmm4Jd$4PfbF>oh;B~)%6&n)J~R|MPcPYkcQJ*y%o34?|Jv#cLRBBcM4df zFpPA)ou;_mj1fXos9E%UHW^jrf))}+bdMi9)m4bLm66?&Np-hp1y z$iEq;_*h$TOVJGE$f&Fcb=XQn*H+ zbQn^ay11P3sZ@tl!Q4=YnSyX>VcNV%VcZ$$rg<9t_pc#4XyUM}xCVQ7B$A$ypcGUQ ziIRQ@+B8FM5|H7}L^_vHISYmPKlt%k2|C>X_S4+iK+umAd!NoQ4`U=|HRl>|)`fGe z&pGUKo})PH70&t@ISXAgX;73-F=}on%rq|Vqvm^5ndjvNz=dR7RXT_?MALKZ(6JhF z4zbGMsdcah#&09Tc*T7t?TUtM%+UW4%<=ySFZ9X0psf$j3yNo6(D{ew6;`}pwhzxs z0+z!T|M0w`N-kJ+Jg;f35jp`oK@V{R1@3;Q?Z_2hNh>b<^pujK~kraHQ}^| zXc$U?Q@YNm5Ew_!1x3^RNpp|Dq>N!7%Am8%o~S zK%QER(g_vG66WcNJjl3NZ?%6~V=u4tWTcjW@-tk2J0}r({c|9gOWspp6U0$Jy87}q zjft`qZfBBvDfn0E>^y+J++1@;xtk{Yf!j{lDsYb<$?M;Rm{_>9`cOQy>|q|2_tr-w za{FkJu@wkJ=9>Ss$my9XhS;tIA6qvq7ctK!TlDWoYAkEAPqVaH=V+h93aOp1r!ZC0 zhM9twr+FQ>sR?$3$>U_`r?rSZZvq*zLK-H!u}$qE5ExJooO~;Ji}Whz+XaA^%o68; z^C^wjAgcN+r76o|8KErD{$=Pn2+rq28CV+;{SJ}$-@t5Y;ND{wW!2*p)nh|{-*H3J}7-V>@dwpVb042j_vUx_y7xg$ns~(E)B|o`U~Wp zdOzhf7;KIyYUlDND#t{FF&0w>N^ejLt(hQqIfe$~)R66Khtl)>)zUnI$!-=`fWpPH z6baCy7E!23eC=uEP+w(i*hI47)z}&#ejxR@-PlJvw)Syjo6BPpW81P9;jJ2PSZjSs z_dHD(>beAtu8Uc~TKgkeN&F@D3b^2Utmv7N)t0Q4p{etBOCY| z9NFy%_De$3YD`Ew32I2KLW^jcLTY@Y$RS+=_#r4)vm21s!>D32cpm-6^I zl-{I5=>`!zk+s&=(i2dmn2eZr9APd#E&+)T}5LZGlOkIa7q$0=jf zp~sk@R>EKyGAWyRpP|!Bl>D_i?`)}FCQ~bzCE}cp%^Beh|o_qL&tcNcCSEFEkKH1JfBxJCuH53 zKW(P9Nj1*=uZyW|zH5Ppil15Z2y*Ojv7W2Vlhw{rj};hOyRyI#{(}XsNiRH;z?M@j zaLfd#B$kB$vMvfcF$gXq*M{dmJxb&j?-)ipBGY6gZiWzvFyVS-I8%>czaq0p@>MA~ zvz@}yo8~*dG$tM9ztl^PIcC!UMmkx>&P;450Ks@N>BRz|sBj4Jy=`P}s3yI}JAuxF z_143sn4DK?I1jKo>(-VtLM;NHe`wMDGq1W`6TPcFK5pyc#Y1QjvGv0c#FQ@W)AkL( z75mWfgcR0VoUT+%K*%NB!o`b+{Wf4wZgV7P!#93uiIJG*ytc)8cJoF}PwnBsNF8F! zm^v2SCzwSktj3thy;R)C=qnlGP-44#McplokBo>eH|R(50E*WjN$r1&>zl6*C$rP59kwXhMJ!r**N9)@4a=3aeD97=PJxI zHjb{YT{*aqM&Mln_Bm#AOA)%VN8oe(g27(~)&6P;Y%_!Xz;q4JU{7I4A%#T_3)=jK z@>WD0rv;zZa3hU9cT2GZs*xci6~2w?SdN=x36taUmf`_!bZ}IoW@8AmXBu|d6-FD3 zLoB_1NTy%YDEe}pOf#v&OPa0?t2F-&3?dC3SlrUu($?Cxa2Wsug?^+fFllFFK0b>4 zQ3R>kT_rDH*o)B;ZG$Z)Tfpt?qJ5aqJV$3=ymNgg^6LPv!xmxos(u#%Nq#!q{n8mH z!r?}Mf6&@^LD5ib$Aj5Nkd4q4VcrpjiyLW@`vd4(%CMcB88LEchfNCK=Sy2mMahZY zw3#P+<`(NA$EF7*9Wq_#EP4)2Y zz`>^5kVfcjx?YQsu05?s=-*McX?`RTiqOwdj?fPzJx{w{TTLsa$7h75RZF0kmkmxo z7v}UTlhdzQiBN)m75Q3dqtG|d1vqs~rA^__+Ku#x{!%DLe`bFSy|1&GzFzqJwa(@5 zOZw>$%YSy1F`t$4dWXxeNxv@;moJDi&Gq&^NV^}$3Y#vCa`}%sr>6z4hxTc+sHD3% z{Z0&j4N|2f{XJx3o%V=o*=KHowXcnwv};gS&~HK~?ak2cbh-(X{W6=OFs(*y9a+(n z_7LuGE|_f8fc`e4y(`ccAi-u#Jx`#o z2-HB=k%4wB*k-JNhXg{91vG^Y1AmU*Zrb#cwgTx=<3iJ*zlg3vdRBN1($~YA%!M@3 z=|=g@@ReqqBKn0$zo%UY`X|CGQ2wo!N4icQ7{zBPU7-z`oL;OoP^Y#M>3q5$=_e(f zqTR1??Q?nq-snD|+q4|Lt8`lu0@6|EhoNCpqg?{s?EE@(1W-nxqs~C|R-7L4K6HIl z19XF;q+0V9$op-9zNtMA``Pq@4?QK&OFr}mgX{juhkhAh=v5!GAq_mphqgu;`k_GR z-M9m_ZwPb?JuXnoOv3M|V}{%M*)TDEg!nm_**kV z|5k?T;B)$H?(de#U6?;LG((`H&JVz|h8FnHS0lHgZiPTM)5oJjDGJ!KZAB-)QRZI?KJ2pMtAwp252`%KN9FDeMfuVjL`!rrex?P z_}3SG=q>B}W<9-ruBv;>I%Q6z-}=yt_Akr^YT}Ip+P!F>GAGjtfo`Vlk>8k8XmXnC zZl)ZdX>`hmR!06{&Y-$^s&09NtVU|}p`Y50m85+>^biuQtkTs9KS%$u?&!bm-=pAdsnopRz(!)E}QLBX}`_QZQCjf0ILr1Lz zw7U%1w1ECXAmtMa=xKrOo_v{eA1J>k(5IXp`+h(_R&{v!cpT9G^6MhT{Z=de%CDPh z90&A!fj)`3d7rhA4lZKJK1EAI#{vC$89HGtqW|tg7lj_Pme3PEG~YaKokuU1p%Yd+ zoeJ8Sk6Fv<-+bs9>$r6R#oJU5&sZm{l{C|b{@HrW>Y(#|Xg;J~O*_ia39FNOeW=}j z%(|Ek`OsYFxV4@>S%ywn8|YylTHripZKjhxbf5OPwUu@+R=q!{J#BSS9dCb=! z7wD+WxLq_)pieok8sD;ZQJX-Ybbf4n2heiA?ltGT)@8KGuY1G!0iZ5{?sndCeg^1D zMTyz}E9-Llz7IVL=nAS?s$@B4{KmSHR`}3CB%!lp> zG4yGH)EIi`a{{R`^w3Fxo~OUU?C+t}dEDRgw95FM(L)dT&^AE3sg5@@sM~6vHZpXJ zKsSpfdg;D0R7bt^C4p3bS$a|+)nAsLSCrIAr>!hmvL92FIf@IUD04JbpqpunwpGi~ zEFU_L9@6$uvkx5yw3in7&}{7?Z6BR4km8xAwE`)gdD`kzUQOTD^K^Mt-8Gc;>uw?2 zzJ?A|)$OMn{klQa@g7d2pIDXj!3f`mEjRevlo)P{G^)jgQ;;%VlUj|QsVX0mR-cM; z?UmuWI(#u;)YTbOhq5MR9c8Xnl!n7)mA(kP?w1ut(Wri_%Yh_1=oueKRckY*RxnED zShzw{jj4_3A_J$2zS4`5O(T|Pv`&ucjNw$LW2iOgk0O5$c3Z%dYyV%P(P;`KG(=`| zoXm#Qno?`|wbhCR%p6ktkLAvfXdZn& z@~^a*!l6InecC%#8!#_K3~izIE9^Dqpj8{q)H2btweQlu;Pa{uO*3wz_1Z(xR;^QZ zp`EfL?UabH34L9q#kIweEa-PTN44!}`{$tKooXj>oah#sncAGt-)J+nxsj9FW!jDU zH&Dy_*iPc;!K36d$BsFa4YxtUzqfvea+gE;Vn`L$Yed?`lJ?O<(Tnvyy3xLs`Y@Ku z^?n&+zm!X&fs$yTB={?Zz9ibXQd%vhrf3`8AUo$9WEXt{aXh-kAJN+A_s}nE@_tEg z7yP|so2GHCwlF#s>A9iXXjp4DlEzIM+muJwWDH}ZO~!57%TC&eYuWHZ<8IA1R~ip# zzkr564@z4oHv<1^WV`XE@P9xw|A_Pw*H%SFj4xuOUohULJ8+VEKxiJ<)`Gs*(EPGO{`L?VbZxgQ>&uP3?oU7d(iki<0pXbGbFG%?X8GB5= zlS)trwPD}52C+3k>rqZpmYPB{{d7Myht9#NYDK68``&K5h3e@lq|@jIq_gQ(q-pvF z(l&Yx>2i7l>1ui#=|;hKA-zbrJ&arXw$MyX_-o90wv;>klrgKNoR#z@KV|&QQhvx! z8S}7|cRS2&MA8Q(eOA)lQNc_4tfZ$Tok`2EP9CSv;O&11Ui^yoL+xL+dOfMn(_8he z`fmM3{Vx4YeS)#ZxYWoRMdLo>nDM+}nH+@;e2-+}_KA1>M865uV70j;8b|tsF%fAv zJQe9Z;aN!UkED?{MsSge&j>kvGQyNadl};mPJe1#fb?}|71G~28?iEQAABk^YO~C6`g`!mC<`!mJj!i7DpG# zCR^+#J0utnLK>3%alkhb<|!EkSAhn!?aP&dc=n z=K!sC2L>}p z_3z~o1en!se}7Jx6b?DW5I2bd?}Yx0lK0XtkHilyd6}#ZsmK5RSn1S&cui zpq`$AT(Owho5P?2Bhz~JRJX{3Jd*;;wxk_Hg;IVX*F8L#TbC*HfgHRUTI;z3K86)U zdvm28){+#ev_?f#RKsZBnfG8S*Bh1wJv{|(x3#cyun&V+i@z6PXh*Klm-7_l58f9> zx)4XF)%|WU=NCl4$ABV~~RM z2d`!2LF?>4N@`VBW`O7COL+{1I&-~4d-vwNRi1lLlns*s4Rxr3@=8@^&wwI5@ljCq zb(C<8-#Y~Qa%m^qu?+d_WzLmp$8}jD=iUZ-`-i*pCCt)ti|&jE*i_;vKpE z%ym+#st+XF<{>O(OO=K}g#@j_aHYa`9l@9Kz4`upsj3zRxg^s+l%sBM7#^a^%**r3 z2c)*+;2?rzDSseGo8e!i+>8T8cV@2-ajB=Lgmkpiw)nb1^kDm6n(+!;RGkD+x2s;= z!2Q|Nm_Y1VJ*haZR8J~_VZfeExx!vlmFI3%MBJS5iu*GCfk>w8I1d``610v~qglNAn=pvix@9)a*EzkxxU+_ng6^pVW zIwWTMdhmfjbGbc!NM|l?p%1glEzp|lvbjMiZ5_-Nx;M65nlJRZ2cfJM3~T@tFt)#l z<+@$k45!a|?598?LVEBRSHa^LbmoftOYUHxs7?98wIXp@V=8Qm{>S22#!3c|g4H+Yxr1Ff??67A zD~_#Z;W^rr>s8!<64@t;90J*>MH#&WNmcZhCs9C9?&*=~p$OprMKuAy1d&`B2Rnrl zco%7lOrJ4Gi9Kr$U{&n!K(m_Hu>K0%(}M^Fv>(WWp;Y;|NU2Q2ol9h|fY{7H5U8VA ziKHs%6=`RYSIt3LjyiLDGDH0(=1{h+8dMd?Q+sc&uNtHJ8->XRo}k)q%Xk=^3;~`` zTYIlTht!p0_x9%&=8#t`ZS{O1WPb%+R(C}^3;VFDkHuE`o#;Vz7O0^NK?{&UdGnB0 zDZ5zV2}_U%NnGB`$@JgCf0EcShzZt*S>Mf&tahDV=3tdwN7<9Q_PGaf^64m+W033x z!B^#h1vln~*}>Lam&*>ZTLe*?Its&nH#y8xcNi#CRDg+>HygLGY&9>i%&a zy>>h`Uua~&Ef_(s$eo2e1;|!{+(V!!0ox~1B z%3KLJYa9RcadI2>hMaI6FA2>akE_f|WeHlo7F+`Rv(NEd3wZXShV{VS$)3Qv7z91b zJrjSs(t`3qjCK$H-mwGP?MB{(v;+AiNH-zB6!{M1Ymg$hBDfBq(0p*3McUc3042x$ zV;&oEDWpw2Q!U{oX_B{A(; zVKXtt3N3}V_;`fHdpExD$SW&nuK%0M{`X^#ov&>rGpT8g0l6#`;&BFJQd}nKKs01d zOmt|m88IhjNeOtpo+2SDkxV#xBB|HZY1)iNnwZFFjbuc$7$YXe*8pO4C^Rv#UQ5*A zpQAfES0rj|h2uWz3Ei^@G2Edh@^}G0qn^wNh(aNQdvGR%6uBcT6bHvgF(H??Ba1=S z_*Gggrcx(KT&O2YU~sRe=)}ZjdQ6eqNv&S>u7^YBjD+K$x7rY=y52~Q+G^HV~1b5Af za7&gy@1WVp=Vv7HxTe%m!hg&WOrR4jHa#e#1zvPPBIXps=khW9aKQ;aGp0lH)4>hG zg-jiac0z_4ldWtamSi*}=#3@|Y<@;GD<9(0IUPugoV~)gP68h?0Cpya!hU;2==f^Z(Z_l%hQISyh(>}=oJPE@0{wdS z95Dyby2C9+<&1|a<{?v>$5>cT^UxD}CFEeG0UNK=e5J!JS=|_jCC?};!#7^)KG+2dBgVcRaE37Oijfy%+<<+BX9;N00w#!| zJ2r08fjKZ$k}PruU^Ap8T9u$leL|gP1XIVCv=M(gt|b;bA(=yoq*8GbmQp&#iEFA)d8sw3vv@p@Oka0I^#ok`key8CHSg zL|R#gGp2KlYSmzD6xf*)h!=LN#$7}KvO)wURm_4T1|~wRF5!fgc7XvYFv?qjO*rDH zjFkdtYXe$AoK>z-Z7h7DjCg^5^}0q117dt5;iVujsti@@F%wm~Xu#p3hR%E$`JE}A zm`Mo6xT9vjQl6z_`kU}ChVkVPxJVHuNlb_TX^H8$rWQGpTo7%CfmbC^KzHD(vooWN z(IeW)T!o98DVW4a5&jyK?U3^ApmNv&SjX`p$8aE@gKixs=nw_z5HD-hWqBiikJzm@ zT8x44D!fxdem-;-&etE0hZkw6{Pp-LVPfODq54 zo$nJJZjl7VM10ja_O=2a+-hX0I~A%yKMV0WE&dU;Y1AS>x@}=w>*Cz9wxtVm%d)+T zvhA5=OS4OQ&s*5HXG#0A_Dox5XgE<9{wUewXRafCH`i&`nRL2v+GO$kb7*wHxn2A*Sd~H zOO}!^0)5{XfrmNx&x^k`?WWBBX_MOG2Qif3cQ==l0W>-ufo`!{r#J9vq}TS zEG(asD<*04ZWEY{RmW&<{{?+S8sKk&a< zu6%S@>u>zmW5c@#n`!>dA#T+zn`u6t@^LyiED8aA*?b;MHORzAS9MGt&*?#-X~nqJ zzr}d_1Rdaiq7+Bl;9$bX;$e(PZMT{KnKttqWpmF*x_%L1gYXFY>;%4uBMQqhI7-$( zg;y&=EWe>vN1#ijry?LeobzuXwLtFR;s1RUzujhy@qyh#&d0sV2tKIK798^V=*+(q ztfS$Ogm*x~g|#vWeeg*3;z&{gO%l%z=@b7)2Ent&xz9jmhWI+*gLPNkx3a@F@N^-O zx`3#R;)8jiJNg*DI@NGlQ_W+n1}pkYQya9|25l~ew98Oh3Ybe-_{Jin?HI{2V6(IY znDbEE2fthb{4%L)L;X_VGN8@?&%buDUk5yZuZ0HCu3wI+?=1)0@+11~R{zhiN90S& OkBH}gvHAZ-1OFF>)!lRe literal 19456 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 XSE=9A|4M#4_yO_!|7`xRvB19qh^t|6 diff --git a/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.pdb b/AwperativeKernel/obj/Debug/net8.0/AwperativeKernel.pdb index d9545457a1721fac040bdef75bb1b40fd00c75e3..9d31f2439650acffaf032c30d351521aae757bf1 100644 GIT binary patch delta 4100 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 T*{98@diijcI(uZ-+)4if2o{n1 delta 3335 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