ungc@sddlZddljZddljZddlTddlmZdfdYZdfdYZde fd YZ d fd YZ e d kr~ddl Z e jd dkree jdZejZejedd Zejenue jd dkr{y=e e jddedeZejdGHejdGHWne k rwZejdGHnXnndS(iN(t*(tcopyt PolicyLexc BseZd&Zed'ZiZdZdZdZdZdZ dZ dZ dZ dZ dZd Zd!Zd"Zd#Zd$Zd%ZRS((tPOLICYtALGORITHM_POLICYtZONEt ALGORITHMt DIRECTORYtKEYTTLtKEY_SIZEt ROLL_PERIODt PRE_PUBLISHt POST_PUBLISHtCOVERAGEtSTANDBYtNONEt DATESUFFIXtKEYTYPEtALGNAMEtSTRtQSTRINGtNUMBERtLBRACEtRBRACEtSEMIs s (//|\#).*s\{s\}t;cCs"|jj|jjd7_dS(s\n+s N(tlexertlinenotvaluetcount(tselftt((s./usr/lib/python2.7/site-packages/isc/policy.pyt t_newline7scCs"|jj|jjd7_dS(s/\*(.|\n)*?\*/s N(RRRR(RR((s./usr/lib/python2.7/site-packages/isc/policy.pyt t_comment;scCs+tjd|jjdj|_|S(s(?i)(?<=[0-9 \t])(y(?:ears|ear|ea|e)?|mo(?:nths|nth|nt|n)?|w(?:eeks|eek|ee|e)?|d(?:ays|ay|a)?|h(?:ours|our|ou|o)?|mi(?:nutes|nute|nut|nu|n)?|s(?:econds|econd|econ|eco|ec|e)?)\bs(?i)(y|mo|w|d|h|mi|s)([a-z]*)i(tretmatchRtgrouptlower(RR((s./usr/lib/python2.7/site-packages/isc/policy.pyt t_DATESUFFIX?s'cCs|jj|_|S(s(?i)\b(KSK|ZSK)\b(Rtupper(RR((s./usr/lib/python2.7/site-packages/isc/policy.pyt t_KEYTYPEDscCs|jj|_|S(s(?i)\b(RSAMD5|DH|DSA|NSEC3DSA|ECC|RSASHA1|NSEC3RSASHA1|RSASHA256|RSASHA512|ECCGOST|ECDSAP256SHA256|ECDSAP384SHA384|ED25519|ED448)\b(RR'(RR((s./usr/lib/python2.7/site-packages/isc/policy.pyt t_ALGNAMEIscCs|jj|jd|_|S(s[A-Za-z._-][\w._-]*R(t reserved_maptgetRttype(RR((s./usr/lib/python2.7/site-packages/isc/policy.pytt_STRNscCs2|jj|jd|_|jdd!|_|S(s"([^"\n]|(\\"))*"Rii(R*R+RR,(RR((s./usr/lib/python2.7/site-packages/isc/policy.pyt t_QSTRINGSscCst|j|_|S(s\d+(tintR(RR((s./usr/lib/python2.7/site-packages/isc/policy.pytt_NUMBERYscCs$d|jdGH|jjddS(NsIllegal character '%s'ii(RRtskip(RR((s./usr/lib/python2.7/site-packages/isc/policy.pytt_error^scKsdttkr'tjdd}ntdd}x-|jD]"}||j|jj|named_policy : POLICY name new_policy policy_option_group SEMIiN(RRZRR%(RR((s./usr/lib/python2.7/site-packages/isc/policy.pytp_named_policy<scCs|d|d s0  `