<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <Files>
    <License.txt Encoding="Ascii85">#eLmw8%dJxUJo$uP/Jf;Wo@5Are_k+Z}$7O,r-F^R,8K6%Ooo*+1A}5tslu.-}jU:dtPpy/ir.d]Bzo6XLb+8u56K2nURt4A73Wd_NEc+;Cca5UD,G6xBn}4E{O%#EuVIMc6NE5^rPB3OP}I@rf.*mo0+}CHS}$.v*hBMFL(1T^CaoMv]?eN(2N8m+IKiu5AgrToy}r@]H:l$YulPCyBpS3xyi1{jjcPIm0f1CZEJ0wZD]ucZu[j#?3u^wb/MVaF_Ex@U1Uwavu+adtcwnWyfp3S=!rx=Z+}0IzUlh8cMq-E@yP-:.FmLeTiC9As%==:P1c+w@!ST8X2*h_nXsbS/C_^hM%wI5^bVy5PbtXW9Ete4Z%x/d^Q1]xT-Lp/3z[g}Fs-4#=YAd1Rh2#4wkw.Omv3k[%}NakuU@sPdr.mD@h)*ht:+fFp2Bc{4PXogDf:!PIvVLB]*GyWw_MZuJ?}d6;caFiQH{=^wIt7QA[_Le6aEZR%.8X#v?53S8Z67yN8JlBk0]CI;A.H{aR!WEADKXrG9vL*Gh]c6@Fa6tgD_gj@(PFCX.:)C=rfdC)25V%d/Hei]g44R/,XNe,qSHqFqCpU(,4Y9A!$h$+*5Gezt+Y51itq;)g;m},nHzKS,tu*,4XI=9)oHo2Sdi;WoNqA=US(SM%ZWNmWO.PyWM#nrfBWPmd_+3Xg3)LAk{P^PfxZ7m*wgaT:Zx3DxQf%+iTQdW3P#{jZlX^;a4aeLT6w%::8(VuA3J;ZqZ.(mKb8M;Slvid%Njn,t^+nycx9;9v*izY;7@m3rH;Ttg!VFTZExyOnDJ;n)njzssZy]:o52HpSsA%B,x!L+ml1s8^77z7sS2pKuT1u%c_[L7s^.JO@TV6V_IOb-xTE+0^N%uctjOG!/u6]fPU}2nK5r@Ec=am4.793H43[6vkTfzoZDGeAo^B;nIWv%,1Bb{[X8;8!F2Rp%}lP3v73=xtcioXA^cX{tDDGGA!@6tj0BusKC.H.UI-);6J}jtyvP/LE1sloN3z0Vtx^rJn!IBIk0MF+ztYJFbLomiqiPP23!Xo+M_anAvPIg]?3Q]dM5DKd=oZj-;vNJBvUoi@8S!mkO_rER;$4xuiQ^A+RPKnq(dNQN(rawn]$U$3Xxf)?%rSV3f%AC)Xt.l7!;D57[Z,hpepTP]ylU.fbIW1V%gdxCZpcKoWc%!wL(av?ZA8oNq.5#dTX;P9,KqB#]7bieyC(HayFZ$/qa6.jwe}-Tvb8!3lV6gWde5]ABoggs]p9%?NQzuGQK%{{G=V,@V/+Vpz[QX=rdQS!8JXXvw$0Gds@AlZ639ACK{lcu]Iv1F(7OHyZe{bnEQPEqGaGt/*sNWJ!]IQe,o7IW#z=dALRqkAk%pOy2pXPt^K)$a!/NDZQi0Z4xvqhQfiEXk!((Z0vuHlr:z7!a52TpH02M=U!/2hjo$M}jk#0ofB4((-o3X4rk^s]8$PFoVPfAk/tFVSXG?H%PBCe3RDEiXLieb{BKtwSU$!^?]8@(Dp7VJn#L)mEiFb/t1;R(^tdVI/+eW:0HLy!0[F^*(}+]_h[06Ubuj:PX2w)rf3jH8$b4Z*m]YdY(Gy}tL(E-yf*CBo;lHEn0zm(#(_Ac%3$2POvJ7bLu/V3D$45Mv2ZG{v=L@i+clH!.,9z_KwtgGkRI.qXz.ONpf!S#+h^Sh;p?@yL^TcYAd98m#PhL;Li715u#JOQ_@0?#1(D+WkcIPyg#,Du:3I*uA!TFzN(9T1b/K615[bJ:SQJg;B@0VU#)Hd36{t0}QY9Bo%ClX^3rGGEJwpy:a)}2sT)PpPRA{c[ddxyw3[qXe$ppf,WCW4w*oUpt-OF[8,wOmdq,]^4;Oio{f[6[NG0OP:x;h,Z8Mkne4$EA}zi:pxTq6lUXC?=]E!;]V}m:$$=6@dK=b48q$cKcN}HU@G#_QS#Zb.9u)8D.c%E9#b)H]%lr2a,2ZCZyS%-+T0O3AZytX8o9^2OE4wXg8JZvb,h70dF;*k-]_JOa2$c8IDa=.v=oP)pZZMyoVI(T#[twxdylZ/@mBjMOyeR7:a.C{V?}2!435lHDm+5I%BK#HwSrPp//2+0pL?!,eB6;f!VY7$GUh@?MO5L8of^ScvXij{XlE9+%t=tCD)2V3{X[gE8S6^Lnua_a(J]2$dKHMX1u!*VM6.Lv2;heEL+a=y{dRII$4/=if][zX@@oe,=Fb7sX^BbaC=^/jaA.lqSH^A{KCoU6KJ%kq[I;=ppv:[BH6b?gJ!qtcXHxibJu[rDJ6=,Jo2NGXZ.ESg^?=%)ql7$$dbZHgGgZw^wY0U_iJUo7q]Le*Mn{*]u:kO@rmAPU_rJeMx[OnN[5KZOg.iscVBHlys%?e8e9QzBFB}Bg0bF#-Ul*T]tW:NU)60D0v(Lk7Cswf(+$T7JN]m-vTO7VePY=5VrDN?PCYr^^3ts}7L8}z1ukN(Znfw!aNkkNPxn*%:k-y%FOpN,*rw3T/dP;2VG1l2%)?]RB(/F)RgZk4gcp]:g6#XOs]VoEilKd@O;xRu1QLySZwx2BPiH{Jl{*jms3LVERLt18,IV$!pnDgyKwHbP=vzYMk_w(qHYE2ofJXuiW6foMyU0!d#kviBTN*Wk5uVXf={VYdmt$YEB+*!O!.MfM!AZBLPHhlrd?9uj7A*C.Y[0+E.x#dVnH+}$d]0R=XsET]!C$i]*H5C==qy5=B@ra=%.#zeWx0ffk)WWu[KMrN%]:X7bPeOX*f:m.{d,DP[(#*Ry^(n_?wKYI_mnkfibNKbnushV:=;mk3Ir85:VnMLRerAE+k6j5a3stV2,cWh0Cvtit,4Hrr_p)8I:,85m%F-NhjUx_GRTS3malhA:=m9i19kz^}k=Lv)Afz5XCPKKnj9(+Wph2gX;sE}-g.gR.%a)*Y_,0wTyjlr[/ngT0HOD}a?y0Cy]A/9./]]cj7*GkT%fQk[rH}M.=[yMkciGs#zD;,Ed^[A%A?0Lxx%n,0eQHoCQ#x+0O^D7#_v[-aZ,;3^Zcq,.%#:7M1D2++SXzSb/1p+UV1jU@OdfGgZd!*bJ1C-k{#St{+,.MedB(75cbrK7+7Z6@t4cH8o?fEo{xKUB4IG87tOll/$1wInF;L^U]++ElD$b?/6Y-!cjxFO;0df.4$glpXz+g188;[{m$L.Rr^;s]vk4f9hhSueY$vZ?DX:3HvD^C43OQPTzyFWo+J%.vLs62t%A^5vt=k[:b[sg%Il:T:-,@w9%NFnOFcetk_{t9@!LttD6!OY35KPq3zxa_6K.kkp{_Bq;2Q6)8O-ArA86o;fQHo$?l]U[z{Ce7MM1L]P*MhN$#F2@+UC3z4Q0OR9p05$JI.$7Y^j%g#PiUTZ7Z^kkBlB1x{sheBNPgg#^#0o-Je8pFO;9=s56NW$=Pj#{0zMlcnOc7R:B+}Ro[Wm{)1NG2MJ]_:zqQ[x{21u[YJ@d4#qTH.Yby:,:33l//yjL+oxl/BxETgoVkI!C3nC:r#Mu1D2SsvIgqTcLHd-g71nqs5bP4YzUCsjys.d+(%w([l0rF$EP)rKw[wDK4@i%=py/94?kGtcbhQJU8lhT^c!+:Ib}(=VCm-cm0C(Ac$j9gLV=!Y8DuUro;bd3-FQ*^3D7Z-NehOatgIlEc1ogxqS?LKonp2tS^S@6}_j$vw?Q?L{#6*:PzTY=F#C4tYOjuD#+1d+Z9HWSerdsSRCBeD8zNc,H:MQ3O.;s;cTI=bu%sW1s99X3#sKEfk_O^R+)HqyWE$vWD$fdDiUjo*U0(^gqVh=-$u.s67D)]ndK]t1Y!}L]GBkawp.-q,MN:hc-U{pj29?],jQ:@;Ap?(s.Fb+CsiGyi3^m_Wj_bGZ%jwF;CR@:l6o#kqqREy#0_f;yqIOueeFa9B?3*#Qn]+YED/3tW70}V8[8%}h$phuvnWPo4=MoNy%sVZ2]DmC,//7-Py}T.376J}x,=c2hDht*(bZ8HhmzA$QbWPL;/v9%i^FeBPR=]n?AWZd3OmG7woyjPQH-{W[X+j;!25Awt=Y,hgY,:=Xocju;+j?0;L:SJZ3A?VOet,JgrF:%P=Bd.iKp%YPuIsZW8[]trU]{5d#/R1HJTwv)wk5fbzLa(4e3nCcB8![4[F}uGD?+*ku!{isBF2GFDjZ1ggbM?Xe;XPyYbyNm9wsa$fzkMR[x5PC=45uPVUn9mJ+F;:%k#7A(4wC;dGMPT9Vx);+)5ITdBs@!7@)JDw0(!r6kXcdbBH]OW_(mTVSz12V_!S,trp5sHvS#8O-L)ZyY2.s-HvW%Q7+I/1N#bN.]{D00_;VC3t)+c4w,;t{4zSNqxc/6[t^lb)xnYMb4.Dz88IQ+{oLov=ItP]c;E;tefP/@*b+#vz2Vut};{Y:{nf?OV2hfg!s1nrffIE9ytM]eU#6k=;%OLh#-3R[10KI#lEa9;Z92MM}$;c9M5.5j%_ydQJ!H(y#AgAt3(WW97o?_Lq!/$^m3O0+DU!U%?WDg==qeRf.$WHSFbLaVib?u;b2[PO[N#{a.798Yj_o3c=/9N5iz.aH0^M@S2tDj#266?#/:krSQOQZNawTdP=0}cSZrv*PpTXGJn_xX?bzowgg(nBZX;JFqbWdR7L?Et.p}U,vnyi5eoe2x^@K8iVvXv@=jpP5g07PgC#l+B.M!xt2G:3dHFN/WA=n38A,=jaA[l,,ELPi]v{v4JknFF@Vmi$%($;_wf?w*#C9x33i#4UNwcV5}Flvuy93.!IZ;:^I4HZYIo%BtGwi^N$h=]zL7W+-mJV.!V*cE6UOA8N1]a-sbY2^p!;@Xw)IL77ZBp2P3Hf(qC3fXtcOkLSO%uU_C-)6%uZGW{xn(^mFtySs,Ba8p,9!bFrk$e8GO9C75F1}}Z+a,({#6VJ+a?fxs;bg5n^x8j34nsnH3#{elf@G-twkY}?jp!Ryu%ENf*+i5HsEr$GA#=8,R;p@eY3PKRwW#7ElxN?YDKwQgn?!WYfLzVcA3{pf#HsiS0m=)OrVMr=a5$RO72_$pGM-q05by:e#e8v$o?!jNd#-5iH(jqTn2I4vkgvMY_HCH++2Wvd)S%b7j3dy7Za5qo7^4{D5d-cZfJvBy-@W7t-i3G=BmWvV:__G^ji!K/D_U8THgh=6sS*GkMJ;s:T1,g#!8Q4S!EN+J:A;8KXI2_MTLq;BzxF4r%$#!:D@*;w^tdD17!?LC#nXd=I4#vekD@En1K+wj(Z0}UoL;L8:8#Uk2hq*=6si_-.LqA1(w3?$AX$=[t^+A!o#KbW7s!VkSFvM%]_E$5(:;UZe+2rvd4LnS$d!EqS-sXL!BHh^W+yRKL?kk=L3k,HH.GHrb,(V.1LIq1iPw.NieMK,-Sb%YMy??w423X[Ofd@o=yLk88oLTj!4zJ{xhD])Po@y?U^VlK3%:/n@;=ly0%]R*LK$%tWt3(bT:V[MfTT1;ZRaOd7*o18NS8t=!hi{kWBf+EiB;Vy4+VsRtm52N=s;wU;Auolp_!FJlDJr!9ofk=%g/ni*^Q1UX*.q)dsdVJukV_*s4HgbePMw!8IG/6#e,J#Q}_y7A7!S{ont.bUTMp%um=a7NFg,hNefGy$07:@r5VJLP:Ya.MlR[HMA)]u[O2W1Dm4.6=9o7hV]u_5u.h4#8/o#ZH7H]6j7HOvwBfs=[vrk3*Ml:s(gSU{vMYVs)oq{O#0::Ws9PO.xTD[HMkU@2uPN^;A_i:}n#uSsnxb%;R32;6qE:_{YeFW.$wjuRISZTJLDrSbFDa/V#t52lWM/-MV5XGh2V$?HQ_upaDELs/[=GtPgkKyJHz?,2[F@3wT:4$*C!JZ.x!aRQlK8v:D2g;{w$3#)S:#3Vg_!XNk+tk)i/e:xv[#JCoe}+xAsl(e/8F8CII2}:S9TVv(C$0r0)zcv/hDPUx@xwyQ*RpIi@LlyD}49.U}Xg=EZdNgYW4yTU=EKo8nC$$ES_XK_8Hv}ci1BFt_e}EGdAcFpOGUam*_q8%w^.EA!XO-kuEM7xzO)+zNZx,wQwQ_38fe$l=W!EVgNK^(}=zX)79msyBZ$EoY6KUqi(/H[iJ?l-_z67.P6}bg:-)4C:urWkM:uvElrNAYqUqCiLYfHQlze[6*hr-Yd04%ow*5F%]Y[zK1gMWL3cj?RW*co#T+2^#)@TFMaa8fH/{bkc%=ELna4Eei=;Gs81cp:a.7o)vzC$OOXm]]m/niABW{8L6(_VBHk+y/ICRpykTNqg6p-Z$Op?CKTHKAn:kpYc?AJAaPUeQSi]sr#OZ0L:Z]Yazu_}:@D3[%/!euOqEQtGOV{!l1^9H,AW],82w5cceQ^]Hk2IlAiF#bcCST:Y(v^I3ijpi8I2QnIuC%FD@Nz+9XjJV:a8Zv*8QeyMEi7?7.r(Cy-:w:CSaV1D)[*H2gqRecdz}E3cIi72OMJ!VnGg?({QE54Hhmz_e6,v_v)D[h%1*TSbFC4]y;kN-5[-BMyrS_0JrT.z(;@VHqb=wM7bSK{.RnS48D.Y_ZM0U)0h9s,tdY]E_51rr,.wk.xE:kc4dDxRGFmRRaU}T*VZ)iYFL0NfhUBb,:mP{hBA/IY(Vbe?cc}%gTiW/GRwqg}xY_M2xwCU;r2eFNFxoV^21xM{?kh9Gv8HtK[5m@Y!xj]9}2{/o;V2Po_Fsm_/[?sMHhRZAA,9p7eVDTpwEJ5_4oQ=7{d;aSYUFtIho7W9^iR_=.mtO/]QBO^b?n)R{aFU8t$ddBJ[!9tEV$bIuCU0l/WyOFW5=lJ7a?xYRfV$wTTo2YakJ*]zg?P*^2ov]m*RAG{1)1fo/xyNtuOYB3Yt:8oC3?FhDx?x1ZB8-zu/o{+#R#M;6z@$:n)A5Dy+1BGE3Hw_JOG8bbw7qA?igAIa9kBVfIK4y#{h]45YAbDJa9zO2uh7s;Tx,FsGG]kU3BDPocO!];*])y5s:9]SV.@Ya0u^}?uN72.@;r3vR[aRXE)*yeUO@EJLVAuQh?AymGL9O-FC(X7{E3TJVq9LI-GJbAg}oqp%m+U5Nd}-hh_?nPiQ[x1B%KZ8i0@-MNmpmR]G$Jb-EOVrmqA7BjUGWQ@o%eSesbeBIViB)wag%$Ho=?vgdjdNkQY.XL{S5i_s4J:,4#[?mV9-KLOv@]2$DO*Q]m^Ay8wH?%wThvpX4#+?QYdZ8rb]XvfY*]+xJH4:?Nr%?$R_*KHLxnx}#0hd}:b1nPMWF$Geek!1/cg{a1nE9rI8TY;Pb0UFsGg/-C=Nkgihn9aBt:+,,7UYJf:WHH8Nt0!3^A(Z$CkTy_lE?!7q7aD?%42[#A)nZBzY}!M1bnpg]B%2A4h^Bg6Pv:861uGqFKa}A3I;@a6ECWBzW:n]Eg=tPT*iMfd_5FjYC*{B:JFOHurn1ni=OdjPO35y:H-q,J.]+;Ju.]iXEqP4wZ]kU)kzQ(P;)Sf2o?[+K1wq_0*}s2P*Sg1ZaK@xS;^e2_WU/o$#edx2zCZUEpqTzB0XntvDca49hj2/359ji11d9y!b]2O7/Ka.7.jajK#3}!K#]B=#mZF;F#VU7[G=hmu%.mQRB}RhAnGo]8L_/4Ij,dRSCoLRUDO,tlBEdBU3m7shs3P]OZ0_!8R/y?WM5H^IO}u@cwGEZR-[WRPHUJ84*foqbn%T5X+Tn-V+5NCfAU5ITHoHi8l5ozdj,[eOmwnAb.#pwtn$55mtI0=Gwev6r.r.@%TunrIc9##5iFT+.a02]V1QVmkm5E]j)Rkn%Hp,quBhZA3x%CIy]q1?ww62Vaa{)k7(]pqIS+=w6ED(:AA*f}Ctd9:dB8L^[EFR/cYAap(*.hlz,E*pA5gB@cP5V3A$#EbAX+9*M1_Lx{3PaAFg,sp-K,Cz67zG^_oMsMK[_{fp.3fx+01]u+ZRW]rTj_i;F*B4[e)GV!ws+=NaedUqah9DA*]sz:L3Dx^4m_dR?T8u;.5kT_cq6y@]IVeRnn:BA4s)K}7)K%.CqF/@qd1fk4AaET@m-?:MvsFhbjg*^Xbqg5kQe2jt9:DTthQ}M7o}#ULvp8:M?T}Q.=[4pP,y#T,=_$k/_l^IPz#xBLssh]Y.aQ,rC;I0,qpXzxF_adr3kYr9ID4A?;vfDD06q;xZ{}2)!ZQ.QD[.r7;Z)!K)}hsz{FBuIHo]o5:]56K5:qmpZ_RpLkusza^Y%ZMfq?U;97pwFQMne$52WaPWTFxLkZ9KS6:@}ZR,cv#/TxS/8nXX-k/j5*TMp*9xNP/i7Lg=;hk!JRvF}4L+Q9mDiCmdt+aHD;}Fdbs4!aEVTd]5q{pXK6mQPq^yk]nWWwiMiR-03dn*V6+5m;,b4xyPDTGIxIr[sb5q#f?:f);kg6pDspx,B2!1zm!g#6.1Hb6I1Ps2$SgS^d***g#31n#Kf_474{FO[KH]z53:CPc}v[8geIN_:T_2ZU$?L2D@n!Eyxjr{,g{[4ii3m6]MKs3eXW:P?rjnQt3Q5SqyQI;DX:%A-p/CfmYwj2I6AE88W?%g#KqZM0Qoe:fQtw@ngMflu4-*eAEjQ5-%BFSi:ON6*AO6zt6GnErq,#XAf!b_)jB7knX+d9hF/OxGBc!A:+21]5/+lPFSgrE]yu*HnsJR:q,cz%@$*Al28wWAB+4.snd190-0Uce:,Va?No{sLn_b8;3Mq@;YEF$!1m*Y[2+:+#V1VS%?)[V#GzAF=loNadaTfbjA}T?UEQtNU+{GkMRC](NT#KOc$P5[.C8vQ#*;NGu}@4YM,I511Z_GLS0VL9}T@$T!}nlIl#b*P)Qw43I5%q)LA0jKIfA(@nzHxJK+pGWARNdX%MB++EtbXX,m;vBLX#TQ@YZ@57]$J@irfn%}-E.7ZE9xdjzvHaggbPrph.9TlbpjqImvi(FCSaaeG3St5pGV3QX[6TyVZo*;2%E!4q.jn;$Al=o{G=oF0E;8sOwQxokuvY3=G51;#Fu3R$V;Fok67lgUJdaVv[Vb${}N(mZ,lzfDe-%.4E#TmTyqP9+##hT{s+Hk3.YeRtR.cI(m(G2TU{DvrH?3Y2;TIhme}?p[G9!:Vx[K{Ln:aReuzLoOCbI)r[XNa@irp[hwely6kCfnajjh?RZa1v-I:;1mg6R2D+O/jj2?.7Oywx0FY-c0,%+,GLbx13UN+p1qAj6e$r=#3koxfBHTvIB41S=$iU$DR;EePg!ciT;qajF/R5fCGkp1,x:r{$z^h(2?keq3+1P#w.]MGu1!r14SiB#,(R.uo-R$)u$bI^J;Cr3E*1i3^^EQoS8+0Z(cPc?AxbKB!94hLFjF0Kdf}l8)8?l)DU:U#%MBI=qEc2k0EM4]7mC%*+@yOB3:hTCH9vKsAc#KM:@y{kd^XH?D0/=wvhiqqT+R2%aq2Mx-p8hpUW#VGvOh^G?4yFokUMDjsolVLa=ERViojv].x;m_1U5N/MQ(0sBhht$eDW:Y^:^bj7xjiLrxAFwzh7k9AmQ3P$I04LFs@4sWI6o)H:5ZoWl9pRM]APY/-.ZZ#xp89,Ds2^]!l(dAcpM1REtWcpxs%2RUap36RjRmmPAnQsEL%xT?5LcF_!NFy:/te]CDn@Jf3iPa@@DE=mkBq;aPL:CTcGi@mKC5Dk9}DbA0-U2Gdu}3rRF=0470m+c5):FMaZc:fn{Dv[X/OSKY?h3U8.]qfaMtJ*W8e-p6M#/x(*$vm2zXz_mLC+Hjhsl1}L;[]@VQR/UHJt(i!spD2KgZ{D0%$QFe-/W8ZNqhNrv1LZqNGM5{-l!I(W6.}32B@Tv!Q=l!/U^?)ubk8tKOhS,87/:13iSWetXTidKU0VeU=9fzoHeH@A#HHoayBi}.rNRnFo18$?7)4:mtA7Bn8;nb7iw;MGofGMuAHU-Z4hueBC{kDySW+@2X1b6B0ar/JEp3SIlGB=geaJ:Ob2Wf2J-#/SdvLPrmRuO*1oi_=KAwrcXGnZMy5U#P!g+hBw[5/ECSkMY,ps*yX_e00;G=ZP=dY@Rd[JECKM[bLmnIx%rVlEMYiir)Xew:cH4)}9R4XFon{[Dp6Hd}RqpSxi4s4i.YXZaNHqk3N9w@)-7+PJ3TR1psIiN}^Uf7dQ.iEuZ9{Wh*2;py*d:l9eLBZq!aLCA0qo/$1nbsG!#(?b:t@jJ%%SB$lzR2$Ms;tZ)wpvPwP3sNFBy?yo]O,-I;+unPske@qcS},ni65Z;[=Xv4IKspys^Iv!.dp@VA1J-wb*yAD7u*FqCr@jlW8%H:Z73MM/O;w=Z4q5xQN@WcKX_xT+.I0ksM%:n0{UkQlnB++nmZ2y,rhoRNDw#/ry#FJ01+yQPjSoJvCMGMP;vM4;kUS%kxq[:1Frk5OFcyrx0U9iCub4nPQcF0EqWeTTzNg:?^]:{XH(5-x_;o0e8SgQb)cDKR-8_C?g,gvn@g2Ve#ApolN!SKrZFF5#DquDnc.$mKd,A}1ly^;l}mpyy@=EYl4LwR=.gqG2_;*:b$GepudtnJ0wVnv/qub-$R!S6iB[z.;Y_H!qLcmM3YRO}0FEu?MOLMLjLTBEj4?fJGadEO*lM;c,-m7cTJ2;o#W[8]1t379+@OMF(sZbAe{Z#g9^/c:.a2.R$APk53GCnD]JQcU/lv*R@R9)_c[O}d?tiM[r4^jJV/GO!@mHS,)kIb{zjRWsHy3RAi3OirT6[we$DM.TjRIU.K0/[ZI9o{SUQb93NTqKE6z,C}6fG;R0e;$!i#3pv=jUjT=Q:ijaz,nf2$PIXBzP}+paML{:#et1LAZ]7il-6Y*t$mRu}u3GYLZQuJRnoi?OzTf#Nz%/$zm9PqAXh5nru?aaF;Zd]0LW6GL66X;,DBAL.gQ9OnGu4wVjd5BIHZ}()D[!^$)sJ.r;5gz0qciztu*BO?*[mb%L;U:;.M(TzOIf+ULmDMssx.p-s-]%@hPLy)zB9C$%xKqr{Nc?.L)E+4v$3A5.ez^icQlyCM-*X]gL=Td3mY?J-!d1c4:yH7(EY$:##yv^eeCgU-lai-n6%([]J]XLtaN4lWy]Cp2BoC#uc_zS-5ynIeu6VmvUzVUgR,Zix%t^G}h(-_K1fuEX}^uvT_lUYtx#Qto/AFu=.MzwAbtxJa_sh0;c2:7fTa/:mk5+8yliyBJSea+T*DJKB/6OVb_p5bE3:b5TRDqZLMYA%TSF^;GGUoaN+SnD*?3a8H562[Xp=0g_Hh$b+g(2/qu/C0xrCZhV?wpR[}OTJNs-@m^C!zEc;1C_$!*]LRYsskqT[-jIuF=k6vVz5p#?XLvA22VqS54m3k?nS*{VTp3m]++gj#KejAE8RGfIV?sfx]]-vk6$9yu7!y}[n,Tb!(+psGD3,hGjPV[xQ@SxRnM:m?xLF11oC#;I/m,,@Uxtz![VMw#xDfOzhz;b;D2{/9o7!us_Ir2sK-[]o(Y49y*-:@(=YDq7%aw#e(SI#1MwYEf=)g=Jc]-i8(O;qjhkwc5o0fL#hws1tgToQ,^3WeX:IHTsd:FbY[*ef@-7zSKujJXw(j$FL%v:OPxr8s}BsX;_^@1zK%Rno}aLG]ekNTl+p=WXW;mM$%n/jhkzZyjQealy(eaAn8RWy4S#f;h?lS*RRw_r%1E==xU.0C?;MY/kw6zPdQ4[nw$jI]..H*zdu:8i7UBSsEtl6=i}@t-Mf.eIV*-p)MV;f(Q$UAZ5s-nd[85jfuDUaQ(bMcnBy*H8VH.Wc$IlkD=2HH7%RFup%zR8Mji5sYQK6#C{w5S[!$ZIIvN5*zlvvD+2gl-?8!8cT1HdD,K7]wZ,-Pp9Z[!*eXXagKjmM?RENF[B]_TvE;ch.0is79@([qoqc3d::2@A1^FA4iP7QC{M%6viaKYMf_s5e=H)EUqVuUR:b32DJH!P:ac4s^$ciaF1_^;J4;d*TDS]%T$!5Oc98yXf_R08!3e7:LFXqoJ{^*mAD@3AS[h,bDC:qD_931d4[($,89B7Et*TXzoAN@f:CUmT9Hh5Zfh}$0mxEOzF2BPeRoY.p]]6@BZAJx=$FKbQpTJo40/Ts[*8Dm1J96?yIbZpWKvp.Oen2=:i#q}_#mO,dJS2O1.}gOHhq5hwEaJ_JC6zD]DR4r)P}ap/#k)p$DZ+3u-xHG17}GC{QcgI5(+F/kIe;sH4YYD;i,iFTa5vv9O3Z.jT{/c!!{3mgl/OPZq6pYQ=9khdf9:Elo,95bpQpb!sL+MY@]hF)iC=_Z4BR2Grc{1;cC(.ACl8@9dP.g]xfB3f%r5w)l)+mJPG}P_c8%,7xIwrq[4kvgj^ci[N%HgMC[ny1-yrW]199rNqfYNEhEULc=r,-o!aXW@FoBDu=byJo7)oyf@[;e8w)#ig4Oa+lyOnF,TNi{,g?C)HT2F{qYkYr?L,-_y_F}VAyby(CqZo;z^ep#VX3#MlFNjeOSDs;J=uR;B#JO1$iKiI9-)PrSxJcAT#fFQ=d$,t[W},zn/}IAdxW8ZAJbudF-ri@QMRxgaxp;ST7jLeYdG;hApDq9Gae4EY-7W9muO1)lSJ_6S,2Zc+dUc7%vg@gi3wq^qdH0xoe7C(GZZX5h*x$D-cwFH5*lK(Ce*YJz]9/cqz58@)]sLkY[U]ujYI*B.BlXWj0Kb@sE$$yz%ZKdl^]S_@*pAT0_ANT[)GPR+arOA[[QPXX$L)7h;^Ira*y-9(Emu6=@55=6mk$p[2,gs2PlPY(%hk;0@?l5;DbL:{2sgKn,4YJRNRK[//}+xD;qZArH2)YL^pCCQbMa/%y]m{c8)42wk2f=0vvDCSxcqRvpv8Q,zq??^UI-(.3{XHL;ftXLEkW7*uOAkE9O5wz?qTf0xx]fCrPHQi#o4FZ59B}-/:0n{XTY^*cC}!FynI}!O1nr8)]+kP-YY9[A0C-a+Voz2?^+]t,/)d+miND_E{0wm%e%$u9:y7_y{!pOw;KhJKV1kI-M2{u9RgY]$qhtm]74Cw![77Lalic6547YNk-[,jU,$O8=pQ*Tu81)}.aE(@eucgWV*BUu=lyaWd$oFt%}3JByuJB#]RQT88De;m.l-O/Fy^;sv+K?w3UCTLc)r*H[,_MJ$q3K.%kpM/zqrn]hr8wF3jd,,NkT}!u7zDU542wFGJT,fWDDAEi}up!E(V^M0a3hhB1CiJvoXPEVg9LzX4kh5ERR:/$3?0e*4y,*c:};MLkwfhTU:g#xF.;d6L@CtdiX$kxw=@E!J1k3SNB)5@.nAEE;[nc=q{tYX1@s=Vpx^Puq*A159c]xL$-QLQ)nH*ZOjry_CGI;ZF#e##{-$:u2?NBK2n;9mGb9SM@K*MH2(d2e%AxPMd2m#VRDcqc5,2x75#{BJXj?y9iaUlJ{W5R?cVlbDpd^cMUX:-a-FYYr]1f$St@AeBZjmuQaK%Psf$z%B%.-k%!?l?f:e*}Mh:bQ5X:_.X#*8TrFGX-IA[nd6-%UopuT*AtBCfQO3Ng)b4b/X^7@W!kTN5jjqXkZ,}mj$MF#O+s^a:</License.txt>
    <OCTLogoFooter.lua Encoding="Ascii85">l},w}/2Df8YXYRdfu}wVVns/dyTt-Q5j(fvfU[{R7d-=%(:O?4p-F,H=YQUu?D4vj$,DcbIoRgRo8fTYaEAH(r%#^m+SZk$2VN0$hZ,kZQEyg_-3T-GOlEX-b/.aLo#6!_6QT4Uk@z2i2@O!fh1R9_c6ljE!qb9atqnxQLM_@ilx)#qX(RSB]D:c6o(2otzJ9rx()BUDh0sKf#Zo+^MtnFOLKD]?XqH/I15I4:B=NY#Wn-EWuE-cKh;5K(0m}dSMb1vW+l+HY8SlSM#*F$U:;:RPpti*_y*4%68f=x@@EFR36((F#gGk+OqEs-3OGP0W^j/^)nxmkDKuLylK^%2]uO(x;XMkZM#SGc{nGIq4obqf_t*s+2c,a)oaSF1N0sNV7:d#4yW,.]w51E*%1VKom*R-#WZy.${/7f*Ok.tkIiA;/@QHs?6gMJl-U1KL]xLHuW!X/bzW:o:ncI]avho)wKHJr+w.3SQ#g_nPgm:M_23l0tupz%GUOAZE?4TaWXwXc05bXjOn-_owwDWB56Oy,MBG#Dt2d4@=XL_dv0@o%Kg6mk[.5nNR!rVvirhk97B5u?pwVbWD%b2Gu8#Rduil*i!?1%+JQI_=L95sf)6dj1L+G-N3gYm:bV]py_%q5;/#g,?EDAnzrWZZDJ4gJ42lt:jqy3Asa8t{q7!bD^mth8QLk$-LRgzLBTfuRVsqdBKadtKAr/N8Mairo2K729o5!aN#_aLQ#9wtaqx;V!c#ItTh6n5H3rCC0d(ta.TF6EiCtFfu)oocAN:Qn,fv5z:*SSF^ucv0S!L2TvuAhdFFM$a^z8_echmwLZy06Puj4!fxk[XW2hHy-85/iMSWz[V]{8E9(m2%%buKiUsduyEYhwRGNQB.yKt01Q{x4t]!9dZUB/UG13G{;q=YMA,fKkpu3MPy5/{/cy2f-{b,3VmB%{ge=-jo{=Yvj)M{i6ICP(pqOt%[_RVg@)I!gKu/Idyn$@:W$4RQLmlmd#aQ4J0-6cQ=Ms({?BFVvLsC2Q*+hOn2l;u8J357:vO1FNrMOWBaYR/-rC5Zfmp@I%(q;@)GD+TUX8@a39vGoEK+JU0;^c)V$,x^*dfW8dFN3SmbdPyPA4-zWojJ21R6syXehg/VB/dkYT.e,#eog)F/rs*zI06F?7?2paCbp/W!/ub6$KN5OUMCwXtWQ/_*L9f(H]$$OFvZ$ICBzU:@2boO3zH54qHw;*+wQY$}C#-]4,Hr.YLT1)_;Kt4f#n,Wi-kNBUwHD7Os9Dy6[*sN!#b1ICD3U]#sfM]-#3u]JHFR@^dG2(VXKdXP}P/3-!gF5J^mB.8Z=@%.36Lc$^V[emUf9I-t0OkiTzt%IfABH/%8^@!,KJ07E94t58;.Y;WdbW8FICaC!,vVULUUFavfDC;=,Zr29/V?lfSqZtj?E(3X,3$x?4rm;D7yofWRJ}[^UA^Y$.$llN:NoJ}xzpJ.jg2U3!u$krwHW[tht4IshDnJcKS64tweybSOyX@1%r8*K.irv5*VFQyyxUFA)N_a2)6u3^.ZB6Kg1qM5Tee*CHv{%Mb9D8kvaWL0;HWa/^[zIE#0mP}+?WFarU)AUhj)[@rsKKP@.l{TYW/?VZkUDHkADC</OCTLogoFooter.lua>
    <OCTfooterlogo.png Encoding="Ascii85">Em^R!8[m-WQYgg:w79#wJH?3*AvhGLw73:xZpGbcaVhR?#U.4AOMv1U?{:,pyWC})H,PxYeRg*^ncSt*0^^]}s]8j]h}EGJ08B+%nNI*!LLB@D@fe0nTLB,)3U5%%l.vdruz#PQ9mR:o37VsVo)lkgj]#0C0Ayql!iA]:iXUZB[mRjE2;^R%-8Q)0%tlMsRocPM(eGl$?NbiLwlsCMw4n5]as5ImulP}jg544o0H6dY%1CK[Up}$D%,l)gyXz^p:cwc48LQ?N@Ovj)r#4(7/LvvA6u^5EI_YfDQZU5j8#Y)DytMEgW2TQ4wdb1p!@kMi,9QabpNIQy2ZdJz5eW(22V-n}=XDf/iha##0Pf8LLw(]Oe9tQk,;U2Uh22!w%8.-}1sylLr3fgC%S;]5^z^wB^/NEHXk$%-nHNX:yS8}9eDW@ES74IFP8JjnAVnd4wcQ/ngc@fr6Ofct=-!Nf!]DbA=lnV5u)I*4[2!otlj[w!ojphBF3fLk9,0E}I$sAQd!rj/KHSK_.BA4]J%BY:f@+%58ug$3cM76K2:sg_Z[C^4P_Nr]xKX8D$#%K[XTMv6a^OI+S?c5Y^IT=CcJMNezj8Lc@JaHIklIhgiw7iM-/R)EY#)]l@tl+H=Gt6rl*c]0(Td)8P]4^L;.c^!?Kzwf4P[O+p;2%OKv}[rLT$W%4tU9CoH?Uwr7;GpNl40i#fe.vTfi]SfNhI;22g?4RVel)]v)B.CrWXUq{ho1kLAWWheKM3!k2f_D,k!mi},3lfP@KOiv9+7Vr0S+$)qbY67rWv[Ub[[ftVu!3+53sgg_kSiN*Bq*8.=W#G,KOE8zmhYK;Ec%fAsiaT))Np^;k}plZa1KL2*16%O:$9g4ekf]Ie/TV$Z,=C#R^gy_JlhFRUwl!hNTIB*Tg^S5HOK#+q94oNh{0Lm/]Bc,5-,?/B;-M4o-lmonocq4%i23bY!^}+#Vk?R]#er:My=0*)8La5-HTwz8_k[,E+W!{+d;:m^520.MnTR:-UX1t?h,+dD/mnCMt(UpZBp?o{z;!.6{iXVYQ@33iUn!wP#OD!ZYA[#c@DRw2@?zZ;F(Aps4K*(k][c#V)J:mIx!-d)s*Lm3-)kcA$=B8%1@a9^G[jGHE.NIqNT^wT?[95.1VfaVgyCBPmB,?Js:}V,w!JSypOCSA=s+=22^@GV%%]b0%+8Ix2%s(4F=8M}4^}4{{aihk-+SA2ehV$!IL1.zdJDT{#(P[N{4sIE%a64FDDB5^w-ZwWJn7bC3q^^Q%PEK^ueeIx=#1CD,5:,X)!{l(ZeYUNKNI8kkTOukwUFTnicbe/jPd^NW%m^:(9wRj.(Ir0V1DY5L$3={}dDSypY4%X!j+(:o1pj_9ONbGAROQt113%:m,}{BWpdy@4tjN^+PeS[Ly5w(s6]Eb{6%joJes#76,MToYH.X!=zPc)F9zXqW;cb{dLik2(MQ[;y;8AQmZy[im)+ppGS/;bH^e.{:orc[6(/Tson#R/#?JJK1J)DFpyN5bz6c5Ep[}U.niYNc_K%n$E_HwC#%VMlByOvxgc#_Zy,CvkE+g#@b!yB8x+a;_-iIo]JPOd%ue!x(l;CwMZM,w8bv2*?VbOk5A4elLX9vRF3U^kGl@,Asl#*aeAc--wCqXkj(Q5Rq+KKV{{AYNfMkdWKrZ9eMkU*8A}$m%l,g;Q4#SS!e@rQMa!Q1Nt(n_ZX6l3JN.Z_gsVP[%W7kLMP0Im_je3e1YjVbw0n4IlpKLe^j#9)yUK7CJJiq^9,YQU*(fMwhBhkxu3-Xb3Uji(.u8hE(nZOIS!}$;-[Yk{eQtwlQ)1FhLj}!jvt8zZtz{deU].gY${BhhmY=J!9#:StmDIFFd[Mbq,{FU]me=d{6LP)4pQM(_m-TE(;cI(*mQct1(-sHk^)A$=-lD,8.{oc5}z7:z8W{Fm%C.j;dd8e^ep7LX_?AIT%*T7mBEH%oi[ulxKky$gh*LU8M=sg#2$^YeFhqh;=Sth;eXlzL0xIq0bK@3.LoiEr#Dk$wkSr2MD9MY{ea}^4,9$D[i!70ixs[I-px)=hg*iEq_ZdJGP7Mj;Q[?HwiQ-[6TO8^1.e_@F)max*^v3Tn,i%3*nc}YoCG(pPg?hx$]hHGMX$?8m,p3#Q;tP:c{:7ktV$iiggbPPft%$A*hooozFqvcI^,)G1+2*xZR0Kv=ZdKx4iue#fE:FAR$3An*dIdD?)E;zMwDznQh/KQ_2^bzb61MT]9heVqw:!BU1g=DXS%p6op5HSD-ZIThh*ZW6aE$166qzX%QODWI7GZOQ#rh8H%Zr(pTA_Z5ydmds9XBOi{,YqL:]mBE@FSn)^=WU?;z)j_of#1,,+SO;.b8)HRvdm2BbU%S-3Z,lH#G8!rS#R#w^-HBQ1m2S0Kqb5e39KIeQ-YBGM2F1K8ce,v!G3R#X/hDY3z91@XRRa:E6tEgx7I5nzk1ShI%96@d+ap^r9*hs#z({s.@fcKJHd^Pn[%9S!si.B!,P.*=Mpvv2:)eRtQSUae5%D3lS9t:T8M]yM.haXN.4*.P_3T}i.;{t%J8)yLEu!GdWvlc[hVom.%aV)W_sN,tw0C}rHlLN*hK:ikih1C]p(#e%G7-MV-?xVTBi9gN@cxZDCjBV#{5u{X16e74SsLc(,DjD$_+Z7;U6]97ePHOl237VT_5;3qxzn%/@p,f5IS0]KWF28#;=zg,c[+O[r]M[V4WiYB$;{@Y1/.9RPyH3f3-5pUG^tV{SdG4)0*Uxe+]h_$(r1:_{b44*m?[w%nBk*N8w]^%dK;V*7O0Dx?,].,0/Bq)8T,GY0=m*!j%:Ti!9_37-Xh[h?NKX%KODT%0zNm9HCN9SfCHbkzXXXHV;}w-Ea.8X3g3#h,sy,GCw9Va0aX2euvBIND6jtTARliQ+j{cqMg;7ZcVR-B0Vr{F,,{nxb]K*WyAlK]q+Hd1%qsFt2]^X?#Bo5ElZwfU3J_J}9oxUc5%8^;Od;3UM9i4B2jU=,Bxy]c81wULJ2)%fuI9t{8h/V=;eT@Jr%%NNDA4cv}qL.Dpyf5%Q.nOnfXW.OmK.VdPrsVH1[{sG?0jb$^)n%UvWA=:+R6POJX5$1gyH+[DZ=}EN*Y{aT;FCeZr$i6}dh5p*4]Qw,W)*#TfxqATe?%a]GV*gD:]uMhR0eCMuExaCa2f)d5iNg}(o*x9vZh0.Vywp.)pMo(P31$UB@c7K3=oP)^hqLyB;Le+QGx:UnTGJ@n$5X)d)sdIHDTsD5w_QZ-y?wrX$.#+ZJ7FO*xfR7$ARUI3Vpr/NdwU%#gn_c]uf2-nY{zQ+NEJi6f5(_hd_Z$fBOf+kQh)i8dLRd2PU,.Wp63F-zL.WrHQDws035{%(R8Zdr#u,:X3$V7XBKmULZPbdDB6$Cl}j-cRQWkpGlM4-O;u96Mc);QCiBqOpcsc_6$@JHLJAIoGa(h8h=@Z0,?pE?CsFY=,Vra?(O6mOam1-[tMCPUwUMh8#1R0N^bYu.Pk$Q.Dhnm@k+UZGHG1qC=x#0^^o8W^bta3j;N-mqJ?/e-03?gMY][$IjT:N.rTz4x1a#Kn-CrNMB*z+tBnuO0rK#+J{wU0]}atGLkHNj9z#?IJlh/0knQ/_5FmQyib:vsrvap0g4i5N9=zxmiY^N$FMi4UZ^qk2,XJHggQU#aTMI-54jj=feQ#TE%saSfydSWIN!4qMC+.R]q$b_:.6XpX5W4C0mqk9P*CtQ[bGXVk/1+D5xV[]4Xkj(#p)TqSrgnCy6{VX(m4I%=B}B-Lg^Q!ghl(b:!T-X-56ej8N]hUCING-a.n=w^ak)bLVcB0^?Jj_{@KYCJU+]u^#1+8G]mEvB?yGK=r[P.(16P?-p*xV2Mxzk1T[(6siIiNO.Hd%KuH1Ovb(Bj=)05F4.fxsRC,T9*?mJuJ#%AV#bL=f(brEdRg.2:G3ZihM=Tst4=u+as=7AgF4i/l6O_j(w!.g%NB$V)I=F,;.pDP2{Zgi6Q!=RVj+Ui[!p3SLi9b-;AzpmU*-$(Q#2w5U0cXFiAkMvA+c.,qgl$V(mCsVBrfKmVy4+S8Wb-wk$XMWzp,xY}#IW4_64kc9dd+^-RJ89Kxf:bEQu{+6CL(JK]n3Ad!30K^ZF7-S=c}zm+TRa};e#Af297JLE%So*]owVl+W?6rwD!T;oJFvB_oH=uT6o!+QVjSr^S:{9%5b?uV?!!xG/y5Sz7Yr1SsBPn7G;TQi2qe)$=C6)WyDARQ/^LHZUFF%ArBfeD:Y0qDF1n):SOE4-nBymfOg0Mts]ieUd%eh)%=B/H5_mt.j)SBH%/0EvL$@c7u6usS[N8i+E{z/e(0U39E{%Wj8*n=[N1NLc5Bgh)NI#Xjm_}*O)cK+5iHUc;7!7l?X0ZfBx}tjl./?mjB:nIaWo2c59N@KbY+sX[Z$Dpw8A$DI.syBmxt%Sp9QWbDyYKw2(il@ZzIh9U,.bPl?3HPluLZagFVvryBsc%[!UB@xmJofk]E{UW)#5W58dP[69p9e;oOx=!ti0%%f=p.-e:_[lNv$oMAD^h;nJ}qEa605GOP9Mw;PE*ef.}DSF)TbykAjarf46OI+tp!3oP@vsV2E[5Yvy}Q;vTy++:6TeCc)})0qNKd42fMVErpTEAExc_4#wu5YkMdM)5hQ]9P8=4-7W1zt[t]*[vT]fr#/d8d$3Cok)Ca9QIup}PF]TY*a,pxd^mV,buw-bxip4wT$l(@X+Hm:4[ub)kl^;eJwvFpGl,w/eKscge%g#@_8./WisIdS+)*(I8FEd.(N0r59WgCtm,E59;b_sW/cVbt2tQiR*;?9/AL_)S^pRt!v/U2;Ok[}oABv_zvn0VlY1s?!Z,@ZUWny9J*BQlZ;R+FvFrXpwVKK(E+8-Dp-2a#LRnNCrkLMg]-QeHm-+]VO1jw=X%/nGqX!hES7i_DfWAH-fF1jlA@ShG^L59Sj72Ff)YSx}eO^;d[-C?SE2Y?)Xo,3ua6*{DM3.rXi=.xM{d%.!9Ev27hXR{-*PyOi8%=EitZwOiQh8/U)Ci0Nf/m8W.@l^@V,]d.;xMw/iqCDtd9ns?*PGQr?@avgjx%m}kfNRhdkt@yLL2Jm-)rlFTx}ks!seOk(%7GsmBXj((K*Z}mHTMmHw#Tpdw;i6qyWSVu^lE3/irilDeSH@)O/^GpI{9i(EHqVF+?ZV3]/V^TYi/i/F45UhmR#^xKZcB{;c7@@7F$ILPWaB*U-#A4K90:$4X(S(J$0$_T71y:2E$sspj7=_37*6fL0zRwKtUTr58YJVbfa:{*rn}#lso1Cj(M%;.3Rw][py*8d9nozHi_0j%clWG,t$eYfhqkhW0l-.evAVRg2RdW^50N6*5]36ivkz,F1FLjk^z_nqvg%[+[Ybyw9XqZ*l{KbT_.j+Z3A5O0!qgJ+xXgq!_Va/t%ua{6$XQgHRc8%VG_/f*h0cNIp4R?j6qPhP*rgzJw2?$]B=I3?PYaD.S@ivIxd%P3c:h@#9rKTNVpK{FbXRjtNz}k4.@;D:fP}=Z7rGT.,!_sYXrfkvtVqeb;mmsjV9Fxn7I.?Xh{6@b/=-@:=hyrUm}FiChSo:7jxZRtrP9YBM;vP:n;IvL*xz:r;0[m4[{}6x0=Z[)F_[+@Fj5r*C3HHx(8f}4tx9JLP}ud*?Eb/dD{W$*B+J,$_^!$Vob3JIt:[,yv6xJUO-pv7-Xy-u5UstKQJ{^l1AAaGj;};J6^3-1r{JAe_BNv;4]W4u?qo9WnQp*G.ruh=t)$j4METw$XZ*!Z7p_Mc^v)NQ2XO=x#-LN(h[zJdEx79WOQ0v0r7$_Os9.KnAKGV(FvYL%tlUN$jZ+xQK**;sZ/+oE2L#{5nv)iwyMy^e_r+b#n)6vWSCv7^eUi6zEiN%xT;6+.}A+8,90fS*lfdtR}Va]/Wp$s2m.=DqX?KlK8;HOJI-M0w:xolfz@Kg,+ED_VX?_5W+vEQm%11OGu}KJ2%O{SgVxSs^Nfkzs!{]GL)/m[E[4)tlgtxES(q!Czex1shZCazsmFP0?6!^Z0YgdQ/WODXk-X8*1$wiPn47zCT-?:Iy{}-zH-+FZNLlp3V);F-V/RB/dze7D.?CYiQ%fVSfcKFRWlaY/x6/iv%b8+hXyb8Dw7u68+BPomPt5q@t[U67LW.Y_Hca$xx^#z-dlA16yq(vbCPC}H1l6AG:JE)^0S#O}N4Cnn$vflaS.j45,P=}s/pG}ma:v=KsF^:50ih3G@yHaFZ%Tp[xHf}2r+H1I/S;h]$(2zdx%NrmH?B@6v;D1/lJrg=w0fNP/c@OU8UAcMSs*u^$$O$AoOL{-VOrv;.;7t.iaAp.TJI^$u8J)-QkU8lAoKDY+RP;fxSi%++{K1fkAll1cvaz01FcH=y!.BUQnMd(ek+z?D]pa3tHtpImL49ik2sKxa8jlAiUr%mRnuQl0{M7i18VJH,v+S6$KRNxkW*p3wgLoj=Kgiz(UbFfUB+!n5nir}B@n-L7Ebm8P_1J7x4vhOGv?w1RV7Is-R4!ra4z0ia/}TmTRVfk^RS_dcr]xQ;vcodoJGWI=lsFXZ}OAkVku8X!8SD$li_x7%+,]rKX/so792Cj+;^%Sa5J5}/mKh+fsx,5-;dj:!$0Zx,ww8oiA]0{nM?IW*ck2j,V{V^[?g^xf$v.Tt4e3CsQ.:bT$Cn5_Gny^XcQeqB$wK2!($sNw}m.^w+5d;P}YvDyqnHo],^{G9paU/^e*KA$$@/$c1q/=KiXEYBb6?p4:.g(!lHT08{d*z.:2A_Uzgps%baNF3ZC5TyAJ8GofMkBw]b8M]ksH}%.R0t%QKjinYF^6Q[)zbHK}+J3p(db2Ld=E(uKY,+_55]+BigZ*[!XU/=Z1ES$kBcm0j9{yV}CTu.kjR70FzCdR+vQ-;({i-NMqcp}V/C7F*npx{hUIYwK?7;;].?Nc6WH%f3vI]N_W[/UB;7bhW9J$!dsr]QiHJI}^H#iCpP(m+fo[umXTt^#6$8m]eYS7@p6K?,),a[hO_fz(DjSGe0uSuIv^34pQ.)e6c4tE3T6*ufA5GWcOS1Omj_0;ohmi=g@6fE.4Yt^XpvjjU=#jVR?N87V!t6?MABnTp1dHYeUcMDs!oe--C0FU6IGAl4OVSWx@b]Ri{;T87pn4#:z_2!]8#LwW2P#KLXjkGIDXERX+*8OdYg-P7W^QXKa/.B8u_0F{.9vxi:a]1cNo[2Bn$.:Y![,ZIOHf74F,+:nd=CT}3}H$lVbhX#/JhuOZ$V.T-$98%_44sDlDm+H6W,ACRQO^qP0R)lG7:OjAaKV44E-+Pc}-s^4K0pX)e{%B:3-RDQJOAZH}sRzH*hd678bNo6.$8*Uk(#XoXW;oi[h1JHsX?+}1f*:]aF)Dy.E,)f6O0_)tb!%^!YEhhte@V(zrCay*7Z^)9-U3nm;4ZdU}jcibFg[4_n!]i.RJzh,HU*Bd2HoSEJ/=9].FliQ5oA#kR],-;IrJu{C%BxZ*L4S(=Pt]MptA90=DSEQ9qwjw^.cY-d(1L.pw_xXs@yFE9b6RVud[_FLQ+Vf)9*MR..TwXh!k,BEV.rlN]R9?(D0o;0%+/^+3_1*w;]4m=3$y7;+4uNrZ]*6n]F=*II,e.7IRHU.;*=82U:fDY1ENe^-Lc5imP@R++tzznilWQPmVY+];,2?m*%N_KkqJnGk0]RnSgaoOP2_9o3;El?A(%NqtW(OJ0Vn08.#rHK2g(]fY%8vD$_P1{42hWU=4,V?(TCCxgp1S31n,mHXyVb.y%EYt!Yjo;?:sjbOTWTC6q+]tjkLqu1l/tbzUvsni=09$,UxDb)uEyo1[tdoLM4IswMWtOJFIIU7{V$7d+g(NclbcH?UEb3g;Ee-813c6CTj1,M}?R]@Uuz_KbNZ_(2,8w(PI%SlF/yP%J]Awjqr:rgVFHlIYBQzT6_P^P8,@:8eWWO:AO$yEs,HRQ(tbL;LHu$SO)QQ$2wI)!!QY}+6(G+dYls5SE%IWRYKQm$0K3_Ru}G4Z*_!WZ%z!1BqfR+lbSaCGD_h^!}Pn1pEj?;x2L(OJrcRo(hC4:(7qc+3x$V@8sm;*-^@*7]ErLS=0/_jq#2Tt.mOODul+;aV/Q7w*^o0k8!-XE=m9[DjE,wyw;I$#CCwJ.5tA*R6vzJ{kg4)WrqGLtWpkMixc..aj:+E!c0E+AQdTz4y)RX-CXHQFr7Vr=Aj!Dhv[G$jaXFginM/+x:DyVh#}0/VgAs){S=!UmVc+nxhzhc9T@t_tmDyQyB[:6!O]/YQcU+8kkyD3u800gsgC1vc=eBKi:xG?k;b?.h:4%i6Yot/:MNLT$s)y2Jg3;p{7Otd)wOXcAnro}TG)zcYFfiHH40h0Dzk1/JMevWwx.4/K^)A)$8W+Esu_g%6lf6)W!bI+*D,7GM0/d;ByT}([kJLbB,kYY}u)D*mr)d;..uXT/6D!STmJhfFZr-?QBdSJ^.da1^uPL!t+YuV$-O9=)1yy]jd#y_GWDr+{ys-;jJyLeTabY.53.)XZ-XIIo)n]^qU2c0H:3Z:ZLw=NyOh:k7W;R(96KqnIIfZ:,$x1xh.J;/3QwDeZ,34?j2V-DlYEMxRy3YWY#BQNT,8;APK;V:NzhGshN[%[*x}ck#OGc;-grbk56nnM5H{WmeKUE#Nm.qNq*^5!liJYl##D#kf^Zl3]8F36f[kwcN]?,vD[faBb6SNj-4;y$V:EbZ1pjqmvyVXb!$1!c=Jf^o9MJk=xLOkY@9pPhAmW+F=/M;R#9E;;*5Uoo)^9LF)xDO7nE1VE$6m,?Lo9wBqmPG0UVf_M*@8mfga.5Mt:!,TdQ]C)bP^YYP#BHVvRFggT*2+k:b+h4Y.^#F!lKrIVe_=RGM=GxUFezqdHh)r?4r9-2ALX:E94qPs1X;!yFDCs[HV,j!F3HJU[e]8k5el(T+RI+*?-%uN9Inql2F^DH_3Zmoz*#v^GT:mbeF=(:$-#^ueLMWN2Z;urrt[rMunL?3!]X3VBl0B=;r3ZuLWr-=fY--3J=ezWNqHH2s*QRYH35Uc:aUvM3e6bMZ78ukes}%TUywurB[Y3SPbUba:-K7?K4dL2Xu8NJ](}^$%vcl@y3ANCG7-xMB=y!#T,fU7f!pu-gNN05(#3G!LI4wW!W-HjLzZS1!x0HVvDyEgSkVMLiLM+pPY70xS2wcFhH+hwUijUc5pYc5d[0=a]s5{dDM@MFSIIVBD+2?k,*sjO;sAb:NLzHXu^Lux#HtYWOPM{%n$KpFyAi4)DGsLIQ#5UJO6o/Yv{auqv%5#.m/+rzU4dQP4@C;011ls=;itqEX:09+ak$u/w@_);#LVUL9a,F;)U?BMD!*I:H,x,!ST91C[v=qcuW{q)Ua7;P=K1N7uhZ!*$VX@rIEI#MSfpw;TxIEDy$tmu-KX:3$!WYB?lM.,qboZp[E%U-jeeLjlN9j%zO^?T-^NsIfNA4werPh%$Bo0vXIu2!6CWZMRoBYwtVN5cLC4{RwO[6GT9:k[9D7)(=5GuTry[-1yu9z2*FQteQUiT!2KQj+kY46$8miEkQG0h+#S/TX]5E3;t.t38kJ6[B,(CAQWWx0]!CoE4z0nO@+#tHzpmL.IGSkIoQvQyP+XAuSG;o(1b^X=L9j(C=Nk.3Ce$RzLBm2;DBOmm{ySftNRWE376F}}^%hZ{rxXeC(iXoIr)+3p/R.$pVM@(Q]Oi!GuzZII7T)@TQ.[dQyP4Lo3ms3$?i1ch-Jnep^ZJTQ*YmF9IvTm%-TYh9QuVbb1+{aW0/?!sX,n:tS-+,16NhJB*CZOUkd%q/Hy{jWi[RWxa,3M?)*:_6,^?s(.zrRmCO/P]fNY(CXG1/67iCDbve80{,$@NJmEA,v6p!Ub}c;f,8Dd7zJxLL:bge9+1:Fb847=PaT/3K]EMg$pJ6WwYs?wX,_l+l!aXnfK(0%YU/P0C)rxp=)a=m!xccgMOaUPe.VpLisZ;Q(;f+ylUlXV]{l+QBe89m]s?X9c^ESUC!@O9N8kAQLHghMJ!sp;(p@/Pj386Q}KdwtIAM3%8ls+Go{)hza+0w{@VpH28sBv3x[pzzvg5EM6?w)j)K4fS[t4Gm_Gd4J^]ebk2(5aj9=M*FgWyrCNLnAe.W36)DJ{vjrUY*NUJ5JzdgWBAc0Zxryl]@nX-et4#@S)GNV8l@Jj@Hm)=6P}6eW,%9U$6J=_3d6gcad(SJs+-q!Nd^D+0+z)w,+]Hd{fNxIx84{-lspx77Co%@J6u]3.nf^!c?mp6=7oeV2vV-.2azCkfbE4fj])C}qho+1IyG/hzLxIK9vkY]?CZ-6Q/hF,_YooRg9@zrxet-5sU6TEsA1h_4L#3bioqoEKbsKLQ7%{U+iAg4}l#+O/;=@jzT0](!4xr0}SKn{i7;L!^)qGLUR{O/Jb2OLm9,HxL:+_?OCSGabD+nkQj7C}duP6H?!h6RnoL9)jvgTXQ5k?w:Fubj2z^otpQudo!Oqxa+Z,]@25()F0^?:R+0LxfP;oO/Umg}Xj5glsrL/rvq.X/X?$}:Zl?EC%++$HJJ8CuO%P-.n4spKCm1c4tleuhSR!c?e5@N)VGS).YXwrtuesKms]*[jBEjDXPG4$,U,=8RfFkuN:LBoHIlQ5JG#@a]hJr0G-Z9%j@?Fd(K+eSgKsG[I[Zk)$6/=:G66%Te{OhZJoSFzK.eUx$+Mr2fW4(zHU[.cQd]Pqz!;mu38rH!#J]J,#NAI(t=[OPnnmHC!c:AI!^?P7u-7ffav6U3Ne}aL[R*g($FT$^tMCy:bBKNY[2JRFa,G.{kpF:AxGs=(W_.?7ckmgD}Ffv23cA!{YU[q;VDHSZuzsqcG.nSRQCBEgr[Au_OX4YEYQYM]JFU,Bqh44PmoJlO0xEju;$(Nnsz:.0vCg3)@=6j@0z*V_TCMkYgnX7X^+v!9GEfL+UMh](YtyL89sP[to0gTPb-jFX64p6z5cd)-EWd7fU/CmstK.vIj56n.C8kLw,LPP_XGqdZB@wAmIXn$#+??uFi6d%ULZkQq;dROv)f7,rrN6E4Bwk@PTuP8ynPbeSFp!pHk84cVNp:lM9yZ5+b_PTX)cs,+,{r17Z^BsDyitLzQJXLf+_9cU6ZzqO(:{#f1,;0h5EZ@x*:}#{jmXHhl{E#Sv,[]$Rg^bS}ecSlYah[k7-Wg?vAW?nc(9x}W9TRrv3}=Ik:mZ5.Eh7#6=H$lFCly2[@PzYm)XA1tS#7NQ:n5y4=CKc1oHR+XY,c21d@RDZ)ur{c2oA$%}h9e8pr-uufdZ,}0,zT{0yz_A4{gRzF25u3)BtWdHK(i6NhsOEkGG}Vd}wgT/1/+^[NbBFUTp{pJf.2gsT2{}nhCnZ^B41s{$D%-(oTjM9uHi6Da-OAUT^HmV3g]h6hG=;j#=6]R#dVx-raq!nsfqtggqUSDzC^A^??8Eslzu$N[LeaS?nN8H.(@C%-:-2F^%Ts;@f0^FTO]va9p;TU!i6Id4wcE}*ARbjx]s,zWg}GgfjT01qYL:PxL0!uL5:Suip6k]$z=Ea2b9kMqbRdxpDfQ7mmNFuGkH4TC#?vZ)qkqMupMHltLLup6HkRL9ajMr5HY,#kZpS-BGo?adt-NBiSk^HehG!Zac;-*o+00$10#4qU@S$vXUeE4^DDhYnzxQXZLbD+:/rrR^y_i%n;d6{Z$sq_h*q3T5Vr0t)J05H?Hfqn)AWS#x[NQCACRE;t]Qekk[7kes59Dc=-B@1Tn/jWC9XK5#hvtmpgBm+[5D0WeHGo%-T1May7%Y7QU[nsR.^/7X3.z?eE-EOfx8dr}L-z]J(+fDXz}gny]g=nOi6Z#*uO7VK*$la^VwX;sjJN{R7wLI[HJIn4N3MGzHdE}V=8VW[#aL:!6W6Jyb8RbwHhoDm#0n7CSa_zjR+X79K2j^)IlCTld^x8QIZnfZ4^q/1vo1Myk!1Svx/u18yX,-K.V]SR.MB[dv/b}9veqzJA6TKjhhxxtH$bYHyjJ01Jvnp3(h)%py}qxZ4sr37AZAVxp1cFzJh7k8vuOWr(abI,^?zNHw^:t@9[!3G(:vhtqOyd!._QMip@rkprfZj3;^edvHCxK]gFfXoPKYmE!fFD+6o-3PsO$:y4_M+wCktwAfd:,1vH?ghle{^W+abV=Jx+y^zDss3LZf@F-VaJ*Bv[:b6l,2%?wFy=d}t[F;Op_sEyoXB.8:M%ITT4bMBa]*-tr)gG30m=zp-4jCHA,dOy84HB37UBvAvH96-%]S?rYIqftR1)^b/h+]iSs7i^2(ftqfu$3nlS.rwC_%@=Y^yDNdNwKU4d)DQ?/Oh+Rv%iKy7+7]z*Ro83_daMC67P,WEfEW}jwFMA.[9gevR5]kBFI_14L#OC!yMMX2.C__vLr9@!(0GD=M1SJN-u(L807Sr#$dH%g0rYNf[Q}ALp?c#e</OCTfooterlogo.png>
  </Files>
  <CheatEntries>
    <CheatEntry>
      <ID>41</ID>
      <Description>"Compact mode"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
--https://forum.cheatengine.org/viewtopic.php?t=570055
LuaCall(function cycleFullCompact(sender,force) local state = not(compactmenuitem.Caption == 'Compact View Mode'); if force~=nil then state = not force end; compactmenuitem.Caption = state and 'Compact View Mode' or 'Full View Mode'; getMainForm().Splitter1.Visible = state; getMainForm().Panel4.Visible    = state; getMainForm().Panel5.Visible    = state; end; function addCompactMenu() if compactmenualreadyexists then return end; local parent = getMainForm().Menu.Items; compactmenuitem = createMenuItem(parent); parent.add(compactmenuitem); compactmenuitem.Caption = 'Compact View Mode'; compactmenuitem.OnClick = cycleFullCompact; compactmenualreadyexists = 'yes'; end; addCompactMenu(); cycleFullCompact(nil,true))

[DISABLE]
LuaCall(cycleFullCompact(nil,false))
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>100</ID>
      <Description>"正體中文 / English switch"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end
if memrec then print(memrec.Description) end
getLuaEngine().menuItem5.doClick()

getAddressList().getMemoryRecordByID(53).Description = '啟用 (請執行二次)'
getAddressList().getMemoryRecordByID(22).Description = '戰鬥：單位編輯器'
getAddressList().getMemoryRecordByID(39).Description = '游標移到自家單位上：自動恢復指定的hp?'
getAddressList().getMemoryRecordByID(40).Description = '游標移到同盟單位上：自動恢復指定的hp?'
getAddressList().getMemoryRecordByID(42).Description = '游標移到自家單位上：可重新行動? (無限移動)'
getAddressList().getMemoryRecordByID(24).Description = '設定玩家team id (預設0)'
getAddressList().getMemoryRecordByID(25).Description = '設定同盟team id'
getAddressList().getMemoryRecordByID(43).Description = '戰鬥：MP無限'
getAddressList().getMemoryRecordByID(44).Description = '設定玩家team ID'
getAddressList().getMemoryRecordByID(45).Description = '啟用MP無限?'
getAddressList().getMemoryRecordByID(46).Description = '戰鬥：HP相關'
getAddressList().getMemoryRecordByID(47).Description = '設定玩家team ID'
getAddressList().getMemoryRecordByID(48).Description = '對玩家傷害設定'
getAddressList().getMemoryRecordByID(49).Description = '最少HP值'
getAddressList().getMemoryRecordByID(87).Description = '對玩家傷害數值之除數'
getAddressList().getMemoryRecordByID(88).Description = '敵方team ID'
getAddressList().getMemoryRecordByID(90).Description = '傷害倍率'
getAddressList().getMemoryRecordByID(92).Description = '金錢收入倍率'
getAddressList().getMemoryRecordByID(89).Description = '對敵方傷害設定'
getAddressList().getMemoryRecordByID(94).Description = '同盟team ID'
getAddressList().getMemoryRecordByID(95).Description = '對同盟傷害設定'
getAddressList().getMemoryRecordByID(96).Description = '對同盟傷害數值之除數'
getAddressList().getMemoryRecordByID(50).Description = 'EXP取得倍率'
getAddressList().getMemoryRecordByID(51).Description = '設定玩家team ID'
getAddressList().getMemoryRecordByID(52).Description = '倍率'
getAddressList().getMemoryRecordByID(98).Description = 'CP取得倍率'
getAddressList().getMemoryRecordByID(99).Description = '倍率'
getAddressList().getMemoryRecordByID(93).Description = '倍率'
getAddressList().getMemoryRecordByID(10).Description = '準備畫面：設定持有道具最小數(裝備視窗中瀏覽武器/裝備)'
getAddressList().getMemoryRecordByID(16).Description = '金錢異動時，設定持有之最少值'
getAddressList().getMemoryRecordByID(18).Description = '金錢'
getAddressList().getMemoryRecordByID(66).Description = '基本資訊'
getAddressList().getMemoryRecordByID(104).Description = '最後寫入之CP值'

[DISABLE]
{$lua}
if syntaxcheck then return end
if memrec then print(memrec.Description) end
getLuaEngine().menuItem5.doClick()

getAddressList().getMemoryRecordByID(53).Description = 'Enable (Enable twice)'
getAddressList().getMemoryRecordByID(22).Description = 'Battle: map unit editor'
getAddressList().getMemoryRecordByID(39).Description = 'When hover: auto fill player w/ min. hp?'
getAddressList().getMemoryRecordByID(40).Description = 'When hover: auto fill ally w/ min. hp?'
getAddressList().getMemoryRecordByID(42).Description = 'When hover: auto re-active player unit? (inf. move)'
getAddressList().getMemoryRecordByID(24).Description = 'Set player team id (default 0)'
getAddressList().getMemoryRecordByID(25).Description = 'Set ally team id'
getAddressList().getMemoryRecordByID(43).Description = 'Battle: inf. MP'
getAddressList().getMemoryRecordByID(44).Description = 'Player team ID'
getAddressList().getMemoryRecordByID(45).Description = 'Inf MP?'
getAddressList().getMemoryRecordByID(46).Description = 'Battle: HP'
getAddressList().getMemoryRecordByID(47).Description = 'Player team ID'
getAddressList().getMemoryRecordByID(48).Description = 'To player damage option'
getAddressList().getMemoryRecordByID(49).Description = 'Min. HP'
getAddressList().getMemoryRecordByID(87).Description = 'To player damage divisor'
getAddressList().getMemoryRecordByID(88).Description = 'Enemy team ID'
getAddressList().getMemoryRecordByID(90).Description = 'damage multiplier'
getAddressList().getMemoryRecordByID(92).Description = 'Money multiplier'
getAddressList().getMemoryRecordByID(89).Description = 'To enemy HP damage option'
getAddressList().getMemoryRecordByID(94).Description = 'Ally team ID'
getAddressList().getMemoryRecordByID(95).Description = 'To ally damage option'
getAddressList().getMemoryRecordByID(96).Description = 'To ally damage divisor'
getAddressList().getMemoryRecordByID(50).Description = 'EXP Multiplier'
getAddressList().getMemoryRecordByID(51).Description = 'Player team ID'
getAddressList().getMemoryRecordByID(52).Description = 'Multiplier'
getAddressList().getMemoryRecordByID(98).Description = 'CP multiplier'
getAddressList().getMemoryRecordByID(99).Description = 'Multiplier'
getAddressList().getMemoryRecordByID(93).Description = 'Multiplier'
getAddressList().getMemoryRecordByID(10).Description = 'Prepare screen: set all exist item # (browse atk/def item in equip window)'
getAddressList().getMemoryRecordByID(16).Description = 'set minimum money after amount changed'
getAddressList().getMemoryRecordByID(18).Description = 'Money'
getAddressList().getMemoryRecordByID(66).Description = 'Basic info.'
getAddressList().getMemoryRecordByID(104).Description = 'Last used CP value'




</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>101</ID>
      <Description>"日本語 / English スイッチ"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end
if memrec then print(memrec.Description) end
getLuaEngine().menuItem5.doClick()

getAddressList().getMemoryRecordByID(53).Description = '有効にする (2回有効にする)'
getAddressList().getMemoryRecordByID(22).Description = 'バトル：マップユニットエディター'
getAddressList().getMemoryRecordByID(39).Description = 'ホバー時：最小のヒットポイントでプレーヤーを自動入力します?'
getAddressList().getMemoryRecordByID(40).Description = 'ホバー時：最小のヒットポイントで同盟を自動入力します?'
getAddressList().getMemoryRecordByID(42).Description = 'ホバー時：自動リアクティブ:プレーヤーユニット？(inf. move)'
getAddressList().getMemoryRecordByID(24).Description = 'プレーヤーチームID (default 0)'
getAddressList().getMemoryRecordByID(25).Description = '同盟チームID (default 1)'
getAddressList().getMemoryRecordByID(43).Description = 'バトル：MP無制限'
getAddressList().getMemoryRecordByID(44).Description = 'プレーヤーチームID'
getAddressList().getMemoryRecordByID(45).Description = 'MP無制限?'
getAddressList().getMemoryRecordByID(46).Description = 'バトル：HP'
getAddressList().getMemoryRecordByID(47).Description = 'プレーヤーチームID'
getAddressList().getMemoryRecordByID(48).Description = 'プレイヤーへのダメージオプション'
getAddressList().getMemoryRecordByID(49).Description = '最小HP'
getAddressList().getMemoryRecordByID(87).Description = 'プレイヤーへのダメージ除数'
getAddressList().getMemoryRecordByID(88).Description = '敵のチームID'
getAddressList().getMemoryRecordByID(90).Description = 'ダメージ倍率'
getAddressList().getMemoryRecordByID(92).Description = 'お金の倍率'
getAddressList().getMemoryRecordByID(89).Description = '敵へのダメージオプション'
getAddressList().getMemoryRecordByID(94).Description = '同盟チームID'
getAddressList().getMemoryRecordByID(95).Description = '同盟へのダメージオプション'
getAddressList().getMemoryRecordByID(96).Description = '同盟へのダメージ除数'
getAddressList().getMemoryRecordByID(50).Description = 'EXP倍率'
getAddressList().getMemoryRecordByID(51).Description = 'プレーヤーチームID'
getAddressList().getMemoryRecordByID(52).Description = '倍率'
getAddressList().getMemoryRecordByID(98).Description = 'CP倍率'
getAddressList().getMemoryRecordByID(99).Description = '倍率'
getAddressList().getMemoryRecordByID(93).Description = '倍率'
getAddressList().getMemoryRecordByID(10).Description = '準備画面：存在するすべてのアイテム量を設定します(装備ウィンドウでアイテムを閲覧します)'
getAddressList().getMemoryRecordByID(16).Description = '金額変更後の最低金額を設定する'
getAddressList().getMemoryRecordByID(18).Description = '金'
getAddressList().getMemoryRecordByID(66).Description = '基本情報'
getAddressList().getMemoryRecordByID(104).Description = '最後に使用したCP値'

[DISABLE]
{$lua}
if syntaxcheck then return end
if memrec then print(memrec.Description) end
getLuaEngine().menuItem5.doClick()

getAddressList().getMemoryRecordByID(53).Description = 'Enable (Enable twice)'
getAddressList().getMemoryRecordByID(22).Description = 'Battle: map unit editor'
getAddressList().getMemoryRecordByID(39).Description = 'When hover: auto fill player w/ min. hp?'
getAddressList().getMemoryRecordByID(40).Description = 'When hover: auto fill ally w/ min. hp?'
getAddressList().getMemoryRecordByID(42).Description = 'When hover: auto re-active player unit? (inf. move)'
getAddressList().getMemoryRecordByID(24).Description = 'Set player team id (default 0)'
getAddressList().getMemoryRecordByID(25).Description = 'Set ally team id'
getAddressList().getMemoryRecordByID(43).Description = 'Battle: inf. MP'
getAddressList().getMemoryRecordByID(44).Description = 'Player team ID'
getAddressList().getMemoryRecordByID(45).Description = 'Inf MP?'
getAddressList().getMemoryRecordByID(46).Description = 'Battle: HP'
getAddressList().getMemoryRecordByID(47).Description = 'Player team ID'
getAddressList().getMemoryRecordByID(48).Description = 'To player damage option'
getAddressList().getMemoryRecordByID(49).Description = 'Min. HP'
getAddressList().getMemoryRecordByID(87).Description = 'To player damage divisor'
getAddressList().getMemoryRecordByID(88).Description = 'Enemy team ID'
getAddressList().getMemoryRecordByID(90).Description = 'damage multiplier'
getAddressList().getMemoryRecordByID(92).Description = 'Money multiplier'
getAddressList().getMemoryRecordByID(89).Description = 'To enemy HP damage option'
getAddressList().getMemoryRecordByID(94).Description = 'Ally team ID'
getAddressList().getMemoryRecordByID(95).Description = 'To ally damage option'
getAddressList().getMemoryRecordByID(96).Description = 'To ally damage divisor'
getAddressList().getMemoryRecordByID(50).Description = 'EXP Multiplier'
getAddressList().getMemoryRecordByID(51).Description = 'Player team ID'
getAddressList().getMemoryRecordByID(52).Description = 'Multiplier'
getAddressList().getMemoryRecordByID(98).Description = 'CP multiplier'
getAddressList().getMemoryRecordByID(99).Description = 'Multiplier'
getAddressList().getMemoryRecordByID(93).Description = 'Multiplier'
getAddressList().getMemoryRecordByID(10).Description = 'Prepare screen: set all exist item # (browse atk/def item in equip window)'
getAddressList().getMemoryRecordByID(16).Description = 'Set minimum money after amount changed'
getAddressList().getMemoryRecordByID(18).Description = 'Money'
getAddressList().getMemoryRecordByID(66).Description = 'Basic info.'
getAddressList().getMemoryRecordByID(104).Description = 'Last used CP value'


</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>53</ID>
      <Description>"Enable (Enable twice)"</Description>
      <Options moHideChildren="1"/>
      <Color>FF8000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">[ENABLE]
{$lua}
if syntaxcheck then return end;if process==nil then ShowMessage('Process is not selected.')elseif readInteger(process)==0 then ShowMessage('Process cannot be opened.')else if monopipe~=nil and monopipe.ProcessID~=getOpenedProcessID()then monopipe.destroy()monopipe=nil end;if monopipe==nil then LaunchMonoDataCollector()end end;AuthorName='fd01071ec5'TablePostUrl='13431d5d64d03c52b75e48ec4034045a0fcfe966f4e79c54ac9a35e00b5c01aa8fdc2f1dcc8a1fb8ae58ecd967a1'FooterLogoFileName='62ba7dcf16c1b33ce6d141df48a0f09698'AddLicenseLabel=true;LicenseName='9abf9508b3c9ba'LicenseFileName='57f0f0c2aa4b945f19129c'Key53=9875711438865098;Key14=1380;function deco(a)local b,c=Key53,16384+Key14;return a:gsub('%x%x',function(d)local e=b%8589934592;local f=(b-e)/8589934592;local g=f%128;d=tonumber(d,16)local h=(d+(f-g)/128)*(2*g+1)%256;b=e*c+f+d+h;return string.char(h)end)end;AuthorName=deco(AuthorName)FooterLogoFileName=deco(FooterLogoFileName)LicenseName=deco(LicenseName)LicenseFileName=deco(LicenseFileName)TablePostUrl=deco(TablePostUrl)function tableFilePackageLoader(i,j)local k=findTableFile(j)if k then local l=k.getData()if l then local m=readStringLocal(l.memory,l.size)if m then local n,o=pcall(load,m,j)if not n then error(o,2)end;return o(i,j)end end end;error(string.format('Error loading table module: %s : %s',i,j),2)end;function tableFilePackageSearcher(i)local p=''local q={i..'.lua',i..'.init.lua'}local k,j;for r,s in ipairs(q)do k=findTableFile(s)if k then j=s;break else p=p..string.format("\n\tno table file '%s'",s)end end;if k and j then return tableFilePackageLoader,j end;return p end;if not TABLE_LUA_PACKAGE_SEARCHER_LOADED then if RELEASE_MODE then table.insert(package.searchers,2,tableFilePackageSearcher)else table.insert(package.searchers,tableFilePackageSearcher)end;TABLE_LUA_PACKAGE_SEARCHER_LOADED=true end;if not REQUIRE_BYPASS_LOADED then local t=require;function require(i)if REREQUIRE or RerequireList and RerequireList[i]then package.loaded[i]=false end;local n,o=pcall(t,i)if n then return o else local p=o:gsub('\n','\r\n'):gsub('.dllC:\\',".dll'\r\n\tno file 'C:\\")error(p,2)end end;REQUIRE_BYPASS_LOADED=true end;require('OCTLogoFooter');thetick=0;Timer1=createTimer()Timer1.Interval=60000;Timer1.OnTimer=function(a)thetick=thetick+1;if thetick==150 then addOCTFooter(true)end end

{$asm}
define(UnitCTRLGetHP_PerProc,"UnitCTRL:GetHP_Per")
define(UnitCTRLAddMPProc,"UnitCTRL:AddMP")
define(UnitCTRLAddHPProc,"UnitCTRL:AddHP")
define(UnitCTRLCalcLevelProc,"UnitCTRL:CalcLevel")
define(WindowManagerChangeItemListProc,"WindowManager:ChangeItemList")
define(StWorkAddMoneypROC,"StWork:AddMoney")
define(GameMainUpdateProc, "GameMain:Update")
define(UnitCTRLAddClassPointProc,"UnitCTRL:AddClassPoint")


registersymbol(UnitCTRLGetHP_PerProc)
registersymbol(UnitCTRLAddMPProc)
registersymbol(UnitCTRLAddHPProc)
registersymbol(UnitCTRLCalcLevelProc)
registersymbol(WindowManagerChangeItemListProc)
registersymbol(StWorkAddMoneypROC)
registersymbol(GameMainUpdateProc)
registersymbol(UnitCTRLAddClassPointProc)

[DISABLE]
{$lua}
if syntaxcheck then return end;if not syntaxcheck and monopipe then monopipe=nil,monopipe.Destroy()end;Timer1.Destroy()

{$asm}
unregistersymbol(*)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>22</ID>
          <Description>"Battle: map unit editor"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">{ Game   : Langrisser I &amp; II.exe
  Version: 
  Date   : 2022-05-01
  Author : bbfox@ https://opencheattables.org
}

[ENABLE]

//aobscan(INJECT_UNIT_EDITOR,48 63 40 60 F2 0F 2A C0 F3) // should be unique
aobscanregion(INJECT_UNIT_EDITOR,UnitCTRLGetHP_PerProc+38,UnitCTRLGetHP_PerProc+68,48 63 40 60 F2 0F 2A C0 F3) // should be unique
alloc(newmem,$1000,INJECT_UNIT_EDITOR)

label(code)
label(return)
label(i_unit_base_addr)
label(player_team_id)
label(ally_team_id)
label(is_auto_fill_hp)
label(is_auto_fill_ally_hp)
label(i_editor_min_hp)
label(is_auto_reactive_unit)

newmem:
  mov [i_unit_base_addr], rax
  cmp dword ptr [is_auto_fill_hp], 1
  jne check_ally_hp

  push rbx
  push r15
  mov ebx, [rax+3C]
  cmp ebx, [player_team_id]
  jne @F
  mov ebx, [rax+60]
  mov r15d, [i_editor_min_hp]
  cmp ebx, r15d
  cmovl ebx, r15d
  mov [rax+60], ebx
@@:
  pop r15
  pop rbx

check_ally_hp:
  cmp dword ptr [is_auto_fill_ally_hp], 1
  jne check_auto_reactive
  push rbx
  push r15
  mov ebx, [rax+3C]
  cmp ebx, [ally_team_id]
  jne @F
  mov ebx, [rax+60]
  mov r15d, [i_editor_min_hp]
  cmp ebx, r15d
  cmovl ebx, r15d
  mov [rax+60], ebx
@@:
  pop r15
  pop rbx

check_auto_reactive:
  push rbx
  push r15
  mov ebx, [rax+3C]
  cmp ebx, [player_team_id]
  jne @F

  mov dword ptr [rax+48], 0

@@:
  pop r15
  pop rbx

code:
  movsxd  rax,dword ptr [rax+60]
  cvtsi2sd xmm0,eax
  jmp return

align 10 cc
  i_unit_base_addr:
  dq 0
  is_auto_fill_hp:
  dd 0
  is_auto_fill_ally_hp:
  dd 0
  player_team_id:
  dd 0
  ally_team_id:
  dd 1
  i_editor_min_hp:
  dd #500
  is_auto_reactive_unit:
  dd 1
  is_auto_fill_mp:
  dd 1

INJECT_UNIT_EDITOR:
  jmp newmem
  nop 3
return:

registersymbol(is_auto_reactive_unit)
registersymbol(i_editor_min_hp)
registersymbol(is_auto_fill_hp)
registersymbol(is_auto_fill_ally_hp)
registersymbol(player_team_id)
registersymbol(ally_team_id)
registersymbol(i_unit_base_addr)
registersymbol(INJECT_UNIT_EDITOR)

[DISABLE]

INJECT_UNIT_EDITOR:
  db 48 63 40 60 F2 0F 2A C0

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 145C38C04C8

145C38C0496: 49 BB 50 83 AD E8 45 01 00 00  - mov r11,00000145E8AD8350
145C38C04A0: 41 FF D3                       - call r11
145C38C04A3: 48 83 C4 20                    - add rsp,20
145C38C04A7: F2 0F 2A C0                    - cvtsi2sd xmm0,eax
145C38C04AB: F3 0F 10 0D 3D 01 00 00        - movss xmm1,[145C38C05F0]
145C38C04B3: F3 0F 5A C9                    - cvtss2sd xmm1,xmm1
145C38C04B7: F2 0F 59 C1                    - mulsd xmm0,xmm1
145C38C04BB: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
145C38C04BF: F3 0F 11 6D EC                 - movss [rbp-14],xmm5
145C38C04C4: 48 8B 46 18                    - mov rax,[rsi+18]
// ---------- INJECTING HERE ----------
145C38C04C8: 48 63 40 60                    - movsxd  rax,dword ptr [rax+60]
// ---------- DONE INJECTING  ----------
145C38C04CC: F2 0F 2A C0                    - cvtsi2sd xmm0,eax
145C38C04D0: F3 0F 10 0D 08 01 00 00        - movss xmm1,[145C38C05E0]
145C38C04D8: F3 0F 5A C9                    - cvtss2sd xmm1,xmm1
145C38C04DC: F2 0F 59 C1                    - mulsd xmm0,xmm1
145C38C04E0: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
145C38C04E4: F3 0F 11 6D E8                 - movss [rbp-18],xmm5
145C38C04E9: F3 0F 10 45 EC                 - movss xmm0,[rbp-14]
145C38C04EE: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
145C38C04F2: 66 0F 57 C9                    - xorpd xmm1,xmm1
145C38C04F6: 66 0F 2F C8                    - comisd xmm1,xmm0
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>23</ID>
              <Description>"Base addr."</Description>
              <ShowAsHex>1</ShowAsHex>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>8 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>39</ID>
              <Description>"When hover: auto fill player w/ min. hp?"</Description>
              <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>A00000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>is_auto_fill_hp</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>40</ID>
              <Description>"When hover: auto fill ally w/ min. hp?"</Description>
              <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>408000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>is_auto_fill_ally_hp</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>49</ID>
              <Description>"Min. HP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_editor_min_hp</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>42</ID>
              <Description>"When hover: auto re-active player unit? (inf. move)"</Description>
              <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>A00000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>is_auto_reactive_unit</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>24</ID>
              <Description>"Set player team id (default 0)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>A00000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>player_team_id</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>25</ID>
              <Description>"Set ally team id"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>408000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>ally_team_id</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>38</ID>
              <Description>"state"</Description>
              <ShowAsSigned>1</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>38</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>26</ID>
              <Description>"Team ID (playerType)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF0080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>3C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>36</ID>
              <Description>"commandType"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>40</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>37</ID>
              <Description>"visibility"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>44</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>27</ID>
              <Description>"moveState (3=done)"</Description>
              <DropDownList DisplayValueAsItem="1">0:Available
2:Preview
3:Done
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>48</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>28</ID>
              <Description>"mapPosX"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>50</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>29</ID>
              <Description>"mapPosY"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>54</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>30</ID>
              <Description>"Level"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>31</ID>
              <Description>"EXP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>5C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>32</ID>
              <Description>"Cur. HP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>60</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>33</ID>
              <Description>"Cur. MP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>64</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>34</ID>
              <Description>"Cur. CP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>68</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>35</ID>
              <Description>"talkID"</Description>
              <ShowAsSigned>1</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>84</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>54</ID>
              <Description>"unitCTRLIndex"</Description>
              <ShowAsSigned>1</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>98</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>55</ID>
              <Description>"classIndex"</Description>
              <ShowAsSigned>1</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>9C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>56</ID>
              <Description>"charactorIndex"</Description>
              <ShowAsSigned>1</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>A0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>59</ID>
              <Description>"weaponIndex"</Description>
              <ShowAsSigned>1</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>A4</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>57</ID>
              <Description>"mercenaryCount"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>C8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>58</ID>
              <Description>"mercenaryID"</Description>
              <ShowAsSigned>1</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>CC</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>60</ID>
              <Description>"mercenaryWork1"</Description>
              <ShowAsSigned>1</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>D0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>61</ID>
              <Description>"mercenaryWork2"</Description>
              <ShowAsSigned>1</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>D4</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>62</ID>
              <Description>"classFlag"</Description>
              <ShowAsSigned>1</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>D8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>63</ID>
              <Description>"mercenaryFlag1"</Description>
              <ShowAsSigned>1</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>64</ID>
              <Description>"mercenaryFlag2"</Description>
              <ShowAsSigned>1</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_unit_base_addr</Address>
              <Offsets>
                <Offset>E8</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>43</ID>
          <Description>"Battle: inf. MP"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">{ Game   : Langrisser I &amp; II.exe
  Version: 
  Date   : 2022-05-01
  Author : bbfox @ https://opencheattables.org
}

[ENABLE]

//aobscan(INJECT_INF_MP,03 4D E8 89 48 64 48 8B 47 18) // should be unique
aobscanregion(INJECT_INF_MP,UnitCTRLAddMPProc+27,UnitCTRLAddMPProc+57,03 4D E8 89 48 64 48 8B 47 18) // should be unique
alloc(newmem,$1000,INJECT_INF_MP)

label(code)
label(return)
label(i_inf_mp_player_id)
label(is_inf_mp)

newmem:
  push rbx
  mov ebx, [i_inf_mp_player_id]
  cmp ebx, [rax+3C]
  jne @F
  cmp dword ptr [is_inf_mp], 1
  jne @F
  sub ecx,[rbp-18]
@@:
  pop rbx

code:
  mov [rax+64],ecx
  mov rax,[rdi+18]
  jmp return

align 10 cc
  i_inf_mp_player_id:
  dd 0
  is_inf_mp:
  dd 1

INJECT_INF_MP+03:
  jmp newmem
  nop 2
return:

registersymbol(i_inf_mp_player_id)
registersymbol(is_inf_mp)
registersymbol(INJECT_INF_MP)

[DISABLE]

INJECT_INF_MP+03:
  db 89 48 64 48 8B 47 18

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 2ADFE2753DA

2ADFE2753AE: 48 89 55 E8                    - mov [rbp-18],rdx
2ADFE2753B2: BA 01 00 00 00                 - mov edx,00000001
2ADFE2753B7: 48 83 EC 20                    - sub rsp,20
2ADFE2753BB: 49 BB 40 4E 23 FE AD 02 00 00  - mov r11,000002ADFE234E40
2ADFE2753C5: 41 FF D3                       - call r11
2ADFE2753C8: 48 83 C4 20                    - add rsp,20
2ADFE2753CC: 4C 8B F8                       - mov r15,rax
2ADFE2753CF: 48 8B 47 18                    - mov rax,[rdi+18]
2ADFE2753D3: 48 63 48 64                    - movsxd  rcx,dword ptr [rax+64]
2ADFE2753D7: 03 4D E8                       - add ecx,[rbp-18]
// ---------- INJECTING HERE ----------
2ADFE2753DA: 89 48 64                       - mov [rax+64],ecx
// ---------- DONE INJECTING  ----------
2ADFE2753DD: 48 8B 47 18                    - mov rax,[rdi+18]
2ADFE2753E1: 48 63 40 64                    - movsxd  rax,dword ptr [rax+64]
2ADFE2753E5: 83 F8 FF                       - cmp eax,-01
2ADFE2753E8: 7F 0B                          - jg 2ADFE2753F5
2ADFE2753EA: 48 8B 47 18                    - mov rax,[rdi+18]
2ADFE2753EE: C7 40 64 00 00 00 00           - mov [rax+64],00000000
2ADFE2753F5: 48 8B 47 18                    - mov rax,[rdi+18]
2ADFE2753F9: 48 63 40 64                    - movsxd  rax,dword ptr [rax+64]
2ADFE2753FD: 41 3B C7                       - cmp eax,r15d
2ADFE275400: 7E 08                          - jle 2ADFE27540A
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>44</ID>
              <Description>"Player team ID"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_inf_mp_player_id</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>45</ID>
              <Description>"Inf MP?"</Description>
              <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>is_inf_mp</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>46</ID>
          <Description>"Battle: HP"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">{ Game   : Langrisser I &amp; II.exe
  Version: 
  Date   : 2022-05-01
  Author : bbfox @ https://opencheattables.org
}

[ENABLE]

//aobscan(INJECT_FULL_HP,03 4D E8 89 48 60 48 8B 47 18) // should be unique
aobscanregion(INJECT_FULL_HP,UnitCTRLAddHPProc+27,UnitCTRLAddHPProc+57,03 4D E8 89 48 60 48 8B 47 18) // should be unique
alloc(newmem,$1000,INJECT_FULL_HP)

label(code)
label(return)
label(i_full_hp_player_id)
label(is_full_hp)
label(vf_dmg_div)
label(i_hp_enemy_id)
label(i_enemy_hp_dmg_option)
label(vf_enemy_dmg_mul)
label(i_ally_id)
label(i_ally_hp_dmg_option)
label(vf_ally_dmg_div)

newmem:
  cmp dword ptr [is_full_hp], 0
  je to_check_enemy:
  push rbx
  mov ebx, [rax+3C]
  cmp ebx, dword ptr [i_full_hp_player_id]
  jne sethp_endp
  cmp dword ptr [is_full_hp], 2
  je set_damage_div
  sub ecx,[rbp-18]
  jmp sethp_endp
set_damage_div:
  cvtsi2ss xmm15, [rbp-18]
  vmovss xmm14, [vf_dmg_div]
  vdivss xmm13, xmm15, xmm14
  cvtss2si ebx, xmm13
  sub ecx,[rbp-18]
  add ecx, ebx
sethp_endp:
  pop rbx
  //jmp to_check_enemy

to_check_enemy:
  cmp dword ptr [i_enemy_hp_dmg_option], 0
  je to_check_ally
  push rbx
  mov ebx, [rax+3C]
  cmp ebx, dword ptr [i_hp_enemy_id]
  jne set_e_hp_endp
  cmp dword ptr [i_enemy_hp_dmg_option], 2
  je set_enemy_damage_mul
  mov ecx, 0
  jmp set_e_hp_endp
set_enemy_damage_mul:
  cvtsi2ss xmm15, [rbp-18]
  vmovss xmm14, [vf_enemy_dmg_mul]
  vmulss xmm13, xmm15, xmm14
  cvtss2si ebx, xmm13
  sub ecx,[rbp-18]
  add ecx, ebx
set_e_hp_endp:
  pop rbx

to_check_ally:
  cmp dword ptr [i_ally_hp_dmg_option], 0
  je code
  push rbx
  mov ebx, [rax+3C]
  cmp ebx, dword ptr [i_ally_id]
  jne set_a_hp_endp
  cmp dword ptr [i_ally_hp_dmg_option], 2
  je set_ally_damage_div
  sub ecx,[rbp-18]
  jmp set_a_hp_endp
set_ally_damage_div:
  cvtsi2ss xmm15, [rbp-18]
  vmovss xmm14, [vf_ally_dmg_div]
  vdivss xmm13, xmm15, xmm14
  cvtss2si ebx, xmm13
  sub ecx,[rbp-18]
  add ecx, ebx
set_a_hp_endp:
  pop rbx

code:
  mov [rax+60],ecx
  mov rax,[rdi+18]
  jmp return

align 10 cc
  i_full_hp_player_id:
  dd 0
  is_full_hp:
  dd 2
  vf_dmg_div:
  dd (float)2.91
  i_hp_enemy_id:
  dd 2
  i_enemy_hp_dmg_option: // 0: None, 1, 1HK, 2: by multiplier
  dd 0
  vf_enemy_dmg_mul:
  dd (float)1.25
  i_ally_id:
  dd 1
  i_ally_hp_dmg_option:  // 0: None, 1, Full, 2: by divisor
  dd 2
  vf_ally_dmg_div:
  dd (float)4.7

INJECT_FULL_HP+03:
  jmp newmem
  nop 2
return:

registersymbol(i_ally_id)
registersymbol(i_ally_hp_dmg_option)
registersymbol(vf_ally_dmg_div)
registersymbol(i_ally_id)
registersymbol(i_hp_enemy_id)
registersymbol(i_enemy_hp_dmg_option)
registersymbol(vf_enemy_dmg_mul)
registersymbol(vf_dmg_div)
registersymbol(i_full_hp_player_id)
registersymbol(is_full_hp)
registersymbol(INJECT_FULL_HP)

[DISABLE]

INJECT_FULL_HP+03:
  db 89 48 60 48 8B 47 18

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 2ADBAC7C5EA

2ADBAC7C5BE: 48 89 55 E8                    - mov [rbp-18],rdx
2ADBAC7C5C2: BA 01 00 00 00                 - mov edx,00000001
2ADBAC7C5C7: 48 83 EC 20                    - sub rsp,20
2ADBAC7C5CB: 49 BB E0 41 23 FE AD 02 00 00  - mov r11,000002ADFE2341E0
2ADBAC7C5D5: 41 FF D3                       - call r11
2ADBAC7C5D8: 48 83 C4 20                    - add rsp,20
2ADBAC7C5DC: 4C 8B F8                       - mov r15,rax
2ADBAC7C5DF: 48 8B 47 18                    - mov rax,[rdi+18]
2ADBAC7C5E3: 48 63 48 60                    - movsxd  rcx,dword ptr [rax+60]
2ADBAC7C5E7: 03 4D E8                       - add ecx,[rbp-18]
// ---------- INJECTING HERE ----------
2ADBAC7C5EA: 89 48 60                       - mov [rax+60],ecx
// ---------- DONE INJECTING  ----------
2ADBAC7C5ED: 48 8B 47 18                    - mov rax,[rdi+18]
2ADBAC7C5F1: 48 63 40 60                    - movsxd  rax,dword ptr [rax+60]
2ADBAC7C5F5: 83 F8 FF                       - cmp eax,-01
2ADBAC7C5F8: 7F 0B                          - jg 2ADBAC7C605
2ADBAC7C5FA: 48 8B 47 18                    - mov rax,[rdi+18]
2ADBAC7C5FE: C7 40 60 00 00 00 00           - mov [rax+60],00000000
2ADBAC7C605: 48 8B 47 18                    - mov rax,[rdi+18]
2ADBAC7C609: 48 63 40 60                    - movsxd  rax,dword ptr [rax+60]
2ADBAC7C60D: 41 3B C7                       - cmp eax,r15d
2ADBAC7C610: 7E 08                          - jle 2ADBAC7C61A
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>94</ID>
              <Description>"Ally team ID"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>408000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_ally_id</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>95</ID>
              <Description>"To ally damage option"</Description>
              <DropDownListLink>To player damage option</DropDownListLink>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>408000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_ally_hp_dmg_option</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>96</ID>
              <Description>"To ally damage divisor"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>408000</Color>
              <VariableType>Float</VariableType>
              <Address>vf_ally_dmg_div</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>47</ID>
              <Description>"Player team ID"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>A00000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_full_hp_player_id</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>48</ID>
              <Description>"To player damage option"</Description>
              <DropDownList DisplayValueAsItem="1">0:None / 無
1:Full HP / Hp全滿
2:by divisor below / 依除數
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>A00000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>is_full_hp</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>87</ID>
              <Description>"To player damage divisor"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>A00000</Color>
              <VariableType>Float</VariableType>
              <Address>vf_dmg_div</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>88</ID>
              <Description>"Enemy team ID"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>8080FF</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_hp_enemy_id</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>89</ID>
              <Description>"To enemy HP damage option"</Description>
              <DropDownList DisplayValueAsItem="1">0:None / 無
1:1HK / 一擊必殺
2:By multiplier below / 依乘數
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>8080FF</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_enemy_hp_dmg_option</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>90</ID>
              <Description>"damage multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>8080FF</Color>
              <VariableType>Float</VariableType>
              <Address>vf_enemy_dmg_mul</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>50</ID>
          <Description>"EXP Multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">{ Game   : Langrisser I &amp; II.exe
  Version: 
  Date   : 2022-05-01
  Author : bbfox @ https://opencheattables.org
}

[ENABLE]

//aobscan(INJECT_EXP_MULTI,89 70 5C 49 8B 47 10) // should be unique
aobscanregion(INJECT_EXP_MULTI,UnitCTRLCalcLevelProc+241,UnitCTRLCalcLevelProc+271,89 70 5C 49 8B 47 10) // should be unique
alloc(newmem,$1000,INJECT_EXP_MULTI)

label(code)
label(return)
label(i_exp_player_id)
label(vf_exp_multi)

newmem:
  push rbx
  mov ebx, [rax+3C]
  cmp ebx, [i_exp_player_id]
  jne @F
  mov ebx, [rax+5C]

  cvtsi2ss xmm14, esi
  cvtsi2ss xmm15, ebx
  vsubss xmm13, xmm14, xmm15
  vmovss xmm14, [vf_exp_multi]
  vmulss xmm14, xmm14, xmm13
  vaddss xmm13, xmm14, xmm15
  cvtss2si esi, xmm13

@@:
  pop rbx


code:
  mov [rax+5C],esi
  mov rax,[r15+10]
  jmp return

align 10 cc
  i_exp_player_id:
  dd 0
  vf_exp_multi:
  dd (float)1.5

INJECT_EXP_MULTI:
  jmp newmem
  nop 2
return:

registersymbol(i_exp_player_id)
registersymbol(vf_exp_multi)
registersymbol(INJECT_EXP_MULTI)

[DISABLE]

INJECT_EXP_MULTI:
  db 89 70 5C 49 8B 47 10

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 1E00AA292B1

1E00AA2928E: 7F 0C                          - jg 1E00AA2929C
1E00AA29290: 41 FF C6                       - inc r14d
1E00AA29293: 41 FF C5                       - inc r13d
1E00AA29296: 41 83 FD 63                    - cmp r13d,63
1E00AA2929A: 7C D4                          - jl 1E00AA29270
1E00AA2929C: 83 FF 01                       - cmp edi,01
1E00AA2929F: 0F 85 41 00 00 00              - jne 1E00AA292E6
1E00AA292A5: 49 8B 47 18                    - mov rax,[r15+18]
1E00AA292A9: 44 89 70 58                    - mov [rax+58],r14d
1E00AA292AD: 49 8B 47 18                    - mov rax,[r15+18]
// ---------- INJECTING HERE ----------
1E00AA292B1: 89 70 5C                       - mov [rax+5C],esi
// ---------- DONE INJECTING  ----------
1E00AA292B4: 49 8B 47 10                    - mov rax,[r15+10]
1E00AA292B8: 49 8B 4F 18                    - mov rcx,[r15+18]
1E00AA292BC: 48 63 91 98 00 00 00           - movsxd  rdx,dword ptr [rcx+00000098]
1E00AA292C3: 49 8B 4F 18                    - mov rcx,[r15+18]
1E00AA292C7: 4C 63 41 58                    - movsxd  r8,dword ptr [rcx+58]
1E00AA292CB: 48 8B C8                       - mov rcx,rax
1E00AA292CE: 48 83 EC 20                    - sub rsp,20
1E00AA292D2: 83 38 00                       - cmp dword ptr [rax],00
1E00AA292D5: 49 BB 40 93 A2 0A E0 01 00 00  - mov r11,000001E00AA29340
1E00AA292DF: 41 FF D3                       - call r11
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>51</ID>
              <Description>"Player team ID"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>A00000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_exp_player_id</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>52</ID>
              <Description>"Multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>vf_exp_multi</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>98</ID>
          <Description>"CP multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Langrisser I &amp; II.exe
  Version: 
  Date   : 2022-05-02
  Author : bbfox@ https://opencheattables.org
}

[ENABLE]

//aobscan(INJECT_ADD_CP_MUL,89 48 68 48 8B 47 18) // should be unique
aobscanregion(INJECT_ADD_CP_MUL,UnitCTRLAddClassPointProc+18,UnitCTRLAddClassPointProc+38,89 48 68 48 8B 47 18) // should be unique
alloc(newmem,$1000,INJECT_ADD_CP_MUL)

label(code)
label(return)
label(vf_cp_mul)
label(i_last_cp_addr)

newmem:
  push rbx
  lea rbx, [rax+68]
  mov [i_last_cp_addr], rbx
  pop rbx

  cvtsi2ss xmm14, ecx
  cvtsi2ss xmm15, dword ptr [rax+68]
  vcomiss xmm15, xmm14
  jae code
  vsubss xmm13, xmm14, xmm15
  vmovss xmm14, [vf_cp_mul]
  vmulss xmm14, xmm14, xmm13
  vaddss xmm14, xmm15, xmm14
  cvtss2si ecx, xmm14

code:
  mov [rax+68],ecx
  mov rax,[rdi+18]
  jmp return

align 10 cc
  vf_cp_mul:
  dd (float)4
  i_last_cp_addr:
  dq 0

INJECT_ADD_CP_MUL:
  jmp newmem
  nop 2
return:
REGISTERSYMBOL(i_last_cp_addr)
registersymbol(vf_cp_mul)
registersymbol(INJECT_ADD_CP_MUL)

[DISABLE]

INJECT_ADD_CP_MUL:
  db 89 48 68 48 8B 47 18

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: UnitCTRL:AddClassPoint+1c

1C718C45A7B: 00 00                 - add [rax],al
1C718C45A7D: 00 00                 - add [rax],al
1C718C45A7F: 00 48 83              - add [rax-7D],cl
UnitCTRL:AddClassPoint+2: EC                    - in al,dx
UnitCTRL:AddClassPoint+3: 18 48 89              - sbb [rax-77],cl
UnitCTRL:AddClassPoint+6: 3C 24                 - cmp al,24
UnitCTRL:AddClassPoint+8: 48 8B F9              - mov rdi,rcx
UnitCTRL:AddClassPoint+b: 48 89 54 24 08        - mov [rsp+08],rdx
UnitCTRL:AddClassPoint+10: 48 8B 47 18           - mov rax,[rdi+18]
UnitCTRL:AddClassPoint+14: 48 63 48 68           - movsxd  rcx,dword ptr [rax+68]
// ---------- INJECTING HERE ----------
UnitCTRL:AddClassPoint+18: 03 4C 24 08           - add ecx,[rsp+08]
// ---------- DONE INJECTING  ----------
UnitCTRL:AddClassPoint+1c: 89 48 68              - mov [rax+68],ecx
UnitCTRL:AddClassPoint+1f: 48 8B 47 18           - mov rax,[rdi+18]
UnitCTRL:AddClassPoint+23: 48 63 40 68           - movsxd  rax,dword ptr [rax+68]
UnitCTRL:AddClassPoint+27: 3D 10 27 00 00        - cmp eax,00002710
UnitCTRL:AddClassPoint+2c: 7C 0B                 - jl UnitCTRL:AddClassPoint+39
UnitCTRL:AddClassPoint+2e: 48 8B 47 18           - mov rax,[rdi+18]
UnitCTRL:AddClassPoint+32: C7 40 68 0F 27 00 00  - mov [rax+68],0000270F
UnitCTRL:AddClassPoint+39: 48 8B 47 18           - mov rax,[rdi+18]
UnitCTRL:AddClassPoint+3d: 48 63 40 68           - movsxd  rax,dword ptr [rax+68]
UnitCTRL:AddClassPoint+41: 83 F8 FF              - cmp eax,-01
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>99</ID>
              <Description>"Multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>vf_cp_mul</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>104</ID>
              <Description>"Last used CP value"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_last_cp_addr</Address>
              <Offsets>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>92</ID>
          <Description>"Money multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Langrisser I &amp; II.exe
  Version: 
  Date   : 2022-05-02
  Author : bbfox @ https://opencheattablesoeg
}

[ENABLE]

//aobscan(INJECT_MONEY_MULTI,89 88 94 00 00 00 48 B8) // should be unique
aobscanregion(INJECT_MONEY_MULTI,StWorkAddMoneypROC+10,StWorkAddMoneypROC+3f,89 88 94 00 00 00 48 B8) // should be unique
alloc(newmem,$1000,INJECT_MONEY_MULTI)

label(code)
label(return)
label(vf_money_multi)

newmem:
  push rbx
  mov ebx, [rax+00000094]
  cvtsi2ss xmm15, ebx
  cvtsi2ss xmm14, ecx
  vcomiss xmm15, xmm14
  jae endp
  vsubss xmm13, xmm14, xmm15
  vmovss xmm14, [vf_money_multi]
  vmulss xmm14, xmm13, xmm14
  vaddss xmm15, xmm15, xmm14
  cvtss2si ecx, xmm15

endp:
  pop rbx

code:
  mov [rax+00000094],ecx
  jmp return

align 10 cc
  vf_money_multi:
  dd (float)2

INJECT_MONEY_MULTI:
  jmp newmem
  nop
return:
registersymbol(vf_money_multi)
registersymbol(INJECT_MONEY_MULTI)

[DISABLE]

INJECT_MONEY_MULTI:
  db 89 88 94 00 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: StWork:AddMoney+1f

1C718C5385A: 00 00                          - add [rax],al
1C718C5385C: 00 00                          - add [rax],al
1C718C5385E: 00 00                          - add [rax],al
StWorkAddMoneypROC: 48 83 EC 08                    - sub rsp,08
StWork:AddMoney+4: 48 89 0C 24                    - mov [rsp],rcx
StWork:AddMoney+8: 48 B8 50 5F 43 0D C7 01 00 00  - mov rax,000001C70D435F50
StWork:AddMoney+12: 48 8B 00                       - mov rax,[rax]
INJECT_SHOP_BUY: E9 86 C7 AE 09                 - jmp 1C722740000
StWork:AddMoney+1a: 66 90                          - nop 2
StWork:AddMoney+1c: 03 0C 24                       - add ecx,[rsp]
// ---------- INJECTING HERE ----------
StWork:AddMoney+1f: 89 88 94 00 00 00              - mov [rax+00000094],ecx
// ---------- DONE INJECTING  ----------
StWork:AddMoney+25: 48 B8 50 5F 43 0D C7 01 00 00  - mov rax,000001C70D435F50
StWork:AddMoney+2f: 48 8B 00                       - mov rax,[rax]
StWork:AddMoney+32: 48 63 80 94 00 00 00           - movsxd  rax,dword ptr [rax+00000094]
StWork:AddMoney+39: 3D 80 96 98 00                 - cmp eax,00989680
StWork:AddMoney+3e: 7C 17                          - jl StWork:AddMoney+57
StWork:AddMoney+40: 48 B8 50 5F 43 0D C7 01 00 00  - mov rax,000001C70D435F50
StWork:AddMoney+4a: 48 8B 00                       - mov rax,[rax]
StWork:AddMoney+4d: C7 80 94 00 00 00 7F 96 98 00  - mov [rax+00000094],0098967F
StWork:AddMoney+57: 48 B8 50 5F 43 0D C7 01 00 00  - mov rax,000001C70D435F50
StWork:AddMoney+61: 48 8B 00                       - mov rax,[rax]
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>93</ID>
              <Description>"Multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>vf_money_multi</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>10</ID>
          <Description>"Prepare screen: set all exist item # (browse atk/def item in equip window)"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">{ Game   : Langrisser I &amp; II.exe
  Version: 
  Date   : 2022-05-01
  Author : bbfox@ https://opencheattables.org
}

