agentzh's_Nginx_Tutorials_(ver_^sè^sèBOOKMOBI{>@$+3b;HB J QrX`fmti{5= "=$f&(*g,.\0ђ2ظ4ߺ68:<>,@ cBDQF ~H'J/[L6N<PC RITPVX]X_Zg\n^u`}bdfhj l"nprVt-vQx}zO5MOBI7<* :P:<;7EXTHB en2agentzh's Nginx Tutorials (ver 2020.03.19)dagentzheagentzhq,3f1b0395-e89d-422d-9087-5a674d4e8e55p4calibre:3f1b0395-e89d-422d-9087-5a674d4e8e55 EBOKj(2020-03-19T19:10:29.978712+00:00   t  agentzh's Nginx Tutorials (ver 2020.03.19)agentzh'sginxutorials (version 2020.03.19)ForewordWritinglanorhe''3''''!9126>Va01@ׂ4ׂׂׂ׈Y449ׂ2ׂ"5ׂׂׂׂ39142ׂ3ׂ"6ׂׂׂׂ51864ׂ4ׂזׂׂׂ׎X383ׂ5ׂ"8ׂׂׂׂ74017ׂ6ׂ"9ׂׂׂׂ88253ׂ7ׂ"10߂߂߂ߓ9988߂"1'߂߂߂108579DirectivexecutYOrder_[___Y20750___Z_XG___Y31238___Z'_Xσ___Y4166__[_XW___Y53395___Z7_X߃___Y1}__]_Xg___Y7550Ń__]G_X___Y8451___[ǃ_Xw___Y9380g__[_Ơ___0386__\10_!Cese.ŊylloughPcЀtopic1beAaaxrasu8lBsomt}futuIayruc&)ir锰urZmxa "Pl"ook.ȓT?"ivzj.or(am,ir\"?:"HachcanthQaspp!chapt7xxpublishQ'''''en)f[uP2nc9vels,cludySwith@@sAppL1tpd7QІnr9d=e@GGGF4#džHȗ0patiPKC0.8.54AX:moduerɢ?:pr@on-Xdy.i8BnycIe@ KmentbuggAddo2,maJXA3rd-pH}pft'conven youqdownloadzin(Ȃinʆp)nom ndnstallhe ngx_openresty/ׂׂׂAofmoduleseferencednartic,cludingcoNginxڇYnew (buttable),OR܈_r0ipGwi(bxryodhQiosema8copexamexpl8ndalidat0ptsbehaviorsP9described.yjithelpJreaderadevelogoodabxnocors'iewpo@sratemeq8faceuexthoht`mirst.happroachhavomethdoyAackgro.nAt,@keeweakrecFs o#ulfunnmwhi`wriA Tsf!poewo㉨gori وxmaȉeurpoИtcshlothialit[ꗁaQ+iHeayܑS 8.Є yJdQfHecaeqliDorreduH ƟYicpermissrom.opyrʛA׃׃">Incourag="se@feeda (Qntzh@gl.comҮes (lystruȨism777s0f01Ǜ˔GitHub_wwgub/,/n-tutals'gggbτ''k9؊enXdi1oryxa ttHAupangu9#ixtuWiki1PODϊ˧yℵ.H.ou welcP`Xk/v(atc N-boo ʃYsuitajcellphKindlePad/iP,onyҕ,aicc8@downlo0șɒg77gg@nty.org/#eBsGGDS#!ngoAKaiu (kai10k)horansl0yongh'tFuzxityObp30, 2011mbp:pbHkfontize="7xb>W9PTubaI8=00069588ar8ri;jal)1enub9ojdivP>NginxndostgreSQL 3.14oaHevenھehjrrihashthohv.Ɓ howr,*kno@typB,H(Y@ٶٜ:b3rd-yyodula="I://wiki.n.org/HAHM">ngx_2_ (tendsTOxB,um!ZoRao Yainar`B4be!e@eE'??ǘ?dž)yxxIpol711114ττLetPsa8urqǸVɴSoXwZ:ooo1set $a "J R";jW8sBa5$akviaꔷRewr#"zdiأRromtard~#rs.ricu,/gg>>isenamakl(RJ)x:.h)squ*:hYwaizJJjm adCpixlookPefamiliZPHPogramm؊WWWQSuch7ifimdisforoJava#gr@notohapobvRadvantagehough,hats,ariablesanembeddedirectlyntotringiteral:

