Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Pygments / examplefiles / output / test.sil
Size: Mime:
€]q(cpygments.token
_TokenType
qXKeywordq…q…qq}q(Xsubtypesqcbuiltins
set
q]q	(hhXWordq
†q…qq
}q(hh]q…qRqXparentqhubhhh†q…qq}q(hh]q…qRqhhubhhXTypeq†q…qq}q(hh]q…q Rq!hhubhhXPreProcq"†q#…q$q%}q&(hh]q'…q(Rq)hhubhhXControlq*†q+…q,q-}q.(hh]q/…q0Rq1hhubhhXConstantq2†q3…q4q5}q6(hh]q7…q8Rq9hhubhhX	Namespaceq:†q;…q<q=}q>(hh]q?…q@RqAhhubhhXPseudoqB†qC…qDqE}qF(hh]qG…qHRqIhhubhhXDeclarationqJ†qK…qLqM}qN(hh]qO…qPRqQhhubhhXReservedqR†qS…qTqU}qV(hh]qW…qXRqYhhube…qZRq[hh)…q\q]}q^(hh]q_(hXEscapeq`…qa…qbqc}qd(hh]qe…qfRqghh]ubhXOperatorqh…qi…qjqk}ql(hh]qm(hhhXDBSqn†qo…qpqq}qr(hh]qs…qtRquhhkubhhhh
†qv…qwqx}qy(hh]qz…q{Rq|hhkube…q}Rq~hh]h
hxhnhqubhXNameq…q€…qq‚}qƒ(hh]q„(hhXTagq…†q†…q‡qˆ}q‰(hh]qŠ…q‹RqŒhh‚ubhhXEntityq†qŽ…qq}q‘(hh]q’hhhhn‡q“…q”q•}q–(hh]q—…q˜Rq™hhuba…qšRq›hh‚hnh•ubhhX	Exceptionqœ†q…qžqŸ}q (hh]q¡…q¢Rq£hh‚ubhhX	Decoratorq¤†q¥…q¦q§}q¨(hh]q©…qªRq«hh‚ubhhXClassq¬†q­…q®q¯}q°(hh]q±(hhh¬hn‡q²…q³q´}qµ(hh]q¶…q·Rq¸hh¯ubhhh¬XStartq¹‡qº…q»q¼}q½(hh]q¾…q¿RqÀhh¯ube…qÁRqÂhh‚h¹h¼hnh´ubhhXVariableqÆqąqŁqÆ}qÇ(hh]qÈ(hhhÃX	AnonymousqɇqʅqˁqÌ}qÍ(hh]q΅qÏRqÐhhÆubhhhÃh¬‡qхqҁqÓ}qÔ(hh]qՅqÖRq×hhÆubhhhÃXMagicq؇qمqځqÛ}qÜ(hh]q݅qÞRqßhhÆubhhhÃXGlobalqà‡qá…qâqã}qä(hh]qå…qæRqçhhÆubhhhÃXInstanceqè‡qé…qêqë}qì(hh]qí…qîRqïhhÆube…qðRqñhh‚h¬hÓhàhãhèhëhØhÛhÉhÌubhhX	Attributeqò†qó…qôqõ}qö(hh]q÷hhhòhÇqø…qùqú}qû(hh]qü…qýRqþhhõuba…qÿRrhh‚hÃhúubhhh:†r…rr}r(hh]r…rRrhh‚ubhhXPropertyr†r	…r
r}r(hh]r
…rRrhh‚ubhhXSymbolr†r…rr}r(hh]r…rRrhh‚ubhhXClassesr†r…rr}r(hh]r…rRrhh‚ubhhhB†r …r!r"}r#(hh]r$…r%Rr&hh‚ubhhXLabelr'†r(…r)r*}r+(hh]r,…r-Rr.hh‚ubhhhh†r/…r0r1}r2(hh]r3…r4Rr5hh‚ubhhXBuiltinr6†r7…r8r9}r:(hh]r;(hhj6hB‡r<…r=r>}r?(hh]r@…rARrBhj9ubhhj6h‡rC…rDrE}rF(hh]rG…rHRrIhj9ube…rJRrKhh‚hBj>hjEubhhXFieldrL†rM…rNrO}rP(hh]rQ…rRRrShh‚ubhhXOtherrT†rU…rVrW}rX(hh]rYhhjTXMemberrZ‡r[…r\r]}r^(hh]r_…r`RrahjWuba…rbRrchh‚jZj]ubhhXFunctionrd†re…rfrg}rh(hh]rihhjdh؇rj…rkrl}rm(hh]rn…roRrphjguba…rqRrrhh‚hØjlubhhh†rs…rtru}rv(hh]rw…rxRryhh‚ubhhh2†rz…r{r|}r}(hh]r~…rRr€hh‚ube…rRr‚hh]hòhõj6j9h¬h¯h2j|h¤h§hhhœhŸjdjgjjj'j*h:jjTjWh…hˆhÃhÆjLjOjjhBj"hhj1jjhjuubhXLiteralrƒ…r„…r…r†}r‡(hh]rˆ(hjƒjT†r‰…rЁr‹}rŒ(hh]r…rŽRrhj†ubhjƒXCharr†r‘…r’r“}r”(hh]r•…r–Rr—hj†ubhjƒXDater˜†r™…ršr›}rœ(hh]r…ržRrŸhj†ubhjƒXScalarr †r¡…r¢r£}r¤(hh]r¥hjƒj XPlainr¦‡r§…r¨r©}rª(hh]r«…r¬Rr­hj£uba…r®Rr¯hj†j¦j©ubhjƒXStringr°†r±…r²r³}r´(hh]rµ(hjƒj°XInterpolr¶‡r·…r¸r¹}rº(hh]r»…r¼Rr½hj³ubhjƒj°X	Delimeterr¾‡r¿…rÀrÁ}rÂ(hh]rÃ…rÄRrÅhj³ubhjƒj°j‡rÆ…rǁrÈ}rÉ(hh]rÊ…rËRrÌhj³ubhjƒj°j‡rÍ…r΁rÏ}rÐ(hh]rÑ…rÒRrÓhj³ubhjƒj°XSinglerÔ‡rÕ…rցr×}rØ(hh]rÙ…rÚRrÛhj³ubhjƒj°jT‡rÜ…r݁rÞ}rß(hh]rà…ráRrâhj³ubhjƒj°XBacktickrã‡rä…råræ}rç(hh]rè…réRrêhj³ubhjƒj°h`‡rë…rìrí}rî(hh]rï…rðRrñhj³ubhjƒj°XRegexrò‡ró…rôrõ}rö(hh]r÷…røRrùhj³ubhjƒj°XMomentrú‡rû…rürý}rþ(hh]rÿ…rRrhj³ubhjƒj°XBooleanr‡r…rr}r(hh]r…rRr	hj³ubhjƒj°X	Characterr
‡r…rr
}r(hh]r…rRrhj³ubhjƒj°X	Delimiterr‡r…rr}r(hh]r…rRrhj³ubhjƒj°XDocr‡r…rr}r(hh]r…r Rr!hj³ubhjƒj°h‡r"…r#r$}r%(hh]r&…r'Rr(hj³ubhjƒj°XAffixr)‡r*…r+r,}r-(hh]r.…r/Rr0hj³ubhjƒj°XHeredocr1‡r2…r3r4}r5(hh]r6…r7Rr8hj³ubhjƒj°XDoubler9‡r:…r;r<}r=(hh]r>…r?Rr@hj³ubhjƒj°XInterprA‡rB…rCrD}rE(hh]rF…rGRrHhj³ubhjƒj°XAtomrI‡rJ…rKrL}rM(hh]rN…rORrPhj³ube…rQRrRhj†j)j,jãjæjjÈjjjjj9j<h`jíj1j4j¶j¹jTjÞjòjõjÔj×jjÏj
j
jújýjAjDjjj¾jÁjIjLhj$ubhjƒXNumberrS†rT…rUrV}rW(hh]rX(hjƒjSXFloatrY‡rZ…r[r\}r](hh]r^…r_Rr`hjVubhjƒjSXDecra‡rb…rcrd}re(hh]rf…rgRrhhjVubhjƒjSXRadixri‡rj…rkrl}rm(hh]rn…roRrphjVubhjƒjSXOctrq‡rr…rsrt}ru(hh]rv…rwRrxhjVubhjƒjSXBinry‡rz…r{r|}r}(hh]r~…rRr€hjVubhjƒjShò‡r…r‚rƒ}r„(hh]r……r†Rr‡hjVubhjƒjSXHexrˆ‡r‰…rЁr‹}rŒ(hh]r…rŽRrhjVubhjƒjSXIntegerr‡r‘…r’r“}r”(hh]r•h(jƒjSjXLongr–tr—…r˜r™}rš(hh]r›…rœRrhj“uba…ržRrŸhjVj–j™ubhjƒjSXDecimalr ‡r¡…r¢r£}r¤(hh]r¥…r¦Rr§hjVube…r¨Rr©hj†jyj|jYj\jˆj‹jj“jqjtjijlhòjƒj j£jajdube…rªRr«hh]j°j³jSjVj˜j›j j£jTj‹jj“ubhXGenericr¬…r­…r®r¯}r°(hh]r±(hj¬XErrorr²†r³…r´rµ}r¶(hh]r·…r¸Rr¹hj¯ubhj¬X
Subheadingrº†r»…r¼r½}r¾(hh]r¿…rÀRrÁhj¯ubhj¬X	Tracebackr†rÃ…rārÅ}rÆ(hh]rÇ…rÈRrÉhj¯ubhj¬XOutputrʆrË…ŕrÍ}rÎ(hh]rÏ…rÐRrÑhj¯ubhj¬XPromptrÒ†rÓ…rԁrÕ}rÖ(hh]r×…rØRrÙhj¯ubhj¬XDeletedrÚ†rÛ…r܁rÝ}rÞ(hh]rß…ràRráhj¯ubhj¬XInsertedrâ†rã…rärå}ræ(hh]rç…rèRréhj¯ubhj¬XHeadingrê†rë…rìrí}rî(hh]rï…rðRrñhj¯ubhj¬XStrongrò†ró…rôrõ}rö(hh]r÷…røRrùhj¯ubhj¬XEmphrú†rû…rürý}rþ(hh]rÿ…rRrhj¯ube…rRrhh]jÚjÝjújýj²jµjêjíjâjåjÊjÍjÒjÕjòjõjºj½jÂjÅubhj²…r…rr}r(hh]r…r	Rr
hh]ubhhjT…r…rr
}r(hh]r…rRrhh]ubhXTextr…r…rr}r(hh]r(hjXRootr†r…rr}r(hh]r…rRrhjubhjj†r …r!r"}r#(hh]r$…r%Rr&hjubhjXRagr'†r(…r)r*}r+(hh]r,…r-Rr.hjubhjX
Whitespacer/†r0…r1r2}r3(hh]r4…r5Rr6hjubhjXBeerr7†r8…r9r:}r;(hh]r<…r=Rr>hjubhjXPunctuationr?†r@…rArB}rC(hh]rD…rERrFhjube…rGRrHhh]j/j2jj"j?jBjjj7j:j'j*ubhXCommentrI…rJ…rKrL}rM(hh]rN(hjIXPreprocrO†rP…rQrR}rS(hh]rT…rURrVhjLubhjIXMultirW†rX…rYrZ}r[(hh]r\…r]Rr^hjLubhjIXHashbangr_†r`…rarb}rc(hh]rd…reRrfhjLubhjIjÔ†rg…rhri}rj(hh]rk…rlRrmhjLubhjIX
SingleLinern†ro…rprq}rr(hh]rs…rtRruhjLubhjIj†rv…rwrx}ry(hh]rz…r{Rr|hjLubhjIX	Directiver}†r~…rr€}r(hh]r‚…rƒRr„hjLubhjIX	Multiliner…†r†…r‡rˆ}r‰(hh]rŠ…r‹RrŒhjLubhjIX
Singleliner†rŽ…rr}r‘(hh]r’…r“Rr”hjLubhjIXPreprocFiler•†r–…r—r˜}r™(hh]rš…r›RrœhjLubhjIXSpecialr†rž…rŸr }r¡(hh]r¢…r£Rr¤hjLube…r¥Rr¦hh]j_jbj…jˆjOjRj•j˜jÔjijj j}j€jnjqjjxjWjZjjubhj?…r§…r¨r©}rª(hh]r«hj?X	Indicatorr¬†r­…r®r¯}r°(hh]r±…r²Rr³hj©uba…r´Rrµhh]j¬j¯ube…r¶Rr·jjh`hcj²jjTj
hhhh‚jƒj†j?j©hhhkjIjLj¬j¯XTokenr¸h]j°j³jSjVubh2h5hJhMh:h=hBhEhRhUhhh*h-hhh"h%h
h
ubXdomainr¹†rºj2X r»†r¼h‚XOption__Noder½†r¾j2j»†r¿j©X{rÀ†rÁj2X
r†rÃj2X    rĆrÅhXuniquerƆrÇj2j»†rÈhXfunctionrɆrÊj2j»†rËh‚XOption__Node__Somer̆rÍj©X(rΆrÏj©X)rІrÑhkX:rÒ†rÓj2j»†rÔh‚XOption__NoderÕ†rÖj2j†r×j2X    r؆rÙhXuniquerÚ†rÛj2j»†rÜhXfunctionr݆rÞj2j»†rßh‚XOption__Node__Nonerà†ráj©jΆrâj©jІrãhkjÒ†räj2j»†råh‚XOption__Noderæ†rçj2j†rèj2j†réj2X    rê†rëhXfunctionrì†ríj2j»†rîh‚XvariantOfOptionNoderï†rðj©jΆrñh‚Xselfrò†róhkjÒ†rôj2j»†rõhXRefrö†r÷j©jІrøhkjÒ†rùj2j»†rúh‚XOption__Noderû†rüj2j†rýj2j†rþj2X    rÿ†rhXfunctionr†rj2j»†rh‚XisOptionNoder†rj©jΆrh‚Xselfr†rhkjÒ†r	j2j»†r
hXRefr†rj©jІr
hkjÒ†rj2j»†rhXBoolr†rj2j†rj2j†rj2X    r†rhXaxiomr†rj2j»†rh‚Xax_variantOfOptionNodeChoicesr†rj2j»†rj©jÀ†rj2j†rj2X        r†rhXforallr †r!j2j»†r"h‚Xxr#†r$hkjÒ†r%j2j»†r&hXRefr'†r(j2j»†r)hkjÒ†r*hkjÒ†r+j2j»†r,j©jÀ†r-j2j»†r.h‚XvariantOfOptionNoder/†r0j©jΆr1h‚j#†r2j©jІr3j2j»†r4j©X}r5†r6j2j†r7j2X            r8†r9j©jΆr:h‚XvariantOfOptionNoder;†r<j©jΆr=h‚j#†r>j©jІr?j2j»†r@hkX=rA†rBhkjA†rCj2j»†rDh‚XOption__Node__SomerE†rFj©jΆrGj©jІrHj2j»†rIhkX|rJ†rKhkjJ†rLj2j»†rMh‚XvariantOfOptionNoderN†rOj©jΆrPh‚j#†rQj©jІrRj2j»†rShkjA†rThkjA†rUj2j»†rVh‚XOption__Node__NonerW†rXj©jΆrYj©jІrZj©jІr[j2j†r\j2X    r]†r^j©j5†r_j2j†r`j2j†raj2X    rb†rchXaxiomrd†rej2j»†rfh‚Xax_isCounterStaterg†rhj2j»†rij©jÀ†rjj2j†rkj2X        rl†rmhXforallrn†roj2j»†rph‚j#†rqhkjÒ†rrj2j»†rshXRefrt†ruj2j»†rvhkjÒ†rwhkjÒ†rxj2X  ry†rzj©jÀ†r{j2j»†r|h‚XvariantOfOptionNoder}†r~j©jΆrh‚j#†r€j©jІrj2j»†r‚j©j5†rƒj2j†r„j2X            r…†r†h‚XisOptionNoder‡†rˆj©jΆr‰h‚j#†rŠj©jІr‹j2j»†rŒhkjA†rhkjA†rŽj2j»†rj©jΆrh‚XvariantOfOptionNoder‘†r’j©jΆr“h‚j#†r”j©jІr•j2j»†r–hkjA†r—hkjA†r˜j2j»†r™h‚XOption__Node__Somerš†r›j©jΆrœj©jІrj2j»†ržhkjJ†rŸhkjJ†r j2j†r¡j2X                r¢†r£h‚XvariantOfOptionNoder¤†r¥j©jΆr¦h‚j#†r§j©jІr¨j2j»†r©hkjA†rªhkjA†r«j2j»†r¬h‚XOption__Node__Noner­†r®j©jΆr¯j©jІr°j©jІr±j2j†r²j2X    r³†r´j©j5†rµj2j†r¶j©j5†r·j2j†r¸j2j†r¹hX	predicaterº†r»j2j»†r¼h‚XvalidOptionr½†r¾j©jΆr¿h‚XthisrÀ†rÁhkjÒ†rÂj2j»†rÃhXRefrĆrÅj©jІrÆj2j»†rÇj©jÀ†rÈj2j†rÉj2X    rʆrËh‚XisOptionNoder̆rÍj©jΆrÎh‚XthisrφrÐj©jІrÑj2j»†rÒhkX&rÓ†rÔhkjÓ†rÕj2j†rÖj2X    r׆rØh‚XvariantOfOptionNoderÙ†rÚj©jΆrÛh‚Xthisr܆rÝj©jІrÞj2j»†rßhkjA†ràhkjA†ráj2j»†râh‚XOption__Node__Somerã†räj©jΆråj©jІræj2j»†rçhkjA†rèhkjA†réhkX>rê†rëj2j»†rìj©jΆríj2j†rîj2X        rï†rðhXaccrñ†ròj©jΆróh‚Xthisrô†rõj©X.rö†r÷h‚XOption__Node__Some__1rø†rùj©X,rú†rûj2j»†rühXwriterý†rþj©jІrÿj2j»†rhkjÓ†rhkjÓ†rj2j†rj2X        r†rhXaccr†rj©jΆrh‚X	validNoder	†r
j©jΆrh‚Xthisr†r
j©jö†rh‚XOption__Node__Some__1r†rj©jІrj©jІrj2j†rj2X    r†rj©jІrj2j†rj©j5†rj2j†rj2j†rhXfieldr†rj2j»†rh‚XOption__Node__Some__1r†rhkjÒ†r j2j»†r!hXRefr"†r#j2j†r$j2j†r%hXfieldr&†r'j2j»†r(h‚XNode__vr)†r*hkjÒ†r+j2j»†r,hXIntr-†r.j2j†r/hXfieldr0†r1j2j»†r2h‚X
Node__nextr3†r4hkjÒ†r5j2j»†r6hXRefr7†r8j2j†r9j2j†r:hX	predicater;†r<j2j»†r=h‚X	validNoder>†r?j©jΆr@h‚XthisrA†rBhkjÒ†rCj2j»†rDhXRefrE†rFj©jІrGj2j»†rHj©jÀ†rIj2j†rJj2X    rK†rLhXaccrM†rNj©jΆrOh‚XthisrP†rQj©jö†rRh‚XNode__vrS†rTj©jІrUj2j»†rVhkjÓ†rWhkjÓ†rXj2j†rYj2X    rZ†r[hXaccr\†r]j©jΆr^h‚Xthisr_†r`j©jö†rah‚X
Node__nextrb†rcj©jІrdj2j»†rehkjÓ†rfhkjÓ†rgj2j†rhj2X    ri†rjhXaccrk†rlj©jΆrmh‚XvalidOptionrn†roj©jΆrph‚Xthisrq†rrj©jö†rsh‚X
Node__nextrt†ruj©jІrvj©jІrwj2j†rxj©j5†ryj2j†rzj2j†r{j2j†r|hXfunctionr}†r~j2j»†rh‚Xlengthr€†rj©jΆr‚h‚Xthisrƒ†r„hkjÒ†r…j2j»†r†hXRefr‡†rˆj©jІr‰hkjÒ†rŠj2j»†r‹hXIntrŒ†rj2j†rŽj2X    r†rhXrequiresr‘†r’j2j»†r“hXaccr”†r•j©jΆr–h‚X	validNoder—†r˜j©jΆr™h‚Xthisrš†r›j©jІrœj©jú†rj2j»†ržhXwriterŸ†r j©jІr¡j2j†r¢j2X    r£†r¤hXensuresr¥†r¦j2j»†r§hXresultr¨†r©j2j»†rªhkjê†r«hkjA†r¬j2j»†r­j“X1r®†r¯j2j†r°j©jÀ†r±j2j†r²j2X    r³†r´j©jΆrµhX	unfoldingr¶†r·j2j»†r¸hXaccr¹†rºj©jΆr»h‚X	validNoder¼†r½j©jΆr¾h‚Xthisr¿†rÀj©jІrÁj©jú†rÂj2j»†rÃhXwriterĆrÅj©jІrÆj2j»†rÇhXinrȆrÉj2j†rÊj2X        rˆrÌhX	unfoldingr͆rÎj2j»†rÏhXaccrІrÑj©jΆrÒh‚XvalidOptionrÓ†rÔj©jΆrÕh‚XthisrÖ†r×j©jö†rØh‚X
Node__nextrÙ†rÚj©jІrÛj©jІrÜj2j»†rÝhXinrÞ†rßj2j†ràj2X        rá†râj©jΆrãh‚XvariantOfOptionNoderä†råj©jΆræh‚Xthisrç†rèj©jö†réh‚X
Node__nextrê†rëj©jІrìj2j»†ríhkjA†rîhkjA†rïj2j»†rðh‚XOption__Node__Nonerñ†ròj©jΆrój©jІrôj©jІrõj2j»†röhkX?r÷†røj2X 
            rù†rúj“j®†rûj2j»†rühkjÒ†rýj2j»†rþj“j®†rÿj2j»†rhkX+r†rj2j»†rh‚Xlengthr†rj©jΆrh‚Xthisr†rj©jö†r	h‚X
Node__nextr
†rj©jö†rh‚XOption__Node__Some__1r
†rj©jІrj2j†rj2X    r†rj©jІrj2j†rj©j5†rj2j†rj2j†rhXfunctionr†rj2j»†rh‚XitemAtr†rj©jΆrh‚Xthisr†rhkjÒ†r j2j»†r!hXRefr"†r#j©jú†r$j2j»†r%h‚Xir&†r'hkjÒ†r(j2j»†r)hXIntr*†r+j©jІr,hkjÒ†r-j2j»†r.hXIntr/†r0j2j†r1j2X    r2†r3hXrequiresr4†r5j2j»†r6hXaccr7†r8j©jΆr9h‚X	validNoder:†r;j©jΆr<h‚Xthisr=†r>j©jІr?j©jú†r@j2j»†rAhXwriterB†rCj©jІrDj2j†rEj2X    rF†rGhXrequiresrH†rIj2j»†rJj“X0rK†rLj2j»†rMhkX<rN†rOhkjA†rPj2j»†rQh‚j&†rRj2j»†rShkjÓ†rThkjÓ†rUj2j»†rVh‚j&†rWj2j»†rXhkjN†rYj2j»†rZh‚Xlengthr[†r\j©jΆr]h‚Xthisr^†r_j©jІr`j2j†raj©jÀ†rbj2j†rcj2X    rd†rehX	unfoldingrf†rgj2j»†rhhXaccri†rjj©jΆrkh‚X	validNoderl†rmj©jΆrnh‚Xthisro†rpj©jІrqj©jú†rrj2j»†rshXwritert†ruj©jІrvj2j»†rwhXinrx†ryj2j»†rzhX	unfoldingr{†r|j2j»†r}hXaccr~†rj©jΆr€h‚XvalidOptionr†r‚j©jΆrƒh‚Xthisr„†r…j©jö†r†h‚X
Node__nextr‡†rˆj©jІr‰j©jІrŠj2j»†r‹hXinrŒ†rj2j»†rŽj©jΆrj2j†rj2X        r‘†r’j©jΆr“h‚j&†r”j2j»†r•hkjA†r–hkjA†r—j2j»†r˜j“jK†r™j©jІršj2j»†r›hkj÷†rœj2j†rj2X            rž†rŸh‚Xthisr †r¡j©jö†r¢h‚XNode__vr£†r¤hkjÒ†r¥j2j†r¦j2X            r§†r¨j©jΆr©h‚XvariantOfOptionNoderª†r«j©jΆr¬h‚Xthisr­†r®j©jö†r¯h‚X
Node__nextr°†r±j©jІr²j2j»†r³hkjA†r´hkjA†rµj2j»†r¶h‚XOption__Node__Somer·†r¸j©jΆr¹j©jІrºj©jІr»j2j»†r¼hkj÷†r½j2X 
                r¾†r¿h‚XitemAtrÀ†rÁj©jΆrÂh‚XthisrÆrÄj©jö†rÅh‚X
