3 Ø ÷^üVc@sNddlZddlZddlZGdd„dejƒZGdd„deƒZGdd„deƒZdS)éNc@s eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„ZdS)&ÚBasicTestMappingProtocolNcCs ddddœS)NZ2Zvalue1ééé)Z1Zkey1Zkey2©rrr©©Úselfrrú*/usr/lib64/python3.6/test/mapping_tests.pyÚ _referencesz#BasicTestMappingProtocol._referencecCs|jƒS©N)Ú type2testrrrr Ú_empty_mappingsz'BasicTestMappingProtocol._empty_mappingcCs*|jƒ}x|jƒD]\}}|||<qW|Sr )r Úitems)rZdataÚxÚkeyÚvaluerrr Ú _full_mappings z&BasicTestMappingProtocol._full_mappingcOs`tjj|f|ž|Ž|jƒjƒ|_|jjƒ\}}||i|_|jjƒ\}}||i|_||j|<dSr ) ÚunittestÚTestCaseÚ__init__r ÚcopyÚ referenceÚpopitemÚotherÚ inmapping)rZargsZkwrrrrr rs  z!BasicTestMappingProtocol.__init__csˆjƒ}t|ƒ}ˆjˆjƒ‰ˆ|kr(|}x&ˆjjƒD]\}}ˆjˆ||ƒq4Wtˆjjƒƒd‰ˆj t ‡‡fdd„ƒˆjt |ƒdƒˆjt ˆƒt ˆjƒƒxˆjD]}ˆj |ˆƒq¦WxˆjD]}ˆj |ˆƒqÂWˆj||ƒˆjˆˆƒˆj|ˆƒˆjˆ|ƒ|rˆjdƒˆs&ˆjdƒ‡fdd„}|tˆjƒƒtˆjƒƒˆjjƒƒ|tˆƒtˆjƒƒˆjjƒƒ|tˆjƒƒtˆjƒƒˆjjƒƒ|tˆjƒƒtˆjƒƒˆjjƒƒttˆjƒƒƒ\}}ttˆjjƒƒƒ\‰}ˆjˆj||ƒ|ƒˆjˆjˆ|ƒ|ƒˆj ˆˆƒdS)NrcsˆˆSr rr)ÚdÚknownkeyrr Ú6óz4BasicTestMappingProtocol.test_read..z#Empty mapping must compare to Falsez!Full mapping must compare to TruecsVˆjt|dƒƒˆjt|dƒƒt|ƒ}ˆjt|ƒt|ƒkoJt|ƒknƒdS)NÚ__next__Ú__iter__)Ú assertTrueZhasattrÚlistZset)ÚiterZlstZrefrrrr Úcheck_iterandlistHsz=BasicTestMappingProtocol.test_read..check_iterandlist)r ÚdictrrrÚ assertEqualr"rÚkeysÚ assertRaisesÚKeyErrorÚlenÚassertInÚ assertNotInZassertNotEqualÚfailr#ÚvaluesÚnextÚget)rÚpZp1rrÚkr$Ú knownvaluer)rrrr Ú test_read+sH             z"BasicTestMappingProtocol.test_readcsî|jƒ‰x.|jjƒD] \‰}|ˆˆ<|jˆˆ|ƒqWx.|jjƒD] ‰ˆˆ=|jt‡‡fdd„ƒqDW|jƒ‰ˆj|jƒ|jtˆƒ|jƒt ˆjƒƒ}|jƒ‰ˆj|ƒ|jtˆƒ|jƒ|j |jƒ}t t |jƒƒƒ\‰}t t |j jƒƒƒ\}}|j|jˆ|ƒ|ƒ|j|ˆ|ƒ|j|j||ƒ|ƒ|j|||ƒ|j|j|ƒ|ƒ|j||ƒ|jt|j|ƒd}|||<|j|j||ƒ|ƒ|j||ƒ|j|j||ƒ|ƒ|jƒ\‰}|jˆ|ƒ|j||jˆƒ|jƒ‰|jtˆjƒdS)NcsˆˆSr rr©rr1rr rdrz5BasicTestMappingProtocol.test_write..i)r rrr&r'r(r)Úupdater%r"rr/r#rÚ setdefaultÚpopr,r)rrrrrr3Zdefaultrr5r Ú test_write[sD        z#BasicTestMappingProtocol.test_writecCs|j|jƒ|jƒƒdSr )r&r rrrr Útest_constructor…óz)BasicTestMappingProtocol.test_constructorcCsJ|j|jƒ ƒ|j|jƒ|jt|jƒƒdkƒ|jt|jƒdkƒdS)NFT)r!r rÚboolrrrr Ú test_boolˆs z"BasicTestMappingProtocol.test_boolcCsr|jƒ}|jt|jƒƒgƒ|j}|jt|jjƒƒd|jƒƒ|jt|jjƒƒd|jƒƒ|j t |jdƒdS©Nr) r r&r"r'rr+rr,rr(Ú TypeError©rrrrr Ú test_keysŽs z"BasicTestMappingProtocol.test_keyscCó0|jƒ}|jt|jƒƒgƒ|jt|jdƒdSr )r r&r"r.r(r?r@rrr Ú test_values–óz$BasicTestMappingProtocol.test_valuescCrBr )r r&r"rr(r?r@rrr Ú test_itemsœrDz#BasicTestMappingProtocol.test_itemscCs|jƒ}|jt|ƒdƒdSr>)r r&r*r@rrr Útest_len¢óz!BasicTestMappingProtocol.test_lencCsD|j}|j|t|jjƒƒdt|jjƒƒdƒ|jt|jƒdSr>) rr&r"rr'r.r(r?Ú __getitem__r@rrr Ú test_getitem¦sz%BasicTestMappingProtocol.test_getitemcsò|jƒ}|j|jƒ|jt|jƒƒt|jjƒƒƒ|jƒ}|jƒ|j||jƒƒ|jƒ}|j|jjƒƒ|jt|jƒƒt|jjƒƒƒ|jƒ}|j|jjƒƒ|jt|jƒƒt|jjƒƒƒ|jttf|jdƒ|‰G‡fdd„dƒ}|j ƒ|j|ƒƒt |jƒƒ}t |j jƒƒ}|j||ƒGdd„dt ƒ‰|jƒ}G‡fdd„dƒ}|jˆ|j|ƒƒ|j ƒG‡fdd„dƒ}|jˆ|j|ƒƒG‡fd d„dƒ}|jˆ|j|ƒƒ|jƒ}G‡fd d „d t ƒ}|jˆ|j|ƒƒ|jt|jdgƒdS)Né*cs(eZdZ‡fdd„Zdd„Zdd„ZdS)z.SimpleUserDictcs ˆj|_dSr )rrr©Ú outerselfrr rÈr;zEBasicTestMappingProtocol.test_update..SimpleUserDict.__init__cSó |jjƒSr ©rr'rrrr r'Êr;zABasicTestMappingProtocol.test_update..SimpleUserDict.keyscSó |j|Sr ©r©rÚirrr rHÌr;zHBasicTestMappingProtocol.test_update..SimpleUserDict.__getitem__N©Ú__name__Ú __module__Ú __qualname__rr'rHrrKrr ÚSimpleUserDictÇs rWc@ó eZdZdS)z1BasicTestMappingProtocol.test_update..ExcN©rTrUrVrrrr ÚExcÔórZcóeZdZ‡fdd„ZdS)ú=BasicTestMappingProtocol.test_update..FailingUserDictcóˆ‚dSr rr©rZrr r'Ør;úBBasicTestMappingProtocol.test_update..FailingUserDict.keysN)rTrUrVr'rr_rr ÚFailingUserDict×óracó eZdZ‡fdd„Zdd„ZdS)r]csG‡fdd„dƒ}|ƒS)Ncs(eZdZdd„Zdd„Z‡fdd„ZdS)úUBasicTestMappingProtocol.test_update..FailingUserDict.keys..BogonItercSs d|_dS©Nr©rRrrrr rár;ú^BasicTestMappingProtocol.test_update..FailingUserDict.keys..BogonIter.__init__cSó|Sr rrrrr r ãr;ú^BasicTestMappingProtocol.test_update..FailingUserDict.keys..BogonIter.__iter__cs|jrd|_dSˆ‚dS)NrÚarfrr_rr råsú^BasicTestMappingProtocol.test_update..FailingUserDict.keys..BogonIter.__next__N©rTrUrVrr rrr_rr Ú BogonIteràórmr©rrmr_rr r'ßs r`cSs|Sr r©rrrrr rHër;úIBasicTestMappingProtocol.test_update..FailingUserDict.__getitem__N©rTrUrVr'rHrr_rr raÞs có eZdZdd„Z‡fdd„ZdS)r]cSsGdd„dƒ}|ƒS)Nc@ó$eZdZdd„Zdd„Zdd„ZdS)rdcSstdƒ|_dS)Nrj)ÚordrRrrrr ròr;rgcSrhr rrrrr r ôr;ricSs2|jtdƒkr*t|jƒ}|jd7_|St‚dS)NÚzr)rRruZchrZ StopIteration)rZrtnrrr rös  rkNrlrrrr rmñrnrmrrorrr r'ðs r`cr^r rrpr_rr rHýr;rqNrrrr_rr raïs crs)z4BasicTestMappingProtocol.test_update..badseqcSrhr rrrrr r r;z=BasicTestMappingProtocol.test_update..badseq.__iter__có ˆƒ‚dSr rrr_rr rr;z=BasicTestMappingProtocol.test_update..badseq.__next__N©rTrUrVr rrr_rr Úbadseqóryrrrr)r r6rr&r"rr(r?ZAttributeErrorÚclearZsortedrÚ ExceptionÚobjectZ ValueError)rrrWZi1Zi2raryr)rZrLr Ú test_update­sB    z$BasicTestMappingProtocol.test_updatecCs|jƒ}|j|jt|jjƒƒdƒdkƒ|j|jt|jjƒƒddƒdƒ|j}|j|jt|jjƒƒdƒdkƒ|j|jt|jjƒƒddƒdƒ|j|jt|jjƒƒdƒt|jj ƒƒdƒ|j|jt|jjƒƒddƒt|jj ƒƒdƒ|j t |jƒ|j t |jdddƒdS)Nrr) r r!r0r"rr'r&rrr.r(r?r@rrr Útest_gets""""z!BasicTestMappingProtocol.test_getcCs|jƒ}|jt|jƒdSr )r r(r?r7r@rrr Útest_setdefaultrGz(BasicTestMappingProtocol.test_setdefaultcCs*|jƒ}|jt|jƒ|jt|jdƒdS©NrJ)r r(r)rr?r@rrr Ú test_popitem sz%BasicTestMappingProtocol.test_popitemcCsz|jƒ}t|jjƒƒd\}}|||<|jt|jt|jjƒƒdƒ|j |j|ƒ|ƒ|j t |ƒdƒ|jt|j|ƒdSr>) r r"rrr(r)r8rr'r&r*©rrr2Zvrrr Útest_pop%sz!BasicTestMappingProtocol.test_pop)rTrUrVr r r rrr4r9r:r=rArCrErFrIr~rr€r‚r„rrrr rs& 0*arc@sŒeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!S)"ÚTestMappingProtocolcCs@tj|ƒ|j|jƒ|jƒk ƒ|j|jddddddœƒdS)Nrr©rÚy)rr:r!r r&r rrrr r:2s z$TestMappingProtocol.test_constructorcCsdtj|ƒ|j|jƒ ƒ|j|jddiƒƒ|jt|jƒƒdkƒ|jt|jddiƒƒdkƒdS)Nrr‡FT)rr=r!r rr<rrrr r=7s  zTestMappingProtocol.test_boolcCsftj|ƒ|jƒ}|jt|jƒƒgƒ|jdddœƒ}|jƒ}|jd|ƒ|jd|ƒ|jd|ƒdS)Nrr©rjÚbrjr‰Úc) rrAr r&r"r'rr+r,)rrr2rrr rA>s   zTestMappingProtocol.test_keyscCs2tj|ƒ|jddiƒ}|jt|jƒƒdgƒdS)Nrr)rrCrr&r"r.r@rrr rCHs zTestMappingProtocol.test_valuescCs2tj|ƒ|jddiƒ}|jt|jƒƒdgƒdS)Nrr©rr)rrErr&r"rr@rrr rEMs zTestMappingProtocol.test_itemscCsv|jƒ}|jd|ƒ|jd|kƒ|jd|kƒ|jdddœƒ}|jd|ƒ|jd|ƒ|jd|ƒ|jt|jƒdS)Nrjrrrˆr‰rŠ)r r,r!rr+r(r?Z __contains__r@rrr Ú test_containsSs    z!TestMappingProtocol.test_containscCs.tj|ƒ|jdddœƒ}|jt|ƒdƒdS)Nrrrˆ)rrFrr&r*r@rrr rF_s zTestMappingProtocol.test_lencCs”tj|ƒ|jdddœƒ}|j|ddƒ|j|ddƒd|d<d|d<|j|ddƒ|j|ddƒ|d=|j|ddd œƒ|jt|jƒdS) Nrrrˆrjr‰rrŠé)rjrŠ)rrIrr&r(r?rHr@rrr rIds z TestMappingProtocol.test_getitemcCs:|jddddœƒ}|jƒ|j|iƒ|jt|jdƒdS©Nrrrr)rr{r&r(r?r@rrr Ú test_clearrs zTestMappingProtocol.test_clearcCs†tj|ƒ|jƒ}|jddiƒ|jddiƒ|jddddœƒ|j|ddddœƒ|jƒ|j|ddddœƒ|jƒ}|jdd|jdd|jdddd |j|dddd œƒ|jƒ}|jddgƒ|j|ddd œƒ|jƒ}|jddgddd |j|ddd œƒ|jdd dœƒ}|j|jdd ddœƒjƒƒ|j|dd d ddœƒGdd„dƒ}|jƒ|j|ƒƒ|j|ddddœƒdS)Nrédrérr)r)r‡)rr‡rvrr‡r†rr‹i)rré)rrrr’c@rt)z7TestMappingProtocol.test_update..SimpleUserDictcSsddddœ|_dSrŽrPrrrr rr;z@TestMappingProtocol.test_update..SimpleUserDict.__init__cSrMr rNrrrr r'Ÿr;z.SimpleUserDict.keyscSrOr rPrQrrr rH¡r;zCTestMappingProtocol.test_update..SimpleUserDict.__getitem__NrSrrrr rWœrnrW©rr©r‡r‘r“r”)rr~r r6r&rrr{)rrrWrrr r~ys4    zTestMappingProtocol.test_updatec s |j|jjdƒddddœƒ|jƒ}|j|jdƒ|k ƒ|j|jdƒddddœƒ|j|jddƒdddœƒ|j|jgƒiƒdd„}|j|j|ƒƒd diƒ|jtijd ƒGd d „d |jƒ}|j|jd ƒd diƒ|j|ƒjd ƒd diƒ|j|jd ƒj|kƒ|j|ƒjd ƒj|kƒ|jt|jd ƒƒ|kƒGdd„d|jƒ}|jdƒ}|j|dddœƒ|j |t j ƒ|jtt jƒGdd„dt ƒ‰G‡fdd„d|jƒ}|jˆ|jd gƒG‡fdd„dtƒ}|jˆ|jj|ƒƒG‡fdd„d|jƒ}|jˆ|jd gƒdS)NÚabc)rjr‰rŠrr’r©rr’css dVdSrerrrrr Úg®r;z,TestMappingProtocol.test_fromkeys..grrc@rX)z3TestMappingProtocol.test_fromkeys..dictlikeNrYrrrr Údictlike²r[r˜rjc@óeZdZdd„ZdS)z1TestMappingProtocol.test_fromkeys..mydictcSótjƒSr ©Ú collectionsÚUserDict©Zclsrrr Ú__new__¹r;z9TestMappingProtocol.test_fromkeys..mydict.__new__N©rTrUrVrŸrrrr Úmydict¸rbr¡Úabrˆc@rX)z.TestMappingProtocol.test_fromkeys..ExcNrYrrrr rZÀr[rZcr\)z3TestMappingProtocol.test_fromkeys..baddict1crwr rrr_rr rÃr;z.baddict1.__init__N)rTrUrVrrr_rr Úbaddict1Ârbr£crs)z1TestMappingProtocol.test_fromkeys..BadSeqcSrhr rrrrr r Ér;z:TestMappingProtocol.test_fromkeys..BadSeq.__iter__crwr rrr_rr rËr;z:TestMappingProtocol.test_fromkeys..BadSeq.__next__Nrxrr_rr ÚBadSeqÈrzr¤cr\)z3TestMappingProtocol.test_fromkeys..baddict2crwr r)rrrr_rr Ú __setitem__Ñr;z?TestMappingProtocol.test_fromkeys..baddict2.__setitem__N)rTrUrVr¥rr_rr Úbaddict2Ðrbr¦r–)r&r Úfromkeysr r!r(r?Ú __class__ZtypeÚassertIsInstancerœrr%r|r}) rrr—r˜r¡Úudr£r¤r¦rr_r Ú test_fromkeys§s6 z!TestMappingProtocol.test_fromkeyscCsh|jddddœƒ}|j|jƒddddœƒ|jƒ}|j|jƒ|ƒ|j|jƒ|jƒ|jt|jdƒdSrŽ)rr&rr r©r¨r(r?r@rrr Ú test_copyÖs zTestMappingProtocol.test_copycCsœtj|ƒ|jƒ}|j|jdƒdkƒ|j|jddƒdƒ|jdddœƒ}|j|jdƒdkƒ|j|jddƒdƒ|j|jdƒdƒ|j|jddƒdƒdS)NrŠrrrrˆrj)rrr r!r0r&rr@rrr rÞs zTestMappingProtocol.test_getcCs–tj|ƒ|jƒ}|j|jdƒdkƒ|jdgƒ|j|jdƒdkƒ|jdgƒjdƒ|j|dddƒ|jdgƒjdƒ|jt|dƒdƒdS)NZkey0rrrrr)rr€r r!r7Zappendr&r*r@rrr r€és  z#TestMappingProtocol.test_setdefaultc Cs tj|ƒxúdD]ò}xìtdƒD]à}d|}|jƒ}|jƒ}x0t|ƒD]$}||t|ƒ<|dkrF||t|ƒ<qFW|dkr~|jƒ}xht|ƒD]\}|jƒ\}}} |j|t|ƒƒ|jƒ\} } } |j| t| ƒƒ|j |dkoÞ| | k ƒqˆW|j | ƒ|j | ƒq WqWdS)Nri rréÿÿÿÿr)r­r) rr‚Úranger Úreprrrr&Zintr!) rZcopymodeZlog2sizeZsizerjr‰rRZkaZvaZtaZkbZvbZtbrrr r‚ôs(    z TestMappingProtocol.test_popitemcCsNtj|ƒ|jƒ}d\}}|j|j||ƒ|ƒ|||<|j|j|dƒ|ƒdS)Nr•Údefr)r•r°)rr„r r&r8rƒrrr r„ s  zTestMappingProtocol.test_popN)rTrUrVr:r=rArCrErŒrFrIrr~r«r¬rr€r‚r„rrrr r…1s   ./  r…c@sLeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dS)ÚTestHashMappingProtocolcs”tj|ƒGdd„dtƒ‰G‡fdd„dtƒ}|jƒ}d||ƒ<|jt|jdƒG‡fdd„dtƒ}|jƒ}|ƒ}d||<d |_|jˆ|j|ƒdS) Nc@rX)z1TestHashMappingProtocol.test_getitem..ExcNrYrrrr rZr[rZcrc)z3TestHashMappingProtocol.test_getitem..BadEqcrwr r©rrr_rr Ú__eq__r;z:TestHashMappingProtocol.test_getitem..BadEq.__eq__cSódS)Nirrrrr Ú__hash__!r;z.BadEq.__hash__N©rTrUrVr³rµrr_rr ÚBadEqó r·rJicóeZdZdZ‡fdd„ZdS)z5TestHashMappingProtocol.test_getitem..BadHashFcó|jrˆƒ‚ndSdSr©r-rr_rr rµ*óz>TestHashMappingProtocol.test_getitem..BadHash.__hash__N©rTrUrVr-rµrr_rr ÚBadHash(ór¾T) r…rIr|r}r r(r)rHr-)rr·rr¾rrr_r rIs  z$TestHashMappingProtocol.test_getitemcCsJtj|ƒGdd„d|jƒ}|jdƒ}|j|dddœƒ|j|tjƒdS)Nc@r™)z5TestHashMappingProtocol.test_fromkeys..mydictcSršr r›ržrrr rŸ9r;z=TestHashMappingProtocol.test_fromkeys..mydict.__new__Nr rrrr r¡8rbr¡r¢rˆ)r…r«r r§r&r©rœr)rr¡rªrrr r«6s   z%TestHashMappingProtocol.test_fromkeyscs^tj|ƒGdd„dtƒ‰G‡fdd„dtƒ}|jƒ}|ƒ}d||<d|_|jˆ|j|ƒdS)Nc@rX)z-TestHashMappingProtocol.test_pop..ExcNrYrrrr rZBr[rZcr¹)z1TestHashMappingProtocol.test_pop..BadHashFcrºrr»rr_rr rµFr¼z:TestHashMappingProtocol.test_pop..BadHash.__hash__Nr½rr_rr r¾Dr¿r¾rJT)r…r„r|r}r r-r(r8©rr¾rrrr_r r„?ó z TestHashMappingProtocol.test_popc CsR|jƒ}d|d<yx|D]}d||d<qWWntk rBYn X|jdƒdS)Nrz7changing dict size during iteration doesn't raise Error)r Z RuntimeErrorr-)rrrRrrr Útest_mutatingiterationRs z.TestHashMappingProtocol.test_mutatingiterationcs–|jƒ}|jt|ƒdƒd|d<|jt|ƒdƒ|jƒ}||d<|jt|ƒdƒGdd„dtƒ‰G‡fdd „d tƒ}|jd|ƒiƒ}|jˆt|ƒdS) Nz{}rrz{1: 2}z {1: {...}}c@rX)z.TestHashMappingProtocol.test_repr..ExcNrYrrrr rZfr[rZcr\)z2TestHashMappingProtocol.test_repr..BadReprcrwr rrr_rr Ú__repr__ir;z;TestHashMappingProtocol.test_repr..BadRepr.__repr__N)rTrUrVrÃrr_rr ÚBadReprhrbrÄ)r r&r¯r|r}rr()rrrÄrr_r Ú test_repr]sz!TestHashMappingProtocol.test_reprcCsH|jƒ}x,ttjƒdƒD]}|}|jƒ}||d<qW|jtt|ƒdS)Nrr)r r®ÚsysZgetrecursionlimitr(ZRecursionErrorr¯)rrrRZd0rrr Útest_repr_deepos  z&TestHashMappingProtocol.test_repr_deepcs¤|j|jƒ|jƒƒ|j|jddiƒ|jddiƒƒGdd„dtƒ‰G‡fdd„dtƒ‰|jˆƒdiƒ‰|jddiƒ‰|jˆ‡fdd„ƒ|jˆ‡‡fd d„ƒdS) Nrrc@rX)z,TestHashMappingProtocol.test_eq..ExcNrYrrrr rZ|r[rZcrc)z/TestHashMappingProtocol.test_eq..BadCmpcrwr rr²r_rr r³r;z6TestHashMappingProtocol.test_eq..BadCmp.__eq__cSr´rerrrrr rµr;z8TestHashMappingProtocol.test_eq..BadCmp.__hash__Nr¶rr_rr ÚBadCmp~r¸rÈcs ˆƒdkSrerr)rÈrr r†rz1TestHashMappingProtocol.test_eq..csˆˆkSr rr)Úd1Úd2rr r‡r)r&r rr|r}r(rr)rÈrZrÉrÊr Útest_eqwszTestHashMappingProtocol.test_eqcs`tj|ƒGdd„dtƒ‰G‡fdd„dtƒ}|jƒ}|ƒ}d||<d|_|jˆ|j|gƒdS)Nc@rX)z4TestHashMappingProtocol.test_setdefault..ExcNrYrrrr rZŒr[rZcr¹)z8TestHashMappingProtocol.test_setdefault..BadHashFcrºrr»rr_rr rµr¼zATestHashMappingProtocol.test_setdefault..BadHash.__hash__Nr½rr_rr r¾Žr¿r¾rJT)r…r€r|r}r r-r(r7rÀrr_r r€‰rÁz'TestHashMappingProtocol.test_setdefaultN) rTrUrVrIr«r„rÂrÅrÇrËr€rrrr r±s  r±)rrœrÆrrr…r±rrrr Zs,h