[ENABLE]

//aobscan(INJECT_EQUIP_ITEM_2,48 63 00 89 45 C4 49 8B 87 B8 03 00 00)
aobscanregion(INJECT_EQUIP_ITEM_2,WindowManagerChangeItemListProc+65f,WindowManagerChangeItemListProc+68f,48 63 00 89 45 C4 49 8B 87 B8 03 00 00)
alloc(newmem2,$1000,INJECT_EQUIP_ITEM_2)

label(code2)
label(return2)

newmem2:
  push rbx
  mov ebx, [rax]
  cmp ebx, 20
  pop rbx
  je code2
  push rbx
  mov ebx, 20
  mov [rax], ebx
  pop rbx

code2:
  movsxd  rax,dword ptr [rax]
  mov [rbp-3C],eax
  jmp return2

INJECT_EQUIP_ITEM_2:
  jmp newmem2
  nop
return2:
registersymbol(INJECT_EQUIP_ITEM_2)

[DISABLE]

INJECT_EQUIP_ITEM_2:
  db 48 63 00 89 45 C4
unregistersymbol(INJECT_EQUIP_ITEM_2)
dealloc(newmem2)


{
// ORIGINAL CODE - INJECTION POINT: 1874B48ADBF

1874B48AD95: 48 83 C4 20                    - add rsp,20
1874B48AD99: 48 8B C8                       - mov rcx,rax
1874B48AD9C: 48 8B 85 30 FF FF FF           - mov rax,[rbp-000000D0]
1874B48ADA3: 83 38 00                       - cmp dword ptr [rax],00
1874B48ADA6: 48 8B 40 20                    - mov rax,[rax+20]
1874B48ADAA: 48 8B 40 38                    - mov rax,[rax+38]
1874B48ADAE: 48 63 C9                       - movsxd  rcx,ecx
1874B48ADB1: 39 48 18                       - cmp [rax+18],ecx
1874B48ADB4: 0F 86 19 0E 00 00              - jbe 1874B48BBD3
1874B48ADBA: 48 8D 44 88 20                 - lea rax,[rax+rcx*4+20]
// ---------- INJECTING HERE ----------
1874B48ADBF: 48 63 00                       - movsxd  rax,dword ptr [rax]
// ---------- DONE INJECTING  ----------
1874B48ADC2: 89 45 C4                       - mov [rbp-3C],eax
1874B48ADC5: 49 8B 87 B8 03 00 00           - mov rax,[r15+000003B8]
1874B48ADCC: 48 89 85 40 FF FF FF           - mov [rbp-000000C0],rax
1874B48ADD3: 48 8D 47 0A                    - lea rax,[rdi+0A]
1874B48ADD7: 48 89 85 38 FF FF FF           - mov [rbp-000000C8],rax
1874B48ADDE: 48 8B CD                       - mov rcx,rbp
1874B48ADE1: 48 83 C1 C4                    - add rcx,-3C
1874B48ADE5: 48 83 EC 20                    - sub rsp,20
1874B48ADE9: 49 BB D0 55 65 2C 87 01 00 00  - mov r11,000001872C6555D0
1874B48ADF3: 41 FF D3                       - call r11
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>16</ID>
          <Description>"Set minimum money after amount changed"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">{ Game   : Langrisser I &amp; II.exe
  Version: 
  Date   : 2022-05-01
  Author : bbfox @ https://opencheattables.org
}