set $a hello;HereeseeluefjexistNginx $aoon@uctort>$b.ӈfwoivompletecutioniszb,nd,XU.htechniq؀hcall@"ƎHerpolaA"xZPerlorld,hichakad-hoccatenp torsoongnecessary.et'snsamHerm~KromXwn.ϏGG@seeoPr7exaQ''rver {    len 8080ρG߁oh /tes0GomE{foo x":}性??1ngx_Hpt ]B;a㍺respPeoAp@argumn????777dosupport,⇀YHtgrahX`?.ecaɁ,nwGGGҖكHpiaT;WگP;.lways(ok2ioc*burwwwfosize="4xb>Escap "$"b8!>filepos=00000144688aG'' We'YlreadyearnharXPspecial(Nn9pixsHsidwXp a@0_______ `foPwna%B)kjw? :jw/_/+$OGA'OOxy?errmessag(hadw0WW[@rg] inid E I ...//+ObviousNriarhr"{Ha?.ɕ결aoq'2Js؈PD?"answ"no" (sXa оA;st*re<1.2.7)Iabeeno couldrXomeҫX…̚btaǥ_Luckily,RaroundsPiH!ڇonoX@byaximāiHfirassigzO8Yaxllara::P(r`mb%?߳ς??:?),ҁnfnc0YrenevIpeȇwp.ȊsuchdemtЂف0deage$C/> defaulP/G@2__le@8080_G߁ݪtest {
Let'sesttut:$ curl 'http://localhost:8080/'恇''Hereeakesefhe (irectiv^standardr߂߂߂߁j">ngx_tonitialize;czariab0withringR"$"2,reaftergdcan∲dlacehatequ@䁊@.orkscaooooe@notupport "in@polation"tll.oweverjoriyese΂aodiff0ntluaccordiremoteli1address,ntiexample,!juPaboooooo0uncondPo./)foxs="4xb>DisambiguVNam@>8filepos=00000175568aOT1apecPfor__ZّpiwheenfPddbyharac`(liletA,gitundxes).ncha؏Ao؅Ӌ~ӃυfromsubsHli(,incser listen a_G߁ݰH! *GooEfir"hex@ׁׁX${}ldρϹ׊׍b˓Јen d7mw>ꁺxfwrinaxBwwee (alsonowny"script") ulryygg&headɁToxsolXIityrcurіmIarop>(excluCpPix)Xsґ,tLetP);0:/,$ q 'dlhost:'܉ mbp:pageb k߬V5RfDecȤ#ChjO9055ττϩlangC/C++,dJ(c1ed)ȧxX*comp0orper8ypxheck-time.imi ly,iYGeodgeo">(gbmQbodoa4sideffX Հa}yXxassigluo@ʋ¾؄`mRwa(0in,0LjLjLjE̷A">1߈,y"getrror.Ƈex,?1rver> iIW_?h /badwOL$foo''~fooariablendccesstslueirectlyn 1.΁Iillustefuseoadinghisonfiguration:

[emerg] unknown "foo" Yes,eannotventartXeerver!770&crekssignmentappatmpletedifferphasesloReime-line.ւonoccursh+Qۋ?x.no(rPnd,'requesXar ctualbeQd.Ԏalsoeans xrehwt ",j".[mbp:pagebk WWmfo(size="5xb>Scopeb1>Pfilepos=00000211998a770OncQjityvisitoP׍,acrowvir$blockregardXsfpladecl(t.ȂexaOO  {'&    liste8080;Gg߁oc o?ggE = [$P]"ρׁ}焯baggset Q 32g_777ׁ׆7〧ߎ䐂)wdyJ߱߱߱Rewrite"t,ive0@P0M A,JϚWWWVefoȥpqp^ouorries.elowaresulЛH;etwoterfvia3 ltoolggG>$  'Ilhost:q'gf]O???0A?>32OOOOOOϊoooWsepe42mHacsǕ_Zsi cespond WWWWWWWʅus넢M.׾7ŅZו,alwayseȰ0mpty(luerbeca wAQw)C!uninitial(d.7ύύAnomporta`characicobrom{Hžghsc؞9hCach%oxhaёownersally8'qtain0.Ғdoo9 SiyMǁ†ame(.ԈaeryulikelגqC/C++unhbodEAinvɃwZWV3(btack)yFinp ,󆸇P(z/{ˀ32|whi؆ҍaff@oقouH@po?B(ti !),qO9di tOnmmma(9new@ogardߍa8gpa0r.i>QslocaHrwn ђwes aref="http://wiki.n).org/HE@Module#">^䣓(prov3rd-party*">ngx_iA)9initiatn "ir"1߇ٍ.Ԅped mak8jumpromn__wh`rocessaoT"i"ppenqytewitselfdiff("exdžs"asKTTP301؀2sbeca]latcXabo8ly,clis.lso,qc8!??8,!ulYubJ#gRqURL鋪ebrowXaddH a} Ki"fA!hymil>[mmBourPS;  "wa`rip`ne)ret4E\gotttemYCXnguageϡWWQBeWUaf &`maioriPK.ɇju؋zu8ϙΛQɎd,Х)still89cop#t.ackAP=whoook0ik3:fiؾig$aӃb8valu3ҁLiaRewrite8"tGBR,Xns؏ 焷???ueavWW̐e'uf0outputsK BgMuntouchѓcpexpPdsܐ1b[t)xultmIyGGG"$ l 9lt:8080BwYacMس<¤d0pwge0mp@wwqincresAgIinitialized pdulifetimopa0vg9acro8-gubkHxb0h p-C隂iyworthh`www''rs">Lob4">ngx_>ŽPote__Y.ƿJpF5abowiewriteModule#rer">Lirectivesollows:

server {It'unhonallyquivalento ^.ellscussheRK___]inoreepthqlaterhap@s,ik1iting "exȇeBuilt-XVdsPb؁>filepos=0000029749gf8a񈠊/wea8seenoarx (implicitly)xtys"t.usu2csuch "u-defXdai",ry#".he( alanor0W'thatpreuei򒙁csms.e*th}O"b݅oǍǒG4$uri & $4_?<30333_^??OnmmonȜ燅(retrie(ouypinformH(cuȅ8Presp0e.ƀpinstanc$ǠݔC|.24"Pvidc_[7en/docs/ɀx_I__.html">߀؃ȥ:p1(deco)RIWV,xyanyueryrgumhHAex9߈24߈w;~yBsa#,hiaw,onh݈0,Hyulookfollowq̚ߖggگn /t {>xomiverfigurbkH`revity.ua٦Aopbovtilist|q8080clort.Ɂ hpbPm/iṇhdBe0ulRarkXerfaceXdiffs:WǎǕT$ l '*t:Ƀ'ϑΓׁGGG?a=3jb=4'G_____/he %20world'ςρߟ`ҁo77OOOIVI(niteέ@Xfilepos=00000324278aT:aܤymmIthdoxavex &n٤ad,ɁApi>iarg_ "variableroup".orxample,ՇisvaluatedoefURIrgumentHcurrrequest.lsoہnYbtainhernotecodyet,otiyonying%ysncesecheckutȈtem:

location /th {Z
Then`(ȋ0interface@thousiff@ohbinZs׃ww$ Pl 'ĊYlhost:8080z'~ǀƉψ?I=Tom&x;=3o|P3πττττhello%20world=9?ol9o7ǎǎInac'fdoon8match6,٠2N3v.hatc`Ph惸Q7ww7=Marry׋ǀϋwww=Jimmwuwwτw>BehiscenNAonvertsWgapu@lower-me8eîag0bcpecifiby.Ofoua` 3alik20kinҖKncouldpSetMiscset_unescape_uri">Qrectiv rovi h3rd-partЂ">ngx_mNJNJǜolgezsskǁwrWWO'Let'shecku0ectςϤ___WWWT O77O/TaceadeYehd!/A@ytwexnbser fromsxXJ''''''ciicitcreatexr-definvariablzJOOONRewrit}y.ellscusC7??;8mdetailyfutQchaps ypefOOOosseًumbpȀiȸ,yoo9rrespoAonyknJFurሁuchw ndl(aeryc(yKIt usJFȱ|@ntrp0"magi uilt-piwnGGGρfPlPj/.qddiq񎗎rg_PARAMETER">$arg_XXX,ikehe ߀؇

R0-onlyuilt-in֊\sxb>filepos=00000375138a A0user-defin}srPritq.ctualpwaAatclY(cteuGsoar(oa(nfigudirective'''"Re=seP(Äperms+signyt.timButi>ecesstca)bMϋ//)Moh[eff#8ʄi_߈߈ߝuri0Randt_[w?mjuprcpearlier.:NO alsvoided.ψrwiHxlnexppsn,Kxampl???tt>? loc /bad {Thpro mcgguserr8mghenΐstar:[emerg] H dupliXX"  i...___oottemp8I1om 1Ǜ7GGGGAarg_PARAMET: rv@crashpxicup$(ss`mbp:p0bk8n7j(03)9142GFgg'W$G AoDŽ928ǂDŽDŽDŽDŽS7Y(ll.ƘinX,bOGђKs۩ge0URLueryrcurr9D,@hObϲmodify ng.ehanϊͩ/t> oP_р`9wk"a=3&;b=4"G"inal :op__\"firPsav0ourwG ,In G@by龜ri6҄,dІ@Poutp?DžƁ''''''resp5ithςςȄ">1dir.et'sЛвth珏$ `h'4ilhost:8080'7L4/π?a=01Bc=27g7vǁā߅߅߁/>

Inheirstest,eidotrovidenyRLuerytring,nceemptyutputor$orig_args$aǃrongerwnscontainus@julikoooooi_PARAMETER_XXX.א0(ad߂߂߂߂߇Gy,΁illxecutpeci`piecode,etchdatarom`particularlaxw1ch0sǐ]O܀(rand`񙈔wripOOHqјOinsamxJԈ`ialsobߊ&ne‰oysede`ourodificatioRimmediateaffectpl['uncalil(n.et'seahSis:lo / {
HQpssavÔbuilt-`aDro[PumҔA.7n8g3Gܕᲂ5bssignDž@l烾r8ٻ Ԇ׆ԁ&tiv.ecagpole:ԫ'ʫwho/OOυυυ϶)Dz,ac!Tulter8o??o$ 'lhost:8080?a=3'gfǞI3Ǟ7>W(atha{initɌ6@kinϏϞ҂  Tσϗtutombecomaf!jyWWWWWth'">Belowiedem8trӣ{܄8ʔdyHTTProxyY___[Pc">ngx_ AgggEgwlisteɳG߁ݻoogdfoo=1& ;bar=2D"_p 127.0.0.11/WW瀧1?GߊGo_3echo`ЊڊOLJG??;Twoirtu8rexedȀh`!configuk (omittYbrevity)g//*RrH_YYstbort .ɞٖ*Eupd ǂbyrx$9,henetspnTTPeverseroxyia9 ngx_zm`etingRservictt>/Pnlocalort 8081.yefaultutomatiXlyorwardscurrentRLuerytroremotWQ.

T"ׁ"sIvidedysecondrtu`erin+oulves,here`utpuˆφφʒg׊׊׀Echo\eX">1in҆ticoki9intigaIacOLDgggffromrfirstߎߎߎLet'sces tinterfaexposy$ hl 'đhost:0?blah=7'*
W#sea[׍Ԗx{rewrittx)77v houghori0re8takesvalu itʑǍ ̛Or7v0a@ricli/zoummarizssignmɆ'''alsfunfnbehavioroWWSmbp:pagebreakfos="5xb>Vab("GetȌ8l(""Sh>hfilep=00000469698aokxlhdyearpreusAxPnadbuilt-vwww,΁iecupeciiecodobtaaon--fj E?=norookȱchang(InKminology;]LЕ@Ԅl"ghi9񆧂 s".iffsspppadFIiw9hichPzmagicss'_Sutechniٲeotncommp[m!world.ƅpexȏс(obj-Xpgramg (OOP)clXeydo+ZmembɌm\Ѝu8er,@nstviwod‘fromO3.Ӊ鄃of a2o.elow C++lpu:0#include <>Z!{3 e5*3,MrDȞP ș uMjdždžTenefitssuchesignrebvious.helassesigneranxecute`bitraryoden"accessors",omplementnyusin(ogicrsefuliHeffects,ik0utomaticallypd`ng`remb8variableIpend {currS,b%ospofieldQaatabashciatedithobjX.Ƃlatt2se,tsossiat*onotis8llRjuHservarc`mitigpsuback-(.

C/oncep fs"OOP,ginx׆soupporti[c@om "getandleH "ss".ddon1,rP/,owلtaoovalueSomeouXbehavx a0al/yanf8sancy?7.nPct,heI@bereR"xfigtimeq QmodummardecisP@B@xocpwXht/@/a">ThoЌO߄ݤш"؎ijB'serminoy.φ)wi1Py:saidbetgggaWldynow"groupx$XXXissXearlispoZb掀thu؇WtorkXi'%sHRLuestr--f)bPTisp0pdu.ʹ)besHsurstkeayqed;PbKwixparPYnXdv@`p:nXempt~be Xu".hѶtruPhowever.nii`[A,⭀ra*w0wyticulayyyZÁgssɯЙ͸+ך_WWWWWWWTimi𗡱ʄpuilt-xn////.cookie_COOKIE(O\"CVN(04)0ba>filepos=0000051864GF8a _gg'="5"VCcC&gx_map200So Wcho(u9roaatacP:ߐؙhfigurQI!setIzrunСo.e.,ifi𜽧aHeweg/HttpMapModule#map">(irectiveromhetandard큂 ngx_forfirstime,hicheservesomentr@on.ԁwo$9Q.hʑ Vot2,jy =(x)`ur#k)Ɗff#ly0epetN"xpχ̂XBIatp,zvalueoi+s70GGGGGG@rerGGGGGGGEȕ/ϋ(*way).

Nowet0look᣸hctr+kGGGߘߘߟ!߅oooi  z8 {
YlwiKcur8brac(apecialciKt7@olifJonp`K.llailĂ"Љ2"OsSϛϓassig90`e:1$f/?hmatchXr)2Combin䱱ؠ(obtafollowIcoite:OOOOAw󱷉pget[';wiЁ?ossly$9ohealue debugActuson9prettyimple:firstimIriab OI8d,tslcomputedy'''#Map">ngx_'s "getndler"Icachioontainer.eliyearnX8lier`xNbsyhoop菩ɀc܀mselv`aataor.buslyۈ$9sider#Matibetwe`sxsivenoughnd3resultutom ci,nexqsaeuth8 lifer\cur9@quest,canuhPurۏounvokI!ag.///(Toerif!furXr,rPpec=URLuetrwKorialwwwq l 'dlohost:8080/ht?j'r
ItڤHsn1I_ުhom,ly .xsubs2adXalwaysie@V,߃regar@sjSwwwwwwwoo#">directania),fitotȁ0 is8ߙ٥r(al(owdef S>dÄ(onfigurfi!Ofursd)limies{aH.eanwh mad)Ê_ZusR?:wiH;.ưnstanc`Phao'''rg_PARAMETER_XXX&doOh???9Slwww{kd@%Geox_ge:HenhnenCMGzh">֊簪fxpze="4xb>Aӿ`ote"UC(pD/b>hpos=00000601048a3previousNjsH2P//hts뢷bpk(isR 5ơ5um҅aǂǂ.ӷ0JmaypabXset, 9ȃY⿚TfɜIftry>qtemIG@T howe:Ɂfoyerr઒r"R:X[prg] "A  is h Zed n ...RSoexpliciQprohib0э''''''Ϲ.ŋy0sq-œ B?Whdoubpalwaysfkrxponddocuق,8cۃ(Аacu?mbp:pageb k1em"idth="0pt">LazyvaluationfariableHlues (iirective thinzglobalcope (i.e.,;tt>notAhappeningre.ealryrnedowgggggggaorks.Ʉ "getndler" (registxd␑">ngx_m)perhmǍdeln`A?=Ҋxut*unljcxespondrbei.Ԍ!e,tho(reqt0nxc9*ranb X(Є)WPinvolve">echni04ostH?ٝopoiwoyedxcP"lQeV" ilProgrammlanguag ffer႗8Pym`ughsamouxamp)HaskeHp,Lldefaulemanticnntra _],h muchoHern"a9uckCWhPHROf,\j+@'newӝat1$b{1o$r_Zngy*жh.imilaSetMisc_u8cape_urig“.mbp:pb(kxߍߐEfze="7xb>Vs (05)8ba>Pfile =0000063834GF8a?ggg"5"7Suxtׄ97g'="4"Aetouo64118_^haHnrli lifetime!ainerbou䧛Iweoumalini "]"C.فhmQpum9pextjupsTTP}IdromPdf@atwoindǬnr}m浀ɁoO "sw(___">M"Z@ernby;A)Xfanvol?onincluddg "@ʁx"iaGGGGEcho,eX_exec">^0WWW'&rs">L4xs_apeci)!ooic.±l؊)PPfux_sꖗ㄰@LjLjProxy">ngx_pms!mayookeryuchxkn_Happancpi !maY,X@H`h:؇ne0҇Ltocolhry>sockeimmunicsnbstractnvocationorecomposingheaskfbmainequestomaller "pernals"ataneerveddepe(ntlyyultipleiffer lLet8 cutxxam!us:wwwpon /  {B
H!G8:,H0Ba>t">ngx_zmAvtwoGETr-typށI#andTresply.ԅxOsyGGGGW߉WWH0waysunsyO1eihiHpfigurlileBP:(߈k]willtfdlʀ/ǰleproces9onbody4qȊse)nen"toY߇މچofi(v)$ l 'ilhost:8080'ŀڌ4ooo>`oҴDmuni(viRsmdhsamk (i.e.1virtu@)wܼz tu)XfewunX0؅scen@do9any nerrNIXackn.Ɓ0sonȉ/extrempffici fo(size="4xb>Indepe(Variab8C0erӃ׃bȂ1>8)pos=00000681188aׅ770Baourarli@discuوe@f菘[v ,wAcaXte>hbouqjuriey>doha0iownp*.tiʄ>""yepIYVGsȍswn)bea7G%g@Ьqin`feach.et's !mexperX ڨis珯 : {    set $ i;_GGyo "Y:"}_щO'׉O7WW%0ww'ׁWW0w77ќplqeᣰgnf1valh5pre׷,=s%puthe valuef $varafteHi>むingZtwoubrequests,ofchangesWWsffeciri shouldeeewMӂރy.ԃpresulti!Ossollows:

 curl 'http://)lhost:8080'
Aply,Bassignmsoriableodoote"5;aPllhsuccessfuverifith(bothomand郠ownicop9P^cont@erPfhize="4xb>ShdւuCvmo8ReP >st.ehPxampleGE j {    set ٛK;__\Gs/hwwuecho ","}߀'׆'WW%0woojH(gg Rfiri“l٢\ni?via:ɀdctivromKg,fi.otinthëXwri҂߂ߊ5.׊iaߍ0gex儝>ObviousՇchangϑϊdo׵ow/ Thude0hetwe(W_creForpre⭽omeadmk: "whyn'responbodfgppear?"nswiisubecauW discard#t0nageoncheckstatcod2?9̀Go8goodԅ200tOOPill@hNginxinHpro;rwitKimmedi0aborΓreturXg 403kerrp,P.nS/-;$Eicitטטwiki.n.org/HEMz#">1*׫">EvoughRa@mo׋'َx>9uldXbiL ataeasier,also윸QunexpФ)ubtiss蘀Qdebug9l-worXfigurs.›\ ofٱwitha0n)actudi" pembeddSdIth1elp/ʅ9ifidu.uch(sipe0qy 3rd-part2s4aref="http://wiki.nginx.org/HEchoModule">ngx_e,
NIքds (06) filepos=0000074017GF8a Xggg&5"Built-innӈWττ15ςττττThere som(ubtletirvolvedusb͎ʏ)cextfᎧt.ellcussjdetailisection.="4__SensitivJyÅ$96wbearliexa,`er"returURLuerytZ4ur`D)scalso߀,{''''''"shouldaoOO&Let'qch@:טggtt>locaA /m0 {H Ҁfacxfirutɤ???;Ex@in8atȈZR.ɪ Zga edHgum9DžDžDžDžDžDžDždirqvspecif)gbeʂ d (˅h[Iow).inQBdef-p`WW___WWW\re.шIaߖ߄fs77$ l '䌩lhh:8080?c=3'_^'0 G8wWǞDžPcl[Bsbf(ŋF)Ε'"_[;q@`l?_fooW,ҋbehaviindematchoutuxon.Ju(lik狗built-hvariabl4uri0mj"soL#(d`ded)R,g__ǸǁKX/77O7'ׅwBoogBelowresultfuerying /main$ curl 'http://localhost:8080z'
Theutputshateouldxpect._''Yfontize="4xb>Built-inariablesor͆Xequestsnlyb >$!suchnceptionߊߊW(9read,get]same ( sjGETdPOS)jStth؀#re'X.et'sut'%YT {_^    echo "KӠ׊[;o_ف}OI'ׅB߅߅߂gg">Ixexample,zG% fac0bothvaluxfooooo?oj.eanwhin(p˓ݥvia+ExX">x:dirHx.owdodVU --data hell0w 7///υ߅߅HeoI1utilitysifyrЄxvbod8alsmakz=hresulurnpredicted:e d]sH,espiits2WWҎ">Soaer)hallengconclusAнyo`ing thatdioP̊ossib́Iwwg cach)firadxĩiwDw)seegactu0[cearli` ernunnesar8however,ecaIha`lnt0Ad)j(ify)lwayu(t8renJ_sM">ngx_mudisbsh wi iraw.ackeviouwep#built-///'e (itphP),qcanaffPy9pan___">TourddPC@t,slutW//WG)jstmA___afterǃǃdž_c~dHctiruw:  {on  À  echo_location /sub;

Let'stg8:Ё$ curl --data hell'http://lhost:8080/'/._YPOST/.77߅߅Nohangenheutputanpbserved,xcepta)ewoelineseversed3rder (sincee3ofhosSngx_variable.hisscommonitfallorreshmenh(deag`thmslimit∊neiour@@built-ׇׇ׍ׇפw'!providHOOOOߐߞ}7Z??@Wo??WW瀧gGO'׫G7OONWerein`yettڣ!wantw//ǎǁ7/GE''ׅ׫w:|pwnGme, ,sp)anI[res֩G//)Slar ///,ggggguriOqalso(wayI((non-deco)RL;mnsthY,ow,cauWess@i*fakpΆяhichoPtȅOawafontize="4xb>V IHShValuacg(hȖpi>filepos=0000084452ON8aoohI;previousias񻩋worriaboutcatVcNsLȍvcĐ!'s "Yh8lЅk.fxiᄌ"noulX1m񑵁:Hereeseurldriend,he (irectiveHoapvaluPfjbuilt-inriabl|Core.24uri">$0H)hr$tag2insteaundall*o(ronditions,z0.ext,dfirst ateubrequeyingauth_|n(outpuxfߐA`with- lyOOOKGXs@atwihge`AaccO?

Ouch!idn'ʞW׆}ŗ?`ybactual-forǑs,ołgoonreWOOIA*`i@orklikeis:ŽwaslrHawwޔ "hpler"girЖoooߪߪcom@9GWt (beca@ɇσVst)^GDgoachʁ2ȣ'Lfromn.†4paren shsam S㎰iϢϠH76zlXr (af9OzCnis){Yreturx!Ӝ`xsultsndeىeryhrpriBxglance.Fexampl@p)clud8g [ ً8daoPdeaenښ&م Ps.mbp:pageakЀ=fize="7xb>N9ք s (07)(ba>filepos=0000088253GF8aggg"5"SpeciVB"Inid""N@Fo"39߄WevHX:skon[0ngtypXsstbGcouldlso+no@anxfulXH. ystitahadgh.Ա! twoossioI: "iߌnfښסas&RfooֆЃYagyet3܅h.vcurzURLudoXYaXXX[arguDbuilt-_PARAMETER8X77771Both7 ,rletediff@سRemptƄ(i""b)юP imilaoѴdincodynamicrogrP0guliyefPernilLua,ulJavaScript0e0earliJYnit8Tj؉ljÔ`Jpoad$,s,oweȕc-I"gendler"`gpҗ*Rewritse({iutomatic(y`Bɇ<oif! X'QCeż꒰cusbef :t">locƀation /foo {
Whenccessing ɉ,heserariable 9 sninitializedydninterpolatstr)for1irective.Ԃ`outputhowsatHevalu:tonmpty:hGGG curl 'lhost:8080'GF]//From3ċφǂbehavesustikeak!XB cauleadersuldHlyoticYP,requeHabove2raarxgN)rrloi`(whichis/.Xbyefault)[] 5765#0: *1 uQ8ed3" , ...皵oarthenerȔ\?answ"get@ndler"f{regisȈXRewrite4">('#Bi,tfirchecksitsontaiH9erin8id"pechnddo2inrunH's,xp@Hu(aw)xreturnИ??Ŗaf !a҄[&.C''$h0fipro!ZHsxactlsamKmxanismepscusli ibuilt-olvy("resbs.es,_p`.Ɂ"alsooaon//willrigg`9co"0unrɓmag ualindi؊`aypo nmispYyn,e造Zex0f)?>hecaexnc7nI&xmiptipelifer%.S////-">ngx_rJm™)v[e#_e_">_YXSHtoТ///f x="4xb>T1S,VsVnuabPA>h!pos=0000092847'&8a_GG@Aeju8mone1njnjnjC.24arg_PARAMETER">$XXXtak|ߖɞυpURLrgu2Ydo0","unPtunly}"aso)uishfromCMnfigur#,pm:'!l$ /t {Hrom0GG>Kour-WW$ l 'lho8080'_^5]??W neصЩ1@rB"scripxe"automvertG`73perxmO ZnowJa?r:9d rm`Espbviously,nˀheollowingxample,URLrgument nameI$ curl 'http://localhost:8080/test?q='
ButeannoteallyifferXiatefromRearliersat ion:'Yށx.ׄLuckily⃰sxchievinuayansf3rd-par8modulXaref=" wiki.nginx.org/H@Mj">ngx_lua.leookْe?oo=  {    contp_byY؁ggdEif .var.x_ ==in77W Qsay(" miss")''ǀ2els???__b",WU"]nd77';}ώώT9<)vecloorpreviounermRfuncality.e{#WQ">-hreX&membedsmieceourwcodKgain@special+Nriabr0(Ϣǂ(eir "found" "inid")wigeoutpكrequ/fooŸבכсٌfir imeewwwwwwu5deservJbrieftrB.ԄQ꺰Ilanguag0 (`JIT'sust-in-Tcompiler)Ccoro!owrs4ru i?prograiQrʷynho܁PertKbփAnphÅ"fulfၟA8Is.uar2fiasistrϠfigur@reXexh .ssina@byteڀ)(pathp?__[.BackqTwrmethlik'_aY.ɤead0Qoiryan~ \APIvdq.ƋЇhGǩχVARIABLEjHlDŽDŽDŽijVՅRba%gͭ",Ȃw*Xatؠril lqworldthoulplsoeoa`ׁʼnsayH p`taxpoodyIYsyhɇuE eX">1rSivsalryehfamiliarthIf1LBVURIguI+ @mptWȀh`nڪy?a=[]缇Ԇ9k?existefcorrespondQURIrgumentC ives,antt>nam`HǁsbsP,Rwholρ8eusteturned;takanmpty,owever,nlyo@redspas.

IjworthP@1aewimitspdard $XXXriable.Ã`r@followqrequetAi/QsourreviousxampȂ[Lua:x$ curl 'localt:8080?!'
NowvJ]Pillaje "not`und"palEwhichppntpcP-intuit.ddPonallyDmulti!ntixzfiedu,wwwwwwwuire,isco*BsilRww=Tom&;jJio=Bob[]To(ljpromq(uncngx.x.get_uri_s">"v@d1Rgggg`_luaRmr`.Rmbp:pagebk耇OOefoxsize="7xb>N)֚s (08)ba>гepos=0000099987GF8agg025>(02)𬬊Pa0)egorybu𛐠swwwcookie_COOKIExli`ςςςϞGGG.ӳlarp@"o!x(€@, َ3GGGGhasn-#_"77i1 J {ON    c_by!ggdEif a.ܟr ==inOO/W isay("s y"gg els???",r"]OMnd77';}WWTquHitQfer --e=ʁopYdesignpokaUXɻ (aCJhper).et'pewsp9ainsgWT K=ntzh_/sD__wwq???O?:'ǃOnjnjAspected`do",ua4:iiohaveuccessfulPdІPuishezpthmp@stranOice-onmbװװװӇ")"ڀ `en@ndecH~h,*G0willabor8itoa(befχχϳwwwǧwwgggWay("$bl΀ah = ", ngx.var.blah)

Userariable $ sevdeclarednheginxonfigurationn.ʂ,utseferenc0astnuade.-anetartstillecausehenLloads`sDŽ,)onlyhmpilhnotxecu,oth nodea .ׄqlzmmanxsruime*Thindewhaؗant.߁Whould8veilso,ooooominclude+O!parameter,,"ςrpolB"o(o`rwiKlain7xu).ԋ<LjLjLjLjLjLjǀŅrealsuppoooj.s saidarlihXfpos=0000025>(01cnecess ntireupcmiemǔǔǔIt'sctu"difficultreturn "inxid"n-Ѱ`kl n7hichᠸ.htiXzyRewritese(/.ow),soH@!s؁h"getndler"'empt#cachnlAQNjFollow0protGEё /foo {    ggdEifh. = nW <("$:is:"π else??WWU[",7p"]߂nd77';}π/barρ'GP s32O~ch "Ɓ]"7Byqu7)75$ur'lhost:8080o]tell$(ferenئOobtpgOOILas㡑xsthhouldkpoQdualtghYronis1T(3rdar ???:ArrayVarC">_a_rikppersor.HXxalj.t7GCspliH","arg_namehto=xwmap[{_it][j resgρ7o>Ӑgggggggiid8msrGء•septicsp closoheuiӀltinunctions split1$ curl 'http://lhost:8080?names=Tom,Jim,Bob'z
Clearlyodule ngx_a_var
aketasitondinputithariablength,chheRLar`tqwhiPcomposHofu(p`maelq.tilleHsmphze,Luax_luaZ0abetachoiceexecutXh(kiЅPliptasks,sualHmorelexiᗁmaint i.OTQn9tuto0lverN.nprocesehvexdiscussing0nyuir3rdty[psP{HlpundHt featurierz bylAomininstruct LrswybɈBdectvWهexa`shouldQWRplaykeyo :9weaun6ly:0needinform(includon)UcornIon@lemenbridgyשׁ"zXTImbsol(neary///)c"8fileP=0000108579>{DireE‰Or9""eac?Ăo9Utrr`t'󂨃 Pψ˃ؤ8wrXcan؏diffntrom߁܆simntPfuJrs.rmbp:pbreakoof ze="7xbd (01) b8>9ǂ8aqh(P >ndطalopOws/)wyouxp.usawhoᬠmpoig,"terror" edQbeior.Ԁy(ixP mys0ѱIgwoAiscenGGDXt`a$:1P?  /t {"Clearwe'output32R,llowÀ56ʕecaw$a+ȏȚprtfa href="http://wiki.n9.org/HEM#)">1 "3ed".ey?dality  $ curl 'Lylhost:8080''&w___pow,ࠁɉ$aHpe(Hpȿ3fiPq,whhI@ug?//(Noynon.שɀhXl_뒫ewredefdyT*daltoge 11walet'/t` X@reyeaccessH(t(illjddilr.هgggULitsregiaiirQonfo]FoYnginx.oրrg/HttpRewriteModule#set">(unsnhase rk1OOconten8`.ince?`ccursefor/*veryequestrocessing,tsMs0executedarliersell.he8P,߇߇߇ߋ///lwayse lwithonlocationdirectivxregardlfheirtatem0rderh9nfigurb.

ctualdisW///It'Xlow,woו???OOOHdoטט׃afterwW?VĆ diffhrannot肷bthG ove is,nableΆ"debugog"fouaworkȠg",xihriefxtr Xq9"Idis!yefaulIcau8per(Yegrad!hendou"mup̛Hmpi"--Q-bp)pagey./sscript.ׅabuildQuninuxacSrom(c׌ן^tar xvf -1.0.10..gz/.cdWQ/'&'e gamakKud@ in0ll777n(gȝopenry">ngx_RH0 xq#׎׎Ծ׆OOO">A rp@Sbinaryݞstille8explicitlyѕߘ9evel (i!low)ċg/C rror_)>^,_薿GG^ (s/.wwi8sdrame!ofOOOOOOOJcrucia Ihfirw񁉍fipath,5ertainp a𫸂xtomembЏcB5chep9wayߊߊNowXart(Ataʓڲ1enoughreloadc ro9k(R'updawC)jnse !requagw$ curl '4)lhost:8080/t'56__Uimehics9omiatXerbo(rth700ineжmyiuphSoappȣgrepԙbhatwouxxiAedχww͂E (output |#0|value))'proxim likeH (lears,ɔiedie҅–LmoX9imptc) [] 5363#0: *1 Z"32" $adebug]ۀ 5363#0: *1 http script value"56"

/p>Itarelyakesnyenses,oit?oetenpret.ommand (umpswinxofPfohichtartth ɃA󎢇,heirst*ell4chasossed,xdJsecoXbeingriablea!lliveno,oorrleadюepog:032oo_WWVThes^enerathby(isitement߂݄ 32;ττςGGCAЌ-follow??'''?'''?????wWWW8y7756wwGGDBesidiwhxverΜYBsespo,r"ۍqexecup,ravo!EchoeX">1noception.hoons'DŽŁ}s HkWWװװ׌׌׌׃Ofurmxt`ve_zsincpcordozactualquRI.yuttIyAogerhannalcludIoďdsooo'''pindeЎ([oyy.׌WWC(鉐aPsu Picthat0 tΕ70Ћ8w)on`i̇ɎH(hQ'GP!Gs.ԻaЈ7addm {">ngx_vbecau n"fla؃e،sop`el`!wws'dgai8ManXwwwrProxyx_phsimilar9oy*giW{elfx`rariab񅑋$valu$өRoteBulCexecutioۀnrderfultiple (ommandsrensuredoeikeheiAingyr .imilarly,Echo">ngx_e#sooooA">vgetxecutiname߇S .

NariabH,ishniqueasenppli@extxively.tpass8siodifficɄZtrc@ppprocessGGGDYoueask : "howouldnh |longo ?"ndPPnsw8RTFD. (SlydvandeopersanJinource8de`tly).anmarkscit`cI'socumenta,uchwɄ:: con(h
sayp_ngt>fencouawhimin,ZQJuthor awaЅfot.owr,qshire0d)noy1@.Ş-Y____GeUgeH(B25 (01)لMapmap">(4.heHhove?<,decppunaȓ[pf_^gSysoev\by,JmaخbeQ1fepimppubthatianguagRYfigu@"/e"B"d l".mbp:p(break`ǛǞf`ize="7xbL;(02)b8>z120750ǂ8aWe'justearGGGBRedseh(WQwip loczʣǁr DInacmo iA_\ggeѓpeciAt.Ã#<"WWߝWWT2khoЅPmpout;whefH~ser(sZy Carliw:addre`d:bH">ʨNj׋׋SetMisc_unescape_uriꀗy,oooooojalsߒWQActu____^">ngx_ cmix{Y/Չ ensured.et'heck:n /test {Byendaxqu`ccl`eWW$ curl '܌1lh8:8080R'_^ !__ App0nt{???*itsbo򃧃߸///rɡ7\SirH.

Tourtheremonstrateurssertion,eheckgainginx "debugog" (caset'snclearorouowo",@referencetepsundn (01)).

grep -E 'httXscript (value|copy|set)' s/error.XThex////$c`$b!߆__]Asou0hveoticed,ix "variable8pola"e"whenUlinaliz>tartith!ˆpytǘƁitYqstrconnbQncn''!WFnform"t'sairasHؚ(rdeᘏ?׵?g>gcׂwׅIaerfectatc8temenxGJukmplbmʛWWWSSetMiscS">ngx_Amy,gggaLua_by_ȝʀdWR3rdyGGGGԅXaixޘ߂߂߂ߣς_r걂ll.tr88A eh=0000025>N֟s (07)suppoѽ uКaJgiv(d؃assign[0resulo˥m7doesgggsǫ+beHi60ist'''!LecheckXexaɯ(irisesom mand ggggeRewriteJ:

location /test {Variable $яbrenitializedthumericalalu 3256respectively,henom/ϒϒϕ/G/,isstoger+gnuadeputXheumf߅ׇ.։c3hd.inal2sot>,W׃&conen dy "Eterpol"assignsJult%whichqpr"όόόπEȌԕ!">1q.ǓǓWhayt aewo1zexample:rstly΄AVARIABLEerencaȆOyU">5.exdqsi'ԎstHgs"ĔGУactuB"32"׀56,owevutom8@A@Bsiaddoper.hir;owWU׃М˃stmsĚܖ,tӆ4ack#. (becaPAonHior)TuteeourJOO}$ curl 'lhost:8080"'32r56r88ױׄ''m2憐at߮߮anix;ؠ᥻m:RewriteÞ_rqu____ManyZ3rd@rt5s pporއDŽDŽDŽLJwellaclu ????tpArrayGx_a_kdiscudYfilepos=0000025>3Es (08); oooohncryppSeHonx_(_s싨súػе(byudi;detaillyWWWQSzbuilt7O7sir$inPpens!'readvantagth:bbe臨ru0iɁtpohav o0citechniquӂ8ow"inj"eiecu*inށ5(RhelpQapsgub./s/adXl_kixrأMar(lyne)؋4r(gula'6/so1isyχWU,\yú1e`fromχϓnuntime.ɯthaacк+ord@ nXtwe8differyU(1c0)ak0husۇPZяload,t0cepdoexdpAjHB{o釐Hߍߍގte؂[h×wfg`?d+r hetherompleteayround.nlesstsxplicitlyocumented,eannoteonuncertainrdering`uInfigurations.

NginxirectiveecuaS (03) ngx_set_mIes,႕mixsmandsthRewritex_ryPnxqcorygc.venf,4AregisterP.`haseAwell.׆demtXysom)as.Ѝ3rdartyHeapsMorh_m:providQew hichؐzu retqresp(e.n82mQle#1input">rq.ԍډifnυˎ80(oddficf'szavailab`2).xescribѥMj,?alPBePHthough, ean{$oSSi诩ǂǂŠi8iczQ!afeТˀtatverynn؍? lo /t {@     $valudog;GGrs "X-Ses{"___׃х?oi_Ȁ/}OO??vbrieflytrcS !25XXXؒ*ڇ9f@ף޳muPbPu\.<^>atchtonormaׄ),.e.alowcapitlerturminu -ËxonH_郗namapgWRS success(Ȇݡpdecl(d dϖdcauػ[󲸥r h8XHvY kenyonclud//#ځ whsed.acturesulf@nt_]$url 'llhost:8080'/.g??Clearly, Ɉd偨i@ǁ ǀ[alCOKward ">Th:a8lls1hޓ.̟ip`fromoepyalg2ro)pK. (uniGpDSetMisc{" csw(AfitunwithRe,r).n30sbry74furJdiviIsub-yεSimih___畧Ǖ2ref="http://wiki.nginx.org/HLuaModule#rewrite_by_lua">rovidedy 3rdarty ngxexecutenhendf ? location /test {
BysinguaodepecificommaNariabqP$Ѕiscrement+1.m avxresult+56,freookatzQysequence.Tactual]Z7[becauX]always]dfterl"ooojR">(stats.$ curl '|lhost:8080'>AdmitlifferHior ga,hichdiscussfilepos=0000025>(02)771Outshe؍iosityphYaskmmedi`t`)oulЗQ rdؕȄbetweetpHeasMoremX_input_h ">ǀrsjoggoceyyothXOtail?ԝ9nsw`H:ndefinedmustvoiXnfigurreliesirϊ˛_z'$aarhcesҁ.s sgis{ouIZPsk%(fexamp@VURL^amexs),FalsoeclinPalizewrIneedubíIndl.ernlon2notorbpЄoypliPmselvPhecodridatabtc.,vlikז777777>yXbXstuffanHotHmiHtwdߓߓ߫rߓtH멉aȔSl8aca.R8vȻ:3rd1t@ wtmdounin.ru/hg/ngx__auth__/">s____[V(05,؈/(C//G>m`arryﭸACLunc tإusuarduslaXPMori`sourIPXlidps">FWWQAJlhow">:////,deny">1 uilt߂ׁׂׂׂ|Ԃء0AtroladdrXhav+privgȠjyrejec:Qlox /he {
LRSs|fromXlh (Gˆ)ZӮsWQ(return88rr403!r@efinPr9ܫ"cO0ImatdQstopdz+wwwwlow"뀀>allowr 1commandsregnored.fosatched,Plingntinuesnheostatements:a>;YXabort؀rrtt>403Weanivt,ye󆝊wq:ׂׂׂЄ$ curl ',8080/he'
y$ancmachine (supposeΕXnsnYa192.168.1.10)eve/''//*OOW <html>eadatitleip Forbid/rbody bgcolor="white"cerh1''ʀZ)~_/Byjway,"">ngx_aBRrtj "CIDR8ion"des𣸝Hsub-netk.Ơ(<69.20p79.4/24repإ khi8haroughix0{( `sk:255.! )C)7WWQecau>of>ecubԅpp1Z bedrewr(e.oreniscusspgardlꂘIord钐sυ˃׍0earliXŷ"3''''>.eepp؅mhh(ibɖkcg򗸈Լsist.jmbp:pagebreakPggfpize="7xb>direct9(04b8>file=0000141660ǂ8asLuax_luai m 5_byѐK.ԍݑsuadeb=edeP/gfmeait/"pfh'''ߖߖۈO////vJbeloxpjameIanypsڬinتequ'HcePddءith!wmor2plicderifatе byueryjatabbackqservi,currІr'(titrivgQtd.כWcheck Ms________2XhfunonalI'''lo+ /he {
    echo "hell@world";Nginx'suiltinariable $wrseferencednuaoethelientHIPၨess.heKstatem ifڂusp8determinef$quals127.0.0.1.returnsitl,·98usonuessubs(Ihandling (includYQ 3phasehpmmEЊ)">1Zappho).ɅʈPnoKlocalhost,uryabortby ">ngx_luam؊functionx.exiUC!聘rror*403L'''">8xamp؎ivalёЉo(rpAccx_ansfality,ichasiscusYxfilepos=0000025>(03):wwwp)Q /{/,aw gedeny//ǦOOOOOHowev0w0hoiout,erforcHiptwoiPhave fȎ''''''"Īet08caspecifixly٧(a$7CGWaneasuh)ׇq$.f0Oywhatapa2~.ϖ,XabsolutenearyqbPpp8withlni襐MonactataQxguish0amurHprofHInЂ`WWWw?GGGG@yood8`XpoinimizeXulddirectelapRimf&radilth hackourcod񀊈Q,r`p؂4bins!@monitor5itooliksGNU???luck(]-relSolariMacSX1FreeBSDh@systemPdtracer5hicr0Y(rqțoe (Q0wp `sromG.ede(s@tCsceio҈Booki/8avabh 10.5FirsXopeT lppl0RD,`gɍppaqcresamӅ- -.dtefont#!/usr/(/envȉ -id$1::Q_ler:ry = 0Oc(D_ׄ bexYmp'''''' (urn߁/T>H/GG73+_mp'%?瀧瀟f!x_rx߁ׇ܅/ @' avg()ǁOǀĜ>Sav˞BymaxexecutYW77E$ chmox .////q.d󀀄ilectuallyontainsHderittenn DNoweS'crip`unn.Ԁtakcomm1linearamep}id (pid)燃hincesupporhmultip(9ɊƆ hrom(`yome'yk ofige!an.oxatnp$edс_ 1;"
Af[binaryrSwobŃp}$ p ax|grep ʀdӀl-v QgggookTypih:10975   ??1Sk30:34.28:sooo׃׃׃ґmyziIn`yous,must󎼁7 er0`arurr71@G߇rhpXroot,---.d&execuwithjosudo ./GFP>W5b"utputssfythgoPOK_ǂDžͺSS 'd' matche`4*be'ǃǍsayuwu2fudeploy04`j4˂TadyIҪYtly771LetopyhpTermhl,se(V0lmonitor'''݂Qhttp://lophost:8080/hello'gfʢlS_____σ___ggbBackUMe珗unnx,hYkeHICtrl-CinPrut.בׂBbailHhAoRtst .ƧHexamɫ}foXwAkoχϏ/'ׇ ~^À!192197''__fʜʂ^arlapshinr{pPn؜Hds (1\ = 1000x*)G@)??8D!^step0canWculat熽"cfZreeiff(etupspectiveiyXIPlmodu,ׂcommI߂߂߂Lua#_by_lua"|K*GWeast eli9Bidhctu!byVr""sypicrrors".es,+Iff(loadtooPhKab.Yslfilli(8Xze "rom݈pseGGab -k c1(n00127.0.0.1ere󀀄forehetatisticalesultf DInMacSX,yp#unfollowings:ngx_access    EWW 18146J
>WeinuslastaluerommerwoWooWW'WW22599124??ll,oduHuter9@ommandLua#">xbyHmagnitudesvexpected.tillabsoluteifferenceitiny.o(IntelÞ2D1.86Hz3CPU(onlfewcroecondsߋߞ f//////,exampcan╸urypizedsbuin0riaI7772<.24binary_remote_addr">$.hxf IPpJ0w@longXstBatXhor^̗parquicknuaectsmoرHonB`uif "debugg"endintrcphe=0000025>(01)qdlaps@qXinc8raaly,Hcau/"pugeverhead.mbp:pagebPkfont="7xb>Nٝriڊrdp(05)Pb8>153395ǂ8a7ltentc(QmeanCmosif؃p0 nΆI's8que(hllunniʀypibilityoen"᫨P0TTPe.ƒt0impap,rich8tAτiT[lp Echo eX">1,o_ZGGGGpProxyLpa_pass">g____loc*}?#FM,awadiscusOOJ+Vs2ʄʁ35˔7l(I#sPqrewrite"H{:alway@3meh聨hogewith''''%= /t {Thؘerf0ampl 8cG ,psQs09@ultatchour0镚o7DžǗ5$Hurl 'lh:8080'ψΊu6牯In懸,:commands'ritingrderaneompletelyhuffledndton'taveympactoheirxecutionequence.omm(,hichslementbyj">ngx_ren `haso{LuaLL_by_lua"̀rom_=5nPofooooAccessdeny">1____a'>݅___?C/ׂׂׂ׆WWQFinally,uravo777Echo eX">1k77ׂۂcon

MolYxy7??;,arctuٔXserb"\8ler"Rurjlocon{dirQve,caXnXi//r߂.o3bearebF![drolns`x8owic%:?  /t {
G'ǵ-?oOOOoowGGGwǞ{''xButO;mTsu fuQbegύϔe$url@Llh:8080'א֒jǑσσOu)i8Hthnys''''lthough\afward0?`nrej`cceQrun.קrassuredich%Psbircumst.Ƨ補,uRYoutpÌ0ʭifwapj'''''ςWϋς tsZah(voiopƷW􇘌e)byffTߘ//)T$ifireplacAref="http://wiki.nginx.org/HttpLuaModule#content_by_lua">ithommand 1R welletha(eeed:

location /test {Again8roves$ curl 'lhost:8080'BǀƆʀdž''Weanseultiple>Es,heresoblem[thbeca0yᑀbelongoʄ????;">ngx_5.͂''''''Sregulap!xecurderiXofm.Š)8ulough,tveryusupportk-IedtimqonHn.Ý'''|forHnstance, be!d`ly(soXwamɎincorrect}? |@H.say(""")'G j gGWWTNumpsrr9cnfigurOO[emerg] "Oz diive isxuplix...T:afoitϏ''w  ߀IeaxfQtwicjOΟHG,*pachhlun8pzJI ۶Q``dwhibyn////">SimilarlyptpProxy,xy_pass">gromzcancoexis`qׂׂ״_fW/-_YbosphaseanyΤnewbixmake77'.bePe" $127.0.0.1:8080/foo'''after??PtxbiedWtr9outputngs"G"CɉnÖJ"''''returnss9.owevonl0\could}.ԊdZHGGGGGGE sgggf'ǂOOOLFn:ruגגן$`urldylhost'ߕޘg??oond <aref="http://wiki.nginx.org/HEchoModule#eX_after_body">:

location /test {T`ellseaket$ curl 'T1lhostS9'DŽƎV懷gf̀߇߇߆''heeasonmmands (01)whenexamine "debugg"eneratedy-_____o,x'veearxzaits evKsata.oatDŽDŽDŽDŽ">ngx_tȋdvantageqioiftpPكx_b(Haddingurrounb).eh(oi8`ough,Бop0se 11s킀@py͖ktriggp?̍ Stiit'serfectlP@hdocu___?ςςςςϞsollowxz: C IeanӝexecuOJ`mbp:pbk fize="7xb>dirirdP(06)`b8>166 ǂ8agWt5ҕa׉׬׬׍Џxrspecific2:tsu(;lregersPϮ̓y߂.owi happef價͕@OOrgd?hoPbakyglor(f.9lrespon?ԪnswXtc)ourcĕichap;requeURIAyymق??*playh|,wisHeuty1.Typiy$reO(un0rV%adisablXexplici(rkftߞ0nӉʅÉbu0)jeirg,ڬ7772IndexWx_im7772AuthWRaw .e xcum꽨8υ϶7T؀0‘oIMewith/FIdonot,⁸Fignيzlet3 .͊hanactpistgy.ɱzLjw3stooi.nginx.org/HttpIndexModule">ngx_iainlyooksorpecificomeageile,uchs .htmllocation / {
Whenddres/sequed,ginx/and (Jorder)athԀsmedyommaref="h://wiki.n!Core#">1.fBexistsjumpsternal0to k;ftoesotsσgGBeiHr,h(lingtransferr qoQhiexecutVariabl(02)9,7wwwrEchoteX_q">^Rς__^RewritsKRcarigg("uxdirects"!wellSa1pRI{πco`spondonă:i聑subs(proc,3N`,ac)okrrapFׄԇ"9(9from "exWTdefinsHTTPЈQcode 302301liybrowsPwon'tpd(0sesءso@f2occur੡> ww#"sSnec`sikwoulbeȓ'ltveryXnj___Zcheckllow$witnlψψ"`need񇀆ǿǿǼǿǿǁ__ǿoooo/W_seH$a 32ρ?= "@=y"gg/ߊߊߑyYcreiempty_upath~TQmasu՘i(dγwork$nseMXZ:$ `x'qlhost:8080/'32ߊ׊׃ǃNJhhappe?hy{utpunof(whichhallx)FirstlySoaoood.!@pri!PlookhX_?matx?q{(Bi(t`ϑ?8becas "longYubs8ng"X8ticB߆݁2ͷp0ix.3WYHP,srew@e>acCrerxdevuy a = ,OOOifremoFNDŽ{ {__gah?0sw@err403orbiddeK1y?henodule ngx_iannot怐heHspecifiedyommaGGGGC#">W([] 28789#0: *1 directory : of "/var/www/"s forbidden
Tm!Ƀކ`oenerate "es".suallyX impli8geebage,*qFsuaJusikatQneed.owet'sifxaIlittHbit׎גlocation / {'&    root(%;__\|oomnOO}ϕφWhe# dPaga{*7keptiss`.icȁ]d$ curl ' ylt:8080/'<>eadatiiJ+//րrbodHbgcolor="te"1/ rUpr6a ../@a__\cgi-binӀmq08-Mar-2010 19:363-=""Ӏ[ǖUdocs d5-Ap03:55i8[/ߎ;/aϞϙי״showr؀!ew975my'heyڀ鑝,c>䠛utpuYYbeff(ntfouavedyrself.߇߇AfmtdoexP,willggnal{",____oolotahantoecute,zma@Ⱥm(oe"go8keeper"dnhasontst0c@alsos*sively4serv0!snclud@cPscofhweb@,asEׂ>.cssj߃Pimetclthough>́couldvanApecifihom,actutask (tak:phbarkCcorۊ5as)qcarPEmbp:Qbreakfze="7xb>N0(ionr(07)Xb8>pos=0000175503ǂ8aLet'Xheckexamp0(ediwithollow@figursnippet:'loc / {ױֶ%root(/_}ϳτOOKMean8twocY[GOn\@nam`­NitAxli(textthhisyome
.notherilesamed Nowerequespto?'rrespondingRI:i$ curl 'http://localhost:8080/indexZ'j
Ascane,Jc@t\txutputWexamwhathappeneHtion /cdoHЁhvnyXmmяexecutpnhase\RrefonooduhXgistd "Uhler"!onT:thusallthretc(source̋ hich"alast"rȚ0''mtw5s ngx_1,??Toerify??=lبQouldB;ebugogtr`cPؑpos=0000025>(01)uC7*errorxll-w in٥oo[] 3033#0: *1h  fd8ooo778Q@generJ.ɨ(aف"w[".f!r0nrl@geimpҬonxaypmytuporedbuilnGzipS7x_g@2sameGow yfaul`byough cusslr׏??9CdeclsYI,' '?؈!fact0lwayȈalryىmhavSaȝD1hirupxLMarligpP؉c''6whenfm"g1up8pro"iHchecHblank:lo +ini?? / {ǡ}ggBecau3 J1,4xڙڋ+49Dqshqp/subdHctop "figupixFexampsupفgg/foo/b ooiggaSoɝqid?ctu @3튒inl)(valufB--ۊopscript./F3Ãr)fXLusr/ l/Re/ B'$.er<--prefixaneivenh(Nginxstarted,ohangehe "configureJ" (soateeasilyestultipleetups).upposeOLsollowing:

Forxerver,tsbecs у anddocumoothtml.ԋ"otn@determinp72ctualGAIwayanyelationalathsolu8abki}.ׂxillncoun8examsicfer.In`ၸaiRofllur0tom3Іrequa@n-exisfile,8as'%$ l 'http://localhost:8080/blah-).txt'<y>eadatitlei404 Not Fd/rbody bgcolor="te"cXerh1//ҀZ1_/!ρggNat(8ɇerrPprrned.ga@jhecklog`haveǁs[] 9364#0: *1 open() "ϔ" fad (2No s8pr directory)wwwwwsQpri0dxodux_tic,`ɦfiax 0cospond A auHɄt CТ-ttemp؁it'subviouh??ш___">Mnewbim)ak fPgraRىdCAneed9Ɂcdo2 m0 ss,7lqvi5PmatpTmea @antri"iurcespecificA(mȌ1s(g"comha iydon'AcdefaultB nPplay,It77 /autH{    acc_by_luaX__\E-- lof LcodimiXXPe...ww4'׀}LJǍppayon1񍢂 Proxyxy_pass">gretc.ɟP,΂logr.pۢZ!erSuRm0agrc8onHbelow?PXabo/p>[error] 9364#0: *1 open() "/home/agentzh/test/html/auth" failed (2No such(r directory)serfind-ۀ?@倷try-πal؀lo#PjLjm`yؔ,regis#`rqf V Ásh.imilsKܞ\0lierυupportsooks1_ZBuilt-耓h="http://wiki.n.org/HRealIpM">ngx_lipq8example,i!*_]Z(efu)Oso1,aluef@spficllowAcllu Dّ\ǂǂǂǂ#set_ip_from";ǂǂǂǂł{"erggg {߿    ln 8080;GF߁܇ok 127.0.0.1WwqX-My-IPWoc /tOooH$8rem_q灷3echo "i:,"ǁǁ}性>watellͤHOLeZA>ض_ʎ<|MeanPuabuabCH.24'dڅyoutput7Gs,oatXnow͉@suFɂaseȿ6Jlh:ׂׂמd$ curl -H 'L(1.2.3.4'sa_偿ggg tiliz-Hopvid,{incorzTTP: yA.sc0,גגגגגגgגַPp{xׁsSohenoCז&?it0`ek'%(farhi/_9,CTNjNjǷ*W:s/ooo///-,{alyyӸ}7WIfow!,heequestentromocalhoto /t$ curl :8080
Ifrahmachine,ton'tpverwrittenyei,vifhaXerfect''.Ʉbecausurreviousamarkshplicitly0thommand (03)9).ƒ(HHdultiimxsowe2up',0lowlODŽàX0.32.05;on0/24__\YaskX,'sbenef(0">ngxipbo?h0ouldq t?nsws:X@sXhroughxɆreTTPQxiၹĤseryndy.تorwardHy)O7Bb(rȸans!nفi@unn㫑ng@jyactu .ow8ha:lWrrcaific(suchHGD)(j,IlIء(2)tak[P3 X򌿆ΐ$)betweQtrpPnt.Ư⏸pure,_______>eedsooklexxfirpXxit-dˈɕ8so0blwww">Behi}8MۀwWPriefm P`ϯϯ2ʣNJNJNJNJڊϊɄtЏ),h؛0figurFditivyasical@execuRW󰇋 {WV    lin 8080G߁oc /tGooE $b "$a, world"ρρ3echoсgg%}g$a helloρW'At@$@Y#stateQpu/,(OϞ'ijiOb i`'"c%wr4dfte*c(obtai؈hvalueߊ$ l+lh:J}ǃǃSinc8s0ߋ0t#"wNalway℧σσσϳdz,hichewriteshehquest'sriginalddress,xample:

server {SendMo хeav?GG>$ curl -H '&1.2.3.4'lhost:IW߃d焧Again,omma0s n ntff alIp">ngxip,tsctuHexecuYonlyfterwards.ohP߃׃׃׆߆߆assignsariable*B+7-phase,roooiCorU.24r">eho.mbp:pageb kpאוufsize="7xb>Nirective࠸ (09)b8>(filepos=0000193805ǂ8aRs *find-config.h( donollow·Zm@ogrirndler(inada|҂+c@atchreVpIteaaƃxeredny??untilQz.ppaly,orsik3t`ad//txeff VoRichepecifiXbW[ou,Pcau؃twoearlizaC?expla`WWWW,لǒ8nf鏈ثwithŨimilюmexamp)uʍWWWWW߭߭߰󎏄ݘ(mas ֈcouldunly.ooso laooh㯝Pprinebugogerr).et'0heck1ing:777y_n /he {Ifen"N",0cHb@apt jɋ b.0 fac3DedWW$ grep 'us ' s/wu[2] 84579#0: *1 Gʌ";"GggcFurHe venienc8`timtps0omq??g'0oubudd1SiDalywX7pcϛϛ,rtfrom(-,[Лe8sllustб/ߨߨߨ߰/////O6ѯ߇5swiSetMiscx_set_mpwwwwtpLuaWx_lua*(# by"e~gg.nginx.org/HttpLuaModule#rewrite_by_lua">)relsoxecutednhase Afterǁ,tshpost-t>.ustik;find-config(02)),ndemorah0issuewpth0mmhref="h://wiki.naEchoeX_">^YrRqF.owevlet'socu`n???????=ZmentiH/ tbeؔirrelevap璯emhdrawsre(r 0pyauؗh ؕ;Backouramplؔ///a>:yser` {
Tؙ////GGGGu`p+i0y āURIfupDsiundiay,eanwh4s ښ Yinyfrom?:hhatltimlyrigusmagic`bitdiecfOOcism,ffx0@rrogggb=,E+sn؆tchaga ,hichxuo `.u`likewho@~???????<Є߁hrep۬77خ8f.ל??8ItoibvioFact9ѐ9_\doqoc8o?uinpadҴx@gǂoCnjnjnjnjnjnjǡzFsi@as΂韂?9hyTh(desigh#BPГ{be8ne8yeQoepthqideatjump"<`///////swhoweJfairjeՇowsJOmhimǡ,[ P.u8as:ogggfzggτhǁ/߅i߁'/'ǁ/>Itwic𥫭Pz:irs)be9߁bndazASnetܫ)bo`statem`?Ooccursnlyncen post-rewritey$ l lh:80806
I8anasserfromboutputactu8jumps#ǃyMm.e㊚fur rOsynablNginx "debugog rogateener!find-figormatched׈oogrep 'u@'Ygs/r.X[] 89449#0: *1 G@uȒ8 ""7777773x77Clearly,Vspecific,䞂;swSs@πЎi׀H,璩"cߚ؅">Qubvious9ifmmngx_/焐uso򝝢Ԙverren'tny^s"I`yeca:sppenAw,hichts?it(wwut&Xbetween}CckzexamplelowGG {gf    listeQ;G߁ۉl ^ `rWgeEechPxgo-}GGD(GggGAooGߎđːT,ywKstarpwith2i 8mځ).ctuoutputllustт1iI777Hllt: Uooo>Agahlet'sdC"og"//grep ''gs/error.XON[b] 92693#0: *1 G@u""7WW|tell,laltoinisq?/Pfnoon".mbp:pagebreakfontize="7xb>vord(10)Xb8>Built-modul8aref="http://wiki.n.org/HLimitReqM">ngx_l_‚OOOOZ WUz[؇8 m({numbof hour/minH/laXultaneous^.׭ scus!mhthorough߳،GGGbly,⌗OOORealIp7xPalipregisH;hlpreaccess</tt>sell.ouighteedokhen: "whyotgain?idqregister`sandlersn ser` {
Compar񓨐yearlil,majoriffnceqthatommsfodule ngxipon'harryHreQeъ3ess,cauˊstructPsu9GGEߘߘ">W if`˄J?olpsolissupPcch,9ɈgHn{o(ecuXNow3un Jwould'ex$ curl -H '1.2.3.4'lh:BalefuloughcAsi bPisd,9 -illuHaWW/WWGo߻WWGoWWWWWWWW瀟e$Gq灷77*ǼI>intr`ȝvabA@SvaluJwwwrCc#.24gr">׃9sdܫ7 T4n鯀put.Ә@Hwnih!youXicd|Zoc`arlierϩϩassignmen(ctuhappebef׊gggננ>jϷ}׋3rovȢobɝڢGGG߬矝϶J (thne)Ό "debugog"Ҷa btoo77grep0E0crip(8|`)|Cgs/error.XON[] 32488#0*1 ςɂ""OOOOOKOkipC 0100007F FFFFPoOGǎǎAmoyPfirstineo??υυcript var: "127.0.0.1"

Theogseneratedhenariable $wrQfetch@byommand///+RewritEse(,tring t0value.ψψψsecolines:ǁǁǁ[debug] 32488#0X*1  script@e($__YItndicsΉassigns+o7wForollowtwoZ//// realip.2.3.4߇ 0100007F FFFFPwwyreGCm alIp">ngx_rcxess0pxccphasHAseanell,newb(masxpecQbu`tappeonl`fte#.mentthat'sldyxȑggaNowlastǙ…hߧߏtEcholeX">1boutput1xclearY,ori al*,otԒ9tPonO''"Seop(m! ep0tholutionmmediHly: fwwwgispXhljØܗxnxadØS?"ԭYEhowevineHxcorr.au(????/G@OOOOo,b havЛailepos=р!25>(02)Z鐚execorder,n8circumstan((b(uarantee soiЈaoodc!''illlxlZWWW?X">(AAlwayAbackop9:fϓƬryGGG̐serdiAive,bypȱboas1situaHncouxr@abov߈??;377Ȑldrien9o'>,ilt-7tpAx_Ma3rdartymdPin.ru/hg/_authquest_/גz???υtpLuax_luaz(kk_by ",|)iQdqt񌌐77775}Ht-gaaKnaimpli eassp*L cgg`Similaodoyallow΋u]Teru8ewaskyDXamong m,rim;C0%Psfy@Kfun8ontyovidP8/(en/docs/ɘ?.html[ުWheultipπhl$Owwwwwqcontrolrelhipbetween.orHa0AlB=maywoorkion hle8w鄪sB@ntrol,hethersoetccessheniArairontrol.heirstne1called PAlocj /test {
Und"directiv _ȑ'''!LuaxAred,oeavewohs@nitor0inKphase.pecifi9ytatementzAtell!"rej0ll<,reasG] WU@owss.נݚ؊`commCore#">L,teanϋonlyfvery}\SincegggYwaysourequI#edטף$ curl Ylhost:8080_q<html&g/eadatitlei403 Forbid /rbodbgcolor="white"cPerh1''ʀZ)~_/GGwwqC0fulaAPfo١err8logɵˀfigg[] 6549#0: *1- fErφφσookIfowYxehang!|Wt.߻߻߆_ G߻߻߁//߻ߩ߁߻߻߂O߀׊GGDT out@p(ediffntg//7777φρ?'''+PMBecagopassЖ9controlD.ɯcexa,Luaxٲci(GWWWW8Wx"OSچ=OOOe@iȻׇbircum@swib/ggwggGߠgg//gggHTTP_FORBIDDENǂOǠǙǁǀ">N،,_#encouƲ3pag)proُ"OR"(lf͛meachڛ Qp-gggbPleanotah؞t2ir@ȁItwwwwǛ0.5.0rc19`(r;rli(ps@anXork8th77G.mbp:qbreak/>88NM`ody>INDXTAGX 14IDXTINDX00$߀01602G03Hv€04?r051cҀ06]07rO08Bo091[0A C0BP_Ѐ0C/Q0DQ0ER[0F .b10 J11 [F12 !HӀ13 jN14 8fIDXT !-9EQ]iuForewordWriting Plan for the TutorialsNginx Variables (01)Nginx Variables (02)Nginx Variables (03)Nginx Variables (04)Nginx Variables (05)Nginx Variables (06)Nginx Variables (07)Nginx Variables (08)Nginx Directive Execution Order (01)Nginx Directive Execution Order (02)Nginx Directive Execution Order (03)Nginx Directive Execution Order (04)Nginx Directive Execution Order (05)Nginx Directive Execution Order (06)Nginx Directive Execution Order (07)Nginx Directive Execution Order (08)Nginx Directive Execution Order (09)Nginx Directive Execution Order (10)(02)(01)(07)(03)(05)JFIFHHC     C    H'O>6F ,)$=ѶI- r ,/i Pd((z' "w T"B(xKl|Y:!eT^IIQ6' 嗡LRםKR"xa߹^(e6w>6 Bo\T8ށ6g>q7НuK'g 1ӟyމMl⿮ 13?޼ X<|~o_z}kO~A![߇{+YeE\q]|_(1/7]ſ'*Ӌbz60T/} 1PN|/O.] N *7&Ӕ7/RawFY9qfD/Rȑ_[o[Lns9H0!/=鯍ץ!~m7~{f 0EݹeY[94˪g^ ޾n0J4K,ui(O?"ʔ~s[Gog^Ho_J?L40d4+k?FCcSO\(iߏ2[)">ߌy=0;\?_~WնRsO? d9Ug˱/JJobݍ<ٖfL!z|L]*qi|m]?w~SggN_Է?Br dSN>^#ib_m][NO:mүNz8zwrM#} }:?ٿ*N Wa_ 0UwSW^ij= }?NZh|NE_Nvm up{7xܿqJq~c>V~-;KPzV ܶoGֿ_3*:p~o)NN@ȯMo35z9{62^ H{>/92 r#Z>m&y?j?(&<"ͼnzyTykb%D o@(I>39 ˍ*w' NhV^}ڙzs{9Ū}#@ 1^ό`kReFofs0N^Ꝗ)2-Tc_a2`Ƀ Ywgu'0IE:z1˱~;zV, `NzZ {I|^lI^LLOwgpxV:nk뽙lF :-sd,~:rH5UКsϜ~ǜjq$9Ee>tr5#n4 Aӳٚds+¶\Yˉ9D-Ü$hMuW[xY&SԹ7:dAdJuf!1ridXGD f%nٷ0>Ǧcp0D={~85FsX;OԜL9ZT:}{~<ߚFI^Ic>g=猽oMWUXŹW[4Қ+gN O_^c8n`R|tNjH9q^+Gk+UNQ T9#=krߺ*D#Yess@m-zsՃߒ Y^U2 kZ(wkO>E~Hv;@=O^inlO:ɿ&@)Ƒ.{bW%G)gXӍl$s3UNV*^75s~QQs}-9tΗUl2J0k̽?j{x7}-Û~8 v-g[ v/RW QyZRu]}:l#8/ FF ѩM$yO,s')e5C% F=vux4%3ױ;)AG}'KPqn LxJl_rLPbʴhwn`pxIkaG7[K.ӌo?9":%GUw$b l#y#kOخ緞If1ƨ1|LJϏ#cnfo٬Rbӊ9rtb)uy>?C8±.N&6m([٪v8j+g\y2g@i>#Kj!^`;c7[dlIYWPqaq 9]%z YGFq#pzExM8ny~sӎK|zw% ,lIu.MY׽juMӅ&eNGNDtW}=~+33;'1;vvTCOp7lEa5jDlĩj*-VLWjJD Nn>_Tƻ\q_\83=NaY_wygs8'^y?׾: kJ1|V8rЎ3zrMf5t4~2me>A/7;XJv:T~=s9̹ӊ\ٕ~ŏwsϚC9Zi݊IFKq1)[5O`v&ENGƓHM\o*kqixhg\[k:]iB G8W;n=ӌ)ppoRN1Ԣڽ'so/̷QJLF!)8SyVlecd?fE#3ڵIف# pd[xaN{G'xDg;mz:y$|5pFP==XJ~e浖RPQ+A^ZiY3Ǣ6v=\k貼G+R+a0?h>#3$V tve~s/~qp)gY^N)F}<4pOXG}5>j 5qGW+1m0Kd{@S&'I/>K/"C~k@R0d=3PJXFLO&v'Ƈl\]Fq'=S_`fB=}X8}+PIpc*ŮsN^pEu_fH,R)>WĆ4JT WkY+R%a=C`Umļ&Xώ `znGtMXP/g=QdD~~m6J{g [#RcAkvȇp[Nϗ(c.Oo.؅+OFù=˿, hXgʮa 9t,,)BZm)>"*G^~,2th77!1 023"@APqQa#BCRSp?h72=4){CŊsKMcuFv{,S4NK/`prqDX)dp}a7 mKn87yp.,0n>VGlM7OڱQt'jZr'Vw2ŽvK}ܪmu&Ђ?[)6mW"K;/~G|5fO(d>T۲'sXtSɣT[$UB we“Fa2f`ؿCD<_aTmv:olŎy#)EÜ(!H'C3UZ ns ђg s) ;4*"9bZUŸuz:HJirQv<$1\#%O/|f3 `#<.LMwʎɮ nNw湿e(~;XЙC!(ʎQ&j#- /QcSl#370ݥ~.o\P7S^BdMma6r1U`'92Gn¿ɲOl;6x.6hQl$͝fzH_.ܘ#3ϯxŦ2H0N.= T>7FlϞ\o͟ Y(Z6Jj|r91M7\x*E~Nu'94.Id`1㑙3 aȚgjan0{2E+]lfMxX-!['yϐ*fhl9zLlWO!ʟ~>be;ۅ& jDoʟAwk yAa veykS01KZZYg+^%?''0N,ߕ?:fQ8D󞋿 `@/rT\YNqyq AA)(a:dE#>x͞ Z۪ 9cvc䩹xjtLv:'zYI |nËQxiЩ#,+Tr1Sds |&f,g chN˿?Y}xcB)ghVRsOR3 Ycqa0Ϛ.ω'[ݢ +#>?S5iaW "B5gجR ̱M/:_]5;ݻc>9,ww ^aP-T(+cO!G | n*f>ݚ~^^3.٘n9*8-PnoAقj|7lCp^ۅ+clV˻rsCEQzI]%~kf&{CIJ n,zGn{d=2l~t'?tctM8rŲɀ#-#H]+s-q%4ɇ \!WvzcLX~ g%4RK<hBE &B(B,5[VC:e LjCJl(a˄EQ̆8 h熩۔bDנ*wjeA}Ty1 XƤ]hU?g4_.),# %]Ph Q" Sf𙁿EZ e;m/ Z 0") &KM22`?_IgyoC *o!ll.DSn-QͲK!aE5%qcoe.e_@|(Ž eM'\?BɶUS{ͶB^lA(E7%u#63C5S_B٢xS-$S3@*m<9TBٝdf.c*oU„N nUSuNhpGc^1 *xqp„Jx5b4#*VꞄ-ƺO ,mF/Dq:ꞅEDP"ZS-Ⱦr$Wr:*kæW!nF%W]wMPU~+_d7S\%SE` )]|U!nEBۆz9]Q^{#d,jU~(+]êw$lBt+q]Ū(<@5yG]9'rX:kj(T@S&hNFıS&,Jy<x#蠐U>BO3TwBUH8 S︕_V.'P  !"1AQ 2aq0BPR#3@CSbst$%cr4DpTd?Ίt2tPZP[kzb|Rl1V,iݽCKy:  =T'VW 7[M'&Ul[bn֟yQ 8sA'\YΩ)G] +KjFlЍ& ˷\H u]$GV|s2ue]u Lx9'0ngV{ݎC52RyFe)rzeQ.JOKQ; :*u/ǁb^L*a 6MƒږʱjzniՕUDzm ;PaZJ1#pX7 Ԗ>8i9;8gPER(.I84- UmX<8m4&jMgNԝxm!xE64|dkJyNe&.]:+_B(Zr/Rꑧ&Z7 aiУxܢ2\VuaZ VY6[VE@_Nab@G 'mvǾ3NK 8 sPDYQGe*I <Qe>c]wDyoΔQ ~ /χVE&]veFʺi{fB^qYf)';F%dK(/q9b^|f2.%*ͥt@iTT۹﯏g4V|&u448Niq/'PD XZS?9Unq^*̿ 2h5)4挄eD&mz($AnM. ]OO >֬%S˦}q7z9HZBBY u% #ΡP8xbU^ḑ_yWi%kQڟy6닖5v\S&/MLM}IId1=0F&͘Q-f4+wk9u!/D8N[)#,6/:ܛGNNUmWܑ̄q 5PF㌸*ۉ)P1hx?3z}$paHDŽ9e%֝/6>ΈbiV@Z}%jƠ "V@7B?1 үy*7ຂN8}SקD ABdmMWwXT&Ub^aBf17e? *Ԋ9O k&%WΤ+Ưd2rxc$"AAɬSJ`u$;pURbԱ4q 0l#qA"{`%{G\Rɱ<7/$>mlKQI]Im\&ҳN{ӮeJR//fV8WY>Ƨs_$% MtE: KNM=NAY: ihJ÷fՖr{AXqnaYWekPJF$8&dף ,k+7FU!,C&I/2Zk zbd8RuPNRj0<igDs9KN۾Nwy+4ed(%ƿ: Y ~Vamia_.m:V[rwjsQaY0H -Wx0`:YxT4'd~-%ÔftH$'I2آR7KJP;<ꪻGPzBiGF rx选\_O/I52)_{UHK-miӾ3};"Vz%t9rjhӓIvR;!ׯ<@Z$XQ"8ϲg;72%]w=?GfDjhy^ӃEZaS)T_O \hyGx X+HU\?Tiy)2yiyt%';逕/s;ޮeR) .CO܍EBUhVpZ2)HFOTY\ I>6~ҟ¨osZ]H][[Ogl}#HJ4㧂ӦU$̔Αͧ%fLn-f I Ƥ$诔$>"]?*j229|7yE$(q1iWf-ՠ@bז,+[tBq. L3D'|wkyך%ѧ'fe18pKٍkJs팤Z..*ع+.Ժv6+,|O.Y;z`u8,s6cww4##4Ȟ "3q!U+&ve^hvA'ۗu9̛Z ! @%"odCLGYHz,F YԽ WeLno;c!<&80och|ؖC--+~e]ȳ]Ef4ttEg&Z?&S퀹HKhNP!6q 3S=U9Dv42sry:svś*Ng*o ) IRpX6o2 *Z6k\Hz*MϥGb3γW}AnىVˆ ~Jn0ohꀆ)Aj ])D*UT%a G!+I3y qn]rN qbb+I#{417!* QU b5AT;a(a=e$uŘ8BΡVo&љVN]*=ƷdL<]kIs(?3 'rY ɦh8Psj5%*Kn2r"iJu8lKܘ  *4Zh]GhޑLػ|R1^t58'D] LS_}'|IJ;>">=,߳7G$XUӢ2skj],D\qƋt+G7X!ET˹])e#qҷG`8(Q2/+8GQ!*ܳ7{tYΡN8m Z'0` @i$)4L®ަzaBeVeХ]?^nȶ-Y.4Ah㌘|\ѐ%&;4rk۶Xb8МْϐNng4Bzq쉛NڙO M/WRf|y%ç~i~ ޘ}TJzTARt)HDJRˎh^~Y^dյ5)%PG$M0ܴIe#1 U8;ʝK%>=:śf&g24?j/+ f<|aL=!w[l+tJ/+"vE(~V`˦):p2nQPm~EWTe׫aN;=LۣqIwYu.M7J2 i+S؜jj} & D˥iieQ &RQ$6 TjTv+bP"Ivle)kE_T_<εNt9/8Ytz*I H5m)GP ӜŖiW#uRfrR*@#&ªsGĬ `y>[%Pÿ;/a]C^H)FkEFFԐ~Aс¸j}D:"GML13#"]=*=q=,%ӥk4 VVjr6MS% jIUY"_0Wx\ziUW"Nm.ZMK0ߪkwɥJ1V>K*MVwK-.6 I>I&'֧҃C奕qG9=if_}Xi, (LTc;:͘U]ڲ 'AwbA3$:Zuv/S-i =tC` "Q "mVh'Bxi2ކ hEC4 uoR06fbMb!W+ikbF$bZ.-A @}*7@x'{R*W{tJ5}O[&/gZ1A9ŴHC8'X h+Wf6U[Recj3K(}JCPZ(.4+jM~ .K4HgjR[~$y˪t~# K]#P|ZŦ.OD 2c! #N3iFDDDե|Vn(R̺!&$ھVvӮ*M0ziou4;|QڤLnMwRD[ByrT @wR~)8+g< [dJƖg7' WqZNذm 6j6Ƅ$j& _mضh膁+%N-rI.Tym%)H.^弴e[К'㐒K5i,g}](d:S+Kij۽u?pPO Nm=:¤Dj;hrI$ ܡVY,㴣p]Ƽ=@HiU:_+AT;b:PA6Gb:YG0,<\4C6르'Ua!uSy]ruɫ@99[ HelI9'DGR_ݓ'mf";.j5& ;GYmMI@죮Z ܗ|w]E˸fÇLcڀ|#i@ycÍ٦q1y $,?uk'%9D|G\%?0kzަp=X<=;Bf"hF6,u%(~|#М7kڕ:/"͆T糮zT $@w* LN:|i ^).o[E.^rN(͌\ЩզEs$['<dpv|O#-;~kYrQ^NTaKѸـ?Ar+Х*`ݶԭ =0 v-{7"C C{E kGQ+w(͋hlzl+-mul]v? ЖG.v¸k~5J.腂sWL ֌z/zA1d/LYH wϊ-vޠN*up"~R3d4o XV?,a ?4$kN2^XoUڄ8jLu9ӏ-4.C4LzHԵIJ?>KOS줵vw~> DЌm]mUO1N9sٚnoXcDt(e:V!!4}~|+*b:o2_ʅ I 3zI;IH AUCjpk إ։Z0˳E^" _Gm3 ̉X{c4z #SQiU۸K[AUSYzmZ] ,D˃ٰAfPbvsʃ J"rq[H θOsMou 3hg@Q.{ԢS$bkQ(f8c-|qXNHP tpAaՄ?]XrQ@wK+DS9 +(i$WU^ƴ nXj"!%ii# h! N>lY@;҃qdf !-JIyͥ֗ !kVåAXCF5R15,zGP͍=B@4f*.X8d-sn/vlⳆKAM"ARRD{-RYd*FrBIJ~垤Ql҂L)Oz!R  MBsu |%̞ 4%j?T!zF ^P*o7ک_ tx柘uac*A ZCGWjK!CT"U@v7T N/r(@f_q~A4@=HV+j[Q VF/;J2+ h򃖀ٳ{%H\XKT;b x(TZxo/?SR1ڗ&)|ABA *D<I{e9&G''C )'1j|Б4^s'0d*r|ax}UGSQk3&H^(;'\4O!̬T9P'6%|_wid;lG@sE,Pv7|UؚdZ7;PljX,4l WSlE$l31@&j)-l;bB%77x=%bU꼩z1ow^tFR?oB;|ǡMzBd 颦q@Qr^&}j+ѕ}_r{28Wngktnr&z8Rp8OgI ]D82lF+Ax94\0~ R8F,\ G|Ћ`Ϻ>3Ax3;MR_DS|gyyI#LWL#$=2sLd=Rx2qI&o#1͜ڌ,qic I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$@$I$I$I$I$I$I$I $I$I$I$I$I$I$A$I$I$I$I$I$A$AI$I$I$I$I$I$AI$I$I$I$I$I @ I$I$I$I$I$ $I$I$I$I$I$III$I$I$I$I$I GDI$I$I$I$I$I$H3G$I$I$I$I$I$H'/I$I$I$I$I$I$LI$I$I$I$I$I$h2I$I$I$I$I$I$ *I$I$I$I$I$I$'$@$I$I$I$I$IͱI$I$I$I$I 2 $I$I$I$I$GmI$I$I$I$hFuۡI$I$I$I$n&qi(I$I$AnQɴm܉$I$+CE$miI$}|m[MM-*I$B9t%momuI$H?[~$6omI$I&~ډ[mI$I${~N64RmI$+߸o -mI$}$mmdi*mmDѫ1`mIݒLAk>qmh$RFmomtHmOm·m7-$L mu1mAm$xw#mmԙ-@m$HQ}-vmڤI$.ۭ۵ŠmmDI$NO1SmmOI$I$+nmmkI$I$Anem{ $I$I$I%zmՒ2I$I$I$I$(?[mlI$I$I$I$Im$I$I$I$I$I$yms$I$I$I$I$I$ol_I$I$I$I$I$I$HVI$I$I$I$I$I$I%I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I',!1 AQa0q@Pp?|g3 u%"?f5J=g0=ܱ9ANS_Le/hDnaWc]:qb#OˆSJCch\ F/QET٫EUAZ!wZ-p*,Z<eCqg =1D_9t=\2po{J[Os{|N9=xkn 7@X]{+ݖKou)r8Ap}\t3 _l _v^sLknϿx!,`lGydHvߙp8/Ggȓ ޞr]I^ Q0="#NH.w\{]"`}I(9j mO'9n3q:􊭺 ywWŷ >ݳܶF>EhiX \ˤoMUzLc5}u1rhl0vkmkG9^&c3篤7?Sj#_zW҃s.p9^T uOO@_2x Hog2@ej}>&>Oxf HρPeQ( z zEV8Y7g>.2.wB2Y6dpW w`8]=~.]gCM2}*r=XqώG8XLw `]ɠ^29Du.SiVs.fXV_G3 8DU1=_ 2}aM#Zvjj*ˑ;޾}\J m._Khf1Q1Qh*F]s ? X"9ńÔ6.Ͻ|b.Wsω7LKNa$܏A}[ J);G8LYf{E[7|zyJ>~!™^7x=&[Lװj0u!`La'QC1#IL=_,j-{N)U}Gg5㤤 rY(U`~V^ ĆdkEg ԊtZ& {k@+գ[ߨʫ\|~J n${i\Tf|:(ٰ}]JLn ^{( Mv>Wbq m>ʙ^wY﯈( 107fQc&L-ݤ& )]e3цf ilbر;*()+?|ck dxTIA"+V֏sXu&Z3o4Ȧu~rn70BfY/K)Ri>EIuC-1|h0 ~L7~3PyƊˏwuP~<43Cz_&-ی3_L62}?|c(Rx \ P.?b Crz:G`[W&NK!^D8%ۀ`?*!1 0A@PQaqѐ?p PMPǚ:>7C~~?qcWRi )X-G9auySg2DNH῏Spa{=_OƶAƞcaG-=w>>`#>iUw_oLhz}ysgO=ɸS|»bRDuOOTX{wH3n~O*6"}ɤ'=2!HaC@S_I}?;gk~>'b5W FT Ьڰ\K4qKW`y%\FZoі=Ϯ7-'/V~ H{I ,ij2@G3b&E4×[5˶m@Btb*/tpbkO0~G.~ 5brE ) mӱx"hќ̴YCZ'O*žCp\O6'31n9lB" Vc鈬=OG?CīO0/5n `Q:|66vLF"3ۊDJu>τ?|<#0#gяi=l y6k=Eóx\Anj^эyxCW6Ԇ`s€y`ElMF7/Kx7-b9WI6TPEC,fa`]w]}j` 9{^ Zh )V"b lWM^E&t"q KsԩRJ4h<]BEMT8yNp¦G8&);qU)W BBpJ YTZ 4A J8!  NLG6樴\8?u&#p<pH`sfd)f),Uu6 B@ip֥"b9x!Qۨ5<z&\Ԕ[u5.0W ,ບJ`x"ǃZ.ie{ʮ v{W~S>wMN"E>ALM%=5QIwF.(n#[ʵ095,<)vdo\1|Ev԰Uq 1/"5Qbl?+!1AQaq 0P@p?G)i(1SAq`h)IGh/>Sf?ǹ804w N稠w 0sV8nL/Ќ!#^UҼJ XT{+( .dhѝ>ha,PܣbHpLURx_@*Q%l B%:^j{QzZ0{>0CqM+G1pd_bV/h/^B@ #D^pGu dBpn>`6:Ž,gPt;U[UCL88ZD1= AQQQ,+jQ>$EBt~OH"gť#zx+WVAEU񗘪`ZuQ6blJ. V QU3cvhXD&t)U($(J,-2PQY]Qҭ#rԱ5XSiضԛ"" ^trKN+Q G*JЦʰ?eFff0i꠸mVtlc#L Z+*>XʿAL4kϓ}&C|,HK+ Eviÿ6-"-j*zP{2hR1BX#\$u /&]Φq.0M6_󛺕#rT^c^g]p9<$@=0[.F)$G̶rNArB0#wWerUS_Ț:^" Ի0VV.D{cOF埵˩G9 ԽhpŒ2mpT#P< #Z| ]VEÕճSEѐ)'"wa58C-8Z[ÎKكכ\{zߔuWQX% M8ȏ&0HvG|3[rİhssG'g<;d0[jQg;^: ; !S-'QO KWNؚo`ooÖ%}csǪ4BM8,AcTZ38A8Ѷk&K54{* .U "h,G$6x 58n=\Bh* N,;Q Y29`:}4$s>WO@Ld$.,u/| q6Ȣ8ޗPfd -y@wq$ளu6n֠Kz;vuf^1MfIK.PmّQºl>")cӘ2҂o @gI/Ýܕ<3ġsT]nlZ:PM▲1aXCn/7B4K Z>1zTC&m'houn@cJH7>L5BTFaOR*oSQ́24'>Cdn:H &9{@it1mEGp$M?}l6S&&+ }seaȭ Wi`9!ǜs7݁LMq AFkM#(EPj?FA #G}J`4_*?+#D߷~1h9M0,a9t#;*H"*5YT85c@`6Vb"^hv vH$oT0Lqlδya*Q`Q l_ &xLҴ^uepu)M53'A^Z9qHAXpzqg װe8<0 tc@IO8ZM?fgIG ׌!(Hɽ {mpR BmC\#1D#t|ժs\w Na4 Q$-DN,Cr=.sG8SU<JRh ɹ$mW@ {M'1;Ɔ!B?$GWN] [\OA*O1 f}7ڿzyJ#6v87oH^g< 3A;Ҩt[ f o'E)ii708_CWu0_B #_X^zߨIxlcyg݅"@B{ ` %v|1p "!^d%|$l*)"N\݀@#r39r'$:UL*()$zhƿCC'dX9Q$蔘I&oj$920א1l `~cg%[eCȗy}#o D} lG^ߗ$# '9ٝR}ȮPM9#g`3%hJCO SJ]Cp*2HJJcdI"#$$ Х)A?:&4GJw2P.7@'L:HyTH#%VO[sYombR+Nɔt+V:SuS Lg0 .2T߶C2 >*n퍉@h/2 mD!H,g(Srړ>@>pT8[W[$C_^YKɱ|Lh(e c^*W5đos`5dšyBlq:V z*џG/!9I<3@ XP4ju28>(fN{M?]lfCJch=cw@銩nG<綉LJHF.?C<=rMn=dмC kuv >zehE"  .#2ͮ/!d"qVLq_<@pZr =ɰ1.W:z׮&ݟL<ҀU/;^J$7AGc 6B: C; mOIl‡EJx,'4@/#FCYEXFfF7ECzHdmذyTYMl;4rq*|ҝZb6^zE({S,u)OssC8p"znTH@b2?ZN 6hX0 ނ !tƬ˓EU@k`ɬҵC-N8bVШ(#{Tba8sZ:(62rJP!덡cc~h^sr_|8bӶ@:G+{߁z8qN!&v1BP1ᐮU!>hHap[s5J.BR6Q o*HD TW-1x)[՞(7(`]rF+ plHp llRUU__O V}:B=Wz88EH4p4x,H 2R+@@cm5Yt*COn-3q[oU4D\+6=; 0Y\4'Md2"5TT('2-Lf1oGDnE8#Ƹ#;WɂD?@=Rp|HgtbVvm=c_SNwȊa&T^y͵/ O[T| 20jW@c \?`ߩJhN"B!h*.6~AEE)LS70@ <UUaʿph`.zC`+ynUlPE5𓶽@ٗc%@<<єP솼}ͅp6K%fDV ,3p`ntGC iekLFY$ @@vZ>>kHĚQ:K"(7 ) A(T1Gܙ';3EFEH aJ 0'2D#["򢩽[TrWoªQ]da^rz+laDs9SF^?S &9zh?c2$-! tEfP \%R4cD5P bɀeUCqP"W&`Ҷ?l#d=-0l7Iv:.v@oV *W"qCHԩeT%NHcGDT45sTqB!'C?k۟>AyĘ+WEt&pGr40 'YՂ UtG~Ls1߽s3,+\J8ˤ AS k{]\m(djNzu56A1*ukcbV jL FrWW#sсa(HgѨs4;aPu!4Kw6Cj !{h4WW@.JMY^VvL6ORYan%0\C(O['{})at52X6z:X+Ol&UҼ= ip&h̓Cv) 8C $==e=grbt -Ejag)Q!{tԄ.B# V<Ȣ7KpAs\l,5P3ܤO#i߸/fF9+΁&x4k. ۄ@ǒ)W.tM4QRo[@ccp󇪌t&}'"W7Q)H-ı\F$t$ Dyh(]L%r 742nȕMA tnbԐ*?_"WD]Ar…6UkFLISAFCISO