|
Server : Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12 System : Windows NT SERVER-PC 10.0 build 26200 (Windows 11) AMD64 User : ServerPC ( 0) PHP Version : 8.2.12 Disable Function : NONE Directory : C:/Program Files/NVIDIA Corporation/NVIDIA app/www/ |
Upload File : |
"use strict";(self.webpackChunknvapp=self.webpackChunknvapp||[]).push([[880],{58590:(C,f,n)=>{n.d(f,{p:()=>c});var _=n(26875),T=n(31627),a=n(58527),g=n(58474),E=n(44118),M=n(47847),h=n(92602);let c=(()=>{class d{ngAfterViewInit(){if(!this.appConfig?.featureEnablement?.nvSearch?.enabled)return;const{enabled:e,section:t,expandAccordion:i}=this.nvappScrollHighlight,r=this.routerHandlerService.didNavigateFromSearchResults();e&&r&&setTimeout(()=>{this.debouncedInvokeScroll(t,i)},0)}constructor(e,t,i,r,s){this.el=e,this.routerHandlerService=t,this.scrollService=i,this.appConfig=r,this.logger=s.getLogger("nvapp/ScrollHighlightDirective"),this.debouncedInvokeScroll=(0,_.debounce)(this.invokeScroll.bind(this),T.T5)}invokeScroll(e,t){this.el.nativeElement&&this.scrollService.performScrollHighlight(this.el.nativeElement,e,t)}ngOnDestroy(){this.logger.info("ngOnDestroy called..",this.nvappScrollHighlight?.section),this.debouncedInvokeScroll.cancel(),this.scrollService.cleanup()}static{this.\u0275fac=function(t){return new(t||d)(a.rXU(a.aKT),a.rXU(g.V),a.rXU(E.T),a.rXU(M.Vk),a.rXU(h.J6))}}static{this.\u0275dir=a.FsC({type:d,selectors:[["","nvappScrollHighlight",""]],inputs:{nvappScrollHighlight:"nvappScrollHighlight"}})}}return d})()},44118:(C,f,n)=>{n.d(f,{T:()=>c});var _=n(70650),m=n(26875),a=n(31627),g=n(58527),E=n(61519),M=n(61142),h=n(92602);let c=(()=>{class d{constructor(e,t,i,r,s){this.searchDbService=e,this.location=t,this.ngZone=s,this.timeouts=[],this.highlightedElements=new Map,this.observers=[],this.logger=r.getLogger("nvapp/ScrollHighlightService"),this.logger.info("ScrollHighlightService constructor called"),this.renderer=i.createRenderer(null,null),this.debouncedScrollToElementWithText=(0,m.debounce)(this.scrollToElementWithText.bind(this),a.eb)}performScrollHighlight(e,t,i=!1){if(this.logger.info("Attempting to perform scroll highlight",t),!e)return this.logger.warn("Cannot perform scroll highlight - container element not available"),!1;const r=new URL(this.location.path(!0),window.location.origin),o=this.getUrlSearchParams(r.pathname).get("searchParamsId");if(!o)return this.logger.info("No searchParamsId found in URL, skipping scroll highlight"),!1;const u=this.searchDbService.getSearchParams(o);return u?u.pageHighlightSection===t&&(this.logger.info(`Page highlight section match expected section: ${t}`),this.logger.info("Performing scroll highlight with searchParamsId:",o),this.debouncedScrollToElementWithText(e,u,i),!0):(this.logger.warn("Search params not found for searchParamsId:",o),!1)}scrollToElementWithText(e,t,i=!1){var r=this;return(0,_.A)(function*(){return r.ngZone.runOutsideAngular((0,_.A)(function*(){try{r.cleanup();const s=t.getMatchedTerms(),o=t.matchedFullText;let u=r.findElementWithCompleteText(e?.parentElement,o);if(u||(u=r.findElementWithPartialMatches(e?.parentElement,o)),!u)return void r.logger.warn(`Element with text "${o}" not found.`);if(i&&r.handleExpansionPanel(u)&&(yield r.delay(a.Vq)),u?.parentElement){const p=r.waitForElementVisibility(u.parentElement);u.parentElement.scrollIntoView({behavior:"smooth",block:"center"}),yield p}r.highlightMatchedTerms(u,s);const v=window.setTimeout(()=>{r.clearHighlight()},a.hx);r.timeouts.push(v),r.ngZone.run(()=>{})}catch(s){r.logger.error("Error in scroll sequence:",s),r.clearHighlight()}}))})()}delay(e){return new Promise(t=>{const i=setTimeout(t,e);this.timeouts.push(i)})}waitForElementVisibility(e){return e?new Promise(t=>{const r=new IntersectionObserver(o=>{o[0].isIntersecting&&(r.disconnect(),this.observers=this.observers.filter(v=>v!==r),requestAnimationFrame(()=>{setTimeout(t,a.WV)}))},{threshold:a.pl,rootMargin:"0px"});this.observers.push(r),r.observe(e);const s=setTimeout(()=>{this.logger.warn("Intersection timeout reached, proceeding anyway"),r.disconnect(),this.observers=this.observers.filter(o=>o!==r),t()},a.RT);this.timeouts.push(s)}):Promise.resolve()}handleExpansionPanel(e){if(!e)return null;const t=e.nodeType===Node.TEXT_NODE?e.parentElement:e;if(!t)return null;const i=t.closest("mat-expansion-panel");if(i&&!i.classList.contains("mat-expanded")){const r=i.querySelector(".mat-expansion-panel-header");if(r)return r.click(),i}return null}highlightMatchedTerms(e,t){const i=e.nodeType===Node.TEXT_NODE?e.parentElement:e;if(!i)return;const r=i.innerHTML;this.highlightedElements.set(i,r);const s=new RegExp(`(${t.map(this.escapeRegExp).join("|")})`,"gi"),o=this.renderer.createElement("div");this.renderer.setProperty(o,"innerHTML",r);const u=document.createTreeWalker(o,NodeFilter.SHOW_TEXT),v=[];for(;u.nextNode();){const p=u.currentNode;p.textContent&&s.test(p.textContent)&&v.push(p)}v.forEach(p=>{const D=p.parentNode;if(!D)return;const O=document.createDocumentFragment();(p.textContent?.split(s)||[]).forEach(P=>{if(s.test(P)){const L=this.renderer.createElement("span");this.renderer.addClass(L,"search-term-highlight"),L.textContent=P,O.appendChild(L)}else P&&O.appendChild(document.createTextNode(P))}),this.renderer.insertBefore(D,O,p),this.renderer.removeChild(D,p)}),this.renderer.setProperty(i,"innerHTML",o.innerHTML),this.logger.info("Highlight applied, will persist for 5 seconds")}clearHighlight(){0!==this.highlightedElements.size&&(this.logger.info("Clearing highlights"),this.highlightedElements.forEach((e,t)=>{t&&t.isConnected&&this.renderer.setProperty(t,"innerHTML",e)}),this.highlightedElements.clear())}escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}findElementWithCompleteText(e,t){if(!e)return null;const i=t?.toLocaleLowerCase()?.trim(),r=document.createTreeWalker(e.parentElement,NodeFilter.SHOW_ELEMENT,{acceptNode:s=>{if("SCRIPT"===s.nodeName||"STYLE"===s.nodeName)return NodeFilter.FILTER_REJECT;const o=s;return(o.textContent||"").toLocaleLowerCase().trim()===i&&o.childElementCount<=1?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();){const s=Array.from(r.currentNode.childNodes);if(0===s.length)return r.currentNode;for(const o of s)if(o&&o.textContent?.trim().toLocaleLowerCase()===i){if(o.nodeType===Node.TEXT_NODE&&o.textContent?.trim().toLocaleLowerCase()===i)return o.parentElement;s.push(...Array.from(o?.childNodes))}}return null}findElementWithPartialMatches(e,t){if(!e)return null;const i=document.createTreeWalker(e.parentElement,NodeFilter.SHOW_TEXT,{acceptNode:r=>(r.textContent||"").toLocaleLowerCase().includes(t.toLocaleLowerCase())?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;i.nextNode();)return i.currentNode?.parentElement;return null}getUrlSearchParams(e){const t=e.split(";").slice(1).join("&");return new URLSearchParams(t)}cleanup(){this.logger.info("Cleaning up scroll highlight service"),this.debouncedScrollToElementWithText.cancel(),this.timeouts.forEach(e=>clearTimeout(e)),this.timeouts=[],this.observers.forEach(e=>e.disconnect()),this.observers=[],this.clearHighlight()}ngOnDestroy(){this.logger.info("ScrollHighlightService ngOnDestroy called"),this.cleanup()}static{this.\u0275fac=function(t){return new(t||d)(g.KVO(E.u),g.KVO(M.aZ),g.KVO(g._9s),g.KVO(h.J6),g.KVO(g.SKi))}}static{this.\u0275prov=g.jDH({token:d,factory:d.\u0275fac,providedIn:"root"})}}return d})()},4356:(C,f,n)=>{n.d(f,{V:()=>g});var _=n(71152),m=n(58527),T=n(58108),a=n(51008);let g=(()=>{class E{constructor(h,c){this.el=h,this.a11yAnnouncer=c,this.marqueeComponent=this.el}navigateUsingArrowKey(h){switch(h.key){case _.F0.ArrowRight:h.preventDefault(),this.marqueeComponent&&(this.marqueeComponent.nextSlide(),this.readMarqueeTileData());break;case _.F0.ArrowLeft:h.preventDefault(),this.marqueeComponent&&(this.marqueeComponent.prevSlide(),this.readMarqueeTileData())}}readMarqueeTileData(h=this.marqueeComponent.position){if(this.marqueeComponent&&this.marqueeComponent.marqueeData[h]){const{title:c,body:d}=this.marqueeComponent.marqueeData[h].app;this.announce(`${c} ${d}`)}}announce(h){this.a11yAnnouncer.announce("",h)}static{this.\u0275fac=function(c){return new(c||E)(m.rXU(T.wN),m.rXU(a.x))}}static{this.\u0275dir=m.FsC({type:E,selectors:[["","nvAppMarqueeKeyboardNav",""]],hostBindings:function(c,d){1&c&&m.bIt("keydown",function(e){return d.navigateUsingArrowKey(e)})}})}}return E})()},72004:(C,f,n)=>{n.d(f,{R:()=>h});var _=n(3496),m=n(8619),T=n(26772),a=n(58527),g=n(56347),E=n(92602),M=n(47847);let h=(()=>{class c{constructor(l,e,t,i){this.telemetryUtilsService=l,this.loggingService=e,this.windowService=t,this.appConfig=i,this.marqueeElementEventMap=new Map,this.logger=this.loggingService.getLogger("nvapp/MarqueeEventAggregateService"),this.setupTimerForMarqueeElement(),this.setupWindowPageHideEventListener(),this.marqueeAggregationWaitTime=this.appConfig?.marqueeAggregationWaitTime??T.gY}aggregateMarqueeElementEvent(l){const e=this.getRecordKey(l);if(this.marqueeElementEventMap.has(e)){const t=this.marqueeElementEventMap.get(e)?.aggregateCount;l.aggregateCount=t+1}else l.aggregateCount=1;this.marqueeElementEventMap.set(e,l)}clearTimer(){this.timerSubscription.unsubscribe()}sendMarqueeEvent(l=!0){this.logger.info("sending the marquee event for map size of",this.marqueeElementEventMap.size),Array.from(this.marqueeElementEventMap.values()).forEach(e=>{this.telemetryUtilsService.sendMarqueeElement(e.url,e.action,e.section,e.feature,e.position,e.uniqueContent,e.driverVersion,e.driverType,e.aggregateCount)}),this.clearMarqueeMap(),l?this.setupTimerForMarqueeElement():this.clearTimer()}setupTimerForMarqueeElement(){this.timerSubscription?.unsubscribe(),this.timerSubscription=(0,_.O)(this.marqueeAggregationWaitTime).pipe((0,m.p)(l=>this.marqueeElementEventMap.size>0)).subscribe(l=>{this.sendMarqueeEvent()},l=>{this.logger.error("failed to setup a timer for sending marquee event",l)})}setupWindowPageHideEventListener(){this.windowUnloadEventSubscription?.unsubscribe(),this.windowUnloadEventSubscription=this.windowService.getBeforeUnloadEvent().pipe((0,m.p)(l=>this.marqueeElementEventMap.size>0)).subscribe(l=>{this.logger.info("before unload event fire"),this.sendMarqueeEvent(!1)},l=>{this.logger.error("failed to setup windows before unload event",l)})}clearMarqueeMap(){this.logger.info("clearing the marquee element event map"),this.marqueeElementEventMap.clear()}getRecordKey(l){return l.uniqueContent+l.feature}static{this.\u0275fac=function(e){return new(e||c)(a.KVO(g.A),a.KVO(E.J6),a.KVO(E.s7),a.KVO(M.Vk))}}static{this.\u0275prov=a.jDH({token:c,factory:c.\u0275fac,providedIn:"root"})}}return c})()}}]);
// SIG // Begin signature block
// SIG // MIIofAYJKoZIhvcNAQcCoIIobTCCKGkCAQExDzANBglg
// SIG // hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor
// SIG // BgEEAYI3AgEeMCQCAQEEEBDgyQbOONQRoqMAEEvTUJAC
// SIG // AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg
// SIG // s1RiOYwDMuLSaRHn+ckzu6MP55ZN/3BSNhsUnMLp/aug
// SIG // gg20MIIGsDCCBJigAwIBAgIQCK1AsmDSnEyfXs2pvZOu
// SIG // 2TANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQGEwJVUzEV
// SIG // MBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
// SIG // d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2Vy
// SIG // dCBUcnVzdGVkIFJvb3QgRzQwHhcNMjEwNDI5MDAwMDAw
// SIG // WhcNMzYwNDI4MjM1OTU5WjBpMQswCQYDVQQGEwJVUzEX
// SIG // MBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMT
// SIG // OERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5n
// SIG // IFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0ExMIICIjANBgkq
// SIG // hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1bQvQtAorXi3
// SIG // XdU5WRuxiEL1M4zrPYGXcMW7xIUmMJ+kjmjYXPXrNCQH
// SIG // 4UtP03hD9BfXHtr50tVnGlJPDqFX/IiZwZHMgQM+TXAk
// SIG // ZLON4gh9NH1MgFcSa0OamfLFOx/y78tHWhOmTLMBICXz
// SIG // ENOLsvsI8IrgnQnAZaf6mIBJNYc9URnokCF4RS6hnyzh
// SIG // GMIazMXuk0lwQjKP+8bqHPNlaJGiTUyCEUhSaN4QvRRX
// SIG // XegYE2XFf7JPhSxIpFaENdb5LpyqABXRN/4aBpTCfMjq
// SIG // GzLmysL0p6MDDnSlrzm2q2AS4+jWufcx4dyt5Big2MEj
// SIG // R0ezoQ9uo6ttmAaDG7dqZy3SvUQakhCBj7A7CdfHmzJa
// SIG // wv9qYFSLScGT7eG0XOBv6yb5jNWy+TgQ5urOkfW+0/tv
// SIG // k2E0XLyTRSiDNipmKF+wc86LJiUGsoPUXPYVGUztYuBe
// SIG // M/Lo6OwKp7ADK5GyNnm+960IHnWmZcy740hQ83eRGv7b
// SIG // UKJGyGFYmPV8AhY8gyitOYbs1LcNU9D4R+Z1MI3sMJN2
// SIG // FKZbS110YU0/EpF23r9Yy3IQKUHw1cVtJnZoEUETWJrc
// SIG // JisB9IlNWdt4z4FKPkBHX8mBUHOFECMhWWCKZFTBzCEa
// SIG // 6DgZfGYczXg4RTCZT/9jT0y7qg0IU0F8WD1Hs/q27Iwy
// SIG // CQLMbDwMVhECAwEAAaOCAVkwggFVMBIGA1UdEwEB/wQI
// SIG // MAYBAf8CAQAwHQYDVR0OBBYEFGg34Ou2O/hfEYb7/mF7
// SIG // CIhl9E5CMB8GA1UdIwQYMBaAFOzX44LScV1kTN8uZz/n
// SIG // upiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAK
// SIG // BggrBgEFBQcDAzB3BggrBgEFBQcBAQRrMGkwJAYIKwYB
// SIG // BQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBB
// SIG // BggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNl
// SIG // cnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQw
// SIG // QwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybDMuZGln
// SIG // aWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5j
// SIG // cmwwHAYDVR0gBBUwEzAHBgVngQwBAzAIBgZngQwBBAEw
// SIG // DQYJKoZIhvcNAQEMBQADggIBADojRD2NCHbuj7w6mdNW
// SIG // 4AIapfhINPMstuZ0ZveUcrEAyq9sMCcTEp6QRJ9L/Z6j
// SIG // fCbVN7w6XUhtldU/SfQnuxaBRVD9nL22heB2fjdxyyL3
// SIG // WqqQz/WTauPrINHVUHmImoqKwba9oUgYftzYgBoRGRjN
// SIG // YZmBVvbJ43bnxOQbX0P4PpT/djk9ntSZz0rdKOtfJqGV
// SIG // WEjVGv7XJz/9kNF2ht0csGBc8w2o7uCJob054ThO2m67
// SIG // Np375SFTWsPK6Wrxoj7bQ7gzyE84FJKZ9d3OVG3ZXQIU
// SIG // H0AzfAPilbLCIXVzUstG2MQ0HKKlS43Nb3Y3LIU/Gs4m
// SIG // 6Ri+kAewQ3+ViCCCcPDMyu/9KTVcH4k4Vfc3iosJocsL
// SIG // 6TEa/y4ZXDlx4b6cpwoG1iZnt5LmTl/eeqxJzy6kdJKt
// SIG // 2zyknIYf48FWGysj/4+16oh7cGvmoLr9Oj9FpsToFpFS
// SIG // i0HASIRLlk2rREDjjfAVKM7t8RhWByovEMQMCGQ8M4+u
// SIG // KIw8y4+ICw2/O/TOHnuO77Xry7fwdxPm5yg/rBKupS8i
// SIG // bEH5glwVZsxsDsrFhsP2JjMMB0ug0wcCampAMEhLNKhR
// SIG // ILutG4UI4lkNbcoFUCvqShyepf2gpx8GdOfy1lKQ/a+F
// SIG // SCH5Vzu0nAPthkX0tGFuv2jiJmCG6sivqf6UHedjGzqG
// SIG // VnhOMIIG/DCCBOSgAwIBAgIQCZfFbKpZBVOU2anNuL7r
// SIG // VjANBgkqhkiG9w0BAQsFADBpMQswCQYDVQQGEwJVUzEX
// SIG // MBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMT
// SIG // OERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5n
// SIG // IFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0ExMB4XDTIzMDEx
// SIG // MzAwMDAwMFoXDTI2MDExNjIzNTk1OVowgYAxCzAJBgNV
// SIG // BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRQwEgYD
// SIG // VQQHEwtTYW50YSBDbGFyYTEbMBkGA1UEChMSTlZJRElB
// SIG // IENvcnBvcmF0aW9uMQwwCgYDVQQLEwMyLUoxGzAZBgNV
// SIG // BAMTEk5WSURJQSBDb3Jwb3JhdGlvbjCCAaIwDQYJKoZI
// SIG // hvcNAQEBBQADggGPADCCAYoCggGBAIiAXRBzCNRy05OZ
// SIG // NUtJguKdJ1R5HNatdvXtn+pWXHg9PfhU9A5ZboWwSPej
// SIG // iZxJn9clYWVpyjPbkkFvaTBLYeHArmzswavs7+bct4df
// SIG // BTBZG8Qmc9kusaaOxNnuUevseGAC5H61QsGOVATdRQfS
// SIG // kfaP7kTBF9wuIat7BXVglPAlZagQTZWA/BA4Vr8GeNVY
// SIG // 5jU2C6F907UM6orsfsVfkBI8HSowD1U/faTS1yMBu1Mx
// SIG // ePUKZosFn2tYE4dUWId/Vv6LKWk30e/63C5Ul9e3eY7x
// SIG // aZ4eC0TqxluMWb2XdvCcfw9dELeI+0suWliFIyCgSf3A
// SIG // Kuq9cXnoMOBoPEeBOr3XWfCCNLxf9RcGxyaNPd1KcTOO
// SIG // ErSJMFpOCnVi5kys2NrTrFMFVZiRC49BidetoT6cHt3Z
// SIG // f+VHR3rqdUbo4xSpuvsfNA4GRYcWI2KvY3T6hBlrgTlr
// SIG // ngfA3ztOn+38KGJavEa7iJ+k/kjjnD47t0qQoRiujBi+
// SIG // q+mv6Hgy/g0VeQIDAQABo4ICBjCCAgIwHwYDVR0jBBgw
// SIG // FoAUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHQYDVR0OBBYE
// SIG // FL5vQA7WEARmpu0ItwJOm7f48LbRMA4GA1UdDwEB/wQE
// SIG // AwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzCBtQYDVR0f
// SIG // BIGtMIGqMFOgUaBPhk1odHRwOi8vY3JsMy5kaWdpY2Vy
// SIG // dC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmlu
// SIG // Z1JTQTQwOTZTSEEzODQyMDIxQ0ExLmNybDBToFGgT4ZN
// SIG // aHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
// SIG // VHJ1c3RlZEc0Q29kZVNpZ25pbmdSU0E0MDk2U0hBMzg0
// SIG // MjAyMUNBMS5jcmwwPgYDVR0gBDcwNTAzBgZngQwBBAEw
// SIG // KTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2Vy
// SIG // dC5jb20vQ1BTMIGUBggrBgEFBQcBAQSBhzCBhDAkBggr
// SIG // BgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
// SIG // MFwGCCsGAQUFBzAChlBodHRwOi8vY2FjZXJ0cy5kaWdp
// SIG // Y2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2ln
// SIG // bmluZ1JTQTQwOTZTSEEzODQyMDIxQ0ExLmNydDAMBgNV
// SIG // HRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQBNa3En
// SIG // raaMqv58RZV1qn0K09tv83qxwHaM6/N40w2fMljnGOxS
// SIG // xR1g0+R26S7XtwpzG+b8LWmWmyJKiZIogVkcfZpchS6B
// SIG // x+9HcUSo7TBBJn4ylcpQzksLOCmT6/DSeIDYucyQiHo8
// SIG // Nq3XkLpkJaDETnCBDulYZ+9pavQT4lNpB6sffbjsDcQ7
// SIG // CZQdImdzyNwd81c56xZc05ufVkronW78r35vwhzuNd88
// SIG // YQXr26fClBEXf3cNvytVupOeHZTy0Od+tPnAPl5744un
// SIG // 0f1MDjiKRne5FqDoo2F4EoeJQuaS6tWcFQg55dOEmOwS
// SIG // E8mweLCWDTTWmZV6x0IGHwagde1S5rkkmxpvAZRUkaD/
// SIG // ZTyxDiHywNi981mFvCnS1gKGd8GpqDuChpKAet8ivgB3
// SIG // 8hVTE/jsstKwQL7HNGxlmk7hyFxkbUNXki2gwJ/CSGaQ
// SIG // qqS3ctjF5Vv8mbtH2f3pK3AFaXOW7wDfjeuqF+yh6UxT
// SIG // ockgH6Ggc4tj+rcrwWhnbgu+JljlBbSKtGiEXMjA9Ccg
// SIG // YsbOIS9T1/FRAOW4KzCaG2FaX5eIhnCqXl79Va2OV8ul
// SIG // IgIbn1XaQQk6RvNPIwZzM8TARUTR9d1edtiuOymxDYm6
// SIG // j16TmoLkXlWUGLj05+yKut6rkqmYCqCJHRHD0T7LXUmw
// SIG // eBMWDQ5e0t8ADV8KGzGCGiAwghocAgEBMH0waTELMAkG
// SIG // A1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMu
// SIG // MUEwPwYDVQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0IENv
// SIG // ZGUgU2lnbmluZyBSU0E0MDk2IFNIQTM4NCAyMDIxIENB
// SIG // MQIQCZfFbKpZBVOU2anNuL7rVjANBglghkgBZQMEAgEF
// SIG // AKB8MBAGCisGAQQBgjcCAQwxAjAAMBkGCSqGSIb3DQEJ
// SIG // AzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAM
// SIG // BgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCC8BDJi
// SIG // pVygyVUEb3jrTMzZf1UI8kaXdOMLE1uYej/OXDANBgkq
// SIG // hkiG9w0BAQEFAASCAYB09pb8EgpopSLB/VdKalL6Qesq
// SIG // MrxiVVBnEO96rthupk7+LmivzltgGTBTh4/7niaoixB6
// SIG // TKky+/Yb5u1ww7z/PUXaKocsQoXH92wWgVa0lMmwMvA8
// SIG // zINzc2M3rtAsTqRV2Ucl6cJH+reh082vdmOizMQlILCk
// SIG // eUDmvVDTdSPxpAsBHokAHU4EP1RQBYJqvJtY3PHhf9Sq
// SIG // jb0kGDHV46ThXLDSgjmfS3uaUP5dkNzlsFT4ySg5Etjy
// SIG // 9McoYFYfq0cjDeYGlxZFqCyOgOGCDLvfG8xoozIgPlGD
// SIG // tpSwx48UAL/08XR2UosEb2oErXxGrbufeWmNGYbhKP0N
// SIG // mHGciWN5r/H53IopLL4XJfo55kDwzv1OFB8niCsG8wJ5
// SIG // ygOQqBd9hnmXUJSrUfhF4ZFsdtZGk3fr1rfCWXpX8i6M
// SIG // h07IXxabAsdPaMnTltFzNwVMmbIobf8myV0lXpEfX8/d
// SIG // NXz1mA945CDJvZvbjF76Skl4kHjxpe7o0dBOM9Ft5cu5
// SIG // 2BKhghd2MIIXcgYKKwYBBAGCNwMDATGCF2IwghdeBgkq
// SIG // hkiG9w0BBwKgghdPMIIXSwIBAzEPMA0GCWCGSAFlAwQC
// SIG // AQUAMHcGCyqGSIb3DQEJEAEEoGgEZjBkAgEBBglghkgB
// SIG // hv1sBwEwMTANBglghkgBZQMEAgEFAAQgFfAY8Kto7etI
// SIG // 3+/mOeKkuh1AVsgewikiiSY43C+YFLgCEBIjwVk8Dg5s
// SIG // /14pcY5OL1cYDzIwMjUxMDE1MjIyMTEzWqCCEzowggbt
// SIG // MIIE1aADAgECAhAKgO8YS43xBYLRxHanlXRoMA0GCSqG
// SIG // SIb3DQEBCwUAMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQK
// SIG // Ew5EaWdpQ2VydCwgSW5jLjFBMD8GA1UEAxM4RGlnaUNl
// SIG // cnQgVHJ1c3RlZCBHNCBUaW1lU3RhbXBpbmcgUlNBNDA5
// SIG // NiBTSEEyNTYgMjAyNSBDQTEwHhcNMjUwNjA0MDAwMDAw
// SIG // WhcNMzYwOTAzMjM1OTU5WjBjMQswCQYDVQQGEwJVUzEX
// SIG // MBUGA1UEChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMT
// SIG // MkRpZ2lDZXJ0IFNIQTI1NiBSU0E0MDk2IFRpbWVzdGFt
// SIG // cCBSZXNwb25kZXIgMjAyNSAxMIICIjANBgkqhkiG9w0B
// SIG // AQEFAAOCAg8AMIICCgKCAgEA0EasLRLGntDqrmBWsytX
// SIG // um9R/4ZwCgHfyjfMGUIwYzKomd8U1nH7C8Dr0cVMF3Bs
// SIG // fAFI54um8+dnxk36+jx0Tb+k+87H9WPxNyFPJIDZHhAq
// SIG // lUPt281mHrBbZHqRK71Em3/hCGC5KyyneqiZ7syvFXJ9
// SIG // A72wzHpkBaMUNg7MOLxI6E9RaUueHTQKWXymOtRwJXcr
// SIG // cTTPPT2V1D/+cFllESviH8YjoPFvZSjKs3SKO1QNUdFd
// SIG // 2adw44wDcKgH+JRJE5Qg0NP3yiSyi5MxgU6cehGHr7zo
// SIG // u1znOM8odbkqoK+lJ25LCHBSai25CFyD23DZgPfDrJJJ
// SIG // K77epTwMP6eKA0kWa3osAe8fcpK40uhktzUd/Yk0xUvh
// SIG // DU6lvJukx7jphx40DQt82yepyekl4i0r8OEps/FNO4ah
// SIG // fvAk12hE5FVs9HVVWcO5J4dVmVzix4A77p3awLbr89A9
// SIG // 0/nWGjXMGn7FQhmSlIUDy9Z2hSgctaepZTd0ILIUbWuh
// SIG // KuAeNIeWrzHKYueMJtItnj2Q+aTyLLKLM0MheP/9w6Ct
// SIG // juuVHJOVoIJ/DtpJRE7Ce7vMRHoRon4CWIvuiNN1Lk9Y
// SIG // +xZ66lazs2kKFSTnnkrT3pXWETTJkhd76CIDBbTRofOs
// SIG // NyEhzZtCGmnQigpFHti58CSmvEyJcAlDVcKacJ+A9/z7
// SIG // eacCAwEAAaOCAZUwggGRMAwGA1UdEwEB/wQCMAAwHQYD
// SIG // VR0OBBYEFOQ7/PIx7f391/ORcWMZUEPPYYzoMB8GA1Ud
// SIG // IwQYMBaAFO9vU0rp5AZ8esrikFb2L9RJ7MtOMA4GA1Ud
// SIG // DwEB/wQEAwIHgDAWBgNVHSUBAf8EDDAKBggrBgEFBQcD
// SIG // CDCBlQYIKwYBBQUHAQEEgYgwgYUwJAYIKwYBBQUHMAGG
// SIG // GGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBdBggrBgEF
// SIG // BQcwAoZRaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29t
// SIG // L0RpZ2lDZXJ0VHJ1c3RlZEc0VGltZVN0YW1waW5nUlNB
// SIG // NDA5NlNIQTI1NjIwMjVDQTEuY3J0MF8GA1UdHwRYMFYw
// SIG // VKBSoFCGTmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9E
// SIG // aWdpQ2VydFRydXN0ZWRHNFRpbWVTdGFtcGluZ1JTQTQw
// SIG // OTZTSEEyNTYyMDI1Q0ExLmNybDAgBgNVHSAEGTAXMAgG
// SIG // BmeBDAEEAjALBglghkgBhv1sBwEwDQYJKoZIhvcNAQEL
// SIG // BQADggIBAGUqrfEcJwS5rmBB7NEIRJ5jQHIh+OT2Ik/b
// SIG // NYulCrVvhREafBYF0RkP2AGr181o2YWPoSHz9iZEN/FP
// SIG // sLSTwVQWo2H62yGBvg7ouCODwrx6ULj6hYKqdT8wv2UV
// SIG // +Kbz/3ImZlJ7YXwBD9R0oU62PtgxOao872bOySCILdBg
// SIG // hQ/ZLcdC8cbUUO75ZSpbh1oipOhcUT8lD8QAGB9lctZT
// SIG // TOJM3pHfKBAEcxQFoHlt2s9sXoxFizTeHihsQyfFg5fx
// SIG // UFEp7W42fNBVN4ueLaceRf9Cq9ec1v5iQMWTFQa0xNqI
// SIG // tH3CPFTG7aEQJmmrJTV3Qhtfparz+BW60OiMEgV5GWoB
// SIG // y4RVPRwqxv7Mk0Sy4QHs7v9y69NBqycz0BZwhB9WOfOu
// SIG // /CIJnzkQTwtSSpGGhLdjnQ4eBpjtP+XB3pQCtv4E5UCS
// SIG // Dag6+iX8MmB10nfldPF9SVD7weCC3yXZi/uuhqdwkgVx
// SIG // uiMFzGVFwYbQsiGnoa9F5AaAyBjFBtXVLcKtapnMG3VH
// SIG // 3EmAp/jsJ3FVF3+d1SVDTmjFjLbNFZUWMXuZyvgLfgyP
// SIG // ehwJVxwC+UpX2MSey2ueIu9THFVkT+um1vshETaWyQo8
// SIG // gmBto/m3acaP9QsuLj3FNwFlTxq25+T4QwX9xa6ILs84
// SIG // ZPvmpovq90K8eWyG2N01c4IhSOxqt81nMIIGtDCCBJyg
// SIG // AwIBAgIQDcesVwX/IZkuQEMiDDpJhjANBgkqhkiG9w0B
// SIG // AQsFADBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGln
// SIG // aUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
// SIG // Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJv
// SIG // b3QgRzQwHhcNMjUwNTA3MDAwMDAwWhcNMzgwMTE0MjM1
// SIG // OTU5WjBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGln
// SIG // aUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRy
// SIG // dXN0ZWQgRzQgVGltZVN0YW1waW5nIFJTQTQwOTYgU0hB
// SIG // MjU2IDIwMjUgQ0ExMIICIjANBgkqhkiG9w0BAQEFAAOC
// SIG // Ag8AMIICCgKCAgEAtHgx0wqYQXK+PEbAHKx126NGaHS0
// SIG // URedTa2NDZS1mZaDLFTtQ2oRjzUXMmxCqvkbsDpz4aH+
// SIG // qbxeLho8I6jY3xL1IusLopuW2qftJYJaDNs1+JH7Z+Qd
// SIG // SKWM06qchUP+AbdJgMQB3h2DZ0Mal5kYp77jYMVQXSZH
// SIG // ++0trj6Ao+xh/AS7sQRuQL37QXbDhAktVJMQbzIBHYJB
// SIG // YgzWIjk8eDrYhXDEpKk7RdoX0M980EpLtlrNyHw0Xm+n
// SIG // t5pnYJU3Gmq6bNMI1I7Gb5IBZK4ivbVCiZv7PNBYqHEp
// SIG // NVWC2ZQ8BbfnFRQVESYOszFI2Wv82wnJRfN20VRS3hpL
// SIG // gIR4hjzL0hpoYGk81coWJ+KdPvMvaB0WkE/2qHxJ0ucS
// SIG // 638ZxqU14lDnki7CcoKCz6eum5A19WZQHkqUJfdkDjHk
// SIG // ccpL6uoG8pbF0LJAQQZxst7VvwDDjAmSFTUms+wV/FbW
// SIG // Bqi7fTJnjq3hj0XbQcd8hjj/q8d6ylgxCZSKi17yVp2N
// SIG // L+cnT6Toy+rN+nM8M7LnLqCrO2JP3oW//1sfuZDKiDEb
// SIG // 1AQ8es9Xr/u6bDTnYCTKIsDq1BtmXUqEG1NqzJKS4kOm
// SIG // xkYp2WyODi7vQTCBZtVFJfVZ3j7OgWmnhFr4yUozZtqg
// SIG // PrHRVHhGNKlYzyjlroPxul+bgIspzOwbtmsgY1MCAwEA
// SIG // AaOCAV0wggFZMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD
// SIG // VR0OBBYEFO9vU0rp5AZ8esrikFb2L9RJ7MtOMB8GA1Ud
// SIG // IwQYMBaAFOzX44LScV1kTN8uZz/nupiuHA9PMA4GA1Ud
// SIG // DwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDCDB3
// SIG // BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6
// SIG // Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBBBggrBgEFBQcwAoY1
// SIG // aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lD
// SIG // ZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4
// SIG // oDagNIYyaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0Rp
// SIG // Z2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcmwwIAYDVR0gBBkw
// SIG // FzAIBgZngQwBBAIwCwYJYIZIAYb9bAcBMA0GCSqGSIb3
// SIG // DQEBCwUAA4ICAQAXzvsWgBz+Bz0RdnEwvb4LyLU0pn/N
// SIG // 0IfFiBowf0/Dm1wGc/Do7oVMY2mhXZXjDNJQa8j00DNq
// SIG // hCT3t+s8G0iP5kvN2n7Jd2E4/iEIUBO41P5F448rSYJ5
// SIG // 9Ib61eoalhnd6ywFLerycvZTAz40y8S4F3/a+Z1jEMK/
// SIG // DMm/axFSgoR8n6c3nuZB9BfBwAQYK9FHaoq2e26MHvVY
// SIG // 9gCDA/JYsq7pGdogP8HRtrYfctSLANEBfHU16r3J05qX
// SIG // 3kId+ZOczgj5kjatVB+NdADVZKON/gnZruMvNYY2o1f4
// SIG // MXRJDMdTSlOLh0HCn2cQLwQCqjFbqrXuvTPSegOOzr4E
// SIG // Wj7PtspIHBldNE2K9i697cvaiIo2p61Ed2p8xMJb82Yo
// SIG // sn0z4y25xUbI7GIN/TpVfHIqQ6Ku/qjTY6hc3hsXMrS+
// SIG // U0yy+GWqAXam4ToWd2UQ1KYT70kZjE4YtL8Pbzg0c1ug
// SIG // MZyZZd/BdHLiRu7hAWE6bTEm4XYRkA6Tl4KSFLFk43es
// SIG // aUeqGkH/wyW4N7OigizwJWeukcyIPbAvjSabnf7+Pu0V
// SIG // rFgoiovRDiyx3zEdmcif/sYQsfch28bZeUz2rtY/9TCA
// SIG // 6TD8dC3JE3rYkrhLULy7Dc90G6e8BlqmyIjlgp2+VqsS
// SIG // 9/wQD7yFylIz0scmbKvFoW2jNrbM1pD2T7m3XDCCBY0w
// SIG // ggR1oAMCAQICEA6bGI750C3n79tQ4ghAGFowDQYJKoZI
// SIG // hvcNAQEMBQAwZTELMAkGA1UEBhMCVVMxFTATBgNVBAoT
// SIG // DERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2lj
// SIG // ZXJ0LmNvbTEkMCIGA1UEAxMbRGlnaUNlcnQgQXNzdXJl
// SIG // ZCBJRCBSb290IENBMB4XDTIyMDgwMTAwMDAwMFoXDTMx
// SIG // MTEwOTIzNTk1OVowYjELMAkGA1UEBhMCVVMxFTATBgNV
// SIG // BAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRp
// SIG // Z2ljZXJ0LmNvbTEhMB8GA1UEAxMYRGlnaUNlcnQgVHJ1
// SIG // c3RlZCBSb290IEc0MIICIjANBgkqhkiG9w0BAQEFAAOC
// SIG // Ag8AMIICCgKCAgEAv+aQc2jeu+RdSjwwIjBpM+zCpyUu
// SIG // ySE98orYWcLhKac9WKt2ms2uexuEDcQwH/MbpDgW61bG
// SIG // l20dq7J58soR0uRf1gU8Ug9SH8aeFaV+vp+pVxZZVXKv
// SIG // aJNwwrK6dZlqczKU0RBEEC7fgvMHhOZ0O21x4i0MG+4g
// SIG // 1ckgHWMpLc7sXk7Ik/ghYZs06wXGXuxbGrzryc/NrDRA
// SIG // X7F6Zu53yEioZldXn1RYjgwrt0+nMNlW7sp7XeOtyU9e
// SIG // 5TXnMcvak17cjo+A2raRmECQecN4x7axxLVqGDgDEI3Y
// SIG // 1DekLgV9iPWCPhCRcKtVgkEy19sEcypukQF8IUzUvK4b
// SIG // A3VdeGbZOjFEmjNAvwjXWkmkwuapoGfdpCe8oU85tRFY
// SIG // F/ckXEaPZPfBaYh2mHY9WV1CdoeJl2l6SPDgohIbZpp0
// SIG // yt5LHucOY67m1O+SkjqePdwA5EUlibaaRBkrfsCUtNJh
// SIG // besz2cXfSwQAzH0clcOP9yGyshG3u3/y1YxwLEFgqrFj
// SIG // GESVGnZifvaAsPvoZKYz0YkH4b235kOkGLimdwHhD5QM
// SIG // IR2yVCkliWzlDlJRR3S+Jqy2QXXeeqxfjT/JvNNBERJb
// SIG // 5RBQ6zHFynIWIgnffEx1P2PsIV/EIFFrb7GrhotPwtZF
// SIG // X50g/KEexcCPorF+CiaZ9eRpL5gdLfXZqbId5RsCAwEA
// SIG // AaOCATowggE2MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
// SIG // BBYEFOzX44LScV1kTN8uZz/nupiuHA9PMB8GA1UdIwQY
// SIG // MBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgPMA4GA1UdDwEB
// SIG // /wQEAwIBhjB5BggrBgEFBQcBAQRtMGswJAYIKwYBBQUH
// SIG // MAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBDBggr
// SIG // BgEFBQcwAoY3aHR0cDovL2NhY2VydHMuZGlnaWNlcnQu
// SIG // Y29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNydDBF
// SIG // BgNVHR8EPjA8MDqgOKA2hjRodHRwOi8vY3JsMy5kaWdp
// SIG // Y2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0Eu
// SIG // Y3JsMBEGA1UdIAQKMAgwBgYEVR0gADANBgkqhkiG9w0B
// SIG // AQwFAAOCAQEAcKC/Q1xV5zhfoKN0Gz22Ftf3v1cHvZqs
// SIG // oYcs7IVeqRq7IviHGmlUIu2kiHdtvRoU9BNKei8ttzjv
// SIG // 9P+Aufih9/Jy3iS8UgPITtAq3votVs/59PesMHqai7Je
// SIG // 1M/RQ0SbQyHrlnKhSLSZy51PpwYDE3cnRNTnf+hZqPC/
// SIG // Lwum6fI0POz3A8eHqNJMQBk1RmppVLC4oVaO7KTVPeix
// SIG // 3P0c2PR3WlxUjG/voVA9/HYJaISfb8rbII01YBwCA8sg
// SIG // sKxYoA5AY8WYIsGyWfVVa88nq2x2zm8jLfR+cWojayL/
// SIG // ErhULSd+2DrZ8LaHlv1b0VysGMNNn3O3AamfV6peKOK5
// SIG // lDGCA3wwggN4AgEBMH0waTELMAkGA1UEBhMCVVMxFzAV
// SIG // BgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhE
// SIG // aWdpQ2VydCBUcnVzdGVkIEc0IFRpbWVTdGFtcGluZyBS
// SIG // U0E0MDk2IFNIQTI1NiAyMDI1IENBMQIQCoDvGEuN8QWC
// SIG // 0cR2p5V0aDANBglghkgBZQMEAgEFAKCB0TAaBgkqhkiG
// SIG // 9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkF
// SIG // MQ8XDTI1MTAxNTIyMjExM1owKwYLKoZIhvcNAQkQAgwx
// SIG // HDAaMBgwFgQU3WIwrIYKLTBr2jixaHlSMAf7QX4wLwYJ
// SIG // KoZIhvcNAQkEMSIEIDvIjIjUcldR6oANlaQwMY0n+2pA
// SIG // o4uVM+uY98BKRL/xMDcGCyqGSIb3DQEJEAIvMSgwJjAk
// SIG // MCIEIEqgP6Is11yExVyTj4KOZ2ucrsqzP+NtJpqjNPFG
// SIG // EQozMA0GCSqGSIb3DQEBAQUABIICAHuyE72LCox90Sgg
// SIG // q/s9vvgP5fZr8tiaLsp9yNi+SYLOQXn9Br20JJvNnHnW
// SIG // 0KBVZIsoloqH3idOA7nbDmbdULddrm7ImCRJ7/TJxLUl
// SIG // tg/EUEskPnbzva4urV3x7juUc6ncXLaJnK4o/bAmL6k/
// SIG // Afn/uc84Ilk77Tme+K5km2HaZFPWbsdV946HTEoIb8Rt
// SIG // FlAu4mJTULM7tSBPfuC/JhbO1Zn8lQlIjGxL8i0oxDhx
// SIG // ZKHKjbWf352tu1qyfSjKMiVpYJDT3HyYwDpFZQWRvZfK
// SIG // apl+Nf1r3S6yks1fpAttmelnrlSfc3IhXwT9Bfwy1oBD
// SIG // Dzabe/5H30qxMsK2eAjJ/sDHZb9yebXu0kSKAfEml6Rm
// SIG // RMtBQhwrSQ1WmWPWJWmkigvTH3XnOOTiENcAHiaz0X7T
// SIG // YjDGBX43czkJag3hKv77FVtxW7Q6/lmdyy62ccbGoL3p
// SIG // lIXFDffMIJn/OjbOf14BJ7f/7/0ZnSIdGP/B6bxAMeHy
// SIG // epri7hGMsBb0KarNi0waqwtZcQIQtvoS6f1lBHbVPMf/
// SIG // MLvyRWrKeiAO6RWgS/LfaxQMjWg+5dF6DGX3ehPHsdkX
// SIG // ECBJn8pahqkP/D0FGZM3D0wtsaNNLWp9GUT9/1+H+n92
// SIG // FG9NF1TZzsRbtuwwqhJO95ENmNA89OXIoX89JskR6TMY
// SIG // C8tqHcZx
// SIG // End signature block