Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 ³Y„jÏ¢ã@s dddgZddljZddlZddlZddlZddlmZddlm Z m Z ddlm Z m Z m Z ddlmZmZmZdd lmZmZmZmZmZmZdd lmZdd lmZdd lmZdd lmZdd„Z dd„Z!dd„Z"dd„Z#dd„Z$Gdd„deƒZ%Gdd„deƒZ&ddd„Z'ddd„Z(dS) ÚPolicyÚ policy_readerÚ policy_writeréN)Úconfig)ÚcheckIPÚcheckIP6)ÚuniqifyÚmax_policy_name_lenÚportStr)ÚDEFAULT_POLICY_TARGETÚPOLICY_TARGETSÚDEFAULT_POLICY_PRIORITY)Ú IO_ObjectÚIO_Object_ContentHandlerÚIO_Object_XMLGeneratorÚ check_portÚ check_tcpudpÚcheck_protocol)Úrich)Úlog)Úerrors)Ú FirewallErrorc Cs |dkr �n�|dkr�n„|dkr˜|jr`|jjrJtjdt|jƒƒd|_dStj|dƒ|j_dS|d|jj kr„|jj j |dƒntjd|dƒ�n|dk�rN|jrè|jjrÌtjdt|jƒƒd|_dStj |d|d ƒ|j_dSt |dƒt |d ƒt|dd ƒ|d f}||jjk�r4|jjj |ƒntjd |d|d ƒ�nN|d k�rà|j�rš|jj�r†tjdt|jƒƒd|_dStj|d ƒ|j_nBt|d ƒ|d |jjk�rÌ|jjj |d ƒntjd |d ƒ�n¼|dk�rh|j�r.|jj�rtjdt|jƒƒd|_dStj|dƒ|j_dS|d|jjk�rT|jjj |dƒntjd|dƒ�n4|dk�rÊ|j�r¶|jj�r tjdt|jƒƒd|_dStj|dƒ|j_dStjd|dƒ�nÒ|dk�r2|j�r|jj�rtjdt|jƒƒd|_dStjƒ|j_n|jj�r&tjdƒnd|j_�nj|dk�r†d}d|k�rR|d}d}d|k�rh|d}|j�r¶|jj�r–tjdt|jƒƒd|_dStj|d|d ||ƒ|j_dSt |dƒt |d ƒ|�rÜt |ƒ|�r t|ƒ �r t|ƒ �r ttjd|ƒ‚t|dd ƒ|d t|d ƒt|ƒf}||jjk�rL|jjj |ƒn6tjd|d|d |�rld|nd|�r|d|ndƒ�n|dk�r@|j�rÚ|jj�r¾tjdt|jƒƒd|_dStj|d|d ƒ|j_dSt |dƒt |d ƒt|dd ƒ|d f}||jj k�r&|jj j |ƒntjd|d|d ƒ�n\|dk�rì|j�sftjdƒd|_dS|jj!�r†tjd t|jƒƒdSd!}d}d"|k�r |d"}d}d#|k�r¶|d#}d$|k�rÖ|d$j"ƒdLk�rÖd}tj#|||ƒ|j_!�n°|dMk�r¾|j�stjd+ƒd|_dS|jj$�r0tjd,ƒd|_dS|d'k�rHtj%ƒ|j_$nh|d(k�rxd} d-|k�rh|d-} tj&| ƒ|j_$n8|d)k�r�tj'ƒ|j_$n |d*k�r°|d.} tj(| ƒ|j_$|jj$|_)�nÞ|d/k�r^|j�sÞtjd0ƒdS|jj�rötjd1ƒdSd} d2|k�r*|d2} | dNk�r*tjd;ƒd|_dSd<|k�r<|d<nd} tj*| | ƒ|j_|jj|_)�n>|d=k�r¼|j�s~tjd>ƒdS|jj+�r¤tjd?t|jƒƒd|_dStj,ƒ|j_+|jj+|_)nà|d@k�r,d} dA}dB|k�r|dB} | dOk�rtjdE|dBƒd|_dSdF|k�rt-|dFƒ}tj.| |dG�|_np|dHk�r˜|j)�sRtjdIƒd|_dS|j)j/�rxtjdJt|jƒƒd|_dS|d }tj0||j1dKƒƒ|j)_/nd!SdS)PNÚshortÚ descriptionÚservicez;Invalid rule: More than one element in rule '%s', ignoring.TÚnamez#Service '%s' already set, ignoring.ÚportÚprotocolú-z#Port '%s/%s' already set, ignoring.Úvaluez$Protocol '%s' already set, ignoring.z icmp-blockz&icmp-block '%s' already set, ignoring.z icmp-typez-Invalid rule: icmp-block '%s' outside of ruleÚ masqueradez!Masquerade already set, ignoring.z forward-portÚzto-portzto-addrz#to-addr '%s' is not a valid addressz-Forward port %s/%s%s%s already set, ignoring.z >%sz @%sz source-portz*Source port '%s/%s' already set, ignoring.Ú destinationz)Invalid rule: Destination outside of rulez?Invalid rule: More than one destination in rule '%s', ignoring.FÚaddressÚipsetÚinvertÚyesÚtrueÚacceptÚrejectÚdropÚmarkz$Invalid rule: Action outside of rulez"Invalid rule: More than one actionÚtypeÚsetrz!Invalid rule: Log outside of rulezInvalid rule: More than one logÚlevelÚemergÚalertÚcritÚerrorÚwarningÚnoticeÚinfoÚdebugzInvalid rule: Invalid log levelÚprefixÚauditz#Invalid rule: Audit outside of rulez9Invalid rule: More than one audit in rule '%s', ignoring.ÚrulerÚfamilyÚipv4Úipv6z&Invalid rule: Rule family "%s" invalidÚpriority)r:r=Úlimitz4Invalid rule: Limit outside of action, log and auditz9Invalid rule: More than one limit in rule '%s', ignoring.Úburst)r&r')r(r)r*r+)r/r0r1r2r3r4r5r6)r;r<)2Ú_ruleÚelementrr3ÚstrÚ _rule_errorrÚ Rich_ServiceÚitemÚservicesÚappendÚ Rich_Portrrr ÚportsÚ Rich_ProtocolrÚ protocolsÚRich_IcmpBlockÚ icmp_blocksÚ Rich_IcmpTypeÚRich_Masquerader ÚRich_ForwardPortrrrrÚ INVALID_ADDRÚ forward_portsÚRich_SourcePortÚ source_portsr"ÚlowerZRich_DestinationÚactionÚ Rich_AcceptÚ Rich_RejectÚ Rich_DropÚ Rich_MarkÚ _limit_okZRich_Logr8Z Rich_AuditÚintÚ Rich_Ruler>Z Rich_LimitÚget)ÚobjrÚattrsÚentryÚto_portZto_addrr%r#r$Z_typeZ_setr.r7r:r=r©rcú/usr/lib/python3.6/policy.pyÚcommon_startElementsÒ                                                                            recCs¾|dkr¬|jsžy|jjƒWn6tk rR}ztjd|t|jƒƒWYdd}~XnLXt|jƒ|jjkrŒ|jj j |jƒ|jjj t|jƒƒntjdt|jƒƒd|_d|_n|d krºd|_ dS) Nr9z%s: %sz Rule '%s' already set, ignoring.Fr(r)r*r+rr8)r(r)r*r+rr8) rCr@ZcheckÚ Exceptionrr3rBrEÚ rules_strÚrulesrGr[)r_rÚercrcrdÚcommon_endElements& rjcCsìt|tƒrdnd}|dkrT|jrT|jjƒ}x$|D]}||kr0ttjd|ƒ‚q0W�n”|dkr†x$|D]}t|dƒt|dƒqbW�nb|dkr¨x|D] }t |ƒq”W�n@|d krê|jrê|jj ƒ} x$|D]} | | krÆttj d | ƒ‚qÆW�nþ|d k�r”xš|D]’} t| dƒt| dƒ| d  �r>| d  �r>ttj d| ƒ‚| d �rTt| d ƒ| d rút | d ƒ rút| d ƒ rúttjd| d ƒ‚qúW�nT|dk�rÊx&|D]}t|dƒt|dƒ�q¤W�n|dk�rè�x|D�]} tj| d�} |j�r–| j�r–t| jtjƒ�st| jtjƒ�r–|jj ƒ} | jj| k�rLttj d | jjƒ‚nH| j�râ|jj| jjƒ}|j�râ| j|jk�râttj d| j| jjfƒ‚nL|j�rÜt| jtjƒ�rÜ|jjƒ}| jj|k�rÜttjdj||j| jjƒƒ‚�qÜWdS)NrZZonerFz '%s' not among existing servicesrIrérKrMz"'%s' not among existing icmp typesrRééz$'%s' is missing to-port AND to-addr z#to-addr '%s' is not a valid addressrTrgÚ rich_rules)Úrule_strz3rich rule family '%s' conflicts with icmp type '%s'z){} '{}': '{}' not among existing services)rgrn)Ú isinstancerÚ fw_configZ get_servicesrrZINVALID_SERVICErrrZ get_icmptypesZINVALID_ICMPTYPEÚINVALID_FORWARDrrrQrr]rArLrNrr:Z get_icmptyper"rDÚformat)r_rrEÚ all_configZobj_typeZexisting_servicesrrÚprotoZexisting_icmptypesZicmptypeÚfwd_portr9Zobj_richZictrcrcrdÚcommon_check_config2s€                      rwcCs0d|ji}|j}|dk r ||d<|jd|ƒdS)Nrr?r>)rr?Ú simpleElement)Úhandlerr>Údr?rcrcrdÚ_handler_add_rich_limitxs  r{c CsÒ|jrF|jdkrF|jdƒ|jdiƒ|j|jƒ|jdƒ|jdƒ|jrŒ|jdkrŒ|jdƒ|jdiƒ|j|jƒ|jdƒ|jdƒx6t|jƒD](}|jdƒ|jdd|iƒ|jdƒq˜Wx@t|j ƒD]2}|jdƒ|jd|d |d d œƒ|jdƒqÐWx8t|j ƒD]*}|jdƒ|jd d |iƒ|jdƒ�qWx8t|j ƒD]*}|jdƒ|jdd|iƒ|jdƒ�qLW|j �r¢|jdƒ|jdiƒ|jdƒxŽt|j ƒD]€}|jdƒ|d |d d œ}|d�rò|ddk�rò|d|d<|d�r|ddk�r|d|d<|jd|ƒ|jdƒ�q®WxBt|jƒD]4}|jdƒ|jd|d |d d œƒ|jdƒ�q>W�xT|jD�]H}i}|j�rœ|j|d<|jd k�r¶t|jƒ|d<|jdƒ|jd|ƒ|jdƒ|j�rVi}|jj�rø|jj|d<|jj�r|jj|d<|jj�r$|jj|d<|jj�r6d|d<|jdƒ|jd|ƒ|jdƒ|j�rÀi}|jj�rx|jj|d<|jj�rŽ|jj|d<|jj�r d|d<|jdƒ|jd |ƒ|jdƒ|j�rxd} i}t|jƒtjk�röd} |jj|d<�nbt|jƒtjk�r(d} |jj|d<|jj |d <�n0t|jƒtj!k�rNd } |jj"|d <�n t|jƒtj#k�rfd} nòt|jƒtj$k�rŠd} |jj|d<nÎt|jƒtj%k�r®d!} |jj|d<nªt|jƒtj&k�rd} |jj|d<|jj |d <|jj'dk�rö|jj'|d<|jj(dk�rX|jj(|d<nFt|jƒtj)k�rBd} |jj|d<|jj |d <nt*t+j,d"t|jƒƒ‚|jdƒ|j| |ƒ|jdƒ|j-�ri}|j-j.�rš|j-j.|d#<|j-j/�r°|j-j/|d$<|j-j0�rþ|jdƒ|jd%|ƒ|jd&ƒt1||j-j0ƒ|jd'ƒ|jd%ƒn|jdƒ|jd%|ƒ|jdƒ|j2�r˜i}|j2j0�rx|jdƒ|jd(iƒ|jd&ƒt1||j2j0ƒ|jd'ƒ|jd(ƒn|jdƒ|jd(|ƒ|jdƒ|j3�rªd} i}t|j3ƒtj4k�rÀd)} n|t|j3ƒtj5k�rîd*} |j3j�r<|j3j|d+<nNt|j3ƒtj6k�rd,} n6t|j3ƒtj7k�r*d-} |j3j8|d.<nt-j9d/t|j3ƒƒ|j3j0�rŠ|jdƒ|j| |ƒ|jd&ƒt1||j3j0ƒ|jd'ƒ|j| ƒn|jdƒ|j| |ƒ|jdƒ|jdƒ|jdƒ|jdƒ�q€WdS)0Nr!z rÚ rrrrrrk)rrrrz icmp-blockr rlzto-portrmzto-addrz forward-portz source-portr:r=r9r#Úmacr$ÚTruer%z Úsourcer"z icmp-typez"Unknown element '%s' in obj_writerr7r.rz z r8r(r)r,r*r+r-zUnknown action '%s'):rÚignorableWhitespaceÚ startElementZ charactersÚ endElementrrrFrxrIrKrMr rRrTrhr:r=rBrÚaddrr}r$r%r"rAr,rrDrrHrrrJrrOrLrNrPrbÚ to_addressrSrrZINVALID_OBJECTrr7r.r>r{r8rVrWrXrYrZr-r3) r_ryrrrZicmpZforwardr`r9rArVrcrcrdÚ common_writer€s\                                                                                        r…csPeZdZd7ZdZeZdgZd8d9d:d;d dgfd dgfddgfddgfdd?gfd@ddgfddgffZdddgZ dddgdgddgdgdgdddgddddgddgddddddgdgdgdgdœZ ddgdd gd!dgd"d#d$d!d%gd"d$d%gd&d'gd(gd)gd*œZ ‡fd+d,„Z d-d.„Z ‡fd/d0„Z‡fd1d2„Zd3d4„Z‡fd5d6„Z‡ZS)Ari€iÿrÚversionr!rrÚtargetrFrIrMr FrRrnrKrTr=Ú ingress_zonesÚ egress_zonesÚ_rú/Nrrrrr-)rrÚpolicyrrz icmp-blockz icmp-typer z forward-portr9rr"rz source-portrr8r(r)r*r+r>z ingress-zonez egress-zonezto-portzto-addrr:r#r}r%r$r7r.r,r?)rŒz forward-portr9rr"rr)r>cs†tt|ƒjƒd|_d|_d|_t|_g|_g|_ g|_ g|_ d|_ g|_ g|_d|_g|_g|_d|_|j|_d|_g|_g|_dS)Nr!F)ÚsuperrÚ__init__r†rrr r‡rFrIrKrMr rRrTrqrhrgÚappliedÚpriority_defaultr=Zderived_from_zonerˆr‰)Úself)Ú __class__rcrdrŽ–s(zPolicy.__init__cCs®d|_d|_d|_t|_|jdd…=|jdd…=|jdd…=|jdd…=d|_ |j dd…=|j dd…=d|_ |j dd…=|jdd…=d|_|j|_|jdd…=|jdd…=dS)Nr!F)r†rrr r‡rFrIrKrMr rRrTrqrhrgr�r�r=rˆr‰)r‘rcrcrdÚcleanup¬s$         zPolicy.cleanupcs"|dkr|jSttt|ƒ|ƒSdS)Nrn)rgÚgetattrr�r)r‘r)r’rcrdÚ __getattr__ÀszPolicy.__getattr__csB|dkr,dd„|Dƒ|_dd„|jDƒ|_ntt|ƒj||ƒdS)NrncSsg|]}tj|d�‘qS))ro)rr])Ú.0Úsrcrcrdú Èsz&Policy.__setattr__..cSsg|] }t|ƒ‘qSrc)rB)r–r—rcrcrdr˜Ês)rhrgr�rÚ __setattr__)r‘rr)r’rcrdr™ÆszPolicy.__setattr__c Cst||||ƒ|dkr2|tkr.ttjd|ƒ‚�næ|dkrz||jksX||jksX||jkrvttjd||j|j|jfƒ‚�nž|dk�rhddg}|j r ||j j ƒ7}xÂ|D]º}||krÂttj d |ƒ‚|dkràt ddgƒt |ƒ@�sþ|dk�rt |ƒt |gƒ�rttj d |ƒ‚|dkr¦|dk�r8d|k�r8d|dk�sT|dkr¦d|kr¦d|dkr¦ttj d ƒ‚q¦W�n°|d k�r|�rd|k�ržd|dk�ržttj d ƒ‚nxd|k�rd|dk�rÂttj dƒ‚xR|dD]F}|dk�rÞ�qÌ|j j |ƒ}|j �rÌd|j j|ƒk�rÌttj dƒ‚�qÌW�nþ|dk�r4�xð|D�]}tj|d�}|j�røt|jtjƒ�rød|k�r|d|dk�r|ttj d ƒ‚nxd|k�r,d|dk�r ttj dƒ‚xR|dD]F}|dk�r¼�qª|j j |ƒ}|j �rªd|j j|ƒk�rªttj dƒ‚�qªW�q,|j�r¶t|jtjƒ�r¶d|k�r,d|dk�r@|jj�r´ttjdƒ‚nt|d�r,|jj�s`ttjdƒ‚d|dk�r,x¼|dD]8}|j j |ƒ}|j �rxd|j j|ƒk�rxttj dƒ‚�qxWnv|j�r,t|jtjƒ�r,d|k�r,xR|dD]F}|dk�rô�qâ|j j |ƒ}|j �râd|j j|ƒk�râttj dƒ‚�qâW�q,Wnä|dk�rxØ|D]Ð} d|k�rnd|dk�rnttj dƒ‚n¤d|k�rDd|dk�rž| d�rttjdƒ‚nt|d�rD| d�s¾ttjdƒ‚d|dk�rDxD|dD]8}|j j |ƒ}|j �rÖd|j j|ƒk�rÖttj dƒ‚�qÖW�qDWdS)Nr‡z'%s' is invalid targetr=zQ%d is invalid priority. Must be in range [%d, %d]. The following are reserved: %srˆr‰ÚANYÚHOSTz'%s' not among existing zonesz>'%s' may only contain one of: many regular zones, ANY, or HOSTzF'HOST' can only appear in either ingress or egress zones, but not bothr z.'masquerade' is invalid for egress zone 'HOST'z/'masquerade' is invalid for ingress zone 'HOST'Z interfaceszR'masquerade' cannot be used in a policy if an ingress zone has assigned interfacesrn)rozAA 'forward-port' with 'to-addr' is invalid for egress zone 'HOST'zC'forward-port' requires 'to-addr' if egress zone is 'ANY' or a zonezS'forward-port' cannot be used in a policy if an egress zone has assigned interfaceszR'mark' action cannot be used in a policy if an egress zone has assigned interfacesrRz1'forward-port' is invalid for ingress zone 'HOST'rm)rˆr‰)ršr›)ršr›)ršr›)rwr rrÚINVALID_TARGETÚpriority_reservedÚ priority_maxÚ priority_minZINVALID_PRIORITYrqÚ get_zonesZ INVALID_ZONEr-Zget_zoneZget_zone_config_dictrr]rArprOrPr„rrrVrZ) r‘rrErtZexisting_zonesÚzoneZz_objr9r_rvrcrcrdÚ _check_configÎs¶       "                           zPolicy._check_configcsÖtt|ƒj|ƒ|jdƒr,ttjd|ƒ‚n¦|jdƒrHttjd|ƒ‚nŠ|jdƒdkrhttjd|ƒ‚njd|kr„|d|j dƒ…}n|}t |ƒt ƒkr²ttjd|t |ƒt ƒfƒ‚|j rÒ||j j ƒkrÒttjdƒ‚dS)Nr‹z'%s' can't start with '/'z'%s' can't end with '/'rkzmore than one '/' in '%s'z&Policy of '%s' has %d chars, max is %dz,Policies can't have the same name as a zone.)r�rÚ check_nameÚ startswithrrÚ INVALID_NAMEÚendswithÚcountÚfindÚlenr rqr Z NAME_CONFLICT)r‘rZ checked_name)r’rcrdr£,s*      zPolicy.check_namei€ÿÿ)r†r!)rr!)rr!)r‡r!)r!r!)r F)r!r!r!r!)r!r!)r=r)Ú__name__Ú __module__Ú __qualname__rŸržr r�r�ZIMPORT_EXPORT_STRUCTUREZADDITIONAL_ALNUM_CHARSZPARSER_REQUIRED_ELEMENT_ATTRSZPARSER_OPTIONAL_ELEMENT_ATTRSrŽr“r•r™r¢r£Ú __classcell__rcrc)r’rdrZsr        ^c@s$eZdZdd„Zdd„Zdd„ZdS)Úpolicy_ContentHandlercCs"tj||ƒd|_d|_d|_dS)NF)rrŽr@rCr[)r‘rErcrcrdrŽHs zpolicy_ContentHandler.__init__cCstj|||ƒ|jrdS|jj||ƒt|||ƒr6dS|dkržd|krR|d|j_d|krjt|dƒ|j_d|krš|d}|t krŽt t j |ƒ‚|rš||j_ �n^|dkrÞ|d|jjkrÊ|jjj|dƒntjd|dƒ�n|dk�r |d|jjk�r|jjj|dƒntjd |dƒnÜ|d k�rì|j�sFtjd ƒd |_dS|jj�rltjd t|jƒƒd |_dSd}d|k�r�|djƒdk�r�d }d}}}d|k�r®|d}d|k�rÀ|d}d|k�rÒ|d}tj||||d�|j_dStjd|ƒdSdS)NrŒr†r=r‡z ingress-zonerz(Ingress zone '%s' already set, ignoring.z egress-zonez'Egress zone '%s' already set, ignoring.rz$Invalid rule: Source outside of ruleTz:Invalid rule: More than one source in rule '%s', ignoring.Fr%r&r'r#r}r$)r%zUnknown XML element '%s')r&r')rr�rCrEZparser_check_element_attrsrer†r\r=r rrrœr‡rˆrGrr3r‰r@rrBrUrZ Rich_Source)r‘rr`r‡r%rƒr}r$rcrcrdr�Nsf                 z"policy_ContentHandler.startElementcCstj||ƒt||ƒdS)N)rr‚rj)r‘rrcrcrdr‚Žs z policy_ContentHandler.endElementN)rªr«r¬rŽr�r‚rcrcrcrdr®Gs@r®Fc Cstƒ}|jdƒs ttjd|ƒ‚|dd …|_|s>|j|jƒ||_||_|j t j ƒrZdnd|_ |j |_ t|ƒ}tjƒ}|j|ƒd||f}t|dƒ�b}tjdƒ}|j|ƒy|j|ƒWn8tjk rô} zttjd| jƒƒ‚WYdd} ~ XnXWdQRX~~|S) Nz.xmlz'%s' is missing .xml suffixéFTz%s/%sÚrbznot a valid policy file: %séüÿÿÿ)rr¦rrr¥rr£ÚfilenameÚpathr¤rÚ ETC_FIREWALLDZbuiltinÚdefaultr®ÚsaxZ make_parserZsetContentHandlerÚopenZ InputSourceZ setByteStreamÚparseZSAXParseExceptionZINVALID_POLICYZ getException) r²r³Z no_check_namerŒryÚparserrÚfrÚmsgrcrcrdr“s6        (c Csø|r|n|j}|jr$d||jf}nd||jf}tjj|ƒr„ytj|d|ƒWn0tk r‚}ztj d||ƒWYdd}~XnXtjj |ƒ}|j t j ƒrÒtjj|ƒ rÒtjjt j ƒsÆtjt j dƒtj|dƒtj|ddd�}t|ƒ}|jƒi}|j�r|jd k�r|j|d <|j|jk�r0t|jƒ|d <|j|d <|jd |ƒ|jdƒt||ƒx8t|jƒD]*} |jdƒ|jdd| iƒ|jdƒ�qfWx8t|jƒD]*} |jdƒ|jdd| iƒ|jdƒ�q W|jd ƒ|jdƒ|j ƒ|j!ƒ~dS)Nz%s/%sz %s/%s.xmlz%s.oldzBackup of file '%s' failed: %sièZwtzUTF-8)ÚmodeÚencodingr!r†r=r‡rŒr|z z ingress-zonerz egress-zone)"r³r²rÚosÚexistsÚshutilZcopy2rfrr2Údirnamer¤rr´ÚmkdirÚior·rZ startDocumentr†r=r�rBr‡r�r€r…rrˆrxr‰r‚Z endDocumentÚclose) rŒr³Ú_pathrr»Údirpathrºryr`r¡rcrcrdr°sN             )F)N))Ú__all__Zxml.saxr¶r¾rÃrÀZfirewallrZfirewall.functionsrrrr r Zfirewall.core.baser r r Zfirewall.core.io.io_objectrrrrrrZ firewall.corerZfirewall.core.loggerrrZfirewall.errorsrrerjrwr{r…rr®rrrcrcrcrdÚs4        F[nL