Node__nextrƆrÇj©jö†rÈh‚XOption__Node__Some__1rɆrÊj©jú†rËj2j»†rÌh‚j&†rÍhkX-rΆrÏj“j®†rÐj©jІrÑj2j»†rÒhkjÒ†rÓj2j»†rÔh‚XthisrÕ†rÖj©jö†r×h‚XNode__vr؆rÙj2j†rÚj2X    rÛ†rÜj©jІrÝj2j†rÞj©j5†rßj2j†ràj2j†ráhXfunctionrâ†rãj2j»†räh‚Xsumrå†ræj©jΆrçh‚Xthisrè†réh‚X$1rê†rëhkjÒ†rìj2j»†ríhXRefrî†rïj©jІrðhkjÒ†rñj2j»†ròhXIntró†rôj2j†rõj2X    rö†r÷hXrequiresrø†rùj2j»†rúhXaccrû†rüj©jΆrýh‚X	validNoderþ†rÿj©jΆrh‚Xthisr†rh‚X$1r†rj©jІrj©jú†rj2j»†rhXwriter†r	j©jІr
j2j†rj©jÀ†rj2j†r
j2X    r†rj©jΆrhX	unfoldingr†rj2j»†rhXaccr†rj©jΆrh‚X	validNoder†rj©jΆrh‚Xthisr†rh‚X$1r†rj©jІrj©jú†rj2j»†r hXwriter!†r"j©jІr#j2j»†r$hXinr%†r&j2j»†r'hX	unfoldingr(†r)j2j»†r*hXaccr+†r,j©jΆr-h‚XvalidOptionr.†r/j©jΆr0h‚Xthisr1†r2h‚X$1r3†r4j©jö†r5h‚X
Node__nextr6†r7j©jІr8j©jІr9j2j»†r:hXinr;†r<j2X
 
        r=†r>j©jΆr?h‚XvariantOfOptionNoder@†rAj©jΆrBh‚XthisrC†rDh‚X$1rE†rFj©jö†rGh‚X
