From 93b9ea448f8b286e32b88f4eedbc7e75f399d38b Mon Sep 17 00:00:00 2001 From: James Martin Date: Wed, 18 Mar 2020 21:31:42 -0700 Subject: [PATCH] My updated resumes. Why didn't I commit this earlier?? --- _layouts/resume.html | 2 +- assets/css/resume.css | 23 +++++++++++--- index.html | 15 +++++---- resume/index.html | 2 +- resume/resume.tex | 48 ---------------------------- resume/web-developer.html | 6 ++-- resume/web-developer.pdf | Bin 0 -> 33189 bytes resume/web-developer.tex | 65 ++++++++++++++++++++++++++++++++++++++ 8 files changed, 96 insertions(+), 65 deletions(-) delete mode 100644 resume/resume.tex create mode 100644 resume/web-developer.pdf create mode 100644 resume/web-developer.tex diff --git a/_layouts/resume.html b/_layouts/resume.html index c046275..99a1769 100644 --- a/_layouts/resume.html +++ b/_layouts/resume.html @@ -12,7 +12,7 @@

James T. Martin, {{ page.title }}

- {{ page.tagline }} + {% if page.tagline %}{{ page.tagline }}{% endif %}
diff --git a/assets/css/resume.css b/assets/css/resume.css index ceaa98a..7219afe 100644 --- a/assets/css/resume.css +++ b/assets/css/resume.css @@ -3,7 +3,7 @@ body { } h1 { - margin-top: 0; + margin: 0; } h2, h3 { @@ -30,11 +30,9 @@ h2, h3 { } aside { - flex: 1 1 auto; + flex: 1 1 content; width: 100%; - padding: 20px 40px; - background: #f0f0f0; color: #111; } @@ -44,7 +42,18 @@ aside { flex: 1 1 content; max-width: 75ch; - padding: 20px; +} + +@media (min-width: 1001px) { + .content, aside { + padding: 20px 60px; + } +} + +@media (max-width: 1000px) { + .content, aside { + padding: 20px; + } } .experience h3 { @@ -54,3 +63,7 @@ aside { .experience-duration { float: right; } + +li { + padding: .25em 0; +} diff --git a/index.html b/index.html index 96894aa..6bec408 100644 --- a/index.html +++ b/index.html @@ -11,15 +11,16 @@ permalink: /

- My name is James. I am a programmer from Renton, Washington. - I additionally serve as an administrator in the programming language design community. - I have been programming since I was 7 years old. + My name is James T. Martin. + I am a programmer and moderator in the programming language design community. + There, I research type theory and time-reversible computing, maintain the community website, and host a bridge between IRC and Discord via Matrix. + I value challenging problems, and always strive to find the best solution I can. + You can find out more about what I do on my Projects page.

- I am fascinated by languages: human, computer, mathematical, and musical. - I love abstractions, but try to keep it simple and not get carried away with them. + In high school I wrote Java for the school's robotics competition team, taught my peers Java and Git, and mentored programming at the summer robotics camp. +In middle school, I used Unity3d to write a Minecraft clone with infinite procedurally generated worlds and networked multiplayer, and ran a somewhat popular Fallout-themed Minecraft server.

- I don't have much to say about myself; I'm stil ltrying to figure out who I am in life. - You can check out a few of the things I did in the past. + Outside of programming, I enjoy playing music, playing D&D, hiking, and skiing.

diff --git a/resume/index.html b/resume/index.html index be79bf7..42ea5cb 100644 --- a/resume/index.html +++ b/resume/index.html @@ -9,7 +9,7 @@ permalink: /resume/

I have different resumes for different jobs.

@@ -66,7 +66,7 @@ permalink: /resume/web-developer diff --git a/resume/web-developer.pdf b/resume/web-developer.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d3d00c4a5e2ace0dd4a44b89bf66337d25a4416b GIT binary patch literal 33189 zcma&NW2`Vv5bk$u+xB~G+qP}nwr$(CZQHhOpZ;&#+oZis+D$f@P3Ft&CeLIu&yQ4I zSd@l=mIaD*etBdaikX#wp1{t~5{jD}icZ?Z*38+QfPsmHgW!K(P;{ae*3Kr51azX- z2F@nJCPsF~CQ!V*P)^Q{CI&W8?wc*@6OKo$2t9LZ=V+CNi-)uxv0L;I`N9wiqy{Z$bS|f_4aB z4BUeQ+}Ph1I`N6CLR)c$R=4A3#yW`we2tZ%4?HsORC^bKeK<>En&GJ3?PxWjelv8< zC~FzP_Uz)Au-0^rg%pcOvXX;P$5Ef&i20C2`fApDr15*bY^0c;4JsU@JFcxU_#3wS zAb^tX8c?!(srGD8V!IT9VbJG238b@P#r0zWc)gald|y1A`QD7kwhp zXCSo?W~7gi$)raevD26b9#W2$MD?Z|Yg}T5)LOGx6%(H3T?RN_t0GegE7%=IGZgRe zm?OfBsu^GhUOou%fU7*N>;al zD>1q)Ev}IE+Vf#93fJm!Ly;yQe9i2pE>t9gR7)U(2`9=1CCNg%gH%F7z_x3a=&ar+ znvwz%=KCTv6x5bJi^RmANm7f-*A`=!IFMhu&D>sEMVbXHz2P-4WvgYQm`08zyPA;Q5l15VQFolW;R?Q@xs;_#HR|P1CIP(vvB>-D_o6X%pghbRt?ST(5WD?61^|r&7V0 zl1dhR3yQ$SsDoC)5`@ZUf#d4l!|zwwkS=~_3hF2zGbJ!f|4;;jw3@5Ob+uNNA$FA+ z<01!-Wm^;|9-+h~(;9aT|CXM%jBC>n_V)?HJvZq!lA^hEU*c(nP2eG$;U<9pMSj-M zf5&Tda&us82Hn-S?na^sB|e0ncJl0_N1;`DDJ47uDk5G~ zQeT7zQ1;Ioomfy9l2X=Z3&!d zC2lR%w#Mk$2$4(M7LUbeJg7vmJSLz}U!5sDeoYsrXBTyTSSekuUZRJ>O;^{EomcO) zJASWSZ(E(3QR`hYU=+%iV`}pkdLpCS647IZc`C60>Vr=jkHz#_1^zrRwccYT(CSf1 z_t2`@M;Tr0ito93q-Q`{1ur{{-MmEg zFSakAf>AyeVt#)*&M6P&g2cco5@cdv55@Q{k}Ixyk=g5~k9QhC)N&x$jK)e-+9~GL z-;1cSiQ^;?*+45@m4#(i=1bh-Y8i;O^mIH(^eF#999vg;y_IU6%+Eg=SnH6>!=uJU zA!|vJDivWxR+Cg@Fd36kyywZD=KX?6oby~lnb;ctpUV1Q^gmRYh3WrAo>>|G4|OK^ z|CVQ_hIuA76?%Dk6?!Fl2EYOop;|#&Bk26}0HAmv36e8M4iCqRFyIgEPdxp_CAEU$ za^@7NJ<5KKfq1Ds5yDOR0fN-2C6R!D4?bYvpzl9$7?_toKYIG_zdvw_=RZDRu6Xl( za3t{KfMH;I19%c%{|HZl2Ven!hd(|NL~}3#Y0-7CR-9{?`k;Q z?o8)uXC=89YVtX7v^A8UK?@s!hY1*&jbB|=BO?Q}e|UKEza1zpQDF$z2=pr#D_#NS zY|q@*a_~DOxDIFz05l~G!>=!-p@r?AoP_G1f!aSkJ2O2nGYq0{V0ieMS5O1Y#y{M@ zv5i461rXoZ0?0|E2(`7@!I7So8PM3XH$J>Qx_+#NJu2%OUCDa- zD$6gC;Ah=WG`z>CL;%r0Iy^i)@r(!13=W_ZGmYU#D(}z){99uDOA7Y3e_~)}1x^px z2Kda#1{mmvz=H#u9RLs?ggifWBsb!RNW{d{zrGCtLJyLexkd0B3x@_Q^E23>mLhsyQG1a$Yi0dLvwXEd=92#yZn z{^m97lD?iE-LE(Omsj>fm-go;^!sn}?<)ImFLF4$y83sq?`v!SPs~o=#`fej4%FQ~ zhku_mz6G={aORIi1^l>Xd-EsqgH> zuH&*!rirl)kZPSX^RH72;CWhF`cDj8myTHK{^tM!Z?aFB|Nixxt)x6Aq2{5E#mK-2 z9D|)5qn(g3z$_vp26le{W>?H8|4PpYM&G!;0W?4dVE?rnfUFfRyl*x+2ezN$UFw<5 z5S$+BM-&G@^k6R>xu4<@+W`4HF4a1!O;=G3HtL27qB<`H|)>z3^<^cpLlqLLyI_jMX#3A5e#fzpf6=Lo9%03{?OaesnCPB3%ni$N`CR=V$Q0%?N)Vqur2 z!0B^)0ADSqw4ZIX6{PeChtfc+Ztf5zV&S>Ppt%BR`3x_Jy;J>-$_+Yq6X&hDJr-cq zzfjA0(O6JESzmPvQ8}25asmYG`elhj~BK^?=T!)kf zt7WN@;6@|Q2%5@_{kX_r03M6Z6-@ln4x&ZgifYL?gQaEtk?Y*wiIjahUH>K_Aq=I;cO&fhp4)wlm)fJmD$yOdpu~@EK)z&o zqgk&&b%rhQaIdDL*f!X{tl4ThyKM!<`il(dZAu~MX{&}O&Zw=HmQD?KBN0H&ih)+e zA<)7tm;K5+Q$=`U6z8lFHl#KaCcY|#h;w%5-D+tZ^z(wlBQ}nkApug=idMcRwZ{@) zBr#R|%4 zS~phCLa6sXCb-M0w?{tKGc*nRoV`>Xq8&GYj>LENhz~$p3jMOj9OwM4?S_I^cII>9 z)@G;a;)~N2_6x77h?q}e9Hjj-V{&BeP*<)O49X)VPToyX$lRaPx%Y}?X)GZNcd_)< zJcl~CNSbW0rm&qTv?6WN?AA0LA%Vald=}-w<$_riKNK$_zYbZS zYPMofP-#!snkYv9gA0%j+8L@x6sDK49xH@c%fezc{C4TH3R&-c^Euz;8hheIssqtb zv9fQVkIJmwhjl7N)VhmHlW#)K7-F+R+I38DmD97pK#vlRH3XyeDUWKa6*?8MV!J)( zImc&)1Q{k%pL*yWCT%yjn_;-?bwVN|*?VuJ+%)yDW;J6W0j|QMhbtc72R7l2Q5Z$9 z#bt&#U=Ll;((oT;4EW3P^;qDWRDg>^<8Uv_?MH~F>kO`HVwIe5c zo?%CDNoAasC=0~(l8_$^&RC66A_iXpKJTUFJSHb+^&Jf}U$RVwypS$NsJr(0bN{3ec^ zy;w{+7erv1n<)5V_B?rq)o~13AOQ?!akt8?EE?W5KlqdTE?W1X*F45flyXMaD zp@JGPHKXoM%Oxh4F_59^u%Rpb6eo?iT;x&ecr8N;O|L76t(Fg!vt9zk9Q#pDp~wtd zQRX>;$WwJ+{H-vO{HBnca3^QiH&ooNX_30I!AV}16EZdL{8Q?VBN~5|*xGx#yBWQ# zUpRr+Q2E;75-P@N5T&1ys08Ec!OMrF5g-X9&PhVZs6Jy6eG`3deYGSx6h*C7rie?Z zRKBfF-!Z^|&|qO0){JQ>_?mio!AuZR!ARIu^@U(FEyD!E4j;~DUt3@Aex|7kgY6o9 zgngNwU1iQcXQ3aNzu5yP6;+o z>py?%yXHFo=kpb&{5#oSi-Ht)z2|+UJtjdQNRYFyBf$4v5g~Sxe+l^Uc|xMI`hyqD z#p8h})Fvn2R+|h8696y3E-2xQGe+#F*Rw6#P_UlAMFmNFv=JGO752d}^q1pny;ePO zSlXBy7OOv0(={s+AGkrECC)wp96_0!E2r``!Q^iS9_VjSx|DvTi@CpO!ATad%`ThD zgHB;-nH^kRJ=1=}}A5ToVbTvxiMba>-Qvy$uH=H+OOJ=ttpmJ!1 zBWTA8ucNtWKWwQ@l3{zSV4$Pz6SbWv;qJ(cecJAL>>1f-;Q}%z3*A`QJ+$N1nMNgR z^;_*k6f4khuMKScx^U~R*4cuS0+7(TW09gf0dT7_WYDRqmA}CayI<{4BVs&SqRPKa zy}yW84EOwU{VV#ZugR#5k^j7YK}>JDBD8wVbN_aUzoXy60*>Xl5l)_9-)1KcotW0n zMS;v>B>-_6<-3*Tc^FQDN4c>mm7b=CVv}hxIONL2DmaRj+>7?Io<;;&JxF(F{_4rp ze>@I#)UQSd^=m!}3>xfJy4AMMLTkwSjG}Pv5{)Ewj+W>F-#RT@ZW9pF#AHdD>c~(- z%^^|^1LOtwHMYuU0JnPV;62ay(*kUruq~$5ir*WRpLJCPsiNtzX-47by61>4pFL%5 z+>y=P8nRm`EeEC5fO1`erkUlbbE4U~{KWAa^iZEuriB}e$sN_xS!B)`(0+CslkwvA z#RqwMhaVr01^+4^hBjGBxl9~P>_&P3k$=r$pCjupF!kOOz9B15atLQWDeNejFOpRT zxQ@YpBFagA8t(<2{7kh69g`@}Cik&5KvXzQU>RQ8Pana4@alBA2|6S~^ z&$w=3x9*xl4V5OGji9{%>r=?MHj9h>cs~CK0#6du*c*zHQMO1cc5`wq>>+VMANV0P z<>n?Hm!h+!!IL0g10GPR6dm7Z#T}xYN#chgR~UzLx;mwJgF8c#3}arj*c;ah-e< z2mc%jtWcJSJxaS>EaUauw2X)(c|^27 zv0~3R(9RdIr)AEL!)djDLT&j2yr?MR!idn4jkip&!Z!4ENw@M&RYXi8X<6A!@Lkn7SO(t2uhAVCq%dPKxPq&YvwrOR{b#NvvuGg(knX+FHCvQc)uRR!kt$FW3*c(zJ+5lUm*5jI7u5r_ho}!rs zX&pl#&7~*f%@ZN1w8slxWZKZT(E2`iB{wZCu!}gB^|peuzuNqI&-)K$RKUuho8ke6 zs+D3!W?Gcpn;b?!IaYqCx{_k{)2IkB@YuJM$ijz+jCfoD3eweN9uqg~Sz$wmQ8XFW zulE1jU~tv&%fyVnIo`=t=OD=|dT5JJ&0B6;GCI4a5H@z1{-alRHle;yW+@2mbmHLf z#Dn@RvTFUYK1>zkNh^MGR@24OySBkK)(c>(^`OJo1gVs1?h*E0J4e%zBohqqAz7us zYzZXOQD&ggCG+N=(b`nKh&nire2{3P+xjeNskE0}N#p+KITP)2*!7Zww<&DRaOWB6 z>`^GD@sBXU=g`um7u+$U-OG#U>WCB64n>I|FdqHE{`r;I>u+`)OuD)mX%QS-$?fKS zYj_onv#psO*=|`jV>B*B7h7O)jVijXR~Zsv=hNA43+1%Bp6OAyeYsr&ox=fL=uSbJ z6QK?Xj@T%Az{-|g`ee%`iwk70$k-s1?<89=v!@f?&Lop07Q(A&@$NUJzv+6mQ4|X; zYi%sfnCn1c^J#D&HNgBivuO?91F}xEmKz~4UjB=+qZ_&V+RfiBpAlJ__zI?uhq&=4 z5oLI4oBLvc;7ti0AcfpAE5*;#XoIFGS(4P7H2h2CE$M`)rvc|qrO?WB^KkNCMH{WF zN@q_Ef6@Ch>>$m6lPm0o#@K~buNX7 zHEl+?)ZqN_NHRp2!Z-`9v45pojC4hf%W3-h!+lcA6M11TqT9V|S3P1ITXD0K#u{0SM>;)TQeCe^c2!NexX7($g*wtWoYa{~F8)NUsUn3=BB!#> zgFL>w5p}klk@6Gut-X6TJVMxHpMw_b##o|Qn{T0WmHSrOycYh@j*$oN8(fZwY3W6{ zG)7i_DUL;isk4eIGRG@pkjmTdXce15$0h+u!)<=D%s-y&#yUMsK_aB9FM_tF87t3ufUGCTEIeC=!QbaNUR(~}Y9>ez zhM1N*S;{O>!{J^ca4aHiVGLO({M`k|U{SC|3M#VpC_(m!zLTb*HLL)bv;CxKh?^OY zHABb5Y&!2waw~hyHVRp*f(>YSi}v_{9J*M#D?}Ft?Wo~Ay9kwoPEdmW;G zTl!1?b^;e=$xtTNAjil=_82w^6vDR4)}F|D&yrBY(Nd*nSe;=O%bNt}tQ zn5YwE8(SC%b=mWid)Z)Vm0}s5NpADd&R;I1o(iWvRzkCa?Zwc>h$ilKW?hRTU*{rCb-w)F@8g$38I=jP1>I%F&K&*DXp8o%UukL?T5n3x3Xx?W~#y$8K-z)45~@L zjW;8~I(T~1GvV7*Ug-F?ci{%iu~|ivIUUsaI(?tAem@dhK5)=6d%V#MkAr5KTLyLz zzYg7EEP(mEPAH^X{&9OsNum;^U->Ru2}xdJX)@ox2#;?g;``Vs(HL~QoQg+|aEA(N zi#q4-!B5Qp1M%~cVm+OF5%U=aR`tvSpTk~}LIKH}rJ9efK|}Yz-*fsxpv)vKiQ8Q< z`S@ZOkj-I6C+2X_Wn{I?QQNUfm4^5cSVR{FCipsdAz-`3??L9IvW@ZTRSywSYpdew z_#ND5L*IGdinK9ixkA$&0yAv5BkXWS8_hj=pr*?5QhfWJY6`->CuN_9>?y*qL~{d1 zF$?QqZLPz)z~ReMc+TB#Y+-&uES)8iCjy_)rXWaSteiTWiRk_*4R_tIydgJfD?|SC z4JFc#^BKHG&Kmfw$Q(pv`=TaE5hXfKwn%E2?+t+6VT_R2el9|R4SN%_mI(VY3^mS%R~eLX-xC7@H{Rp(wQ6Srei+ik)#BGdE1UZ9c) zSOCku+ojxwJAWN2iWvBV^3pZosjQU7MiZ9Hh7l2Wt#4&Nn7?Ep{+u*XJA$@q@a{&w z(HhQ!;puQEn0uv(3iYts5s6y6=%_)K8`@Ek;-Z6l{nnFaajGU`boOnfR>23cAR9;> zN};moOf?8fbZDPq_t|d*^Gh@yVR7Y&hQr%ZnAtjD?>nRl>pj;l&G%z-%QPo#mNaee zr$?T^jj!BJHY9iT9Ub^VqFVXM%x!?v3lGO^S2d4&j^8b>2=V>7NXc$HH_cq-wj!1e@^wV~Zv(3=>YMiI z0`yj{QdjAwLLP7hjL-1>pXAoEonJfe-^XJuzSk91ju1#!Zmcj}rU$NTZFSyH3btpj zkSBig@4Dzs|6vX>*P47Bqf0L^znyBs!@m509s;mz_MOsoE}&NhE?)7FZOY6_2C11$ zwMq4}Kvm))W;L`K!DAPK*^K8zZ!Tdf#$eO^v{9#}5SM5SVljm$NFG{c`gO=K>@dTj zkwWRg*Nx56=ZUn;)zdAeZM@ z)u%1WmPuU~lZ^2CQI{HwnAIvWAz%H}U^7E&9Fj-3(U?#SsTMjKp%10Ls~SH&B#syq zB0G~%Q73I`Wg%q&6WmFKqTP)UD=ST|#vJ3I$HcmkV(3Tt7+Uu*lLYQc#Z_?J$NlKR zH2UaRqDm6IiD%8>4`N33L&on++G8(qK@97$Cg12(73~oeSVC42kbu&0Hj%QJcGNS-y;CG>M1xW`^dI{ehow(bAqzwn-xuC#N z8aKn3S3MP%0Dej{2s?pf_3f=5vaT;I#I7`&x;}|6eVF=Qa4)9~$zDaD~c-Dql#thikN$MW9t+T33(c1t~t!!qYQpGw-4%aM~XRw@$6LzIp-4`6NMg z_Z5DOh4Fpg`{cSOf`_{$CT0U{(0QrRP98rFZRCB-6U=Zie|>26qoxSP5H16B@2ayh zber!6;6!M~sr}aBWacM0q!CRYZa(^dy@r-MW1?P`tU9ae%=Ld!_g-Ius}!ZW195he z7I}svD0w-d9c{vBYGw;{*sH-7 zkaHpaEuXPof(i5|>vzF<3fD^a)lTlN9gcA5Bh|b;0eKLYD2jV}Wwp=+Pz-jh1src* z8xD>CIT^IFNlCA2nqNNGPiS<%fUE4v?A!hu*V<~pzY*lBSIJiPw5nmeu2*{G38PY$ z9l+>a@tUQs*t3=8(WJw#-mMmo(fisw(5yV9{2`8C1uUL-#lt1w)qRHaGR5j3elBWF ztL-b~Y|eHX9sswPDCb|HP}(g(wGnpG)sI2U)a}%1n$Ugp?2mU_zI_geI0hfAeT(Or zI|iDTuvw@hj<=L9t%`XNF(NNpe?<#c#j5vQa9pg^^c#D4v#ZK9$-Ig-jZd#bOg{gd zASTHp{)%R_;oDqRY6#!IT464^D83@wozGx=tH6<0{ev&-3NtOKik0KyENEgpgpR6X zlXgSs^gL`lM?V>lJvFA@5sir|46{fi2QL6=Jnz`$K3OmKsYcYq6n|E=9-sdskv38= zwDLE#H1B|vx%1dsZu#w4Y?VA}JkZGpq$PA-t00B>ZQYe`E(O@mC?CsrdmDZaSwvTF zMY4+vzlIX0^#3z%>_>h}t?<%2@tBteX9gW6kMua%2t(D^Bx<=0IOVax^xx5KCL#@r zogpl@wWgrahj?~27g!WbX?TI1oP7=`iG}0*AkvO#MUTJ4!!wTL)&A!0Ljxk$pJdta zkMMDmCRXWTj+Kb4IJ_7b-(gn(*Hi5XrIT!Z?L;xuRQ2IXEt6YF-tHyPyIGkg44{!{ zkzZYH*2ZP1Y{FtieGxhh+yGhTd?h9Bg-F$I-B%;#x=G1KMABtoGj?wP_c{BC z>vlj_DQiR^lDsgV`(PiWRv?|6I3C_H=X+0BCbjEQ{3YzTZ%O9XbwFQUEaZ{QR8Ib< z_P1FlN-GyYx&^8i_Hmnd|F~SbSP;e6v~`!rz$^Uk$`k?D&wCSVPpT6cwHK|~Ayz`E z3lY+E(09(|`kO&j)Ds9TA&gNLX<(;Q22PRcs5wGu(~=jdti!nx!E~RytD203G{>)_ zc{8m&Ce&!V;S}yC2=zg2*xWiA(4zvtIM6jDaU<2ol#6GT&Q#Z?R*v#pz#$X=S>`+* z%^_WVI<6izyg{)HFXWzhwDpo22SI-IlDN;=J2vEoo^8}qW|kt@U^Jq?JXSJ1VhkY| zC+0=obY1Eyj87#Vf4u7=OG&oB6}|Yu!_6W}T+RbI3ur_0Woo--K^s~R!9<_Q=c05< z3F|~P-f0BSn6+GSCVi53Vav?aBSbMjG{1q6uKOfH@u@OwXsh~m$6od#O_!Ut-DYKp z)t^QZehhZSC8aT$U{cI%j=T~%9VT?tZ7*|mu*jtxG}{mnc2%W|jMtk%(Cb5&n_ZE` zP)+}QI1Zoxwrrv!^c1@UsYXci=VKH)+5Afp)F+AQ2KeL(R3nY1Xy+c}1RX`Q6!j}~ z4szjjv<9tBh87uIDst$_S+^>hht%thd?KCXA35`>RpvwDxdL`?-6c;BAFOM1Xb;}3 z%>M4Her0N(SUq_*{ZD5tPPoIb;K)5Jl?t?AR1t|B%Hh>W5V`;wiKar?*pCLsg5eR? zN`y%BHk!cZSuuIajsloVY7Gj(?tkvV2P=JiHI3k|p?C#=l}2Zpr>N5>EEqeGRr9F; za;G<;jauTsP`}UZ8t*kDF$V6>eJsh>D;CMn(2OE|>X=hmOeW2DSD=-3DJTW9(oCKr z)v8bDe13Om(vl#ytV9aZ*V42#exu~+U5jGrDHX%My{Ut=Va~adeF-?03=@3MyXCyQ z%w5q)9b(NG?N3B^&b&8?w1%?? zt8CQ_jhHMvwom)=aUfi*d&LmDp}xclQoZ{R*n#=yGn6^vks2TAkmE0m!I)6jQeDjx zgcs9!3NTs1YOJ=<956lm%wf1(yA0iy(S!Kx!ue?ZW=`$z_ax3yh*t+`)@P?}WF6b+ zfC;Fc9}hA0NbFv1em(&uzPETJCiQN34#$J5%{VhsXzA$vy*Op={!pmG1BV*p-YERTcTTcyu-g!sy=eZi^S0flg%&-r6SP6 zY~kS0UCFX9uzF`itHHnQMP3#8F?}h{=@=Aufo7r4fkkB2l;(yx2}LR(I^z+38^Y>} zD`yD;EHclwXQjSNbj0xWgNC+7L3|=c>n4#7gv>IOM)=lNm$4gZkPKlr+%LTj7V3`8 zQM2#vmDyT1hKDxuwmVom7&bO62bb>5lPjVP0%2y|7{Nb9ZW*5OgSWang3Tb>oj zo(9-30md)&6W#91eS}8taJ~~TxdUv%b&w?0_x_&4C~7D{<%9pGhVcs7nH&V%hUk1O zjYMr1?z(#8@r+K+6Id|QKk9X$NONT0k^>B4{xeGrR~e_S^mrbq^t_J6_oQ4;S7YKG zWYt!rH!+Vz>n|Lg9jN%onOCQeLwAhVmj5`jx^QhpbJn~DDGA!w0xLW^BbC`dr1IYP zecDDT{REf82l#urPVZm^TGS49iY0@&_V-HX&HLWER9PP;ok|w+q5doh=%rS#GS@Ol zU!jfya0J>H^}&w1mvNEa-j#{E_cqn5sjnK0!Ks{42Aq$F?I$E$I6{Rzd}rUI2P>kC z2TBKLV0@5Gaii=%g%(pml7lRlr{`S}B+2yzqVNI%j>u8lYlGaI^H%V?U#)MzvhcgP zfsdQr@}ZIBL0h`lCldImUI<`#J3_-T6$*H_r@oLUgNg-WU+-$=QQr3m$ZAut6Uxt& z!pR=pn(y#TzrQJ}qXZVE9fp5of-`34460I16sk{sF00KEWu;+Mop=str0?Ty@14M} zPd6YBN)l!=8wJmX3rz%_>ekV>sn54wCmFjdv9EIj>4#URS8xbb7Gj;(Taz2|7gZ=2 z7(R08;`HQtF%Eqk-4BgO)dx%d2F)mQaEM=sl3#Qz$`p(-vZ%#FuP@{K#r!azK8Q>_ zlFJBji*TAAr?;^S0CG|isqiu=n$0XK>OFDmyJCiBRyx=v z`m)Ba>&96!;%XA#f)b@832fy%+Hca}KJle);aV28;OmzRVe6vJT^0Ob$S4fyd9tAT zG9{f@)k^gPP2oMjBulz^JAX|vmYjYbO>=DH=CG|i-3u}2E1c(TWw&Pw4 z8*XuMy1l0*1dTtgLsFxuCn)MVcPHnp7~`r8R)g$!yvr1+<`y8$;^#^B!YtP#Pxl(* zX(x|nk9Ab%L~g^;S`hyN+AE2vat4AYM?!`&hZX(W$Q{5S3+1IqF2Ui2$df|m_^0t$ zQly2{1>^_zT&F?Ws28wt1g(h?9izihs!ksGN=5 zq7)$#BV2jaE`fwiW{wYs*N)6_Ng~;DL3NN*(PHM(9)gS8Ag#=X56GfR$Wz2+lnke` zr)f{%y&V-p!R70k_LVo*+p=-gSTxDEPV$H%7|EhHejJf<{#3WwWH4$yjx)w818tdlx4 zC+hf#PD?s$sGxhN4eXg&7<`~pm3v>WA-!z6n728ncX<{*w;;hgZPH%cx6?h9HSJjR zbcOT}#+D(xtYAKHB}cxC&nU~5=dk^|L+E1!cJfD(1hC|G-g0hZ>I))Nt^ZB|nS+Yd zZqv`rqEX+>hm!$x!!td{UR1Isw=Q<3JO)Vr#kl+ z+?`##{faJR&Bs!s$herzQ&5g3JYBsKxkCXLaPX;#mu=LXv8I{E$S{cq(s6C(Ob2A+ zs_jR2O&a-z;5d;89XPcLSdMgxi{zA_%--%Ctp%veUr4!;0ZdE=3RYv}?6}Hg!~0l7#Fh3pTk&v|Tru%A~AK z%(q#$8Z$)vaOhQ!l{{~k9!_X2+XX;JRorF^bykRZUCZ2+*vf}yft?RdX```CBEO6Y z3PM)L-XVN`Ww6hbCQa(y^AIrYTtj1ebP`YLM&-M>#K;hLaW!N&##SS~MOP}nM7XXB z-(K1Bgk!PENmmFXs&yaf$cYh6EAI9$?DK}> z_gz79oGt0VTHVLTte(!j&SZ7I)0yooxtGV=*+v%X%|N|vpHO67WeV7?QyB06`51D!@7X;e z%x)G9{tov3XL^yeInAXDfq6vk9vAxfl?YpV)xyb)l;e3`!|D{u%V~45R}ndm3(V83 ziB!`uOSW^bA&S_ub0sktSU%XVHuS!9zqC+FPbv3PMCF;q0yn+tSn+l>l;39%zthY- zMynOS&&QMkCnILAo0pV|DeK+its4}wxTmxss_?J%M&h*AOB?OPrUIz`H1`<52kk?1 zd1n}Bpz5jdCh}JXh??A;3U0$vlC`{K%xvVeB`^G}fM!xPXf`s3#23Ayyg|E!zTBYy z;|J(!%U#I9)(_{-X$gMZ@lMqiuP-#ncF1&Jth$u%1(x-#TpI3KR-_Fj07}-%RN*SF zyo=FO)*|+C2_m5~m~NUcM3cE^@4D)$GK9)pNToaHgxUm*h^Xuem_( zWcK4p;~4=Y4)WG!Xav8DMzML*2;<&}Z2mPBd*(^F9pB!O>l=f7m(CFPlC*&zJo;Xw z_Klnx&>wja7O2|iR+=^&H_pxz;k&c;f_d&s>gIJoS-6J6tAJS08d-eS?}+Qf%HXI( zEz8U!m8e6PSq%{A8J{r@J2A!P`)zcMeka4QVI%2wPJ_T{48w%;(>dofAXOm8)Db&47K2)! z7`>fR&Mt4!GGX2)h<8!{dQ9 z&c@Khsnz`4|A1p=kli-{!e?N>nNNutGmpIC3AwLeMk)LSY&ilY4?qJK?R_B%Mu!fV z*|#qK^Z8_|SBk{+Y=<21CpdO)9)1NGHt_H8u(3q<^=qb6F9zE575)9`0YNGp*TkmEspTdTuf zkpiTaP$hRcnQnCU+Pqk7I%bo#W$6~IoiBt@mDwfW$)!BIeayD^Id=XN*6nQt!anux zOD~FKj$VA3-HkB1krF$%byiFB`1QxAm2=0f5H zEn{Ofqr*v+Hxk5DP#;?F`?f*xGN{X9_)roI$B+GsF<9dp9DgR?vg!z>- zrT0(~m}~byeB+?FKlm*Og|T&qGqXW4S{NbylfF5hecp-S$AV%eqPcy~(LhamVt3Ha z^-9NmFQzCP6+GV8KVxTqz1@~dN~Wk=!mvNh)z#ARWHWb!2q_uE1XQ*|o@N(y1Djco zVC#&gzqsL>StUT*Okxz;GxlCzG{G3T;bLJ89}UO)2OP(A2#Xg69_Q|evsYS!Tj+`K zVcdN94b(Yn7-dWVaJB$p8)dee=ril@0~QozRR6!N1^}&59%8}+mg-k!#U@H*j|Oeu zOEkw#3SM`Sj;A0}w=ByX3pp2Yv&;sI_Ki#h3+V^6sye&k2xbewrmXeKvJ&A z)GA{{t_UC|yaOQq%uz?nyC5P0ESFk`je?=ZxpjxyHM6)d$8E?OPfZjuVzT=G*_4)R z3>8~b^S|7l@BY*iv7X?1u8V>qq7?tCv66*C59R?}(DnvNFZ7X&zwAwXw%Y$S&mToD z=>%0b!Nr9U)RTQV?zP8E2R3zous~`xh9iVBQHaiiFsxU^sg;OdY^K^L(fM#bA4MIN ziz#+}R)MoX73HlK4pVt9<4h1XWv~=_2GTz6>67ugq!goQ4E$>uB20GWXSDu2No{x9 zA{hP?7SB0_lD7^%UPImp4SPXDl+H8gAnf+el-7kpW?OJyAUHDVikP z{*bp_ul*O`s?8)yB)mk@Z@vjQA6{SBN7*CKaUhReDf9Ly&~(gIqC&23KBCfNwaEjH zaI3uNBKM$SF5@cun~B4p)_IG^#D{JMIg31#onRR?$tWR8YjZI3LM;=^QF`u0iDf*( zsG%^5FLEPL|NhPv6)WT&{E}Wf4G~_CTZ3e9wD#5BV`hzk9&*pNw{n;neIk=`4x&4a zQ>1u^w{G>Crt^g@SY5AQeoAxX5rfZ@D1CFUVUtRm^2@t7+Y$&3Z`Uqu`v!;8le!POvL1pZ$XPCMBX(OR@a@@^i-)0 z&`cd3s%JYaB4sp2IEgchpz4j2AZZ*;o_RKVROg6e;if-Jx@#*m3^klQavEpY6*9xn zHe9c{BCVugLZfH(B$c8ws^v4?l!Y2&tbC6uBDFn1goAbBB5(FZ<8!WD?PiDyIKukcsv2|K$Q%OCP!wq-8Yc`D@{ zJ@;@ZIlo-T0|?OUCUIU!_|E)E_-Ra|1hV?XalD@1kix8v@y3Y9XNF22{$qbUoRG2)PYA(@N%4IXElKg++#MQX0NZDt142ef^EZLDFyc?*J+;X>(ETNP%f_AVbZCZ=*<0p^H}e_oD_eo zBXQs9{gq=xlBH*vkCg77k0Zf^HW9+yA!Fm4W$3T00u$yYHb?FWA43gD2ZcgRfc%OR7Va{cIbeZ zGlmPkm@m}AWI9@vJh|vWEX(zIply;poL7~6dCsVoN0+GCR?i>4ua5kG|0^Q-AO89O zME3tfBz13Lm09`wP9hM){)n#R0 z=HLb^@ITPV9SH({dpF2i+X0&QtDd(GE{?Yze7k3iou8DM%1jk2g#^kfhRAe|bbk`u zYaPr0Y3gnO22d6j1sVcq|B#TFh>#G}h)Btu$rZF`tsvnSyyI)b6aBfbu$XkF@pV*c zWHwjOEGqVOVB;NYKz>$$_$2i4k*Pr-eG`L&4}2kTGhP4ohOQJ${s2gVD}8uJfkGrF z`)9}2#(HPayk|Z?z~)kC00MY;^r5|507S0%rj&{X9{z##6(nPD-i76LwER)!Qcal3vCtcnBR8_D3qqDkG&-zi0fgWAKF#><7u=3BZ!9CeI zNQ)~2xJXf@`YBt&oz&ot%-{p4>sy&XHMjwCwXbIeWC89y0$MUY0Fa2qfAftz{G!tX z{4C-E#6!N>wf(yPqKr-a*qIqADS>l|8F|rBc|rTPC(}UW5mU?_U7Sw<(6_LCPR^~Z z3Dck)G(A zfj79h2z*fSIZ&C!Q?xzmPW|fE$8-mUb3k;hV?7$Ssz2rnE=8Q{ONmG zJ>B*D*yCVws%w4zu=#lvVUn`2s+b60{MCBuwNy|5m-B}wLi^JTaS#>hXeyO_k-)sg9?YL zbcc5L>vi?(`tB$5si*M62lnH4N_=i=_1Ow~{hRishdSb_+M@eg4>((wN#%}*jNPYY z@Y^fHBJf*PUlvro{<|{Xh8ffXxA2!&abRbu|Eku<=y(qVor??0iy(jw zQyLop58s_(nm@;HmeD_be5W7f3J3u06rA48Ui9Nqm7^VC%Fr+3hrkw~@y+f4kY4Ib zYLCD$KB)0q|vyWlf z4~aeUq<09I^l%rXrvHd7z>5Amb**2aFOIx(cg62HYyAoyL=Ex-t)Ir^=d|OOMIW>j zvnx63KVldUf_LQs{s@3x>pNiY$>xXO{-?zczYU;s7h=cO^mCUi zNawoW=^+d^t9S6$vwsHew-~H-?Y}9_Pm#;7?ZNBOb)e@-aM!*Ox7rJ9)Ye z5B86I(4)gAaDQ>zZ@`{4_s<#e+U6rXh}q3Ecp%gBPc{X6BHP$|ZsCs=p!9ZDc0XNk zFP_q#*E`M6GLdtmit(5CNl{UAp$CfL@z!swC0Y&7+@#DA6+k^ui%Q-f%P;fPR&xlS!AmeRdw^<4y zZ3f~uu!y1ceXE_?qe9-}zioJ>MjvV729S7}&nncO&BhPMUX%{TWvtHSdW1s^A5Y@0 zblelCT*RrR8Vv+Vu6*R5(Xwtf!Rx5?+1!)R?fh&H60s3L@XIpY_dL``(VuD$?_c%? z7DC@3O>k9Q<`GCw$QcCH+-?+N2Fh*4;yJ^;OIV#fG}4(T&I$Vit(Qf}*AS!j;#9!o% znAK-=Ut@%Tr@cotg`8quh^nUwY3Vf%X-x0?ADZlPZb^lcVAIrwoqYbf$n;7UzdJ#9 z-0af&^k!YqD2F96JbUs$u?A=-tiE8YDJ&aQZ=#3^jIH${>E@ecEFh*%T-8Ss-XK2m<>JLoTJOc6E3 zlQ;zV585f8XNbugJf_auRnM?JYzVH@iocn@B!B(!&vjH%KoSm(?UVO%GL>m(`>i^Q z1Oa`G(Xwb~@!{O8g=Avm$LTxfzG zp1Th@W~l@DptRr=)oqN^pWHKB>UjsHzFKl>bO`L;56r{gpSn& zC>vjTIWC!MI2nB_5&M}2+1w06Jp}wFb{~a~r^~H7b6#jecX$cT1frcTBcEB?93oti z{Xy8cr#k^(i4wKtlJLNsoY+{ujt!CY2e6gZV(Wb}h^tP|SbrHqRHJeI?f%|;Q}+z?o$cVJTR2rLEzhZG$r~= zw4u+Y4)>{a4p{FT(!Imk8n~{(e(60?qhx?Z9BYOY`WT#FZ-#tbV7-62zmmd0K3YDZ zbJ@;`YgRwg=CKTiH_5xX4NRWtFf3KEICIYzw$-x-Mj^O1)`UA6X2 zmOY|DI3dX%j8lXoT6JBToL7~6DTIO){0p_^P3r*=s*J!+ge78e!avMMAx9o@QneDt z1Sk^U#5k4N&O_>9O^ZC%8WuyO$_cH-UpZ8dB@_b>aA-1LA*FqL-1i=gi5RTAaHZ6) z{T2}D#h0;#4;?r~(4zMjsSR%iwfVJ5HFQS=D-2-}M3b3Po}BrbE>IYwi!;+hw{bUG z!cYU;$B<737Csu%O{PdEiBJkV>on#GzHm&C?lx%8=#jGwiZh4?s?847cE<=BYDQru zbSqccQ-GfPrHh1D?OHg$l-3uvE#tBn8t8bg?Wv}1j zF-$ds=vwgGCzy16h6FUEJs{lBWHS260zocMgnzy{>GOkL59Q8Y+wUatxj=tRY@)^&I>o2e&r0?`LPRxM8Y-wj}$n z@EwkhR0mKQqe#MZeBY)>_zPWaZF+vgJvGl21mirMNLPKKGi>GjAqSp$Yp`pHMQH*) z(+n?4%hg$Gs1oe1GuV)Uy{CG7ExT55yYZRJR&9<`IT6U#ZwPwi zBA44QF!{KwAFkre8;oMukOWoa5Y z2ePNuX!L9{H2U}S2PHic zIX*qFipMt6-c^~334hewN;1=hN%4t_Kb~q*+as@C6h`%xnJ0N}PYue_A~mJWz@RT$ zR#eiqEJ3e;@{7}rwayuL`}AMWhR0Ss+K8IVubd4v+T|=~qy_fm8d%~PBMAD^8@R@0Nt8mlMAgg%qf`m*~hoYL1<^F0pipZAq z-hM@FX1IL11-pcxRp?x8y~(S??~R{j_vQyEpNucnvlUGE*b)!ccTezQR04xqf*$&k zMp9+>;<*0;ImOX74=j%kB=f%k<&ifU;%kxAl6UNLu1t6M}jsNa_#ob?1-fV^9= z|G6#8{CKGN?e)z&J#^n)eAIIxVn!S`zCHQN0JD;}_ep0rG&2~ZfkE?p*4+4yMh@ynUswg!^A(B2npZ zC`G4Ph&dBIY2+MObb1D9EC16Ta=0JOFlTbQPkUq}+wcYcsvaeOlrBsA=J)cA)H4AI zgupbS_MXcP?1KJ2FqCXlaK2@aZq7-E z)^z57e+@T`W&=W+w}93hTn~MvQm-sZ$SI+O)(0LMJ0)vjVu&FP#!BYm*_eM+>m;2{ z&sTloxScpN4lD;WYl7A#zVd;LhC&M|wz`w(rlf1cb*y%KGWi-fhbHrkYrR>b|`M>;=;ow1LR+z4fAxrU)Af{zVZVc!%pBY~HzK^1XyWH!2N z4i@I;%7D!R*yH*_(-A=xyw%3;1zOk?--x9wjFe`z`C3|Xj&X|+qib44V60xW7Bh51 zc1&eJL2p!W;0;m>rGHQtGrQ~n&Blxm46WN{OZdc>-b?*_DnjP`$-co*)KM1!Leuf= zyJ%6NaHs^YIu`8V3RUDHVKHz1sE|OawdL}+x7wcNAnQe@(5xPOscDr^8v(Tu_;$(3S8ACS{ zEL;t_Fm~DrE6OV5;OfyWiUKB_2ZyJ4!F~ArNk{Dn`m( zJ43AcnT~W7mdQJt5yw*fO8d%!PdBJVde+!e$@s>ISVT;QU7P-60jC+-(zatEbj4$HvnIB`6+Xl#ZECXC8q0 z^|&KQDNe#8RHB!dYfEz@`R!D#g`;x2TYP5^12)KrY=ijdW>_; zj;pRNdqalDE2e_w)BU=uGdpAG-o(uKd$T%qz`A(BgP`enPt+a?3$`pg2 z=K?V~G@4ksEfL|12t72qxnRjU>I30ErlWZ^s8n53b~Vqi`l!|uzgw7O(0 z@$)tl7Wsaa%!cROdjOLeCn^?f+l;SEGWznNG;BmP!ddH_{4OPEAzE4=OsVu9i`aB$ zJAkmJT2_;SsXbh=S67=+>XC1*^5LCB`kd8)X-asvBb>R+9;f|2MC^Ut%pm7=uss?RKyWGlZm+1(Sp!|R1j+NVI^5Xm#WE(k+>#@9!T@08_AOerPRv*3>C z6rz1XOts3_Mk%?KS#Dzej@=#YrVpzI{5D<1RhqD?*h`@!eg%tNkn=oKZJwgC#)XjU zlluD4K*_M%(-`|2W*Zj8)_s(R%Zq;52>>lXH6kqBrVTTB?5TKb#n!pSDQ7E3Milif zhDftfHl&h%u=5I;8}SeYd$5DFb7W8ek9xRdNyMP)mrmo0JZ6VX{rSFq;0M(O z*Zws)A&!{^DYdQ`nVv*;6&H~sXA3-d>3YYEkc@<&kp%_S>y-*t*UcO7X2~VcKrmu& zO48~TNC7)jGVKEtnJl#L1@bi620hn3guR|)v07!D7XOm+pmbPAa5Ikc96k+_v0^w} zwF3{$y5U6*eI8*U*^wn_u6|{x@6cj0KIh0V)pLrFAenDJ1cDQx0OTpQ8=3U5xXm9T zIutv%Z_5-`s!N5QT1qpH!3O`}k8sf4u2Px4fQr}YZ2}!m0aUUrPvB7EY4FC^Z+5tC z#FF2TfEoXgUxzO5f$HZ?VEJOAS{hub)>79))cd)NrBBNiPY9?k_|T+}W^E-D*VClL zk0Q{}0#y1waly7()PaqR4fb~2lwmsN9MmN=Rsjm^R`>-4XgjBk2`=Dg73HK&Zvtt` zTCsDj#B4zi$S>R@PEbO*0`l0xlc(I<4>MN&d@J-@JCFOc8xAhWt&l(o zJn6^oJXGZM`@HAp-hOSOGjBKMb2WI%SoekQyP;PlIfI&o zBiy5~V&zAG#S?s-N20ngBS_yM>AZz^g%-qr|5j_FlhklSm&9%nRJa}eycx-bG|dQ< zT#0XK7frRdE6w6(q|);ErRnM6^=@44dtCOnqIUV>25ir5|HX;}h$9SJlCxthswO^A zcwB0TjN62L5II`=GXdr*AFHPOJ$j0;d-S~TW1_QV0{QYYGR=(``+Kru*WDA9=w=3J zl0D}jqLhBu2JJx1BPp!)qk@_?Qn-?>3jj#{ozc?d<4h(3NG4fQ7<|VZa|+TOFOv!Z z%jNGw(N45m_rO`lnX$GbK{2$CnyrZgW$#{`Ks(chHFUB3YS$%E{TU+M4I3lFf0bP_ zk4lN|Y%$iFTKDEYQMbe+&&gyp8XJb0A&5x#fEk7vy)0j^f&VU1a(x}lbD}dc*~oL7 zB`n851|{-Kdm_1&Qu0{YMb&*CwIg~pos@a&5Rh~+Ck}!}bib8&kDBCayjX*dJQ&@5 z6Sr18are<)TSZ$rs)JFRo~T8}441qcP)pQIv|FypffDT6_=JOfvBt<))6z*aA*Q!yc{^vR$cWagY4Gj4sL=hW4?hhE6z)mS1?FFyR> z`Qj!TB=?xit+}q+Ohqxz77g?)NW6yZdp7C03kD@ZiQRW!AG{lF8)X z67yU=QmNjVqJ3eL{2geNPh+OuSE7Xr?WY~=Ggghpg%+z>8@7GpsyC z+`StaLGr`ev`Dmy1%CD}Z8~7@7hC z4F%F`FPNoqIE`21thRGjT)LP;m|8uW7eVi(y=E`ii!r5>2%}3n-%ELr5ne_e6~!&3^jxvNp(j)~XiBx(2oc=xQH2BSlAk1b z*9;xPTAR0wJ6Mqht*ptu5DO_iD}(9>$=uG;w+NN^fU9#4q=X*2X8>*;J=_`ex>U*g zXkZv31A#qANAyEYTG~nJzZdzqioIJnfgDZObkvogHG|Yu$Z!~BnTT3zrNy#O&1p+D z!>xk?-2Sg5J@I$Hs+7bB>33m^0-YLad!}&lA;%~y8pBrhLCSd$G+qg(hvh<06@mTg zIQJjy~Cy5f^O)Q>@j)^s9=vQJw=2N$+20Y}PcC;P>un z7Rhh)@26M|CBlrZRJmM(Kh;ebbaTtkptFM}91+papNsFO_x=*5qNFys`;mHeJ#shf zO&uVyWhUmg>dVUu^`ZyNRn5z+zBg;IBTYB=os`rMUBA(r(N8ix9ECer53a35e!CVheuwx-F`7#ent{0e?u2fJkTw>gj zZV$774xo5bP74#Qw5-LTp83)%8yi{$mpqDY7)}KPX!)rZEf)q8!B@Lc)hEl~aca4u zeh`qZt|_N#&^E}h;6*519>f-6mSLWs6N?Mg<|}qk)R!toyb-m-i1R*1XxsBw3x){% z2UGj_0SA!t(sLTcZH~bq@p9;u%9vK{dUdBgbayMjjXRN>IoiuJi&VI8ctq@SS-uY`G$a?T?1MF@`e zjh?o%!>Urc4i}1FR_7Ih$F>L^UpOGgFKsFQe2mKP!QUvgS?!4ZsHg9m%)*n-Lw(<9 ztoeA;o;tuh^xd0FrV))uq-=WHfBrc{xc73OS+cu9R+7z>mg#eN=%S%ZJ^VJ#jK2mf zgazK0GN&F;iTHzS>qhSiO{;MWgtpIq)qS{5yzWyr+;*6l*hxF% zfs&k5{-RhDtAK8|DJyEWiKw5(zUWnXge`qW6>%9#?!fb zF|$z%iPxe-zC{jCndBQ?;Bxl1C^nt?+TMth6JmoJ#z{!tTZ9%jiyCaYI^?q)622RJe-AS45uH>&JB;=5Cs68+JhKe?0yct1ebA&Qkc z5?7p$K*4XFS|;9l2={enrbngB0`Jz+l;G#rDIsI)v=xBYKp{NJ%$!Saobh>H$1vzA9fDHEO6nh+78|8wn zw~3vUqoWV*!f4F!c{AHM=vvilTTn(dR!5>y|PNQs9O-1nu1woWnWr76QOIFkX~-rcy%MjSjEC zIJ>{i!2xX_xBC`r-B6~=+EEMB+Rrt=<(xRS@k91#Mo*k!S6cpqTuR>CT*0wX=Hhmy z(y&JHbt7;%Od5otdGEn^!x=An;?A-9GCGBT# zDugsHME%SJKMcri{@u}Kkx#Q&{|DUJjvQTBvCu;}du{5+0_3tUfmJrI#>7zPBxt=B zGAsn$lLjv|@uOi!s(T!lv*9sN9ohWkg9sJuJu1Yl`ENif#E`w1Sz@+G7D>(t9dQzl zrg1==mP}ARh1dIO=z=vW;>isk@5_Quz*r`tvO#P`_t%rrjE>^_7MyHy%kOgi>owcU z_ktjKZ4+Dd_>AW9{Mdcn$(CGYhXHiwPlzkKdEA&~#i2-HXQ07$K@J|QF~z|;WHi%Y zDgo1AR?nQMi#$c3UJ~Q$Y&CMMUW(4ESgnw3q$V$E>V{QCF}R$W@d!|I4fP5osq^@) zZkkRDxLn3dcy#S!u67_94Rw=2_jMw@>H@^F zCAUlp+%}Y}SUWZ?%RUGHErA|w0j&_5dGN4kqd0_C#a8TB9VTx8-VG}K(nl>f2gVRH zlszArA-4@LQMj%fmOysbz&;e2I#%@5s`Y{kkWQT?wQ{z zK1dI~A`kNK^Tzi$T_fVVjK-sd>oAWM7QWySs}xhRyAtAi9XG9(N_>9R=Hlv#;y@cz z(GHLaQ2D$xG#}WCOqC?o#nk%V=46(CbrZ_(Xy8dDZr`}6qrwqc$4^<4;=*eNg(uTj2Hobj(QqS|S2uyuD>OEk2;!Mz;M*}x0|y+wj*ayn>pBJ>~uPwnd^ z{HFqkc7*)05V8JBDK|alFisjbj5XIR>XsJ9l~#GqNJ0eseS0CIYM+LKsJluh;y$zt zC{S6WA4b zUC*(u$q6=+>e-KX65WHV<{s3=Yu%BX)0hXt@oV-nmACZ?RdR#iSb$=3rFycxkAi?7YW>PSh7$X8%?d zfRLtgDIORu%5AdRE5pr{r5nz116 zg$x|!S^l6ot-EraR!@_nOZ4*#7m>W(Y`v|@fIkukJ3+&Vk?V^+_XwZV71=O=<0T() zPOBbbJMD(-`Z72EnwOgl!xxGbDr9vBYI=pG$mUkN8b4t z#^xwMmN>eG6a;bkWs+VN9Hf(_uAd?Qp@Pbd9e9R2i33T8_h;gWV;t@x2`N&CL*+|C zY9iT>F6W~aO3paO_3j9oOkOx8;G`LR4&+F=JZW-i5cI8*hkas6&)v%E$*Cz$DrCeNxhEG?@t`Fyi3$@9ZH>ES=sicNR3i>@^zY7A2(=9=%6;xBZwwV=e z_2!5+lzQndJF0nG^f*i8Esz9Vn>sC#K7FIF>e;rTOwRC2&Xc4-jz+yBv#YLr$YILK09DPC* z^;fVFuJ&z=#W!QY=MnvHU%U?z`9Cc8+z73rV6uWQi{ zsXdVS|6D}FTtm}&S}ZBQo|eKZW+E$k3cibu^g@MWrKcztRah6v zHxqd5!{KkaB{Hl#hta$xO$FQg9Jx>m`*3~cP)$nq$g;Xu_=n21*G$H6kT2+z=9pj}BXCfX>w)?PUUOnE zXR!<>k90HmC^&Y6sfXT51SC&%-_ulTem^!)fc@A`yvjsMfMnDN_Ca~SEaGSvZ93yB zFIyi*bjqhy7@NeQ_v_}F|IQUlIniH;6}go+JWXq5Bs@`TeHY{sZq1*>CzlV|$;?VR z26ZWv#Fp$lQRyx1r*3r|K3x1+UGFHloyhT+E+nt+p*ewTwh!;FA4G|IMWPoRuiwqp zfp^;F#`-DfAi{C`xg+-VVfZ?Ku@>Av8HL|_m4A~8^%;dV8dXM@%~4i>kr7#` z0T|g<IW$T={@`$nY;7WS^^+X=i-=MA2NjZI853#PH#8r@$Y-4%E>{~7*3Ro-M3fhO_xwu?x-c60GWcvLAdIsoZo zZhd?`$qhH2eR-r=ovG`LqK;Oe#Q-D^mMp5=De0uipw&TRBM-#J?gBGujB%=DKT=G& zPA;qXK_wzEqJo5MFI!WNiy9kfgxRQ$mKds%qU21-#Go9-y>M1-V9xpWsG|-iHGQI!;%lM-j@E?NuIFM| z$D!Oslc_@D`H%2Rpn_4!1kzpH;^Pi|cF7QS3^TNvIco|s{`TtosIUd_?ggi9J05^yD{CGCx+^ zlMI9MY0_3T)Ip$50nuTg`Lsmez@;&=-dBz+zI>kRclyBu#LYQFoN1_6mTHEz$<`{7 z>$}B=fzdY)StL<2GwKwA413J*E-w+squ?AZs?n#e`(-@ncDs+}I&{MEvg)$^ExY92 zj3@#`&4X&_i8mS9v0W*5nbQ)ggcnf?Aj5nUWUJN4N8l6$c6W^MwMnl*U3i<%c1d#tr77<}wh1RAm06h%-eavZ&Ah9(*Zt) z;-DlBIm)DW$-xh@{DL{D)7#4%a5GvT+!`g3UWx)pBjz__XYPbM87w6QYujNtlr;5J z5Nyjhx5s+Lw+SsrFmRqojmnSR#t_W!(r9dmjrP!UoJoOz@tR%{T&iZoV%SM@31n5V}VhLyoAr7fU=mZr~| zCe|Ere@9c+jbP|q`u#xU^N7uyL(m21Q_|_RSt-LKD0=@Qa8{fT zV=FS~wBSo=wZi&zh|fxJ`I7}M-{rdPd!Z>={V28#tb#AKiE43mi7Ex;Z9C06oAY6L zk<6zy!?`@_hVxB@6k1+>atzDFmUBPMh27_~PNjpw%wUG-At`}{H?&xf0G(&Qp<%hI zX(~m`cYruf+m}p^ym@&JhP@6DNd!><%j(N_@NdH1vm&Ovz3(iA+~}I=7b5z3^V8VW z-$~;hrVYJa^vp>ANNa9QOf3cykFryv!N*}Wuu&$b5>K(Xh2ZXQmApgxc(#LMn+gc5(R6@m!i(i1BCkvPVi}~sQ89hDOKb?%7 z@&6=Ib~LcJH!=QK3C+OT$pnf{URgw)R@BAX+R(t(_CEnAn_D>H|J(joAk_G(CXP=3 zrp9NYWngAt;b3HCp<$$D{oeup)Bn45X$x1Af5tBc4mx2ILkk023VbVj17~w569atL z|LV?4`)>e>{}5aM3n<9=e|X1~|3!^YCueA> z@3FD|FW%t)j2j%*u(I3aMEt(d6VR{cZ*U`uw5x}Rlu0VN9VNYPc?EmVTZ^n-Noh#g zTCLq>D!Ll8%_xxw5K)RO2sMK<8{3aZr8Wtr=%;SX@Hl}*qWEDXMgHMN%7C;>x0jY2 z6&@*ik%l5|bjByabqDsBPH&Q?XmT&9GNd$t`u49f3B8??WTrg9#>|(nDiKdj1qOAu zAXe&I4F)^p*t(U9ABI z@${lk4U>~13L48#qG@p!SSpuJ>f~RGpii?90H^?q3U-a@82aWl4RZt=ZOr&bh)han zez(91iVFiB6$gFFq)8;e_3#>?g#pz)F^?WoLLQxv+MH2cR2>W*9q$1*4Vty!apN{in5qKHZ#M4h&d&&+9|mA%W5PnI7QrK@u8vJHpz+K;n? zs|*Ea0{$0n?O6Z*-LV@%oQqq}x2*_Atc`6UJHU|mZ|>2J+1Ym`v;H1?Ba6feyb%mb(vq;fBBg@vO~_ZrXp?XI&c^gE{KN%UCO0k zh6|>MDFzagEC{FQ=rfOxo2qX^ieKE)N0M8x+|B;dHFjnu>BjA{0iYU_ z9`Z=Ms9oh)ducuu)?xBlFyh*MU-DJ_c)EZ&Y7vv$Q8>!EuPIx})MmoQoyTTRMHH3` z4F`K#$tui66=g3Qi5s7kBL-(IgN4VGdu5$uf*2*W z;S)5>cS)+o0;M;W4-q0R&IFlk+_m)+@gsQHjlX2>i?^j=A)Q#H)XkNFe-JxO{G%lG zg2h9+SS3U<6eA=2QlA&epYe}+*xNNFh3?%pW)mY`N%P5=q<_GviMPhOPGvgz#!uM~ zHURx{UUzqr3tboVZ^JpB1})X&&dv-wwlaw!yYmb2n*r`YqWUrF+OV%1@Tzoka?zYP zsaTL%X=W9wtcB>prKpIZGy;bgJQ^vB2b>24&?G2GqvfvPrJ{oBMDqrR8uCyOHKZM= zR1wojspFOjI$pwSg8A3SAvP=bgEQvtGfMO`jCC-2-5{Q1HiW}Ao?+}15heRzvN&JF z7oF7(+MvOhRV7d27bJwV@Kf7@V++%R~ud0(bXjcrd#0^t4E+L@FY0X~-++gaO@dK?o9Mm6rt6Yd8cIeBAvA}Xjo$qKE*NV>Er1HxiQT)@0OfCCibFg~=%Y8S3a;)Y+Uv90q@N zZgE9TfkOH9uO&Gz%AXlYYG$k&cn!IzA?>1$SLbTzPe@`Lp`v9(X?EIGc5ANkhd(ei z&#*2DRn{*^QdSZwli{Lfjg7l%dU)B1U{`qhFQVxUw?RZC*K5SAllws!p{oth>q(%& zE<9_BjLL!FX~xkxVU?JDWt6A|Wk!T!eyqfzV87+q46g*{VNQ=lv}TR!q7h!ED}xHn z!u+m!*?CcstxDh93_9>+-Rd;1#X($d^+km&9(0+CK0z)C+H&={X(#TByhv!CV97+g zcq|?*IJPQB76XeR9&8vs;iY-^ZaaB3FVQ(E$nEZVe*AAAfq&xh9>fSX-6wJ%(Y{Fh zhV>r(9*Kxy?B29~VtY?HX0?1r!o1bx5+v}O(~rG}pmF2hIr!-AU(5GS!+*V}$h;q( z4HcEUj_}^Zc#oNM?<=aHbRRK~L3{J85-l8dMmD(j=0a3?4$zc}2!3^zY!EU}yY^)m zs0trS-az(Bz6LTacBI`WHz6GbcYJH!1N{zi-_d@O{SJ2{J-TsXywnFsN9cgRWW1lx zX5GZ(-~wxLyU@;;cN_z|L{gh^l{lnsuWIT(tG`SddU^|LKXN>`-_LNqkg^+ZQVK8= z0s@W3$d2K)5vpZXZT&1osA^gcL{$mmr%z-M9Mf)3zBA^}S6Hntx}*7DkbwRXgn(Wz zCwkqELOt8db5bPax;vC}eQI-Vps_mWwfQlS`KZLE8HYE;dvs|wD6V##JJeIR<10*j zARDjLTIk!Kwp9qXZ^Ja*M#-NsbIGk$2OMSE7VkWDy$hmlCK(o4-bfOTrHmUIB}Ay_ zMP7uSZYHHB_-YHtx1fY;1B`k85Y(QPsp2eFa)QMS`0hHG@Oz=0i#tyfXTO*y!Z}zV zw#Rliw5kubRK&HK?z8CKmXT~t-g)(nuL$sLao9e3bjEzs7{6+vr5TU2es>`1e)bZV z#gMj7vlcJ0em^wql(e3!rO}HysAnZ#ho1Btos$m!g!J5Djk#v}&T7~>Z9Z+zgtqWX z>NywF(vo1^wp~xJy>uAG2+eHVu3q`Zu4%=AJKWdQT%=w)9e1+pUZ%w2pwXQj?As_& ziwGS)epRKhvRn6RPh}(_C$DO;^W`ouoGyzf3?H(6W3Mv2<7xR)_y70InvMRyrH1N? zCZX%>@Af41zIKWbV&!{c{YYsPxFxG=XA z^?a$ArVDm{-CW;4=imGgE-Q9Zoe+RPQ@sd;fpeVzh=OyyD2xMfyfBo7al8ne2eN!{ z6yii#UTGrzud2czkkeDW@~2S?U?{plbOfi}qTKTjlUpc?Ec;;~mF>q{WRLbcut_+) f^nZWqPR<67&hGy{J)oEv**KV>NJvEFM4|pa>r^yy literal 0 HcmV?d00001 diff --git a/resume/web-developer.tex b/resume/web-developer.tex new file mode 100644 index 0000000..50148f6 --- /dev/null +++ b/resume/web-developer.tex @@ -0,0 +1,65 @@ +\documentclass[12pt]{extarticle} + +\usepackage{enumitem} +\usepackage[cm]{fullpage} +\usepackage[utf8]{inputenc} +\usepackage{hyperref} + +\DeclareUnicodeCharacter{2194}{\leftrightarrow} + +\renewcommand{\familydefault}{\sfdefault} +\pagenumbering{gobble} +\setcounter{secnumdepth}{0} +\setlength{\parindent}{0pt} + +\author{James T. Martin} + +\begin{document} +\section{\href{https://jamestmartin.me}{James T. Martin}, Web Developer} +\begin{description}[noitemsep,labelwidth=2cm] +\item[Email] \href{mailto:James\%20Martin}{james@jtmar.me} +\item[Phone] \href{tel:+1-206-331-1994}{(206) 331-1994} +\item[Location] Renton, WA +\item[GitHub] \href{https://github.com/jamestmartin}{jamestmartin} +\item[LinkedIn] \href{https://www.linkedin.com/in/jamestmartinme/}{jamestmartinme} +\end{description} + +\subsection{Experience} +% Including the dates in the subsubsection title like this isn't necessarily semantic. +% I ought to come up with a better way. +\subsubsection{\href{https://proglangdesign.net}{Programming Language Design Community} \hfill June 2018 onward} +\begin{itemize} +\item Led redesign of \href{https://proglangdesign.net}{the website}. +\item Automated the generation of \href{https://proglangdesign.net/#projects}{the community projects list} using Jekyll. +\item \href{https://github.com/proglangdesign/matrix.proglangdesign.net}{Bridged} the \href{https://discord.gg/4Kjt3ZE}{Discord} and \href{https://irc.lc/freenode/proglangdesign}{Freenode} sub-communities via Matrix. +\item Co-founded the Discord sub-community; moderated it and \href{https://reddit.com/r/ProgrammingLanguages}{/r/ProgrammingLanguages} +\end{itemize} + +\subsubsection{Hazen Robotics Club} +\begin{itemize} +\item Mentored programming at the summer robotics camp for 90 hours. +\item Taught club members to use Java and Git. +\item Collaborated to build robot controller programs for FIRST competitions. +\end{itemize} + +\subsection{Skills} +\begin{itemize} +\item Languages: HTML5/XHTML, TypeScript, JavaScript, Java 8, Haskell, Agda +\item Tools: Git, GitHub, continuous integration, bug tracking, unit testing, formal verification +\item Administration: Debian GNU/Linux. Nginx +\item APIs: REST, JSON, JSON Schema, JSON-LD, HATEOAS +\item Security: + \begin{itemize} + \item TLS: Let's Encrypt, SSL Labs, DNS CAA, HSTS deployment + \item Web: XSS prevention, CSRF prevention, CSP, input validation, SQL injection prevention + \end{itemize} +\end{itemize} + +\subsection{Education} +\subsubsection{\href{https://www.rentonschools.us/hazen}{Hazen High School} \hfill 2015 to 2019} +\begin{itemize} +\item Member of marching, symphonic, and jazz bands; recieved Sousa award in 2019. +\item Got high (4+) scores on 7 AP exams, including Computer Science (5) and Calculus AB (4). +\item Learned shop skills and recieved OSHA 10 certification. +\end{itemize} +\end{document}