PageSourceSearch

https://www.packhacker.com/blog/

html packhacker.com collected 2026-09-24 19:03:57 UTC 155,947 bytes, 565 lines download raw bytes

1
2<!doctype html>
3<html lang="en-US">
4  <head>
5  <meta charset="utf-8">
6  <meta http-equiv="x-ua-compatible" content="ie=edge">
6<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1120342772",accountID:"2352831",trustKey:"2352831",xpid:"VgUCU15QCRABVFRUAQYEUFYA",licenseKey:"d9f96d0186",applicationID:"1056673621",browserID:"1120342772"};;/*! For license information please see nr-loader-spa-1.321.0.min.js.LICENSE.txt */
7(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.321.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
7e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},5718(e,t,r){"use strict";r.d(t,{AZ:()=>m,Qr:()=>E,QL:()=>v});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=m(v())[0]}catch(e){u=m(e)[0]}const l=e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"),f=new Map;let h=[];function p(e){return f.get(e)}function g(e){const t=p(e);if(t)return t;const r=new o(e);if(f.set(e,r),f.size>1e3){const e=f.keys().next().value;f.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>
7{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=g((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().filter(l).forEach(e=>{const t=g((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e;const r=[];h.forEach(({test:t,addedAt:n},s)=>{(t(e)||(0,i.t)()-n>1e4)&&r.push(s)}),h=h.filter((e,t)=>!r.includes(t))})}).observe({type:"resource",buffered:!0})}function m(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function v(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function y(e,t){return(0,s.L)(e.name)===t}function b(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType}function E(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown"},a=v();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=m(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=p(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>y(e,c));if(l)b(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&h.push({addedAt:(0,i.t)(),test:r=>!!y(r,t)&&(b(e,r),!0)})}(r,c)}const f=r.correlation,g=!!t&&!!f?.claimedBy.has(t);f&&t&&f.claimedBy.add(t);const v=()=>{const e=f?.script.start;if(!g||!e)return!1;return r.registeredAt-e>1e4};Object.defineProperty(r,"scriptStart",d(()=>v()?r.registeredAt:f?.script.start??r.fetchEnd)),Object.defineProperty(r,"scriptEnd",d(()=>v()?r.registeredAt:f?.script.end??r.registeredAt))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>f,B5:()=>l,M$:()=>s,Ms:()=>o,NG:()=>a,Ux:()=>d,YA:()=>u,yx:()=>c});var n=r(5718),i=r(9232);function s(e){return e?.type===i.f.MFE}function a(e,t){if(!p(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function o(e,t){if(!p(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function c(e,t){if(!p(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>t.metadata.timings?.asset?.endsWith(e));return function(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}(n).map(e=>e.metadata.target)}function d(e,t){return h(t)?s(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function u(e,t){return l(e,t)?{"child.id":e.id,"child.type":e.type,...d(void 0,t)}:{}}function l(e,t){return s(e)&&!!h(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function f(e){if(!e?.runtime)return[];if(!p(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...c(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function h(e){return 2===e?.harvestEndpointVersion}
7function p(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;
7r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
7;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.321.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.321.0.PROD:";r.l=(n,i,s,a)=>
7{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-nVWQ2qAdkC3R+4ZDG9m4FXftIsO9Pq5DmBg1qtcmsv3aZasLn8Ic+f99MsbVl8ryrIhVHKYpbz6FhJ4EZD9Khg==",249:"sha512-etKeSv8ID6VdNtDO61EFOmnjWRqyLgdgoZ5F0NrnMmhRYhL9lKiWmfYFM1l22L/mmJGxuwmdlByo9OyGnPfJeg==",212:"sha512-1TxkxsJ0uF5an6GCuoKAVBfld3Mj+Q/VIGpQYcmNxHP/9mxMT4n1p5/ZMO0qx7h74qvn7hrJ6pwOcWzxieikhw==",238:"sha512-+Df1BrH+URzKEUOZdB7bLXI05i+qols8eHmofcy/Krjl2dHO9DJCiA4zsRKkcCzj3T0w+SM12WLNCy6RD8ksYg=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.321.0.PROD"]=self["webpackChunk:NRBA-1.321.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
7ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var w=r(9232);var R=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var x=r(9908),S=r(9752);function _(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(S.Pl)&&(0,x.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var O=r(1863),N=r(4261),P=r(1738);var L=r(1687),k=r(4234),I=r(5289),C=r(5270),j=r(7767),M=r(6389),D=r(7699);const H=new WeakSet,B=new WeakMap;class W extends k.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,M.J)(()=>{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(B.has(e))return B.get(e);const i=(async()=>
7{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,x.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();B.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,I.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,C.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!H.has(e)&&(H.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}_(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var K=r(6630);class F extends W{static featureName=K.T;constructor(e){var t;super(e,K.T),this.setupInspectionEvents(),t=e,(0,P.Y)(N.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,x.p)("api-"+N.Fw,[(0,O.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,I.sB)(t=>{e(t,"DOMContentLoaded")}),(0,I.GG)(t=>{e(t,"load")}),(0,I.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class U extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(F),_(this,e,e.loaderType||"agent"),t=this,(0,P.Y)(N.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,P.U)(t,e,r,N.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,P.Y)(N.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,x.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,P.U)(e,"enduser.id",t,N.Dl,!0)},e)}(this),function(e){(0,P.Y)(N.nb,function(t){if("string"==typeof t||null===t)return(0,P.U)(e,"application.version",t,N.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,P.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,P.Y)(N.Pv,function(t=!0){if("boolean"==typeof t){if((0,x.p)("api-"+N.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,x.p)("docHidden",[(0,O.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,x.p)("winPagehide",[(0,O.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(478).then(r.bind(r,6555)))}}var Z=r(6774),X=r(3878),J=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,J.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,O.t)()){"string"==typeof e&&(e=new Error(e)),(0,x.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,x.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,O.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,O.t)()){(0,x.p)("api-"+N.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,O.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
7null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,x.p)("api-"+N.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,O.t)()){(0,x.p)("api-"+N.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,O.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,O.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,O.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(9119);const Ee=["name","id","type"],we=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Re={experimental:(0,M.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,M.J)(()=>(0,l.R)(55)),invalidTarget:(0,M.J)(e=>(0,l.R)(48,e)),deregistered:(0,M.J)(()=>(0,l.R)(68))};function Te(e){(0,P.Y)(N.eY,function(t){return Ae(e,t)},e)}function Ae(e,r){Re.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA};const n=(0,le.Qr)(r),i=ve(r,n),s=(0,be.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||w.f.BA,"parent.id":r.parent?.id})}
7),Object.entries(r.tags).forEach(([e,t])=>{Ee.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Re.disabled),u(r.id)&&u(r.name)||d(()=>Re.invalidTarget(r));const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Re.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,O.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,be.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
7imeToRegister:n.registeredAt,...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==Ae)return;const s=f.metadata.events.latestTimestamp??(0,O.t)();f.metadata.events.latestTimestamp=void 0;const a=we.get(r)||"unknown";(0,x.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class xe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,P.Y)(N.o5,(e,r)=>ie(e,r,t),t),function(e){(0,P.Y)(N.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,P.Y)(N.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Te(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,x.p)("ierr",[ee(t),(0,O.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,x.p)("err",[te(t),(0,O.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,X.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,x.p)("err",[re(t),(0,O.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,X.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var Se=r(8990);let _e=1;function Oe(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,Se.I)(e,"nr@id",function(){return _e++})}function Ne(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,J.A)(e).length}catch(e){return}}}var Pe=r(8139),Le=r(3434),ke=r(5732);const Ie={},Ce=["open","send","setRequestHeader"];function je(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(Ie[n.debugId]++)return n;Ie[n.debugId]=1,(0,Pe.u)(r,t);var i=(0,Le.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,ke.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,X.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Me="fetch-",De=Me+"body-",He=["arrayBuffer","blob","json","text","formData"],Be=g.gm.Request,We=g.gm.Response,Ke="prototype";const Fe={};function Ue(e,t){const r=function(e){return(e||R.ee).get("fetch")}(e);if(!(Be&&We&&g.gm.fetch))return r;if(Fe[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,ke.$5)(t);var o;r.emit(i+"before-start",[e],n),n[R.P]&&n[R.P].dt&&(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
7return Fe[r.debugId]=1,He.forEach(e=>{n(Be[Ke],e,De),n(We[Ke],e,De)}),n(g.gm,"fetch",Me),r.on(Me+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Me+"done",[null,n],s)}else r.emit(Me+"done",[e],s)}),r}var Ve=r(7485);class ze{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s=(0,ye.ZF)(),a=(0,ye.el)(),o=Date.now(),c={spanId:s,traceId:a,timestamp:o};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,a),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,o,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(c.newrelicHeader=this.generateTraceHeader(s,a,o,r,n,i)),c}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,J.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ve.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ge=r(7295);function qe(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function Ye(e,t){var r=(0,Ve.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Ze=["load","error","abort","timeout"],$e=Ze.length,Xe=(0,i.dV)().o.REQ,Je=(0,i.dV)().o.XHR;const Qe="X-NewRelic-App-Data",et="internal-error";class tt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new ze(e),this.handler=(e,t,r,n)=>(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};Ye(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}Ue(this.ee,e),je(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){_(t,e)},(0,X.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,X.jT)(!1))}function o(e){this.params={method:e[0]},Ye(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Ne(i);a&&(n.txSize=a)}this.startTime=(0,O.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
7!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(et,[e])}catch(e){}}};for(var o=0;o<$e;o++)t.addEventListener(Ze[o],this.listener,(0,X.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Oe(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Oe(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,O.t)()}function v(e,t){t instanceof Je&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof Je&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof Je&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,O.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,O.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ve.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function R(e,t){this.params={},this.metrics={},this.startTime=(0,O.t)(),this.dt=t;let[r,n={}]=e;Ye(this,qe(r));const i=(""+(r&&r instanceof Xe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Ne(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,O.t)(),this.params||(this.params={}),(0,Ge.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>S(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Ne(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(et,[e])}).finally(()=>{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<$e;t++)e.removeEventListener(Ze[t],this.listener,!1);if(t.aborted)return;if((0,Ge.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):_(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Ne(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(et,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>S(i,this,e))}
7function S(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function _(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Ne(e.response):"text"===r||""===r||void 0===r?Ne(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(Qe)>=0){var s=n.getResponseHeader(Qe);s&&((0,x.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(478).then(r.bind(r,3845)))}}const rt={},nt=["pushState","replaceState"];function it(e,t){const r=function(e){return(e||R.ee).get("history")}(e);return!g.RI||rt[r.debugId]++||(rt[r.debugId]=1,(0,Le.YM)(r,void 0,t).inPlace(window.history,nt,"-")),r}var st=r(3738);function at(e){(0,P.Y)(N.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,x.p)(q.XG,[N.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:N.BL,start:r,origin:"nr"}),(0,x.p)("api-"+N.hG,[n,N.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:ot,bD:ct,d3:dt,Kp:ut,TZ:lt,Lc:ft,uP:ht,Rz:pt}=st;class gt extends W{static featureName=lt;constructor(e){var n;super(e,lt),n=e,(0,P.Y)(N.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,x.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),at(e);if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;it(i,e),this.eventsEE=(0,Pe.u)(i,e),this.eventsEE.on(ht,function(e,t){this.bstStart=(0,O.t)()}),this.eventsEE.on(ft,function(e,r){(0,x.p)("bst",[e[0],r,this.bstStart,(0,O.t)()],void 0,t.K7.sessionTrace,i)}),i.on(pt+dt,function(e){this.time=(0,O.t)(),this.startPath=location.pathname+location.hash}),i.on(pt+ut,function(e){(0,x.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,x.p)(ot,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ct,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var mt=r(733),vt=r(6344);class yt extends W{static featureName=vt.TZ;#i;recorder;constructor(e){var n;let i;super(e,vt.TZ),n=e,(0,P.Y)(N.CH,function(){(0,x.p)(N.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,P.Y)(N.Tb,function(){(0,x.p)(N.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,mt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,C.SR)(e.init)&&this.ee.on(N.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(vt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(478).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,x.p)(vt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,C.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,vt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(vt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var bt=r(3962);class Et extends W{static featureName=bt.TZ;constructor(e){if(super(e,bt.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,P.Y)(N.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o="function"==typeof i;return(0,x.p)(q.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?"":"no-")+"fn-start",[(0,O.t)(),a,o],s),o)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],s),t}finally{r.emit("fn-end",[(0,O.t)()],s)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{P.Y.apply(this,[r,function(){return(0,x.p)(N.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,P.Y)(N.PA,function(){(0,x.p)(N.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=it(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}
7bt.tC.forEach(e=>{(0,X.sp)(e,e=>{c(e)},!0,this.removeOnAbort?.signal)});const s=()=>(0,x.p)("newURL",[(0,O.t)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",s),n.on("replaceState-end",s),(0,X.sp)(bt.OV,e=>{c(e),(0,x.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=>{a||(a=!0,requestAnimationFrame(()=>{(0,x.p)("newDom",[(0,O.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,M.s)(e=>{"loading"!==document.readyState&&((0,x.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>r.e(478).then(r.bind(r,4393)),{domObserver:o})}}var wt=r(981);const Rt={},Tt=new Set;function At(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class xt{constructor(e,t){this.timestamp=(0,O.t)(),this.currentUrl=(0,be.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,be.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class St extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,P.Y)(N.hG,(e,t)=>ce(e,t,c),c),function(e){(0,P.Y)(N.fF,(t,r)=>ue(t,r,e),e)}(e),at(e),Te(e),function(e){(0,P.Y)(N.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(Rt[r.debugId]++)return r;Rt[r.debugId]=1,(0,V.G)(()=>{const e=(0,O.t)();Tt.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
7class n extends WebSocket{static name=wt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new xt(e[0],e[1]),this.targets=(0,ke.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,O.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),Tt.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=At(e.data);this.nrData.messageOrigin??=(0,be.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,O.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,Tt.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=At(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,x.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s&&g.gm.addEventListener("securitypolicyviolation",e=>{(0,x.p)("spv",[e],void 0,t.K7.genericEvents,this.ee)},(0,X.jT)(!1,this.removeOnAbort.signal)),g.RI){if(Ue(this.ee,e),je(this.ee,e),d=it(this.ee,e),e.init.user_actions.enabled){function l(t){const r=(0,Ve.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function f(){d.emit("navChange")}o.Zp.forEach(e=>(0,X.sp)(e,e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
7h(e=>{const t=(0,M.s)(e=>{(0,x.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,X.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,x.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,X.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{l(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,x.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,X.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!l(qe(e[0]))&&(0,x.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",f),d.on("replaceState-end",f),window.addEventListener("hashchange",f,(0,X.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",f,(0,X.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,x.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}var _t=r(2646);const Ot=new Map;function Nt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get("logger")}(e),o=(0,Le.YM)(a,void 0,s),c=new _t.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Le.Jt]||t[r];return Ot.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>Ot.get(d),void 0,!0),a}var Pt=r(1910);class Lt extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,P.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,P.Y)(N.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Nt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Te(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Pt.i)(g.gm.console[t]),Nt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(478).then(r.bind(r,5288)))}}new U({features:[tt,F,G,gt,yt,Y,xe,St,Lt,Et],loaderType:"spa"})})()})();</script>
7
8  <meta name="viewport" content="width=device-width, initial-scale=1">
9
10    <meta name="fo-verify" content="7ca62dc1-123b-4f9f-a195-81b25070465c">
11      <link rel="preload" href="https://www.packhacker.com/app/themes/packhacker/asc/asc_prebid.js?ver=8.5.16" as="script">
12      <title>Travel Gear Blog &#038; Travel Interviews | Pack Hacker</title>
13<script> var PH_View = {"post_id":"341","template":"category","categories":["blog"]} </script>
13
14<!-- The SEO Framework by Sybre Waaijer -->
15<meta name="description" content="We interview perpetual travelers, compare travel gear, and post weird gear that we come across. Plus, other travel tips and tricks for the road." />
16<meta property="og:image" content="https://cdn.packhacker.com/2017/11/pack-hacker-social-share-image.jpg" />
17<meta property="og:image:width" content="1200" />
18<meta property="og:image:height" content="630" />
19<meta property="og:image:alt" content="Pack Hacker | The Best Gear for Travel" />
20<meta property="og:locale" content="en_US" />
21<meta property="og:type" content="website" />
22<meta property="og:title" content="Travel Gear Blog &#038; Travel Interviews | Pack Hacker" />
23<meta property="og:description" content="We interview perpetual travelers, compare travel gear, and post weird gear that we come across. Plus, other travel tips and tricks for the road." />
24<meta property="og:url" content="https://www.packhacker.com/blog/" />
25<meta property="og:site_name" content="Pack Hacker" />
26<meta property="fb:app_id" content="467788473620975" />
27<meta name="twitter:card" content="summary_large_image" />
28<meta name="twitter:site" content="@packhacker" />
29<meta name="twitter:title" content="Travel Gear Blog &#038; Travel Interviews | Pack Hacker" />
30<meta name="twitter:description" content="We interview perpetual travelers, compare travel gear, and post weird gear that we come across. Plus, other travel tips and tricks for the road." />
31<meta name="twitter:image" content="https://cdn.packhacker.com/2017/11/pack-hacker-social-share-image.jpg" />
32<meta name="twitter:image:alt" content="Pack Hacker | The Best Gear for Travel" />
33<link rel="canonical" href="https://www.packhacker.com/blog/" />
34<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://www.packhacker.com/","name":"Pack Hacker"}},{"@type":"ListItem","position":2,"item":{"@id":"https://www.packhacker.com/blog/","name":"Travel Gear Blog &#038; Travel Interviews"}}]}</script>
34
35<meta name="google-site-verification" content="GBH4FVp8seDrDONObT65YmTt3xnjZf8w0F2EowO8aD0" />
36<!-- / The SEO Framework by Sybre Waaijer | 2.93ms meta | 0.16ms boot -->
37
38<link rel='dns-prefetch' href='//code.jquery.com' />
39<script id="is-mobile">
40	var isMobile = ('ontouchstart' in document.documentElement && /mobi/i.test(navigator.userAgent));
41
42	new ResizeObserver(() => {
43		let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
44		document.documentElement.style.setProperty('--scrollbarWidth', `${scrollbarWidth}px`);
45	}).observe(document.documentElement);
46</script>
46
47	<link rel='stylesheet' id='wp-block-library-css' href='https://www.packhacker.com/wp/wp-includes/css/dist/block-library/style.min.css?ver=6.6.2' type='text/css' media='all' />
48<style id='classic-theme-styles-inline-css' type='text/css'>
49/*! This file is auto-generated */
50.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
51</style>
52<style id='global-styles-inline-css' type='text/css'>
53:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
53--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
53.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
54:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
55:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
56:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
57</style>
58<link rel='stylesheet' id='comment_styles-css' href='https://www.packhacker.com/app/plugins/wp-discourse/lib/../css/comments.css?ver=1671823930' type='text/css' media='all' />
59<link rel='stylesheet' id='searchwp-forms-css' href='https://www.packhacker.com/app/plugins/searchwp/assets/css/frontend/search-forms.css?ver=4.3.17' type='text/css' media='all' />
60<link rel='stylesheet' id='jquery-lazyloadxt-spinner-css-css' href='//www.packhacker.com/app/plugins/a3-lazy-load/assets/css/jquery.lazyloadxt.spinner.css?ver=6.6.2' type='text/css' media='all' />
61<link rel='stylesheet' id='a3a3_lazy_load-css' href='//www.packhacker.com/app/uploads/sass/a3_lazy_load.min.css?ver=1561556818' type='text/css' media='all' />
62<link rel='stylesheet' id='packhacker/css-css' href='https://www.packhacker.com/app/themes/packhacker/dist/main.38c2fe972deb8c84f5a9.css?ver=8.5.16' type='text/css' media='all' />
63<script type="text/javascript" src="https://www.packhacker.com/app/themes/packhacker/asc/asc_prebid.js?ver=8.5.16" id="asc-gam-360-js" async="async" data-wp-strategy="async"></script>
63
64<link rel="https://api.w.org/" href="https://www.packhacker.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.packhacker.com/wp-json/wp/v2/pages/341" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.packhacker.com/wp/xmlrpc.php?rsd" />
65<script type="text/javascript">
66  (function(c) {
67    var script = document.createElement("script");
68    script.src = "https://js.memberful.com/embed.js";
69    script.onload = function() { Memberful.setup(c) };
70    document.head.appendChild(script);
71  })({
72    site: ["https:\/\/packhacker.memberful.com"]  });
73</script>
73
74<style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style><link rel="icon" href="https://cdn.packhacker.com/2017/08/cropped-social-avatar.png?auto=compress&#038;auto=format&#038;w=150&#038;h=150&#038;fit=crop" sizes="32x32" />
75<link rel="icon" href="https://cdn.packhacker.com/2017/08/cropped-social-avatar.png?auto=compress&#038;auto=format&#038;w=300&#038;h=300&#038;fit=crop" sizes="192x192" />
76<link rel="apple-touch-icon" href="https://cdn.packhacker.com/2017/08/cropped-social-avatar.png?auto=compress&#038;auto=format&#038;w=300&#038;h=300&#038;fit=crop" />
77<meta name="msapplication-TileImage" content="https://cdn.packhacker.com/2017/08/cropped-social-avatar.png?auto=compress&#038;auto=format&#038;w=300&#038;h=300&#038;fit=crop" />
78		<style type="text/css" id="wp-custom-css">
79			.packh-mid-leaderboard div[id*='google_ads_iframe'] iframe[width='1920'],
80.packh-mid-leaderboard div[id*='google_ads_iframe'] iframe[width='1'] {
81    width: 100% !important;
82    max-width: 1920px !important;
83    height: 250px !important; 
84}
85
86.packh-mid-leaderboard div[id*='google_ads_iframe'] iframe[width='2'] {
87    width: 100% !important;
88    max-width: 1920px !important;
89    height: 180px !important; 
90}
91
92.packh-mid-leaderboard div[id*='google_ads_iframe'] iframe[width='3'] {
93    width: 100% !important;
94    max-width: 1920px !important;
95    height: 90px !important; 
96}
97
98div[class*="packh-desktop-adhesion"] div[id*="desktop-adhesion"] div[id*='google_ads_iframe'] iframe[width='1920'],
99div[class*="packh-desktop-adhesion"] div[id*="desktop-adhesion"] div[id*='google_ads_iframe'] iframe[width='1'] {
100    width: 100% !important;
101    max-width: 1920px !important;
102    height: 250px !important; 
103}
104
105div[class*="packh-desktop-adhesion"] div[id*="desktop-adhesion"] div[id*='google_ads_iframe'] iframe[width='2'] {
106    width: 100% !important;
107    max-width: 1920px !important;
108    height: 180px !important; 
109}
110
111div[class*="packh-desktop-adhesion"] div[id*="desktop-adhesion"] div[id*='google_ads_iframe'] iframe[width='3'] {
112    width: 100% !important;
113    max-width: 1920px !important;
114    height: 90px !important; 
115}
116
117[ot-name*="adhesion"] #close {
118	z-index: 99999 !important;
119}
120
121.full-review-body figure img {
122	width: 100%;
123}
124
125		</style>
126		  <link rel="stylesheet" href="https://use.typekit.net/vgr5xrg.css">
127  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
128
129    
129<script>
vendor: 335 bytes, lines 129-133
129(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
130  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
131  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
132  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
133  })(window,document,'script','dataLayer','
133GTM-NLKBPQJ
vendor: 3 bytes, line 133
133');
133</script>
133
134  
135    <meta name="google-site-verification" content="GBH4FVp8seDrDONObT65YmTt3xnjZf8w0F2EowO8aD0" />
136  
137    <meta name="p:domain_verify" content="b4329b499cc54c4c8fb17c4a2ec9561b"/>
138  
139    <meta name="ahrefs-site-verification" content="98555e3ab7686bb2b153216dee799a500632f6ad94d1ef3b5c601c339ac09130">
140  
141    <meta name='webgains-site-verification' content='khbr21j2' />
142  
143    <meta name="robots" content="max-image-preview:large">
144  
145      
146  <!-- Hotjar Tracking Code for Pack Hacker -->
147  
147<script>
vendor: 131 bytes, lines 147-150
147
148      (function(h,o,t,j,a,r){
149          h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
150          h._hjSettings={hjid:
1505147210
vendor: 270 bytes, lines 150-156
150,hjsv:6};
151          a=o.getElementsByTagName('head')[0];
152          r=o.createElement('script');r.async=1;
153          r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
154          a.appendChild(r);
155      })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
156  
156</script>
156
157
158  <!-- Bullwhip/SonarJS Tracking Code for Pack Hacker -->
159  
159<script>
160    let script = document.createElement('script');
161    script.type = 'text/javascript';
162    script.async = 1;
163    script.src = 'https://bwcdn.packhacker.com/bws/allgear-ph.iife.js';
164    document.head.appendChild(script);
165  </script>
165
166</head>
167  <body class="page-template page-template-blog page-template-blog-php page page-id-341 blog" >
168    <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 168-169
168
169    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
169GTM-NLKBPQJ
vendor: 87 bytes, lines 169-170
169" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
170    
170<!-- End Google Tag Manager (noscript) -->
171
172    <!--[if IE]>
173      <div class="alert alert-warning">
174        You are using an <strong>outdated</strong> browser. Please <a rel="nofollow" href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.      </div>
175    <![endif]-->
176    <header class="masthead banner header-frontpage sticky-top type-masthead-nav-items">
177  <nav class="navbar navbar-toggleable-md navbar-light bg-faded navbar-inverse master-nav navbar-expand-lg">
178
179    <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
180      <span class="navbar-toggler-icon"><svg class="navbar-toggler-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36">
181  <path d="M31 19H5c-0.6 0-1-0.4-1-1v0c0-0.6 0.4-1 1-1h26c0.6 0 1 0.4 1 1v0C32 18.6 31.6 19 31 19z"/>
182  <path d="M31 11H5c-0.6 0-1-0.4-1-1v0c0-0.6 0.4-1 1-1h26c0.6 0 1 0.4 1 1v0C32 10.6 31.6 11 31 11z"/>
183  <path d="M31 27H5c-0.6 0-1-0.4-1-1v0c0-0.6 0.4-1 1-1h26c0.6 0 1 0.4 1 1v0C32 26.6 31.6 27 31 27z"/>
184</svg>
185</span>
186
187    </button>
188
189    <a class="navbar-brand" href="https://www.packhacker.com/"><svg class="ph-logo-sm" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 87.2 65.4">
190	<path class="ph-logo-sm-zip" d="M87.2 27.7v-3.2h-2.1l0-3.2 2.1 0c0-1.4-0.2-2.8-0.5-4.1l-2 0.5c-0.3-1.2-0.8-2.3-1.3-3.4l1.9-1c-0.7-1.2-1.4-2.4-2.4-3.4l-1.6 1.4c-0.7-0.8-1.5-1.5-2.3-2.1 0-0.3 0-0.6 0-1l0.8-1.1c-0.3-0.2-0.6-0.3-0.8-0.5C78.6 2.9 77.1 0 75.2 0c-0.6 0-1.7 0.3-3 0.8 -2.6 1.1-5.3 1.7-8.1 1.7h-6.8c-0.9 0-1.7 0.7-1.7 1.7v1.8h-3.2V4h-3.2v2.1h-3.2V4h-3.2v2.1h-3.2V4h-3.2v2.1h-3.2V4h-3.2v2.1H27V4h-3.2v2.1h-3.2V4h-3.2v2.1c-1.2 0-2.4 
1900.1-3.6 0.4l-0.5-2c-1.4 0.3-2.7 0.8-3.9 1.4l1 1.9c-1.1 0.6-2.1 1.2-3 2L6.1 8.2c-1 0.9-2 1.9-2.8 3.1L5 12.5c-0.7 1-1.3 2.1-1.8 3.2l-1.9-0.8c-0.5 1.3-0.9 2.6-1.1 4l2.1 0.3c-0.2 1.2-0.2 2.5-0.2 3.5H0v3.2h2.1V29H0v3.2h2.1v3.2H0v3.2h2.1v3.2H0v3.2h2.1l0 3.2 -2.1 0c0 1.4 0.2 2.8 0.5 4.1l2-0.5c0.3 1.2 0.8 2.3 1.3 3.4l-1.9 1c0.7 1.2 1.4 2.4 2.4 3.4L6 58.1c0.8 0.9 1.7 1.7 2.7 2.4l-1.2 1.7c1.1 0.8 2.4 1.5 3.7 1.9l0.8-2c1.1 0.4 2.3 0.8 3.5 0.9l-0.3 2.1c0.7 0.1 1.4 0.1 2.1 0.2l1.7 0v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1H38v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1H57v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1c1.2 0 2.4-0.1 3.6-0.4l0.5 2c1.4-0.3 2.7-0.8 3.9-1.4l-1-1.9c1-0.5 2.1-1.3 3-2l1.4 1.6c1-0.9 2-1.9 2.8-3.1l-1.7-1.2c0.7-1 1.3-2.1 1.8-3.2l1.9 0.8c0.5-1.3 0.9-2.6 1.1-4L85 50.2c0.2-1.2 0.2-2.5 0.2-3.5h2.1v-3.2h-2.1v-3.2h2.1v-3.2h-2.1V34h2.1v-3.2h-2.1v-3.2H87.2zM64.8 17.2H69v4.6c0 0.8-0.1 1.3-0.4 1.7 -0.3 0.5-0.8 0.8-1.7 0.8 -0.8 0-1.4-0.3-1.7-0.8 -0.3-0.5-0.4-0.9-0.4-1.7V17.2zM81.1 27.7H79v3.2h2.1V34H79v3.2h2.1v3.2H79v3.2h2.1v3.2H79c0 0.5 0 1.2 0 1.5 0 0.4 0 0.7-0.1 1.1l2.1 0.3c-0.1 0.9-0.4 1.8-0.7 2.6l-1.9-0.8c-0.3 0.7-0.6 1.3-1.1 1.9l1.7 1.2c-0.5 0.7-1.1 1.4-1.8 2l-1.4-1.6c-0.6 0.5-1.2 0.9-1.8 1.2l1 1.9c-0.8 0.4-1.6 0.7-2.5 0.9l-0.5-2c-0.7 0.2-1.4 0.2-2.2 0.3v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1H57v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1H38v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1l-1.6 0c-0.4 0-0.9 0-1.3-0.1l0.3-2.1c-0.7-0.1-1.4-0.3-2.1-0.5l-0.8 2c-0.8-0.3-1.6-0.8-2.4-1.3l1.2-1.7c-0.6-0.4-1.2-0.9-1.6-1.5L9 55.5c-0.6-0.7-1.1-1.4-1.5-2.2l1.9-1c-0.3-0.7-0.6-1.3-0.8-2l-2 0.5c-0.2-0.9-0.3-1.8-0.4-2.7l2.1 0 0-3.1H6.2v-3.2h2.1v-3.2H6.2v-3.2h2.1v-3.2H6.2V29h2.1v-3.2H6.2v-3.2h2.1c0-0.5 0-1.2 0-1.5 0-0.4 0-0.7 0.1-1.1l-2.1-0.3c0.1-0.9 0.4-1.8 0.7-2.6L8.9 18c0.3-0.7 0.6-1.3 1.1-1.9l-1.7-1.2c0.5-0.7 1.1-1.4 1.8-2l1.4 1.6c0.6-0.5 1.2-0.9 1.8-1.2l-1-1.9c0.8-0.4 1.6-0.7 2.5-0.9l0.5 2c0.7-0.2 1.4-0.2 2.2-0.3v-2.1h3.2v2.1h3.2v-2.1H27v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2c0.1 0.8 0.8 1.5 1.6 1.5h4.5l0 7.5c0 1.9 0.1 3 0.9 4.1 0.8 1.2 2.1 1.9 4.1 1.9 2.1 0 3.4-0.7 4.1-1.9 0.8-1.1 1-2.2 1-4.1l0-5.9c0.1 0 0.2 0.1 0.3 0.1 1.3 0.5 2.4 0.8 3 0.8 0.9 0 1.6-0.6 2.3-1.7l0.7-0.6c0.6 0.7 1.1 1.4 1.5 2.2l-1.9 1c0.3 0.7 0.6 1.3 0.8 2l2-0.5c0.2 0.9 0.3 1.8 0.4 2.7l-2.1 0 0 3.1h2.1V27.7z"/>
191	<path class="ph-logo-sm-p" d="M37.3 21.7c-2.2-1.8-5.2-2.5-8.6-2.5H15.3v30.9h10.1v-9.6h3.3c3.4 0 6.4-0.7 8.6-2.5 2.2-1.8 3.5-4.5 3.5-8.1C40.8 26.2 39.6 23.5 37.3 21.7zM29.5 32.4c-0.7 0.4-1.3 0.5-2.5 0.5h-1.7v-6H27c1.1 0 1.8 0.1 2.5 0.6 0.7 0.4 1.1 1.2 1.1 2.5C30.6 31.1 30.2 31.9 29.5 32.4z"/>
192	<path class="ph-logo-sm-h" d="M61.8 27.7v2.7h-8.4V19.3H43.3v30.9h10.1V38.7h8.4v11.4h10.1V27.7c-1 1-2.6 1.8-5.1 1.8C64.8 29.5 63.1 28.9 61.8 27.7z"/>
193</svg>
194<svg class="ph-logo-lg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 143.9 89.9">
195  <polygon class="ph-logo-lg-hacker-h" points="27.3 61.9 21.8 61.9 21.8 54.6 15.3 54.6 15.3 74.6 21.8 74.6 21.8 67.2 27.3 67.2 27.3 74.6 33.8 74.6 33.8 54.6 27.3 54.6 "/>
196  <path class="ph-logo-lg-hacker-a" d="M41.9 54.6l-6.9 20h6.8l0.8-2.8h5.7l0.8 2.8h7.1l-6.9-20H41.9zM43.9 66.8l1.5-5.4 1.5 5.4H43.9z"/>
197  <path class="ph-logo-lg-hacker-c" d="M66.9 69c-2.3 0-4.6-1.4-4.6-4.5 0-3.1 2.1-4.6 4.6-4.6 2.5 0 4.5 1.7 4.5 1.7l1.7-5.5c0 0-2.2-1.9-6.7-1.9 -5.9 0-10.7 3.6-10.7 10.3s4.8 10.3 10.7 10.3c4.3 0 6.4-1.8 7.1-2.5l-1.9-5.2C70.9 68.1 69.3 69 66.9 69z"/>
198  <polygon class="ph-logo-lg-hacker-k" points="93.4 54.6 85.8 54.6 81.6 60.7 81.6 54.6 75.1 54.6 75.1 74.6 81.6 74.6 81.6 69.4 82.7 67.9 86.1 74.6 93.9 74.6 87 62.7 "/>
199  <polygon class="ph-logo-lg-hacker-e" points="101.3 67.1 108.5 67.1 108.5 61.9 101.3 61.9 101.3 59.8 108.9 59.8 108.9 54.6 94.7 54.6 94.7 74.6 109.2 74.6 109.2 69.4 101.3 69.4 "/>
200  <path class="ph-logo-lg-hacker-r" d="M128.5 61c0-2.2-1-3.9-2.5-4.9s-3.3-1.4-5.8-1.4h-8.7v20h6.5v-6.7h0.8l3.2 6.7h7.5l-4.5-7.6C126 66.5 128.5 65 128.5 61zM121.2 62.7c-0.3 0.2-0.7 0.3-1.4 0.3h-1.6v-3.5h1.6c0.7 0 1.2 0.1 1.4 0.4 0.3 0.2 0.7 0.5 0.7 1.4C121.9 62.1 121.5 62.4 121.2 62.7z"/>
201  <path class="ph-logo-lg-pack-p" d="M25.4 40.5h3.3c3.4 0 6.4-0.7 8.6-2.5 2.2-1.8 3.5-4.5 3.5-8.2 0-3.7-1.3-6.4-3.5-8.2 -2.2-1.8-5.2-2.5-8.6-2.5H15.3v30.9h10.1V40.5zM25.4 26.8H27c1.1 0 1.8 0.1 2.5 0.6 0.7 0.4 1.1 1.2 1.1 2.5 0 1.2-0.4 2-1.1 2.5 -0.7 0.4-1.3 0.5-2.5 0.5h-1.7V26.8z"/>
202  <path class="ph-logo-lg-pack-a" d="M48.9 50.1l1.2-4.3h8.8l1.2 4.3h11L60.4 19.2H49.2L38.4 50.1H48.9zM54.5 29.7l2.3 8.3h-4.6L
20254.5 29.7z"/>
203  <path class="ph-logo-lg-pack-c" d="M95.4 38.7C94 40 91.5 41.5 88 41.5c-3.6 0-7.1-2.2-7.1-7 0-4.8 3.3-7.1 7.1-7.1 3.8 0 7 2.7 7 2.7l2.7-8.5c0 0-3.4-2.9-10.3-2.9 -9.2 0-16.6 5.6-16.6 16 0 10.3 7.4 16 16.6 16 6.7 0 9.9-2.8 11-3.9L95.4 38.7z"/>
204  <path class="ph-logo-lg-pack-k" d="M129 19.2h-11.9c0 0-5.1 7.7-6.5 9.1 -1 1-2.6 1.8-5.1 1.8 -2.1 0-3.7-0.6-5-1.7v21.7h10.1v-8.1l1.8-2.2 5.2 10.3h12.1L119 31.7 129 19.2z"/>
205  <path class="ph-logo-lg-zip" d="M143.9 26.1v-3.2h-2.1l0-1.6c0-0.6 0-1.2-0.1-1.8l2.1-0.3c-0.2-1.4-0.5-2.8-1-4.1l-2 0.8c-0.4-1.2-1-2.2-1.7-3.3l1.7-1.2c-0.8-1.1-1.7-2.2-2.8-3.1l-1.4 1.6c-0.9-0.8-1.9-1.5-3-2.1l1-1.9c-1.2-0.6-2.5-1.2-3.9-1.5l-0.5 2c-1.2-0.3-2.4-0.4-3.6-0.5l0-2.1 -3.2 0V6H120V3.9h-2.9C116.5 1.6 115.3 0 114 0c-0.6 0-1.7 0.3-3 0.8 -2.6 1.1-5.3 1.7-8.1 1.7h-6.8c-0.8 0-1.4 0.6-1.6 1.3h-3.3V6H88V3.9h-3.2V6h-3.2V3.9h-3.2V6h-3.2V3.9H72V6h-3.2V3.9h-3.2V6h-3.2V3.9h-3.2V6H56V3.9h-3.2V6h-3.2V3.9h-3.2V6h-3.2V3.9h-3.2V6h-3.2V3.9h-3.2V6h-3.2V3.9h-3.2V6h-3.2V3.9h-3.2V6h-3.2V3.9c-1.4 0-2.8 0.2-4.1 0.5l0.5 2c-1.2 0.3-2.4 0.7-3.4 1.3l-1-1.9C8.2 6.5 7 7.3 6 8.2l1.4 1.6c-0.9 0.8-1.7 1.7-2.5 2.7l-1.7-1.2c-0.8 1.1-1.5 2.4-2 3.7l2 0.8c-0.4 1.1-0.8 2.3-0.9 3.6l-2.1-0.3C0 19.8 0.1 20.5 0 21.2l0 1.7h2.1V26H0v3.2h2.1v3.2H0v3.2h2.1v3.2H0V42h2.1v3.2H0v3.2h2.1v3.2H0v3.2h2.1v3.2H0v3.2h2.1v3.2H0v3.2h2.1v3.2H0l0 1.6c0 0.7 0 1.4 0.1 2.1l2.1-0.3c0.2 1.2 0.4 2.4 0.9 3.6l-2 0.8c0.5 1.3 1.2 2.5 2 3.7l1.7-1.2c0.7 1 1.5 1.9 2.5 2.7l-1.4 1.6c1 0.9 2.2 1.7 3.4 2.4l1-1.9c1.1 0.5 2.2 1 3.4 1.3l-0.5 2c1.4 0.4 2.8 0.5 4.1 0.5l0-2.1 3.2 0v2.1h3.2v-2.1H27v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1c1.2 0 2.5-0.1 3.7-0.5l0.5 2c1.4-0.3 2.7-0.8 3.9-1.5l-1-1.9c1.1-0.6 2.1-1.3 3-2.1l1.4 1.6c1.1-0.9 2-2 2.8-3.1l-1.7-1.2c0.7-1 1.3-2.1 1.7-3.2l2 0.8c0.5-1.3 0.9-2.7 1-4.1l-2.1-0.3c0.1-0.6 0.1-1.2 
2050.1-1.8l0-1.6h2.1v-3.2h-2.1v-3.2h2.1v-3.2h-2.1v-3.2h2.1v-3.2h-2.1v-3.2h2.1v-3.2h-2.1v-3.2h2.1v-3.2h-2.1v-3.2h2.1v-3.2h-2.1v-3.2h2.1v-3.2h-2.1v-3.2H143.9zM103.4 17.2h4.2v5.2c0 0.8-0.1 1.3-0.4 1.7 -0.3 0.5-0.8 0.8-1.7 0.8 -0.8 0-1.4-0.3-1.7-0.8 -0.3-0.5-0.4-0.9-0.4-1.7V17.2zM137.7 26.1h-2.1v3.2h2.1v3.2h-2.1v3.2h2.1v3.2h-2.1v3.2h2.1v3.2h-2.1v3.2h2.1v3.2h-2.1v3.2h2.1v3.2h-2.1v3.2h2.1v3.2h-2.1v3.2h2.1V71h-2.1l0 1.5c0 0.4 0 0.7-0.1 1.1l2.1 0.3c-0.1 0.9-0.3 1.8-0.7 2.6l-2-0.8c-0.3 0.7-0.6 1.3-1 1.9l1.7 1.2c-0.5 0.7-1.1 1.4-1.8 2l-1.4-1.6c-0.6 0.5-1.2 0.9-1.8 1.2l1 1.9c-0.8 0.4-1.6 0.8-2.5 0.9l-0.5-2c-0.7 0.2-1.5 0.2-2.2 0.3v2.1h-3.2v-2.1H120v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1h-3.2v-2.1h-3.2v2.1H27v-2.1h-3.2v2.1h-3.2v-2.1l-3.2 0 0 2.1c-0.9 0-1.8-0.1-2.7-0.3l0.5-2c-0.7-0.1-1.4-0.5-2.1-0.8l-1 1.9c-0.8-0.4-1.6-0.9-2.2-1.5l1.4-1.6c-0.6-0.5-1-1.1-1.5-1.6l-1.7 1.2c-0.5-0.7-1-1.5-1.3-2.4l2-0.8c-0.3-0.7-0.4-1.4-0.5-2.1l-2.1 0.3c-0.1-0.4-0.1-0.9-0.1-1.4l0-1.6h2.1v-3.2H6.2v-3.2h2.1v-3.2H6.2v-3.2h2.1v-3.2H6.2v-3.2h2.1v-3.2H6.2v-3.2h2.1V42H6.2v-3.2h2.1v-3.2H6.2v-3.2h2.1v-3.2H6.2V26h2.1v-3.2H6.2l0-1.6c0-0.5 0-0.9 0.1-1.4l2.1 0.3c0.1-0.7 0.3-1.4 0.6-2.1l-2-0.8c0.3-0.8 0.8-1.6 1.3-2.4l1.7 1.2c0.4-0.6 0.9-1.2 1.5-1.6l-1.4-1.6c0.7-0.6 1.4-1.1 2.2-1.5l1 1.9c0.7-0.3 1.3-0.6 2.1-0.8l-0.5-2c0.9-0.2 1.8-0.3 2.7-0.3v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1H56v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1H72v-2.1h3.2v2.1h3.2v-2.1h3.2v2.1h3.2v-2.1H88v2.1h3.2v-2.1h3.2v2c0 0.9 0.7 1.7 1.7 1.7h4.4l0 8.1c0 1.9 0.1 3 0.9 4.1 0.8 1.2 2.1 1.9 4.1 1.9 2.1 0 3.4-0.7 4.1-1.9 0.8-1.1 1-2.2 1-4.1l0-6.6c0.1 0.1 0.3 0.1 0.4 0.1 1.3 0.5 2.4 0.8 3 0.8 1.8 0 3.2-2.7 3.6-6.2h2.4v2.1h3.2v-2.1l3.2 0 0 2.1c0.7 0 1.5 0.1 2.2 0.3l0.5-2c0.9 0.2 1.7 0.6 2.5 1l0-0.1h0l-1 1.9c0.6 0.4 1.3 0.8 1.8 1.3l1.4-1.6c0.7 0.6 1.3 1.3 1.8 2l-1.7 1.2c0.4 0.6 0.8 1.3 1 2l2-0.8c0.3 0.8 0.5 1.7 0.7 2.6l-2.1 0.3c0.1 0.4 0 0.7 0.1 1.1l0 1.6h2.1V26.1z"/>
206</svg>
207</a>
208    <div class="nav-wrap collapse navbar-collapse" id="navbarSupportedContent">
209      <div class="masthead-search-bar">
210<form role="search" method="get" class="search-form" action="/travel-gear/">
211	<label for="search">
212		<span class="screen-reader-text">Search for:</span>
213		<input id="search" type="search" class="search-field" placeholder="Search …" value="" name="term">
214	</label>
215	<input type="submit" class="search-submit btn-extend btn-primary-extend" value="Search">
216</form>
217</div>
218      <ul class="navbar-nav type-masthead-nav-items">
219        <li class="nav-item nav-deals">
220          <a class="nav-link link-btn" href="/deals/">Deals</a>
221        </li>
222        <!-- <li class="nav-item nav-careers">
223          <a class="nav-link link-btn" href="/careers/">Jobs</a>
224        </li> -->
225        <li class="nav-item nav-packing-lists">
226          <a class="nav-link link-btn" href="/packing-list/">Packing Lists</a>
227        </li>
228        <li class="nav-item nav-guides">
229          <a class="nav-link link-btn" href="/guide/">Guides</a>
230        </li>
231        <li class="nav-item nav-travel-gear">
232          <a class="nav-link link-btn" href="/travel-gear/">Reviews</a>
233        </li>
234        <li class="nav-item nav-blog">
235          <a class="nav-link link-btn" href="/blog/">Blog</a>
236        </li>
237                  <li class="nav-item nav-about">
238            <a class="nav-link link-btn" href="/about/">About</a>
239          </li>
240          <li class="nav-item nav-sign-in">
241            <a class="nav-link link-btn" href="https://packhacker.com/?memberful_endpoint=auth">Sign In</a>
242          </li>
243          <li class="nav-item nav-membership">
244            <a class="nav-link link-btn" href="/pro/">Membership</a>
245          </li>
246                <!-- <li class="d-flex align-items-center nav-newsletter">
247          <a class="btn-primary btn-sm" href="/newsletter/">Newsletter</a>
248        </li> -->
249      </ul>
250    </div>
251  </nav>
252
253<!-- New subnav logic to include guide -->
254
255
256<!-- New subnav logic to include guide -->
257
258</header>
259
260
261  <div class="legal-strip">
262    <p><small>Pack Hacker is reader-supported. When you buy through links on our site, we may earn an affiliate commission. <a href="/privacy-policy/#affiliate">Learn more</a></small></p>
263  </div>
264
265
266    <div class="wrap" role="document">
267      <div class="content">
268        <main class="main">
269          
270
271<div class="container top-container">
272
273  <header class="heading-blog">
274    <h1>The Blog</h1>
275    <p>For everything else. Gear & travel stories, tips, and tricks</p>
276  </header>
277
278  
279    <div class="ph-card-deck row align-items-stretch d-flex row-eq-height">
280            
281        <div class="col-lg-4">
282
283        <div class="card ph-card">
284          <a href="https://www.packhacker.com/blog/general/saily-video-2026-9-15/">
285            <img width="1050" height="700" src="https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop" class="img-fluid card-img-top full-width wp-stateless-item" alt="Video: Travel Tech Essentials That Make Your Phone More Useful" decoding="async" loading="lazy" srcset="https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop 1050w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=1110&amp;h=740&amp;fit=crop 1110w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=2220&amp;h=1480&amp;fit=crop 2220w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=350&amp;h=233&amp;fit=crop 350w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=700&amp;h=467&amp;fit=crop 700w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=40&amp;h=28&amp;fit=crop 40w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=320&amp;h=213&amp;fit=crop 320w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=640&amp;h=426&amp;fit=crop 640w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=960&amp;h=640&amp;fit=crop 960w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=360&amp;h=240&amp;fit=crop 360w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=720&amp;h=480&amp;fit=crop 720w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=1080&amp;h=720&amp;fit=crop 1080w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=480&amp;h=320&amp;fit=crop 480w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=1440&amp;h=960&amp;fit=crop 1440w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=1280&amp;h=852&amp;fit=crop 1280w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=1920&amp;h=1278&amp;fit=crop 1920w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=768&amp;h=512&amp;fit=crop 768w, https://cdn.packhacker.com/2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg?auto=compress&amp;auto=format&amp;w=1536&amp;h=1024&amp;fit=crop 1536w" sizes="(min-width: 768px) 50vw, 100vw" data-image-size="component-img-3-2_x3" data-stateless-media-bucket="packhacker-uploads" data-stateless-media-name="2026/09/2f4c2b7b-blogpost-featured-travel-tech-roundup-v12.jpg" />
286          </a>
287          <div class="card-block card-body">
288            <small><p></p></small>
289            <div class="card-title">Video: Travel Tech Essentials That Make Your Phone More Useful</div>
290            <p class="card-text">We’re looking at gear that makes your phone feel like the powerful tool it is while you’re traveling.</p>
291          </div>
292          <a href="https://www.packhacker.com/blog/general/saily-video-2026-9-15/" class="card-footer btn btn-primary">View Post</a>
293        </div>
294          </div>
295        
296          
297      
298        <div class="col-lg-4">
299
300        <div class="card ph-card">
301          <a href="https://www.packhacker.com/blog/general/best-travel-dresses/">
302            <img width="1050" height="700" src="https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop" class="img-fluid card-img-top full-width wp-stateless-item" alt="The Best Travel Dresses for Traveling Light" decoding="async" loading="lazy" srcset="https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop 1050w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1110&amp;h=740&amp;fit=crop 1110w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format 2220w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=350&amp;h=233&amp;fit=crop 350w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=700&amp;h=467&amp;fit=crop 700w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=40&amp;h=28&amp;fit=crop 40w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=320&amp;h=213&amp;fit=crop 320w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=640&amp;h=426&amp;fit=crop 640w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=960&amp;h=640&amp;fit=crop 960w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=360&amp;h=240&amp;fit=crop 360w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=720&amp;h=480&amp;fit=crop 720w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1080&amp;h=720&amp;fit=crop 1080w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=480&amp;h=320&amp;fit=crop 480w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1440&amp;h=960&amp;fit=crop 1440w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1280&amp;h=852&amp;fit=crop 1280w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1920&amp;h=1278&amp;fit=crop 1920w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=768&amp;h=512&amp;fit=crop 768w, https://cdn.packhacker.com/2026/09/a8416181-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1536&amp;h=1024&amp;fit=crop 1536w" sizes="(min-width: 768px) 50vw, 100vw" data-image-size="component-img-3-2_x3" data-stateless-media-bucket="packhacker-uploads" data-stateless-media-name="2026/09/a8416181-blogpost-featured.jpg" />
303          </a>
304          <div class="card-block card-body">
305            <small><p></p></small>
306            <div class="card-title">The Best Travel Dresses for Traveling Light</div>
307            <p class="card-text">The best travel dresses are comfortable, packable, and wrinkle less than other options. We've found the best dresses for travel to get before your next trip.</p>
308          </div>
309          <a href="https://www.packhacker.com/blog/general/best-travel-dresses/" class="card-footer btn btn-primary">View Post</a>
310        </div>
311          </div>
312        
313          
314      
315        <div class="col-lg-4">
316
317        <div class="card ph-card">
318          <a href="https://www.packhacker.com/blog/general/backcountry-labor-day-sale-save-40-or-more-on-packs-and-bags/">
319            <img width="1050" height="700" src="https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop" class="img-fluid card-img-top full-width wp-stateless-item" alt="" decoding="async" loading="lazy" srcset="https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop 1050w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=1110&amp;h=740&amp;fit=crop 1110w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=350&amp;h=233&amp;fit=crop 350w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=700&amp;h=467&amp;fit=crop 700w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=40&amp;h=28&amp;fit=crop 40w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=320&amp;h=213&amp;fit=crop 320w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=640&amp;h=426&amp;fit=crop 640w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=960&amp;h=640&amp;fit=crop 960w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=360&amp;h=240&amp;fit=crop 360w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=720&amp;h=480&amp;fit=crop 720w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=1080&amp;h=720&amp;fit=crop 1080w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=480&amp;h=320&amp;fit=crop 480w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=1440&amp;h=960&amp;fit=crop 1440w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=1280&amp;h=852&amp;fit=crop 1280w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=1920&amp;h=1278&amp;fit=crop 1920w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=768&amp;h=512&amp;fit=crop 768w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format&amp;w=1536&amp;h=1024&amp;fit=crop 1536w, https://cdn.packhacker.com/2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png?auto=compress&amp;auto=format 2000w" sizes="(min-width: 768px) 50vw, 100vw" data-image-size="component-img-3-2_x3" data-stateless-media-bucket="packhacker-uploads" data-stateless-media-name="2026/09/cd7eded5-backcountry_sas_2026_2000x1333.png" />
320          </a>
321          <div class="card-block card-body">
322            <small><p></p></small>
323            <div class="card-title">Backcountry Labor Day Sale: Save 40% or More on Packs and Bags</div>
324            <p class="card-text">Shop the end-of-summer sale for big savings on backpacks, day bags, luggage, and other outdoor and travel goods at Backcountry.com.</p>
325  
325        </div>
326          <a href="https://www.packhacker.com/blog/general/backcountry-labor-day-sale-save-40-or-more-on-packs-and-bags/" class="card-footer btn btn-primary">View Post</a>
327        </div>
328          </div>
329        
330          
331      
332        <div class="col-lg-4">
333
334        <div class="card ph-card">
335          <a href="https://www.packhacker.com/blog/general/best-portable-fan/">
336            <img width="1050" height="700" src="https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop" class="img-fluid card-img-top full-width wp-stateless-item" alt="The Best Portable Fan for Hot Weather Travel" decoding="async" loading="lazy" srcset="https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop 1050w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1110&amp;h=740&amp;fit=crop 1110w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format 2220w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=350&amp;h=233&amp;fit=crop 350w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=700&amp;h=467&amp;fit=crop 700w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=40&amp;h=28&amp;fit=crop 40w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=320&amp;h=213&amp;fit=crop 320w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=640&amp;h=426&amp;fit=crop 640w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=960&amp;h=640&amp;fit=crop 960w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=360&amp;h=240&amp;fit=crop 360w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=720&amp;h=480&amp;fit=crop 720w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1080&amp;h=720&amp;fit=crop 1080w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=480&amp;h=320&amp;fit=crop 480w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1440&amp;h=960&amp;fit=crop 1440w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1280&amp;h=852&amp;fit=crop 1280w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1920&amp;h=1278&amp;fit=crop 1920w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=768&amp;h=512&amp;fit=crop 768w, https://cdn.packhacker.com/2026/08/8eb96df6-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1536&amp;h=1024&amp;fit=crop 1536w" sizes="(min-width: 768px) 50vw, 100vw" data-image-size="component-img-3-2_x3" data-stateless-media-bucket="packhacker-uploads" data-stateless-media-name="2026/08/8eb96df6-blogpost-featured.jpg" />
337          </a>
338          <div class="card-block card-body">
339            <small><p></p></small>
340            <div class="card-title">The Best Portable Fan for Hot Weather Travel</div>
341            <p class="card-text">The best portable fan will help you beat the heat, and we're helping you find the best travel fan out there, whether you want to hold it, wear it, or mount it.</p>
342          </div>
343          <a href="https://www.packhacker.com/blog/general/best-portable-fan/" class="card-footer btn btn-primary">View Post</a>
344        </div>
345          </div>
346        
347          
348      
349        <div class="col-lg-4">
350
351        <div class="card ph-card">
352          <a href="https://www.packhacker.com/blog/general/grab-rei-gear-deals-in-its-sweeping-labor-day-sale/">
353            <img width="1050" height="700" src="https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop" class="img-fluid card-img-top full-width wp-stateless-item" alt="" decoding="async" loading="lazy" srcset="https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop 1050w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=1110&amp;h=740&amp;fit=crop 1110w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=2220&amp;h=1480&amp;fit=crop 2220w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=350&amp;h=233&amp;fit=crop 350w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=700&amp;h=467&amp;fit=crop 700w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=40&amp;h=28&amp;fit=crop 40w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=320&amp;h=213&amp;fit=crop 320w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=640&amp;h=426&amp;fit=crop 640w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=960&amp;h=640&amp;fit=crop 960w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=360&amp;h=240&amp;fit=crop 360w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=720&amp;h=480&amp;fit=crop 720w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=1080&amp;h=720&amp;fit=crop 1080w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=480&amp;h=320&amp;fit=crop 480w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=1440&amp;h=960&amp;fit=crop 1440w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=1280&amp;h=852&amp;fit=crop 1280w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=1920&amp;h=1278&amp;fit=crop 1920w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=768&amp;h=512&amp;fit=crop 768w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=1536&amp;h=1024&amp;fit=crop 1536w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format&amp;w=2304&amp;h=1536&amp;fit=crop 2304w, https://cdn.packhacker.com/2026/08/9e5086d2-lds-5-copy-scaled.jpg?auto=compress&amp;auto=format 2560w" sizes="(min-width: 768px) 50vw, 100vw" data-image-size="component-img-3-2_x3" data-stateless-media-bucket="packhacker-uploads" data-stateless-media-name="2026/08/9e5086d2-lds-5-copy-scaled.jpg" />
354          </a>
355          <div class="card-block card-body">
356            <small><p></p></small>
357            <div class="card-title">
357Grab REI Gear Deals in Its Sweeping Labor Day Sale</div>
358            <p class="card-text">Score late-summer deals up to 25% off a huge range of products, including plenty of high-end travel goods worth a look while supplies last.  </p>
359          </div>
360          <a href="https://www.packhacker.com/blog/general/grab-rei-gear-deals-in-its-sweeping-labor-day-sale/" class="card-footer btn btn-primary">View Post</a>
361        </div>
362          </div>
363        
364          
365      
366        <div class="col-lg-4">
367
368        <div class="card ph-card">
369          <a href="https://www.packhacker.com/blog/general/best-travel-hair-brush/">
370            <img width="1050" height="700" src="https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop" class="img-fluid card-img-top full-width wp-stateless-item" alt="The Best Travel Hair Brush" decoding="async" loading="lazy" srcset="https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop 1050w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1110&amp;h=740&amp;fit=crop 1110w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format 2220w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=350&amp;h=233&amp;fit=crop 350w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=700&amp;h=467&amp;fit=crop 700w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=40&amp;h=28&amp;fit=crop 40w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=320&amp;h=213&amp;fit=crop 320w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=640&amp;h=426&amp;fit=crop 640w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=960&amp;h=640&amp;fit=crop 960w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=360&amp;h=240&amp;fit=crop 360w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=720&amp;h=480&amp;fit=crop 720w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1080&amp;h=720&amp;fit=crop 1080w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=480&amp;h=320&amp;fit=crop 480w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1440&amp;h=960&amp;fit=crop 1440w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1280&amp;h=852&amp;fit=crop 1280w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1920&amp;h=1278&amp;fit=crop 1920w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=768&amp;h=512&amp;fit=crop 768w, https://cdn.packhacker.com/2026/08/2ce64b1d-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1536&amp;h=1024&amp;fit=crop 1536w" sizes="(min-width: 768px) 50vw, 100vw" data-image-size="component-img-3-2_x3" data-stateless-media-bucket="packhacker-uploads" data-stateless-media-name="2026/08/2ce64b1d-blogpost-featured.jpg" />
371          </a>
372          <div class="card-block card-body">
373            <small><p></p></small>
374            <div class="card-title">The Best Travel Hair Brush</div>
375            <p class="card-text">Whether you're looking for the best travel hair brush for detangling, styling, or just fitting into the smallest pocket possible, you'll find it on this list.</p>
376          </div>
377          <a href="https://www.packhacker.com/blog/general/best-travel-hair-brush/" class="card-footer btn btn-primary">View Post</a>
378        </div>
379          </div>
380        
381          
382      
383        <div class="col-lg-4">
384
385        <div class="card ph-card">
386          <a href="https://www.packhacker.com/blog/general/gear-up-with-backcountrys-semi-annual-sale/">
387            <img width="1050" height="700" src="https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop" class="img-fluid card-img-top full-width wp-stateless-item" alt="" decoding="async" loading="lazy" srcset="https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop 1050w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=1110&amp;h=740&amp;fit=crop 1110w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=350&amp;h=233&amp;fit=crop 350w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=700&amp;h=467&amp;fit=crop 700w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=40&amp;h=28&amp;fit=crop 40w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=320&amp;h=213&amp;fit=crop 320w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=640&amp;h=426&amp;fit=crop 640w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=960&amp;h=640&amp;fit=crop 960w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=360&amp;h=240&amp;fit=crop 360w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=720&amp;h=480&amp;fit=crop 720w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=1080&amp;h=720&amp;fit=crop 1080w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=480&amp;h=320&amp;fit=crop 480w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=1440&amp;h=960&amp;fit=crop 1440w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=1280&amp;h=852&amp;fit=crop 1280w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=1920&amp;h=1278&amp;fit=crop 1920w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=768&amp;h=512&amp;fit=crop 768w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format&amp;w=1536&amp;h=1024&amp;fit=crop 1536w, https://cdn.packhacker.com/2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg?auto=compress&amp;auto=format 2000w" sizes="(min-width: 768px) 50vw, 100vw" data-image-size="component-img-3-2_x3" data-stateless-media-bucket="packhacker-uploads" data-stateless-media-name="2026/08/fcfd239d-backcountry_sas_2026_2000x1333-1.jpg" />
388          </a>
389          <div class="card-block card-body">
390            <small><p></p></small>
391            <div class="card-title">Gear Up With Backcountry’s Semi-Annual Sale</div>
392            <p class="card-text">The wide-ranging gear deals can help you upgrade your kit or improve the hike ahead. </p>
393          </div>
394          <a href="https://www.packhacker.com/blog/general/gear-up-with-backcountrys-semi-annual-sale/" class="card-footer btn btn-primary">View Post</a>
395        </div>
396          </div>
397        
398          
399      
400        <div class="col-lg-4">
401
402        <div class="card ph-card">
403          <a href="https://www.packhacker.com/blog/general/matador-travel-gear-redesign-reinvented-collection/">
404            <img width="1050" height="700" src="https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop" class="img-fluid card-img-top full-width wp-stateless-item" alt="Matador Reinvented: We Reviewed The New Collection—Here&#039;s What&#039;s Good" decoding="async" loading="lazy" srcset="https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop 1050w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=1110&amp;h=740&amp;fit=crop 1110w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=2220&amp;h=1480&amp;fit=crop 2220w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=350&amp;h=233&amp;fit=crop 350w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=700&amp;h=467&amp;fit=crop 700w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=40&amp;h=28&amp;fit=crop 40w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=320&amp;h=213&amp;fit=crop 320w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=640&amp;h=426&amp;fit=crop 640w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=960&amp;h=640&amp;fit=crop 960w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=360&amp;h=240&amp;fit=crop 360w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=720&amp;h=480&amp;fit=crop 720w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=1080&amp;h=720&amp;fit=crop 1080w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=480&amp;h=320&amp;fit=crop 480w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=1440&amp;h=960&amp;fit=crop 1440w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=1280&amp;h=852&amp;fit=crop 1280w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=1920&amp;h=1278&amp;fit=crop 1920w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=768&amp;h=512&amp;fit=crop 768w, https://cdn.packhacker.com/2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg?auto=compress&amp;auto=format&amp;w=1536&amp;h=1024&amp;fit=crop 1536w" sizes="(min-width: 768px) 50vw, 100vw" data-image-size="component-img-3-2_x3" data-stateless-media-bucket="packhacker-uploads" data-stateless-media-name="2026/07/786bb8d5-blogpost-featured-matador-line-launch-august-2026.jpg" />
405          </a>
406          <div class="card-block card-body">
407            <small><p></p></small>
408            <div class="card-title">Matador Reinvented: We Reviewed The New Collection—Here&#8217;s What&#8217;s Good</div>
409            <p class="card-text">Matador redesigned its entire line with travelers in mind. New styles, new materials: we tested it out.</p>
410          </div>
411          <a href="https://www.packhacker.com/blog/general/matador-travel-gear-redesign-reinvented-collection/" class="card-footer btn btn-primary">View Post</a>
412        </div>
413          </div>
414        
415          
416      
417        <div class="col-lg-4">
418
419        <div class="card ph-card">
420          <a href="https://www.packhacker.com/blog/general/best-travel-jewelry-case/">
421            <img width="1050" height="700" src="https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop" class="img-fluid card-img-top full-width wp-stateless-item" alt="The Best Travel Jewelry Case" decoding="async" loading="lazy" srcset="https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1050&amp;h=700&amp;fit=crop 1050w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1110&amp;h=740&amp;fit=crop 1110w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format 2220w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=350&amp;h=233&amp;fit=crop 350w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=700&amp;h=467&amp;fit=crop 700w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=40&amp;h=28&amp;fit=crop 40w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=320&amp;h=213&amp;fit=crop 320w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=640&amp;h=426&amp;fit=crop 640w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=960&amp;h=640&amp;fit=crop 960w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=360&amp;h=240&amp;fit=crop 360w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=720&amp;h=480&amp;fit=crop 720w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1080&amp;h=720&amp;fit=crop 1080w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=480&amp;h=320&amp;fit=crop 480w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1440&amp;h=960&amp;fit=crop 1440w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1280&amp;h=852&amp;fit=crop 1280w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1920&amp;h=1278&amp;fit=crop 1920w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=768&amp;h=512&amp;fit=crop 768w, https://cdn.packhacker.com/2026/07/77c539b3-blogpost-featured.jpg?auto=compress&amp;auto=format&amp;w=1536&amp;h=1024&amp;fit=crop 1536w" sizes="(min-width: 768px) 50vw, 100vw" data-image-size="component-img-3-2_x3" data-stateless-media-bucket="packhacker-uploads" data-stateless-media-name="2026/07/77c539b3-blogpost-featured.jpg" />
422          </a>
423          <div class="card-block card-body">
424            <small><p></p></small>
425            <div class="card-title">The Best Travel Jewelry Case</div>
426            <p class="card-text">
426When you want to wear your necklaces, earrings, and rings without spending time untangling them at your destination, pack them in the best travel jewelry case.</p>
427          </div>
428          <a href="https://www.packhacker.com/blog/general/best-travel-jewelry-case/" class="card-footer btn btn-primary">View Post</a>
429        </div>
430          </div>
431        
432          
433        </div>
434
435  <nav><ul class="pagination blog-pagination"><li class="page-item active"><span aria-current="page" class="page-link current">1</span></li><li class="page-item"><a class="page-link" href="https://www.packhacker.com/blog/?blog_page=2">2</a></li><li class="page-item"><a class="page-link" href="https://www.packhacker.com/blog/?blog_page=3">3</a></li><li class="page-item"><span class="page-link dots">&hellip;</span></li><li class="page-item"><a class="page-link" href="https://www.packhacker.com/blog/?blog_page=35">35</a></li><li class="page-item"><a class="next page-link" href="https://www.packhacker.com/blog/?blog_page=2">Next »</a></li></ul></nav>
436</div>
437        </main><!-- /.main -->
438              </div><!-- /.content -->
439    </div><!-- /.wrap -->
440    <footer class="content-info footer-frontpage master-footer">
441  <div class="container">
442    <div class="row">
443      <div class="col-md-4 footer-block">
444        <span class="heading-footer h6-extend">5 Minimalist Travel Hacks</span>
445        <p>Sign up to get our <strong>5 Minimalist Travel Hacks Guide.</strong> Plus, a weekly digest of our newest content in the newsletter.</p>
446        <a href="/newsletter" class="btn-primary btn">Get the Guide</a>
447      </div>
448      <div class="col-md-4 footer-block">
449        <span class="heading-footer h6-extend">Connect With Us</span>
450        <ul class="social-list">
451  <li class="social-list-email"><a rel="nofollow" target="_blank" href="mailto:[email protected]"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
452	<polygon class="st0" points="16 3 0 3 8 8.9 "/><polygon class="st0" points="0 4.2 0 11.8 5.1 8 "/><polygon class="st0" points="8 10.2 5.9 8.6 0 13 16 13 16 13 10.1 8.6 "/><polygon class="st0" points="10.9 8 16 11.8 16 4.2 "/>
453</svg>
454<span class="social-list-text">Email Us</span></a></li>
455  <li class="social-list-youtube"><a rel="nofollow" target="_blank" href="http://packha.kr/youtube"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
456	<path class="st0" d="M15.8 4.8c0 0-0.2-1.1-0.6-1.6 -0.6-0.6-1.3-0.6-1.6-0.7C11.4 2.3 8 2.3 8 2.3s-4.2 0-5.4 0.2c-0.4 0.1-1.2 0-1.8 0.7C0.3 3.7 0.2 4.8 0.2 4.8S0 6.1 0 7.3v1.3c0 1.3 0.2 2.6 0.2 2.6s0.2 1.1 0.6 1.6c0.6 0.6 1.4 0.6 1.8 0.7C3.8 13.6 8 13.6 8 13.6s3.4 0 5.6-0.2c0.3 0 1 0 1.6-0.7 0.5-0.5 0.6-1.6 0.6-1.6S16 9.9 16 8.6V7.3C16 6 15.8 4.8 15.8 4.8zM6.3 10L6.3 10l0-4.5 4.3 2.3L6.3 10z"/>
457</svg>
458<span class="social-list-text">YouTube</span></a></li>
459  <li class="social-list-instagram"><a rel="nofollow" target="_blank" href="http://packha.kr/instagram"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
460	<path class="st0" d="M8 0C5.8 0 5.6 0 4.7 0c-0.9 0-1.4 0.2-1.9 0.4 -0.5 0.2-1 0.5-1.4 0.9C0.9 1.8 0.6 2.2 0.4 2.8 0.2 3.3 0.1 3.8 0 4.7 0 5.6 0 5.8 0 8s0 2.4 0 3.3c0 0.9 0.2 1.4 0.4 1.9 0.2 0.5 0.5 1 0.9 1.4 0.4 0.4 0.9 0.7 1.4 0.9 0.5 0.2 1.1 0.3 1.9 0.4 0.9 0 1.1 0 3.3 0s2.4 0 3.3 0c0.9 0 1.4-0.2 1.9-0.4 0.5-0.2 1-0.5 1.4-0.9 0.4-0.4 0.7-0.9 0.9-1.4 0.2-0.5 0.3-1.1 0.4-1.9 0-0.9 0-1.1 0-3.3s0-2.4 0-3.3c0-0.9-0.2-1.4-0.4-1.9 -0.2-0.5-0.5-1-0.9-1.4 -0.4-0.4-0.9-0.7-1.4-0.9 -0.5-0.2-1.1-0.3-1.9-0.4C10.4 0 10.2 0 8 0zM8 1.4c2.1 0 2.4 0 3.2 0 0.8 0 1.2 0.2 1.5 0.3 0.4 0.1 0.6 0.3 0.9 0.6s0.5 0.5 0.6 0.9c0.1 0.3 0.2 0.7 0.3 1.5 0 0.8 0 1.1 0 3.2s0 2.4-0.1 3.2c0 0.8-0.2 1.2-0.3 1.5 -0.1 0.4-0.3 0.6-0.6 0.9 -0.3 0.3-0.6 0.5-0.9 0.6 -0.3 0.1-0.7 0.2-1.5 0.3 -0.9 0-1.1 0-3.2 0s-2.4 0-3.2-0.1c-0.8 0-1.2-0.2-1.5-0.3 -0.4-0.1-0.6-0.3-0.9-0.6 -0.3-0.3-0.5-0.6-0.6-0.9 -0.1-0.3-0.2-0.7-0.3-1.5 0-0.8 0-1.1 0-3.2s0-2.4 0-3.2c0-0.8 0.2-1.2 0.3-1.5C1.9 2.9 2 2.6 2.3 2.3s0.5-0.5 0.9-0.6c0.3-0.1 0.7-0.2 1.5-0.3C5.6 1.4 5.8 1.4 8 1.4L8 1.4zM8 3.9C5.7 3.9 3.9 5.7 3.9 8c0 2.3 1.8 4.1 4.1 4.1 2.3 0 4.1-1.8 4.1-4.1C12.1 5.7 10.3 3.9 8 3.9zM8 10.7c-1.5 0-2.7-1.2-2.7-2.7S6.5 5.3 8 5.3s2.7 1.2 2.7 2.7S9.5 10.7 8 10.7zM13.2 3.7c0 0.5-0.4 1-1 1s-1-0.4-1-1 0.4-1 1-1S13.2 3.2 13.2 3.7z"/>
461</svg>
462<span class="social-list-text">Instagram</span></a></li>
463  <li class="social-list-facebook"><a rel="nofollow" target="_blank" href="http://packha.kr/facebook"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
464	<path class="st0" d="M15.1 0H0.9C0.4 0 0 0.4 0 0.9v14.2C0 15.6 0.4 16 0.9 16h7.7V9.8H6.5V7.4h2.1V5.6c0-2.1 1.3-3.2 3.1-3.2 0.9 0 1.6 0.1 1.9 0.1v2.2h-1.3c-1 0-1.2 0.5-1.2 1.2v1.5h2.4l-0.3 2.4H11V16h4.1c0.5 0 0.9-0.4 0.9-0.9V0.9C16 0.4 15.6 0 15.1 0"/>
465</svg>
466<span class="social-list-text">Facebook</span></a></li>
467  <li class="social-list-twitter"><a rel="nofollow" target="_blank" href="http://packha.kr/twitter"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
468	<path class="st0" d="M16 3c-0.6 0.3-1.2 0.4-1.9 0.5 0.7-0.4 1.2-1 1.4-1.8 -0.6 0.4-1.3 0.6-2.1 0.8 -0.6-0.6-1.4-1-2.4-1C9.3 1.5 7.8 3 7.8 4.8c0 0.3 0 0.5 0.1 0.8C5.2 5.4 2.7 4.1 1.1 2.1c-0.3 0.5-0.4 1-0.4 1.7 0 1.1 0.6 2.1 1.5 2.7 -0.5 0-1-0.2-1.5-0.4v0c0 1.6 1.1 2.9 2.6 3.2C3 9.4 2.7 9.4 2.4 9.4c-0.2 0-0.4 0-0.6-0.1 0.4 1.3 1.6 2.3 3.1 2.3 -1.1 0.9-2.5 1.4-4.1 1.4 -0.3 0-0.5 0-0.8 0 1.5 0.9 3.2 1.5 5 1.5 6 0 9.3-5 9.3-9.3 0-0.1 0-0.3 0-0.4C15 4.3 15.6 3.7 16 3L16 3z"/>
469</svg>
470<span class="social-list-text">Twitter</span></a></li>
471  <li class="social-list-pinterest"><a rel="nofollow" target="_blank" href="http://packha.kr/pinterest"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
472	<path class="st0" d="M8 0C3.6 0 0 3.6 0 8c0 3.4 2.1 6.3 5.1 7.4 -0.1-0.6-0.1-1.6 0-2.3 0.1-0.6 0.9-4 0.9-4S5.8 8.7 5.8 8C5.8 6.9 6.5 6 7.3 6c0.7 0 1 0.5 1 1.1 0 0.7-0.4 1.7-0.7 2.7 -0.2 0.8 0.4 1.4 1.2 1.4 1.4 0 2.5-1.5 2.5-3.7 0-1.9-1.4-3.2-3.3-3.2 -2.3 0-3.6 1.7-3.6 3.5 0 0.7 0.3 1.4 0.6 1.8C5 9.8 5 9.8 5 9.9c-0.1 0.2-0.2 0.8-0.2 0.9 0 0.1-0.1 0.2-0.3 0.1 -1-0.5-1.6-1.9-1.6-3.1C2.9 5.3 4.7 3 8.2 3c2.8 0 4.9 2 4.9 4.6 0 2.8-1.7 5-4.2 5 -0.8 0-1.6-0.4-1.8-0.9l-0.5 1.9c-0.2 
4720.7-0.7 1.6-1 2.1C6.4 15.9 7.1 16 8 16c4.4 0 8-3.6 8-8S12.4 0 8 0L8 0z"/>
473</svg>
474<span class="social-list-text">Pinterest</span></a></li>
475  <li class="social-list-linkedin"><a rel="nofollow" target="_blank" href="http://packha.kr/linkedin"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
476	<path class="st0" d="M13.6 13.6h-2.4V9.9c0-0.9 0-2-1.2-2 -1.2 0-1.4 1-1.4 2v3.8H6.2V6h2.3v1h0c0.3-0.6 1.1-1.2 2.2-1.2 2.4 0 2.8 1.6 2.8 3.6V13.6L13.6 13.6zM3.6 5C2.8 5 2.2 4.3 2.2 3.6c0-0.8 0.6-1.4 1.4-1.4 0.8 0 1.4 0.6 1.4 1.4C4.9 4.3 4.3 5 3.6 5zM4.7 13.6H2.4V6h2.4C4.7 6 4.7 13.6 4.7 13.6zM14.8 0H1.2C0.5 0 0 0.5 0 1.2v13.7C0 15.5 0.5 16 1.2 16h13.6c0.7 0 1.2-0.5 1.2-1.2V1.2C16 0.5 15.5 0 14.8 0L14.8 0z"/>
477</svg>
478<span class="social-list-text">LinkedIn</span></a></li>
479  <li class="social-list-tiktok"><a rel="nofollow" target="_blank" href="https://www.tiktok.com/@packhackerhq"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path class="st0" d="M 14.093 0 L 1.901 0 C 0.852 0 0 0.852 0 1.903 L 0 14.095 C 0 15.144 0.852 15.996 1.901 15.996 L 14.093 15.996 C 15.144 15.996 15.996 15.144 15.996 14.095 L 15.996 1.903 C 15.996 0.852 15.144 0 14.093 0 Z M 12.573 6.98 C 12.485 6.984 12.396 6.993 12.308 6.993 C 11.309 6.993 10.43 6.478 9.918 5.702 C 9.918 7.738 9.918 10.058 9.918 10.095 C 9.918 11.89 8.467 13.345 6.672 13.345 C 4.877 13.345 3.422 11.89 3.422 10.095 C 3.422 8.3 4.877 6.85 6.672 6.85 C 6.742 6.85 6.807 6.854 6.872 6.858 L 6.872 8.458 C 6.807 8.449 6.742 8.439 6.672 8.439 C 5.757 8.439 5.012 9.179 5.012 10.095 C 5.012 11.011 5.757 11.755 6.672 11.755 C 7.589 11.755 8.398 11.035 8.398 10.118 C 8.398 10.081 8.412 2.651 8.412 2.651 L 9.941 2.651 C 10.085 4.023 11.192 5.101 12.573 5.199 L 12.573 6.98 Z M 12.573 6.98"></path></svg><span class="social-list-text">TikTok</span></a></li>
480</ul>
481      </div>
482      <div class="col-md-4 footer-block">
483        <span class="heading-footer h6-extend">More Info</span>
484        <ul>
485          <li><a href="https://allgeardigital.com/advertising/">Advertise With Us</a></li>  
486          <li><a href="/careers/">Careers</a></li>
487          <li><a href="/about/">About</a></li>
488          <li><a href="/support-us/">Support Us</a></li>
489          <li><a href="/travel-gear/">Reviews</a></li>
490          <li><a href="/guide/">Guides</a></li>
491          <li><a href="/blog/">Blog</a></li>
492          <li><a href="/deals/">Deals & Sales</a></li>
493          <li><a href="/newsletter/">Newsletter</a></li>
494          <li><a href="/contact/">Contact</a></li>
495          <li><a href="/about/team">Our Team</a></li>
496          <li><a href="/about/rating-system/">Rating System</a></li>
497          <li><a href="/guide/best-travel-backpack/">Best Travel Backpack</a></li>
498          <li><a href="/privacy-policy/">Privacy Policy</a></li>
499        </ul>
500      </div>
501    </div>
502    <div class="copyright">
503      <p>Pack Hacker is part of <a href="https://allgeardigital.com/" target="_blank">AllGear Digital's</a> portfolio of media brands.</p>
504      <small>&copy; 2026 Pack Hacker, LLC</small></div>
505  </div>
506</footer>
507<div id="desktop-adhesion-ad" class="packh-desktop-adhesion"><div id="desktop-adhesion-6ab5741db042b" ot-name="ph_dt_adhesion" class=""></div></div>
507<script type="text/javascript" src="https://www.packhacker.com/app/themes/packhacker/asc/inject-content-ads.js?ver=8.5.16" id="inject-content-ads-js" defer="defer" data-wp-strategy="defer"></script>
vendor: 1 bytes, line 507
507
508<script type="text/javascript" src="https://www.packhacker.com/app/themes/packhacker/asc/display-ad.js?ver=8.5.16" id="display-ad-js" defer="defer" data-wp-strategy="defer"></script>
vendor: 1 bytes, line 508
508
509<script type="text/javascript" src="https://www.packhacker.com/app/themes/packhacker/asc/scroll-observer.js?ver=8.5.16" id="scroll-observer-js" defer="defer" data-wp-strategy="defer"></script>
vendor: 1 bytes, line 509
509
510<script type="text/javascript" src="//code.jquery.com/jquery-3.5.1.min.js?ver=6.6.2" id="jquery-js"></script>
vendor: 1 bytes, line 510
510
511<script type="text/javascript" id="jquery-js-after">
512/* <![CDATA[ */
513      jQuery(document).ready(function($) {
514        $('img.lazy-hidden').each(function() {
515          this.src = $(this).data('src') + '?w=0.5&fit=crop&crop=entropy&px=16&blur=600&auto=format'
516          $(this).on('load', function() {
517            if (!$(this).hasClass('avatar')) {
518              this.style = 'height: auto';
519            }
520          }.bind(this))
521        });
522      })
523  
524appurl = "https://app.packhacker.com"
525/* ]]> */
526</script>
vendor: 1 bytes, line 526
526
527<script type="text/javascript" id="jquery-lazyloadxt-js-extra">
528/* <![CDATA[ */
529var a3_lazyload_params = {"apply_images":"1","apply_videos":"1"};
530/* ]]> */
531</script>
vendor: 1 bytes, line 531
531
532<script type="text/javascript" src="//www.packhacker.com/app/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extra.min.js?ver=2.7.0" id="jquery-lazyloadxt-js"></script>
vendor: 1 bytes, line 532
532
533<script type="text/javascript" src="//www.packhacker.com/app/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.srcset.min.js?ver=2.7.0" id="jquery-lazyloadxt-srcset-js"></script>
vendor: 1 bytes, line 533
533
534<script type="text/javascript" id="jquery-lazyloadxt-extend-js-extra">
535/* <![CDATA[ */
536var a3_lazyload_extend_params = {"edgeY":"50","horizontal_container_classnames":""};
537/* ]]> */
538</script>
vendor: 1 bytes, line 538
538
539<script type="text/javascript" src="//www.packhacker.com/app/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extend.js?ver=2.7.0" id="jquery-lazyloadxt-extend-js"></script>
vendor: 1 bytes, line 539
539
540<script type="text/javascript" src="https://www.packhacker.com/app/themes/packhacker/dist/main.ce3ea889d4060ce1d9dc.js?ver=8.5.16" id="packhacker/js-js"></script>
540
541
542    
542<script defer="defer">
543    window.addEventListener("load", function() {
544      var bkgs = document.querySelectorAll(".blurry-bkg");
545      bkgs.forEach(function(bkg) {
546        var img = new Image();
547        img.src = bkg.dataset.imgUrl;
548        img.addEventListener("load", function() {
549          bkg.style.backgroundImage = "url(" + img.src + ")";
550        });
551      });
552    });
553    </script>
553
554
555            
556  
556<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"d9f96d0186","applicationID":"1056673621","transactionName":"NgZRbRZUXERYAUZeCQ9MZksNGltZXQdKGRYJEw==","queueTime":0,"applicationTime":113,"atts":"GkFSG15OT0o=","errorBeacon":"bam.nr-data.net","agent":""}</script>
556</body>
557</html>
558
559<!--
560Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/
561
562Page Caching using Disk: Enhanced{w3tc_pagecache_reject_reason}
563
564Served from: www.packhacker.com @ 2026-09-24 15:03:57 by W3 Total Cache
565-->

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.