PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  ]c@sdZddlmZddlZdefdYZdddZdefd YZd efd YZd Z dS( uJsLex: a lexer for Javascripti(tunicode_literalsNtTokcBs eZdZdZddZRS(u, A specification for a token class. icCs:tj|_tjd7_||_||_||_dS(Ni(Rtnumtidtnametregextnext(tselfRRR((s6/usr/lib/python2.7/site-packages/django/utils/jslex.pyt__init__s    N(t__name__t __module__t__doc__RtNoneR(((s6/usr/lib/python2.7/site-packages/django/utils/jslex.pyRsucs&djfd|jDS(u Create a regex from a space-separated list of literal `choices`. If provided, `prefix` and `suffix` will be attached to each choice individually. u|c3s&|]}tj|VqdS(N(tretescape(t.0tc(tprefixtsuffix(s6/usr/lib/python2.7/site-packages/django/utils/jslex.pys s(tjointsplit(tchoicesRR((RRs6/usr/lib/python2.7/site-packages/django/utils/jslex.pytliteralsstLexercBs eZdZdZdZRS(u2 A generic multi-state regex-based lexer. cCsi|_i|_x|jD]\}}g}xB|D]:}d|j}||j|<|jd||jfq8Wtjdj|tj tj B|j|%s)u|( tregexesttokstitemsRtappendRR tcompileRt MULTILINEtVERBOSEtstate(RtstatestfirstRtrulestpartsttoktgroupid((s6/usr/lib/python2.7/site-packages/django/utils/jslex.pyR%s     0c cst|}|j}|j}|j}d}x||krxt||j||D]\}|j}||} |j|} |t| 7}| j| fV| jrS| j}PqSqSWq0W||_dS(uX Lexically analyze `text`. Yields pairs (`name`, `tokentext`). iN( tlenRRRtfinditert lastgrouptgroupRR( RttexttendRRRtstarttmatchRR$ttoktext((s6/usr/lib/python2.7/site-packages/django/utils/jslex.pytlex3s          (R R R RR/(((s6/usr/lib/python2.7/site-packages/django/utils/jslex.pyR s tJsLexercBseZdZeddeddeddededd d d d ed edd d d deddd deddd deddeddd dededd d ededd dededd d eddd deddd dgZedd gZieeded!d d ged6eed"d#d dged 6Zd$ZRS(%u A Javascript lexer >>> lexer = JsLexer() >>> list(lexer.lex("a = 1")) [('id', 'a'), ('ws', ' '), ('punct', '='), ('ws', ' '), ('dnum', '1')] This doesn't properly handle non-ASCII characters in the Javascript source. ucommentu/\*(.|\n)*?\*/u linecommentu//.*?$uwsu\s+ukeywordul break case catch class const continue debugger default delete do else enum export extends finally for function if import in instanceof new return super switch this throw try typeof var void while with Ru\bRuregureservedunull true falseudivuidu ([a-zA-Z_$ ]|\\u[0-9a-fA-Z]{4}) # first char ([a-zA-Z_$0-9]|\\u[0-9a-fA-F]{4})* # rest chars uhnumu0[xX][0-9a-fA-F]+uonumu0[0-7]+udnumu| ( (0|[1-9][0-9]*) # DecimalIntegerLiteral \. # dot [0-9]* # DecimalDigits-opt ([eE][-+]?[0-9]+)? # ExponentPart-opt | \. # dot [0-9]+ # DecimalDigits ([eE][-+]?[0-9]+)? # ExponentPart-opt | (0|[1-9][0-9]*) # DecimalIntegerLiteral ([eE][-+]?[0-9]+)? # ExponentPart-opt ) upunctu >>>= === !== >>> <<= >>= <= >= == != << >> && || += -= *= %= &= |= ^= u ++ -- ) ]u){ } ( [ . ; , < > + - * % & | ^ ! ~ ? : =ustringu"([^"\\]|(\\(.|\n)))*?"u'([^'\\]|(\\(.|\n)))*?'uotheru.u/= /uregexu / # opening slash # First character is.. ( [^*\\/[] # anything but * \ / or [ | \\. # or an escape sequence | \[ # or a class, which has ( [^\]\\] # anything but \ or ] | \\. # or an escape sequence )* # many times \] ) # Following characters are same, except for excluding a star ( [^\\/[] # anything but \ / or [ | \\. # or an escape sequence | \[ # or a class, which has ( [^\]\\] # anything but \ or ] | \\. # or an escape sequence )* # many times \] )* # many times / # closing slash [a-zA-Z0-9]* # trailing flags cCs tt|j|jddS(Nureg(tsuperR0RR (R((s6/usr/lib/python2.7/site-packages/django/utils/jslex.pyRs( R R R RRt both_beforet both_afterR R(((s6/usr/lib/python2.7/site-packages/django/utils/jslex.pyR0Ns0         '$cCsd}t}g}x|j|D]\}}|dkrId}nl|dkr|jdrtjd||dd!}d |d }qn!|d kr|jd d }n|j|q(Wd j|S(u Convert the Javascript source `js` into something resembling C for xgettext. What actually happens is that all the regex literals are replaced with "REGEX". cSs'|jd}|dkrdS|SdS(u1Used in a regex to properly escape double quotes.iu"u\"N(R)(tmts((s6/usr/lib/python2.7/site-packages/django/utils/jslex.pyt escape_quotess uregexu"REGEX"ustringu'u\\.|.iiu"uidu\uUu(R0R/t startswithR tsubtreplaceRR(tjsR6tlexerRRR$tguts((s6/usr/lib/python2.7/site-packages/django/utils/jslex.pytprepare_js_for_gettexts      ( R t __future__RR tobjectRRRR0R=(((s6/usr/lib/python2.7/site-packages/django/utils/jslex.pyts  .m