From ce8a12071cea0fda72e444ad0f2e2447bad17d91 Mon Sep 17 00:00:00 2001 From: Philipp3107 Date: Sun, 25 Dec 2022 19:57:20 +0100 Subject: [PATCH] changes in Exceptionhandling --- Main.java | 7 +-- domain/C3PO.java | 30 +++++------ domain/R2D2.java | 48 ++++-------------- domain/RobotBasics.java | 40 ++++++++++----- out/production/Robot_Factory_PR/Main.class | Bin 1973 -> 2045 bytes .../Robot_Factory_PR/classpath.index | Bin 0 -> 280 bytes .../Robot_Factory_PR/domain/C3PO.class | Bin 2439 -> 1355 bytes .../Robot_Factory_PR/domain/C3POTest.class | Bin 1355 -> 3566 bytes .../Robot_Factory_PR/domain/R2D2.class | Bin 1250 -> 1309 bytes .../Robot_Factory_PR/domain/RobotBasics.class | Bin 3805 -> 4001 bytes .../robot/exceptions/RobotException$1.class | Bin 802 -> 802 bytes .../robot/exceptions/RobotException.class | Bin 1605 -> 1734 bytes robot/exceptions/RobotException.java | 7 +++ 13 files changed, 62 insertions(+), 70 deletions(-) create mode 100644 out/production/Robot_Factory_PR/classpath.index diff --git a/Main.java b/Main.java index 3ed5b96..aeb5dd5 100644 --- a/Main.java +++ b/Main.java @@ -28,10 +28,10 @@ public class Main { System.out.print(" " + sorted[i]); } }catch(RobotException re){ - System.out.println(re); + re.printStackTrace(); } - + System.out.println("last exception thrown"); String re = Herb.getLastException().toString(); System.out.println(re); @@ -43,8 +43,9 @@ public class Main { System.out.print(" " + sorted[i]); } }catch(RobotException e){ - System.out.println(e); + e.getLocalizedMessage(); } + System.out.println("last exception thrown"); re = Herb.getLastException().toString(); System.out.println(re); diff --git a/domain/C3PO.java b/domain/C3PO.java index 53ad85d..5eaa36b 100644 --- a/domain/C3PO.java +++ b/domain/C3PO.java @@ -1,5 +1,6 @@ package domain; +import robot.exceptions.ExceptionStorage; import robot.exceptions.RobotException; import robot.exceptions.robotExceptions; @@ -11,16 +12,16 @@ public class C3PO extends RobotBasics { super(id, name); } -// public String ausgabe(int[] input) throws RobotException{ -// if(input.length != 0 && !checkArray(input)){ -// return Arrays.stream(input) -// .mapToObj(Integer::toString) -// .collect(Collectors.joining("; ")); -// }else{ -// throw new RobotException(robotExceptions.MAGICVALUE, getName()); -// // throw new RobotMagicValueException(getName() + " has an unknown Error. Code 42."); -// } -// } +/* public String ausgabe(int[] input) throws RobotException{ + if(input.length != 0 && !checkArray(input)){ + return Arrays.stream(input) + .mapToObj(Integer::toString) + .collect(Collectors.joining("; ")); + }else{ + throw new RobotException(robotExceptions.MAGICVALUE, getName()); + // throw new RobotMagicValueException(getName() + " has an unknown Error. Code 42."); + } + }*/ @Override public String speak(int[] input) throws RobotException { if(isPowerOn()){ @@ -30,24 +31,21 @@ public class C3PO extends RobotBasics { return re.toString(); } }else{ - throw new RobotException(robotExceptions.ILLEGALSTATE, getName()); - //throw new RobotIllegalStateException(getName() + " is turned off."); + RobotException robotException = new RobotException(robotExceptions.ILLEGALSTATE, getName()); + this.exceptions = new ExceptionStorage(robotException); + throw robotException; } } public int[] sorting(int[] input) throws RobotException{ - if(input.length != 0 ){ if(checkArray(input)){ return insertionSort(input); }else{ throw new RobotException(robotExceptions.MAGICVALUE, getName()); //throw new RobotMagicValueException(getName() + " has an unknown error. Code 42"); } - } -return new int[0]; - } @Override public int[] think(int[] input) throws RobotException { //Insertionsort diff --git a/domain/R2D2.java b/domain/R2D2.java index bc8a856..b7f6441 100644 --- a/domain/R2D2.java +++ b/domain/R2D2.java @@ -16,58 +16,32 @@ public class R2D2 extends RobotBasics { } + + /** + * @see robot.interfaces.RobotInstructions + */ public int[] think(int[] input) throws RobotException { if(isPowerOn()){ return selectionSort(input); }else{ - this.exceptions = new ExceptionStorage( new RobotException(robotExceptions.ILLEGALSTATE, getName())); - throw new RobotException(robotExceptions.ILLEGALSTATE, getName()); + RobotException robotexception = new RobotException(robotExceptions.ILLEGALSTATE, getName()); + this.exceptions = new ExceptionStorage(robotexception); + throw robotexception; } } - /* - * this method sorts - * @param input - * @return integer array - * @throws RobotException - - public int[] sorting(int[] input) throws RobotException { - if(checkArray(input)){ - //Selectionsort - int small; - for (int i = 0; i = 0 && input[b] > key) input[b + 1] = input[b--]; + input[b + 1] = key; + } + return input; + }else{ + RobotException robotexception = new RobotException(robotExceptions.MAGICVALUE, getName()); + this.exceptions = new ExceptionStorage(robotexception); + throw robotexception; + } - } + } /** * Sorts any given array of integers with the selection Sort algorithm. @@ -152,9 +161,12 @@ public abstract class RobotBasics implements Robot { } return input; }else{ - this.exceptions = new ExceptionStorage(new RobotException(robotExceptions.MAGICVALUE, getName())); - throw new RobotException(robotExceptions.MAGICVALUE, getName()); + RobotException robotexception = new RobotException(robotExceptions.MAGICVALUE, getName()); + this.exceptions = new ExceptionStorage(robotexception); + throw robotexception; } } + + } diff --git a/out/production/Robot_Factory_PR/Main.class b/out/production/Robot_Factory_PR/Main.class index 813b4d750c1d5af92fbf135bfae0281f211a8116..2afee343be3df3bb3cf463ff913afec6d310a1dc 100644 GIT binary patch delta 778 zcmZ{h%TE(g6vltIv~$Zi7R4xOjED*}fPml&s$d1*f}%z7fk-W5TU%Q!qZk*mabe;@ zlZi_c+!(jTSdEDoq8m+IxMr#U1Tmtgg{{fVd3@)2zw@^0PnG#?`NKTW%k6^sR7FEH zTeM&(swVTPtP^!&@$_&$7PtMhDmG?fQ%;?IKW}HSqUG*6IEcVmouJhDK0)#CNltxrL`BWld=ZA9Bc0M|ta^gvo5IvTx)1}yu zu$_TiJeEm4uqOuXsi|1P)@b)Qu91;$Nc+|a}=wld)^R(w%6-C6G@ zZ%WbNM!Yp{tv6t3(u&$uS0@$5KrWZQJIOW<;SmlHsqkTlJS<+jXeHX${0>zphx{h)(II{7JGN)LO)TFy|*2~HwR3rD9!8r%_n1{f4; zb~WmkzAI5J-3+N3M9-97&RK>;H}HvbQmkajkDM3FBZKBJiOSNwykb4WWjJj%rKnL;i$G(MA^DECH2{RC;Vh|z9us6Mm9;xL_d z%xH=>a>S_-b`;$fJ(!9e<>GWMmn{y@&Si@ubJOLCDNXOPZG@FhYx*^#_6Juoc+1Zi zw>5Vx_Hx(W=Ki=lqcHX+NojHI~4TRghQV z!IbxyL@}{StS9;oRoSBZ;(~Yv9lXIW4P4S}f$a>*X;QpoSXhq? zJSt5tNt4Tx--Gv;NWGd7&6TZBYl1aj?*4;4NlmkFlLpOIfz@9GSD0&3!QeVK#Cm0h RoATddTq3`C6J*H|`VEsycWnRw diff --git a/out/production/Robot_Factory_PR/classpath.index b/out/production/Robot_Factory_PR/classpath.index new file mode 100644 index 0000000000000000000000000000000000000000..03ee4a3855c10951daf3729ef9b8887947e5019c GIT binary patch literal 280 zcmb1OU}s=pU9a_;So(!g@5Bt>`0M>=a$RlS-|ji^Ps>0{jA_Y!-BKC3{i`1M z-FD;-glgdPU|`Vw2-D3e0bo3I$0-OzEJPHg9e4ky;q~C0 X6ObJNR4TFW1p@=)0tN<6^UQw$zwu2# literal 0 HcmV?d00001 diff --git a/out/production/Robot_Factory_PR/domain/C3PO.class b/out/production/Robot_Factory_PR/domain/C3PO.class index 4c06df2a0b584878dd1aad61d10932fd167a83af..241c8f0756fd161b4ded7a233dd92c8ee2e27888 100644 GIT binary patch literal 1355 zcmaizYfsu>6vzJ$w?ZwbpzI<}bj+2@WX?_JaBj%Zkkm`WnM_|5Y_L;XQpzr$V4uNn z;r0TPZE^4Sp_ZMeT!O(w2&K={bI$*F{?F;(e?PAPtYSli3vK}(310XZ!bj$rsvFr| zvtrt7YD2F!7kP7N^W=U#eQ& z)=i_)#x8c(A|i-NxP!Y4e%oyGGK|T|!GZzY$Ao~Ggh@PLh!2!@HhQJW6{(~s#f`jD z-plV58D^B*Qk>1B!-^t_!p(!A)O4NKIre!M@Y2 z3(x7w-!Rad;e&)1bQf=jVG&ETq6ECeG8N%>uaKi?h84V~e_r+*$?&p?R13m6MpNl< zu!Z4^%}fj97rzks@B{bg+0-Rw{!pfX5Qb@{+>UmX06}L=5qiFg zHx6Nfw3*K>rel!prJe&4-d$Z}QbHr2W79O1=!2gpSxF=mW z_iyonBKyH)l20Ot6jjY&2J;SBv|X`>GuwwlYLU=2mUlfCwZjr?TjfwZ9k8fN5OQo? cBx{z4V7X5@)>Dr4DZ9af*My7Ij0@}k0c2zlh5!Hn literal 2439 zcma)7TUQ%Z6#h;^GB8XajWo4f%B{8G*0ffEnp%YjG#V}vine$=Ne*EknMr3RwEY1- z_!ICC_)2}C7hTn7m%qv7J~KlYNNrs#l5=+U-ru*sv-dfF{qyn_fIE1sB80GlHVqL( z84_i)#&sjTZWc{vp4)oKW{BR_4c)oJkWA(ByL_LgtK6uh3y!55mCV?tigt7;P&ITy zW9amAWN)smGN`2;QQDicEdGQclG@6RJy6kwZUu1-=a68CyD1xvUQN4h647=n!D|dd zGQh)h9XxwFXE=mT9+?D{(WBu!l9Zj->s3M-Nd-f;8%D{|O+yAP`s++5-o-@)y&C$^ z&(M29;Vc3}dyUsO%+=y9LnamA^4i2fWIvV9v>lfiLYW~ILl{;tqG1%58TwkFvu3p_ zN{(rf5X!De+8Y&yX&>5^KD)!Mf_T^vMoDB|1KCVLg}#TY3Q`)zFwStH1%&&3q)RRf8d%l6~KfISup35*6OCE4)Zlk|!;Gmdt{N zMajF}G3l774WwLmHRPmLS}vboSenZhHs&@KWa=+87tPNhQk|mKhOT47ck z4Tqd1Y^>n$(%v$SkB6oP4>Drc1>Yl2i+BvTs=Y2drx`%_5u#;KfLbscR!J=CvVabG z%UqLPO)WTYnhrHAuP+N{$1L03QIu4aArx$Ds9=XW#vK4xXx-R1_e46+YsE6B2)@nb z)X@dfSqtv|4o;pQYt%EXdIT(|0ym!2MbQ2K|L8%!IW{<=e&#H% zRtvf#GI7u~c0P4{sk%b=V@zsQRn%Z8FlFP_8P1)kMYpG@2&*O7YfQ>Z?pn?;gq5vw z+ZMJ0YJ)2$2~O2`S~&ƺQN{@mkGlr?xLv-zfCY8DZQTkk=T@GRT1C;T;$!B0s zX&J&Qeabfu^fpDIVU1Qpo*TZzI_)R`1#D0fxw?l<@@8^K>074#32kot?8K`BTpgb{ zg7Py4C!Qnr67K*na3O@mz;g_~z?BgG#Khrmn7aQf(&I)Mk6vN`bR&j1 zlJxcsAb}LE$I#>QN_sd=UbFZLUlW)6ZU#1n2efD-!xa5*H3|MmHd*%w0p319x1{*# z;qv4WKJ%$8HL1|;KqAB_gGVVz`T@OU?I-I1JY-bvJg@`>fuxC$G;vH~5H|t>jW&6V z26)gR#k)?C_^wHU`y~23g*qgS&s(%PKBg{L&1uqPhBUbqK<;lM_Xm)}V6gyj7~d25 c5PkrsZ;g(sNC|c9;UO%tsARFxz$0Az7rWn33jhEB diff --git a/out/production/Robot_Factory_PR/domain/C3POTest.class b/out/production/Robot_Factory_PR/domain/C3POTest.class index 0788cbcca56906f8eadb8290056a5543f3f0210e..81076ce71d17d5842a126d93a44906042d1fb186 100644 GIT binary patch literal 3566 zcmbVO-%}gc75=Uyw356SA;5-$Z8`A|EPkj4f^CT1ST@+$5+a6TW0KU1Sc?T|S6Qu$ zY15`NP2Ij_CX>8%rZahnpWTTu(`NDq^k2zaX8O`;>wb54CB%=koz6(Bz4xB`opZkP zoqP4yfBpGe0N3zQ3;_fcgjBR3ED&GUo@nWkW){==m36(~2!!7@OvAY*5bVFO7)1n8 z1u+#zpbE6DT4l{J(>F%v@(X&E)&XNxK+HsNR6x0{+bg>5$W3t-?MMiOOs%X7B(l4X z<{jHGi<1gE1&%ZU#?XOdGOptS$NFau?(o9tQE?PM5@^jf?VXgH`&693Nr9H4?#wVO zCNL925~mfsq2f)P5lC8gF}+@6f_zpCN4L{j#YkVTRvEWpnNt@y2f8k)1(ql@x8xT0(-?Z)#Jb7@&gC9~cEK8CgJ;kDK&sm$g zJ-=x5^OB|1LdUTY_qY+#cfDGX$D&E0$Qc|tx+J-FB^2{Lw zD7YbT%C=T4C#^p%=oOdP^gTH-RUbz&g=q!1RNThQ9v#kaRUN&|_c+OSR)xuZm$x(+FWH`0;QAD+0aswW8%n zc)eV4wvw7{Yg@xqfP`n$W(`xHt(DoD3))J_?MADhl@>MIkYj%`#PF&2_U5*dJx-yt zRCT9T5$L&BGaaL>FB(;Y8?T$DFj@z z4sjw?t5lPY8Jl5Nq)-COlu?VDI?slAM=NaPw2GUX0>&;3EsX3GxO&6Fg&X@6|qs@Vm7+K?2t){n?xsZDlaga%xpO7c2`^$6E9YG$+5GZhzp*6b>@zg7bRPZH~RHF4I+Fo!jfK@(^x>yl}h!Z7} z&N-6yquF3e; zB{WakI`&mR);1rudmFtwIJFAkuqR}s{1W!;4le8+?K(L| z_GDB?aT3RHimpzgkG${la^g^jJac`HZZbE?dBSrx=>4R3FuLo-WBm*ioFzx+n$Q!6 zqF-#F-}BM?8nBoCgP#QJ3Z!`K4$#jadNI`GtM5=>@6>$>-tR6O>%ND?L^gipo7hq? zuI86QE%~JuCBGDol5+dqUf|6C4`Y#++MhfjgMTB9$9-^(kWquPg;4d>h3rjL~A8HdknMiAUyTJi-JF zOuCtkG2#d8k`l^p?(2SzFYfesfmY~zT`zR5|NB#y&W_Nk-rvc6y|ot z-N6TUNL$5YFCy8KJL>!`?&YsZ0VH?dVsJdv6&n2ZOLPu&g@%XtCDEUR#PiqRy&wq& zldqBPXZRGKHE7SUeZgyb1lL)H46Sa`?iMYlu!(7W%=`8k3H%f}?z)T5k;Na7$5)uc z3;w=hfn>|vX5ls)<@mhu_D6KX;Xxzix#O2;goq{!Bj|C#FOfm48t1$cokjRHhhB+T zANlc0#0xkR{RaZ#?>N4%TuuGyGGRp*F9Qw7Paj+>`k}JMRJ0U82=8?LMI8d+5jew0=bU0(WSn zd4*K2HZSj-DQo{jP!@UT-COrR{Q^O4bt9Qwcx{sEp z4O+hUX}NWPmc-BgPd++%f+oqs5IglsgO6d}G4eKPXDFT6pp8kZ5>7MEA!akqYF=SS zPB52g)>#Tj_Veim0~3umP>kOF)Xse#7o7*WNd8Y;Y&E#}8wn56Z9bvZMIj3x{3b?C z`rii&n9WO7T12rLTV(2E~+5IQ}_}ytZQT(t#r3Vr$48~N3{7ht$xYV z=vUNwIJ}yk(_M0$i=XF?^q!Alp)^L%8bbmg?w6 Yz&qjG#_7mW8XbG2AsC7LckqjU1Hde%Jpcdz delta 415 zcmZwDTWZ2U7zN;CVkUHyMq^PViP&iAjaqyXjQ7hXeD6NGhwMWT-+XWZx)+~(4xT9k z9V7{4@@M|<%w#UXS;|v(I0Bepy_2q$UhRGQ<4j6|-y8@OFif}3^LN7f5jLL!MLh79 z7_lm|1E^rk1a(b0Z_#AV%Rm{)O34~LqyI_w&p4;nm~#XoZ8xHA*gAE?u-=_r{MlD+ zccQmc>(;q@AfOHT9-+xGM9avDa&vk*Cw4o@|3AlY(Lohm!~40uul=w4HC5i{X#sCM Vhj;o9?&#CV2y-$DSW;M6-2mM-B8C6} diff --git a/out/production/Robot_Factory_PR/domain/R2D2.class b/out/production/Robot_Factory_PR/domain/R2D2.class index 485d9abb495e9e6a8635ca6b356e626d5e168465..4668be1ffe6973b7d3fc069ad6033e4b03ec2fdf 100644 GIT binary patch delta 432 zcmb8qJ5K^Z5C`!8aO&mG13W|ogyRk+o_A|}Q22h=_R?x7Y&>Hq?1=FbkgX^zEbWZO zBauX{)zVL(-@`bFAzGTv&dg3Gncu!^7rOrZdH(=l9Xk!ZNd@^zg&_?|jHpN%7)6?3 z%W1M@mKF!H2F8$+do*sCunhF0Kv;04prX8@q@u!UTuvxD?As?QQ6hE{><6{#=|T0l zb{HHH9Qi_y{D{2O&(H^j7kgd^wF%AhLqxCJFe^70=3b_S{I1uAT@fu5?@$ttJgs1s zV~Q68X{g8`+7a<_k;fc&ZJx;?h9xW`!fy}rD0A*qD_8|#jccV2it?wy3WCXZ1DiZQ y!=3XVndr&}JwGuO!vB|Tl5H;HywifuQS@w9*H-?rw*CUZ9PRHBco=>?lb zmg1&bopD*QnW7eVRZCkG9^X_$#TEV8?_pwy+rFP*4#@gJf^+YWD0D`+od;%RP#v;7 zr2a%Bt-Z>kW=C?7jAU2LN;r6|Q>H13H!)|IJ?Z2O2eeQeO07{&pChRQJ_U9vNCs!$oL)KN diff --git a/out/production/Robot_Factory_PR/domain/RobotBasics.class b/out/production/Robot_Factory_PR/domain/RobotBasics.class index f5b0081fd702c04ebbb40504f1708a96e68dba40..28b7021e4d21b28636cb5f3c08237b5a96ea92d8 100644 GIT binary patch delta 1115 zcmZ9KSx*yD7>1wI&UDI9*`%5pYJ&!aj@B3zMTEG7API_kqr@nJ7A-nI20# zJ(m!fa^6v)JSGZ{lg|msZA*nP> zN;xc*LstLGvSGrHhH*bilQ!g_|HM?k$WqETf@gA?NB&x(N>Y|I+nrNt{);Z1Djlj) zt_s`~s2+i`$>SC?>6PeiV@bV`evx{Q72Ic)tf}TPH9V1P`IKEeOG2*2U^+9zngm*@ z*mMj}T*^F_h))ShlZqs-Q#StNZJyw5PP@AST)$+48k3#6fjfDN6-@nsK8iP;-YF3v g<4;Ni$Z-zhV)J<}a$}l6DS@~vA7mJP0`UOfAHS@|UH||9 delta 926 zcmb7?Nl#Nz7>1v7J6w9X7OWOhqShfuEyjif8%GS$#MGEriIEWFPz++BR;qv_;*21u z2_I`wx~Qg^yn87irV-BIsFi#{%y^xItK%J^5eQ-!Z7{Gr&I-5rVE zL?o3+w@3E0cC;Ps-dyJ9hQ&<=Om5i>GNh-?jlLnVM=b7e*W{kfPO>^y@>yx^^;9?? zDyns(S*f>q%GKlXxMzdm`GARA2%B`aG~6GaqN-(zV9Og;geRz(q;`^ZZ}HFfKFJ0L zhvdIZwnH2jdkN6QN*P1!Bg}rb)68L+T`p?_ct~Q)I=PA?BxKB~4mwe^i7vxAy_N+g zDWw+wz@<1Lu2W`%@})V6!9j6e%8d>g<2q@Fih-N|0bKC@20lg!?JVRtO9ZP%bVxuN zNzDQ0iYj2nXEAeL7v%zy19qT7{qrC*oSKE~6G%hW)Q4*)s2js{ytiHzg{WjjZiDPjx13|*@BiR2c`MOi1CzGp5?I{q|qv=qFah_5{XhuPhR?1 zPp>Egi>*?xoqyoWT>hC{dAgx2uuFPF!J=Qde&R3g5QjvB9B@uzLdXn>%E48x3)isp Q&nWlBw?sYQk#Gfm0}ex@fdBvi diff --git a/out/production/Robot_Factory_PR/robot/exceptions/RobotException$1.class b/out/production/Robot_Factory_PR/robot/exceptions/RobotException$1.class index 3c73d7b6364a93ff3f9f017263888057c8efe76b..a93d60e245c444e3f98cb5abec3350b395935a71 100644 GIT binary patch delta 13 UcmZ3)wuo)RH6}*>$=8{@0U{s-pa1{> delta 13 UcmZ3)wuo)RH6}*h$=8{@0U{Ozo&W#< diff --git a/out/production/Robot_Factory_PR/robot/exceptions/RobotException.class b/out/production/Robot_Factory_PR/robot/exceptions/RobotException.class index c4d701ed7cccbf0a5474ac2d091563a82acd177f..6e265cfcc20f95689bda7403a8f89eaded005b68 100644 GIT binary patch delta 669 zcmZ8f&2G~`7@W1;I&qyeKZYiOQa5!WaY8~VO$vpSl%EtxPDpS=ihx!{C6!9x8u19$ zz5)`LO8kfd>VXsV01v>CSAaW0opp+ku;khA+a1r$xAGTzKW2UXv-b%=1D(M7E?;Rm zD+&!M8)-Pfj|Jzb0HVksYa(ak7>)}}2e~QP67~2AOqpr@Xt=*U3w0!NHK;lvNS+}~`?X6dD_qR8C>jIJf*5A@86x;t3 zmZZ>I@rxENp*~ym%|Z(aU_U31jbM#`t0tp*SR`=sr(V*15CfXi9Me+^zHI#@c7(|nI z6G5Dqrb3xJ?(kcjMuisj&$B)!herR`FLb9Uy>%yuvbqr^cUneFsG8>EO*CX z{Dx;@J{nb-7En{k20W>ep>o^)J0$tWcp1ulIKLtT+0e-z@(yPm(ZM`x%?oHZ3Kq;=)B20jnq_1z%f1e}UX> zmx3UO5AcBtSL(uT7hSve4+tWj8C}SQ@1FC0=ljlgxmVFk%e;O#I|q=%w@vfEGDL5+ zEr2i_)EcO>P>%-nT}($3Xfn`jp#`mKPYmj=g*Loax1ylCHZ-_uSo^zqlTiP(q|+l1 zUns4XvcF5^x$KYS#rg7_>I@ZPLnekXVqnzo9#iX~i~1b3!ku4omsb|czh>M&v$I{5 z_@I8ul=!GNWQX{ycBLl^g3kN0RozK@jVq!GaYhXS5u_O3l1(AR!jCahrPc7(xN9GSsbM%u%2A#ApQ33tgVvD@W_sHAT#Y5D1$7obL z6)kJ8fZ{fs^cmg+$RtV