Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
ó ÈÏRc @sÅdZddlZddlmZddlmZddlmZddlm Z ddl m Z m Z m Z mZmZe dƒZejd ejƒZejd ejƒZejd ƒZyed d dƒWn ek rõejdƒZn0XddlmZejdejejfƒZejdƒZejdƒZedƒZedƒZ edƒZ!edƒZ"edƒZ#edƒZ$edƒZ%edƒZ&edƒZ'edƒZ(edƒZ)edƒZ*ed ƒZ+ed!ƒZ,ed"ƒZ-ed#ƒZ.ed$ƒZ/ed%ƒZ0ed&ƒZ1ed'ƒZ2ed(ƒZ3ed)ƒZ4ed*ƒZ5ed+ƒZ6ed,ƒZ7ed-ƒZ8ed.ƒZ9ed/ƒZ:ed0ƒZ;ed1ƒZ<ed2ƒZ=ed3ƒZ>ed4ƒZ?ed5ƒZ@ed6ƒZAed7ƒZBed8ƒZCed9ƒZDed:ƒZEed;ƒZFed<ƒZGed=ƒZHed>ƒZIed?ƒZJed@ƒZKedAƒZLedBƒZMedCƒZNedDƒZOiedE6e7dF6e#dG6e&dH6e/dI6e.dJ6e2dK6e8dL6e*dM6e4dN6e+dO6e5dP6e)dQ6e3dR6e%dS6e0dT6e'dU6e(dV6e,dW6e-dX6e dY6e$dZ6e!d[6e1d\6e"d]6e6d^6ZPeQge ePƒD]\ZRZSeSeRf^q[ƒZTeUePƒeUeTƒks tVd_ƒ‚ejd`d\jWda„eXePdbdc„ƒDƒƒƒZYeZeEeGeFe9e9eJeKeLgƒZ[eZe9eMeGeLgƒZ\dd„Z]de„Z^df„Z_dg„Z`dh„Zadiebfdj„ƒYZcdkedfdl„ƒYZee dmebfdn„ƒYƒZfe doebfdp„ƒYƒZgdq„Zhdrebfds„ƒYZidS(tsã jinja2.lexer ~~~~~~~~~~~~ This module implements a Jinja / Python combination lexer. The `Lexer` class provided by this module is used to do some preprocessing for Jinja. On the one hand it filters out invalid operators like the bitshift operators we don't allow in templates. On the other hand it separates template code and python code in expressions. :copyright: (c) 2010 by the Jinja Team. :license: BSD, see LICENSE for more details. iÿÿÿÿN(t itemgetter(tdeque(tTemplateSyntaxError(tLRUCache(tnextt iteritemstimplements_iteratort text_typetinterni2s\s+s7('([^'\\]*(?:\\.[^'\\]*)*)'|"([^"\\]*(?:\\.[^"\\]*)*)")s\d+sföös tevals\b[a-zA-Z_][a-zA-Z0-9_]*\b(t _stringdefss [%s][%s]*s(?s>=t†stkeycCs t|ƒ S(N(tlen(RS((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyt‡scCsx|tkrt|Si dt6dt6dt6dt6dt6dt6dt6dt6dt 6d t 6d t 6d t 6j ||ƒS( Nsbegin of commentsend of commentR3sbegin of statement blocksend of statement blocksbegin of print statementsend of print statementsbegin of line statementsend of line statementstemplate data / textsend of template(treverse_operatorstTOKEN_COMMENT_BEGINtTOKEN_COMMENT_ENDt TOKEN_COMMENTtTOKEN_LINECOMMENTtTOKEN_BLOCK_BEGINtTOKEN_BLOCK_ENDtTOKEN_VARIABLE_BEGINtTOKEN_VARIABLE_ENDtTOKEN_LINESTATEMENT_BEGINtTOKEN_LINESTATEMENT_ENDt TOKEN_DATAt TOKEN_EOFtget(t token_type((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyt_describe_token_type‘s   cCs#|jdkr|jSt|jƒS(s#Returns a description of the token.R((ttypetvalueRf(ttoken((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pytdescribe_token¤scCsGd|kr7|jddƒ\}}|dkr=|Sn|}t|ƒS(s0Like `describe_token` but for token expressions.RLiR((tsplitRf(texprRgRh((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pytdescribe_token_expr«s   cCsttj|ƒƒS(ssCount the number of newline characters in the string. This is useful for extensions that filter a stream. (RUt newline_retfindall(Rh((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pytcount_newlines¶scCs tj}t|jƒd||jƒft|jƒd||jƒft|jƒd||jƒfg}|jd k r§|jt|jƒdd||jƒfƒn|j d k rå|jt|j ƒdd||j ƒfƒngt |dt ƒD]}|d ^qøS( sACompiles all the rules from the environment into a list of rules.R3tblocktvariablet linestatements ^[ \t\v]*R8s(?:^|(?<=\S))[^\S\r\n]*treverseiN( RPRQRUtcomment_start_stringtblock_start_stringtvariable_start_stringtline_statement_prefixtNonetappendtline_comment_prefixtsortedtTrue(t environmenttetrulesRS((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyt compile_rules½s tFailurecBs#eZdZed„Zd„ZRS(sjClass that raises a `TemplateSyntaxError` if called. Used by the `Lexer` to specify known errors. cCs||_||_dS(N(tmessaget error_class(tselfRƒtcls((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyt__init__Ùs cCs|j|j||ƒ‚dS(N(R„Rƒ(R…tlinenotfilename((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyt__call__Ýs(t__name__t __module__t__doc__RR‡RŠ(((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyR‚Ôs tTokencBs`eZdZdZd„edƒDƒ\ZZZd„Zd„Z d„Z d„Z d„Z RS( s Token class.ccs!|]}tt|ƒƒVqdS(N(tpropertyR(RRRS((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pys äsicCs%tj||tt|ƒƒ|fƒS(N(ttuplet__new__Rtstr(R†RˆRgRh((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyR‘æscCs7|jtkrt|jS|jdkr0|jS|jS(NR((RgRWRh(R…((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyt__str__és  cCsE|j|krtSd|krA|jddƒ|j|jgkStS(s¸Test a token against a token expression. This can either be a token type or ``'token_type:token_value'``. This can only test against string values and types. RLi(RgR}RkRhtFalse(R…Rl((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyttestðs  "cGs(x!|D]}|j|ƒrtSqWtS(s(Test against multiple token expressions.(R•R}R”(R…titerableRl((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyttest_anyýs cCsd|j|j|jfS(NsToken(%r, %r, %r)(RˆRgRh(R…((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyt__repr__s(( R‹RŒR�t __slots__trangeRˆRgRhR‘R“R•R—R˜(((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyRŽás   tTokenStreamIteratorcBs)eZdZd„Zd„Zd„ZRS(s`The iterator for tokenstreams. Iterate over the stream until the eof token is reached. cCs ||_dS(N(tstream(R…Rœ((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyR‡scCs|S(N((R…((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyt__iter__scCsE|jj}|jtkr4|jjƒtƒ‚nt|jƒ|S(N(RœtcurrentRgRctcloset StopIterationR(R…Ri((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyt__next__s     (R‹RŒR�R‡R�R¡(((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyR› s  t TokenStreamcBs�eZdZd„Zd„Zd„ZeZed„ddƒZd„Z d„Z d d „Z d „Z d „Z d „Zd„Zd„ZRS(sÛA token stream is an iterable that yields :class:`Token`\s. The parser however does not iterate over it but calls :meth:`next` to go one token ahead. The current active token is stored as :attr:`current`. cCsYt|ƒ|_tƒ|_||_||_t|_tdt dƒ|_ t |ƒdS(Nit( titert_iterRt_pushedR(R‰R”tclosedRŽt TOKEN_INITIALRžR(R…t generatorR(R‰((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyR‡(s    cCs t|ƒS(N(R›(R…((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyR�1scCst|jƒp|jjtk S(N(tboolR¦RžRgRc(R…((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyt__bool__4scCs| S(N((RS((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyRV8stdocs Are we at the end of the stream?cCs|jj|ƒdS(s Push a token back to the stream.N(R¦Rz(R…Ri((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pytpush:scCs/t|ƒ}|j}|j|ƒ||_|S(sLook at the next token.(RRžR­(R…t old_tokentresult((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pytlook>s     icCs%xt|ƒD]}t|ƒq WdS(sGot n tokens ahead.N(RšR(R…tnRS((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pytskipFscCs |jj|ƒrt|ƒSdS(sqPerform the token test and return the token if it matched. Otherwise the return value is `None`. N(RžR•R(R…Rl((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pytnext_ifKscCs|j|ƒdk S(s8Like :meth:`next_if` but only returns `True` or `False`.N(R³Ry(R…Rl((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pytskip_ifRscCst|j}|jr'|jjƒ|_nI|jjtk rpyt|jƒ|_Wqptk rl|jƒqpXn|S(s)Go one token ahead and return the old one( RžR¦tpopleftRgRcRR¥R RŸ(R…trv((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyR¡Vs   cCs1t|jjtdƒ|_d|_t|_dS(sClose the stream.R£N(RŽRžRˆRcRyR¥R}R§(R…((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyRŸbs cCs¬|jj|ƒs�t|ƒ}|jjtkrXtd||jj|j|jƒ‚ntd|t |jƒf|jj|j|jƒ‚nz |jSWdt |ƒXdS(s}Expect a given token type and return it. This accepts the same argument as :meth:`jinja2.lexer.Token.test`. s(unexpected end of template, expected %r.sexpected token %r, got %rN( RžR•RmRgRcRRˆR(R‰RjR(R…Rl((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pytexpecths    (R‹RŒR�R‡R�R«t __nonzero__R�teosR­R°R²R³R´R¡RŸR·(((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyR¢!s        c Cs†|j|j|j|j|j|j|j|j|j|j |j |j f }t j |ƒ}|dkr‚t|ƒ}|t |(?:\s*%s\-|%s)\s*raw\s*(?:\-%s\s*|%s))s(?P<%s_begin>\s*%s\-|%s)s#bygroups.+troots(.*?)((?:\-%s\s*|%s)%s)s#pops(.)sMissing end of comment tags(?:\-%s\s*|%s)%ss \-%s\s*|%ss1(.*?)((?:\s*%s\-|%s)\s*endraw\s*(?:\-%s\s*|%s%s))sMissing end of raw directives \s*(\n|$)s(.*?)()(?=\n|$)(/RPRQt whitespace_retTOKEN_WHITESPACERytfloat_ret TOKEN_FLOATt integer_ret TOKEN_INTEGERtname_ret TOKEN_NAMEt string_ret TOKEN_STRINGt operator_retTOKEN_OPERATORR�R½R¾RvtmatchRutgroupRwR¿RÀtjoinRºRdRbR¼RZRYR‚RXR]R\R»R_R^t TOKEN_RAW_ENDtTOKEN_RAW_BEGINRaR`R[tTOKEN_LINECOMMENT_ENDtTOKEN_LINECOMMENT_BEGINR€(R…R~tcRt tag_rulestroot_tag_rulestblock_suffix_ret prefix_ret no_lstrip_ret block_difftmt comment_difftno_variable_ret lstrip_retblock_prefix_retcomment_prefix_reR±tr((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyR‡šsš          ))%         :   "          " cCstj|j|ƒS(s@Called for strings and template data to normalize it to unicode.(RnR#R¿(R…Rh((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyt_normalize_newlinesscCs7|j||||ƒ}t|j|||ƒ||ƒS(sCCalls tokeniter + tokenize and wraps it in a token stream. (t tokeniterR¢twrap(R…tsourceR(R‰tstateRœ((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyttokenizesc csÆx¿|D]·\}}}|tkr(qn…|dkr=d}np|dkrRd}n[|dkrdqnI|dkr‚|j|ƒ}n+|dkr—|}n|d kr²t|ƒ}nû|d kr^y/|j|d d !ƒjd dƒjdƒ}WnGtk r6}t|ƒjdƒd jƒ}t||||ƒ‚nXyt|ƒ}Wq­t k rZq­XnO|dkryt |ƒ}n4|dkr”t |ƒ}n|dkr­t |}nt |||ƒVqWdS(s‹This is called with the stream as returned by `tokenize` and wraps every token in a :class:`Token` and converts the value. R4R+R5R,R/R0R9tkeywordR(R)iiÿÿÿÿtasciitbackslashreplacesunicode-escapeRLR'R&R*N(R/R0(tignored_tokensRêR’tencodetdecodet ExceptionRktstripRt UnicodeErrortintR&t operatorsRŽ( R…RœR(R‰RˆRiRhRtmsg((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyRì$sD                  c csrt|ƒ}|jƒ}|jr[|r[x1d D]&}|j|ƒr.|jdƒPq.q.Wndj|ƒ}d}d}dg} |dk rÃ|dkrÃ|d!ks¯td ƒ‚| j|d ƒnd}|j| d } t |ƒ} g} xxy| D]>\} }}| j ||ƒ}|dkr)qön| rA|d"krAqönt |t ƒrMx t |ƒD]é\}}|jtkrŠ|||ƒ‚q]|dkrýx­t|jƒƒD]=\}}|dk r©|||fV||jdƒ7}Pq©q©Wtd| ƒ‚q]|j|dƒ}|s"|tkr3|||fVn||jdƒ7}q]Wn|jƒ}|dkr'|dkr�| jdƒq'|dkr�| jdƒq'|dkr¹| jdƒq'|d#kr'| sçtd||||ƒ‚n| jƒ}||kr$td||f|||ƒ‚q$q'n|s9|tkrJ|||fVn||jdƒ7}|jƒ}|dk r|dkrŽ| jƒnl|dkríx]t|jƒƒD])\}}|dk r­| j|ƒPq­q­Wtd| ƒ‚n | j|ƒ|j| d } n||kr-td| ƒ‚n|}PqöW|| krHdStd|||f|||ƒ‚qïdS($s�This method tokenizes the text and returns the tokens in a generator. Use this method if you just want to tokenize a template. s s s R£iiRÈRrRqs invalid statet_beginiÿÿÿÿR.R,R5s#bygroups?%r wanted to resolve the token dynamically but no group matchedR*RFRGRDRERBRCsunexpected '%s'sunexpected '%s', expected '%s's#popsC%r wanted to resolve the new state dynamically but no group matcheds,%r yielded empty string without stack changeNsunexpected char %r at %d(s s s (svariablesblock(R.s block_endslinestatement_end(RGRERC(Rt splitlinesRÀtendswithRzR×RytAssertionErrorR€RURÕt isinstanceR�t enumeratet __class__R‚Rt groupdicttcountt RuntimeErrorRÖtignore_if_emptyRtpoptend(R…RíR(R‰RîtlinestnewlinetposRˆtstackt statetokenst source_lengthtbalancing_stacktregexttokenst new_stateRãtidxRiRTRhR9t expected_optpos2((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyRëQs°                                   N( R‹RŒR�R‡RêRyRïRìRë(((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pyRÂ’s  € -(jR�RPR*Rt collectionsRtjinja2.exceptionsRt jinja2.utilsRtjinja2._compatRRRRRRÁRÅtURÉRÇRÑRÍt SyntaxErrorRÏtjinja2R t xid_startt xid_continueRËRnt TOKEN_ADDt TOKEN_ASSIGNt TOKEN_COLONt TOKEN_COMMAt TOKEN_DIVt TOKEN_DOTtTOKEN_EQtTOKEN_FLOORDIVtTOKEN_GTt TOKEN_GTEQt TOKEN_LBRACEtTOKEN_LBRACKETt TOKEN_LPARENtTOKEN_LTt TOKEN_LTEQt TOKEN_MODt TOKEN_MULtTOKEN_NEt TOKEN_PIPEt TOKEN_POWt TOKEN_RBRACEtTOKEN_RBRACKETt TOKEN_RPARENtTOKEN_SEMICOLONt TOKEN_SUBt TOKEN_TILDERÊRÌRÎRÐRÒRÔR\R]R^R_RÙRØRXRYRZR`RaRÛRÚR[RbR¨RcRútdicttktvRWRURÿR×R|RÓt frozensetRóRRfRjRmRpR�tobjectR‚R�RŽR›R¢RÄRÂ(((s0/usr/lib/python2.7/site-packages/jinja2/lexer.pytsî (                                                      1$        +[