o k`'@sBddlZddlTddlmZGdddeZedZddZdS) N)*)EMAIL_LOOKALIKE_PATTERNc@s&eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZddZedZdZdZdZddZded ed!ed"ed#ed$e d%e d&e d'e d(eefd)e e fg Zd*d+e d,ed-d.eeeeeeefd/ed0eeeed1fd2d1efd3eed4d5d6ed7ed8e e e eed9ed9ee ed9f d:ed;de"j'Z(e"#d?e"j)Z*e"#d@edAeedBe"j)Z+e"#eedCdDZ,dEdFZ-e.dGdHZ/e.dIdJZ0e.dKdLZ1dMdNZ2e.dOdPZ3dQdRZ4dSS)T WikiParserzWiki text parser.z'''''z'''z\*\*''z//__z~~z,,z\^`z\{\{\{z{{{z\}\}\}z}}}u-*•z[a-zA-Z][-a-zA-Z0-9+._]*z [a-zA-Z.+-]*?z'[^']+'|\"[^\"]+\"z[\w/?!#@](?\s])z [\w/=](?[-\w]+)=(?P".*?"|'.*?'|[-,\w]+)cCs d||fS)Nz2=#(?P%s)(?:%s(?P[^\]]*))?r)namer rrr _set_anchorDszWikiParser._set_anchorz(?P!?%s)z(?P!?%s)z(?P!?%s)z(?P!?%s)z(?P!?%s)z(?P!?%s)z(?P!?%s)z(?P!?%s)z(?P!?%s)z%(?P!?%s(?P.*?)%s)z'(?P!?%s(?P.*?)%s)z(?P!?\\\\)z(?P!?%s)z0(?P!?<(?P%s):(?P[^>]+)>)z(?P[&<>])z>(?P!?((?P%s):(?P%s:(?:%s)|%s|%s(?:%s*%s)?)))z(?P!?\[(?:(?P%s)|z/(?P%s):(?P%s:(?:%s)|%s|[^\]\s\%s]*))u​z#(?:[\s%s]+(?P