Node__nextrH†rIj©jІrJj2j»†rKhkjA†rLhkjA†rMj2j»†rNh‚XOption__Node__NonerO†rPj©jΆrQj©jІrRj©jІrSj2j»†rThkj÷†rUj2j»†rVh‚XthisrW†rXh‚X$1rY†rZj©jö†r[h‚XNode__vr\†r]j2j»†r^hkjÒ†r_j2j»†r`h‚Xthisra†rbh‚X$1rc†rdj©jö†reh‚XNode__vrf†rgj2j»†rhhkj†rij2j»†rjh‚Xsumrk†rlj©jΆrmh‚Xthisrn†roh‚X$1rp†rqj©jö†rrh‚X
Node__nextrs†rtj©jö†ruh‚XOption__Node__Some__1rv†rwj©jІrxj©jІryj2j†rzj©j5†r{j2j†r|j2j†r}hXmethodr~†rj2j»†r€h‚Xappendr†r‚j©jΆrƒh‚Xthisr„†r…hkjÒ†r†j2j»†r‡hXRefrˆ†r‰j©jú†rŠj2j»†r‹h‚XvalrŒ†rhkjÒ†rŽj2j»†rhXIntr†r‘j©jІr’j2j†r“j2X    r”†r•hXrequiresr–†r—j2j»†r˜hXaccr™†ršj©jΆr›h‚X	validNoderœ†rj©jΆržh‚XthisrŸ†r j©jІr¡j©jú†r¢j2j»†r£hXwriter¤†r¥j©jІr¦j2j†r§j2X    r¨†r©hXensuresrª†r«j2j»†r¬hXaccr­†r®j©jΆr¯h‚X	validNoder°†r±j©jΆr²h‚Xthisr³†r´j©jІrµj©jú†r¶j2j»†r·hXwriter¸†r¹j©jІrºj2j»†r»jˆX/*r¼†r½jˆX POST1 r¾†r¿jˆX*/rÀ†rÁj2j†rÂj2X    rÆrÄhXensuresrņrÆj2j»†rÇh‚XlengthrȆrÉj©jΆrÊh‚XthisrˆrÌj©jІrÍj2j»†rÎhkjA†rÏhkjA†rÐj2j»†rÑj©jΆrÒhXoldrÓ†rÔj©jΆrÕh‚XlengthrÖ†r×j©jΆrØh‚XthisrÙ†rÚj©jІrÛj©jІrÜj2j»†rÝhkj†rÞj2j»†rßj“j®†ràj©jІráj2j»†râjˆX/*rã†räjˆX POST2 rå†ræjˆX*/rç†rèj2j†réj2X    rê†rëhXensuresrì†ríj2j»†rîj©jΆrïhXforallrð†rñj2j»†ròh‚j&†róhkjÒ†rôj2j»†rõhXIntrö†r÷j2j»†røhkjÒ†rùhkjÒ†rúj2j»†rûj©jΆrüj“jK†rýj2j»†rþhkjN†rÿhkjA†rj2j»†rh‚j&†rj2j»†rhkjÓ†rhkjÓ†rj2j»†rh‚j&†rj2j»†rhkjN†r	j2j»†r
hXoldr†rj©jΆr
h‚Xlengthr†rj©jΆrh‚Xthisr†rj©jІrj©jІrj©jІrj2j»†rhkjA†rhkjA†rhkjê†rj2j»†rj©jΆrh‚XitemAtr†rj©jΆrh‚Xthisr†r j©jú†r!j2j»†r"h‚j&†r#j©jІr$j2j»†r%hkjA†r&hkjA†r'j2j»†r(hXoldr)†r*j©jΆr+h‚XitemAtr,†r-j©jΆr.h‚Xthisr/†r0j©jú†r1j2j»†r2h‚j&†r3j©jІr4j©jІr5j©jІr6j©jІr7j2j»†r8jˆX/*r9†r:jˆX POST3 r;†r<jˆX*/r=†r>j2j†r?j2X    r@†rAhXensuresrB†rCj2j»†rDh‚XitemAtrE†rFj©jΆrGh‚XthisrH†rIj©jú†rJj2j»†rKh‚XlengthrL†rMj©jΆrNh‚XthisrO†rPj©jІrQj2j»†rRhkjΆrSj2j»†rTj“j®†rUj©jІrVj2j»†rWhkjA†rXhkjA†rYj2j»†rZh‚Xvalr[†r\j2j»†r]jˆX/*r^†r_jˆX POST4 r`†rajˆX*/rb†rcj2j†rdj2X    re†rfhXensuresrg†rhj2j»†rihXtruerj†rkj2j»†rlhkjA†rmhkjA†rnhkjê†roj2j»†rphXtruerq†rrj2j†rsj©jÀ†rtj2j†ruj2X    rv†rwhXvarrx†ryj2j»†rzh‚Xtmp_noder{†r|hkjÒ†r}j2j»†r~hXRefr†r€j2j†rj2X    r‚†rƒhXvarr„†r…j2j»†r†h‚X
tmp_optionr‡†rˆhkjÒ†r‰j2j»†rŠhXRefr‹†rŒj2j†rj2j†rŽj2X    r†rhXunfoldr‘†r’j2j»†r“hXaccr”†r•j©jΆr–h‚X	validNoder—†r˜j©jΆr™h‚Xthisrš†r›j©jІrœj©jú†rj2j»†ržhXwriterŸ†r j©jІr¡j2j†r¢j2X    r£†r¤hXunfoldr¥†r¦j2j»†r§hXaccr¨†r©j©jΆrªh‚XvalidOptionr«†r¬j©jΆr­h‚Xthisr®†r¯j©jö†r°h‚X
Node__nextr±†r²j©jІr³j©jú†r´j2j»†rµhXwriter¶†r·j©jІr¸j2j†r¹j2j†rºj2X    r»†r¼hXifr½†r¾j2j»†r¿j©jΆrÀh‚XvariantOfOptionNoderÁ†rÂj©jΆrÃh‚XthisrĆrÅj©jö†rÆh‚X
Node__nextrdžrÈj©jІrÉj2j»†rÊhkjA†rËhkjA†rÌj2j»†rÍh‚XOption__Node__NonerΆrÏj©jΆrÐj©jІrÑj©jІrÒj2j»†rÓj©jÀ†rÔj2j†rÕj2X        rÖ†r×h‚Xtmp_noder؆rÙj2j»†rÚhkjÒ†rÛhkjA†rÜj2j»†rÝhXnewrÞ†rßj©jΆràh‚X
Node__nextrá†râj©jú†rãj2j»†räh‚XNode__vrå†ræj©jІrçj2j†rèj2X        ré†rêh‚Xtmp_noderë†rìj©jö†ríh‚X
Node__nextrî†rïj2j»†rðhkjÒ†rñhkjA†ròj2j»†róhXnullrô†rõj2j†röj2X        r÷†røh‚Xtmp_noderù†rúj©jö†rûh‚XNode__vrü†rýj2j»†rþhkjÒ†rÿe(hkjA†r	j2j»†r	h‚Xvalr	†r	j2j†r	j2j†r	j2X        r	†r	hXassumer	†r		j2j»†r
	h‚XvariantOfOptionNoder	†r	j©jΆr
	h‚Xtmp_noder	†r	j©jö†r	h‚X
Node__nextr	†r	j©jІr	j2j»†r	hkjA†r	hkjA†r	j2j»†r	h‚XOption__Node__Noner	†r	j©jΆr	j©jІr	j2j†r	j2X        r	†r	hXfoldr	†r 	j2j»†r!	hXaccr"	†r#	j©jΆr$	h‚XvalidOptionr%	†r&	j©jΆr'	h‚Xtmp_noder(	†r)	j©jö†r*	h‚X
Node__nextr+	†r,	j©jІr-	j©jІr.	j2j†r/	j2X        r0	†r1	hXfoldr2	†r3	j2j»†r4	hXaccr5	†r6	j©jΆr7	h‚X	validNoder8	†r9	j©jΆr:	h‚Xtmp_noder;	†r<	j©jІr=	j©jú†r>	j2j»†r?	hXwriter@	†rA	j©jІrB	j2j†rC	j2j†rD	j2X        rE	†rF	h‚X
tmp_optionrG	†rH	j2j»†rI	hkjÒ†rJ	hkjA†rK	j2j»†rL	hXnewrM	†rN	j©jΆrO	h‚XOption__Node__Some__1rP	†rQ	j©jІrR	j2j†rS	j2X        rT	†rU	h‚X
tmp_optionrV	†rW	j©jö†rX	h‚XOption__Node__Some__1rY	†rZ	j2j»†r[	hkjÒ†r\	hkjA†r]	j2j»†r^	h‚Xtmp_noder_	†r`	j2j†ra	j2X        rb	†rc	hXassumerd	†re	j2j»†rf	h‚XvariantOfOptionNoderg	†rh	j©jΆri	h‚X
tmp_optionrj	†rk	j©jІrl	j2j»†rm	hkjA†rn	hkjA†ro	j2j»†rp	h‚XOption__Node__Somerq	†rr	j©jΆrs	j©jІrt	j2j†ru	j2X        rv	†rw	hXfoldrx	†ry	j2j»†rz	hXaccr{	†r|	j©jΆr}	h‚XvalidOptionr~	†r	j©jΆr€	h‚X
tmp_optionr	†r‚	j©jІrƒ	j©jІr„	j2j†r…	j2j†r†	j2X        r‡	†rˆ	h‚Xthisr‰	†rŠ	j©jö†r‹	h‚X
Node__nextrŒ	†r	j2j»†rŽ	hkjÒ†r	hkjA†r	j2j»†r‘	h‚X
tmp_optionr’	†r“	j2j†r”	j2j†r•	j2X
 
        r–	†r—	hXunfoldr˜	†r™	j2j»†rš	h‚XvalidOptionr›	†rœ	j©jΆr	h‚X
tmp_optionrž	†rŸ	j©jІr 	j2j†r¡	j2X        r¢	†r£	hXassertr¤	†r¥	j2j»†r¦	h‚Xlengthr§	†r¨	j©jΆr©	h‚Xtmp_noderª	†r«	j©jІr¬	j2j»†r­	hkjA†r®	hkjA†r¯	j2j»†r°	j“j®†r±	j2j»†r²	jˆX/*r³	†r´	jˆX2 TODO: Required by Silicon, POST2 fails otherwise rµ	†r¶	jˆX*/r·	†r¸	j2j†r¹	j2X        rº	†r»	hXassertr¼	†r½	j2j»†r¾	h‚XitemAtr¿	†rÀ	j©jΆrÁ	h‚Xtmp_noderÂ	†rÃ	j©jú†rÄ	j2j»†rÅ	j“jK†rÆ	j©jІrÇ	j2j»†rÈ	hkjA†rÉ	hkjA†rÊ	j2j»†rË	h‚XvalrÌ	†rÍ	j2j»†rÎ	jˆX/*rÏ	†rÐ	jˆX2 TODO: Required by Silicon, POST4 fails otherwise rÑ	†rÒ	jˆX*/rÓ	†rÔ	j2j†rÕ	j2X        rÖ	†r×	hXfoldrØ	†rÙ	j2j»†rÚ	h‚XvalidOptionrÛ	†rÜ	j©jΆrÝ	h‚X
tmp_optionrÞ	†rß	j©jІrà	j2j†rá	j2X    râ	†rã	j©j5†rä	j2j»†rå	hXelseræ	†rç	j2j»†rè	j©jÀ†ré	j2j†rê	j2X        rë	†rì	h‚Xappendrí	†rî	j©jΆrï	h‚Xthisrð	†rñ	j©jö†rò	h‚X
Node__nextró	†rô	j©jö†rõ	h‚XOption__Node__Some__1rö	†r÷	j©jú†rø	j2j»†rù	h‚Xvalrú	†rû	j©jІrü	j2j†rý	j2X        rþ	†rÿ	hXfoldr
†r
j2jȠr
hXaccr
†r
j©jΆr
h‚XvalidOptionr
†r
j©jΆr
h‚Xthisr	
†r

j©jö†r
h‚X
Node__nextr
†r
j©jІr
j©jú†r
j2jȠr
hXwriter
†r
j©jІr
j2j†r
j2X    r
†r
j©j5†r
j2j†r
j2j†r
j2X    r
†r
hXfoldr
†r
j2jȠr
hXaccr
†r 
j©jΆr!
h‚X	validNoder"
†r#
j©jΆr$
h‚Xthisr%
†r&
j©jІr'
j©jú†r(
j2jȠr)
hXwriter*
†r+
j©jІr,
j2j†r-
j©j5†r.
j2j†r/
j2j†r0
hXmethodr1
†r2
j2jȠr3
h‚Xprependr4
†r5
j©jΆr6
h‚Xtailr7
†r8
hkjÒ†r9
j2jȠr:
hXRefr;
†r<
j©jú†r=
j2jȠr>
h‚Xvalr?
†r@
hkjÒ†rA
j2jȠrB
hXIntrC
†rD
j©jІrE
j2jȠrF
hXreturnsrG
†rH
j2jȠrI
j©jΆrJ
h‚XresrK
†rL
hkjÒ†rM
j2jȠrN
hXRefrO
†rP
j©jІrQ
j2j†rR
j2X    rS
†rT
hXrequiresrU
†rV
j2jȠrW
hXaccrX
†rY
j©jΆrZ
h‚X	validNoder[
†r\
j©jΆr]
h‚Xtailr^
†r_
j©jІr`
j©jІra
j2j†rb
j2X    rc
†rd
hXensuresre
†rf
j2jȠrg
hXaccrh
†ri
j©jΆrj
h‚X	validNoderk
†rl
j©jΆrm
h‚Xresrn
†ro
j©jІrp
j©jІrq
j2j†rr
j2X    rs
†rt
jiX//ensures acc(validNode(tail))
ru
†rv
j2X    rw
†rx
hXensuresry
†rz
j2jȠr{
h‚Xlengthr|
†r}
j©jΆr~
h‚Xresr
†r€
j©jІr
j2j»†r‚
hkjA†rƒ
hkjA†r„
j2j»†r…
hXoldr†
†r‡
j©jΆrˆ
h‚Xlengthr‰
†rŠ
j©jΆr‹
h‚XtailrŒ
†r
j©jІrŽ
j©jІr
j2j»†r
hkj†r‘
j2j»†r’
j“j®†r“
j2j†r”
j2j†r•
j2X    r–
†r—
hXensuresr˜
†r™
j2j»†rš
j©jΆr›
hXforallrœ
†r
j2j»†rž
h‚j&†rŸ
hkjÒ†r 
j2j»†r¡
hXIntr¢
†r£
j2j»†r¤
hkjÒ†r¥
hkjÒ†r¦
j2j»†r§
j©jΆr¨
j“j®†r©
j2j»†rª
hkjN†r«
hkjA†r¬
j2j»†r­
h‚j&†r®
j2j»†r¯
hkjÓ†r°
hkjÓ†r±
j2j»†r²
h‚j&†r³
j2j»†r´
hkjN†rµ
j2j»†r¶
h‚Xlengthr·
†r¸
j©jΆr¹
h‚Xresrº
†r»
j©jІr¼
j©jІr½
j2j»†r¾
hkjA†r¿
hkjA†rÀ
hkjê†rÁ
j2j»†rÂ
j©jΆrÃ
h‚XitemAtrÄ
†rÅ
j©jΆrÆ
h‚XresrÇ
†rÈ
j©jú†rÉ
j2j»†rÊ
h‚j&†rË
j©jІrÌ
j2j»†rÍ
hkjA†rÎ
hkjA†rÏ
j2j»†rÐ
hXoldrÑ
†rÒ
j©jΆrÓ
h‚XitemAtrÔ
†rÕ
j©jΆrÖ
h‚Xtailr×
†rØ
j©jú†rÙ
j2j»†rÚ
h‚j&†rÛ
hkjΆrÜ
j“j®†rÝ
j©jІrÞ
j©jІrß
j©jІrà
j©jІrá
j2j»†râ
jˆX/*rã
†rä
jˆX POST3 rå
†ræ
jˆX*/rç
†rè
j2j†ré
j2X    rê
†rë
hXensuresrì
†rí
j2j»†rî
h‚XitemAtrï
†rð
j©jΆrñ
h‚Xresrò
†ró
j©jú†rô
j2j»†rõ
j“jK†rö
j©jІr÷
j2j»†rø
hkjA†rù
hkjA†rú
j2j»†rû
h‚Xvalrü
†rý
j2j†rþ
j©jÀ†rÿ
j2j†rj2X    r†rhXvarr†rj2j»†rh‚X
tmp_optionr†rhkjÒ†rj2j»†r	hXRefr
†rj2j†rj2j†r
j2X    r†rh‚Xresr†rj2j»†rhkjÒ†rhkjA†rj2j»†rhXnewr†rj©jΆrh‚XNode__vr†rj©jú†rj2j»†rh‚X
Node__nextr†rj©jІrj2j†r j2X    r!†r"h‚Xresr#†r$j©jö†r%h‚XNode__vr&†r'j2j»†r(hkjÒ†r)hkjA†r*j2j»†r+h‚Xvalr,†r-j2j†r.j2j†r/j2X    r0†r1h‚X
tmp_optionr2†r3j2j»†r4hkjÒ†r5hkjA†r6j2j»†r7hXnewr8†r9j©jΆr:h‚XOption__Node__Some__1r;†r<j©jІr=j2j†r>j2X    r?†r@h‚X
tmp_optionrA†rBj©jö†rCh‚XOption__Node__Some__1rD†rEj2j»†rFhkjÒ†rGhkjA†rHj2j»†rIh‚XtailrJ†rKj2j†rLj2X    rM†rNhXassumerO†rPj2j»†rQh‚XvariantOfOptionNoderR†rSj©jΆrTh‚X
tmp_optionrU†rVj©jІrWj2j»†rXhkjA†rYhkjA†rZj2j»†r[h‚XOption__Node__Somer\†r]j©jΆr^j©jІr_j2j†r`j2j†raj2X    rb†rch‚Xresrd†rej©jö†rfh‚X
Node__nextrg†rhj2j»†rihkjÒ†rjhkjA†rkj2j»†rlh‚X
tmp_optionrm†rnj2j†roj2j†rpj2X    rq†rrhXassertrs†rtj2j»†ruhXaccrv†rwj©jΆrxh‚X	validNodery†rzj©jΆr{h‚Xtailr|†r}j©jІr~j©jІrj2j†r€j2X    r†r‚hXfoldrƒ†r„j2j»†r…hXaccr††r‡j©jΆrˆh‚XvalidOptionr‰†rŠj©jΆr‹h‚XresrŒ†rj©jö†rŽh‚X
Node__nextr†rj©jІr‘j©jІr’j2j†r“j2X    r”†r•hXfoldr–†r—j2j»†r˜hXaccr™†ršj©jΆr›h‚X	validNoderœ†rj©jΆržh‚XresrŸ†r j©jІr¡j©jІr¢j2j†r£j©j5†r¤j2j†r¥j2j†r¦hXmethodr§†r¨j2j»†r©h‚Xlength_iterrª†r«j©jΆr¬h‚Xlistr­†r®hkjÒ†r¯j2j»†r°hXRefr±†r²j©jІr³j2j»†r´hXreturnsrµ†r¶j2j»†r·j©jΆr¸h‚Xlenr¹†rºhkjÒ†r»j2j»†r¼hXIntr½†r¾j©jІr¿j2j†rÀj2X    rÁ†rÂhXrequiresrÆrÄj2j»†rÅhXaccrƆrÇj©jΆrÈh‚X	validNoderɆrÊj©jΆrËh‚Xlistr̆rÍj©jІrÎj©jú†rÏj2j»†rÐhXwriterцrÒj©jІrÓj2j†rÔj2X    rÕ†rÖhXensuresr׆rØj2j»†rÙhXoldrÚ†rÛj©jΆrÜh‚Xlengthr݆rÞj©jΆrßh‚Xlistrà†ráj©jІrâj©jІrãj2j»†rähkjA†råhkjA†ræj2j»†rçh‚Xlenrè†réj2j†rêj2X    rë†rìjiX*// TODO we have to preserve this property
rí†rîj2X    rï†rðjiX // ensures acc(validNode(list))
rñ†ròj©jÀ†rój2j†rôj2X    rõ†röhXvarr÷†røj2j»†rùh‚Xcurrrú†rûhkjÒ†rüj2j»†rýhXRefrþ†rÿj2j»†rhkjÒ†rhkjA†rj2j»†rh‚Xlistr†rj2j†rj2X    r†rhXvarr	†r
j2j»†rh‚Xtmpr†r
hkjÒ†rj2j»†rhXRefr†rj2j»†rhkjÒ†rhkjA†rj2j»†rh‚Xlistr†rj2j†rj2j†rj2X    r†rh‚Xlenr†rj2j»†rhkjÒ†rhkjA†r j2j»†r!j“j®†r"j2j†r#j2j†r$j2X    r%†r&hXunfoldr'†r(j2j»†r)hXaccr*†r+j©jΆr,h‚X	validNoder-†r.j©jΆr/h‚Xcurrr0†r1j©jІr2j©jІr3j2j†r4j2X    r5†r6hXunfoldr7†r8j2j»†r9hXaccr:†r;j©jΆr<h‚XvalidOptionr=†r>j©jΆr?h‚Xcurrr@†rAj©jö†rBh‚X
Node__nextrC†rDj©jІrEj©jІrFj2j†rGj2X    rH†rIhXwhilerJ†rKj©jΆrLh‚XvariantOfOptionNoderM†rNj©jΆrOh‚XcurrrP†rQj©jö†rRh‚X
Node__nextrS†rTj©jІrUj2j»†rVhkjA†rWhkjA†rXj2j»†rYh‚XOption__Node__SomerZ†r[j©jΆr\j©jІr]j©jІr^j2j†r_j2X        r`†rahX	invariantrb†rcj2j»†rdhXaccre†rfj©jΆrgh‚Xcurrrh†rij©jö†rjh‚XNode__vrk†rlj©jІrmj2j†rnj2X        ro†rphX	invariantrq†rrj2j»†rshXaccrt†ruj©jΆrvh‚Xcurrrw†rxj©jö†ryh‚X
Node__nextrz†r{j©jІr|j2j†r}j2X        r~†rhX	invariantr€†rj2j»†r‚j©jΆrƒh‚XvariantOfOptionNoder„†r…j©jΆr†h‚Xcurrr‡†rˆj©jö†r‰h‚X
Node__nextrŠ†r‹j©jІrŒj2j»†rhkjA†rŽhkjA†rj2j»†rh‚XOption__Node__Somer‘†r’j©jΆr“j©jІr”j2j»†r•hkjA†r–hkjA†r—hkjê†r˜j2j»†r™j©jΆršj2j†r›j2X            rœ†rhXaccrž†rŸj©jΆr h‚Xcurrr¡†r¢j©jö†r£h‚X
Node__nextr¤†r¥j©jö†r¦h‚XOption__Node__Some__1r§†r¨j©jú†r©j2j»†rªhXwriter«†r¬j©jІr­j2j»†r®hkjÓ†r¯hkjÓ†r°j2j†r±j2X            r²†r³hXaccr´†rµj©jΆr¶h‚X	validNoder·†r¸j©jΆr¹h‚Xcurrrº†r»j©jö†r¼h‚X
Node__nextr½†r¾j©jö†r¿h‚XOption__Node__Some__1rÀ†rÁj©jІrÂj©jІrÃj2j†rÄj2X        rÅ†rÆj©jІrÇj©jІrÈj2j†rÉj2X        rÊ†rËhX	invariantrÌ†rÍj2j»†rÎj©jΆrÏh‚XvariantOfOptionNoderÐ†rÑj©jΆrÒh‚XcurrrÓ†rÔj©jö†rÕh‚X
Node__nextrÖ†r×j©jІrØj2j»†rÙhkjA†rÚhkjA†rÛj2j»†rÜh‚XOption__Node__SomerÝ†rÞj©jΆrßj©jІràj2j»†ráhkjA†râhkjA†rãhkjê†räj2j»†råh‚Xlenræ†rçj2j»†rèhkj†réj2j»†rêh‚Xlengthrë†rìj©jΆríh‚Xcurrrî†rïj©jö†rðh‚X
Node__nextrñ†ròj©jö†róh‚XOption__Node__Some__1rô†rõj©jІröj2j»†r÷hkjA†røhkjA†rùj2j»†rúhXoldrû†rüj©jΆrýh‚Xlengthrþ†rÿj©jΆr
h‚Xlistr
†r
j©jІr
j©jІr
j©jІr
j2j†r
j2X        r
†r
hX	invariantr	
†r

j2jȠr
j©jΆr
h‚XvariantOfOptionNoder

†r
j©jΆr
h‚Xcurrr
†r
j©jö†r
h‚X
Node__nextr
†r
j©jІr
j2jȠr
hkjA†r
hkjA†r
j2jȠr
h‚XOption__Node__Noner
†r
j©jΆr
j©jІr
j2jȠr
hkjA†r
hkjA†r 
hkjê†r!
j2jȠr"
h‚Xlenr#
†r$
j2jȠr%
hkjA†r&
hkjA†r'
j2jȠr(
hXoldr)
†r*
j©jΆr+
h‚Xlengthr,
†r-
j©jΆr.
h‚Xlistr/
†r0
j©jІr1
j©jІr2
j©jІr3
j2j†r4
j2X    r5
†r6
j©jÀ†r7
j2j†r8
j2X        r9
†r:
hXassertr;
†r<
j2jȠr=
hXaccr>
†r?
j©jΆr@
h‚X	validNoderA
†rB
j©jΆrC
h‚XcurrrD
†rE
j©jö†rF
h‚X
Node__nextrG
†rH
j©jö†rI
h‚XOption__Node__Some__1rJ
†rK
j©jІrL
j©jІrM
j2j†rN
j2X        rO
†rP
h‚XlenrQ
†rR
j2jȠrS
hkjÒ†rT
hkjA†rU
j2jȠrV
h‚XlenrW
†rX
j2jȠrY
hkj†rZ
j2jȠr[
j“j®†r\
j2j†r]
j2X        r^
†r_
h‚Xtmpr`
†ra
j2jȠrb
hkjÒ†rc
hkjA†rd
j2jȠre
h‚Xcurrrf
†rg
j2j†rh
j2X        ri
†rj
h‚Xcurrrk
†rl
j2jȠrm
hkjÒ†rn
hkjA†ro
j2jȠrp
h‚Xcurrrq
†rr
j©jö†rs
h‚X
Node__nextrt
†ru
j©jö†rv
h‚XOption__Node__Some__1rw
†rx
j2j†ry
j2X        rz
†r{
hXunfoldr|
†r}
j2jȠr~
hXaccr
†r€
j©jΆr
h‚X	validNoder‚
†rƒ
j©jΆr„
h‚Xcurrr…
†r†
j©jІr‡
j©jІrˆ
j2j†r‰
j2X        rŠ
†r‹
hXunfoldrŒ
†r
j2j»†rŽ
hXaccr
†r
j©jΆr‘
h‚XvalidOptionr’
†r“
j©jΆr”
h‚Xcurrr•
†r–
j©jö†r—
h‚X
Node__nextr˜
†r™
j©jІrš
j©jІr›
j2j†rœ
j2X    r
†rž
j©j5†rŸ
j2j†r 
j©j5†r¡
j2j†r¢
j2j†r£
hXmethodr¤
†r¥
j2j»†r¦
h‚Xt1r§
†r¨
j©jΆr©
j©jІrª
j2j†r«
j©jÀ†r¬
j2j†r­
j2X    r®
†r¯
hXvarr°
†r±
j2j»†r²
h‚Xlr³
†r´
hkjÒ†rµ
j2j»†r¶
hXRefr·
†r¸
j2j†r¹
j2j†rº
j2X    r»
†r¼
h‚j³
†r½
j2j»†r¾
hkjÒ†r¿
hkjA†rÀ
j2j»†rÁ
hXnewrÂ
†rÃ
j©jΆrÄ
h‚XNode__vrÅ
†rÆ
j©jú†rÇ
j2j»†rÈ
h‚X
Node__nextrÉ
†rÊ
j©jІrË
j2j†rÌ
j2X    rÍ
†rÎ
h‚j³
†rÏ
j©jö†rÐ
h‚X
Node__nextrÑ
†rÒ
j2j»†rÓ
hkjÒ†rÔ
hkjA†rÕ
j2j»†rÖ
hXnullr×
†rØ
j2j†rÙ
j2X    rÚ
†rÛ
h‚j³
†rÜ
j©jö†rÝ
h‚XNode__vrÞ
†rß
j2j»†rà
hkjÒ†rá
hkjA†râ
j2j»†rã
j“j®†rä
j2j†rå
j2X    ræ
†rç
hXassumerè
†ré
j2j»†rê
h‚XvariantOfOptionNoderë
†rì
j©jΆrí
h‚j³
†rî
j©jö†rï
h‚X
Node__nextrð
†rñ
j©jІrò
j2j»†ró
hkjA†rô
hkjA†rõ
j2j»†rö
h‚XOption__Node__Noner÷
†rø
j©jΆrù
j©jІrú
j2j†rû
j2j†rü
j2X    rý
†rþ
hXfoldrÿ
†rj2j»†rh‚XvalidOptionr†rj©jΆrh‚j³
†rj©jö†rh‚X
Node__nextr†rj©jІr	j2j†r
j2X    r†rhXfoldr
†rj2j»†rh‚X	validNoder†rj©jΆrh‚j³
†rj©jІrj2j†rj2j†rj2X    r†rhXassertr†rj2j»†rh‚Xlengthr†rj©jΆrh‚j³
†rj©jІr j2j»†r!hkjA†r"hkjA†r#j2j»†r$j“j®†r%j2j†r&j2X    r'†r(hXassertr)†r*j2j»†r+h‚XitemAtr,†r-j©jΆr.h‚j³
†r/j©jú†r0j2j»†r1j“jK†r2j©jІr3j2j»†r4hkjA†r5hkjA†r6j2j»†r7j“j®†r8j2j†r9j2j†r:j2X    r;†r<h‚Xappendr=†r>j©jΆr?h‚j³
†r@j©jú†rAj2j»†rBj“X7rC†rDj©jІrEj2j†rFe(j2X    rG†rHhXassertrI†rJj2j»†rKh‚XitemAtrL†rMj©jΆrNh‚j³
†rOj©jú†rPj2j»†rQj“j®†rRj©jІrSj2j»†rThkjA†rUhkjA†rVj2j»†rWj“jC†rXj2j†rYj2X    rZ†r[hXassertr\†r]j2j»†r^h‚XitemAtr_†r`j©jΆrah‚j³
†rbj©jú†rcj2j»†rdj“jK†rej©jІrfj2j»†rghkjA†rhhkjA†rij2j»†rjj“j®†rkj2j†rlj2X    rm†rnhXassertro†rpj2j»†rqh‚Xlengthrr†rsj©jΆrth‚j³
†ruj©jІrvj2j»†rwhkjA†rxhkjA†ryj2j»†rzj“X2r{†r|j2j†r}j2j†r~j2X    r†r€h‚j³
†rj2j»†r‚hkjÒ†rƒhkjA†r„j2j»†r…h‚Xprependr††r‡j©jΆrˆh‚j³
†r‰j©jú†rŠj2j»†r‹j“X10rŒ†rj©jІrŽj2j†rj2X    r†r‘hXassertr’†r“j2j»†r”h‚XitemAtr•†r–j©jΆr—h‚j³
†r˜j©jú†r™j2j»†ršj“j{†r›j©jІrœj2j»†rhkjA†ržhkjA†rŸj2j»†r j“jC†r¡j2j†r¢j2X    r£†r¤hXassertr¥†r¦j2j»†r§h‚XitemAtr¨†r©j©jΆrªh‚j³
†r«j©jú†r¬j2j»†r­j“j®†r®j©jІr¯j2j»†r°hkjA†r±hkjA†r²j2j»†r³j“j®†r´j2j†rµj2X    r¶†r·hXassertr¸†r¹j2j»†rºh‚XitemAtr»†r¼j©jΆr½h‚j³
†r¾j©jú†r¿j2j»†rÀj“jK†rÁj©jІrÂj2j»†rÃhkjA†rÄhkjA†rÅj2j»†rÆj“X10rdžrÈj2j†rÉj2X    rʆrËhXassertr̆rÍj2j»†rÎh‚XlengthrφrÐj©jΆrÑh‚j³
†rÒj©jІrÓj2j»†rÔhkjA†rÕhkjA†rÖj2j»†r×j“X3r؆rÙj2j†rÚj2j†rÛj2X    r܆rÝjiX//assert sum(l) == 18
rÞ†rßj©j5†ràj2j†ráj2j†râhXmethodrã†räj2j»†råh‚Xt2ræ†rçj©jΆrèh‚j³
†réhkjÒ†rêj2j»†rëhXRefrì†ríj©jІrîj2j»†rïhXreturnsrð†rñj2j»†ròj©jΆróh‚Xresrô†rõhkjÒ†röj2j»†r÷hXRefrø†rùj©jІrúj2j†rûj2X    rü†rýhXrequiresrþ†rÿj2j»†rhXaccr†rj©jΆrh‚X	validNoder†rj©jΆrh‚j³
†rj©jІrj©jú†r	j2j»†r
hXwriter†rj©jІr
j2j†rj2X    r†rhXensuresr†rj2j»†rhXaccr†rj©jΆrh‚X	validNoder†rj©jΆrh‚Xresr†rj©jІrj©jú†rj2j»†rhXwriter†r j©jІr!j2j†r"j2X    r#†r$hXensuresr%†r&j2j»†r'h‚Xlengthr(†r)j©jΆr*h‚Xresr+†r,j©jІr-j2j»†r.hkjê†r/j2j»†r0hXoldr1†r2j©jΆr3h‚Xlengthr4†r5j©jΆr6h‚j³
†r7j©jІr8j©jІr9j2j†r:j©jÀ†r;j2j†r<j2X    r=†r>h‚Xresr?†r@j2j»†rAhkjÒ†rBhkjA†rCj2j»†rDh‚XprependrE†rFj©jΆrGh‚j³
†rHj©jú†rIj2j»†rJj“X10rK†rLj©jІrMj2j†rNj©j5†rOj2j†rPe.