@appello/common
Version:
Common package with many useful features for web and mobile development
2 lines • 241 kB
JavaScript
import{useRef as t,useMemo as e,useState as n,useEffect as r,useCallback as a}from"react";import{Buffer as o}from"buffer";function i(n){const r=t(n);r.current=e(()=>n,[n]);const a=t(void 0);return a.current||(a.current=function(...t){return r.current.apply(this,t)}),a.current}function u({fn:e,delay:o=1e3,onStop:u,immediateStart:s=!1,immediateCallFn:c=!1}){const[d,l]=n(s),f=t(null),h=i(e);r(()=>{l(s)},[s]),r(()=>d?(c&&h(),f.current=setInterval(h,o),()=>{f.current&&(clearInterval(f.current),u?.(),l(!1))}):()=>{f.current&&(clearInterval(f.current),u?.())},[d,o,c]);return{start:a(()=>l(!0),[]),stop:a(()=>l(!1),[]),setState:l}}function s(){const[t,e]=n(0),{start:r,stop:a}=u({fn:()=>{e(t=>{const e=t>0?t-1:t;return 0===e&&a(),e})}});return{seconds:t,inProgress:!!t,sendCode:(t,n=59)=>{e(n),a(),r(),t?.()}}}const c=t=>t?t.charAt(0).toUpperCase()+t.slice(1):t,d=()=>"undefined"==typeof window,l=()=>"undefined"!=typeof navigator,f=t=>t.filter(Boolean),h=t=>!!t&&t.constructor===Object;function m(t,e=0,n){let r,a,o,i,u,s=0,c=0,d=!1,l=!1,f=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function m(e){const n=r,i=a;return r=a=void 0,c=e,o=t.apply(i,n),o}function g(t,e){return setTimeout(t,e)}function w(t){const n=t-u;return void 0===u||n>=e||n<0||l&&t-c>=s}function b(){const t=Date.now();if(w(t))return y(t);i=g(b,function(t){const n=t-c,r=e-(t-u);return l?Math.min(r,s-n):r}(t))}function y(t){return i=void 0,f&&r?m(t):(r=a=void 0,o)}function p(...t){const n=Date.now(),s=w(n);if(r=t,a=this,u=n,s){if(void 0===i)return function(t){return c=t,i=g(b,e),d?m(t):o}(u);if(l)return i=g(b,e),m(u)}return void 0===i&&(i=g(b,e)),o}return h(n)&&(d=!!n.leading,l="maxWait"in n,s=l?Math.max(n?.maxWait||0,e):s,f="trailing"in n?!!n.trailing:f),p.cancel=function(){void 0!==i&&clearTimeout(i),c=0,r=u=a=i=void 0},p.flush=function(){return void 0===i?o:y(Date.now())},p.pending=function(){return void 0!==i},p}const g=(t,e)=>{if(t===e)return!0;if(null===t||"object"!=typeof t||null===e||"object"!=typeof e)return!1;const n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(n=>r.includes(n)&&g(t[n],e[n]))},w=Array.isArray,b=t=>{if(!t)return[];const e=(t,n)=>h(t)?Object.entries(t).flatMap(([t,r])=>e(r,[...n,t])):w(t)?t.flatMap((t,r)=>e(t,[...n,`${r}`])):[n.join(".")];return e(t,[])},y=Object.keys,p=(t,e)=>{const n={...t};return h(t)&&h(e)&&y(e).forEach(r=>{"__proto__"!==r&&(h(e[r])?n[r]=r in t?p(n[r],e[r]):e[r]:n[r]=e[r])}),n},v=(t,e)=>t.filter(t=>!e.includes(t)),M=Object.entries,S=(t,e={})=>{const{capitalizeAll:n=!1,lowercase:r=!1}=e,a=t.split("_").map(t=>t.toLowerCase());return r?a.join(" "):n?a.map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" "):a.map((t,e)=>0===e?t.charAt(0).toUpperCase()+t.slice(1):t).join(" ")};function k(t,e){return Object.values(t).map(t=>({label:e?.(t)??S(t),value:t}))}const x=(t,e={})=>{const{currency:n="$",separator:r=",",decimals:a=2,symbolAfter:o=!1}=e,i=Number(t.toFixed(a)),[u,s]=Math.abs(i).toFixed(a).split("."),c=u?.replace(/\B(?=(\d{3})+(?!\d))/g,r),d=a>0?`${c}.${s}`:c,l=i<0?"-":"";return o?`${l}${d}${n}`:`${l}${n}${d}`},P=(t,e={})=>{const{separator:n=",",decimals:r,prefix:a="",suffix:o=""}=e;let i;i=void 0!==r?t.toFixed(r):t.toString();const[u,s]=i.split("."),c=u?.replace(/\B(?=(\d{3})+(?!\d))/g,n);return`${a}${void 0!==s?`${c}.${s}`:c}${o}`};function O(t,e){return Object.keys(t).reduce((n,r)=>t[r]?(n[r]="object"==typeof t[r]?O(t[r],e[r]):e[r],n):n,{})}const j=t=>t.split(".").pop()?.toLowerCase(),D=(t,e=!1)=>{if(!t)return"";const n=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\")),r=-1!==n?t.slice(n+1):t;if(e)return r;const a=r.lastIndexOf(".");return-1===a||0===a?r:r.slice(0,a)};function W(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}function T(t){const e=Object.prototype.toString.call(t);return t instanceof Date||"object"==typeof t&&"[object Date]"===e?new t.constructor(+t):"number"==typeof t||"[object Number]"===e||"string"==typeof t||"[object String]"===e?new Date(t):new Date(NaN)}function E(t,e){return t instanceof Date?new t.constructor(e):new Date(e)}const C=6048e5;let F={};function N(){return F}function $(t,e){const n=N(),r=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=T(t),o=a.getDay(),i=(o<r?7:0)+o-r;return a.setDate(a.getDate()-i),a.setHours(0,0,0,0),a}function q(t){return $(t,{weekStartsOn:1})}function Y(t){const e=T(t),n=e.getFullYear(),r=E(t,0);r.setFullYear(n+1,0,4),r.setHours(0,0,0,0);const a=q(r),o=E(t,0);o.setFullYear(n,0,4),o.setHours(0,0,0,0);const i=q(o);return e.getTime()>=a.getTime()?n+1:e.getTime()>=i.getTime()?n:n-1}function A(t){const e=T(t);return e.setHours(0,0,0,0),e}function I(t){const e=T(t),n=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return n.setUTCFullYear(e.getFullYear()),+t-+n}function H(t){if(!(e=t,e instanceof Date||"object"==typeof e&&"[object Date]"===Object.prototype.toString.call(e)||"number"==typeof t))return!1;var e;const n=T(t);return!isNaN(Number(n))}function z(t,e){const n=N(),r=n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=T(t),o=a.getDay(),i=6+(o<r?-7:0)-(o-r);return a.setDate(a.getDate()+i),a.setHours(23,59,59,999),a}const B={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function L(t){return(e={})=>{const n=e.width?String(e.width):t.defaultWidth;return t.formats[n]||t.formats[t.defaultWidth]}}const Q={date:L({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:L({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:L({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},U={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function G(t){return(e,n)=>{let r;if("formatting"===(n?.context?String(n.context):"standalone")&&t.formattingValues){const e=t.defaultFormattingWidth||t.defaultWidth,a=n?.width?String(n.width):e;r=t.formattingValues[a]||t.formattingValues[e]}else{const e=t.defaultWidth,a=n?.width?String(n.width):t.defaultWidth;r=t.values[a]||t.values[e]}return r[t.argumentCallback?t.argumentCallback(e):e]}}function X(t){return(e,n={})=>{const r=n.width,a=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],o=e.match(a);if(!o)return null;const i=o[0],u=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],s=Array.isArray(u)?function(t,e){for(let n=0;n<t.length;n++)if(e(t[n]))return n;return}(u,t=>t.test(i)):function(t,e){for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e(t[n]))return n;return}(u,t=>t.test(i));let c;c=t.valueCallback?t.valueCallback(s):s,c=n.valueCallback?n.valueCallback(c):c;return{value:c,rest:e.slice(i.length)}}}var J;const R={code:"en-US",formatDistance:(t,e,n)=>{let r;const a=B[t];return r="string"==typeof a?a:1===e?a.one:a.other.replace("{{count}}",e.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r},formatLong:Q,formatRelative:(t,e,n,r)=>U[t],localize:{ordinalNumber:(t,e)=>{const n=Number(t),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:G({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:G({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:t=>t-1}),month:G({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:G({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:G({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(J={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:t=>parseInt(t,10)},(t,e={})=>{const n=t.match(J.matchPattern);if(!n)return null;const r=n[0],a=t.match(J.parsePattern);if(!a)return null;let o=J.valueCallback?J.valueCallback(a[0]):a[0];return o=e.valueCallback?e.valueCallback(o):o,{value:o,rest:t.slice(r.length)}}),era:X({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:X({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:t=>t+1}),month:X({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:X({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:X({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function _(t){const e=T(t),n=function(t,e){const n=A(t),r=A(e),a=+n-I(n),o=+r-I(r);return Math.round((a-o)/864e5)}(e,function(t){const e=T(t),n=E(t,0);return n.setFullYear(e.getFullYear(),0,1),n.setHours(0,0,0,0),n}(e));return n+1}function V(t){const e=T(t),n=+q(e)-+function(t){const e=Y(t),n=E(t,0);return n.setFullYear(e,0,4),n.setHours(0,0,0,0),q(n)}(e);return Math.round(n/C)+1}function K(t,e){const n=T(t),r=n.getFullYear(),a=N(),o=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,i=E(t,0);i.setFullYear(r+1,0,o),i.setHours(0,0,0,0);const u=$(i,e),s=E(t,0);s.setFullYear(r,0,o),s.setHours(0,0,0,0);const c=$(s,e);return n.getTime()>=u.getTime()?r+1:n.getTime()>=c.getTime()?r:r-1}function Z(t,e){const n=T(t),r=+$(n,e)-+function(t,e){const n=N(),r=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=K(t,e),o=E(t,0);return o.setFullYear(a,0,r),o.setHours(0,0,0,0),$(o,e)}(n,e);return Math.round(r/C)+1}function tt(t,e){return(t<0?"-":"")+Math.abs(t).toString().padStart(e,"0")}const et={y(t,e){const n=t.getFullYear(),r=n>0?n:1-n;return tt("yy"===e?r%100:r,e.length)},M(t,e){const n=t.getMonth();return"M"===e?String(n+1):tt(n+1,2)},d:(t,e)=>tt(t.getDate(),e.length),a(t,e){const n=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return"am"===n?"a.m.":"p.m."}},h:(t,e)=>tt(t.getHours()%12||12,e.length),H:(t,e)=>tt(t.getHours(),e.length),m:(t,e)=>tt(t.getMinutes(),e.length),s:(t,e)=>tt(t.getSeconds(),e.length),S(t,e){const n=e.length,r=t.getMilliseconds();return tt(Math.trunc(r*Math.pow(10,n-3)),e.length)}},nt="midnight",rt="noon",at="morning",ot="afternoon",it="evening",ut="night",st={G:function(t,e,n){const r=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(t,e,n){if("yo"===e){const e=t.getFullYear(),r=e>0?e:1-e;return n.ordinalNumber(r,{unit:"year"})}return et.y(t,e)},Y:function(t,e,n,r){const a=K(t,r),o=a>0?a:1-a;if("YY"===e){return tt(o%100,2)}return"Yo"===e?n.ordinalNumber(o,{unit:"year"}):tt(o,e.length)},R:function(t,e){return tt(Y(t),e.length)},u:function(t,e){return tt(t.getFullYear(),e.length)},Q:function(t,e,n){const r=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return tt(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,e,n){const r=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return tt(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,e,n){const r=t.getMonth();switch(e){case"M":case"MM":return et.M(t,e);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(t,e,n){const r=t.getMonth();switch(e){case"L":return String(r+1);case"LL":return tt(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(t,e,n,r){const a=Z(t,r);return"wo"===e?n.ordinalNumber(a,{unit:"week"}):tt(a,e.length)},I:function(t,e,n){const r=V(t);return"Io"===e?n.ordinalNumber(r,{unit:"week"}):tt(r,e.length)},d:function(t,e,n){return"do"===e?n.ordinalNumber(t.getDate(),{unit:"date"}):et.d(t,e)},D:function(t,e,n){const r=_(t);return"Do"===e?n.ordinalNumber(r,{unit:"dayOfYear"}):tt(r,e.length)},E:function(t,e,n){const r=t.getDay();switch(e){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(t,e,n,r){const a=t.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(o);case"ee":return tt(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(t,e,n,r){const a=t.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(o);case"cc":return tt(o,e.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(t,e,n){const r=t.getDay(),a=0===r?7:r;switch(e){case"i":return String(a);case"ii":return tt(a,e.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(t,e,n){const r=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(t,e,n){const r=t.getHours();let a;switch(a=12===r?rt:0===r?nt:r/12>=1?"pm":"am",e){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(t,e,n){const r=t.getHours();let a;switch(a=r>=17?it:r>=12?ot:r>=4?at:ut,e){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(t,e,n){if("ho"===e){let e=t.getHours()%12;return 0===e&&(e=12),n.ordinalNumber(e,{unit:"hour"})}return et.h(t,e)},H:function(t,e,n){return"Ho"===e?n.ordinalNumber(t.getHours(),{unit:"hour"}):et.H(t,e)},K:function(t,e,n){const r=t.getHours()%12;return"Ko"===e?n.ordinalNumber(r,{unit:"hour"}):tt(r,e.length)},k:function(t,e,n){let r=t.getHours();return 0===r&&(r=24),"ko"===e?n.ordinalNumber(r,{unit:"hour"}):tt(r,e.length)},m:function(t,e,n){return"mo"===e?n.ordinalNumber(t.getMinutes(),{unit:"minute"}):et.m(t,e)},s:function(t,e,n){return"so"===e?n.ordinalNumber(t.getSeconds(),{unit:"second"}):et.s(t,e)},S:function(t,e){return et.S(t,e)},X:function(t,e,n){const r=t.getTimezoneOffset();if(0===r)return"Z";switch(e){case"X":return dt(r);case"XXXX":case"XX":return lt(r);default:return lt(r,":")}},x:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"x":return dt(r);case"xxxx":case"xx":return lt(r);default:return lt(r,":")}},O:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+ct(r,":");default:return"GMT"+lt(r,":")}},z:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+ct(r,":");default:return"GMT"+lt(r,":")}},t:function(t,e,n){return tt(Math.trunc(t.getTime()/1e3),e.length)},T:function(t,e,n){return tt(t.getTime(),e.length)}};function ct(t,e=""){const n=t>0?"-":"+",r=Math.abs(t),a=Math.trunc(r/60),o=r%60;return 0===o?n+String(a):n+String(a)+e+tt(o,2)}function dt(t,e){if(t%60==0){return(t>0?"-":"+")+tt(Math.abs(t)/60,2)}return lt(t,e)}function lt(t,e=""){const n=t>0?"-":"+",r=Math.abs(t);return n+tt(Math.trunc(r/60),2)+e+tt(r%60,2)}const ft=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},ht=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},mt={p:ht,P:(t,e)=>{const n=t.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return ft(t,e);let o;switch(r){case"P":o=e.dateTime({width:"short"});break;case"PP":o=e.dateTime({width:"medium"});break;case"PPP":o=e.dateTime({width:"long"});break;default:o=e.dateTime({width:"full"})}return o.replace("{{date}}",ft(r,e)).replace("{{time}}",ht(a,e))}},gt=/^D+$/,wt=/^Y+$/,bt=["D","DD","YY","YYYY"];const yt=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,pt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,vt=/^'([^]*?)'?$/,Mt=/''/g,St=/[a-zA-Z]/;function kt(t,e,n){const r=N(),a=r.locale??R,o=r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,i=r.weekStartsOn??r.locale?.options?.weekStartsOn??0,u=T(t);if(!H(u))throw new RangeError("Invalid time value");let s=e.match(pt).map(t=>{const e=t[0];if("p"===e||"P"===e){return(0,mt[e])(t,a.formatLong)}return t}).join("").match(yt).map(t=>{if("''"===t)return{isToken:!1,value:"'"};const e=t[0];if("'"===e)return{isToken:!1,value:xt(t)};if(st[e])return{isToken:!0,value:t};if(e.match(St))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return{isToken:!1,value:t}});a.localize.preprocessor&&(s=a.localize.preprocessor(u,s));const c={firstWeekContainsDate:o,weekStartsOn:i,locale:a};return s.map(n=>{if(!n.isToken)return n.value;const r=n.value;(function(t){return wt.test(t)}(r)||function(t){return gt.test(t)}(r))&&function(t,e,n){const r=function(t,e,n){const r="Y"===t[0]?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(t,e,n);if(console.warn(r),bt.includes(t))throw new RangeError(r)}(r,e,String(t));return(0,st[r[0]])(u,r,a.localize,c)}).join("")}function xt(t){const e=t.match(vt);return e?e[1].replace(Mt,"'"):t}function Pt(t={}){return function(t){const e=T(t.start),n=T(t.end);let r=+e>+n;const a=r?+e:+n,o=r?n:e;o.setHours(0,0,0,0);const i=[];for(;+o<=a;)i.push(T(o)),o.setDate(o.getDate()+1),o.setHours(0,0,0,0);return r?i.reverse():i}({start:$(new Date),end:z(new Date)}).map(e=>kt(e,t.longFormat?"iiii":"E"))}const Ot=(t,e)=>t.filter(t=>e.includes(t)),jt=t=>!!t&&"undefined"!=typeof Blob&&t instanceof Blob,Dt=t=>"[object Date]"===W(t),Wt=t=>!!(t&&t.constructor&&t.call&&t.apply);function Tt(t){return Array.isArray(t)&&t.length>0?t.every(Tt):void 0===t||null==t}const Et=t=>{try{return Number(t)===t}catch{return!1}},Ct=t=>!!t&&t.constructor===Symbol,Ft=t=>{if(!0===t||!1===t)return!0;if(Tt(t))return!0;if(Et(t))return 0===t;if(Dt(t))return Number.isNaN(t.getTime());if(Wt(t))return!1;if(Ct(t))return!1;const e=t.length;if(Et(e))return 0===e;const n=t.size;if(Et(n))return 0===n;return 0===Object.keys(t).length},Nt=t=>!!t&&"undefined"!=typeof File&&t instanceof File,$t=t=>Et(t)&&t%1!=0,qt=t=>Et(t)&&t%1==0,Yt=t=>null==t||"object"!=typeof t&&"function"!=typeof t,At=t=>!!t&&(!!t.then&&Wt(t.then)),It=t=>"string"==typeof t||t instanceof String;function Ht(t,e=new FormData,n){if(void 0===t)return e;if(Array.isArray(t))t.length?t.forEach((t,r)=>Ht(t,e,`${n}[${r}]`)):Ht("",e,`${n}`);else if(h(t))Object.entries(t).forEach(([t,r])=>{t=n&&/\[\d+\]$/.test(n)?n?`${n}${t}`:t:n?`${n}.${t}`:t,Ht(r,e,t)});else if(null!==t){let r=t;"boolean"==typeof r&&(r=Number(r)),e.append(`${n}`,r)}return e}function zt(t,e={}){const{withPrefix:n=!0}=e;return Object.entries(t).filter(t=>void 0!==t[1]).map(([t,e],r)=>`${0===r&&n?"?":""}${encodeURIComponent(t)}=${encodeURIComponent(e)}`).join("&")}function Bt(t,e){const n=function(t){if("_parts"in t)return t._parts;if("entries"in t)return[...t.entries()];throw new Error("You are trying to map not a FormData object")}(t);return n.reduce((t,n)=>(t.append(...e(n)),t),new FormData)}const Lt=(t,e,n="push",r="id")=>{const a=new Map,o=t=>String(Wt(r)?r(t):t[r]);return("push"===n?t:e).forEach(t=>{a.set(o(t),t)}),("push"===n?e:t).forEach(t=>{a.set(o(t),"push"===n?{...a.get(o(t)),...t}:{...t,...a.get(o(t))})}),Array.from(a.values())};function Qt(){}function Ut(t,e){return e.reduce((t,e)=>(Object.prototype.hasOwnProperty.call(t,e)&&delete t[e],t),{...t})}function Gt(t,e){return e.reduce((e,n)=>({...e,[n]:t[n]}),{})}const Xt=(t,e,n)=>`${t} ${1===t?e:n||`${e}s`}`;function Jt(t){return new Promise(e=>{setTimeout(e,t)})}function Rt(t,e=0,n){let r=!0,a=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return h(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),m(t,e,{leading:r,trailing:a,maxWait:e})}const _t=t=>t?new Promise((e,n)=>{const r=new FileReader;r.readAsDataURL(t),r.onload=()=>e(r.result),r.onerror=t=>n(t)}):Promise.reject(new Error("File not found")),Vt=1/0;function Kt(t){if(!t)return 0===t?t:0;if((t=Number(t))===Vt||t===-1/0){return 17976931348623157e292*(t<0?-1:1)}return t}const Zt=(t,e=30,n="...")=>{if(t.length<=e)return t;const r=e-n.length;return r<1?n:t.slice(0,r)+n},te=t=>Array.from(new Set(t));function ee(...t){return a(e=>{t.forEach(t=>{Wt(t)?t(e):null!==t&&(t.current=e)})},t)}function ne(e){const n=t(e);return n.current=e,n}const re=t=>{const e=ne(t);r(()=>()=>{e.current()},[])};function ae(t,n){const r=ne(t),a=n?.wait??600,o=e(()=>m((...t)=>r.current(...t),a,n),[]);return re(()=>{o.cancel()}),{debounce:o,cancel:o.cancel,flush:o.flush}}function oe(){const e=t(!0);return e.current?(e.current=!1,!0):e.current}function ie(t,e){const n=oe();r(()=>n?()=>{}:t(),e)}function ue(t,e,a){const[o,i]=n({}),{debounce:u}=ae(()=>{i({})},a);r(()=>u(),e),ie(t,[o])}function se(t,e){const[r,a]=n(e);return Tt(r)?[t,a]:[r,a]}const ce=({key:t,storage:e,excludeFields:n=[],includeFields:r=[]})=>{if(!e)throw new Error("useFormPersist: storage is required. Try using one of the provided storage engines: sessionStorage / localStorage / AsyncStorage (react-native) ");const a=function(t){if("undefined"==typeof document&&At(t.getItem("useFormPersist test object"))){const e=t;return{getItem:e.getItem,setItem:e.setItem,removeItem:e.removeItem}}const e=t;return{getItem:async(...t)=>e.getItem(...t),setItem:async(...t)=>e.setItem(...t),removeItem:async(...t)=>e.removeItem(...t)}}(e);return{syncFromStorage:async({defaultValues:e,syncPolicy:o="storage-first"})=>{const i=await a.getItem(t)||"{}",u=JSON.parse(i),s=r?.length?Object.fromEntries(Object.entries(u).filter(([t])=>r.includes(t))):u,c={};return Object.keys(s).forEach(t=>{!n?.includes(t)&&(c[t]=s[t])}),e?"default-values-first"===o?Object.keys(e??{}).length?e:c:Object.keys(c??{}).length?c:e||{}:c},syncToStorage:e=>{const r=n.length?Object.entries(e).filter(([t])=>!n.includes(t)).reduce((t,[e,n])=>Object.assign(t,{[e]:n}),{}):{...e};Object.entries(r).length&&a.setItem(t,JSON.stringify(r))},clear:()=>a.removeItem(t)}},de=t=>{r(()=>{t?.()},[])};function le(){const[t,e]=n(!1);return de(()=>{e(!0)}),t}function fe(){const e=t(!1);return r(()=>(e.current=!0,()=>{e.current=!1}),[]),a(()=>e.current,[])}function he(){const[,t]=n({});return a(()=>t({}),[])}const me=(t,e)=>!Object.is(t,e);function ge(e,n=me){const r=t(void 0),a=t(void 0);return n(a.current,e)&&(r.current=a.current,a.current=e),r.current}function we(t){const[r,o]=n(t),i=a(()=>{o(!0)},[]),u=a(()=>{o(!1)},[]),s=a(()=>{o(t=>!t)},[]);return e(()=>({value:r,on:i,off:u,toggle:s,set:o}),[r,i,u,s])}const be=({requestCb:e,defaultParams:r,options:a={wait:600}})=>{const o=t(!1),{value:i,on:u,off:s}=we(!1),[c,d]=n(r),l=async t=>{u();try{await e(t)}finally{s()}},f=ae(t=>l(t),a);de(()=>{l(c)}),ie(()=>{o.current?f.debounce(c):l(c)},[JSON.stringify(c)]);return{loading:i,queryParams:c,updateQueryParams:(t,e=!1)=>{o.current=e,d(e=>({...e,...t}))},reset:()=>d(r)}};function ye(t,e){return e.split(".").reduce(function(t,e){return null==t?void 0:t[e]},t)}function pe(t,n,r){const a=e(()=>n.label,[n.label]),o=e(()=>n.value,[n.value]);return e(()=>t?.map(t=>({value:ye(t,o),label:ye(t,a),...r?.(t)||{}}))??[],[t,o,a,r])}function ve(t){const[e,r]=n(t);return{state:e,handleUpdate:a(t=>{Wt(t)&&r(e=>{const n=t(e);return h(n)?{...e,...n}:e}),h(t)&&r(e=>({...e,...t}))},[])}}function Me(t=0){const[e,r]=n(t);return{step:e,increment:a(()=>{r(t=>t+1)},[]),decrement:a(()=>{r(t=>t-1)},[]),reset:a(()=>{r(t)},[t]),setStep:r}}class Se{constructor(t,e){if(Object.defineProperty(this,"awsUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"awsBucket",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),!t)throw new Error("AWS url link is required.");if(!e)throw new Error("AWS bucket link is required.");this.awsUrl=t,this.awsBucket=e}static initialize(t,e){return Se.instance||(Se.instance=new Se(t,e)),Se.instance}static getInstance(){if(!Se.instance)throw new Error("AwsImageService is not initialized. Call AwsImageService.initialize() first in your root.");return Se.instance}static genAwsImgUrl(t,e){const n=Se.getInstance(),r=e??{};if(!t)throw new Error("Key is required to generate an image URL.");const a={...r,resize:{...r.resize,fit:r.resize?.fit||"cover"}},i=JSON.stringify({bucket:n.awsBucket,key:t,edits:a}),u=o.from(i).toString("base64");return`${n.awsUrl}/${u}`}}export{Se as AwsImageService,c as capitalize,d as checkIsServer,l as checkNavigator,f as compact,m as debounce,g as deepEqual,b as deepKeys,p as deepMergeObjects,v as difference,M as entries,S as enumKeyToReadable,k as enumToSelectOptions,x as formatCurrency,P as formatNumber,O as getDirtyValues,j as getFileExtension,D as getFileName,W as getProto,Pt as getWeekdaysNames,Ot as intersection,w as isArray,jt as isBlob,Dt as isDate,Ft as isEmpty,Nt as isFile,$t as isFloat,Wt as isFunction,qt as isInt,Tt as isNil,Et as isNumber,h as isObject,Yt as isPrimitive,At as isPromise,It as isString,Ct as isSymbol,y as keys,Ht as makeFormData,zt as makeQueryString,Bt as mapFormData,Lt as mergeCollectionByKey,Qt as noop,Ut as omit,Gt as pick,Xt as pluralize,Jt as sleep,Rt as throttle,_t as toBase64,Kt as toFinite,Zt as truncate,te as uniq,s as useCodeTimer,ee as useCombinedRef,ae as useDebounceCallback,ue as useDebounceEffect,se as useDefault,oe as useFirstMountState,ce as useHookFormPersist,u as useInterval,le as useIsClient,fe as useIsMounted,ne as useLatest,he as useManualUpdate,i as useMemoCallback,de as useMountEffect,ge as usePrevious,be as useQueryParamsBuilder,pe as useSelectOptions,ve as useStateObject,Me as useStep,we as useSwitchValue,re as useUnmountEffect,ie as useUpdateEffect};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VNZW1vQ2FsbGJhY2svdXNlTWVtb0NhbGxiYWNrLnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZUludGVydmFsL3VzZUludGVydmFsLnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZUNvZGVUaW1lci91c2VDb2RlVGltZXIudHMiLCIuLi8uLi9zcmMvdXRpbHMvY2FwaXRhbGl6ZS9jYXBpdGFsaXplLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2NoZWNrSXNTZXJ2ZXIvY2hlY2tJc1NlcnZlci50cyIsIi4uLy4uL3NyYy91dGlscy9jaGVja05hdmlnYXRvci9jaGVja05hdmlnYXRvci50cyIsIi4uLy4uL3NyYy91dGlscy9jb21wYWN0L2NvbXBhY3QudHMiLCIuLi8uLi9zcmMvdXRpbHMvaXNPYmplY3QvaXNPYmplY3QudHMiLCIuLi8uLi9zcmMvdXRpbHMvZGVib3VuY2UvZGVib3VuY2UudHMiLCIuLi8uLi9zcmMvdXRpbHMvZGVlcEVxdWFsL2RlZXBFcXVhbC50cyIsIi4uLy4uL3NyYy91dGlscy9pc0FycmF5L2lzQXJyYXkudHMiLCIuLi8uLi9zcmMvdXRpbHMvZGVlcEtleXMvZGVlcEtleXMudHMiLCIuLi8uLi9zcmMvdXRpbHMva2V5cy9rZXlzLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2RlZXBNZXJnZU9iamVjdHMvZGVlcE1lcmdlT2JqZWN0cy50cyIsIi4uLy4uL3NyYy91dGlscy9kaWZmZXJlbmNlL2RpZmZlcmVuY2UudHMiLCIuLi8uLi9zcmMvdXRpbHMvZW50cmllcy9lbnRyaWVzLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2VudW1LZXlUb1JlYWRhYmxlL2VudW1LZXlUb1JlYWRhYmxlLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2VudW1Ub1NlbGVjdE9wdGlvbnMvZW51bVRvU2VsZWN0T3B0aW9ucy50cyIsIi4uLy4uL3NyYy91dGlscy9mb3JtYXRDdXJyZW5jeS9mb3JtYXRDdXJyZW5jeS50cyIsIi4uLy4uL3NyYy91dGlscy9mb3JtYXROdW1iZXIvZm9ybWF0TnVtYmVyLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2dldERpcnR5VmFsdWVzL2dldERpcnR5VmFsdWVzLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2dldEZpbGVFeHRlbnNpb24vZ2V0RmlsZUV4dGVuc2lvbi50cyIsIi4uLy4uL3NyYy91dGlscy9nZXRGaWxlTmFtZS9nZXRGaWxlTmFtZS50cyIsIi4uLy4uL3NyYy91dGlscy9nZXRQcm90by9nZXRQcm90by50cyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy90b0RhdGUubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2NvbnN0cnVjdEZyb20ubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2NvbnN0YW50cy5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9kZWZhdWx0T3B0aW9ucy5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3RhcnRPZldlZWsubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3N0YXJ0T2ZJU09XZWVrLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9nZXRJU09XZWVrWWVhci5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3RhcnRPZkRheS5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc1ZhbGlkLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0RhdGUubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VuZE9mV2Vlay5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbG9jYWxlL2VuLVVTL19saWIvZm9ybWF0RGlzdGFuY2UubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xvY2FsZS9fbGliL2J1aWxkRm9ybWF0TG9uZ0ZuLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9sb2NhbGUvZW4tVVMvX2xpYi9mb3JtYXRMb25nLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9sb2NhbGUvZW4tVVMvX2xpYi9mb3JtYXRSZWxhdGl2ZS5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbG9jYWxlL19saWIvYnVpbGRMb2NhbGl6ZUZuLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9sb2NhbGUvX2xpYi9idWlsZE1hdGNoRm4ubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xvY2FsZS9fbGliL2J1aWxkTWF0Y2hQYXR0ZXJuRm4ubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xvY2FsZS9lbi1VUy5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvbG9jYWxlL2VuLVVTL19saWIvbG9jYWxpemUubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2xvY2FsZS9lbi1VUy9fbGliL21hdGNoLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9nZXREYXlPZlllYXIubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2RpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cy5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvc3RhcnRPZlllYXIubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2dldElTT1dlZWsubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3N0YXJ0T2ZJU09XZWVrWWVhci5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZ2V0V2Vla1llYXIubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2dldFdlZWsubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL3N0YXJ0T2ZXZWVrWWVhci5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9hZGRMZWFkaW5nWmVyb3MubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL19saWIvZm9ybWF0L2xpZ2h0Rm9ybWF0dGVycy5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9mb3JtYXQvZm9ybWF0dGVycy5tanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvX2xpYi9mb3JtYXQvbG9uZ0Zvcm1hdHRlcnMubWpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL19saWIvcHJvdGVjdGVkVG9rZW5zLm1qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9mb3JtYXQubWpzIiwiLi4vLi4vc3JjL3V0aWxzL2dldFdlZWtkYXlzTmFtZXMvZ2V0V2Vla2RheXNOYW1lcy50cyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lYWNoRGF5T2ZJbnRlcnZhbC5tanMiLCIuLi8uLi9zcmMvdXRpbHMvaW50ZXJzZWN0aW9uL2ludGVyc2VjdGlvbi50cyIsIi4uLy4uL3NyYy91dGlscy9pc0Jsb2IvaXNCbG9iLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2lzRGF0ZS9pc0RhdGUudHMiLCIuLi8uLi9zcmMvdXRpbHMvaXNGdW5jdGlvbi9pc0Z1bmN0aW9uLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2lzTmlsL2lzTmlsLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2lzTnVtYmVyL2lzTnVtYmVyLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2lzU3ltYm9sL2lzU3ltYm9sLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2lzRW1wdHkvaXNFbXB0eS50cyIsIi4uLy4uL3NyYy91dGlscy9pc0ZpbGUvaXNGaWxlLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2lzRmxvYXQvaXNGbG9hdC50cyIsIi4uLy4uL3NyYy91dGlscy9pc0ludC9pc0ludC50cyIsIi4uLy4uL3NyYy91dGlscy9pc1ByaW1pdGl2ZS9pc1ByaW1pdGl2ZS50cyIsIi4uLy4uL3NyYy91dGlscy9pc1Byb21pc2UvaXNQcm9taXNlLnRzIiwiLi4vLi4vc3JjL3V0aWxzL2lzU3RyaW5nL2lzU3RyaW5nLnRzIiwiLi4vLi4vc3JjL3V0aWxzL21ha2VGb3JtRGF0YS9tYWtlRm9ybURhdGEudHMiLCIuLi8uLi9zcmMvdXRpbHMvbWFrZVF1ZXJ5U3RyaW5nL21ha2VRdWVyeVN0cmluZy50cyIsIi4uLy4uL3NyYy91dGlscy9tYXBGb3JtRGF0YS9tYXBGb3JtRGF0YS50cyIsIi4uLy4uL3NyYy91dGlscy9tZXJnZUNvbGxlY3Rpb25CeUtleS9tZXJnZUNvbGxlY3Rpb25CeUtleS50cyIsIi4uLy4uL3NyYy91dGlscy9ub29wL25vb3AudHMiLCIuLi8uLi9zcmMvdXRpbHMvb21pdC9vbWl0LnRzIiwiLi4vLi4vc3JjL3V0aWxzL3BpY2svcGljay50cyIsIi4uLy4uL3NyYy91dGlscy9wbHVyYWxpemUvcGx1cmFsaXplLnRzIiwiLi4vLi4vc3JjL3V0aWxzL3NsZWVwL3NsZWVwLnRzIiwiLi4vLi4vc3JjL3V0aWxzL3Rocm90dGxlL3Rocm90dGxlLnRzIiwiLi4vLi4vc3JjL3V0aWxzL3RvQmFzZTY0L3RvQmFzZTY0LnRzIiwiLi4vLi4vc3JjL3V0aWxzL3RvRmluaXRlL3RvRmluaXRlLnRzIiwiLi4vLi4vc3JjL3V0aWxzL3RydW5jYXRlL3RydW5jYXRlLnRzIiwiLi4vLi4vc3JjL3V0aWxzL3VuaXEvdW5pcS50cyIsIi4uLy4uL3NyYy9ob29rcy91c2VDb21iaW5lZFJlZi91c2VDb21iaW5lZFJlZi50cyIsIi4uLy4uL3NyYy9ob29rcy91c2VMYXRlc3QvdXNlTGF0ZXN0LnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZVVubW91bnRFZmZlY3QvdXNlVW5tb3VudEVmZmVjdC50cyIsIi4uLy4uL3NyYy9ob29rcy91c2VEZWJvdW5jZS91c2VEZWJvdW5jZUNhbGxiYWNrLnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZUZpcnN0TW91bnRTdGF0ZS91c2VGaXJzdE1vdW50U3RhdGUudHMiLCIuLi8uLi9zcmMvaG9va3MvdXNlVXBkYXRlRWZmZWN0L3VzZVVwZGF0ZUVmZmVjdC50cyIsIi4uLy4uL3NyYy9ob29rcy91c2VEZWJvdW5jZS91c2VEZWJvdW5jZUVmZmVjdC50cyIsIi4uLy4uL3NyYy9ob29rcy91c2VEZWZhdWx0L3VzZURlZmF1bHQudHN4IiwiLi4vLi4vc3JjL2hvb2tzL3VzZUhvb2tGb3JtUGVyc2lzdC91c2VIb29rRm9ybVBlcnNpc3QudHMiLCIuLi8uLi9zcmMvaG9va3MvdXNlTW91bnRFZmZlY3QvdXNlTW91bnRFZmZlY3QudHMiLCIuLi8uLi9zcmMvaG9va3MvdXNlSXNDbGllbnQvdXNlSXNDbGllbnQudHMiLCIuLi8uLi9zcmMvaG9va3MvdXNlSXNNb3VudGVkL3VzZUlzTW91bnRlZC50cyIsIi4uLy4uL3NyYy9ob29rcy91c2VNYW51YWxVcGRhdGUvdXNlTWFudWFsVXBkYXRlLnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZVByZXZpb3VzL3VzZVByZXZpb3VzLnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZVN3aXRjaFZhbHVlL3VzZVN3aXRjaFZhbHVlLnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZVF1ZXJ5UGFyYW1zQnVpbGRlci91c2VRdWVyeVBhcmFtc0J1aWxkZXIudHMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZG90LXBhdGgtdmFsdWUvZGlzdC9pbmRleC5lc20uanMiLCIuLi8uLi9zcmMvaG9va3MvdXNlU2VsZWN0T3B0aW9ucy91c2VTZWxlY3RPcHRpb25zLnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZVN0YXRlT2JqZWN0L3VzZVN0YXRlT2JqZWN0LnRzIiwiLi4vLi4vc3JjL2hvb2tzL3VzZVN0ZXAvdXNlU3RlcC50c3giLCIuLi8uLi9zcmMvc2VydmljZXMvQXdzSW1hZ2VTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsIi8qKlxuICogQG5hbWUgdG9EYXRlXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgdGhlIGdpdmVuIGFyZ3VtZW50IHRvIGFuIGluc3RhbmNlIG9mIERhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDb252ZXJ0IHRoZSBnaXZlbiBhcmd1bWVudCB0byBhbiBpbnN0YW5jZSBvZiBEYXRlLlxuICpcbiAqIElmIHRoZSBhcmd1bWVudCBpcyBhbiBpbnN0YW5jZSBvZiBEYXRlLCB0aGUgZnVuY3Rpb24gcmV0dXJucyBpdHMgY2xvbmUuXG4gKlxuICogSWYgdGhlIGFyZ3VtZW50IGlzIGEgbnVtYmVyLCBpdCBpcyB0cmVhdGVkIGFzIGEgdGltZXN0YW1wLlxuICpcbiAqIElmIHRoZSBhcmd1bWVudCBpcyBub25lIG9mIHRoZSBhYm92ZSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgSW52YWxpZCBEYXRlLlxuICpcbiAqICoqTm90ZSoqOiAqYWxsKiBEYXRlIGFyZ3VtZW50cyBwYXNzZWQgdG8gYW55ICpkYXRlLWZucyogZnVuY3Rpb24gaXMgcHJvY2Vzc2VkIGJ5IGB0b0RhdGVgLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICpcbiAqIEBwYXJhbSBhcmd1bWVudCAtIFRoZSB2YWx1ZSB0byBjb252ZXJ0XG4gKlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBkYXRlIGluIHRoZSBsb2NhbCB0aW1lIHpvbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ2xvbmUgdGhlIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSB0b0RhdGUobmV3IERhdGUoMjAxNCwgMSwgMTEsIDExLCAzMCwgMzApKVxuICogLy89PiBUdWUgRmViIDExIDIwMTQgMTE6MzA6MzBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCB0aGUgdGltZXN0YW1wIHRvIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSB0b0RhdGUoMTM5MjA5ODQzMDAwMClcbiAqIC8vPT4gVHVlIEZlYiAxMSAyMDE0IDExOjMwOjMwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGUoYXJndW1lbnQpIHtcbiAgY29uc3QgYXJnU3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGFyZ3VtZW50KTtcblxuICAvLyBDbG9uZSB0aGUgZGF0ZVxuICBpZiAoXG4gICAgYXJndW1lbnQgaW5zdGFuY2VvZiBEYXRlIHx8XG4gICAgKHR5cGVvZiBhcmd1bWVudCA9PT0gXCJvYmplY3RcIiAmJiBhcmdTdHIgPT09IFwiW29iamVjdCBEYXRlXVwiKVxuICApIHtcbiAgICAvLyBQcmV2ZW50IHRoZSBkYXRlIHRvIGxvc2UgdGhlIG1pbGxpc2Vjb25kcyB3aGVuIHBhc3NlZCB0byBuZXcgRGF0ZSgpIGluIElFMTBcbiAgICByZXR1cm4gbmV3IGFyZ3VtZW50LmNvbnN0cnVjdG9yKCthcmd1bWVudCk7XG4gIH0gZWxzZSBpZiAoXG4gICAgdHlwZW9mIGFyZ3VtZW50ID09PSBcIm51bWJlclwiIHx8XG4gICAgYXJnU3RyID09PSBcIltvYmplY3QgTnVtYmVyXVwiIHx8XG4gICAgdHlwZW9mIGFyZ3VtZW50ID09PSBcInN0cmluZ1wiIHx8XG4gICAgYXJnU3RyID09PSBcIltvYmplY3QgU3RyaW5nXVwiXG4gICkge1xuICAgIC8vIFRPRE86IENhbiB3ZSBnZXQgcmlkIG9mIGFzP1xuICAgIHJldHVybiBuZXcgRGF0ZShhcmd1bWVudCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gVE9ETzogQ2FuIHdlIGdldCByaWQgb2YgYXM/XG4gICAgcmV0dXJuIG5ldyBEYXRlKE5hTik7XG4gIH1cbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCB0b0RhdGU7XG4iLCIvKipcbiAqIEBuYW1lIGNvbnN0cnVjdEZyb21cbiAqIEBjYXRlZ29yeSBHZW5lcmljIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnN0cnVjdHMgYSBkYXRlIHVzaW5nIHRoZSByZWZlcmVuY2UgZGF0ZSBhbmQgdGhlIHZhbHVlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGUgZnVuY3Rpb24gY29uc3RydWN0cyBhIG5ldyBkYXRlIHVzaW5nIHRoZSBjb25zdHJ1Y3RvciBmcm9tIHRoZSByZWZlcmVuY2VcbiAqIGRhdGUgYW5kIHRoZSBnaXZlbiB2YWx1ZS4gSXQgaGVscHMgdG8gYnVpbGQgZ2VuZXJpYyBmdW5jdGlvbnMgdGhhdCBhY2NlcHRcbiAqIGRhdGUgZXh0ZW5zaW9ucy5cbiAqXG4gKiBJdCBkZWZhdWx0cyB0byBgRGF0ZWAgaWYgdGhlIHBhc3NlZCByZWZlcmVuY2UgZGF0ZSBpcyBhIG51bWJlciBvciBhIHN0cmluZy5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSByZWZlcmVuY2UgZGF0ZSB0byB0YWtlIGNvbnN0cnVjdG9yIGZyb21cbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjcmVhdGUgdGhlIGRhdGVcbiAqXG4gKiBAcmV0dXJucyBEYXRlIGluaXRpYWxpemVkIHVzaW5nIHRoZSBnaXZlbiBkYXRlIGFuZCB2YWx1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSAnZGF0ZS1mbnMnXG4gKlxuICogLy8gQSBmdW5jdGlvbiB0aGF0IGNsb25lcyBhIGRhdGUgcHJlc2VydmluZyB0aGUgb3JpZ2luYWwgdHlwZVxuICogZnVuY3Rpb24gY2xvbmVEYXRlPERhdGVUeXBlIGV4dGVuZHMgRGF0ZShkYXRlOiBEYXRlVHlwZSk6IERhdGVUeXBlIHtcbiAqICAgcmV0dXJuIGNvbnN0cnVjdEZyb20oXG4gKiAgICAgZGF0ZSwgLy8gVXNlIGNvbnRydXN0b3IgZnJvbSB0aGUgZ2l2ZW4gZGF0ZVxuICogICAgIGRhdGUuZ2V0VGltZSgpIC8vIFVzZSB0aGUgZGF0ZSB2YWx1ZSB0byBjcmVhdGUgYSBuZXcgZGF0ZVxuICogICApXG4gKiB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tKGRhdGUsIHZhbHVlKSB7XG4gIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBuZXcgZGF0ZS5jb25zdHJ1Y3Rvcih2YWx1ZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKTtcbiAgfVxufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGNvbnN0cnVjdEZyb207XG4iLCIvKipcbiAqIEBtb2R1bGUgY29uc3RhbnRzXG4gKiBAc3VtbWFyeSBVc2VmdWwgY29uc3RhbnRzXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbGxlY3Rpb24gb2YgdXNlZnVsIGRhdGUgY29uc3RhbnRzLlxuICpcbiAqIFRoZSBjb25zdGFudHMgY291bGQgYmUgaW1wb3J0ZWQgZnJvbSBgZGF0ZS1mbnMvY29uc3RhbnRzYDpcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgbWF4VGltZSwgbWluVGltZSB9IGZyb20gXCIuL2NvbnN0YW50cy9kYXRlLWZucy9jb25zdGFudHNcIjtcbiAqXG4gKiBmdW5jdGlvbiBpc0FsbG93ZWRUaW1lKHRpbWUpIHtcbiAqICAgcmV0dXJuIHRpbWUgPD0gbWF4VGltZSAmJiB0aW1lID49IG1pblRpbWU7XG4gKiB9XG4gKiBgYGBcbiAqL1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgZGF5c0luV2Vla1xuICogQHN1bW1hcnkgRGF5cyBpbiAxIHdlZWsuXG4gKi9cbmV4cG9ydCBjb25zdCBkYXlzSW5XZWVrID0gNztcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIGRheXNJblllYXJcbiAqIEBzdW1tYXJ5IERheXMgaW4gMSB5ZWFyLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSG93IG1hbnkgZGF5cyBpbiBhIHllYXIuXG4gKlxuICogT25lIHllYXJzIGVxdWFscyAzNjUuMjQyNSBkYXlzIGFjY29yZGluZyB0byB0aGUgZm9ybXVsYTpcbiAqXG4gKiA+IExlYXAgeWVhciBvY2N1cmVzIGV2ZXJ5IDQgeWVhcnMsIGV4Y2VwdCBmb3IgeWVhcnMgdGhhdCBhcmUgZGl2aXNhYmxlIGJ5IDEwMCBhbmQgbm90IGRpdmlzYWJsZSBieSA0MDAuXG4gKiA+IDEgbWVhbiB5ZWFyID0gKDM2NSsxLzQtMS8xMDArMS80MDApIGRheXMgPSAzNjUuMjQyNSBkYXlzXG4gKi9cbmV4cG9ydCBjb25zdCBkYXlzSW5ZZWFyID0gMzY1LjI0MjU7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtYXhUaW1lXG4gKiBAc3VtbWFyeSBNYXhpbXVtIGFsbG93ZWQgdGltZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgbWF4VGltZSB9IGZyb20gXCIuL2NvbnN0YW50cy9kYXRlLWZucy9jb25zdGFudHNcIjtcbiAqXG4gKiBjb25zdCBpc1ZhbGlkID0gODY0MDAwMDAwMDAwMDAwMSA8PSBtYXhUaW1lO1xuICogLy89PiBmYWxzZVxuICpcbiAqIG5ldyBEYXRlKDg2NDAwMDAwMDAwMDAwMDEpO1xuICogLy89PiBJbnZhbGlkIERhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IG1heFRpbWUgPSBNYXRoLnBvdygxMCwgOCkgKiAyNCAqIDYwICogNjAgKiAxMDAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWluVGltZVxuICogQHN1bW1hcnkgTWluaW11bSBhbGxvd2VkIHRpbWUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCB7IG1pblRpbWUgfSBmcm9tIFwiLi9jb25zdGFudHMvZGF0ZS1mbnMvY29uc3RhbnRzXCI7XG4gKlxuICogY29uc3QgaXNWYWxpZCA9IC04NjQwMDAwMDAwMDAwMDAxID49IG1pblRpbWU7XG4gKiAvLz0+IGZhbHNlXG4gKlxuICogbmV3IERhdGUoLTg2NDAwMDAwMDAwMDAwMDEpXG4gKiAvLz0+IEludmFsaWQgRGF0ZVxuICovXG5leHBvcnQgY29uc3QgbWluVGltZSA9IC1tYXhUaW1lO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWlsbGlzZWNvbmRzSW5XZWVrXG4gKiBAc3VtbWFyeSBNaWxsaXNlY29uZHMgaW4gMSB3ZWVrLlxuICovXG5leHBvcnQgY29uc3QgbWlsbGlzZWNvbmRzSW5XZWVrID0gNjA0ODAwMDAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWlsbGlzZWNvbmRzSW5EYXlcbiAqIEBzdW1tYXJ5IE1pbGxpc2Vjb25kcyBpbiAxIGRheS5cbiAqL1xuZXhwb3J0IGNvbnN0IG1pbGxpc2Vjb25kc0luRGF5ID0gODY0MDAwMDA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtaWxsaXNlY29uZHNJbk1pbnV0ZVxuICogQHN1bW1hcnkgTWlsbGlzZWNvbmRzIGluIDEgbWludXRlXG4gKi9cbmV4cG9ydCBjb25zdCBtaWxsaXNlY29uZHNJbk1pbnV0ZSA9IDYwMDAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWlsbGlzZWNvbmRzSW5Ib3VyXG4gKiBAc3VtbWFyeSBNaWxsaXNlY29uZHMgaW4gMSBob3VyXG4gKi9cbmV4cG9ydCBjb25zdCBtaWxsaXNlY29uZHNJbkhvdXIgPSAzNjAwMDAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWlsbGlzZWNvbmRzSW5TZWNvbmRcbiAqIEBzdW1tYXJ5IE1pbGxpc2Vjb25kcyBpbiAxIHNlY29uZFxuICovXG5leHBvcnQgY29uc3QgbWlsbGlzZWNvbmRzSW5TZWNvbmQgPSAxMDAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWludXRlc0luWWVhclxuICogQHN1bW1hcnkgTWludXRlcyBpbiAxIHllYXIuXG4gKi9cbmV4cG9ydCBjb25zdCBtaW51dGVzSW5ZZWFyID0gNTI1NjAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWludXRlc0luTW9udGhcbiAqIEBzdW1tYXJ5IE1pbnV0ZXMgaW4gMSBtb250aC5cbiAqL1xuZXhwb3J0IGNvbnN0IG1pbnV0ZXNJbk1vbnRoID0gNDMyMDA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtaW51dGVzSW5EYXlcbiAqIEBzdW1tYXJ5IE1pbnV0ZXMgaW4gMSBkYXkuXG4gKi9cbmV4cG9ydCBjb25zdCBtaW51dGVzSW5EYXkgPSAxNDQwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWludXRlc0luSG91clxuICogQHN1bW1hcnkgTWludXRlcyBpbiAxIGhvdXIuXG4gKi9cbmV4cG9ydCBjb25zdCBtaW51dGVzSW5Ib3VyID0gNjA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBtb250aHNJblF1YXJ0ZXJcbiAqIEBzdW1tYXJ5IE1vbnRocyBpbiAxIHF1YXJ0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBtb250aHNJblF1YXJ0ZXIgPSAzO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbW9udGhzSW5ZZWFyXG4gKiBAc3VtbWFyeSBNb250aHMgaW4gMSB5ZWFyLlxuICovXG5leHBvcnQgY29uc3QgbW9udGhzSW5ZZWFyID0gMTI7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBxdWFydGVyc0luWWVhclxuICogQHN1bW1hcnkgUXVhcnRlcnMgaW4gMSB5ZWFyXG4gKi9cbmV4cG9ydCBjb25zdCBxdWFydGVyc0luWWVhciA9IDQ7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBzZWNvbmRzSW5Ib3VyXG4gKiBAc3VtbWFyeSBTZWNvbmRzIGluIDEgaG91ci5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlY29uZHNJbkhvdXIgPSAzNjAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgc2Vjb25kc0luTWludXRlXG4gKiBAc3VtbWFyeSBTZWNvbmRzIGluIDEgbWludXRlLlxuICovXG5leHBvcnQgY29uc3Qgc2Vjb25kc0luTWludXRlID0gNjA7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBzZWNvbmRzSW5EYXlcbiAqIEBzdW1tYXJ5IFNlY29uZHMgaW4gMSBkYXkuXG4gKi9cbmV4cG9ydCBjb25zdCBzZWNvbmRzSW5EYXkgPSBzZWNvbmRzSW5Ib3VyICogMjQ7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBzZWNvbmRzSW5XZWVrXG4gKiBAc3VtbWFyeSBTZWNvbmRzIGluIDEgd2Vlay5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlY29uZHNJbldlZWsgPSBzZWNvbmRzSW5EYXkgKiA3O1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgc2Vjb25kc0luWWVhclxuICogQHN1bW1hcnkgU2Vjb25kcyBpbiAxIHllYXIuXG4gKi9cbmV4cG9ydCBjb25zdCBzZWNvbmRzSW5ZZWFyID0gc2Vjb25kc0luRGF5ICogZGF5c0luWWVhcjtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIHNlY29uZHNJbk1vbnRoXG4gKiBAc3VtbWFyeSBTZWNvbmRzIGluIDEgbW9udGhcbiAqL1xuZXhwb3J0IGNvbnN0IHNlY29uZHNJbk1vbnRoID0gc2Vjb25kc0luWWVhciAvIDEyO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgc2Vjb25kc0luUXVhcnRlclxuICogQHN1bW1hcnkgU2Vjb25kcyBpbiAxIHF1YXJ0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBzZWNvbmRzSW5RdWFydGVyID0gc2Vjb25kc0luTW9udGggKiAzO1xuIiwibGV0IGRlZmF1bHRPcHRpb25zID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0T3B0aW9ucygpIHtcbiAgcmV0dXJuIGRlZmF1bHRPcHRpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RGVmYXVsdE9wdGlvbnMobmV3T3B0aW9ucykge1xuICBkZWZhdWx0T3B0aW9ucyA9IG5ld09wdGlvbnM7XG59XG4iLCJpbXBvcnQgeyB0b0RhdGUgfSBmcm9tIFwiLi90b0RhdGUubWpzXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0T3B0aW9ucyB9IGZyb20gXCIuL19saWIvZGVmYXVsdE9wdGlvbnMubWpzXCI7XG5cbi8qKlxuICogVGhlIHtAbGluayBzdGFydE9mV2Vla30gZnVuY3Rpb24gb3B0aW9ucy5cbiAqL1xuXG4vKipcbiAqIEBuYW1lIHN0YXJ0T2ZXZWVrXG4gKiBAY2F0ZWdvcnkgV2VlayBIZWxwZXJzXG4gKiBAc3VtbWFyeSBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgcmVzdWx0IHdpbGwgYmUgaW4gdGhlIGxvY2FsIHRpbWV6b25lLlxuICpcbiAqIEB0eXBlUGFyYW0gRGF0ZVR5cGUgLSBUaGUgYERhdGVgIHR5cGUsIHRoZSBmdW5jdGlvbiBvcGVyYXRlcyBvbi4gR2V0cyBpbmZlcnJlZCBmcm9tIHBhc3NlZCBhcmd1bWVudHMuIEFsbG93cyB0byB1c2UgZXh0ZW5zaW9ucyBsaWtlIFtgVVRDRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy91dGMpLlxuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIG9yaWdpbmFsIGRhdGVcbiAqIEBwYXJhbSBvcHRpb25zIC0gQW4gb2JqZWN0IHdpdGggb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zIFRoZSBzdGFydCBvZiBhIHdlZWtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGhlIHN0YXJ0IG9mIGEgd2VlayBmb3IgMiBTZXB0ZW1iZXIgMjAxNCAxMTo1NTowMDpcbiAqIGNvbnN0IHJlc3VsdCA9IHN0YXJ0T2ZXZWVrKG5ldyBEYXRlKDIwMTQsIDgsIDIsIDExLCA1NSwgMCkpXG4gKiAvLz0+IFN1biBBdWcgMzEgMjAxNCAwMDowMDowMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJZiB0aGUgd2VlayBzdGFydHMgb24gTW9uZGF5LCB0aGUgc3RhcnQgb2YgdGhlIHdlZWsgZm9yIDIgU2