[ENABLE]

//aobscan(INJECT_SHOP_BUY,48 63 88 94 00 00 00 03) // should be unique
aobscanregion(INJECT_SHOP_BUY,StWorkAddMoneypROC+5,StWorkAddMoneypROC+35,48 63 88 94 00 00 00 03) // should be unique
alloc(newmem,$1000,INJECT_SHOP_BUY)

label(code)
label(return)
label(i_base_smoney_addr)
label(i_min_money)

newmem:
  mov [i_base_smoney_addr], rax
  mov ecx, [rax+00000094]
  cmp ecx, [i_min_money]
  jae code
  mov ecx, [i_min_money]
  mov [rax+00000094], ecx

code:
  movsxd  rcx,dword ptr [rax+00000094]
  jmp return

align 10 cc
  i_base_smoney_addr:
  dq 0
  i_min_money:
  dd #30000
  vf_money_multi:
  dd (float)2


INJECT_SHOP_BUY:
  jmp newmem
  nop 2
return:

registersymbol(i_min_money)
registersymbol(i_base_smoney_addr)
registersymbol(INJECT_SHOP_BUY)

[DISABLE]

INJECT_SHOP_BUY:
  db 48 63 88 94 00 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 148C5A75205

148C5A751E4: 01 50 00                       - add [rax+00],edx
148C5A751E7: 00 00                          - add [rax],al
148C5A751E9: 00 00                          - add [rax],al
148C5A751EB: 00 00                          - add [rax],al
148C5A751ED: 00 00                          - add [rax],al
148C5A751EF: 00 48 83                       - add [rax-7D],cl
148C5A751F2: EC                             - in al,dx
148C5A751F3: 08 48 89                       - or [rax-77],cl
148C5A751F6: 0C 24                          - or al,24
148C5A751F8: 48 B8 50 DF 56 C4 48 01 00 00  - mov rax,00000148C456DF50
// ---------- INJECTING HERE ----------
148C5A75202: 48 8B 00                       - mov rax,[rax]
// ---------- DONE INJECTING  ----------
148C5A75205: 48 63 88 94 00 00 00           - movsxd  rcx,dword ptr [rax+00000094]
148C5A7520C: 03 0C 24                       - add ecx,[rsp]
148C5A7520F: 89 88 94 00 00 00              - mov [rax+00000094],ecx
148C5A75215: 48 B8 50 DF 56 C4 48 01 00 00  - mov rax,00000148C456DF50
148C5A7521F: 48 8B 00                       - mov rax,[rax]
148C5A75222: 48 63 80 94 00 00 00           - movsxd  rax,dword ptr [rax+00000094]
148C5A75229: 3D 80 96 98 00                 - cmp eax,00989680
148C5A7522E: 7C 17                          - jl 148C5A75247
148C5A75230: 48 B8 50 DF 56 C4 48 01 00 00  - mov rax,00000148C456DF50
148C5A7523A: 48 8B 00                       - mov rax,[rax]
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>17</ID>
              <Description>"Bas addr."</Description>
              <ShowAsHex>1</ShowAsHex>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>808080</Color>
              <VariableType>8 Bytes</VariableType>
              <Address>i_base_addr</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>18</ID>
              <Description>"Money"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_smoney_addr</Address>
              <Offsets>
                <Offset>94</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>66</ID>
          <Description>"Basic info."</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Langrisser I &amp; II.exe
  Version: 
  Date   : 2022-05-01
  Author : bbfox @ https://opencheattables.org
}

