From 139b80505539d69a3cc66df6480431b8cb5a8c4a Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Fri, 7 Feb 2025 12:32:14 +0100 Subject: [PATCH] - primo commit --- ...47e36499-a976-4ac4-87f7-0d96a9c3b5e9.vsidx | Bin 0 -> 25412 bytes ...828d5703-c62f-47b2-907d-b3f891f62570.vsidx | Bin 0 -> 37759 bytes ...b2ea713a-8221-408a-8d21-5ed95b655ed4.vsidx | Bin 0 -> 30927 bytes ...b6ade251-2b30-4eef-84d7-9d65f2fe34ab.vsidx | Bin 0 -> 35281 bytes ...c9d252b2-8443-447a-8da8-a468e7179fe2.vsidx | Bin 0 -> 25657 bytes .vs/Effector.Plugin.Lib/v17/.suo | Bin 0 -> 137216 bytes .../v17/DocumentLayout.backup.json | 171 +++++ .../v17/DocumentLayout.json | 171 +++++ Effector.Plugin.Lib.sln | 22 + .../Effector.Plugin.Lib.vbproj.dtbcache.json | 1 + Effector.Plugin.Lib/Constants/ConstGen.vb | 66 ++ Effector.Plugin.Lib/Constants/ConstIni.vb | 39 ++ .../Constants/PluginConstIni.vb | 51 ++ .../Effector.Plugin.Lib.vbproj | 163 +++++ .../Effector.Plugin.Lib.vbproj.user | 10 + Effector.Plugin.Lib/EgtWindow/EgtWindow.vb | 360 ++++++++++ Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml | 4 + .../EgtWindow/EgtWindowV.xaml.vb | 301 ++++++++ .../MultipleCopyWnd/MultipleCopyWndV.xaml | 50 ++ .../MultipleCopyWnd/MultipleCopyWndV.xaml.vb | 19 + .../MultipleCopyWnd/MultipleCopyWndVM.vb | 66 ++ .../My Project/AssemblyInfo.vb | 56 ++ .../My Project/Resources.Designer.vb | 62 ++ Effector.Plugin.Lib/My Project/Resources.resx | 117 ++++ .../My Project/Settings.Designer.vb | 73 ++ .../My Project/Settings.settings | 7 + .../ProcessManager/ProcessManagerV.xaml | 67 ++ .../ProcessManager/ProcessManagerV.xaml.vb | 19 + .../ProcessManager/ProcessManagerVM.vb | 75 ++ Effector.Plugin.Lib/Resources/Effector.ico | Bin 0 -> 86392 bytes .../Resources/EgalwareLogo.png | Bin 0 -> 21836 bytes .../Resources/Fonts/AdventPro-Light.ttf | Bin 0 -> 74224 bytes .../Resources/Fonts/AdventPro-Regular.ttf | Bin 0 -> 74120 bytes .../Resources/Fonts/Roboto-Light.ttf | Bin 0 -> 162636 bytes .../Resources/Fonts/Roboto-Regular.ttf | Bin 0 -> 158604 bytes Effector.Plugin.Lib/Themes/Generic.xaml | 56 ++ Effector.Plugin.Lib/TitleBar/TitleBarV.xaml | 21 + .../TitleBar/TitleBarV.xaml.vb | 3 + Effector.Plugin.Lib/Utility/Command.vb | 69 ++ .../Utility/ExecProcessManager.vb | 649 ++++++++++++++++++ Effector.Plugin.Lib/Utility/GenInterface.vb | 76 ++ Effector.Plugin.Lib/Utility/IdNameStruct.vb | 97 +++ Effector.Plugin.Lib/Utility/IniFile.vb | 65 ++ Effector.Plugin.Lib/Utility/PluginIniFile.vb | 65 ++ .../Utility/StringConversion.vb | 66 ++ Effector.Plugin.Lib/Utility/ThreadData.vb | 90 +++ Effector.Plugin.Lib/Utility/VMBase.vb | 12 + Effector.Plugin.Lib/app.manifest | 80 +++ .../bin/Debug/Effector.Plugin.Lib.dll | Bin 0 -> 623616 bytes .../bin/Debug/Effector.Plugin.Lib.pdb | Bin 0 -> 161280 bytes .../bin/Debug/Effector.Plugin.Lib.xml | 78 +++ ...ework,Version=v4.7.2.AssemblyAttributes.vb | 7 + ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 2057 bytes .../Effector.Plugin.Lib.Resources.resources | Bin 0 -> 180 bytes .../obj/Debug/Effector.Plugin.Lib.dll | Bin 0 -> 623616 bytes .../obj/Debug/Effector.Plugin.Lib.g.resources | Bin 0 -> 586632 bytes .../obj/Debug/Effector.Plugin.Lib.pdb | Bin 0 -> 161280 bytes ....Plugin.Lib.vbproj.AssemblyReference.cache | Bin 0 -> 1482 bytes ....Plugin.Lib.vbproj.CoreCompileInputs.cache | 1 + ...tor.Plugin.Lib.vbproj.FileListAbsolute.txt | 21 + ...r.Plugin.Lib.vbproj.GenerateResource.cache | Bin 0 -> 84 bytes .../obj/Debug/Effector.Plugin.Lib.xml | 78 +++ .../Effector.Plugin.Lib_MarkupCompile.cache | 20 + .../Effector.Plugin.Lib_MarkupCompile.i.cache | 20 + .../Effector.Plugin.Lib_MarkupCompile.lref | 6 + .../Debug/GeneratedInternalTypeHelper.g.i.vb | 65 ++ .../Debug/GeneratedInternalTypeHelper.g.vb | 2 + .../MultipleCopyWnd/MultipleCopyWndV.baml | Bin 0 -> 2058 bytes .../MultipleCopyWnd/MultipleCopyWndV.g.i.vb | 83 +++ .../MultipleCopyWnd/MultipleCopyWndV.g.vb | 83 +++ .../Debug/ProcessManager/ProcessManagerV.baml | Bin 0 -> 2324 bytes .../ProcessManager/ProcessManagerV.g.i.vb | 83 +++ .../Debug/ProcessManager/ProcessManagerV.g.vb | 83 +++ .../My Project.Resources.Designer.vb.dll | Bin 0 -> 6656 bytes .../obj/Debug/Themes/Generic.baml | Bin 0 -> 2361 bytes .../obj/Debug/TitleBar/TitleBarV.baml | Bin 0 -> 1117 bytes .../obj/Debug/TitleBar/TitleBarV.g.i.vb | 75 ++ .../obj/Debug/TitleBar/TitleBarV.g.vb | 75 ++ 78 files changed, 4099 insertions(+) create mode 100644 .vs/Effector.Plugin.Lib/FileContentIndex/47e36499-a976-4ac4-87f7-0d96a9c3b5e9.vsidx create mode 100644 .vs/Effector.Plugin.Lib/FileContentIndex/828d5703-c62f-47b2-907d-b3f891f62570.vsidx create mode 100644 .vs/Effector.Plugin.Lib/FileContentIndex/b2ea713a-8221-408a-8d21-5ed95b655ed4.vsidx create mode 100644 .vs/Effector.Plugin.Lib/FileContentIndex/b6ade251-2b30-4eef-84d7-9d65f2fe34ab.vsidx create mode 100644 .vs/Effector.Plugin.Lib/FileContentIndex/c9d252b2-8443-447a-8da8-a468e7179fe2.vsidx create mode 100644 .vs/Effector.Plugin.Lib/v17/.suo create mode 100644 .vs/Effector.Plugin.Lib/v17/DocumentLayout.backup.json create mode 100644 .vs/Effector.Plugin.Lib/v17/DocumentLayout.json create mode 100644 Effector.Plugin.Lib.sln create mode 100644 Effector.Plugin.Lib/.vs/Effector.Plugin.Lib.vbproj.dtbcache.json create mode 100644 Effector.Plugin.Lib/Constants/ConstGen.vb create mode 100644 Effector.Plugin.Lib/Constants/ConstIni.vb create mode 100644 Effector.Plugin.Lib/Constants/PluginConstIni.vb create mode 100644 Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj create mode 100644 Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj.user create mode 100644 Effector.Plugin.Lib/EgtWindow/EgtWindow.vb create mode 100644 Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml create mode 100644 Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml.vb create mode 100644 Effector.Plugin.Lib/MultipleCopyWnd/MultipleCopyWndV.xaml create mode 100644 Effector.Plugin.Lib/MultipleCopyWnd/MultipleCopyWndV.xaml.vb create mode 100644 Effector.Plugin.Lib/MultipleCopyWnd/MultipleCopyWndVM.vb create mode 100644 Effector.Plugin.Lib/My Project/AssemblyInfo.vb create mode 100644 Effector.Plugin.Lib/My Project/Resources.Designer.vb create mode 100644 Effector.Plugin.Lib/My Project/Resources.resx create mode 100644 Effector.Plugin.Lib/My Project/Settings.Designer.vb create mode 100644 Effector.Plugin.Lib/My Project/Settings.settings create mode 100644 Effector.Plugin.Lib/ProcessManager/ProcessManagerV.xaml create mode 100644 Effector.Plugin.Lib/ProcessManager/ProcessManagerV.xaml.vb create mode 100644 Effector.Plugin.Lib/ProcessManager/ProcessManagerVM.vb create mode 100644 Effector.Plugin.Lib/Resources/Effector.ico create mode 100644 Effector.Plugin.Lib/Resources/EgalwareLogo.png create mode 100644 Effector.Plugin.Lib/Resources/Fonts/AdventPro-Light.ttf create mode 100644 Effector.Plugin.Lib/Resources/Fonts/AdventPro-Regular.ttf create mode 100644 Effector.Plugin.Lib/Resources/Fonts/Roboto-Light.ttf create mode 100644 Effector.Plugin.Lib/Resources/Fonts/Roboto-Regular.ttf create mode 100644 Effector.Plugin.Lib/Themes/Generic.xaml create mode 100644 Effector.Plugin.Lib/TitleBar/TitleBarV.xaml create mode 100644 Effector.Plugin.Lib/TitleBar/TitleBarV.xaml.vb create mode 100644 Effector.Plugin.Lib/Utility/Command.vb create mode 100644 Effector.Plugin.Lib/Utility/ExecProcessManager.vb create mode 100644 Effector.Plugin.Lib/Utility/GenInterface.vb create mode 100644 Effector.Plugin.Lib/Utility/IdNameStruct.vb create mode 100644 Effector.Plugin.Lib/Utility/IniFile.vb create mode 100644 Effector.Plugin.Lib/Utility/PluginIniFile.vb create mode 100644 Effector.Plugin.Lib/Utility/StringConversion.vb create mode 100644 Effector.Plugin.Lib/Utility/ThreadData.vb create mode 100644 Effector.Plugin.Lib/Utility/VMBase.vb create mode 100644 Effector.Plugin.Lib/app.manifest create mode 100644 Effector.Plugin.Lib/bin/Debug/Effector.Plugin.Lib.dll create mode 100644 Effector.Plugin.Lib/bin/Debug/Effector.Plugin.Lib.pdb create mode 100644 Effector.Plugin.Lib/bin/Debug/Effector.Plugin.Lib.xml create mode 100644 Effector.Plugin.Lib/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.vb create mode 100644 Effector.Plugin.Lib/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 Effector.Plugin.Lib/obj/Debug/Effector.Plugin.Lib.Resources.resources create mode 100644 Effector.Plugin.Lib/obj/Debug/Effector.Plugin.Lib.dll create mode 100644 Effector.Plugin.Lib/obj/Debug/Effector.Plugin.Lib.g.resources create mode 100644 Effector.Plugin.Lib/obj/Debug/Effector.Plugin.Lib.pdb create mode 100644 Effector.Plugin.Lib/obj/Debug/Effector.Plugin.Lib.vbproj.AssemblyReference.cache create mode 100644 Effector.Plugin.Lib/obj/Debug/Effector.Plugin.Lib.vbproj.CoreCompileInputs.cache create mode 100644 Effector.Plugin.Lib/obj/Debug/Effector.Plugin.Lib.vbproj.FileListAbsolute.txt create mode 100644 Effector.Plugin.Lib/obj/Debug/Effector.Plugin.Lib.vbproj.GenerateResource.cache create mode 100644 Effector.Plugin.Lib/obj/Debug/Effector.Plugin.Lib.xml create mode 100644 Effector.Plugin.Lib/obj/Debug/Effector.Plugin.Lib_MarkupCompile.cache create mode 100644 Effector.Plugin.Lib/obj/Debug/Effector.Plugin.Lib_MarkupCompile.i.cache create mode 100644 Effector.Plugin.Lib/obj/Debug/Effector.Plugin.Lib_MarkupCompile.lref create mode 100644 Effector.Plugin.Lib/obj/Debug/GeneratedInternalTypeHelper.g.i.vb create mode 100644 Effector.Plugin.Lib/obj/Debug/GeneratedInternalTypeHelper.g.vb create mode 100644 Effector.Plugin.Lib/obj/Debug/MultipleCopyWnd/MultipleCopyWndV.baml create mode 100644 Effector.Plugin.Lib/obj/Debug/MultipleCopyWnd/MultipleCopyWndV.g.i.vb create mode 100644 Effector.Plugin.Lib/obj/Debug/MultipleCopyWnd/MultipleCopyWndV.g.vb create mode 100644 Effector.Plugin.Lib/obj/Debug/ProcessManager/ProcessManagerV.baml create mode 100644 Effector.Plugin.Lib/obj/Debug/ProcessManager/ProcessManagerV.g.i.vb create mode 100644 Effector.Plugin.Lib/obj/Debug/ProcessManager/ProcessManagerV.g.vb create mode 100644 Effector.Plugin.Lib/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Effector.Plugin.Lib/obj/Debug/Themes/Generic.baml create mode 100644 Effector.Plugin.Lib/obj/Debug/TitleBar/TitleBarV.baml create mode 100644 Effector.Plugin.Lib/obj/Debug/TitleBar/TitleBarV.g.i.vb create mode 100644 Effector.Plugin.Lib/obj/Debug/TitleBar/TitleBarV.g.vb diff --git a/.vs/Effector.Plugin.Lib/FileContentIndex/47e36499-a976-4ac4-87f7-0d96a9c3b5e9.vsidx b/.vs/Effector.Plugin.Lib/FileContentIndex/47e36499-a976-4ac4-87f7-0d96a9c3b5e9.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..a5e4af21b8262b2da10ab99a4c58013febcd3b0c GIT binary patch literal 25412 zcmcJWcYsyZwZ`|Ii|r1IT{M=VDf(arun`1gDvZnw!^}`EfQU$>30MgV3YI)InnaBq zyRjq~TZ|g9M5B4u7;8{t*Tj-%!xDVoZ=LU6$GrESFLLJl&e~^}wbx#2?S0OSwRIym z+c2ey=_&r3v|h%uM72W>sGqs0ZpKju)E|22jOmN!Ehybow$46s=B&AuO|uUEKg(+8 z&0V-?+T2A856CKp+&Fhum0dw2hF-|se~wiyfO9l1c( z`(_1aO`q3kdE)luQJWp}dYA9CMx6$lIc@gQ(-zEVnm2P^<@~ubI}i3n*JYIhXZ}A8 z)G!aBfmk;{#oF?Ys- zS<{OF+Sw7fKl{0K^-D9p(;9WmS~Pn`&9nsv6mLq|pz~m>w!D4Kpzr2&#s2?gpl_$T z)cw(Mmk-cDE4ydI=S787mP=*jX+(KCy^!9{rLW6Vm-4i0A?=t;8@=>F$)!`H=7{WR81sc(+B~0@ z=F`AXY+3<(KBN8%X;vPqx`)zDA*u6xF0G2C*)o?d%pq!-q_ga%-G`Ai-;Fwz=w1^Up}9!OsKC;9s*u@76}F708>w=qr&|4Qdei!9?c^%O z>95G8^;B3C`-US)RJo?3S;+Fj>_)RIP5hf#$BM5j&Q3<_TAscvq#5$4T$)mzq|Z-d z(A63!mwH5p(qVQX-Csy&<#5h@Lx=Uk?f*}2pIY+saPsMe)GwFb>1?{pd*!rpR}Cje z&HS@G-B(Eelyk<^vNe*gYDTKVjf^RWkw427iw>q`S{h4ME0dO`^|i8zY9Hs)xI)@e zULm#fsdqjdt+C3|6qz*7C?{z3QyNi7SLITl%&J+8l!bdJA|&S106D5`Tb5QwB+9U# zN|St=Ur3eV|F##z)M^2^wwYciPEG-Xx z`bR43qlsrL9yD_hoUB9XYXG^kxphm~>w ztwl`17R$_~%F?PhqFnK7IZQrXtB)VySks75Hs z*%VEQBs{n*wHDHQil7)br`XS@wOOCCPgrAIdHN`q9#n;twu(?aRUsciG_fq5D2EAC zE0b3jlUtV16qpUF7G9(kSNKoJr_WS5=9TN@b$i4{hMgl)%Ctr?eMQPAu@JVf3@$Y? z+lHU(ep%%I(h_K)WvenxHtf7YSvM5ulS^O4bgE1G=q8p@mXV31r+1%7!s((Y1K5tro$Emk274(HVD<|xpLiRgwrQ7>2Q5?0C#J56aYQe5Bi^k8wy>REL- zkSLoeQX<5Z?i6C0>^~zZy&Ng=t~?H)lvR)m6^Ls&!#Vl%e5k}gac0ok5$53om#K%$ zdo@Q*Tw#(+%kzw-&Si&+$h6Yufy^J&Rp~yKzI)N7)qkO6_R>uRj#jWb^5J!{n#Y8> zrp81DXIp@BtWuwB6$?5nTiC5LMRW@kWv5zR*%O@2J3NHInCxuzNeA+@|g+a7%q^3yMN<>R@>BJoUDEe+y zDvNzYc2idxPDT*^u#kFa#8RITeM(mM#$2+qrIy}3%M;`VTJb_UDbADfRryjjuP?QE zEV zv^$5RI&fk}WS-a{#%lSr&=Je3tbIp)PE{Qh#;&cxZ6l(Gt7oYZ&Z9wV5~oDv1f^4@ z9&%`4V-gy!|X_m0@Xl?QaKPU%2RDlYX* zI!bAWSO}T!#8^=6gX%=yBHfn7aPkVRqt<1GJSWFZW~&N~-f15%gqz9RRXN+ZrJ>xW zLJs!rNh!ri87;&JJqmNF2@cSC^9|=*DwRs+(v)RP87*9>TP|%P{loc{YW9`$tGBEl zg=g#qa=Z;RRxX{TB%p0B_Pf&QsI=m2ol1$>VZQSzJ&t+u5N)FxXo@B%qeZ$dB~lqd z3E?@dR3z2vlzNwOP^p$;aeC3y=jD^(ba}+-X*Nj6jUyA$>F7KSu9GZt<%U8WvMC80hr7d z2Ujdpp0?G#qv49lSxGeu(%unb>TPKj-SX{lBpFBHphBIvpude%z+GT!_2UeH?(P|68P)Ur%IT~#ujbjYW%xpZBq)Fdiu0$sjtAYhD-1o(gIy6V_AxYAttx%%AD6n)l_?(>hQU z&s4AIbf+mRbs~ePrV?OyyH@02O*X>z%Ay1J4?FKE?~*fX zP-z>Jl}%(=t?x0VS*tut^~(9m_F7r_N!Yd`0%U_Q{t2b}akkVsP}wz`vWC7gTiiHM zF=h3sWTng>uOS#DQk>kc^8u16Xds=e^g^VKJ9cWkMV|uVUE z&{M;bN@2I^$cGAz!JYOgy@o62E7dfFV`!`jH7vt=Q*&vQ^o;#QFNrFgpJNDZ?iIRG z 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 literal 0 HcmV?d00001 diff --git a/.vs/Effector.Plugin.Lib/FileContentIndex/b6ade251-2b30-4eef-84d7-9d65f2fe34ab.vsidx b/.vs/Effector.Plugin.Lib/FileContentIndex/b6ade251-2b30-4eef-84d7-9d65f2fe34ab.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..6f794ac9b357082c8384d7f7791e00ae993ec0f2 GIT binary patch literal 35281 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 literal 0 HcmV?d00001 diff --git a/.vs/Effector.Plugin.Lib/FileContentIndex/c9d252b2-8443-447a-8da8-a468e7179fe2.vsidx b/.vs/Effector.Plugin.Lib/FileContentIndex/c9d252b2-8443-447a-8da8-a468e7179fe2.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..0506973bd869a760119d43bca208db073c911e93 GIT binary patch literal 25657 zcmcJXcbHYx8SWQnj=lFD5sA#`I1Gp-ipo?NndZ#E0BR7V8pMX(1VoM4d+!BHEWzFd z6=UxuDk>T^_TEM1zQ1q1hvYub{V&hebBp#VdAv<@dxkTFk!;@y{7GZz>pspIxNgbL=X;Z=u@*=LH1cyaNdp;!HX%3h85 z_0zMjo&CRMKWy6MDU+uiwtM!WeA762%6R+dnaGD-mHe1*WuOTr2XRlzJ+wlr*fCEu>k6v~(dImC{OOX{AD1vzRU}OG_0~ zuVR{&()z`;n#@8vra-EhQFM<&(odCHHHw>5mM$x#=R%9hs*uVeT-W;DAJ=Na{6ZR} zgk@=~NIpRsmZh~K+vZT^wqhaGM=F)II4+dK!;!zxm^@eg+Ast_q+6zP&RhE{I2=n8va$YJ? z`HDjNQz6YLq%R`A9IH&!w8k>->f+r(sxG7r3TczLwXgDwiX9ylTRr0ZR!pi!c_A&5 z|D!%97t-ixk&5mq2P*UU6{KZp)gEc(C~i{8!$p~;*13TZLQ8XBsMAL9L6CtokokNGB%-)vOpr>&RVY%pjGb`V1>e8-+7(2tP~>PtyA_vvQ!O80`&r z>6Ru@ueeqPR9iJcnd`1Hl&POwS6xig!!zaCW4S)DR?Lz!moz`zby1PxG?L#d(3R9P zQq3!*<5WpiEPUIpOp57TwM!w2Ag5{K#CTAiheyrvd084J4@6^+QDb8o{!&Pl#dKI9 zEr?V{MXDLma3#@C%LVII?ghC^<40bS^EHCV0#RRrtKvXVuJui|K@@+k4syqdr=< zmH!omv`rzM7JL1m%=rbek&G%zn#aZA_k3x$_DRPhyUL>U{pR=*R} z;|1y_kG-#&#~#JFTUDlzPK%wZJoj>u?ojLYjHPvEsZ-qb zrABETJEV}dRu9IgJ|&v-xDx6j+&i|A2ImDK@|h9t(kNANGqfhh8mnrQtEEw^Beac1 z+qGz`(4OIc#niP%j(R~uNHtfd_l)>cH0Hyfj1w(}v1rJ98o+s~&MGxl_4!+*RdPkp zUCp4a|I2|&t6RTnKaJ_20l*ZFK2lGu7Wq67A#%b;WofQrCboO!GbhIIYB82{{Hj*8 zm?OGSRh6^+uO=(E^RbD zvd#?3c~D+mBl)aCdQq9gSkmez*Hx!9Q*l!270#imDa{YpX$Yymw7=ukNUkI^;(B*= zO{wOJ^HOx8T&n8z)CLy`wHj-o&;U?iN31;B)>(Pv##ndQ@#;n)Es|W+4 zIjkG1TeL#$%G;JIlTQ~~K;)AJVdia4;i{GPh}^}hs)|;eyw_-h*2z#C`ciSByY;aS z9~Zt-5_v#th@4rY3yrAK=v4z}M4gpeZTLZBK&5E8=3JqXtPvZ-;NhsM#@kWRKvh-6 z$pf0*3&YzQr8Ct)4bF(KP4?GtZ>!?VpAo2veWM&=N7z*vM#6>JX|Y0H8%N4@!^tY5 zUE`$4a&%fTtx-&WE~fcqX|rN_D&~k*Gqp$qLvB>g8vp8R)k=%WW-&NtrZgbdc7>~@ z8c4(9Lh;qz$7`I&P}D=BcP^dYBOkRwIoHJQqoKmwDWu;@=g9}6Ey_)qkJs!DpUV}R zS>p)a*-54aAJ{!g0QAZRME@zfD(>YPJ#)g_N=PPsNlZUJ7 zrd4j8C~hsaU4D~?W2|b^;b@^_TOmy^OZ$ay7w2J|JFc{UO^iijMj@RP6JL2QUr4tV zl1@tHYK!)r?131is)PI>56gQ!;~*-{fyzOFy~C^y|EoLXMuuym8oI0It1`+~8%G{y z8h&{It84P9pgtx=K8VW68WPH1lQ-|dpM9yl0s&{+=Z>vNt5oJoH zJY$`?F;At)N&`USc~L$#$8h~rNz{<2u=Zc2&0}6;NqMq_mS(qnuC#LLyi#oyhrn=P z??nB*sA@o}*WxrXR~3tb)OMxSZ`s%-m3GNW)w^^8nGs#z^6}I-D$yYdPe-@TVg5RG@}O)IkI3Zka`V+ctzxQ~QYMa0LD3e) z)EHZGe%IXXOgV@ct=EIV>7JO_{`wpyRPxp_;Fvagx(U7wf5(%7^N%e5KJ|qkOcy#0sNF zBuz;T9<@TVd+8Wva++3AnHo!zB2WY1kw~tr%OkNY7A8bykttnk%dx(YAX?RIEIjsc7n;o@J@85=MW$T1d~v8A+9qV<#zj98q|V zizARsJ(6f{svwTRDY4?IH( zDxg7yTeR}T5LGkBg);{i)3t>p-_9$fK~eeng|v5pr<=y;1s(D=0#%cqrL&42UFEuk zdB`cxXqWD)*LKr9D(#pWND5K4^ZEbM@Y0f%MDtox?1L!cI2EmN6&~9(9!xme#Ud~> z95PY9l|$q=bw`x0Z1w0gEc#1r(Op$Zu3l4HUS3P%39dZWXPwjJRSjb~M{9+0SXu{f zokHc?IDYquC0%Wlf9{JpSgqj~NtU=>)l*uHx`Gbsx|PRLOv5~VZc&wD71GXrbd;-c zqAlRlaLDY)JWnMZS~iZ{R3gtKv6pEd)Si;hT57vGj%`IJiU_ZXzE-EGjl;AmsuiUU z)i9H}Od;vnHrM0|q zRpiq&DN^bchY&eXy{T}$uF<o)rf(MNqZ#iKTeM7AgMG z9vc5BS8`4T{imaJTq{A?I(CMw{DPz*uHHrlmp4~1wMs|$O6JPuDyFIs_f`Ag>ZTeI zww{xNygR0xwN1TI3R|bp;Cklz<_6}5BJKE{?TyWz<|d}x81Z_Gw7HMNwM|F<6%Mbo zy`@rbyLLeZ|WsQ*aJ*Gl1BV(%|AGNdvgbKpt+;Dlex1w$gDAI%{sH*Y%m+m z!R8Q=dhcR;sM&0`n5|};*>3J?c9@-Jm#H&+w0pSOZH_QUij=>b?cL2iOsyu7ezdu# zImR4o?q!ZM$D0#G@}FexZB8+#n)`{2tNqOb%mYoG6yp9t=E3G6BID$6+ees3nwof# z?l0zabB1}8Nd1nseT;dm`B(Eek$8Fziu_J6^|B`HlT4iy!al{+%fqlwGfy|qFwZp4 zGS4>85h?FH+vl4Xh_v@&+n0#MyUh0G<`w3Z=2hlw^J?=N^IG#dk^HW=eS>+U!~br3 zj(M|ri+QVgn|ZrPes|iw%l19C?=|l;?>8SX=bH1(2SxIG*!Fz$5r;o&`!Vxz^9l1w z^C|Ob^BIwRpR@hE?H6soWcwA{|1@7UUo&4f7npCDZ<=qJ3(dF9cg%m8@0#zK@0J zx`RuJ`mxOimk}Aq%iCVTT+v)fq#di6dc79uR=2&T?X_&LV|!h5J#&3?1CjhTvi&=A zV~1~IZtC#f=I_nT%swLZ-rV*UW~IaRu_o$SEfy7TfW!3^8R@q7{T)Q=v!m^uY!9+s zW7e8=X1&>9Hkx{g8u>NZ-o+ehHk&OX<+h2mqeG;g!+pQo_ea{+TfbntPe!%<<*~bE2uow8($5xwl9?r`X=doNDfC?kCcY14ZH=B+?!|=|+Bs zn@5;Oio~C8dxl85nYNEMk1>z+{o~BzMbe+-`zM?F(h=dO+djiQ(>%*O+dRiS*F4WW z-@HJiUKiQE*u2Eym)XADyu!TFyvm$yUTt1uUTa=w{>{AJyurNDyh)_pH`~6&yw$wT zyxqLRywkkPyj!GQ_nP-R`~h>WInR91e8_y*oG((JM@8~`+*k0MT9c^Xa$me+T1oK2w5A$(f?;nDCR~kIk)a#3|PdCpn&os|6 z&o<97&o$38&lmOM+j8W0k$JJhFSUJ{NV~4IeU&-eyxP3Ryw<$V{F`~bd4qYQd6TGL znq%JL@LSE>%-hX7%sb7y%)8Bd%zMrIME!W-AMKoL&NCl0A2J^n_2aEVeet;g?iYd%{|RABIWO8dz?AmoM7s6ZKT&r`ru@9 zZ;|vocX-@g88EPlKHav ziuq6TRr59Tb#sCFhWV!XmbuV;ThuSTYx_O(eUWy2V1DHAkIhfaPtDKF&&@B)FU_ya zug!1FZ$--a-u4gXkLFM2&*mcY7xP#1H*>K_e){4O<4PaEg8HHw;rb34_R{7uranEz zef?oa++V@e_mHqx5|uSyb4#}yt=`gj}h`i1=@;xtBT4)Sm#weSHEAPBbTpl)Ja>Kbcb;KGpWV=6>e> z<^kq`<}~vlQ-5+93ujX+g z>GXj-`sE~tpX~5cZJ%cQ4BPr*8s(p5o^76Eo-2~?`R0WV*PpsYx{J+A%uCJ7%*)Ly zMDn@H_H6TN^BVJ7k#Tjs?HfeW-DLakqJHUC3Gwc5_?;s0?zVl8d9Qh&Nc_3B=a~&zaAgFZljTwqG`1armpYUo&4f7npB| z1MdmN&uOjIdn>}>c#x4_?|3z~tb7^xKk$B6QD>!^bk^W!BTwPSwX>H$M$6VK3 z&s^W!KqTLdMAB{I@Lmq@ZTt7;W@aC=+^jG+H@7e=%`MF;v#(h#QhtBiTiM>)+}8Yq z?{9DJU=B2QGFTNhJPMk#hEP`2OYrzJHMIgUv(CL(RiP(jQ^_Nb}F; zU(D&|43YRVZ69qOV;<}K$C<}F`~>qv^Ca_R^Az(`^EC5x^9=J$^DOgh^BnVB^E~r> z^8)ii^CFRUTw?oD^D^^t^9u7y^D1+;d9`_sNPgFe^vewnztQ1;w>`)AZ?%1!dAoUs zd8c`odACUZ_nP;cbA5lF`Jnlb@6WgWi0wzs#~uEJ`K0-j`Ly|r`K*gE2|EBqt$oT)4?RQ1e{oD2j=7;7-=EvqIBKd!2e&O&h&9BU_eg9kY zdx!sE{%HPW{%kHXe=&bGe=`@G{M~xI|1k?@nOQWKGM6@&F_$%$GnY44Fjo|5=gK1f zTHWDmm}{DAnQNQti1>4Tk@Oqd-q`jgwtL&&Or#xs%yP5B+}zwkB)=_fSJ|$%-OucA zZednd8j~=0tOnNPYffdx}UqrrO@u+|S(K zJit8AoMs+m9xPJN!)+g79%=sB{EInVq}-!y&oqyA__5}3=J6u+KFRheBID{*+o#(; z!#vYG%RJjWMd^UMd$hs=jX>h}-ZkD8B}kDE`JPnu7ePn*w} z&x+*tg6$X0m&}*VSImE!ubQu!ubT@*{Q0Ksx6FkOf5-N}Y`Vu2j++7N9M=o zC+4T-XXfYT7v`7dSLWB|H|DqIcjouz59W{NPv+0&B9V6fYWp|a{2^+r|7O7~GmGX@ z=F;Xe=CbB;=JF!_vy$zV%~i}*&DG4+Me4Pt?X}Fc9loyZ_009n4a^PAjm+Pf8=F1N zO+?Ds)OK(4_vU71AG6%7FgG{1Fe^p!tFrx2PZ|10ZcV-PZ$)TjTr8ZghsW!Ah+K?JU2Zy$X4i6n69jyDk^gmoDpQgm!X0calNj0I|ZB2F3cHKeA zzddzGJ0k6{)T!%krP@?>tCaA~lxKhamF<@Lw@-xkQ9U|zOsUDl0#?2?~HspBmd5b z)2aV0XSuvjoZ(R-o}|r{`mahM=#bEk==G}5y6`OC?JuuX>A$U|{nG&HHp-2ZwW0N) z&C*)ctx9#O3FU5`>WmUzAF1jiq(LpMl6T0hF+%7&>Ooq@3EC-bj#SN&10JgiU!mlQ zmr$;?Fe$!5hlCQ2$52w?E0jFDl%h(0qbk@pJZgwY=R|*W0NS z#$`olrIgg9*;2Y~=xFsdeH$+QOa$N65AuU_6VVcHEJg@ z8LKGqJM=F~s*Xs-e5jF4oX!aEiaK{iiPWq{@hF!ujN+NDsDGFIU!(u1AtSj)J(ZPq zjfmVvC~i%xXeg~?Y@_&al;YDfozjNTCgoPE&{pX#3Zrkb5|cD2^Ri7j(`T%htWmY9 z$>31JN2-13aMhg{*>kxab+Va5>=S5tXhmpcDCVSbl(o3^;lyGq_k@{Tb)!pWKa0Uar2^+NGcX`Nu#Vosy% z8_Whq0rh8WqLf0P<0n?fQV&yS@eCu6ZH;olpb$X zjmtwx%ee<7Eqg<0JmF`q={Ht0v@(?V!=ff5v`Y_GUYz@xm1t9Fb7*@g`x__L!O=pL zIP9@`pByaDvQM)nF?RB)I$!6}L=N-`+9l=rg7MAWCe?7T>dAs!^HAb)5@Y9R4s8u3CNl$V2_>A}6wTM9Wxk+oQdTZBUw7-88dC3y z(8^Fwz>FE5A6k`Hm3jcpJ9a*aaLwwC=KU(~ex*H)KBli2F=(5VnTO^+q)+I7yiO`c zAxa1%7|qv|-Xaf`)^27r*QCzACSR^e(W-w@QgPZrnHkJ?loMZT+C$2k&vOwcFxGu^ zXeg-|W9$<=F=C_K?Tl2+M9yv8Wp72P6(ymxgZ@PcW8Y+@qbz1$lh$0WS$Uf@gBs)P zl1~FQaVDshvOe?7HZn?Xm9j>0R%nurR-Ms?&>Yen*DayMA02HPt=e+UT<0kp-AT$* zDJM?Oj1>{W?!zj~ipYN5thvN>K9?{?x#o$m#^J5#9_ps&7s8SB#e@Z6EtU>icp?TIj^FG&=+V9=P4gQqoi$$yUcQ~ zDGPt1qojB;j}eqOj0==Fw4VH^8!HS-IG$v0=B&!D$_~v~V+#Pn6skD=29> z!=RMar94n_>k5xCemKt&pZ9DicUfuw?-hSUlsF>1%5!C_MmA;bp>>awM@1;3gE87B zn~>cHNH=CvcI zr7ayApXg{QD=kWV%0P+9_(7=&BZRXfy~(UV={3ein|wq}PQNI<-yPoIJj69Qv*x0t z?N&QbO6v{}cdI6}pRviCC(aOcq4}K(r+(ICP8B>+uqUE~)7SWmaQ61RyP|}%GqBEa z&ALU&T+F{H<-Hw!**BDt&fbKQ12Y9BK4$~o8Q=p}_Wb^UCwS%-{z3EeXl-1R z8z%%bpZ@cCn*2HOqO3l-{XDU8O%2)67*&+c3W;~fnbQJF9XNHOdHo_j=Q740G3l4m zQyi-zp3U<(KYLI*J(4|+QVQb^Wvt=5+|2wN>&eN^9t4)^Xm+ z@lG_q|I2T%Q1ao)h}oFm`!hOti-6{ERuTFI&27%lvgF*L@k9Hm!;mPKxrZ{%$b~0dxhrfesNtJO6&8< zGVh(NCZ$@^n_PEG*|XSFNkz}1>?)jb(Uwrw^{ObBKI5A8l2a2pQkwT;#y!{EWiLZn zLFsoqLTx!uqNTS)Tyq{_hN6_k3`O(!ro{Yqfj0!K*X5zqy!5=w4Ca}zw3;(d@IH0n zjEIsmD|MH~12IcaA%w7svg#3^wG<_s9UG;#?3O6`{AZ`)ni}T4g4La##(T`Jyr$CY z)S34}Xk{pVD6MvR1)^Nipwx%i$@s!=v<#(IrCf=_eCJIK=@`?z9Uvdx3~=J1&V21d zDKW3+e8tRf5K7M&JeBA7wX7Nyx~4Bs#wcG&(IzRLWYp&O@(poKTK003dT?4mIkVs| zbXe#pDXm8Hdtq|mtcKEVW*?c6df9xdoTAuSInj6P_9{9P(oq5VSphi(-*Aav`{b}8!v+8D|cKpsy#L-7p8j?MXLq}qvc z8sQW+OiD{p-b}E&vFosM&{Dpj@J5+uF0@O^9)WUdV2?oSLhD1@LOZ0)Xuig^%11nx zp>3hVq&_N>^33UIY|H z2X|*&*+f)i6a^U$DMQY6v0=U8A1~Gzsuk|*70-q(2L8jB0sdZmk)Nsn zrvXd=IO*3KD1lx>9DgapR)gCR!#!b`N9}39PB3g-sOya-f?fK{@3?x#9T9>b&|YUnoj3<1Lge#3^4 zVYgulB@sbtVuqybt>EvOhILi!BciGcdQ^P)DV~Gr&Lr~Bd`}@Iag;|0(1#TG03k&< zwMXDzz^yg^ZbTG6MviS0ZhsevSKQgBYw+zj0KM`P-L~QRm4Md(P6fOgZ~~wSuo-X^ z;6%X704$f+0xW=60T{a|{?y`KDmS*%=``*c z+-CvoN$k!00S5pF0fzvu2V4ob3h+|)|E=%W`#*}@u$ub6Xn%qZh<-2J+5gW1YygNp zrR@Jl!=3&Ad;t4D$AHrT?EfN;lkv>{-Nga7dVbsng>c4>J3heC`s@jaqvj}_>F@< zAzw75;EHyj^$?@r`Oz&)UZ_fmr=Z8(z>z|{Oa&pV;C#H8Ni-R3(s*Ae(sR@JMXn3^ zQ@Y=Qm+z(>wBTpn3SGocT1OhlG!*iubiWHP-%mTlkbm-=DW!)po{vfApJl2QKlwWH zXuS0PFIvu#dDr`YY5H?G_y1z_&jpIi`Ao5k^WTf%fzw&7^yjVcyOqo$E{8O(OkjlZ z0oR0r`pe%-{hk8+) zubg{pEr0TDA_hD1O1Vb_7%A_Nr7n~Pu{^>^RSHjqFO0tnWv>-KV-w?FvGyqOE{X>8c1FlcI-H7{5fSUmy0npz^alaMt zvGn^VaK8=kNx-I;09|L{@VEP`%{RzO&((nI?`;&mD06z!(0`N58mw;aZ{tNJH0K*dgAD*8D z{08t_!0!OR2mAr>KY-@|e*`=a_!HoG$9T71)r|4iU#87u8c#!j`H0sJe)ql@k1pW^osyosJpr!s>)KN>W9Dj^>q93jGzaIUMw2+q;{3Zi2 zs9&Q06E`n)U)iol0Y7OpFD>|+Wv{Bgiy8kn1OFrG*tFm`6_J1-|5CZjx!0Eemjge? zEM9F=pJT6!p$$gy>ydh%+z*qory{?nqyCS__j2$n+rI;Si7Rhmi2|@+2N!y}3*Wd3 zR_sFiuUZEWr>4_T%&+*S#GgxNNL}Q0P|}~$D}nXEe{>qR*7oOuf0h|9vHnMno1Cto za^!$>)5g@Wo|G5)|D)ir9iSDzGXG)Je+;rd&VT%d5zIG6@h7K-^Pqa9kaRfTUl{3C zN)H$|*UgLYbErYCvEKDM@BcRYKK_fp4gKa#ul?~CYL40VNKJCOcIe*Ex&LgbeJ>fn zg;pe5Q|b11N0rmCLrOPsyO8o3m0XmQujR^rJyPa3{PuxUKKk=3FTVDQb?ZKJ-H(kM zF8EgR#J_cabHnxj^7>Hl_D_>-%qxW%$UzH@!Jn!y|7;5aHUPJH=AA=?^8J|f`^#{D zIbaLmIKV3auLQ77zY1^y;MIT=0Ve@o12`FQ3V{9eGywUvt$=NS(*b7y&IFtVI2&*d z;9S6Yfb#*h0JiZuKs|sw2S)`HzznbeSVrVS$Sv9cq}v>qb^tB_DD!ej&b#uP2j5x& zZGd*bPCy5s6VL_N1=tPf2J`@W0eygezyQDt7zFGA3;~7#mjOlqmjhl0*bBGGY<0!#yD03tv0>E{Eu9|Rl%ydH2R z;3@$14ya|2K&(Ds$Z#Fmlu6Jwm@&)<7)LvOvi=jU*#ErP1jWdFDg5+(d^-DL`Fk#nmGe0YtYM^zoSwk09^ZE0x8oE0gVy}- zhu>#8XyMw8+8;-&;`oE;{itk3p58hh(08ycer3@2{A^gq6DUOzYa+0%Nj{L(pp z*~I*bb|LP$W83{Jl>aWYF0qoAi3j7>rI9_ON{|#00xW%}=z$ex={iuUEP;z4CT$Jsv)W!a{ z8J;*cYQ_H_@XN85m$vff$fka={4d0(a?1Z) z{~&O1R1$nQ%OUqNFCzcz5edg)Ud8Y$*WX)F{&CQZDR3XkdVu_+iu@D#CavYqp+}TI zdz>HfhVjRCKPZiOlx^hJGySMj^_zlAwfK^e<|?QnJVXl|3F5D|tBv z(BHD#Upe?o=_9lJIS1k#hjk$GRqS34ezuQd^FQ*R#LM~CV(?#$aBl#-5pWIQO#m@> z5chwA+jW4q0p1RH2jHE6cLClFcn{#cfPV&j3GhC^7Xb|aaoj%y_%Pu5wA+oi-vqcB z@DTw0eH8aw0Ut}he**X00G|Zh4)|BVrvRS@d;#zoz-Iw>0vP^txZe%h%>9}Pk<+gJ8%n2C{q~_1n!gPomt3ErbYdQPmvbzn zC-VIC&F}us_{fI_&wb+O-}&LC7hiYm6Q>0IuX?85_=y|#eeqNCm;692=jGP_^%dsd z1%9#Z7oaSLJ_O&J zodPT9&q;7P1E972JK(n}9ZfdB(T{#7>%6i)xgRNk-dIcqMEMhCjjt>N|1A6p{&x>z zr*xe8ruOSJ?&QSlKzSP>|8auDwM+MOf^%+*>HkXlv)KOMFU=6-`QQjRbdDIDKXBHZ zk@>&+C-?mCC%@bJc;kJypAmiYd!M`3cHxh|-gex%-W#^eUHG%4k(p8N^%>XV{ofmT z{8?ozH-Z^^6qS1oD&&u77;go0{%SNf5g*%`a$UoSt8U?k54;W?G+Vb@%m+QbXfj0h z$hl+09ZtDIGb8TN(NG{2Pb@stcSongkyw3a#INc$kcvbjsrixqu|&uhboo-g`WgSh z12Q5daXFIr1I*bc>n+S z3YC9u`%~s!jTaby!_~glbvL~4xqHsAyybU$+w4zOzhleIuFh+=eCXKIJI*Bwo0oGf z{9mR0Pi_A9W~Aj>z*_)s1&H|{$Bk0+KgxDF|D)dz;Qm2?a{hM%-o^ayyLc8oZmr!P zM%o_%JPLRW@IAnKj5|NXoq72Y?mq_n1n^V9;{eV{7n4uUWB(t31Kn=`zXkjb@O!`? z0F>oE2lyl4dBC3le+K*o@K?a!0RIbk0q}RgKLFB10qM=1f5>f)JUmCq5O@#j=TbA6 z9KGy{;0xDc(F*?K_&Wd7vIxSmUa8=Dxu$Ohn$7THLbq#DDx911>Zh# z=;0^d^P8J~{o^NpbmdK-7`C5u&0U{7^Mq4>`|;F`4J3dIB_c{jIXYx?Z3a-63g%I; z6brnERwmIXc*LuKx=aS{GR!lA3qAXC!&Ye~!v0T-5b_tgag|A6rdG93+d+oUb*z2{Xm!hQT}*j$p6&lGz$c%jEU+34Z0eQs!STBOatar z$&@daN{&cR?Xk#W5(>(6t3CCSBf(uef^M z{TqAZv6it^YHCMALozTHn)D^>CnJGGJQ*KN)d%8}4YQHh=v;%@Xl!brc%wnf_+w4u zP`i=;Zor2|fY$Nn7Wn;DI~48J^&6p&xwa#uMF7{^^@H+;Ptd z-}%As9q$@{&o6%V5tRYiFHsYECliluz1NIb@p;U)7hwEId;CzE3B zzQ*(7N8en(-}auPNB-?)e}3-j>+jzC!GC|*SC2iV>-zJ?p8Vk#8Cr~&;!d~nt{YdV z{ZaNxeTBmLmuI{$|JV25{+g3Nw&SSOW6j6jvA*Vwx9)$_P%!xPH~xO^B@ci5re83( zBKP86P6<#BO8$%TOSN_8?nFEgN+!E}F<&^87|DM1b}7lXTJVfGMV4jc2~`T`U$1}e zk~!S#Uri>EOD7`!!ZL*!KUcFd^pi4$-0)7UstjNUrgCSspfnscGm0;nCo!5HI%wN& zS}qM3ucYEp_A<+L$Z;{5o?=Z$txql};AB*BaVFZe7{h2ILuvn&Yi#11em{IlKvicEglH-eA1}LORJiuj4}oIvfY|i*L;0t)LE?kl)vh;Fa@q~d=M#c&xHcn{GQ4Haa)D_v)29(HCny@A3oiF zAt!qOhc35r7A1P$5z_y2{~SU3{}qmEqCqW6|9@djStj*=G0nM{?d5IZb@$a+Xw= z3NOG4Q?0%xp&%H_vFmw6K3^afB?yIknAtFQs&)xR$PKeFZjx$7SB0v@|P= z*(p4u!gxh15T$oA;_H{R?zyv>Hc%7TL!RrRwDOgm9&B!fL_K>4I#+TgrQOQZ=*sqg znu>o}<3YK{Y>nD~%92YUqb0A6@FDhJ7t8+|vHw(d{;`E;!TysdEV`w4#j}xWzK(&< zvI6A9tPKCUH{IPc^q+71)RwIt#|yW8dG?gc6Swm@CrH-o!8HCF+`nzPcjEGagU|Y{ z9!K);@B7L_@9J{~@ND^M)w>@!HTpE&?|f|NXv0;vJ~4B;$1&e@G`2HNUbYR-f7<>7 zn6Y`NY68zUj-7~Q*QwGUo~XORfDBj!I-22+=c zZ(8ok{JTK`GIrKx(VuxD%63?0;!3sH9d{Az0a?+%Z2+^u(dFqs6^QC#A7L@!McUnn zM@labfiwJ}s&77-3Qg8KKANE&TSa-cTY5ycb#Pjr`lb)rnc!bRu+7EHs@;_@djlc2E1G3@^7` zK4q>-+!%}2@B$;(@VT!^){K|OAlme#bqA#_ckaxljRfjjaFiSc72hh^-bzZgAEJ2U zF2iYQ?^PV50(T>t@h96?A%&-X3}JV~3yd5&8I$-#SqtEWOJPsh(dR^aa~AhG;B*JucQy;`C0n8T&HaLg<9s^HJAWBqdor++6lF1iiK=P z4GEh*qEN?mh|Pf(&TriPza8UhFX$IfVG}NUrCD!3C>qaVU>r&-t&F7` zyQS?CC$}4+yCgp{4U{S1=}b%()l_?zJmvhby*L0?q^(8z+b)gnM!YuxGe>$p+Z4~u ziszPvXZjQV%~DR~u;ep@yCv&c#BYIbYfic{uS}uxBGq7@kb4eym8$F!Cqt6^a_2SXFtfOsb`pzrCv}f4Q}W&3ib|shPua=MnakbTPU<WCOV=be;7gP3dt5mvSbnRz70|f zVwNrC$QFG_bD18&mD2)E7`bO}W|@d_gE@{L7CFwB<7mk{?FyBWAgrF+ri~1a>0B$| zY4O_YcyT8Av* z;(7=}aFkSHr5ojcN;jF$pk!B;PRsnIoNBJBYw=s3W3O5rk8BY=jPl`14cFQO>C)j^ zPd1+H8e)8ul@{|O=Yw3byz^Gh0VP_+Lx~ZWI4J8Z zmt4VM4^aYBejH+wIq>>)3T2z80V#xhE+GA}e${02#Y1f?5Gq%S$vKx?KI+(MZAlG# zemuD@x#zj&>+j@BgV+{m2|rr`#GL5*KeDZU>h2Vi&ty(4#3SXH>1RyL zCqr5!oYb##;+fx=t409p)&`&S&D1&Y#Fh3Yq>Nt~+6~_=h?lW8;kyOD9z5IN&Jwo4 zrww0OAN0d#C;V9P&K$D5Ja}tFY;NhP33zyF6l=hQUxv5iD^tgEraSTR-H7l;JTtT% zF_Akx+*e>YpDon)^Ve-e?^h5KLwPY2qCuRsYEMTlH7YL+g?#J!Ul}d6BT@fL*Z<%y zo7~lRQbAq+LzX>h)mqi=Pfdp>pSRC-DO69o{>SRk2q-j~m7^PQxN{$?OBaB0@O+*} zpP_I@qt8%Q>kMUWt>0#^Y~|9z{Iyo$Lv7|!*mt2>M*eE8h(C8mQ8@0xUkXu*ZJ66+ zWDJF#a%CCW{>X(LX_{i(sh!_ti+a-+v`5K$~ z{U_I_T8)+t#X1%{;*~Mv>nr8r%dPd&xJvsd)G}7X`U&OzE=b+EO3{dCt^`oV&lLy{ zI3lhVnDNea06YGSl26L*<#h2ja>B-MIcl7p_xq?L5^?Kuyl!&Ik!mbCu@1c&()32A5Dc1 zB^?lhLt)>AMv461F5=In9EIa9{G|}3*oFjW&o$KEO3zM$h-a;i_(Eq_9{KY}Yx%oc zEf?}zsE+gXWwUV$9EIX7=B~DmzErilmN^7b!qj6@YQ?MdH`@vBjI zb)SW?7OLshzzgcSG)J~BjdE{+{M_es!_L-f(r1#$Jx>E*XXjO>{kO}~hTi&83D|zy zzI8Ggh$o^EzgGKgkw8aizCS(@ie2Ql*?f(G#wJsX#Tqg;w_LtmM6R?#*XB!(rF{Nq zXlZd>PV#kB+UDFQXMA$Xmk1>`5nEqmf9P1G((8*(hq`@{MAER{uzu4C>74IQ1S2tD zbRo#|#cby(qk;82k-;@zdY4_!Lyv1HBcL3ohUR%T@U1{8v9)d98wtnaiICHm451kw z#V}HHWL2zx?no@g4KJW49+5d`TUkF5n%_9XURJgK6cq!K3thi@BYY1Wa5uW0&PKPX z&TY3j>a13qtFFavwAFbU-EMQE%WSjRS`Hm_dpvGu|L)%U?#_YM_FeUz?T!%@w|cLm zyLb1_nrb$}zoHsg71cN$+i+{uvS2#MBjj59U2g9}auyy+q;;gf&E4hh8)-X5ZI%{f}@IQ%!lP|h^^(7od>~#0_b=h~>Tiv}Q*{@zXBV_ifo)a0Nk-*QdzKnDY zboRG*ceyOJ8!(#qe~dO22B)i~rf4=1aCSRY#wN-x{*;HPmdc zVk2XI=;2!2k3O2tHMC$?!>zhitUTetg6FgcP6KPGb6>?G5gud|QVi5jt>ISXEks7| z)!brvSq0}T<{f9fw=aOB#k`Tw?B3yce6pJRXD2H_py4c&T$EJ#4OW1%Sf1>Olt1oE z1P3F*)L1pQ7|vCIDd!9n^)pcv*~`XGRoeL#z}^;$gvV0V+)q4F0s4YRbgE>yGc=m2 z<`VQw1qc^g+WqmV>emAIYz4T>YsR9U(ETB?(6mcvS*0z6u>Ce`2BK$NNg(c`pYAIf4yW=^=Hq%<}DAM-*V}u>N)H1C*Jtrzu@VCzd!%PDIX5t zY53i(Pe1*a5T0%ezZgCLcXmA8_g8bvQ5W)Q_ETT{)jdOPcxvu>=HAbI`bs=~=}vd` zc~76rr`x`Iyzd@2o}RwrE9)U5BTu?)ED5K?@zQ-SXisL@wtzU@v#_=#r_RM%$*>l=&DN*+_8M0Eqc zotOzGb)V^EDn1GEO|aUS9a4dCsM>^Y$7e!zCnA$L+@Rm*uQub$tMk4%rcVn7bP0qlU??VY+IV zfEwc3LbhKKryH+Xae5?&s$*JlA570*j#`(#)_`z78n0j;&@dbR|!&V9F=4Kb|L9&;pCWaNiouMN+b($sBxs zjpTsmm!weUN!$Z#s_b)9J_n5+>zd91&kmcEa`25c+Ij+#Z7oqV2E+YpG#?R=U|L~j zPyXf_%|leu7nwkfOreMKJfXEiS49gFREf4zqHDS~Wv$gwkca@Q&FJ$9= zRzn+Jtve+$J5t0`;r&=b!>L$Vgbs_c$m|~}ROeT$;e3|P-CETZmHBs>x^Z+_n{B!SJ$BYN(p)0BYir4QV_XQI;${O3R42n90tcmJyxF zN2QGDEKcjY0ZVJO5E0_awOy!Yp@Szk6xy?MxKgd$9R|hn8ALgjl8mg@kxFPc+elwL9xkeAizk-{$hH4Ys!6#*aeVDdj&Etw z)wg2l;%ql2S?AU5fAh3Cp4>}0RiXB!wZ3)x-}zj6zDuR0EZe8x*?>IRy9+jDcs5}e z?_5bMP78GV-=$l-ZvWeicBIuBAk|z-`IVNx;ZJ#K2`A>~45y5PdJLs-3JzO@(}GWn zAF2na?M~JAEYb>uZvR`i|6R^1M4?`sZ`D%tXU=D|hZ4OXfflavVkks|R)hU--TtS3 zLc!WQpIE+%0%5)2d9JW^Bc% z*ScEE%cmM5zCx`kpH_(wxhN8mbTJg zZVl$fll#8hwY63?Hj1s-=l7pokm)JUc2}#>(xF(#>j1ozF>q^3b{*&9%dPd&xJvsd z)G}6s{6x3^soVct%OifSZcP4YDtsvEfJ7MZQ`mQ*Q6j&$i}-UXN8z{&e$XA-0EB-Yuf#m_Z2wY_vButY4| zi(d+DY*D+pT2X5KO}GD<-TO=T`?W>kv$b_}`=6q=^|N&Kvvim9EZsu(Kf{q&JxpYd zOeNxhP%=5`i^1?gBIk8xvVO*Y@ZbTn(`agR+KhEho7q`sGP#U(&CO0rozZAFI$KO8 zqtV)O=%Fgt4kP}w8mb!|4bjqAeRouv&cW82ZvPXkT%P4M-Tr4P;frqH+CA-$7PHiP zxo-b+32abYez|V{Q@8)A!B(km|8q%fy;fp@HOJoPk!b((9T+i-+W(}5pQ83ZX|X2l zff_Zs{ZDda(_{}j!5+FZT-t)07Nc;w{ZHNgCzyNH_M_IO7H1GoxBn@oPz#-N=?Yi3 z|5<_#YO$oK+y7jcxiKrU*ZTWud4T@T?^U$$+Z!v+y8v&+kb8y1WgpZ!nT@7C@A6|x_A zxZD4$#suy%!{zvm!S08!2835!)s%Or89nq%=XXeFL{L98_Y$Xkq>Uc(Jddn7B2V$a z84<_u#16HqobwzQUhVMMjc4M6hVvY#n@XDv)FBpm*>DzKG@j@12b_CKol1nQGMuf= z%FSl29`CCP7J|}SDrB@ zrL~M#D$R16oRwNw5ba~OjB@_e3YBvTX6mSjEi)BbOZbU(E7J?rN;uzb24s5NiTHzuhaj$aYCp6FYS1%)BhP2?nFDkqLr`F=|4?0E`7P?k4k0mTq`uX#<3l1 z9A!bS+As0SOmo@eCpaG(y{wGi7HQGSk^F4^%BE9UW~Il9)sxn>Qom2EqWYae`;Mbu z$fiOkr5Q@bROm{VsIn!lbXv6b-g{SQ_EV}R-FZ@kZp$(Eo?n6{v`a1JK~cOoloLYwQM_!GR|${%i&po?75WTNQnVGdKU; zUi;zt^?!W*w9Z>^ z2;TAj(|*@d$fv=eJv?P^8Jo{s{pERvTmznxY&6C(NE-|n8P-eoM=p@gH9deFH3FRY z#(z${@hqeZba_Q$T$C542MuxL5ME0@$LrhR2nPuet|*W!LF7z*%mNUxXExf z{4QnME^=)?y6#EvI+CboPhYTt;E z{Bz>mMy)LY;$DQOwetvic?e-gF@2Wn|5)4$=Z8lfUtq`$Pg(9OzB7OuvGi3I+H2MR+I=?AosH8~wkMW&*mKzwR`HWnPod7qK=aIyW_V=~#DPIGge#pFV> zbT%97>=vt|&SP~OTU-_w8m9Bmcb7GnnyM@({gvhC=gXR(W$R^S)!BEJHIJI=tT@dm zD>pw_*4#LEj9|lq3v^LzF_uhZ z(Phm*1@(eKAR0-{k3?dT(MU8@MxA_lS+k_6P8Of|$Cfqm6;QU+SZFeo90`YFp+qE5 zR^PvOS@Wc+LMll8PnR|I74(omJeExPVyWba%=$_1=q_b+m2WI--Za(B66E4X%bJS{ zYDka)xqiy0WM5m>jA^Q#O0)3&Wz9kbb(3j#i|9A^Eo-hcRZK7GiH9m$C?_g%)&vgnYjIc?j0A+ycbtMv|*xfs8>}Utt2lrd7bg=K))z@omwl4(!|M?3vi<@bygeCERWEV-a_wue~=IYHyFU_O=al#P{^aY);3JXJT%! zBN85r_W63lc1uTXSF^_)>xvD<_BFJP4tI4&{VhE$17nuq&e}#>W20riEjnX$Oom3s zT(zO@T7P8PYK^-BNyq&Dwyr%5wwCsx;hBknWMW@KXJB9ROwiIW9Cb7dv^KaJ&GX$o z0lPhvaP^1hn)Z2S8rFMY}N&4*_9!Kqdr`SgkD-nx8b+n$2xvqdNy%_w-LBrl(!zsJCl(L(BAd zaI|ZGvZ2p1o=iA=j>(3J+UD9W%h+UmbWduRt!bdg-H-}5jztG126ve)q0mHsIFcIn z3|mLNPG_`tr)xND4fs7XbD@;Y;T;NN0>+MTZ)=r|-R;Ib!wrtEvEk9)sm@)|sV;M8e{iNPmYVO1 z3`Kf+Iwp++J-cK3J@)C4bF_C~!>oC9)RY2eIqVN~2Ws1*dt7q^;n`qY-%dxz&aQo( z;|>1UPK!4hGj}FXZpm8z#6;WZw9VK%V{K|_o{o1ng?l^3hTGZ`dz@pVO`+I)ciVo4 zy>r&Jf7ragt-(Atm+*P_yNrHYywTzCw{-4v&zWZXJ*ENc=)S1K+3fB$85?$42B&P+ z=}BAfc%rt^)YD`&4xXZjW}iPYw3ew(j=S`W;P!zKOuln9VWZ zAM%>^&rWu<_Ih36o>^aSU!*rRYYR5)nhJRv8v1Q+M{T=3zGtAZy|H_$BiTQ(zb9$$ za`f)+8guTC1QU+=Zlh~@U;pkFcdxf&cf8N-jdlhD{-Ge^jn4P^-ImzSo%=kd{$5i@ z`+zrQ_jQcTw1wS0vyq};_(XFEN?CU4Na&lR*; zeUa8s$lV|I2d9kOczWtNIz@7=W#W8DZ-;X|EPOn#w{kF-WXxC79sC9IwwR>l(t%_??=}+A5BQBS|RP&NdJEn@7N-j%W zdwe#(lAd$CZrS)IDRH*)87C=R)hbO_rE?8^y==MUFqN&B9petC2Bq~vP9}OP=oAYP zap`g)%JbFw!Geb@uPcjPpB(6u1ATI!PY(3Sfj&7XH92SzvjN<%1km6CFPEH+DX-! zc1cyH%3DDjm*SCBaPs19P;2W&{I8aDXzl}+CR5%bS-vcYhZYM>1DCE0vP`-KnVum% zm8S%@S!$K(-q5`yy+IMB~v4!(Pz9>tq4}_(#wU7fY{L}8wbgCQ8(>2f*qB)M(5PFi;rMeDR-JC zuv3y&ep8Y;fhcxkX3SO@q`kej!Uv64xv?KICGDf6QJ7pT`7V{FPsXP_BUhwB=_c># zHW;|a^Ntltsa%5DX5wzETA5Po&oZUfiW-hdwH(3T*i6kH{Y=m2=Dxk_w{7ox`u3+D z|Hh>g&-=aB7n*lOy~fr%=jMk7fL600$;yE=^T)DL~{eOY;sX9K@Z-!+gz07CZzDj6-uGD7Aso< zy?2Gu*ey{KB~Nj{Z7Y=O+#aZ;Z0fzS2B}>sx|W+-_D*3(#U)vw5O!1yhK)$){VPLU0U(&&_T;~<3W!vnoJMn|G;1^@Mn+H zg?Tyhgi3x)jYm`VNLa51io2G)ytSn_w{^Q=qLr3niqUsLLpDf7Q|JKD-2DyIO=F1u z3MMxy`WLcR6jM@tVQe}Yz1Yw)mP$?SXlO_Vu<+qa)=x$P8k^eULlXZIuhFcAEG_%~ zmer8SWma5MW^r2}ny8EUuz!2X7YOZ8nV47B1Pjqm9sqjp3eCTYQIb-eqJqz=ez&#j z4cB(JJ@&oLe`sD`ea^2Q{K%hLFWLTvZ(nrQgMYsLhb-mXnHAkK*F9@6|AJHAd_$e} z*`7yZZ#`v0WAuRG#I2Y9$M?gmA{nw1OTiyPvZvPc#Xcv}Mb^EVQ3#65HqqD_iG8(Nd zhaOsa<447JJC?zaj{|dSzD~8u&?ON1G1wBOC>Y>~JZ8@ZGuvontEY|#%FWt1AZrV;aZKs>I(@opy zrtPQ>lDUq-BXw5w>u@fCGjYma9DfryG>#`PPC(yitHF!KMWeJwi@(y9g1U1E8)9-a zHK==Z^NMNNmfBe+bZWU`{GnBwN`3#EHm&N+z9;UBNui}u(=nq-kolg!f9vbZRQtEA zkp83CqatjR3jM=)tUO)Uh_sI(jx$izH0tI4bIZxL>&~gV;YY__z5S{7@AjA>J9Q?!KL;`l=_~n(a)XME45!G)3!2gFXNWo-t>KVvg($4 zi_rJsfEAKn5bTTq!;P)$^C-?@8#l)m(RcwuO@^QdAmK4>k~ z;`{7Mk0V0oU!Kz}{XRTxy;6+Y#Yf%jQEzSUW8*G{%&zeKeQ;}i{~G5;m7D}#a+9XM z|1C?eA$R{{&im@ww|E%se~b7F&na^EKdJ3Ac4C$`0Hs4U`!BiS#VmyTqO{n5+4C^D zZG&R-O?e}WR{4jJB;?wE;hbbG%RgMky5{Cw6-fR3NA0>f73drk*QP2*&GWF*S=G;f ztg||sjdga5)luiMx{WO^i_6w%aUMF{^c?l`A5)R3XejIS%f+8fsoAcfe*WVDcca_s zY;>FI+;*Fz&T6%}>RzG)RF{tE>*qg)5|x}vsohATt|X%?$>>Tlx{{2pB%>?I7!3OP zkE@MqDr@7Be*R<37Y654(YchB&NcM&ANBJer^AsL_ljgreat*z|A>D6qkcHNemJ~- zIJ|y1ynZOLG^KmYNi6`@wJS64s((bwcR)`cwA#yYFHxw)>TDL7i!81ju;TCAav zrKzRfXtWeqAkfc$)X#qu=Su45KT2vR`uUHxx{6E)CF4<;!idKbp(xHJmk`gAuP| zckisRqct42f9{*U&aP+|?cR zxAe3Oj9G>|Ya4Bix@v>2+Mug8=&B7zrfS1Fm`3*ug*9aD3y)#&H2^PFz^@WG|G%2a-fUhC(W>-Jy5hJyw>W)Aa)t*}8T mTf#8F8V0!pyFs`AA|2+ScFKmTTaLY#k(_tk{!5wXpZ|Y=hpzYl literal 0 HcmV?d00001 diff --git a/.vs/Effector.Plugin.Lib/v17/DocumentLayout.backup.json b/.vs/Effector.Plugin.Lib/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..b3a37d2 --- /dev/null +++ b/.vs/Effector.Plugin.Lib/v17/DocumentLayout.backup.json @@ -0,0 +1,171 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\processmanager\\processmanagervm.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\processmanager\\processmanagervm.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\multiplecopywnd\\multiplecopywndv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\multiplecopywnd\\multiplecopywndv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\processmanager\\processmanagerv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\processmanager\\processmanagerv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\egtwindow\\egtwindow.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\egtwindow\\egtwindow.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\utility\\inifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\utility\\inifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\themes\\generic.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\themes\\generic.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\constants\\pluginconstini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\constants\\pluginconstini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\utility\\plugininifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\utility\\plugininifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\constants\\constini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\constants\\constini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 2, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "MultipleCopyWndV.xaml", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "RelativeToolTip": "Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-16T14:20:02.087Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "ProcessManagerVM.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-16T14:19:17.625Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "ProcessManagerV.xaml", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "RelativeToolTip": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-16T14:19:13.496Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "EgtWindow.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "ViewState": "AgIAADkAAAAAAAAAAAAAAH8AAAAtAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T15:16:31.177Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "Generic.xaml", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Themes\\Generic.xaml", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Themes\\Generic.xaml", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Themes\\Generic.xaml", + "RelativeToolTip": "Effector.Plugin.Lib\\Themes\\Generic.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-09T14:50:37.334Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "PluginConstIni.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T14:19:08.316Z" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "ConstIni.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T14:17:20.215Z" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "PluginIniFile.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAUAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T12:12:44.529Z" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "IniFile.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\IniFile.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Utility\\IniFile.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\IniFile.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Utility\\IniFile.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T12:09:43.898Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/Effector.Plugin.Lib/v17/DocumentLayout.json b/.vs/Effector.Plugin.Lib/v17/DocumentLayout.json new file mode 100644 index 0000000..b3a37d2 --- /dev/null +++ b/.vs/Effector.Plugin.Lib/v17/DocumentLayout.json @@ -0,0 +1,171 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\processmanager\\processmanagervm.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\processmanager\\processmanagervm.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\multiplecopywnd\\multiplecopywndv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\multiplecopywnd\\multiplecopywndv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\processmanager\\processmanagerv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\processmanager\\processmanagerv.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\egtwindow\\egtwindow.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\egtwindow\\egtwindow.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\utility\\inifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\utility\\inifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|c:\\egtdev\\effector\\effector.plugin.lib\\effector.plugin.lib\\themes\\generic.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\themes\\generic.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\constants\\pluginconstini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\constants\\pluginconstini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\utility\\plugininifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\utility\\plugininifile.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + }, + { + "AbsoluteMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\effector.plugin.lib\\constants\\constini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}", + "RelativeMoniker": "D:0:0:{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}|Effector.Plugin.Lib\\Effector.Plugin.Lib.vbproj|solutionrelative:effector.plugin.lib\\constants\\constini.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 2, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "MultipleCopyWndV.xaml", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "RelativeToolTip": "Effector.Plugin.Lib\\MultipleCopyWnd\\MultipleCopyWndV.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-16T14:20:02.087Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "ProcessManagerVM.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerVM.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-16T14:19:17.625Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "ProcessManagerV.xaml", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "RelativeToolTip": "Effector.Plugin.Lib\\ProcessManager\\ProcessManagerV.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-16T14:19:13.496Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "EgtWindow.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\EgtWindow\\EgtWindow.vb", + "ViewState": "AgIAADkAAAAAAAAAAAAAAH8AAAAtAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T15:16:31.177Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "Generic.xaml", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Themes\\Generic.xaml", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Themes\\Generic.xaml", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Themes\\Generic.xaml", + "RelativeToolTip": "Effector.Plugin.Lib\\Themes\\Generic.xaml", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", + "WhenOpened": "2025-01-09T14:50:37.334Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "PluginConstIni.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Constants\\PluginConstIni.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAABAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T14:19:08.316Z" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "ConstIni.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Constants\\ConstIni.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T14:17:20.215Z" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "PluginIniFile.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Utility\\PluginIniFile.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAUAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T12:12:44.529Z" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "IniFile.vb", + "DocumentMoniker": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\IniFile.vb", + "RelativeDocumentMoniker": "Effector.Plugin.Lib\\Utility\\IniFile.vb", + "ToolTip": "C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\Utility\\IniFile.vb", + "RelativeToolTip": "Effector.Plugin.Lib\\Utility\\IniFile.vb", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|", + "WhenOpened": "2025-01-09T12:09:43.898Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/Effector.Plugin.Lib.sln b/Effector.Plugin.Lib.sln new file mode 100644 index 0000000..ad8c935 --- /dev/null +++ b/Effector.Plugin.Lib.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35514.174 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Effector.Plugin.Lib", "Effector.Plugin.Lib\Effector.Plugin.Lib.vbproj", "{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Effector.Plugin.Lib/.vs/Effector.Plugin.Lib.vbproj.dtbcache.json b/Effector.Plugin.Lib/.vs/Effector.Plugin.Lib.vbproj.dtbcache.json new file mode 100644 index 0000000..be0c1c3 --- /dev/null +++ b/Effector.Plugin.Lib/.vs/Effector.Plugin.Lib.vbproj.dtbcache.json @@ -0,0 +1 @@ +{"RootPath":"C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib","ProjectFileName":"Effector.Plugin.Lib.vbproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Constants\\ConstGen.vb"},{"SourceFile":"Constants\\ConstIni.vb"},{"SourceFile":"Constants\\PluginConstIni.vb"},{"SourceFile":"EgtWindow\\EgtWindow.vb"},{"SourceFile":"MultipleCopyWnd\\MultipleCopyWndV.xaml.vb"},{"SourceFile":"MultipleCopyWnd\\MultipleCopyWndVM.vb"},{"SourceFile":"My Project\\AssemblyInfo.vb"},{"SourceFile":"My Project\\Resources.Designer.vb"},{"SourceFile":"My Project\\Settings.Designer.vb"},{"SourceFile":"TitleBar\\TitleBarV.xaml.vb"},{"SourceFile":"Utility\\Command.vb"},{"SourceFile":"Utility\\ExecProcessManager.vb"},{"SourceFile":"Utility\\GenInterface.vb"},{"SourceFile":"Utility\\IdNameStruct.vb"},{"SourceFile":"Utility\\IniFile.vb"},{"SourceFile":"Utility\\PluginIniFile.vb"},{"SourceFile":"Utility\\StringConversion.vb"},{"SourceFile":"Utility\\VMBase.vb"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.vb"},{"SourceFile":"C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\obj\\Debug\\MultipleCopyWnd\\MultipleCopyWndV.g.vb"},{"SourceFile":"C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\obj\\Debug\\TitleBar\\TitleBarV.g.vb"},{"SourceFile":"C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\obj\\Debug\\GeneratedInternalTypeHelper.g.vb"}],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationCore.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationFramework.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xaml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\WindowsBase.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\EgtDev\\Effector\\Effector.Plugin.Lib\\Effector.Plugin.Lib\\bin\\Debug\\Effector.Plugin.Lib.dll","OutputItemRelativePath":"Effector.Plugin.Lib.dll"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} \ No newline at end of file diff --git a/Effector.Plugin.Lib/Constants/ConstGen.vb b/Effector.Plugin.Lib/Constants/ConstGen.vb new file mode 100644 index 0000000..7cc6083 --- /dev/null +++ b/Effector.Plugin.Lib/Constants/ConstGen.vb @@ -0,0 +1,66 @@ +'---------------------------------------------------------------------------- +' EgalTech 2015-2017 +'---------------------------------------------------------------------------- +' File : ConstGen.vb Data : 08.05.24 Versione : 2.6e1 +' Contenuto : Modulo costanti generali. +' +' +' +' Modifiche : 08.05.24 ES Creazione modulo. +' +' +'---------------------------------------------------------------------------- + +Public Module ConstGen + + ' File con direttorio radice dei dati + Public Const DAT_FILE_NAME As String = "DataRoot.Ini" + Public Const S_DATA As String = "Data" + Public Const K_DATAROOT As String = "DataRoot" + + '' File con dati di licenza + 'Public Const LIC_FILE_NAME As String = "EgtBEAMWALL.lic" + 'Public Const S_LICENCE As String = "Licence" + 'Public Const K_LOCKID As String = "LockId" + 'Public Const K_KEY As String = "Key" + + + ' Abilitazioni licenza + Public Enum KEY_OPT As UInteger + SUPERVISOR = 1 + End Enum + + ' Sottodirettorio di configurazione + Public Const CONF_DIR As String = "Config" + ' Sottodirettorio delle risorse + Public Const RES_DIR As String = "Resources" + ' Sottodirettorio script + Public Const SCRIPT_DIR As String = "Script" + ' Sottodirettorio temporaneo + Public Const TEMP_DIR As String = "Temp" + '' Sottodirettorio per Cam automatico + 'Public Const PROJS_DIR As String = "Projs" + '' Sottodirettorio per Csv automatico + 'Public Const PRODS_DIR As String = "Prods" + '' Sottodirettorio per Macro + 'Public Const MACRO_DIR As String = "Macro" + '' Sottodirettorio per Magazzino + 'Public Const WAREHOUSE_DIR As String = "Warehouse" + '' Sottodirettorio per lavorazioni travi + 'Public Const BEAM_DIR As String = "Beam" + '' Sottodirettorio per lavorazioni pareti + 'Public Const WALL_DIR As String = "Wall" + '' Sottodirettorio di default per il salvataggio con nome + 'Public Const SAVE_DFL_NAMEDIR As String = "MyProjects" + '' Sottodirettorio di default per le macchine + 'Public Const MACHINES_DFL_DIR As String = "Machines" + '' Sottodirettorio di default per toolmakers + 'Public Const TOOLMAKERS_DFL_DIR As String = "ToolMakers" + '' Nome file Lua con le funzioni di attrezzaggio + 'Public Const SETUP_LUA As String = "SetUp.lua" + '' Nome eseguibile per stampa + 'Public Const ZEBRAPRINTER_EXE As String = "ZebraPrinterUtilitiesD32.exe" + '' Sottodirettorio di default per macro + 'Public Const MACRO_DFL_DIR As String = "Macro" + +End Module diff --git a/Effector.Plugin.Lib/Constants/ConstIni.vb b/Effector.Plugin.Lib/Constants/ConstIni.vb new file mode 100644 index 0000000..052941f --- /dev/null +++ b/Effector.Plugin.Lib/Constants/ConstIni.vb @@ -0,0 +1,39 @@ +'---------------------------------------------------------------------------- +' EgalTech 2015-2024 +'---------------------------------------------------------------------------- +' File : ConstIni.vb Data : 08.05.24 Versione : 2.6e1 +' Contenuto : Modulo costanti sezione e chiavi per file Ini. +' +' +' +' Modifiche : 08.05.24 ES Creazione modulo. +' +' +'---------------------------------------------------------------------------- +Module ConstIni + + Public Const INI_FILE_NAME As String = "Effector.ini" + + Public Const S_GENERAL As String = "General" + 'Public Const K_DEBUG As String = "Debug" + Public Const K_LICENCE As String = "Licence" + 'Public Const K_USERLEVEL As String = "UserLevel" + 'Public Const K_MAXINST As String = "MaxInstances" + Public Const K_INSTANCES As String = "Instances" + Public Const K_PREPROC As String = "PreProc" + Public Const K_POSTPROC As String = "PostProc" + Public Const K_MACHINESTATE As String = "MachineState" + Public Const K_INITLUA As String = "InitLua" + Public Const K_PLUGINNAME As String = "PluginName" + Public Const K_WINPLACE = "WinPlace" + + Public Const S_REDIS As String = "Redis" + Public Const K_ENABLED As String = "Enabled" + Public Const K_DBINDEX As String = "DbIndex" + + + Public Const S_NC As String = "NC" + Public Const K_NC_SIMULATE As String = "NcSimulate" + Public Const K_MACHINE As String = "Machine" + +End Module diff --git a/Effector.Plugin.Lib/Constants/PluginConstIni.vb b/Effector.Plugin.Lib/Constants/PluginConstIni.vb new file mode 100644 index 0000000..3739f92 --- /dev/null +++ b/Effector.Plugin.Lib/Constants/PluginConstIni.vb @@ -0,0 +1,51 @@ +'---------------------------------------------------------------------------- +' EgalTech 2015-2024 +'---------------------------------------------------------------------------- +' File : ConstIni.vb Data : 08.05.24 Versione : 2.6e1 +' Contenuto : Modulo costanti sezione e chiavi per file Ini. +' +' +' +' Modifiche : 08.05.24 ES Creazione modulo. +' +' +'---------------------------------------------------------------------------- +Module PluginConstIni + + 'Public Const S_GENERAL As String = "General" + Public Const K_CAMEXEPATH As String = "CAMExePath" + Public Const K_DOORCREATOREXEPATH As String = "DoorCreatorExePath" + Public Const K_BACKUPDIR As String = "BackupDir" + Public Const K_RESOURCESDIR As String = "ResourcesDir" + Public Const K_DDFDIR As String = "DDFDir" + Public Const K_DDTDIR As String = "DDTDir" + Public Const K_GENDDFDIR As String = "GenDDFDir" + Public Const K_CSVOUTPUT As String = "CSVOutput" + + + Public Const S_CSV As String = "CSV" + Public Const K_DDFNAME As String = "DDFName" + Public Const K_QUANTITY As String = "Quantity" + Public Const K_HEIGHT As String = "Height" + Public Const K_WIDTH As String = "Width" + Public Const K_THICKNESS As String = "Thickness" + Public Const K_SWING As String = "Swing" + Public Const K_PHASE As String = "Phase" + Public Const K_STATE As String = "State" + Public Const K_PROGRAMSENT As String = "ProgramSent" + Public Const K_PROGRAMSTART As String = "ProgramStart" + Public Const K_PROGRAMEND As String = "ProgramEnd" + Public Const K_MANUALADDEDDOORNAME As String = "ManualAddedDoorName" + Public Const K_DELIMITER As String = "Delimiter" + + Public Const S_DEBUG As String = "Debug" + Public Const K_VARIABLELIST As String = "VariableList" + Public Const K_VARIABLEONDRAW As String = "VariableOnDraw" + Public Const K_MACHINECOMMANDS As String = "MachineCommands" + Public Const K_DOORCIRCLIST As String = "DoorCircList" + Public Const K_EXECUTEWINDOW As String = "ExecuteWindow" + + Public Const S_NC As String = "NC" + Public Const K_NC_SIMULATE As String = "NcSimulate" + +End Module diff --git a/Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj b/Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj new file mode 100644 index 0000000..552efb1 --- /dev/null +++ b/Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj @@ -0,0 +1,163 @@ + + + + Debug + AnyCPU + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + Effector.Plugin.Lib + Effector.Plugin.Lib + Library + v4.7.2 + Custom + true + {E5ECC5E1-EA7B-447D-9A07-F5EE25D27779} + + + true + full + true + true + true + bin\Debug\ + Effector.Plugin.Lib.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + pdbonly + false + false + true + false + true + bin\Release\ + Effector.Plugin.Lib.xml + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + 4.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MultipleCopyWndV.xaml + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ProcessManagerV.xaml + + + + TitleBarV.xaml + + + + + + + + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + + + + + MSBuild:Compile + Designer + + + Designer + XamlIntelliSenseFileGenerator + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + + + + + + + copy $(TargetPath) c:\EgtData\Effector\Plugin\Effector.Plugin.DoorArreda\Effector.Plugin.Lib.dll +copy $(TargetPath) c:\EgtData\Effector\Plugin\Effector.Plugin.FiveLakes\Effector.Plugin.Lib.dll +copy $(TargetPath) c:\EgtProg\Effector\Effector.Plugin.Lib.dll + + \ No newline at end of file diff --git a/Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj.user b/Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj.user new file mode 100644 index 0000000..31847db --- /dev/null +++ b/Effector.Plugin.Lib/Effector.Plugin.Lib.vbproj.user @@ -0,0 +1,10 @@ + + + + ShowAllFiles + + + Program + C:\EgtProg\Effector\EffectorD32.exe + + \ No newline at end of file diff --git a/Effector.Plugin.Lib/EgtWindow/EgtWindow.vb b/Effector.Plugin.Lib/EgtWindow/EgtWindow.vb new file mode 100644 index 0000000..3d2611d --- /dev/null +++ b/Effector.Plugin.Lib/EgtWindow/EgtWindow.vb @@ -0,0 +1,360 @@ +' Follow steps 1a or 1b and then 2 to use this custom control in a XAML file. +' +' Step 1a) Using this custom control in a XAML file that exists in the current project. +' Add this XmlNamespace attribute to the root element of the markup file where it is +' to be used: +' +' xmlns:MyNamespace="clr-namespace:Effector.Plugin.Lib" +' +' +' Step 1b) Using this custom control in a XAML file that exists in a different project. +' Add this XmlNamespace attribute to the root element of the markup file where it is +' to be used: +' +' xmlns:MyNamespace="clr-namespace:Effector.Plugin.Lib;assembly=Effector.Plugin.Lib" +' +' You will also need to add a project reference from the project where the XAML file lives +' to this project and Rebuild to avoid compilation errors: +' +' Right click on the target project in the Solution Explorer and +' "Add Reference"->"Projects"->[Browse to and select this project] +' +' +' Step 2) +' Go ahead and use your control in the XAML file. Note that Intellisense in the +' XML editor does not currently work on custom controls and its child elements. +' +' +' + +Imports System.Globalization +Imports System.Runtime.InteropServices +Imports System.Text +Imports System.Windows.Controls.Primitives +Imports System.Windows.Interop +Imports System.Xml.Serialization + + + + +Public Class EgtWindow + Inherits System.Windows.Window + + Private Const WM_GETMINMAXINFO As Integer = &H24 + Private Const MONITOR_DEFAULTTONEAREST As UInteger = &H2 + Private Const SW_SHOWNORMAL As Integer = 1 + Private Const SW_SHOWMINIMIZED As Integer = 2 + + + + Public Structure RECT + + Public Left As Integer + Public Top As Integer + Public Right As Integer + Public Bottom As Integer + + Public Sub New(ByVal left As Integer, ByVal top As Integer, ByVal right As Integer, ByVal bottom As Integer) + Me.Left = left + Me.Top = top + Me.Right = right + Me.Bottom = bottom + End Sub + + End Structure + + + Public Structure MONITORINFO + + Public cbSize As Integer + Public rcMonitor As RECT + Public rcWork As RECT + Public dwFlags As UInteger + + End Structure + + + + Public Structure POINT + + Public X As Integer + Public Y As Integer + + Public Sub New(ByVal x As Integer, ByVal y As Integer) + Me.X = x + Me.Y = y + End Sub + + End Structure + + + Public Structure MINMAXINFO + + Public ptReserved As POINT + Public ptMaxSize As POINT + Public ptMaxPosition As POINT + Public ptMinTrackSize As POINT + Public ptMaxTrackSize As POINT + + End Structure + + + + Public Structure WINDOWPLACEMENT + + Public length As Integer + Public flags As Integer + Public showCmd As Integer + Public minPosition As POINT + Public maxPosition As POINT + Public normalPosition As RECT + + End Structure + + ' Proprietà che permette di impostare l'altezza della TitleBar + Public Shared ReadOnly TitleBarHeightProperty As DependencyProperty = DependencyProperty.Register("TitleBarHeight", GetType(Double), GetType(EgtWindow), New PropertyMetadata(0.0)) + Public Property TitleBarHeight() As Double + Get + Return CType(GetValue(TitleBarHeightProperty), Double) + End Get + Set(ByVal value As Double) + SetValue(TitleBarHeightProperty, value) + End Set + End Property + + 'Private Shared encoding As Encoding = New UTF8Encoding() + 'Private Shared serializer As XmlSerializer = New XmlSerializer(GetType(WINDOWPLACEMENT)) + + Private m_Placement_AppName As String = "" + Public Sub SetPlacementAppName(Placement_AppName As String) + m_Placement_AppName = Placement_AppName + End Sub + Private m_Placement_KeyName As String = "" + Public Sub SetPlacementKeyName(Placement_KeyName As String) + m_Placement_KeyName = Placement_KeyName + End Sub + Private m_Placement_FileName As String = "" + Public Sub SetPlacementFileName(Placement_FileName As String) + m_Placement_FileName = Placement_FileName + End Sub + + +#Region "CONSTRUCTOR" + + Shared Sub New() + 'This OverrideMetadata call tells the system that this element wants to provide a style that is different than its base class. + 'This style is defined in themes\generic.xaml + DefaultStyleKeyProperty.OverrideMetadata(GetType(EgtWindow), New FrameworkPropertyMetadata(GetType(EgtWindow))) + End Sub + + Sub New() + AddHandler Me.Closing, AddressOf OnWindowClosing + End Sub + +#End Region ' CONSTRUCTOR + +#Region "METHODS" + + + Private Shared Function MonitorFromWindow(ByVal handle As IntPtr, ByVal flags As UInteger) As IntPtr + End Function + + Private Shared Function GetMonitorInfo(ByVal hMonitor As IntPtr, ByRef lpmi As MONITORINFO) As Boolean + End Function + + Private Shared Function SetWindowPlacement(ByVal hWnd As IntPtr, <[In]> ByRef lpwndpl As WINDOWPLACEMENT) As Boolean + End Function + + Private Shared Function GetWindowPlacement(ByVal hWnd As IntPtr, ByRef lpwndpl As WINDOWPLACEMENT) As Boolean + End Function + + Protected Overrides Sub OnSourceInitialized(ByVal e As EventArgs) + MyBase.OnSourceInitialized(e) + CType(PresentationSource.FromVisual(Me), HwndSource).AddHook(AddressOf HookProc) + If Me.SizeToContent = SizeToContent.Manual Then + Dim sPlacement As String = "" + GetPrivateProfileString(m_Placement_AppName, m_Placement_KeyName, "", sPlacement, m_Placement_FileName) + If Not String.IsNullOrWhiteSpace(sPlacement) Then + SetPlacement(sPlacement) + End If + End If + Me.InvalidateMeasure() + End Sub + + Public Shared Function HookProc(ByVal hwnd As IntPtr, ByVal msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr, ByRef handled As Boolean) As IntPtr + If msg = WM_GETMINMAXINFO Then + Dim mmi As MINMAXINFO = CType(Marshal.PtrToStructure(lParam, GetType(MINMAXINFO)), MINMAXINFO) + Dim monitor As IntPtr = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST) + + If monitor <> IntPtr.Zero Then + Dim monitorInfo As MONITORINFO = New MONITORINFO() + monitorInfo.cbSize = Marshal.SizeOf(GetType(MONITORINFO)) + GetMonitorInfo(monitor, monitorInfo) + Dim rcWorkArea As RECT = monitorInfo.rcWork + Dim rcMonitorArea As RECT = monitorInfo.rcMonitor + mmi.ptMaxPosition.X = Math.Abs(rcWorkArea.Left - rcMonitorArea.Left) + mmi.ptMaxPosition.Y = Math.Abs(rcWorkArea.Top - rcMonitorArea.Top) + mmi.ptMaxSize.X = Math.Abs(rcWorkArea.Right - rcWorkArea.Left) + mmi.ptMaxSize.Y = Math.Abs(rcWorkArea.Bottom - rcWorkArea.Top) + End If + + Marshal.StructureToPtr(mmi, lParam, True) + End If + + Return IntPtr.Zero + End Function + + Shared Sub SetPlacement(ByVal windowHandle As IntPtr, ByVal placementXml As String) + If String.IsNullOrEmpty(placementXml) Then + Return + End If + + Dim placement As WINDOWPLACEMENT + Try + placement = StringToPlacement(placementXml) + 'Using memoryStream As TextReader = New StringReader(placementXml) + ' placement = CType(serializer.Deserialize(memoryStream), WINDOWPLACEMENT) + 'End Using + + placement.length = Marshal.SizeOf(GetType(WINDOWPLACEMENT)) + placement.flags = 0 + placement.showCmd = (If(placement.showCmd = SW_SHOWMINIMIZED, SW_SHOWNORMAL, placement.showCmd)) + SetWindowPlacement(windowHandle, placement) + Catch __unusedInvalidOperationException1__ As InvalidOperationException + End Try + + End Sub + + Private Shared Function PlacementToString(Placement As WINDOWPLACEMENT) As String + Dim sPlacement As String = "" + sPlacement = Placement.length.ToString() & ";" & + Placement.flags.ToString() & ";" & + Placement.showCmd.ToString() & ";" + sPlacement &= PointToString(Placement.minPosition) & ";" + sPlacement &= PointToString(Placement.maxPosition) & ";" + sPlacement &= RectToString(Placement.normalPosition) + Return sPlacement + End Function + + Private Shared Function PointToString(Point As POINT) As String + Dim sPoint As String = "" + sPoint = Point.X.ToString() & "," & + Point.Y.ToString() + Return sPoint + End Function + + Private Shared Function RectToString(Rect As RECT) As String + Dim sRect As String = "" + sRect = Rect.Left.ToString() & "," & + Rect.Top.ToString() & "," & + Rect.Right.ToString() & "," & + Rect.Bottom.ToString() + Return sRect + End Function + + Shared Function GetPlacement(ByVal windowHandle As IntPtr) As String + Dim placement As WINDOWPLACEMENT = New WINDOWPLACEMENT() + GetWindowPlacement(windowHandle, placement) + Return PlacementToString(placement) + + 'Using TextWriter As StringWriter = New StringWriter() + ' serializer.Serialize(TextWriter, placement) + ' Return TextWriter.ToString().Replace(Environment.NewLine, "") + 'End Using + + End Function + + Private Shared Function StringToPlacement(sPlacement As String) As WINDOWPLACEMENT + Dim Placement As WINDOWPLACEMENT + Dim sPlacementArray As String() = sPlacement.Split(";"c) + If sPlacementArray.Length < 5 Then + Placement.normalPosition = New RECT(100, 100, 800, 800) + Return Placement + End If + Integer.TryParse(sPlacementArray(0), Placement.length) + Integer.TryParse(sPlacementArray(1), Placement.flags) + Integer.TryParse(sPlacementArray(2), Placement.showCmd) + Placement.minPosition = StringToPoint(sPlacementArray(3)) + Placement.maxPosition = StringToPoint(sPlacementArray(4)) + Placement.normalPosition = StringToRect(sPlacementArray(5)) + Return Placement + End Function + + Private Shared Function StringToPoint(sPoint As String) As POINT + Dim sPointArray As String() = sPoint.Split(","c) + Dim nX As Integer = 0 + Dim nY As Integer = 0 + Integer.TryParse(sPointArray(0), nX) + Integer.TryParse(sPointArray(1), nY) + Return New POINT(nX, nY) + End Function + + Private Shared Function StringToRect(sRect As String) As RECT + Dim sRectArray As String() = sRect.Split(","c) + Dim nLeft As Integer = 0 + Dim nTop As Integer = 0 + Dim nRight As Integer = 0 + Dim nBottom As Integer = 0 + Integer.TryParse(sRectArray(0), nLeft) + Integer.TryParse(sRectArray(1), nTop) + Integer.TryParse(sRectArray(2), nRight) + Integer.TryParse(sRectArray(3), nBottom) + Return New RECT(nLeft, nTop, nRight, nBottom) + End Function + + Public Sub SetPlacement(ByVal placementXml As String) + SetPlacement(New WindowInteropHelper(Me).Handle, placementXml) + End Sub + + Public Function GetPlacement() As String + Return GetPlacement(New WindowInteropHelper(Me).Handle) + End Function + +#End Region ' METHODS + +#Region "EVENTS" + + Public Sub OnMinimizeButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs) + Me.WindowState = WindowState.Minimized + End Sub + + Public Sub OnMaximizeRestoreButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs) + If Me.WindowState = WindowState.Maximized Then + Me.WindowState = WindowState.Normal + Else + Me.WindowState = WindowState.Maximized + End If + End Sub + + Public Overridable Sub OnCloseButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs) + Me.Close() + End Sub + + Private Sub OnWindowClosing(sender As Object, e As System.ComponentModel.CancelEventArgs) + If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt OrElse Keyboard.IsKeyDown(Key.F4) Then + e.Cancel = True + Return + End If + If Me.SizeToContent = SizeToContent.Manual Then + WritePrivateProfileString(m_Placement_AppName, m_Placement_KeyName, GetPlacement(), m_Placement_FileName) + End If + End Sub + +#End Region ' EVENTS + +End Class + +Public Class CaptionHeightConverter + Implements IValueConverter + + Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert + If Not TypeOf value Is Double Then Return 39 + Dim dValue As Double = CDbl(value) + Return dValue + 7 + End Function + + Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack + Throw New NotImplementedException() + End Function + +End Class \ No newline at end of file diff --git a/Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml b/Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml new file mode 100644 index 0000000..a0500ae --- /dev/null +++ b/Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml @@ -0,0 +1,4 @@ + + diff --git a/Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml.vb b/Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml.vb new file mode 100644 index 0000000..c7823f1 --- /dev/null +++ b/Effector.Plugin.Lib/EgtWindow/EgtWindowV.xaml.vb @@ -0,0 +1,301 @@ +Imports System.Runtime.InteropServices +Imports System.Text +Imports System.Windows.Interop +Imports System.Xml.Serialization + +Public Class EgtWindowV + + Private Const WM_GETMINMAXINFO As Integer = &H24 + Private Const MONITOR_DEFAULTTONEAREST As UInteger = &H2 + Private Const SW_SHOWNORMAL As Integer = 1 + Private Const SW_SHOWMINIMIZED As Integer = 2 + + + + Public Structure RECT + + Public Left As Integer + Public Top As Integer + Public Right As Integer + Public Bottom As Integer + + Public Sub New(ByVal left As Integer, ByVal top As Integer, ByVal right As Integer, ByVal bottom As Integer) + Me.Left = left + Me.Top = top + Me.Right = right + Me.Bottom = bottom + End Sub + + End Structure + + + Public Structure MONITORINFO + + Public cbSize As Integer + Public rcMonitor As RECT + Public rcWork As RECT + Public dwFlags As UInteger + + End Structure + + + + Public Structure POINT + + Public X As Integer + Public Y As Integer + + Public Sub New(ByVal x As Integer, ByVal y As Integer) + Me.X = x + Me.Y = y + End Sub + + End Structure + + + Public Structure MINMAXINFO + + Public ptReserved As POINT + Public ptMaxSize As POINT + Public ptMaxPosition As POINT + Public ptMinTrackSize As POINT + Public ptMaxTrackSize As POINT + + End Structure + + + + Public Structure WINDOWPLACEMENT + + Public length As Integer + Public flags As Integer + Public showCmd As Integer + Public minPosition As POINT + Public maxPosition As POINT + Public normalPosition As RECT + + End Structure + + Private Shared encoding As Encoding = New UTF8Encoding() + Private Shared serializer As XmlSerializer = New XmlSerializer(GetType(WINDOWPLACEMENT)) + + +#Region "CONSTRUCTOR" + + Sub New() + ' Funzione che interpreta l'xaml + InitializeComponent() + AddHandler Me.Loaded, AddressOf MainWindowV_Loaded + AddHandler Me.ContentRendered, AddressOf MainWindowV_ContentRendered + AddHandler Me.StateChanged, AddressOf Window_StateChanged + AddHandler Me.Closing, AddressOf MainWindowV_Closing + AddHandler Me.Closed, AddressOf MainWindowV_Closed + Me.RefreshMaximizeRestoreButton() + End Sub + +#End Region ' CONSTRUCTOR + +#Region "METHODS" + + + Private Shared Function MonitorFromWindow(ByVal handle As IntPtr, ByVal flags As UInteger) As IntPtr + End Function + + Private Shared Function GetMonitorInfo(ByVal hMonitor As IntPtr, ByRef lpmi As MONITORINFO) As Boolean + End Function + + Private Shared Function SetWindowPlacement(ByVal hWnd As IntPtr, <[In]> ByRef lpwndpl As WINDOWPLACEMENT) As Boolean + End Function + + Private Shared Function GetWindowPlacement(ByVal hWnd As IntPtr, ByRef lpwndpl As WINDOWPLACEMENT) As Boolean + End Function + + Protected Overrides Sub OnSourceInitialized(ByVal e As EventArgs) + MyBase.OnSourceInitialized(e) + CType(PresentationSource.FromVisual(Me), HwndSource).AddHook(AddressOf HookProc) + Dim sPlacement As String = "" + GetMainPrivateProfileString(S_GENERAL, K_WINPLACE, "", sPlacement) + If Not String.IsNullOrWhiteSpace(sPlacement) Then + SetPlacement(sPlacement) + End If + + End Sub + + Public Shared Function HookProc(ByVal hwnd As IntPtr, ByVal msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr, ByRef handled As Boolean) As IntPtr + If msg = WM_GETMINMAXINFO Then + Dim mmi As MINMAXINFO = CType(Marshal.PtrToStructure(lParam, GetType(MINMAXINFO)), MINMAXINFO) + Dim monitor As IntPtr = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST) + + If monitor <> IntPtr.Zero Then + Dim monitorInfo As MONITORINFO = New MONITORINFO() + monitorInfo.cbSize = Marshal.SizeOf(GetType(MONITORINFO)) + GetMonitorInfo(monitor, monitorInfo) + Dim rcWorkArea As RECT = monitorInfo.rcWork + Dim rcMonitorArea As RECT = monitorInfo.rcMonitor + mmi.ptMaxPosition.X = Math.Abs(rcWorkArea.Left - rcMonitorArea.Left) + mmi.ptMaxPosition.Y = Math.Abs(rcWorkArea.Top - rcMonitorArea.Top) + mmi.ptMaxSize.X = Math.Abs(rcWorkArea.Right - rcWorkArea.Left) + mmi.ptMaxSize.Y = Math.Abs(rcWorkArea.Bottom - rcWorkArea.Top) + End If + + Marshal.StructureToPtr(mmi, lParam, True) + End If + + Return IntPtr.Zero + End Function + + Shared Sub SetPlacement(ByVal windowHandle As IntPtr, ByVal placementXml As String) + If String.IsNullOrEmpty(placementXml) Then + Return + End If + + Dim placement As WINDOWPLACEMENT + Try + placement = StringToPlacement(placementXml) + 'Using memoryStream As TextReader = New StringReader(placementXml) + ' placement = CType(serializer.Deserialize(memoryStream), WINDOWPLACEMENT) + 'End Using + + placement.length = Marshal.SizeOf(GetType(WINDOWPLACEMENT)) + placement.flags = 0 + placement.showCmd = (If(placement.showCmd = SW_SHOWMINIMIZED, SW_SHOWNORMAL, placement.showCmd)) + SetWindowPlacement(windowHandle, placement) + Catch __unusedInvalidOperationException1__ As InvalidOperationException + End Try + + End Sub + + Private Shared Function PlacementToString(Placement As WINDOWPLACEMENT) As String + Dim sPlacement As String = "" + sPlacement = Placement.length.ToString() & ";" & + Placement.flags.ToString() & ";" & + Placement.showCmd.ToString() & ";" + sPlacement &= PointToString(Placement.minPosition) & ";" + sPlacement &= PointToString(Placement.maxPosition) & ";" + sPlacement &= RectToString(Placement.normalPosition) + Return sPlacement + End Function + + Private Shared Function PointToString(Point As POINT) As String + Dim sPoint As String = "" + sPoint = Point.X.ToString() & "," & + Point.Y.ToString() + Return sPoint + End Function + + Private Shared Function RectToString(Rect As RECT) As String + Dim sRect As String = "" + sRect = Rect.Left.ToString() & "," & + Rect.Top.ToString() & "," & + Rect.Right.ToString() & "," & + Rect.Bottom.ToString() + Return sRect + End Function + + Shared Function GetPlacement(ByVal windowHandle As IntPtr) As String + Dim placement As WINDOWPLACEMENT = New WINDOWPLACEMENT() + GetWindowPlacement(windowHandle, placement) + Return PlacementToString(placement) + + 'Using TextWriter As StringWriter = New StringWriter() + ' serializer.Serialize(TextWriter, placement) + ' Return TextWriter.ToString().Replace(Environment.NewLine, "") + 'End Using + + End Function + + Private Shared Function StringToPlacement(sPlacement As String) As WINDOWPLACEMENT + Dim Placement As WINDOWPLACEMENT + Dim sPlacementArray As String() = sPlacement.Split(";"c) + If sPlacementArray.Length < 5 Then + Placement.normalPosition = New RECT(100, 100, 800, 800) + Return Placement + End If + Integer.TryParse(sPlacementArray(0), Placement.length) + Integer.TryParse(sPlacementArray(1), Placement.flags) + Integer.TryParse(sPlacementArray(2), Placement.showCmd) + Placement.minPosition = StringToPoint(sPlacementArray(3)) + Placement.maxPosition = StringToPoint(sPlacementArray(4)) + Placement.normalPosition = StringToRect(sPlacementArray(5)) + Return Placement + End Function + + Private Shared Function StringToPoint(sPoint As String) As POINT + Dim sPointArray As String() = sPoint.Split(","c) + Dim nX As Integer = 0 + Dim nY As Integer = 0 + Integer.TryParse(sPointArray(0), nX) + Integer.TryParse(sPointArray(1), nY) + Return New POINT(nX, nY) + End Function + + Private Shared Function StringToRect(sRect As String) As RECT + Dim sRectArray As String() = sRect.Split(","c) + Dim nLeft As Integer = 0 + Dim nTop As Integer = 0 + Dim nRight As Integer = 0 + Dim nBottom As Integer = 0 + Integer.TryParse(sRectArray(0), nLeft) + Integer.TryParse(sRectArray(1), nTop) + Integer.TryParse(sRectArray(2), nRight) + Integer.TryParse(sRectArray(3), nBottom) + Return New RECT(nLeft, nTop, nRight, nBottom) + End Function + + Public Sub SetPlacement(ByVal placementXml As String) + SetPlacement(New WindowInteropHelper(Me).Handle, placementXml) + End Sub + + Public Function GetPlacement() As String + Return GetPlacement(New WindowInteropHelper(Me).Handle) + End Function + + Private Sub RefreshMaximizeRestoreButton() + If Me.WindowState = WindowState.Maximized Then + Me.maximizeButton.Visibility = Visibility.Collapsed + Me.restoreButton.Visibility = Visibility.Visible + Else + Me.maximizeButton.Visibility = Visibility.Visible + Me.restoreButton.Visibility = Visibility.Collapsed + End If + End Sub + +#End Region ' METHODS + +#Region "EVENTS" + + Private Sub OnMinimizeButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs) + Me.WindowState = WindowState.Minimized + End Sub + + Private Sub OnMaximizeRestoreButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs) + If Me.WindowState = WindowState.Maximized Then + Me.WindowState = WindowState.Normal + Else + Me.WindowState = WindowState.Maximized + End If + End Sub + + Private Sub Window_StateChanged(ByVal sender As Object, ByVal e As EventArgs) + Me.RefreshMaximizeRestoreButton() + End Sub + + Private Sub OnCloseButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs) + Me.Close() + End Sub + + Private Sub MainWindowV_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs) + If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt OrElse Keyboard.IsKeyDown(Key.F4) Then + e.Cancel = True + Return + End If + WriteMainPrivateProfileString(S_GENERAL, K_WINPLACE, GetPlacement()) + End Sub + + Private Sub MainWindowV_Closed(sender As Object, e As EventArgs) + EgtOutLog("Exit") + End Sub + +#End Region ' EVENTS + +End Class diff --git a/Effector.Plugin.Lib/MultipleCopyWnd/MultipleCopyWndV.xaml b/Effector.Plugin.Lib/MultipleCopyWnd/MultipleCopyWndV.xaml new file mode 100644 index 0000000..2b0fd0c --- /dev/null +++ b/Effector.Plugin.Lib/MultipleCopyWnd/MultipleCopyWndV.xaml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +