activeandtrueXmarkXactiveandfalseYmarkfalseactiveiftrueXYmarkXactiveiffalseXYmarkYactiveadd0XmarkXactiveaddsXYmarksaddXYactivefirst0XmarknilactivefirstsXconsYZmarkconsYfirstXZactivefromXmarkconsXfromsXactiveandX1X2andactiveX1X2activeifX1X2X3ifactiveX1X2X3activeaddX1X2addactiveX1X2activefirstX1X2firstactiveX1X2activefirstX1X2firstX1activeX2andmarkX1X2markandX1X2ifmarkX1X2X3markifX1X2X3addmarkX1X2markaddX1X2firstmarkX1X2markfirstX1X2firstX1markX2markfirstX1X2properandX1X2andproperX1properX2propertrueoktrueproperfalseokfalseproperifX1X2X3ifproperX1properX2properX3properaddX1X2addproperX1properX2proper0ok0propersXsproperXproperfirstX1X2firstproperX1properX2properniloknilproperconsX1X2consproperX1properX2properfromXfromproperXandokX1okX2okandX1X2ifokX1okX2okX3okifX1X2X3addokX1okX2okaddX1X2sokXoksXfirstokX1okX2okfirstX1X2consokX1okX2okconsX1X2fromokXokfromXtopmarkXtopproperXtopokXtopactiveXactiveaddsXYaddXYactiveaddsXYsaddXYactivefirstsXconsYZfirstXZactivefirstsXconsYZconsYfirstXZactivefromXsXactivefromXfromsXactivefromXconsXfromsXactiveandX1X2activeX1activeandX1X2andactiveX1X2activeifX1X2X3activeX1activeifX1X2X3ifactiveX1X2X3activeaddX1X2activeX1activeaddX1X2addactiveX1X2activefirstX1X2activeX1activefirstX1X2firstactiveX1X2activefirstX1X2activeX2activefirstX1X2firstX1activeX2andmarkX1X2andX1X2ifmarkX1X2X3ifX1X2X3addmarkX1X2addX1X2firstmarkX1X2firstX1X2firstX1markX2firstX1X2properandX1X2properX2properandX1X2properX1properandX1X2andproperX1properX2properifX1X2X3properX3properifX1X2X3properX2properifX1X2X3properX1properifX1X2X3ifproperX1properX2properX3properaddX1X2properX2properaddX1X2properX1properaddX1X2addproperX1properX2propersXproperXpropersXsproperXproperfirstX1X2properX2properfirstX1X2properX1properfirstX1X2firstproperX1properX2properconsX1X2properX2properconsX1X2properX1properconsX1X2consproperX1properX2properfromXproperXproperfromXfromproperXandokX1okX2andX1X2ifokX1okX2okX3ifX1X2X3addokX1okX2addX1X2sokXsXfirstokX1okX2firstX1X2consokX1okX2consX1X2fromokXfromXtopmarkXproperXtopmarkXtopproperXtopokXactiveXtopokXtopactiveXtruetopokXtopactiveXtopmarkXtopproperXtruetop14ok110proper13from111cons22nil011first26s17add290012if39false011mark15active18and29true02true0and212active11mark11false0if312300add212s1first212nil0cons2from1proper11ok11top11topokXtopactiveXactiveandtrueXmarkXactiveandfalseYmarkfalseactiveiftrueXYmarkXactiveiffalseXYmarkYactiveadd0XmarkXactiveaddsXYmarksaddXYactivefirst0XmarknilactivefirstsXconsYZmarkconsYfirstXZactivefromXmarkconsXfromsXactiveandX1X2andactiveX1X2activeifX1X2X3ifactiveX1X2X3activeaddX1X2addactiveX1X2activefirstX1X2firstactiveX1X2activefirstX1X2firstX1activeX2addmarkX1X2markaddX1X2addokX1okX2okaddX1X2sokXoksXfirstmarkX1X2markfirstX1X2firstX1markX2markfirstX1X2firstokX1okX2okfirstX1X2consokX1okX2okconsX1X2fromokXokfromXandmarkX1X2markandX1X2andokX1okX2okandX1X2ifmarkX1X2X3markifX1X2X3ifokX1okX2okX3okifX1X2X3properandX1X2andproperX1properX2propertrueoktrueproperfalseokfalseproperifX1X2X3ifproperX1properX2properX3properaddX1X2addproperX1properX2proper0ok0propersXsproperXproperfirstX1X2firstproperX1properX2properniloknilproperconsX1X2consproperX1properX2properfromXfromproperXtop11ok12from13cons20nil00first23s11add26008if36false02mark17active15and28true08true0and22active11mark11false0if32300add22s11first21nil0cons22from11ok11top11activeandtrueXmarkXactiveandfalseYmarkfalseactiveiftrueXYmarkXactiveiffalseXYmarkYactiveadd0XmarkXactiveaddsXYmarksaddXYactivefirst0XmarknilactivefirstsXconsYZmarkconsYfirstXZactivefromXmarkconsXfromsXactiveandX1X2andactiveX1X2activeifX1X2X3ifactiveX1X2X3activeaddX1X2addactiveX1X2activefirstX1X2firstactiveX1X2activefirstX1X2firstX1activeX2addmarkX1X2markaddX1X2addokX1okX2okaddX1X2sokXoksXfirstmarkX1X2markfirstX1X2firstX1markX2markfirstX1X2firstokX1okX2okfirstX1X2consokX1okX2okconsX1X2fromokXokfromXandmarkX1X2markandX1X2andokX1okX2okandX1X2ifmarkX1X2X3markifX1X2X3ifokX1okX2okX3okifX1X2X3topokXactiveXfalseactiveandX1X2activeX1activeifX1X2X3activeX1activeaddX1X2activeX1activefirstX1X2activeX1activefirstX1X2activeX2trueactive11activefirstX1X2firstX1activeX2falseactivefirstX1X2firstactiveX1X2falseactiveaddX1X2addactiveX1X2falseactiveifX1X2X3ifactiveX1X2X3falseactiveandX1X2andactiveX1X2falseactivefromXconsXfromsXfalseactivefromXfromsXfalseactivefromXsXfalseactivefirstsXconsYZconsYfirstXZfalseactivefirstsXconsYZfirstXZfalseactiveaddsXYsaddXYfalseactiveaddsXYaddXYfalsetopmarkXproperXfalseproperandX1X2properX2properandX1X2properX1properifX1X2X3properX3properifX1X2X3properX2properifX1X2X3properX1properaddX1X2properX2properaddX1X2properX1propersXproperXproperfirstX1X2properX2properfirstX1X2properX1properconsX1X2properX2properconsX1X2properX1properfromXproperXtrueproper11properfromXfromproperXfalsefromokXfromXtruefrom11properconsX1X2consproperX1properX2falseconsokX1okX2consX1X2truecons22properfirstX1X2firstproperX1properX2falsefirstmarkX1X2firstX1X2firstX1markX2firstX1X2firstokX1okX2firstX1X2truefirst22firstmarkX1X2firstX1X2first21propersXsproperXfalsesokXsXtrues11properaddX1X2addproperX1properX2falseaddmarkX1X2addX1X2addokX1okX2addX1X2trueadd22addmarkX1X2addX1X2add21properifX1X2X3ifproperX1properX2properX3falseifmarkX1X2X3ifX1X2X3ifokX1okX2okX3ifX1X2X3trueif33ifmarkX1X2X3ifX1X2X3if31properandX1X2andproperX1properX2falseandmarkX1X2andX1X2andokX1okX2andX1X2trueand22andmarkX1X2andX1X2and21