Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 ǁaW\@s>dZddlZddlZddlZejddkr4eZeZne Ze ZddZ Gddde Z Gdd d e eZGd d d eZGd d d eZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZejdZejdZejd Zd!d"Zd#d$Z d%d&Z!dNd(d)Z"d*d+Z#d,d-Z$d.d/Z%Gd0d1d1e&Z'Gd2d3d3e'Z(Gd4d5d5Z)d6d7Z*e*d8Z+e*d9Z,e*d:Z-e*d;Z.e*d<e*d=d>Z/ejd?j0Z1eje)j2ej3j0Z4ejd@j0Z5e6edAr ej7dBdCZ8ndDdEZ8dFdGZ9dHdIZ:dJdKZ;GdLdMdMeZsz4FunctionalPseudoElement.__repr__..)rr r$r%)rrrr rs z FunctionalPseudoElement.__repr__cCsdd|jDS)NcSsg|] }|jqSr)type)r'r(rrr r)sz:FunctionalPseudoElement.argument_types..)r%)rrrr argument_typessz&FunctionalPseudoElement.argument_typescCs"|jj\}}}|d7}|||fS)Nr)r"r)rrrr rrr rsz#FunctionalPseudoElement.specificityN)r r rrrrr+rrrrr r}s rc@s0eZdZdZddZddZddZdd Zd S) Functionz( Represents selector:name(expr) cCs||_t||_||_dS)N)r"r r$r%)rr"r$r%rrr rs zFunction.__init__cCs$d|jj|j|jdd|jDfS)Nz %s[%r:%s(%r)]cSsg|] }|jqSr)r&)r'r(rrr r)sz%Function.__repr__..)rr r"r$r%)rrrr rszFunction.__repr__cCsdd|jDS)NcSsg|] }|jqSr)r*)r'r(rrr r)sz+Function.argument_types..)r%)rrrr r+szFunction.argument_typescCs"|jj\}}}|d7}|||fS)Nr)r"r)rrrr rrr rszFunction.specificityN)r r rrrrr+rrrrr r,s r,c@s(eZdZdZddZddZddZdS) Pseudoz# Represents selector:ident cCs||_t||_dS)N)r"r ident)rr"r.rrr rszPseudo.__init__cCsd|jj|j|jfS)Nz %s[%r:%s])rr r"r.)rrrr rszPseudo.__repr__cCs"|jj\}}}|d7}|||fS)Nr)r"r)rrrr rrr rszPseudo.specificityN)r r rrrrrrrrr r-sr-c@s(eZdZdZddZddZddZdS) Negationz. Represents selector:not(subselector) cCs||_||_dS)N)r" subselector)rr"r0rrr rszNegation.__init__cCsd|jj|j|jfS)Nz%s[%r:not(%r)])rr r"r0)rrrr rszNegation.__repr__cCs6|jj\}}}|jj\}}}||||||fS)N)r"rr0)ra1b1c1a2b2c2rrr rszNegation.specificityN)r r rrrrrrrrr r/sr/c@s(eZdZdZddZddZddZdS) Attribz> Represents selector[namespace|attrib operator value] cCs"||_||_||_||_||_dS)N)r" namespaceattriboperatorr&)rr"r8r9r:r&rrr rs zAttrib.__init__cCs\|jrd|j|jf}n|j}|jdkrz %s[%r %s %r])rBrr r"r0)rZcombrrr r*s  zCombinedSelector.__repr__cCs6|jj\}}}|jj\}}}||||||fS)N)r"rr0)rr1r2r3r4r5r6rrr r2szCombinedSelector.specificityN)r r rrrrrrrr rA#srAz%^[ \t\r\n\f]*([a-zA-Z]+)[ \t\r\n\f]*$z6^[ \t\r\n\f]*([a-zA-Z]*)#([a-zA-Z0-9_-]+)[ \t\r\n\f]*$z?^[ \t\r\n\f]*([a-zA-Z]*)\.([a-zA-Z][a-zA-Z0-9_-]*)[ \t\r\n\f]*$cCstj|}|r$tt|jddgStj|}|dk r\ttt|jdpHdd|jdgStj|}|dk rttt|jdpdd|jdgSt t |}||_ t t |S)aParse a CSS *group of selectors*. If you don't care about pseudo-elements or selector specificity, you can skip this and use :meth:`~GenericTranslator.css_to_xpath`. :param css: A *group of selectors* as an Unicode string. :raises: :class:`SelectorSyntaxError` on invalid selectors. :returns: A list of parsed :class:`Selector` objects, one for each selector in the comma-separated group. r)r=N)_el_rematchrr<group_id_rer? _class_rer! TokenStreamtokenizesourcelistparse_selector_group)ZcssrFstreamrrr parseEs    rPccs@|jx2tt|V|jdkr6|j|jq Pq WdS)NDELIM,)rQrR)skip_whitespacerparse_selectorpeeknext)rOrrr rNos  rNcCst|\}}xl|j|j}|d kr(P|r8td||jdddrZ|jj}|jnd}t|\}}t|||}qW||fS) NEOFrQrRz4Got pseudo-element ::%s not at the end of a selector+>~rCrWNrQrR)r[r\)parse_simple_selectorrSrUris_delimrVr&rA)rOresultrrUrBZ next_selectorrrr rTys"    rTFc Cs|jt|j}|j}|jdks,|dkrv|jdkrB|jj}n |jd}|jdkrl|j|j}q~|}d}nd}}t||}d}x|j}|jdks|j ddd d s|r|d krP|rt d ||jd krt ||jj}q|d!kr|jt ||j }q|d"kr,|jt||}q|d#krL|j|jd$kr|j|j }|jd%kr|jt|t|}q|j }|jd&krt|}q|jd'krt||}q|j|j|jdkr:|rt dt|dd\} } |j} | rt d| | jf| d(kr.t d| ft|| }nt||t|}qt d|fqWt|j|krt d|jf||fS))NIDENTrQr>|SrWrRrXrYrZ)z4Got pseudo-element ::%s not at the end of a selectorHASH.[:( first-line first-letterbeforeafternotzGot nested :not()T)inside_negationz+Got pseudo-element ::%s inside :not() at %szExpected ')', got %szExpected selector, got %s)rQr>)rQra)rbrW)rQrc)rQre)rQrf)rQrg)rQrg)rQrh)rirjrkrl)rQrh)rQrc)rSlenusedrUr*rVr&next_ident_or_starr<r^rr?r! next_ident parse_attribrparse_argumentsr_unicoder-r]posr/r,) rOrnZselector_startrUr8r=r_rr.ZargumentZargument_pseudo_elementrVrrr r]s                 r]cCsVg}xL|j|j}|jd ks(|d kr4|j|q|d kr@|Std|fqWdS)Nr`STRINGNUMBERrQrX-rczExpected an argument, got %s)r`rwrxrQrXrQry)rzr{)rQrc)rSrVr*appendr)rOr%rVrrr rts  rtcCsj|j|j}|dkr6|jdkr6td|jf|jdkrz|j|jdkrhd}|jd}q|}|j}d}nd}}|dkr|j|j}|dkrt|||ddS|dkrd}nD|jdd d d dd o|jdkr|jd}|jntd |f|j|j}|j dkr0td|f|j|j}|dkrXtd|ft|||||jS)NrQrazExpected '|', got %s=z|=]r;^$r>rZ!zOperator expected, got %sr`rwz Expected string or ident, got %szExpected ']', got %s)rQra)rQra)rQr})rQr~)rQr})rQr})r`rw)rQr~) rSrqrUrrVrrr7r^r&r*)r"rOr9r8oprVr&rrr rssN          rscCsx|D]}|jdkrtdqWdjdd|Dj}|dkrDdS|d krPdS|d kr\dSd |krpd t|fS|jd d\}}|sd}n&|d ks|d krt|d}nt|}|sd }nt|}||fS)zv Parses the arguments for :nth-child() and friends. :raises: A list of tokens :returns: :``(a, b)`` rwz$String tokens not allowed in series.rcss|] }|jVqdS)N)r&)r'r(rrr +szparse_series..ZoddrDrZevenrnryrX1)rDr)rDr)rr)r* ValueErrorjoinstripintsplit)tokensr(srrrrr parse_series s,    rc@s@eZdZddZddZddZeejdZ eejdZ d S) TokencCstj|||f}||_|S)N)tuple__new__rv)clsZtype_r&rvobjrrr rFsz Token.__new__cCsd|j|j|jfS)Nz<%s '%s' at %i>)r*r&rv)rrrr rKszToken.__repr__cGs|jdko|j|kS)NrQ)r*r&)rvaluesrrr r^NszToken.is_delimrrN) r r rrrr^propertyr: itemgetterr*r&rrrr rEs rc@seZdZddZddZdS)EOFTokencCstj|dd|S)NrW)rr)rrvrrr rVszEOFToken.__new__cCsd|j|jfS)Nz <%s at %i>)r*rv)rrrr rYszEOFToken.__repr__N)r r rrrrrrr rUsrc@s<eZdZdZedZdeZdZdeefZdeefZdS) TokenMacrosz&\\([0-9a-f]{1,6})(?:\r\n|[ \n\r\t\f])?z|\\[^\n\r\f0-9a-f]z\\(?:\n|\r\n|\r|\f)|z [^\0-\177]z[_a-z0-9-]|%s|%sz [_a-z]|%s|%sN) r r runicode_escapeescapeZ string_escapeZnonasciiZnmcharZnmstartrrrr r`s  rcCstj|tttjjS)N)recompilevarsr IGNORECASErF)patternrrr _compilehsrz [ \t\r\n\f]+z[+-]?(?:[0-9]*\.[0-9]+|[0-9]+)z#(?:%(nmchar)s)+z -?(?:%(nmstart)s)(?:%(nmchar)s)*z!([^\n\r\f\\']|%(string_escape)s)*z!([^\n\r\f\\"]|%(string_escape)s)*)'"z\\(.)z\\(?:\n|\r\n|\r|\f) methodcallerrGrcCs |jdS)Nr)rG)rFrrr _replace_simple}srcCs&t|jdd}|tjkrd}t|S)Nri)rrGsys maxunicode_unichr)rFZ codepointrrr _replace_unicodes rcCstt|}tt|}|S)N)_sub_unicode_escaper_sub_simple_escaper)r&rrr unescape_idents  rccsd}t|}x||krt||d}|rBtdd|V|j}qt||d}|r~tttt|j }td||V|j}qt ||d}|rtttt|j dd}td||V|j}q||}|t krRt |||dd}|j}||krt d||||kr t d |ttttt d |j }td ||V|d}qt||d}|r|j }td ||V|j}q|d }|||dkr|jd|}|dkr|}q|d 7}qtd|||V|d7}qWt|VdS)Nr)rvrbrCr`rrdzUnclosed string at %szInvalid string at %srrwrxrDz/*z*/rQ)ro_match_whitespacerend _match_identrrrrrG _match_hash_match_string_by_quoter_sub_newline_escape _match_numberfindr)rrvZlen_srFr&ZquoteZend_posZpos2rrr rKsh           rKc@s>eZdZdddZddZddZdd Zd d Zd d ZdS)rJNc CsTg|_t||_||_d|_d|_y|jj|_Wntk rN|jj |_YnXdS)NF) rpiterrrLpeeked_peekingrV next_tokenAttributeError__next__)rrrLrrr rs zTokenStream.__init__cCs<|jr d|_|jj|j|jS|j}|jj||SdS)NF)rrpr|rr)rrVrrr rVs zTokenStream.nextcCs|js|j|_d|_|jS)NT)rrr)rrrr rUs zTokenStream.peekcCs&|j}|jdkr td|f|jS)Nr`zExpected ident, got %s)rVr*rr&)rrVrrr rrs zTokenStream.next_identcCs6|j}|jdkr|jS|dkr$dStd|fdS)Nr`rQr>zExpected ident or '*', got %s)rQr>)rVr*r&r)rrVrrr rqs zTokenStream.next_ident_or_starcCs|j}|jdkr|jdS)Nrb)rUr*rV)rrUrrr rSs zTokenStream.skip_whitespace)N) r r rrrVrUrrrqrSrrrr rJs    rJ)F)=rrrr: version_infoZunicoderuZunichrrstrchrr Exceptionr SyntaxErrorrobjectrr!rr,r-r/r7r<r?rArrErHrIrPrNrTr]rtrsrrrrrrrrrrrsubrrIrrhasattrrrrrrKrJrrrr  sh ;#  *  S-%     A