1import"../chunks/DsnmJJEf.js";import{p as Ka,az as Y,ay as h,x as e,a as Ja,s as a,c as s,z as S,at as K,aA as H,r,ax as o,aC as ae}from"../chunks/CJ7XFDwj.js";import{s as n}from"../chunks/CF9NALzG.js";import{a as c,f as m}from"../chunks/BI3PS2Rj.js";import{i as D}from"../chunks/BLvgNGtL.js";import{e as L,i as er}from"../chunks/WQFeq3XP.js";import{r as ar,s as rr}from"../chunks/DaPF3da-.js";import{s as P}from"../chunks/BURp2nFK.js";import{d as tr,e as sr,a as ge}from"../chunks/Cvk3c2V5.js";import{b as ir}from"../chunks/DV03w92c.js";import{S as nr}from"../chunks/C9n8Szxj.js";import{I as f}from"../chunks/C2w-c9YI.js";import{i as ta,f as or}from"../chunks/gAuXhdaQ.js";/* empty css */const I={sections:{whatIsAXFR:{title:"What is DNS Zone Transfer (AXFR)?",content:`DNS Zone Transfer (AXFR) is a mechanism for replicating DNS zone data between authoritative nameservers. When configured properly, it allows secondary nameservers to maintain synchronized copies of zone data from primary servers. 2 3However, if AXFR is misconfigured to allow transfers from any source, it becomes a serious security vulnerability. Attackers can download your entire DNS zone, revealing all subdomains, internal hostnames, IP addresses, and infrastructure details that should remain private.`},security:{title:"Security Implications",risks:[{risk:"Information Disclosure",severity:"High",description:"Entire DNS zone exposed, revealing all subdomains, internal hostnames, IP addresses, mail servers, and infrastructure topology.",impact:"Provides attackers with complete map of your DNS infrastructure"},{risk:"Reconnaissance for Attacks",severity:"High",description:"Leaked zone data enables targeted attacks on discovered internal systems, dev/staging environments, and admin interfaces.",impact:"Significantly increases attack surface and enables focused exploitation"},{risk:"Subdomain Enumeration",severity:"Medium",description:"Discovery of hidden subdomains like admin.example.com, staging.example.com, vpn.example.com that attackers can target.",impact:"Exposes systems intended to be hidden from public knowledge"},{risk:"Internal IP Exposure",severity:"Medium",description:"Private IP addresses and internal network topology revealed through zone records.",impact:"Helps attackers understand internal network architecture"}]},interpretation:{title:"Understanding Test Results",statuses:[{status:"Vulnerable",color:"error",meaning:"Zone transfer succeeded",description:"The nameserver allowed unrestricted zone transfer and returned DNS records. This is a critical security vulnerability.",action:"Immediately restrict AXFR to authorized secondary nameservers only"},{status:"Secure",color:"success",meaning:"Transfer refused",description:"The nameserver properly rejected the zone transfer request. This is the correct configuration for public queries.",action:"No action needed - nameserver is properly configured"},{status:"Error",color:"warning",meaning:"Query failed",description:"Could not complete the AXFR test due to timeout, connection failure, or other error. Nameserver may be unreachable.",action:"Verify nameserver is functioning properly"}]},properConfiguration:{title:"Proper AXFR Configuration",configurations:[{server:"BIND",syntax:`zone "example.com" { 4 type master; 5 file "/etc/bind/zones/example.com"; 6 allow-transfer { 7 192.0.2.1; // Secondary NS IP 8 203.0.113.5; // Another authorized secondary 9 }; 10};`,description:"Restrict transfers to specific IP addresses of secondary nameservers"},{server:"NSD",syntax:`zone: 11 name: "example.com" 12 zonefile: "example.com.zone" 13 provide-xfr: 192.0.2.1 NOKEY 14 provide-xfr: 203.0.113.5 NOKEY`,description:"Explicitly list authorized IPs for zone transfers"},{server:"PowerDNS",syntax:`allow-axfr-ips=192.0.2.1,203.0.113.5 15# Or in SQL zone metadata: 16INSERT INTO domainmetadata (domain_id, kind, content) 17VALUES (1, 'ALLOW-AXFR-FROM', '192.0.2.1');`,description:"Configure allowed transfer IPs in configuration or database"},{server:"Microsoft DNS",syntax:`Right-click zone â Properties â Zone Transfers: 18â Allow zone transfers
19 â Only to servers listed on the Name Servers tab 20 â Only to the following servers: [Add IPs] 21 â To any server`,description:"Use GUI to restrict transfers to specific servers only"}]},bestPractices:{title:"DNS Security Best Practices",practices:[{practice:"Restrict Zone Transfers",description:"Only allow AXFR from authorized secondary nameservers. Never allow unrestricted transfers.",priority:"Critical"},{practice:"Use TSIG Authentication",description:"Implement TSIG (Transaction Signature) for authenticated zone transfers between servers.",priority:"High"},{practice:"Regular Security Audits",description:"Periodically test your nameservers for AXFR vulnerabilities using tools like this one.",priority:"High"},{practice:"Minimize Public DNS Records",description:"Don't publish internal hostnames or private infrastructure details in public DNS zones.",priority:"Medium"},{practice:"Split-Horizon DNS",description:"Use separate internal and external DNS zones. Internal zone contains private records, external only public ones.",priority:"Medium"},{practice:"Monitor DNS Query Logs",description:"Log and monitor AXFR requests to detect unauthorized transfer attempts.",priority:"Medium"}]},remediation:{title:"Fixing AXFR Vulnerabilities",steps:[{step:"Identify Vulnerable Nameservers",details:"Use this tool or manual dig commands to test all authoritative nameservers",command:"dig @nameserver.example.com example.com AXFR"},{step:"Configure Transfer Restrictions",details:"Edit nameserver config to allow transfers only from secondary NS IP addresses",command:"allow-transfer { 192.0.2.1; 203.0.113.5; };"},{step:"Reload DNS Configuration",details:"Apply configuration changes and reload the nameserver",command:"rndc reload (BIND) or service nsd reload (NSD)"},{step:"Verify Fix",details:"Test from external IP to confirm AXFR is now refused, and from secondary to confirm authorized transfers still work",command:"dig @nameserver.example.com example.com AXFR"},{step:"Implement TSIG",details:"Add TSIG keys for cryptographic authentication of zone transfers",command:"tsig-keygen -a hmac-sha256 transfer-key"}]}}};var vr=m('<button><span class="example-domain"> </span> <span class="example-description"> </span></button>'),lr=m("<!> Testing...",1),dr=m("<!> Test AXFR",1),cr=m('<div class="alert alert-error svelte-71af8j" role="alert"><!> <div class="svelte-71af8j"><strong class="svelte-71af8j">Error</strong> <p class="svelte-71af8j"> </p></div></div>'),mr=m('<div class="alert alert-warning svelte-71af8j" role="alert"><!> <div class="svelte-71af8j"><strong class="svelte-71af8j">Limited Testing Mode</strong> <p class="svelte-71af8j"> </p></div></div>'),pr=m('<div class="alert alert-error svelte-71af8j" role="alert"><!> <div class="svelte-71af8j"><strong class="svelte-71af8j">Critical Security Vulnerability Detected!</strong> <p class="svelte-71af8j"> <strong class="svelte-71af8j">Immediate action required!</strong></p></div></div>'),fr=m('<div class="alert alert-success svelte-71af8j"><!> <div class="svelte-71af8j"><strong class="svelte-71af8j">All Nameservers Secure</strong> <p class="svelte-71af8j">Zone transfers are properly restricted. No AXFR vulnerabilities detected.</p></div></div>'),ur=m('<p class="truncated-note svelte-71af8j"> </p>'),_r=m('<div class="exposed-records svelte-71af8j"><pre class="svelte-71af8j"> </pre> <!></div>'),hr=m("<button><!> </button> <!>",1),gr=m('<div class="vulnerability-details svelte-71af8j"><div class="vulnerability-warning svelte-71af8j"><!> <strong class="svelte-71af8j">Zone transfer succeeded!</strong> </div> <!></div>'),yr=m('<div class="error-details svelte-71af8j"><!> <span> </span></div>'),xr=m('<div class="secure-details svelte-71af8j"><!> <span>Zone transfer properly refused</span></div>'),jr=m('<div><div class="nameserver-header svelte-71af8j"><div class="nameserver-info svelte-71af8j"><!> <div class="svelte-71af8j"><h4 class="svelte-71af8j"> </h4> <span class="nameserver-ip svelte-71af8j"> </span></div></div> <div class="nameserver-status svelte-71af8j"><span class="response-time svelte-71af8j"> </span> <span> </span></div></div> <!></div>'),br=m('<!> <!> <div class="stats-summary svelte-71af8j"><div class="stat-card svelte-71af8j"><!> <div class="stat-content svelte-71af8j"><span class="stat-label svelte-71af8j">Total Nameservers</span> <span class="stat-value svelte-71af8j"> </span></div></div> <div class="stat-card stat-error svelte-71af8j"><!> <div class="stat-content svelte-71af8j"><span class="stat-label svelte-71af8j">Vulnerable</span> <span class="stat-value svelte-71af8j"> </span></div></div> <div class="stat-card stat-success svelte-71af8j"><!> <div class="stat-content svelte-71af8j"><span class="stat-label svelte-71af8j">Secure</span> <span class="stat-value svelte-71af8j"> </span></div></div> <div class="stat-card stat-warning svelte-71af8j"><!> <div class="stat-content svelte-71af8j"><span class="stat-label svelte-71af8j">Errors</span> <span class="stat-value svelte-71af8j"> </span></div></div></div> <div class="results-section"><h3>Nameserver Test Results</h3> <div class="nameserver-results svelte-71af8j"></div></div> <div class="test-metadata svelte-71af8j"><p class="svelte-71af8j"><strong class="svelte-71af8j">Domain:</strong> <strong class="svelte-71af8j">Tested:</strong> </p></div>',1),Sr=m('<div><div class="risk-header svelte-71af8j"><h4 class="svelte-71af8j"> </h4> <span> </span></div> <p class="risk-description svelte-71af8j"> </p> <div class="risk-impact svelte-71af8j"><!> <em> </em></div></div>'),zr=m('<div><div class="status-header svelte-71af8j"><!> <h4 class="svelte-71af8j"> </h4></div> <p class="svelte-71af8j"> </p> <div class="status-action svelte-71af8j"><!> <strong class="svelte-71af8j">Action:</strong> </div></div>'),wr=m('<div class="config-section svelte-71af8j"><h4 class="svelte-71af8j"> </h4> <p class="svelte-71af8j"> </p> <pre class="svelte-71af8j"><code class="svelte-71af8j"> </code></pre></div>'),kr=m('<pre class="svelte-71af8j"><code class="svelte-71af8j"> </code></pre>'),Nr=m('<div class="remediation-step svelte-71af8j"><div class="step-number svelte-71af8j"> </div> <div class="step-content svelte-71af8j"><h4 class="svelte-71af8j"> </h4> <p class="svelte-71af8j"> </p> <!></div></div>'),Ir=m('<div><div class="practice-header svelte-71af8j"><!> <h4 class="svelte-71af8j"> </h4> <span> </span></div> <p class="svelte-71af8j"> </p></div>'),Rr=m('<div class="card"><header class="card-header"><h1>
21DNS Zone Transfer (AXFR) Security Tester</h1> <p>Test if zone transfers are improperly exposed - a critical DNS security vulnerability</p></header> <div class="card examples-card"><details class="examples-details"><summary class="examples-summary"><!> <h4>Quick Examples</h4></summary> <div class="examples-grid"></div></details></div> <form class="inline-form svelte-71af8j"><div class="form-group flex-grow svelte-71af8j"><label for="domain" class="svelte-71af8j">Domain Name</label> <input id="domain" type="text" placeholder="example.com" class="svelte-71af8j"/></div> <button type="submit" class="submit-btn svelte-71af8j"><!></button></form> <!> <!></div> <section class="card educational-part svelte-71af8j"><div class="card info-card svelte-71af8j"><h2> </h2> <p> </p></div> <div class="card info-card svelte-71af8j"><h2> </h2> <div class="risks-grid svelte-71af8j"></div></div> <div class="card info-card svelte-71af8j"><h2> </h2> <div class="statuses-list svelte-71af8j"></div></div> <div class="card info-card svelte-71af8j"><h2> </h2> <!></div> <div class="card info-card svelte-71af8j"><h2> </h2> <div class="remediation-steps svelte-71af8j"></div></div> <div class="card info-card svelte-71af8j"><h2> </h2> <div class="practices-list svelte-71af8j"></div></div></section>',1);function Hr(sa,ia){Ka(ia,!0);let U=K("example.com"),X=K(!1),g=K(null),M=K(null),re=K(null),V=new nr;const ye=ae(()=>()=>{const t=e(U).trim();return t.length>0&&ta(t)}),na=[{domain:"bbc.co.uk",description:""},{domain:"zonetransfer.me",description:""},{domain:"networkingtoolbox.net",description:""},{domain:"amazon.com",description:""},{domain:"wikipedia.org",description:""},{domain:"github.com",description:""},{domain:"gov.uk",description:""},{domain:"proton.me",description:""},{domain:"loveholidays.com",description:""}];async function xe(){S(X,!0),S(M,null),S(g,null);const t=e(U).trim();if(!t){S(M,"Domain name is required"),S(X,!1);return}if(!ta(t)){S(M,"Invalid domain name format"),S(X,!1);return}try{const i=await fetch("/api/internal/diagnostics/axfr",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({domain:t})});if(!i.ok){const l=await i.json().catch(()=>({}));throw new Error(l.message||`AXFR test failed (${i.status})`)}S(g,await i.json(),!0)}catch(i){S(M,or(i),!0)}finally{S(X,!1)}}function oa(t,i){S(U,t.domain,!0),S(re,i,!0),xe()}function va(t){V.has(t)?V.delete(t):V.add(t)}function je(t){return t.vulnerable?"error":t.error?"warning":"success"}function la(t){return t.vulnerable?"alert-circle":t.error?"alert-triangle":"shield-check"}function da(t){return t.vulnerable?"Vulnerable":t.error?"Error":"Secure"}var be=Rr(),te=Y(be),se=a(s(te),2),Se=s(se),ie=s(Se),ca=s(ie);f(ca,{name:"chevron-right",size:"xs"}),H(2),r(ie);var ze=a(ie,2);L(ze,21,()=>na,er,(t,i,l)=>{var d=vr();let p;var _=s(d),j=o(_,!0),u=a(_,2),y=o(u,!0);r(d),h(()=>{p=P(d,1,"example-card",null,p,{selected:e(re)===l}),d.disabled=e(X),n(j,e(i).domain),n(y,e(i).description)}),ge("click",d,()=>oa(e(i),l)),c(t,d)}),r(ze),r(Se),r(se);var J=a(se,2),ne=s(J),q=a(s(ne),2);ar(q),r(ne);var oe=a(ne,2),ma=s(oe);{var pa=t=>{var i=lr(),l=Y(i);f(l,{name:"loader",size:"sm"}),H(),c(t,i)},fa=t=>{var i=dr(),l=Y(i);f(l,{name:"search",size:"sm"}),H(),c(t,i)};D(ma,t=>{e(X)?t(pa):t(fa,-1)})}r(oe),r(J);var we=a(J,2);{var ua=t=>{var i=cr(),l=s(i);f(l,{name:"alert-circle",size:"sm"});var d=a(l,2),p=a(s(d),2),_=o(p,!0);r(d),r(i),h(()=>n(_,e(M))),c(t,i)};D(we,t=>{e(M)&&t(ua)})}var _a=a(we,2);{var ha=t=>{var i=br(),l=Y(i);{var d=x=>{var v=mr(),N=s(v);f(N,{name:"alert-triangle",size:"md"});var C=a(N,2),$=a(s(C),2),Z=o($,!0);r(C),r(v),h(()=>n(Z,e(g).limitedModeReason)),c(x,v)};D(l,x=>{e(g).limitedMode&&x(d)})}var p=a(l,2);{var _=x=>{var v=pr(),N=s(v);f(N,{name:"alert-circle",size:"md"});var C=a(N,2),$=a(s(C),2),Z=s($);H(),r($),r(C),r(v),h(()=>n(Z,`${e(g).summary.vulnerable??""} nameserver${e(g).summary.vulnerable>1?"s":""} allowed unrestricted zone 22 transfer. Your entire DNS zone is exposed to anyone. `)),c(x,v)},j=x=>{var v=fr(),N=s(v);f(N,{name:"shield-check",size:"md"}),H(2),r(v),c(x,v)};D(p,x=>{e(g).summary.vulnerable>0?x(_):e(g).summary.secure>0&&x(j,1)})}var u=a(p,2),y=s(u),b=s(y);f(b,{name:"server",size:"md"});var k=a(b,2),R=a(s(k),2),T=o(R,!0);r(k),r(y);var F=a(y,2),E=s(F);f(E,{name:"alert-circle",size:"md"});var O=a(E,2),pe=a(s(O),2),Na=o(pe,!0);r(O),r(F);var fe=a(F,2),$e=s(fe);f($e,{name:"shield-check",size:"md"});var Le=a($e,2),Ia=a(s(Le),2),Ra=o(Ia,!0);r(Le),r(fe);var Me=a(fe,2),Ve=s(Me);f(Ve,{name:"alert-triangle",size:"md"});var Oe=a(Ve,2),Aa=a(s(Oe),2),Da=o(Aa,!0);r(Oe),r(Me),r(u);var ue=a(u,2),Ze=a(s(ue),2);L(Ze,21,()=>e(g).nameservers,x=>x.nameserver,(x,v)=>{var N=jr(),C=s(N),$=s(C),Z=s($);{let z=ae(()=>la(e(v)));f(Z,{get name(){return e(z)},size:"md"})}var Ge=a(Z,2),Qe=s(Ge),Fa=o(Qe,!0),Ca=a(Qe,2),Pa=o(Ca,!0);r(Ge),r($);var Be=a($,2),We=s(Be),Xa=o(We),Ye=a(We,2),Ea=o(Ye,!0);r(Be),r(C);var $a=a(C,2);{var La=z=>{var w=gr(),A=s(w),ee=s(A);f(ee,{name:"alert-circle",size:"sm"});var _e=a(ee,3);r(A);var Oa=a(A,2);{var Za=he=>{var Ke=hr(),G=Y(Ke);let Je;var ea=s(G);f(ea,{name:"chevron-right",size:"xs"});var Ha=a(ea);r(G);var Ua=a(G,2);{var qa=Q=>{var B=_r(),aa=s(B),Qa=o(aa,!0),Ba=a(aa,2);{var Wa=W=>{var ra=ur(),Ya=o(ra);h(()=>n(Ya,`Showing first ${e(v).records.length??""} of ${e(v).recordCount??""} total records`)),c(W,ra)};D(Ba,W=>{e(v).recordCount>e(v).records.length&&W(Wa)})}r(B),h(W=>n(Qa,W),[()=>e(v).records.join(` 23`)]),c(Q,B)},Ga=ae(()=>V.has(e(v).nameserver));D(Ua,Q=>
23{e(Ga)&&Q(qa)})}h((Q,B)=>{Je=P(G,1,"toggle-records-btn svelte-71af8j",null,Je,{expanded:Q}),n(Ha,` ${B??""} exposed records (${e(v).records.length??""} of ${e(v).recordCount??""})`)},[()=>V.has(e(v).nameserver),()=>V.has(e(v).nameserver)?"Hide":"Show"]),ge("click",G,()=>va(e(v).nameserver)),c(he,Ke)};D(Oa,he=>{e(v).records&&e(v).records.length>0&&he(Za)})}r(w),h(()=>n(_e,` Exposed ${e(v).recordCount??""} DNS records`)),c(z,w)},Ma=z=>{var w=yr(),A=s(w);f(A,{name:"info-circle",size:"xs"});var ee=a(A,2),_e=o(ee,!0);r(w),h(()=>n(_e,e(v).error)),c(z,w)},Va=z=>{var w=xr(),A=s(w);f(A,{name:"check-circle",size:"xs"}),H(2),r(w),c(z,w)};D($a,z=>{e(v).vulnerable&&e(v).recordCount?z(La):e(v).error?z(Ma,1):z(Va,-1)})}r(N),h((z,w,A)=>{P(N,1,`nameserver-card status-${z??""}`,"svelte-71af8j"),n(Fa,e(v).nameserver),n(Pa,e(v).ip),n(Xa,`${e(v).responseTime??""}ms`),P(Ye,1,`status-badge status-${w??""}`,"svelte-71af8j"),n(Ea,A)},[()=>je(e(v)),()=>je(e(v)),()=>da(e(v))]),c(x,N)}),r(Ze),r(ue);var He=a(ue,2),Ue=s(He),qe=a(s(Ue)),Ta=a(qe,2);r(Ue),r(He),h(x=>{n(T,e(g).summary.total),n(Na,e(g).summary.vulnerable),n(Ra,e(g).summary.secure),n(Da,e(g).summary.errors),n(qe,` ${e(g).domain??""} ⢠`),n(Ta,` ${x??""}`)},[()=>new Date(e(g).timestamp).toLocaleString()]),c(t,i)};D(_a,t=>{e(g)&&t(ha)})}r(te);var ke=a(te,2),ve=s(ke),Ne=s(ve),ga=o(Ne,!0),ya=a(Ne,2),xa=o(ya,!0);r(ve);var le=a(ve,2),Ie=s(le),ja=o(Ie,!0),Re=a(Ie,2);L(Re,21,()=>I.sections.security.risks,t=>t.risk,(t,i)=>{var l=Sr(),d=s(l),p=s(d),_=o(p,!0),j=a(p,2),u=o(j,!0);r(d);var y=a(d,2),b=o(y,!0),k=a(y,2),R=s(k);f(R,{name:"info-circle",size:"xs"});var T=a(R,2),F=o(T,!0);r(k),r(l),h((E,O)=>{P(l,1,`risk-card severity-${E??""}`,"svelte-71af8j"),n(_,e(i).risk),P(j,1,`severity-badge severity-${O??""}`,"svelte-71af8j"),n(u,e(i).severity),n(b,e(i).description),n(F,e(i).impact)},[()=>e(i).severity.toLowerCase(),()=>e(i).severity.toLowerCase()]),c(t,l)}),r(Re),r(le);var de=a(le,2),Ae=s(de),ba=o(Ae,!0),De=a(Ae,2);L(De,21,()=>I.sections.interpretation.statuses,t=>t.status,(t,i)=>{var l=zr(),d=s(l),p=s(d);{let T=ae(()=>e(i).status==="Vulnerable"?"alert-circle":e(i).status==="Secure"?"shield-check":"alert-triangle");f(p,{get name(){return e(T)},size:"sm"})}var _=a(p,2),j=o(_);r(d);var u=a(d,2),y=o(u,!0),b=a(u,2),k=s(b);f(k,{name:"arrow-right",size:"xs"});var R=a(k,3);r(b),r(l),h(()=>{P(l,1,`status-explanation status-${e(i).color??""}`,"svelte-71af8j"),n(j,`${e(i).status??""}: ${e(i).meaning??""}`),n(y,e(i).description),n(R,` ${e(i).action??""}`)}),c(t,l)}),r(De),r(de);var ce=a(de,2),Te=s(ce),Sa=o(Te,!0),za=a(Te,2);L(za,17,()=>I.sections.properConfiguration.configurations,t=>t.server,(t,i)=>{var l=wr(),d=s(l),p=o(d,!0),_=a(d,2),j=o(_,!0),u=a(_,2),y=s(u),b=o(y,!0);r(u),r(l),h(()=>{n(p,e(i).server),n(j,e(i).description),n(b,e(i).syntax)}),c(t,l)}),r(ce);var me=a(ce,2),Fe=s(me),wa=o(Fe,!0),Ce=a(Fe,2);L(Ce,23,()=>I.sections.remediation.steps,t=>t.step,(t,i,l)=>{var d=Nr(),p=s(d),_=o(p,!0),j=a(p,2),u=s(j),y=o(u,!0),b=a(u,2),k=o(b,!0),R=a(b,2);{var T=F=>{var E=kr(),O=s(E),pe=o(O,!0);r(E),h(()=>n(pe,e(i).command)),c(F,E)};D(R,F=>{e(i).command&&F(T)})}r(j),r(d),h(()=>{n(_,e(l)+1),n(y,e(i).step),n(k,e(i).details)}),c(t,d)}),r(Ce),r(me);var Pe=a(me,2),Xe=s(Pe),ka=o(Xe,!0),Ee=a(Xe,2);L(Ee,21,()=>I.sections.bestPractices.practices,t=>t.practice,(t,i)=>{var l=Ir(),d=s(l),p=s(d);f(p,{name:"check-circle",size:"sm"});var _=a(p,2),j=o(_,!0),u=a(_,2),y=o(u,!0);r(d);var b=a(d,2),k=o(b,!0);r(l),h((R,T)=>{P(l,1,`practice-item priority-${R??""}`,"svelte-71af8j"),n(j,e(i).practice),P(u,1,`priority-badge priority-${T??""}`,"svelte-71af8j"),n(y,e(i).priority),n(k,e(i).description)},[()=>e(i).priority.toLowerCase(),()=>e(i).priority.toLowerCase()]),c(t,l)}),r(Ee),r(Pe),r(ke),h(()=>{q.disabled=e(X),rr(q,"aria-invalid",!e(ye)),oe.disabled=e(X)||!e(ye),n(ga,I.sections.whatIsAXFR.title),n(xa,I.sections.whatIsAXFR.content),n(ja,I.sections.security.title),n(ba,I.sections.interpretation.title),n(Sa,I.sections.properConfiguration.title),n(wa,I.sections.remediation.title),n(ka,I.sections.bestPractices.title)}),sr("submit",J,t=>{t.preventDefault(),xe()}),ge("input",q,()=>{S(re,null)}),ir(q,()=>e(U),t=>S(U,t)),c(sa,be),Ja()}tr(["click","input"]);export{Hr as component};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.