[ENABLE]

//aobscan(INJECT_GAME_UPDATE,ERROR: Could not find unique AOB, tried code "89 48 7C 48 8B 86 28 01 00 00") // should be unique
aobscanregion(INJECT_GAME_UPDATE,GameMainUpdateProc+cab,GameMainUpdateProc+cdb,89 48 7C 48 8B 86 28 01 00 00) // should be unique

alloc(newmem,$1000,INJECT_GAME_UPDATE)

label(code)
label(return)
label(i_gamework_addr)

newmem:
  mov [i_gamework_addr], rax

code:
  mov [rax+7C],ecx
  mov rax,[rsi+00000128]
  jmp return

align 10 cc
  i_gamework_addr:
  dq 0

INJECT_GAME_UPDATE:
  jmp newmem
  nop 5
return:
registersymbol(i_gamework_addr)
registersymbol(INJECT_GAME_UPDATE)


[DISABLE]

INJECT_GAME_UPDATE:
  db 89 48 7C 48 8B 86 28 01 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameMain:Update+cbb

GameMain:Update+c89: F3 0F 5A C9                    - cvtss2sd xmm1,xmm1
GameMain:Update+c8d: 48 83 EC 20                    - sub rsp,20
GameMain:Update+c91: 49 BB F0 98 13 5A 99 02 00 00  - mov r11,System.Object:__icall_wrapper___emul_frem
GameMain:Update+c9b: 41 FF D3                       - call r11
GameMain:Update+c9e: 48 83 C4 20                    - add rsp,20
GameMain:Update+ca2: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
GameMain:Update+ca6: F3 0F 11 AE 8C 01 00 00        - movss [rsi+0000018C],xmm5
GameMain:Update+cae: 48 8B 86 28 01 00 00           - mov rax,[rsi+00000128]
GameMain:Update+cb5: 48 63 48 7C                    - movsxd  rcx,dword ptr [rax+7C]
GameMain:Update+cb9: 03 CF                          - add ecx,edi
// ---------- INJECTING HERE ----------
GameMain:Update+cbb: 89 48 7C                       - mov [rax+7C],ecx
// ---------- DONE INJECTING  ----------
GameMain:Update+cbe: 48 8B 86 28 01 00 00           - mov rax,[rsi+00000128]
GameMain:Update+cc5: 48 63 40 7C                    - movsxd  rax,dword ptr [rax+7C]
GameMain:Update+cc9: 3D 40 7E 05 00                 - cmp eax,00057E40
GameMain:Update+cce: 0F 8C 0E 00 00 00              - jl GameMain:Update+ce2
GameMain:Update+cd4: 48 8B 86 28 01 00 00           - mov rax,[rsi+00000128]
GameMain:Update+cdb: C7 40 7C 3F 7E 05 00           - mov [rax+7C],00057E3F
GameMain:Update+ce2: 48 8B 86 18 01 00 00           - mov rax,[rsi+00000118]
GameMain:Update+ce9: 48 8B C8                       - mov rcx,rax
GameMain:Update+cec: 48 83 EC 20                    - sub rsp,20
GameMain:Update+cf0: 83 38 00                       - cmp dword ptr [rax],00
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>67</ID>
              <Description>"Base addr."</Description>
              <ShowAsHex>1</ShowAsHex>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>8 Bytes</VariableType>
              <Address>i_gamework_addr</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>75</ID>
              <Description>"money"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF0080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_gamework_addr</Address>
              <Offsets>
                <Offset>94</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>76</ID>
              <Description>"mapCursol_X"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF0080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_gamework_addr</Address>
              <Offsets>
                <Offset>98</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>77</ID>
              <Description>"mapCursol_Y"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF0080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_gamework_addr</Address>
              <Offsets>
                <Offset>9C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>91</ID>
              <Description>"Others+"</Description>
              <Options moHideChildren="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>68</ID>
                  <Description>"gameSelect"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>68</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>69</ID>
                  <Description>"scenarioNumber"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>6C</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>70</ID>
                  <Description>"scenarioIndex"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>70</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>71</ID>
                  <Description>"scenarioRouteIndex"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>74</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>72</ID>
                  <Description>"sysData1"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>7C</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>73</ID>
                  <Description>"sysData2"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>80</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>74</ID>
                  <Description>"sysData3"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>84</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>78</ID>
                  <Description>"mapSYSPAD0"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>A0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>79</ID>
                  <Description>"mapSYSPAD1"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>A4</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>80</ID>
                  <Description>"gameScene"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>A8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>81</ID>
                  <Description>"gameTurn"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>AC</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>82</ID>
                  <Description>"gamePhase"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>B0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>83</ID>
                  <Description>"gameMode"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>B4</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>84</ID>
                  <Description>"gameMiniMap"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>B8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>85</ID>
                  <Description>"gameUnitColor"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>BC</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>86</ID>
                  <Description>"gameUnitArea"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_gamework_addr</Address>
                  <Offsets>
                    <Offset>C0</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>102</ID>
      <Description>"*** Langrisser I &amp; II   /   https://opencheattables.com   /   CE 7.4+ ***"</Description>
      <Color>800080</Color>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols>
    <SymbolEntry>
      <Name>tapmult</Name>
      <Address>2088B700000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>cheatTimeOn</Name>
      <Address>1540F640000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>cheatFOV</Name>
      <Address>21C87870010</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>cheaton</Name>
      <Address>21C87870020</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>rage</Name>
      <Address>1409552A7</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>weight</Name>
      <Address>4039F908</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>unlimited</Name>
      <Address>140DB8F24</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>player</Name>
      <Address>1400F59C1</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>player_stats</Name>
      <Address>1400F5AA3</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>keyboard</Name>
      <Address>13F709090</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>global_game</Name>
      <Address>14011D3A9</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>vtable</Name>
      <Address>13F1550F5</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>durability</Name>
      <Address>7FF74AA34F5C</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>freeze</Name>
      <Address>7FF74A7C8CB6</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>mouseover</Name>
      <Address>7FF74AC9F4AE</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>mouseover_ptr</Name>
      <Address>7FF74A2E001B</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>console</Name>
      <Address>7FF742253810</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>global_console_debug</Name>
      <Address>7FF742D0E18A</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>use_console</Name>
      <Address>7FF7426FB043</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ItemEditorMaking</Name>
      <Address>00710030</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ItemEditor</Name>
      <Address>021C0020</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ItemEditorContainer</Name>
      <Address>021C0010</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>MakingEditorContainer</Name>
      <Address>00930000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>MakingEditorContainerV2</Name>
      <Address>021C0000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>FinalMakingEditor</Name>
      <Address>02290010</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ItemSelContainer</Name>
      <Address>00910000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ItemSelMaking</Name>
      <Address>00980010</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>itemBase</Name>
      <Address>62A50000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>LBScan</Name>
      <Address>277E0440010</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>CharEdit</Name>
      <Address>1A33A830000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ItemEDT</Name>
      <Address>23A48040000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ItemCHN</Name>
      <Address>23A48040010</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>BISC</Name>
      <Address>28B7EB30000</Address>
    </SymbolEntry>
  </UserdefinedSymbols>
</CheatTable>
