ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ V~gc@soddlmZddlZejddkZer@ddUn ddlZddZdZdZ d Z dS( i(tsleepNiisfrom . import dbg?ign! @cOst}|jdd}d|kr.|d=nxtry|||SWq1tjk rtrutjd|nt||d9}|tkrt}n|d8}|dkrqq1Xq1WdS(s?DeadlockWrap(function, *_args, **_kwargs) - automatically retries function in case of a database deadlock. This is a function intended to be used to wrap database calls such that they perform retrys with exponentially backing off sleeps in between when a DBLockDeadlockError exception is raised. A 'max_retries' parameter may optionally be passed to prevent it from retrying forever (in which case the exception will be reraised). d = DB(...) d.open(...) DeadlockWrap(d.put, "foo", data="bar") # set key "foo" to "bar" t max_retriesis%dbutils.DeadlockWrap: sleeping %1.3f iiN( t_deadlock_MinSleepTimetgettTruetdbtDBLockDeadlockErrort_deadlock_VerboseFiletwritet_sleept_deadlock_MaxSleepTime(tfunctiont_argst_kwargst sleeptimeR((s2/opt/alt/python27/lib64/python2.7/bsddb/dbutils.pyt DeadlockWrap/s$         ( ttimeRR tsyst version_infotabsolute_importRRR tNoneRR(((s2/opt/alt/python27/lib64/python2.7/bsddb/dbutils.pyts