HTTP Status
200
Ping
7 ms
Technologies
35
Technologies Detected
CMS & Content (1)
| CMS |
WordPress is the world's most popular content management system, powering millions of websites worldwide. |
|
|
|
Description: WordPress is the world's most popular content management system, powering millions of websites worldwide. It's an open-source platform written in PHP that provides a user-friendly interface, extensive plugin and theme ecosystem, and flexibility for blogs, business websites, and e-commerce stores. View full details |
|||
|
Evidence:
|
|||
Infrastructure & Network (10)
| CDN |
Fastly is a modern content delivery network and edge cloud platform that provides real-time content delivery, security, and edge computing services. |
|
|
|
Description: Fastly is a modern content delivery network and edge cloud platform that provides real-time content delivery, security, and edge computing services. It's known for its real-time purging capabilities, edge computing with Varnish, and support for modern web technologies and APIs. View full details |
|||
|
Evidence:
|
|||
| CDN |
Google Fonts is a free, open-source web font service that provides hundreds of high-quality fonts for use on websites. |
|
|
|
Description: Google Fonts is a free, open-source web font service that provides hundreds of high-quality fonts for use on websites. It delivers fonts through a global CDN, ensuring fast loading and consistent typography across devices and browsers, with no licensing fees. View full details |
|||
|
Evidence:
|
|||
| DNS Provider |
Amazon Route 53 is a highly available and scalable cloud DNS web service from Amazon Web Services. |
|
|
|
Description: Amazon Route 53 is a highly available and scalable cloud DNS web service from Amazon Web Services. It provides reliable domain name resolution, health checking, traffic routing, and integration with other AWS services like EC2, S3, and CloudFront. View full details |
|||
|
Evidence:
|
|||
| DNS Provider |
Vercel is a platform for deploying and hosting frontend applications and static websites. |
|
|
|
Description: Vercel is a platform for deploying and hosting frontend applications and static websites. It provides continuous deployment from Git, automatic HTTPS, global CDN distribution, serverless functions, and edge computing capabilities for modern web development, with excellent Next.js integration. View full details |
|||
|
Evidence:
|
|||
| Email Provider |
Google Workspace (formerly G Suite) provides business email hosting using Gmail's infrastructure. |
|
|
|
Description: Google Workspace (formerly G Suite) provides business email hosting using Gmail's infrastructure. It offers custom domain email addresses, large storage capacity, advanced spam filtering, and integration with Google's productivity suite. View full details |
|||
|
Evidence:
|
|||
| Hosting |
Pantheon is a web hosting and development platform specifically designed for WordPress and Drupal websites. |
|
|
|
Description: Pantheon is a web hosting and development platform specifically designed for WordPress and Drupal websites. It provides managed hosting, development tools, and workflow features for teams building and maintaining content management system (CMS) websites. View full details |
|||
|
Evidence:
|
|||
| Infrastructure |
External DNS is a Kubernetes add-on that automatically manages DNS records for Kubernetes services and ingresses. |
|
|
|
Description: External DNS is a Kubernetes add-on that automatically manages DNS records for Kubernetes services and ingresses. It synchronizes DNS records with external DNS providers, making services accessible via DNS names without manual DNS management. View full details |
|||
|
Evidence:
|
|||
| Registrar |
Amazon Registrar is Amazon's domain registration service, integrated with AWS Route 53. |
|
|
|
Description: Amazon Registrar is Amazon's domain registration service, integrated with AWS Route 53. It provides domain registration and management services for AWS customers, with seamless integration into Amazon's cloud infrastructure. View full details |
|||
|
Evidence:
|
|||
| Web Server |
Nginx is a high-performance, open-source web server and reverse proxy server. |
|
|
|
Description: Nginx is a high-performance, open-source web server and reverse proxy server. It's known for its low memory footprint, high concurrency, and ability to handle large numbers of simultaneous connections. Nginx is widely used as a web server, load balancer, and reverse proxy for modern web applications. View full details |
|||
|
Evidence:
|
|||
| Web Server |
Varnish Cache is a high-performance HTTP accelerator and reverse proxy designed for content-heavy dynamic websites. |
|
|
|
Description: Varnish Cache is a high-performance HTTP accelerator and reverse proxy designed for content-heavy dynamic websites. It sits in front of web servers and caches HTTP responses, significantly improving website performance and reducing server load. Varnish is widely used for content delivery and caching. View full details |
|||
|
Evidence:
|
|||
Development (2)
| JavaScript Library |
jQuery is a fast, small, and feature-rich JavaScript library that simplifies HTML document traversal, event handling, animation, and AJAX interactions. |
|
|
|
Description: jQuery is a fast, small, and feature-rich JavaScript library that simplifies HTML document traversal, event handling, animation, and AJAX interactions. It's one of the most widely used JavaScript libraries, making web development easier with a simple API. View full details |
|||
|
Evidence:
|
|||
| JavaScript Library |
jQuery Migrate is a plugin that helps identify and fix compatibility issues when upgrading jQuery versions. |
|
|
|
Description: jQuery Migrate is a plugin that helps identify and fix compatibility issues when upgrading jQuery versions. It restores deprecated features and behaviors, logs warnings about deprecated API usage, and helps developers migrate code to newer jQuery versions. View full details |
|||
|
Evidence:
|
|||
Analytics & Marketing (2)
| Analytics |
Google Tag Manager is a tag management system that allows marketers to manage and deploy marketing tags (analytics, tracking pixels, etc.) on websites without modifying code. |
|
|
|
Description: Google Tag Manager is a tag management system that allows marketers to manage and deploy marketing tags (analytics, tracking pixels, etc.) on websites without modifying code. It provides a centralized interface for managing multiple tracking and analytics tools, improving website performance and simplifying tag deployment. View full details |
|||
|
Evidence:
|
|||
| Marketing |
Salesforce Pardot is a B2B marketing automation platform that helps businesses generate leads, nurture prospects, and measure marketing ROI. |
|
|
|
Description: Salesforce Pardot is a B2B marketing automation platform that helps businesses generate leads, nurture prospects, and measure marketing ROI. It provides email marketing, lead scoring, marketing automation, and CRM integration for B2B marketing teams. View full details |
|||
|
Evidence:
|
|||
Social & Communication (1)
| Communication |
Salesforce Service Cloud is a customer service platform that helps businesses provide support to customers across multiple channels. |
|
|
|
Description: Salesforce Service Cloud is a customer service platform that helps businesses provide support to customers across multiple channels. It provides case management, knowledge base, live chat, and service analytics to help organizations deliver excellent customer service and support. View full details |
|||
|
Evidence:
|
|||
AI & Services (1)
| AI |
Anthropic is an AI safety company that develops AI systems including Claude, a large language model designed to be helpful, harmless, and honest. |
|
|
|
Description: Anthropic is an AI safety company that develops AI systems including Claude, a large language model designed to be helpful, harmless, and honest. It provides AI research, development, and API access to advanced AI models for businesses and developers. View full details |
|||
|
Evidence:
|
|||
SSL & Certificates (1)
| Certificate Authority |
Let's Encrypt is a free, automated, and open certificate authority run by the Internet Security Research Group (ISRG). |
|
|
|
Description: Let's Encrypt is a free, automated, and open certificate authority run by the Internet Security Research Group (ISRG). It provides free SSL/TLS certificates to enable encrypted HTTPS on websites, making web security accessible to everyone. It's one of the most widely used certificate authorities globally. View full details |
|||
|
Evidence:
|
|||
Other (17)
| API Tools |
Readme is a documentation platform that helps developers create beautiful, interactive API documentation and developer hubs. |
|
|
|
Description: Readme is a documentation platform that helps developers create beautiful, interactive API documentation and developer hubs. It provides tools for creating documentation, API reference guides, and developer portals with analytics and customization options. View full details |
|||
|
Evidence:
|
|||
| Cloud |
AWS (Amazon Web Services) is Amazon's cloud computing platform that provides a wide range of cloud services including computing, storage, databases, networking, analytics, machine learning, and more. |
|
|
|
Description: AWS (Amazon Web Services) is Amazon's cloud computing platform that provides a wide range of cloud services including computing, storage, databases, networking, analytics, machine learning, and more. It's one of the leading cloud infrastructure providers globally. View full details |
|||
|
Evidence:
|
|||
| Cloud |
AWS EC2 (Elastic Compute Cloud) is Amazon's scalable cloud computing service that provides resizable compute capacity in the cloud. |
|
|
|
Description: AWS EC2 (Elastic Compute Cloud) is Amazon's scalable cloud computing service that provides resizable compute capacity in the cloud. It allows users to launch virtual servers (instances) on demand, configure security and networking, and scale capacity up or down based on demand. View full details |
|||
|
Evidence:
|
|||
| Cloud |
Azure Front Door is Microsoft Azure's global content delivery network (CDN) and application delivery service. |
|
|
|
Description: Azure Front Door is Microsoft Azure's global content delivery network (CDN) and application delivery service. It provides load balancing, SSL termination, DDoS protection, and global traffic routing to improve application performance and availability. View full details |
|||
|
Evidence:
|
|||
| Cloud |
Cloudflare is a global cloud services provider that offers CDN, DDoS protection, DNS, security, and performance optimization services. |
|
|
|
Description: Cloudflare is a global cloud services provider that offers CDN, DDoS protection, DNS, security, and performance optimization services. It helps websites and applications improve speed, security, and reliability through its global network of data centers. View full details |
|||
|
Evidence:
|
|||
| Cloud |
Microsoft is a multinational technology company that develops and licenses software, cloud services, and hardware products. |
|
|
|
Description: Microsoft is a multinational technology company that develops and licenses software, cloud services, and hardware products. It provides operating systems, productivity applications, cloud computing, and enterprise technology solutions. View full details |
|||
|
Evidence:
|
|||
| Cloud |
Microsoft Azure is Microsoft's comprehensive cloud computing platform that provides computing, storage, databases, networking, AI, and analytics services. |
|
|
|
Description: Microsoft Azure is Microsoft's comprehensive cloud computing platform that provides computing, storage, databases, networking, AI, and analytics services. It's one of the leading cloud providers, offering enterprise-grade cloud infrastructure and services for businesses worldwide. View full details |
|||
|
Evidence:
|
|||
| Customer Support |
Zendesk is a customer service and support platform that provides ticketing systems, help desk software, and customer communication tools. |
|
|
|
Description: Zendesk is a customer service and support platform that provides ticketing systems, help desk software, and customer communication tools. It helps businesses manage customer support requests, provide multichannel support, and improve customer satisfaction through organized support workflows. View full details |
|||
|
Evidence:
|
|||
| Development |
Atlassian is a software company that provides collaboration and development tools for teams. |
|
|
|
Description: Atlassian is a software company that provides collaboration and development tools for teams. Its products include Jira for project management, Confluence for documentation, Bitbucket for code collaboration, and Trello for task management, widely used by software development teams. View full details |
|||
|
Evidence:
|
|||
| Document Management |
KnowledgeOwl is a knowledge base and documentation software platform for creating help centers and internal knowledge bases with customizable content, search, and AI-powered features. |
|
|
|
Description: KnowledgeOwl is a knowledge base and documentation software platform for creating help centers and internal knowledge bases with customizable content, search, and AI-powered features. View full details |
|||
|
Evidence:
|
|||
Mailjet is an email service provider that offers both transactional and marketing email services. |
|
||
|
Description: Mailjet is an email service provider that offers both transactional and marketing email services. It provides APIs for developers and a user-friendly interface for marketers to send emails, manage contacts, and track email performance. View full details |
|||
|
Evidence:
|
|||
Mandrill is a transactional email service from Mailchimp that provides APIs for sending transactional emails from applications. |
|
||
|
Description: Mandrill is a transactional email service from Mailchimp that provides APIs for sending transactional emails from applications. It offers email delivery, tracking, and analytics for developers who need to send automated emails like receipts, notifications, and password resets. View full details |
|||
|
Evidence:
|
|||
SendGrid is a cloud-based email delivery service (now part of Twilio) that specializes in transactional and marketing emails. |
|
||
|
Description: SendGrid is a cloud-based email delivery service (now part of Twilio) that specializes in transactional and marketing emails. It provides reliable email delivery, analytics, and email API services for applications and businesses. View full details |
|||
|
Evidence:
|
|||
| Productivity |
Notion is an all-in-one workspace that combines notes, databases, wikis, and project management in a single platform. |
|
|
|
Description: Notion is an all-in-one workspace that combines notes, databases, wikis, and project management in a single platform. It provides flexible blocks and templates that allow teams to create custom workflows, documentation, and knowledge bases tailored to their specific needs. View full details |
|||
|
Evidence:
|
|||
| SEO |
Google Search Console (formerly Google Webmaster Tools) is a free service from Google that helps website owners monitor and maintain their site's presence in Google search results. |
|
|
|
Description: Google Search Console (formerly Google Webmaster Tools) is a free service from Google that helps website owners monitor and maintain their site's presence in Google search results. It provides insights into search performance, indexing status, and technical SEO issues. View full details |
|||
|
Evidence:
|
|||
| Status Page |
incident.io is an incident management platform that helps teams respond to and manage incidents effectively. |
|
|
|
Description: incident.io is an incident management platform that helps teams respond to and manage incidents effectively. It provides tools for incident response, status page updates, post-incident reviews, and on-call management to help organizations maintain service reliability and learn from incidents. View full details |
|||
|
Evidence:
|
|||
| Technology |
Apple is a technology company that designs and manufactures consumer electronics, software, and online services. |
|
|
|
Description: Apple is a technology company that designs and manufactures consumer electronics, software, and online services. It provides cloud services through iCloud, Apple ID authentication, and various technology products and services for consumers and businesses. View full details |
|||
|
Evidence:
|
|||
Metadata & SEO
Domain Owner Information
View Full WHOISSSL/TLS Certificate
View Full SSL ReportSocial Media Cards
OpenGraph (6 properties)
Twitter Cards (1 properties)
Network & Hosting
View DNS RecordsCNAME Record
This domain is an alias for:
weuproduction200playedit-c3amangycfhngdev.a02.azurefd.netResources
googletagmanager.com (1 resources)
gstatic.com (1 resources)
Resource Hints (1)
userlane.com (70 resources)
Scripts (31)
- • script crossorigin:- integrity:no https://www.userlane.com//data:text/javascript;base64,KGZ1bmN0aW9uKHdpbmRvdyxkb2N1bWVudCl7J3VzZSBzdHJpY3QnO3dpbmRvdy51c2xuRGF0YUxheWVyPXdpbmRvdy51c2xuRGF0YUxheWVyfHxbXTt3aW5kb3cuZGF0YUxheWVyPXdpbmRvdy5kYXRhTGF5ZXJ8fFtdO3ZhciBTVE9SQUdFX0tFWVM9e0FUVFI6J3VzbG5fYXR0cl92MScsTEFTVF9QQUdFOid1c2xuX2xhc3RfcGFnZScsTEFTVF9DVEE6J3VzbG5fbGFzdF9jdGEnfTt2YXIgUEFSVE5FUl9UWVBFX01BUD17cmVzZWxsZXI6J3RlY2hub2xvZ3knLHJlZmVycmFsOidzdHJhdGVnaWMnLGNvbnN1bHRpbmc6J2NvbnN1bHRpbmcnLHRlY2hub2xvZ3k6J3RlY2hub2xvZ3knLHN0cmF0ZWdpYzonc3RyYXRlZ2ljJ307dmFyIEFMTE9XRURfUEFSVE5FUl9UWVBFUz1bJ3RlY2hub2xvZ3knLCdjb25zdWx0aW5nJywnc3RyYXRlZ2ljJ107dmFyIENUQV9NQVA9eydkZW1vIHJlcXVlc3QnOidEZW1vIFJlcXVlc3QnfTtmdW5jdGlvbiBoYXNTZXNzaW9uU3RvcmFnZSgpe3RyeXt2YXIgdGVzdEtleT0nX191c2xuX3Rlc3RfXyc7c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0ZXN0S2V5LHRlc3RLZXkpO3Nlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0odGVzdEtleSk7cmV0dXJuIHRydWU7fWNhdGNoKGUpe3JldHVybiBmYWxzZTt9fQp2YXIgQ0FOX1VTRV9TRVNTSU9OPWhhc1Nlc3Npb25TdG9yYWdlKCk7ZnVuY3Rpb24gcmVhZFNlc3Npb24oa2V5KXtpZighQ0FOX1VTRV9TRVNTSU9OKXJldHVybiBudWxsO3RyeXtyZXR1cm4gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShrZXkpO31jYXRjaChlKXtyZXR1cm4gbnVsbDt9fQpmdW5jdGlvbiB3cml0ZVNlc3Npb24oa2V5LHZhbHVlKXtpZighQ0FOX1VTRV9TRVNTSU9OKXJldHVybjt0cnl7c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShrZXksdmFsdWUpO31jYXRjaChlKXt9fQpmdW5jdGlvbiByZWFkU2Vzc2lvbkpTT04oa2V5KXt2YXIgcmF3PXJlYWRTZXNzaW9uKGtleSk7aWYoIXJhdylyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIEpTT04ucGFyc2UocmF3KTt9Y2F0Y2goZSl7cmV0dXJuIG51bGw7fX0KZnVuY3Rpb24gd3JpdGVTZXNzaW9uSlNPTihrZXksdmFsdWUpe3RyeXt3cml0ZVNlc3Npb24oa2V5LEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7fWNhdGNoKGUpe319CmZ1bmN0aW9uIG5vcm1hbGl6ZVZhbHVlKHZhbHVlKXtpZih2YWx1ZT09bnVsbClyZXR1cm4gbnVsbDt2YXIgcz1TdHJpbmcodmFsdWUpLnRyaW0oKTtyZXR1cm4gcz09PScnP251bGw6czt9CmZ1bmN0aW9uIG5vcm1hbGl6ZVBhcnRuZXJUeXBlKHZhbHVlKXt2YXIgbm9ybWFsaXplZD1ub3JtYWxpemVWYWx1ZSh2YWx1ZSk7aWYoIW5vcm1hbGl6ZWQpcmV0dXJuIG51bGw7bm9ybWFsaXplZD1ub3JtYWxpemVkLnRvTG93ZXJDYXNlKCk7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFBBUlRORVJfVFlQRV9NQVAsbm9ybWFsaXplZCkpe3JldHVybiBQQVJUTkVSX1RZUEVfTUFQW25vcm1hbGl6ZWRdO30KcmV0dXJuIG51bGw7fQpmdW5jdGlvbiBub3JtYWxpemVDVEEodmFsdWUpe3ZhciBub3JtYWxpemVkPW5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtpZighbm9ybWFsaXplZClyZXR1cm4gbnVsbDt2YXIga2V5PW5vcm1hbGl6ZWQudG9Mb3dlckNhc2UoKTtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQ1RBX01BUCxrZXkpKXtyZXR1cm4gQ1RBX01BUFtrZXldO30KcmV0dXJuIG5vcm1hbGl6ZWQ7fQpmdW5jdGlvbiBnZXRRdWVyeVBhcmFtKG5hbWUpe3RyeXt2YXIgcGFyYW1zPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7cmV0dXJuIG5vcm1hbGl6ZVZhbHVlKHBhcmFtcy5nZXQobmFtZSkpO31jYXRjaChlKXtyZXR1cm4gbnVsbDt9fQpmdW5jdGlvbiBnZXRNZXRhQ29udGVudChzZWxlY3Rvcil7dmFyIGVsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO3JldHVybiBlbD9ub3JtYWxpemVWYWx1ZShlbC5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnKSk6bnVsbDt9CmZ1bmN0aW9uIG5vcm1hbGl6ZVRpdGxlKHZhbHVlKXtpZih2YWx1ZT09bnVsbClyZXR1cm4gbnVsbDt2YXIgcz1TdHJpbmcodmFsdWUpLnJlcGxhY2UoL1xzKy9nLCcgJykudHJpbSgpO3JldHVybiBzfHxudWxsO30KZnVuY3Rpb24gZ2V0V2ViVHlwZVRpdGxlKCl7dmFyIHdwVGl0bGU9KHdpbmRvdy53cCYmd2luZG93LndwLnRpdGxlKXx8d2luZG93Ll93cFRpdGxlfHwoZG9jdW1lbnQuYm9keSYmKGRvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKCdkYXRhLXdwLXRpdGxlJyl8fChkb2N1bWVudC5ib2R5LmRhdGFzZXQmJmRvY3VtZW50LmJvZHkuZGF0YXNldC53cFRpdGxlKSkpO3dwVGl0bGU9bm9ybWFsaXplVGl0bGUod3BUaXRsZSk7aWYod3BUaXRsZSlyZXR1cm4gd3BUaXRsZTt2YXIgZG9tVGl0bGU9bm9ybWFsaXplVGl0bGUoZG9jdW1lbnQudGl0bGUpO2lmKGRvbVRpdGxlKXJldHVybiBkb21UaXRsZTt2YXIgb2dUaXRsZT1nZXRNZXRhQ29udGVudCgnbWV0YVtwcm9wZXJ0eT0ib2c6dGl0bGUiXScpO2lmKG9nVGl0bGUpcmV0dXJuIG9nVGl0bGU7dmFyIHR3aXR0ZXJUaXRsZT1nZXRNZXRhQ29udGVudCgnbWV0YVtuYW1lPSJ0d2l0dGVyOnRpdGxlIl0nKTtpZih0d2l0dGVyVGl0bGUpcmV0dXJuIHR3aXR0ZXJUaXRsZTtyZXR1cm4nVW50aXRsZWQnO30KZnVuY3Rpb24gZ2V0UHJldmlvdXNQYWdlVXJsKCl7dmFyIHN0b3JlZExhc3RQYWdlPXJlYWRTZXNzaW9uKFNUT1JBR0VfS0VZUy5MQVNUX1BBR0UpO2lmKHN0b3JlZExhc3RQYWdlKXJldHVybiBzdG9yZWRMYXN0UGFnZTt2YXIgcmVmZXJyZXI9bm9ybWFsaXplVmFsdWUoZG9jdW1lbnQucmVmZXJyZXIpO3JldHVybiByZWZlcnJlcnx8bnVsbDt9CmZ1bmN0aW9uIGNsb25lKG9iail7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSk7fQpmdW5jdGlvbiBzYW5pdGl6ZVN0YXRlKHN0YXRlKXtpZighc3RhdGV8fHR5cGVvZiBzdGF0ZSE9PSdvYmplY3QnKXtzdGF0ZT17fTt9CnN0YXRlLnV0bV9zb3VyY2U9bm9ybWFsaXplVmFsdWUoc3RhdGUudXRtX3NvdXJjZSl8fCdkaXJlY3QnO3N0YXRlLnV0bV9tZWRpdW09bm9ybWFsaXplVmFsdWUoc3RhdGUudXRtX21lZGl1bSl8fCdkaXJlY3QnO3N0YXRlLnV0bV9jYW1wYWlnbj1ub3JtYWxpemVWYWx1ZShzdGF0ZS51dG1fY2FtcGFpZ24pO3N0YXRlLnV0bV9vcmlnaW49bm9ybWFsaXplVmFsdWUoc3RhdGUudXRtX29yaWdpbik7c3RhdGUudXRtX3BhcnRuZXJfdHlwZT1ub3JtYWxpemVQYXJ0bmVyVHlwZShzdGF0ZS51dG1fcGFydG5lcl90eXBlKTtzdGF0ZS53ZWJfdHlwZT1ub3JtYWxpemVWYWx1ZShzdGF0ZS53ZWJfdHlwZSl8fCdVbnRpdGxlZCc7c3RhdGUud2ViX29yaWdpbj1ub3JtYWxpemVWYWx1ZShzdGF0ZS53ZWJfb3JpZ2luKXx8d2luZG93LmxvY2F0aW9uLmhyZWY7c3RhdGUud2ViX2N0YT1ub3JtYWxpemVDVEEoc3RhdGUud2ViX2N0YSl8fCdkaXJlY3QnO3JldHVybiBzdGF0ZTt9CmZ1bmN0aW9uIGJ1aWxkU3RhdGUoKXt2YXIgc3RvcmVkPXJlYWRTZXNzaW9uSlNPTihTVE9SQUdFX0tFWVMuQVRUUil8fHt9O3ZhciBwcmV2aW91c1BhZ2U9Z2V0UHJldmlvdXNQYWdlVXJsKCk7dmFyIHF1ZXJ5PXt1dG1fc291cmNlOmdldFF1ZXJ5UGFyYW0oJ3V0bV9zb3VyY2UnKSx1dG1fbWVkaXVtOmdldFF1ZXJ5UGFyYW0oJ3V0bV9tZWRpdW0nKSx1dG1fY2FtcGFpZ246Z2V0UXVlcnlQYXJhbSgndXRtX2NhbXBhaWduJyksdXRtX29yaWdpbjpnZXRRdWVyeVBhcmFtKCd1dG1fb3JpZ2luJyksdXRtX3BhcnRuZXJfdHlwZTpnZXRRdWVyeVBhcmFtKCd1dG1fcGFydG5lcl90eXBlJyksd2ViX29yaWdpbjpnZXRRdWVyeVBhcmFtKCd3ZWJfb3JpZ2luJyksd2ViX3R5cGU6Z2V0UXVlcnlQYXJhbSgnd2ViX3R5cGUnKSx3ZWJfY3RhOmdldFF1ZXJ5UGFyYW0oJ3dlYl9jdGEnKX07dmFyIHN0b3JlZEN0YT1ub3JtYWxpemVDVEEocmVhZFNlc3Npb24oU1RPUkFHRV9LRVlTLkxBU1RfQ1RBKSk7dmFyIHN0b3JlZFBhcnRuZXJUeXBlPW5vcm1hbGl6ZVBhcnRuZXJUeXBlKHN0b3JlZC51dG1fcGFydG5lcl90eXBlKTt2YXIgcXVlcnlQYXJ0bmVyVHlwZT1ub3JtYWxpemVQYXJ0bmVyVHlwZShxdWVyeS51dG1fcGFydG5lcl90eXBlKTt2YXIgc3RhdGU9e2V2ZW50OidwYWdldmlldycscGFnZV91cmw6d2luZG93LmxvY2F0aW9uLmhyZWYscGFnZV9wYXRoOndpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSt3aW5kb3cubG9jYXRpb24uc2VhcmNoLHBhZ2VfdGl0bGU6ZG9jdW1lbnQudGl0bGUscGFnZV9yZWZlcnJlcjpwcmV2aW91c1BhZ2UsdXRtX3NvdXJjZTpxdWVyeS51dG1fc291cmNlfHxzdG9yZWQudXRtX3NvdXJjZXx8J2RpcmVjdCcsdXRtX21lZGl1bTpxdWVyeS51dG1fbWVkaXVtfHxzdG9yZWQudXRtX21lZGl1bXx8J2RpcmVjdCcsdXRtX2NhbXBhaWduOnF1ZXJ5LnV0bV9jYW1wYWlnbnx8c3RvcmVkLnV0bV9jYW1wYWlnbnx8bnVsbCx1dG1fb3JpZ2luOnF1ZXJ5LnV0bV9vcmlnaW58fHN0b3JlZC51dG1fb3JpZ2lufHxwcmV2aW91c1BhZ2V8fG51bGwsdXRtX3BhcnRuZXJfdHlwZTpxdWVyeVBhcnRuZXJUeXBlfHxzdG9yZWRQYXJ0bmVyVHlwZXx8bnVsbCx3ZWJfdHlwZTpxdWVyeS53ZWJfdHlwZXx8c3RvcmVkLndlYl90eXBlfHxnZXRXZWJUeXBlVGl0bGUoKSx3ZWJfb3JpZ2luOnF1ZXJ5LndlYl9vcmlnaW58fHN0b3JlZC53ZWJfb3JpZ2lufHxwcmV2aW91c1BhZ2V8fHdpbmRvdy5sb2NhdGlvbi5ocmVmLHdlYl9jdGE6bm9ybWFsaXplQ1RBKHF1ZXJ5LndlYl9jdGEpfHxzdG9yZWRDdGF8fG5vcm1hbGl6ZUNUQShzdG9yZWQud2ViX2N0YSl8fCdkaXJlY3QnfTtyZXR1cm4gc2FuaXRpemVTdGF0ZShzdGF0ZSk7fQp2YXIgQVRUUj1idWlsZFN0YXRlKCk7ZnVuY3Rpb24gcGVyc2lzdFN0YXRlKHN0YXRlKXtBVFRSPXNhbml0aXplU3RhdGUoY2xvbmUoc3RhdGUpKTt3cml0ZVNlc3Npb25KU09OKFNUT1JBR0VfS0VZUy5BVFRSLEFUVFIpO2lmKEFUVFIud2ViX2N0YSl7d3JpdGVTZXNzaW9uKFNUT1JBR0VfS0VZUy5MQVNUX0NUQSxBVFRSLndlYl9jdGEpO319CmZ1bmN0aW9uIGdldEFsbCgpe3ZhciBsYXRlc3Q9cmVhZFNlc3Npb25KU09OKFNUT1JBR0VfS0VZUy5BVFRSKXx8QVRUUnx8e307dmFyIGxpdmVDdGE9bm9ybWFsaXplQ1RBKHJlYWRTZXNzaW9uKFNUT1JBR0VfS0VZUy5MQVNUX0NUQSkpO2xhdGVzdD1zYW5pdGl6ZVN0YXRlKGxhdGVzdCk7aWYobGl2ZUN0YSl7bGF0ZXN0LndlYl9jdGE9bGl2ZUN0YTt9CnJldHVybiBjbG9uZShsYXRlc3QpO30KZnVuY3Rpb24gZ2V0KGtleSl7dmFyIGFsbD1nZXRBbGwoKTtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGFsbCxrZXkpP2FsbFtrZXldOm51bGw7fQpmdW5jdGlvbiB1cGRhdGVDVEEoY3RhVmFsdWUpe3ZhciB2YWx1ZT1ub3JtYWxpemVDVEEoY3RhVmFsdWUpO2lmKCF2YWx1ZSlyZXR1cm47dmFyIHN0YXRlPWdldEFsbCgpO3N0YXRlLndlYl9jdGE9dmFsdWU7cGVyc2lzdFN0YXRlKHN0YXRlKTt0cnl7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3VzbG46Y3RhY2hhbmdlJyx7ZGV0YWlsOnt3ZWJfY3RhOnZhbHVlfX0pKTt9Y2F0Y2goZSl7fX0KZnVuY3Rpb24gYnVpbGRVcmwoYmFzZVNyYyxvdmVycmlkZXMsb3B0aW9ucyl7b3B0aW9ucz1vcHRpb25zfHx7fTt2YXIga2VlcEV4aXN0aW5nUXVlcnlQYXJhbXNEb21pbmFudD1vcHRpb25zLmtlZXBFeGlzdGluZ1F1ZXJ5UGFyYW1zRG9taW5hbnQhPT1mYWxzZTt2YXIgZm9yY2VQZXJjZW50MjA9b3B0aW9ucy5mb3JjZVBlcmNlbnQyMCE9PWZhbHNlO3ZhciB1cmw9bmV3IFVSTChiYXNlU3JjLHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO3ZhciBtZXJnZWQ9Z2V0QWxsKCk7dmFyIGV4cGxpY2l0UGFyYW1zPXt9O3VybC5zZWFyY2hQYXJhbXMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSxrZXkpe2V4cGxpY2l0UGFyYW1zW2tleV09dmFsdWU7fSk7aWYob3ZlcnJpZGVzJiZ0eXBlb2Ygb3ZlcnJpZGVzPT09J29iamVjdCcpe09iamVjdC5rZXlzKG92ZXJyaWRlcykuZm9yRWFjaChmdW5jdGlvbihrZXkpe3ZhciB2YWw9b3ZlcnJpZGVzW2tleV07aWYoa2V5PT09J3V0bV9wYXJ0bmVyX3R5cGUnKXt2YWw9bm9ybWFsaXplUGFydG5lclR5cGUodmFsKTt9CmlmKGtleT09PSd3ZWJfY3RhJyl7dmFsPW5vcm1hbGl6ZUNUQSh2YWwpO30KaWYodmFsIT1udWxsJiZ2YWwhPT0nJyl7bWVyZ2VkW2tleV09dmFsO319KTt9CmlmKGtlZXBFeGlzdGluZ1F1ZXJ5UGFyYW1zRG9taW5hbnQpe09iamVjdC5rZXlzKGV4cGxpY2l0UGFyYW1zKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7dmFyIHZhbD1leHBsaWNpdFBhcmFtc1trZXldO2lmKGtleT09PSd1dG1fcGFydG5lcl90eXBlJyl7dmFsPW5vcm1hbGl6ZVBhcnRuZXJUeXBlKHZhbCk7fQppZihrZXk9PT0nd2ViX2N0YScpe3ZhbD1ub3JtYWxpemVDVEEodmFsKTt9CmlmKHZhbCE9bnVsbCYmdmFsIT09Jycpe21lcmdlZFtrZXldPXZhbDt9fSk7fQptZXJnZWQ9c2FuaXRpemVTdGF0ZShtZXJnZWQpO09iamVjdC5rZXlzKG1lcmdlZCkuZm9yRWFjaChmdW5jdGlvbihrZXkpe3ZhciB2YWw9bWVyZ2VkW2tleV07aWYodmFsIT1udWxsJiZ2YWwhPT0nJyl7dXJsLnNlYXJjaFBhcmFtcy5zZXQoa2V5LHZhbCk7fX0pO3ZhciBvdXQ9dXJsLnRvU3RyaW5nKCk7cmV0dXJuIGZvcmNlUGVyY2VudDIwP291dC5yZXBsYWNlKC9cKy9nLCclMjAnKTpvdXQ7fQp3aW5kb3cuVVNMTkF0dHJpYnV0aW9uPXtnZXQ6Z2V0LGdldEFsbDpnZXRBbGwsdXBkYXRlQ1RBOnVwZGF0ZUNUQSxidWlsZFVybDpidWlsZFVybCxub3JtYWxpemVQYXJ0bmVyVHlwZTpub3JtYWxpemVQYXJ0bmVyVHlwZSxub3JtYWxpemVDVEE6bm9ybWFsaXplQ1RBfTtwZXJzaXN0U3RhdGUoQVRUUik7d3JpdGVTZXNzaW9uKFNUT1JBR0VfS0VZUy5MQVNUX1BBR0Usd2luZG93LmxvY2F0aW9uLmhyZWYpO3dpbmRvdy51c2xuRGF0YUxheWVyLnB1c2goY2xvbmUoQVRUUikpO3dpbmRvdy5kYXRhTGF5ZXIucHVzaChjbG9uZShBVFRSKSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGV2ZW50KXt2YXIgZWw9ZXZlbnQudGFyZ2V0JiZldmVudC50YXJnZXQuY2xvc2VzdD9ldmVudC50YXJnZXQuY2xvc2VzdCgnW2RhdGEtY3RhXScpOm51bGw7aWYoIWVsKXJldHVybjt2YXIgY3RhPW5vcm1hbGl6ZUNUQShlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtY3RhJykpO2lmKCFjdGEpcmV0dXJuO3VwZGF0ZUNUQShjdGEpO30sdHJ1ZSk7fSkod2luZG93LGRvY3VtZW50KTs=
- • script crossorigin:- integrity:no https://www.userlane.com//data:text/javascript;base64,KGZ1bmN0aW9uKHcsZCxzLGwsaSl7d1tsXT13W2xdfHxbXTt3W2xdLnB1c2goeydndG0uc3RhcnQnOgogICAgbmV3IERhdGUoKS5nZXRUaW1lKCksZXZlbnQ6J2d0bS5qcyd9KTt2YXIgZj1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKHMpWzBdLAogICAgaj1kLmNyZWF0ZUVsZW1lbnQocyksZGw9bCE9J2RhdGFMYXllcic/JyZsPScrbDonJztqLmFzeW5jPXRydWU7ai5zcmM9CiAgICAnaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RtLmpzP2lkPScraStkbDtmLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGosZik7CiAgICB9KSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJ2RhdGFMYXllcicsJ0dUTS1NNjJXWFJUJyk7
- • script crossorigin:- integrity:no https://www.userlane.com//data:text/javascript;base64,CnZhciB3cG1sX2Nvb2tpZXMgPSB7IndwLXdwbWxfY3VycmVudF9sYW5ndWFnZSI6eyJ2YWx1ZSI6ImVuIiwiZXhwaXJlcyI6MSwicGF0aCI6Ii8ifX07CnZhciB3cG1sX2Nvb2tpZXMgPSB7IndwLXdwbWxfY3VycmVudF9sYW5ndWFnZSI6eyJ2YWx1ZSI6ImVuIiwiZXhwaXJlcyI6MSwicGF0aCI6Ii8ifX07Ci8vIyBzb3VyY2VVUkw9d3BtbC1jb29raWUtanMtZXh0cmEK
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/uploads/autoptimize/js/autoptimize_single_f3606e4db5e156a1b086bcfeb3b2d9b4.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-includes/js/jquery/jquery.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-includes/js/jquery/jquery-migrate.min.js
- • script crossorigin:- integrity:no https://www.userlane.com//data:text/javascript;base64,CgkJCSFmdW5jdGlvbih0LGUpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9ZSgpOiJmdW5jdGlvbiI9PXR5cGVvZiBfX1NWR0FUT1JfREVGSU5FX18mJl9fU1ZHQVRPUl9ERUZJTkVfXy5hbWQ/X19TVkdBVE9SX0RFRklORV9fKGUpOigodD0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczp0fHxzZWxmKS5fX1NWR0FUT1JfUExBWUVSX189dC5fX1NWR0FUT1JfUExBWUVSX198fHt9LHQuX19TVkdBVE9SX1BMQVlFUl9fWyI5MWM4MGQ3NyJdPWUoKSl9KHRoaXMsZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Y29uc3QgdD1uKE1hdGgucG93KDEwLC02KSksZT1uKE1hdGgucG93KDEwLC0yKSk7ZnVuY3Rpb24gbih0LGU9Nil7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXtpZihOdW1iZXIuaXNJbnRlZ2VyKHQpKXJldHVybiB0O2NvbnN0IHI9TWF0aC5wb3coMTAsZSk7cmV0dXJuIE1hdGhbbl0oKCt0K051bWJlci5FUFNJTE9OKSpyKS9yfSh0LGUsInJvdW5kIil9ZnVuY3Rpb24gcihlLG4scj10KXtyZXR1cm4gTWF0aC5hYnMoZS1uKTxyfWNvbnN0IGk9TWF0aC5QSS8xODA7ZnVuY3Rpb24gcyh0KXtyZXR1cm4gdCppfWZ1bmN0aW9uIG8odCl7cmV0dXJuIHQvaX1mdW5jdGlvbiB1KHQpe3JldHVybiJudW1iZXIiIT10eXBlb2YgdCYmKHQ9TnVtYmVyKHQpKSxpc05hTih0KXx8IWlzRmluaXRlKHQpPzA6dH1sZXQgbD17aUQ6ITF9O2Z1bmN0aW9uIGEodCl7cmV0dXJuYCR7dH1gLnJlcGxhY2UoL1snIl0vZywiIil9ZnVuY3Rpb24gYyh0LGU9InB4Iil7cmV0dXJuIHQuZW5kc1dpdGgoZSk/dDpgJHt0fSR7ZX1gfWZ1bmN0aW9uIGYodD0iIil7cmV0dXJuIGwuaUQ/dDp2b2lkIDB9ZnVuY3Rpb24gaCh0KXtjb25zdCBlPVsiXiIsIlxccyoiLCIobWF0cml4XFwoKSIsIig/PGE+LT9bMC05XSpcXC4/WzAtOV0rKSIsIlxccyoiLCIsPyIsIlxccyoiLCIoPzxiPi0/WzAtOV0qXFwuP1swLTldKykiLCJcXHMqIiwiLD8iLCJcXHMqIiwiKD88Yz4tP1swLTldKlxcLj9bMC05XSspIiwiXFxzKiIsIiw/IiwiXFxzKiIsIig/PGQ+LT9bMC05XSpcXC4/WzAtOV0rKSIsIlxccyoiLCIsPyIsIlxccyoiLCIoPzxlPi0/WzAtOV0qXFwuP1swLTldKykiLCJcXHMqIiwiLD8iLCJcXHMqIiwiKD88Zj4tP1swLTldKlxcLj9bMC05XSspIiwiXFwpIl0uam9pbigiIiksbj10Lm1hdGNoKG5ldyBSZWdFeHAoZSwiaSIpKTtpZihuKXJldHVyblt1KG4uZ3JvdXBzLmEpLHUobi5ncm91cHMuYiksdShuLmdyb3Vwcy5jKSx1KG4uZ3JvdXBzLmQpLHUobi5ncm91cHMuZSksdShuLmdyb3Vwcy5mKV19ZnVuY3Rpb24gZCh0LGU9ImlubGluZSIpe3JldHVybiB0JiZ0IT09ZT8odD1hKHQpKT09PWU/ZihlKTp0OmYoZSl9ZnVuY3Rpb24gZyh0LGU9IjFweCIpe2lmKCF0fHx0PT09ZSlyZXR1cm4gZihlKTtpZih0LmVuZHNXaXRoKCJweCIpfHx0LmVuZHNXaXRoKCIlIikpcmV0dXJuIHQ7Y29uc3Qgcj1jKHQ9YCR7bih1KHQpLDIpfWApO3JldHVybiByPT09ZT9mKGUpOnJ9ZnVuY3Rpb24gcCh0LGU9Im5vbmUiKXtpZighdHx8dD09PWUpcmV0dXJuIGYoZSk7aWYoKHQ9YSh0KSk9PT1lKXJldHVybiBmKGUpO2NvbnN0IG49dC5tYXRjaCgvdXJsXCgjLis/XCkvKTtyZXR1cm4gbj9uWzBdOmZ1bmN0aW9uKHQpe2NvbnN0IGU9WyJeIiwiXFxzKiIsInVybFxcKCIsIiMiLCIoPzxtYXNrSWQ+W2EtekEtWjAtOVxcLV9dKykiLCJcXCkiXS5qb2luKCIiKSxuPXQubWF0Y2gobmV3IFJlZ0V4cChlLCJpIikpO2lmKG4pcmV0dXJuYHVybCgjJHtuLmdyb3Vwcy5tYXNrSWR9KWB9KHQpfWZ1bmN0aW9uIHkodCxlPSJyZ2IoMCwgMCwgMCkiKXtpZighdHx8dD09PWUpcmV0dXJuIGYoZSk7aWYoKHQ9YSh0KSk9PT1lKXJldHVybiBmKGUpO2lmKHQuc3RhcnRzV2l0aCgicmdiIikpcmV0dXJuIHQ7Y29uc3Qgbj1mdW5jdGlvbih0KXtpZigic3RyaW5nIiE9dHlwZW9mIHR8fCIjIiE9PXRbMF0pcmV0dXJuIHQ7Y29uc3QgZT10LnNsaWNlKDEpLG49ZS5sZW5ndGg7aWYoMyE9PW4mJjYhPT1uKXJldHVybiB0O2ZvcihsZXQgcj0wO3I8bjtyKyspe2NvbnN0IG49ZS5jaGFyQ29kZUF0KHIpO2lmKCEobj49NDgmJm48PTU3fHxuPj02NSYmbjw9NzB8fG4+PTk3JiZuPD0xMDIpKXJldHVybiB0fWlmKDM9PT1uKXJldHVybmByZ2IoJHtwYXJzZUludChlWzBdK2VbMF0sMTYpfSwgJHtwYXJzZUludChlWzFdK2VbMV0sMTYpfSwgJHtwYXJzZUludChlWzJdK2VbMl0sMTYpfSlgO3JldHVybmByZ2IoJHtwYXJzZUludChlLnNsaWNlKDAsMiksMTYpfSwgJHtwYXJzZUludChlLnNsaWNlKDIsNCksMTYpfSwgJHtwYXJzZUludChlLnNsaWNlKDQsNiksMTYpfSlgfSh0KTtyZXR1cm4gbj09PWU/ZihlKTpufWZ1bmN0aW9uIG0odCxlPSIxIil7cmV0dXJuIHQmJnQhPT1lPyh0PWAke24odSh0KSwzKX1gKT09PWU/ZihlKTp0OmYoZSl9bGV0IHY9e307Y29uc3QgYj17ZmlsbDoibm9uZSIsc3Ryb2tlOiJub25lIixvcGFjaXR5OiIwLjAxIix0cmFuc2Zvcm06Im1hdHJpeCgwLjAwMSAwIDAgMC4wMDEgLTEwMDAwIC0xMDAwMCkifTtmdW5jdGlvbiB3KHtlbGVtZW50OnQsdGFnVHlwZTplPSJwYXRoIixwcm9wZXJ0eTpuPSJkIixhdHRyaWJ1dGVWYWx1ZTpyfSl7cmV0dXJuIHZbcl18fCh2W3JdPWZ1bmN0aW9uKHtlbGVtZW50OnQsdGFnVHlwZTplPSJwYXRoIixwcm9wZXJ0eTpuPSJkIixhdHRyaWJ1dGVWYWx1ZTpyfSl7Y29uc3QgaT10Lm93bmVyU1ZHRWxlbWVudCxzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhpLm5hbWVzcGFjZVVSSSxlKTtzLnNldEF0dHJpYnV0ZU5TKG51bGwsbixyKTtmb3IoY29uc3QgdCBpbiBiKXMuc2V0QXR0cmlidXRlTlMobnVsbCx0LGJbdF0pO2kuYXBwZW5kQ2hpbGQocyk7Y29uc3Qgbz1nZXRDb21wdXRlZFN0eWxlKHMpW25dO3JldHVybiBzLnJlbW92ZSgpLG99KHtlbGVtZW50OnQsdGFnVHlwZTplLHByb3BlcnR5Om4sYXR0cmlidXRlVmFsdWU6cn0pKSx2W3JdfWNvbnN0IHg9KCk9Pnt2PXt9fTsib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHgpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHgpKTtjb25zdCBBPXtpbmNsdWRlOih0LGUpPT5bInBhdGgiXS5pbmNsdWRlcyhlKSxmb3JtYXR0ZXI6dD0+ZnVuY3Rpb24odCxlPSIiKXtyZXR1cm4gdCYmdCE9PWU/KHQ9YSh0KSk9PT1lP2YoZSk6dC5zdGFydHNXaXRoKCJwYXRoKCIpP3Q6YHBhdGgoJyR7dH0nKWA6ZihlKX0odCl9LF89e2luY2x1ZGU6KHQsZSk9PlsicmVjdCIsIm1hc2siXS5pbmNsdWRlcyhlKSxmb3JtYXR0ZXI6KHQsZSxuKT0+Zyh0LGZ1bmN0aW9uKHQsZSl7dmFyIG47cmV0dXJuKG51bGw9PT0obj17bWFzazp7eDoiLTE1MCUiLHk6Ii0xNTAlIix3aWR0aDoiNDAwJSIsaGVpZ2h0OiI0MDAlIn19W2VdKXx8dm9pZCAwPT09bj92b2lkIDA6blt0XSl8fChbIngiLCJ5Il0uaW5jbHVkZXModCk/IjBweCI6IjEwMCUiKX0oZSxuKSl9LGs9T2JqZWN0LmZyZWV6ZSh7ZDpBLGRpc3BsYXk6dD0+ZCh0KSxoZWlnaHQ6XyxmaWxsOnQ9PnkodCksImZpbGwtb3BhY2l0eSI6dD0+bSh0KSxmaWx0ZXI6dD0+ZCh0LCJub25lIiksbWFzazp0PT5wKHQpLG9wYWNpdHk6dD0+bSh0KSxzdHJva2U6dD0+eSh0LCJub25lIiksInN0cm9rZS1vcGFjaXR5Ijp0PT5tKHQpLCJzdHJva2Utd2lkdGgiOnQ9PmcodCksdHJhbnNmb3JtOnQ9PmZ1bmN0aW9uKHQsZT0ibm9uZSIpe2lmKCF0fHx0PT09ZSlyZXR1cm4gZihlKTtjb25zdCBuPWgodCk7cmV0dXJuIG4/YG1hdHJpeCgke24uam9pbigiLCAiKX0pYDp0fSh0KSwidHJhbnNmb3JtLW9yaWdpbiI6dD0+ZnVuY3Rpb24odCxlPSIwcHggMHB4Iil7aWYoIXR8fHQ9PT1lKXJldHVybiBmKGUpO2NvbnN0IG49WyJeIiwiXFxzKiIsIig/PHg+WzAtOV0rKSIsIihweCk/IiwiXFxzKiIsIiwiLCJcXHMqIiwiKD88eT5bMC05XSspIiwiKHB4KT8iXS5qb2luKCIiKSxyPXQubWF0Y2gobmV3IFJlZ0V4cChuLCJpIikpO2lmKCFyKXJldHVybiB0O2xldCBpPWAke3Uoci5ncm91cHMueCl9YDtpPWMoaSk7bGV0IHM9YCR7dShyLmdyb3Vwcy55KX1gO3M9YyhzKTtjb25zdCBvPWAke2l9ICR7c31gO3JldHVybiBvPT09ZT9mKGUpOm99KHQpLHZpc2liaWxpdHk6dD0+ZCh0LCJ2aXNpYmxlIiksd2lkdGg6Xyx4Ol8seTpffSksUz1PYmplY3Qua2V5cyhrKSxFPWU7ZnVuY3Rpb24gSSh0LGUpe3JldHVybiByKChlLXQpLyhlfHwxKSoxMDAsMCxFKX1mdW5jdGlvbiBPKHQsZSxuLHIsaT13aW5kb3cpe3ZhciBzLG87Y29uc3QgdT10LmdldEF0dHJpYnV0ZShlKSxsPSJ0cmFuc2Zvcm0iPT09ZT8ibm9uZSI6IiIsYT0oaS5zYWZhcml8fGZ1bmN0aW9uKHQpe3ZhciBlLG47Y29uc3Qgcj1udWxsPT10P3ZvaWQgMDp0LnVzZXJBZ2VudDtyZXR1cm4obnVsbD09dHx8bnVsbD09PShlPXQudmVuZG9yKXx8dm9pZCAwPT09ZXx8bnVsbD09PShuPWUuaW5kZXhPZil8fHZvaWQgMD09PW4/dm9pZCAwOm4uY2FsbChlLCJBcHBsZSIpKT4tMSYmciYmLTE9PT1yLmluZGV4T2YoIkNyaU9TIikmJi0xPT09ci5pbmRleE9mKCJGeGlPUyIpfShudWxsPT1pP3ZvaWQgMDppLm5hdmlnYXRvcil8fGkud2Via2l0KSYmIWkuY2hyb21lJiYobnVsbD09PShzPXIuZ2V0UHJvcGVydHlWYWx1ZSl8fHZvaWQgMD09PXM/dm9pZCAwOnMuY2FsbChyLGUpKT09PWx8fCJtYXNrIj09PW4/dTpudWxsPT09KG89ci5nZXRQcm9wZXJ0eVZhbHVlKXx8dm9pZCAwPT09bz92b2lkIDA6by5jYWxsKHIsZSk7aWYodSYmYSl7aWYodT09PWEpcmV0dXJuIHU7c3dpdGNoKGUpe2Nhc2UidHJhbnNmb3JtIjpyZXR1cm4gZnVuY3Rpb24odCxlKXtjb25zdCBuPWgodCkscj1oKGUpO2lmKChudWxsPT1uP3ZvaWQgMDpuLmxlbmd0aCk9PT0obnVsbD09cj92b2lkIDA6ci5sZW5ndGgpKXtmb3IobGV0IHQ9MCxlPW4ubGVuZ3RoO3Q8ZTt0KyspaWYoblt0XSE9PXJbdF0mJiFJKHJbdF0sblt0XSkpcmV0dXJuO3JldHVybiB0fX0odSxhKTtjYXNlImQiOnJldHVybiBmdW5jdGlvbih0LGUsbil7cmV0dXJuIHcoe2VsZW1lbnQ6dCxhdHRyaWJ1dGVWYWx1ZTplfSk9PT1uP2U6dm9pZCAwfSh0LHUsYSk7ZGVmYXVsdDpyZXR1cm4gYX19fWZ1bmN0aW9uIE0odCxlLG4scil7dmFyIGkscyxvO2NvbnN0IHU9InRyYW5zZm9ybSI9PT1lfHxbIm1hc2siLCJwYXRoIl0uaW5jbHVkZXMobikmJlsieCIsInkiLCJ3aWR0aCIsImhlaWdodCIsImQiXS5pbmNsdWRlcyhlKTtyZXR1cm4gciYmdT9PKHQsZSxuLHIpOihudWxsPT09KGk9ci5nZXRQcm9wZXJ0eVZhbHVlKXx8dm9pZCAwPT09aT92b2lkIDA6aS5jYWxsKHIsZSkpPz8obnVsbD09PShzPXQuYXR0cnMpfHx2b2lkIDA9PT1zfHxudWxsPT09KHM9cy5zdHlsZSl8fHZvaWQgMD09PXM/dm9pZCAwOnNbZV0pPz8obnVsbD09PShvPXQuYXR0cnMpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvW2VdKX1mdW5jdGlvbiBCKHQsZSxuPSExKXtsLmlEPW47Y29uc3Qgcj0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmZ2V0Q29tcHV0ZWRTdHlsZSh0KSxpPXt9O2ZvcihsZXQgbD0wLGE9Uy5sZW5ndGg7bDxhO2wrKyl7dmFyIHMsbyx1O2NvbnN0IGE9U1tsXSxjPXQudHlwZXx8dC5ub2RlTmFtZTtpZighMT09PShudWxsPT09KHM9KG89a1thXSkuaW5jbHVkZSl8fHZvaWQgMD09PXM/dm9pZCAwOnMuY2FsbChvLGEsYykpKWNvbnRpbnVlO2NvbnN0IGY9a1thXS5mb3JtYXR0ZXJ8fGtbYV07aWYobnVsbCE9ZSYmbnVsbCE9PSh1PWVbdC5pZF0pJiZ2b2lkIDAhPT11JiZ1W2FdKWNvbnRpbnVlO2NvbnN0IGg9TSh0LGEsYyxyKTtpZihudWxsPT1oJiYhbiljb250aW51ZTtjb25zdCBkPWYuY2FsbCh0aGlzLGgsYSxjKTtkJiYoaVthXT1kKX1yZXR1cm4gaX1mdW5jdGlvbiBOKHQpe3ZhciBlLG47aWYobnVsbD09dHx8bnVsbD09PShlPXQud0QpfHx2b2lkIDA9PT1lfHwhZS5sZW5ndGgpcmV0dXJuO3RoaXMuaD10LndELnNoaWZ0KCk7Y29uc3Qgcj1udWxsPT09KG49dC5yb290SWQpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnNsaWNlKDAsLTEpO3RoaXMud0lzPXQud0QubWFwKHQ9PmAke3J9JHt0fWApfWZ1bmN0aW9uIGoodCl7Y29uc3QgZT1uZXcgTih0KSxuPXQuc3ZnLHI9ZS53SXMsaT10Lm9yaWdpbmFsQW5pbWF0aW9uc1swXS5lbGVtZW50cyxzPWUuaDtmdW5jdGlvbiBvKHQsZSxzKXt2YXIgdTtpZihlW3RdKXJldHVybjtjb25zdCBsPW4ucXVlcnlTZWxlY3RvcigiIyIrdCksYT1udWxsPT1sfHxudWxsPT09KHU9bC5wYXJlbnRFbGVtZW50KXx8dm9pZCAwPT09dT92b2lkIDA6dS5pZDtpZihsJiZhKXtpZihyLmluY2x1ZGVzKGEpKXJldHVybiBlW2FdfHxvKGEsZSxzKSxlW2FdLmNoaWxkcmVuPz89W10sZVt0XT1CKGwsaSksdm9pZCBlW2FdLmNoaWxkcmVuLnB1c2goZVt0XSk7ZVt0XT1CKGwsaSkscy5wdXNoKGVbdF0pfX1hc3luYyBmdW5jdGlvbiB1KCl7Y29uc3QgdD1mdW5jdGlvbigpe2xldCB0PVtdLGU9e307Zm9yKGxldCBuPTAsaT1yLmxlbmd0aDtuPGk7bisrKW8ocltuXSxlLHQpO3JldHVybiB0fSgpO3JldHVybiBhd2FpdCBhc3luYyBmdW5jdGlvbih0KXt2YXIgZTtjb25zdCBuPUpTT04uc3RyaW5naWZ5KHQpLHI9KG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKG4pLGk9YXdhaXQobnVsbD09PShlPXdpbmRvdy5jcnlwdG8pfHx2b2lkIDA9PT1lfHxudWxsPT09KGU9ZS5zdWJ0bGUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmRpZ2VzdCgiU0hBLTI1NiIscikpO3JldHVybiBpJiZBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGkpKS5tYXAodD0+dC50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpKS5qb2luKCIiKXx8c30odCl9dGhpcy52SD1hc3luYyBmdW5jdGlvbigpe2F3YWl0IHUoKSE9PXMmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+dC5zdG9wKCkpfX1mdW5jdGlvbiBUKHQpe2xldCBlPTAsbj0wO2NvbnN0IHI9bmV3IGoodCk7dGhpcy5jRj1mdW5jdGlvbihpLHMpe3JldHVybiB0LndEPyhlKyssZnVuY3Rpb24odCl7cmV0dXJuISh0LW48MzAwKSYmKHQtbj49NTAwfHxlPj0zKX0oaSk/KGU9MCxuPWksd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+ci52SCgpKSxzKCkpOnMoKSk6cygpfX1mdW5jdGlvbiBQKHQpe3JldHVybiB0fWZ1bmN0aW9uIEYodCxlLG4pe2NvbnN0IHI9MS1uO3JldHVybiAzKm4qcioodCpyK2UqbikrbipuKm59ZnVuY3Rpb24gUih0PTAsZT0wLG49MSxpPTEpe3JldHVybiB0PDB8fHQ+MXx8bjwwfHxuPjE/bnVsbDpyKHQsZSkmJnIobixpKT9QOnM9PntpZihzPD0wKXJldHVybiB0PjA/cyplL3Q6MD09PWUmJm4+MD9zKmkvbjowO2lmKHM+PTEpcmV0dXJuIG48MT8xKyhzLTEpKihpLTEpLyhuLTEpOjE9PT1uJiZ0PDE/MSsocy0xKSooZS0xKS8odC0xKToxO2xldCBvLHU9MCxsPTE7Zm9yKDt1PGw7KXtvPSh1K2wpLzI7Y29uc3QgZT1GKHQsbixvKTtpZihyKHMsZSkpYnJlYWs7ZTxzP3U9bzpsPW99cmV0dXJuIEYoZSxpLG8pfX1mdW5jdGlvbiBDKCl7cmV0dXJuIDF9ZnVuY3Rpb24gVih0KXtyZXR1cm4gMT09PXQ/MTowfWZ1bmN0aW9uIEQodD0xLGU9MCl7aWYoMT09PXQpe2lmKDA9PT1lKXJldHVybiBWO2lmKDE9PT1lKXJldHVybiBDfWNvbnN0IG49MS90O3JldHVybiB0PT50Pj0xPzE6KHQrPWUqbiktdCVufU51bWJlci5pc0ludGVnZXJ8fChOdW1iZXIuaXNJbnRlZ2VyPWZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmaXNGaW5pdGUodCkmJk1hdGguZmxvb3IodCk9PT10fSksTnVtYmVyLkVQU0lMT058fChOdW1iZXIuRVBTSUxPTj0yMjIwNDQ2MDQ5MjUwMzEzZS0zMSk7Y29uc3QgJD1NYXRoLnNpbixxPU1hdGguY29zLEw9TWF0aC5hY29zLHo9TWF0aC5hc2luLEc9TWF0aC50YW4sVz1NYXRoLmF0YW4yLFk9TWF0aC5zcXJ0O2Z1bmN0aW9uIFUodCxlKXtyZXR1cm57YTp0WzBdKmVbMF0rdFsyXSplWzFdLGI6dFsxXSplWzBdK3RbM10qZVsxXSxjOnRbMF0qZVsyXSt0WzJdKmVbM10sZDp0WzFdKmVbMl0rdFszXSplWzNdLHR4OnRbMF0qZVs0XSt0WzJdKmVbNV0rdFs0XSx0eTp0WzFdKmVbNF0rdFszXSplWzVdK3RbNV19fWZ1bmN0aW9uIEgodCxlLG4pe3JldHVybiB0Pj0uNT9uOmV9ZnVuY3Rpb24gSih0LGUsbil7cmV0dXJuIDA9PT10fHxlPT09bj9lOnQqKG4tZSkrZX1mdW5jdGlvbiBYKHQsZSxuKXtjb25zdCByPUoodCxlLG4pO3JldHVybiByPD0wPzA6cn1mdW5jdGlvbiBLKHQsZSxuKXtjb25zdCByPUoodCxlLG4pO3JldHVybiByPD0wPzA6cj49MT8xOnJ9ZnVuY3Rpb24gUSh0LGUsbil7cmV0dXJuIDA9PT10P2U6MT09PXQ/bjp7eDpKKHQsZS54LG4ueCkseTpKKHQsZS55LG4ueSl9fWZ1bmN0aW9uIFoodCxlLG4pe3JldHVybiAwPT09dD9lOjE9PT10P246e3g6WCh0LGUueCxuLngpLHk6WCh0LGUueSxuLnkpfX1mdW5jdGlvbiB0dCh0LGUsbil7Y29uc3Qgcj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIE1hdGgucm91bmQoSih0LGUsbikpfSh0LGUsbik7cmV0dXJuIHI8PTA/MDpyPj0yNTU/MjU1OnJ9ZnVuY3Rpb24gZXQodCxlLG4pe3JldHVybiAwPT09dD9lOjE9PT10P246e3I6dHQodCxlLnIsbi5yKSxnOnR0KHQsZS5nLG4uZyksYjp0dCh0LGUuYixuLmIpLGE6Sih0LG51bGw9PWUuYT8xOmUuYSxudWxsPT1uLmE/MTpuLmEpfX1mdW5jdGlvbiBudCh0LGUsbil7bGV0IHI9ZS5sZW5ndGg7aWYociE9PW4ubGVuZ3RoKXJldHVybiBIKHQsZSxuKTtsZXQgaT1uZXcgQXJyYXkocik7Zm9yKGxldCBzPTA7czxyO3MrKylpW3NdPUoodCxlW3NdLG5bc10pO3JldHVybiBpfWZ1bmN0aW9uIHJ0KHQsZSl7Y29uc3Qgbj1bXTtmb3IobGV0IHI9MDtyPHQ7cisrKW4ucHVzaChlKTtyZXR1cm4gbn1mdW5jdGlvbiBpdCh0LGUpe2lmKC0tZTw9MClyZXR1cm4gdDtjb25zdCBuPSh0PU9iamVjdC5hc3NpZ24oW10sdCkpLmxlbmd0aDtkb3tmb3IobGV0IGU9MDtlPG47ZSsrKXQucHVzaCh0W2VdKX13aGlsZSgtLWU+MCk7cmV0dXJuIHR9Y2xhc3Mgc3R7Y29uc3RydWN0b3IodCl7dGhpcy5saXN0PXQsdGhpcy5sZW5ndGg9dC5sZW5ndGh9c2V0QXR0cmlidXRlKHQsZSl7Y29uc3Qgbj10aGlzLmxpc3Q7Zm9yKGxldCByPTA7cjx0aGlzLmxlbmd0aDtyKyspbltyXS5zZXRBdHRyaWJ1dGUodCxlKX1yZW1vdmVBdHRyaWJ1dGUodCl7Y29uc3QgZT10aGlzLmxpc3Q7Zm9yKGxldCBuPTA7bjx0aGlzLmxlbmd0aDtuKyspZVtuXS5yZW1vdmVBdHRyaWJ1dGUodCl9c3R5bGUodCxlKXtjb25zdCBuPXRoaXMubGlzdDtmb3IobGV0IHI9MDtyPHRoaXMubGVuZ3RoO3IrKyluW3JdLnN0eWxlW3RdPWV9fWNvbnN0IG90PS8tLi9nLHV0PSh0LGUpPT5lLnRvVXBwZXJDYXNlKCk7bGV0IGx0O2Z1bmN0aW9uIGF0KHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6SH1mdW5jdGlvbiBjdCh0KXtyZXR1cm4gdD8iZnVuY3Rpb24iPT10eXBlb2YgdD90OkFycmF5LmlzQXJyYXkodCk/ZnVuY3Rpb24odCxlPVApe2lmKCFBcnJheS5pc0FycmF5KHQpKXJldHVybiBlO3N3aXRjaCh0Lmxlbmd0aCl7Y2FzZSAxOnJldHVybiBEKHRbMF0pfHxlO2Nhc2UgMjpyZXR1cm4gRCh0WzBdLHRbMV0pfHxlO2Nhc2UgNDpyZXR1cm4gUih0WzBdLHRbMV0sdFsyXSx0WzNdKXx8ZX1yZXR1cm4gZX0odCxudWxsKTpmdW5jdGlvbih0LGUsbj1QKXtzd2l0Y2godCl7Y2FzZSJsaW5lYXIiOnJldHVybiBQO2Nhc2Uic3RlcHMiOnJldHVybiBEKGUuc3RlcHN8fDEsZS5qdW1wfHwwKXx8bjtjYXNlImJlemllciI6Y2FzZSJjdWJpYy1iZXppZXIiOnJldHVybiBSKGUueDF8fDAsZS55MXx8MCxlLngyfHwwLGUueTJ8fDApfHxufXJldHVybiBufSh0LnR5cGUsdC52YWx1ZSxudWxsKTpudWxsfWZ1bmN0aW9uIGZ0KHQsZSxuLHI9ITEpe2NvbnN0IGk9ZS5sZW5ndGgtMTtpZih0PD1lWzBdLnQpcmV0dXJuIHI/WzAsMCxlWzBdLnZdOmVbMF0udjtpZih0Pj1lW2ldLnQpcmV0dXJuIHI/W2ksMSxlW2ldLnZdOmVbaV0udjtsZXQgcyxvPWVbMF0sdT1udWxsO2ZvcihzPTE7czw9aTtzKyspe2lmKCEodD5lW3NdLnQpKXt1PWVbc107YnJlYWt9bz1lW3NdfXJldHVybiBudWxsPT11P3I/W2ksMSxlW2ldLnZdOmVbaV0udjpvLnQ9PT11LnQ/cj9bcywxLHUudl06dS52Oih0PSh0LW8udCkvKHUudC1vLnQpLG8uZSYmKHQ9by5lKHQpKSxyP1tzLHQsbih0LG8udix1LnYpXTpuKHQsby52LHUudikpfWZ1bmN0aW9uIGh0KHQsZSxuPW51bGwpe3JldHVybiB0JiZ0Lmxlbmd0aD8iZnVuY3Rpb24iIT10eXBlb2YgZT9udWxsOigiZnVuY3Rpb24iIT10eXBlb2YgbiYmKG49bnVsbCkscj0+e2xldCBpPWZ0KHIsdCxlKTtyZXR1cm4gbnVsbCE9aSYmbiYmKGk9bihpKSksaX0pOm51bGx9ZnVuY3Rpb24gZHQodCxlKXtyZXR1cm4gdC50LWUudH1mdW5jdGlvbiBndCh0LGUsbixyLGkpe2NvbnN0IHM9IkAiPT09blswXSxvPSIjIj09PW5bMF07bGV0IHU9bHRbbl0sbD1IO3ZhciBhO3N3aXRjaChzPyhhPW4uc3Vic3RyKDEpLG49YS5yZXBsYWNlKG90LHV0KSk6byYmKG49bi5zdWJzdHIoMSkpLHR5cGVvZiB1KXtjYXNlImZ1bmN0aW9uIjppZihsPXUocixpLGZ0LGN0LG4scyxlLHQpLG8pcmV0dXJuIGw7YnJlYWs7Y2FzZSJzdHJpbmciOmw9aHQocixhdCh1KSk7YnJlYWs7Y2FzZSJvYmplY3QiOmlmKGw9aHQocixhdCh1LmkpLHUuZiksbCYmImZ1bmN0aW9uIj09dHlwZW9mIHUudSlyZXR1cm4gdS51KGUsbCxuLHMsdCl9cmV0dXJuIGw/ZnVuY3Rpb24odCxlLG4scj0hMSl7aWYocilyZXR1cm4gdCBpbnN0YW5jZW9mIHN0P3I9PnQuc3R5bGUoZSxuKHIpKTpyPT50LnN0eWxlW2VdPW4ocik7aWYoQXJyYXkuaXNBcnJheShlKSl7Y29uc3Qgcj1lLmxlbmd0aDtyZXR1cm4gaT0+e2NvbnN0IHM9bihpKTtpZihudWxsPT1zKWZvcihsZXQgbj0wO248cjtuKyspdFtuXS5yZW1vdmVBdHRyaWJ1dGUoZSk7ZWxzZSBmb3IobGV0IG49MDtuPHI7bisrKXRbbl0uc2V0QXR0cmlidXRlKGUscyl9fXJldHVybiByPT57Y29uc3QgaT1uKHIpO251bGw9PWk/dC5yZW1vdmVBdHRyaWJ1dGUoZSk6dC5zZXRBdHRyaWJ1dGUoZSxpKX19KGUsbixsLHMpOm51bGx9ZnVuY3Rpb24gcHQodCxlLG4scil7aWYoIXJ8fCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm4gbnVsbDtsZXQgaT1udWxsLHM9bnVsbDtyZXR1cm4gQXJyYXkuaXNBcnJheShyKT9zPWZ1bmN0aW9uKHQpe2lmKCF0fHwhdC5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXS5lJiYodFtlXS5lPWN0KHRbZV0uZSkpO3JldHVybiB0LnNvcnQoZHQpfShyKToocz1yLmtleXMsaT1yLmRhdGF8fG51bGwpLHM/Z3QodCxlLG4scyxpKTpudWxsfWZ1bmN0aW9uIHl0KHQsZSxuKXtpZighbilyZXR1cm4gbnVsbDtjb25zdCByPVtdO2Zvcihjb25zdCBpIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShpKSl7Y29uc3Qgcz1wdCh0LGUsaSxuW2ldKTtzJiZyLnB1c2gocyl9cmV0dXJuIHIubGVuZ3RoP3I6bnVsbH1mdW5jdGlvbiBtdCh0LGUpe2lmKCFlLnNldHRpbmdzLmR1cmF0aW9ufHxlLnNldHRpbmdzLmR1cmF0aW9uPDApcmV0dXJuIG51bGw7Y29uc3Qgbj1mdW5jdGlvbih0LGUpe2lmKCFlKXJldHVybiBudWxsO2xldCBuPVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpe2NvbnN0IHI9ZS5sZW5ndGg7Zm9yKGxldCBpPTA7aTxyO2krKyl7Y29uc3Qgcj1lW2ldO2lmKDIhPT1yLmxlbmd0aCljb250aW51ZTtsZXQgcz1udWxsO2lmKCJzdHJpbmciPT10eXBlb2YgclswXSlzPXQuZ2V0RWxlbWVudEJ5SWQoclswXSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHJbMF0pKXtzPVtdO2ZvcihsZXQgZT0wO2U8clswXS5sZW5ndGg7ZSsrKWlmKCJzdHJpbmciPT10eXBlb2YgclswXVtlXSl7Y29uc3Qgbj10LmdldEVsZW1lbnRCeUlkKHJbMF1bZV0pO24mJnMucHVzaChuKX1zPXMubGVuZ3RoPzE9PT1zLmxlbmd0aD9zWzBdOm5ldyBzdChzKTpudWxsfWlmKCFzKWNvbnRpbnVlO2NvbnN0IG89eXQodCxzLHJbMV0pO28mJihuPW4uY29uY2F0KG8pKX19ZWxzZSBmb3IoY29uc3QgciBpbiBlKXtpZighZS5oYXNPd25Qcm9wZXJ0eShyKSljb250aW51ZTtjb25zdCBpPXQuZ2V0RWxlbWVudEJ5SWQocik7aWYoIWkpY29udGludWU7Y29uc3Qgcz15dCh0LGksZVtyXSk7cyYmKG49bi5jb25jYXQocykpfXJldHVybiBuLmxlbmd0aD9uOm51bGx9KHQsZS5lbGVtZW50cyk7cmV0dXJuIG4/ZnVuY3Rpb24odCxlKXtjb25zdCBuPWUuZHVyYXRpb24scj10Lmxlbmd0aDtsZXQgaT1udWxsO3JldHVybihzLG8pPT57Y29uc3QgdT1lLml0ZXJhdGlvbnN8fDEvMCxsPShlLmFsdGVybmF0ZSYmdSUyPT0wKV5lLmRpcmVjdGlvbj4wP246MDtsZXQgYT1zJW4sYz0xKyhzLWEpL247byo9ZS5kaXJlY3Rpb24sZS5hbHRlcm5hdGUmJmMlMj09MCYmKG89LW8pO2xldCBmPSExO2lmKGM+dSlhPWwsZj0hMCwtMT09PWUuZmlsbCYmKGE9ZS5kaXJlY3Rpb24+MD8wOm4pO2Vsc2UgaWYobzwwJiYoYT1uLWEpLGE9PT1pKXJldHVybiExO2k9YTtmb3IobGV0IGU9MDtlPHI7ZSsrKXRbZV0oYSk7cmV0dXJuIGZ9fShuLGUuc2V0dGluZ3MpOm51bGx9ZnVuY3Rpb24gdnQodCxlPWRvY3VtZW50LG49MCl7Y29uc3Qgcj1mdW5jdGlvbih0LGUpe2NvbnN0IG49ZS5xdWVyeVNlbGVjdG9yQWxsKCJzdmciKTtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKylpZihuW2VdLmlkPT09dC5yb290JiYhbltlXS5zdmdhdG9yQW5pbWF0aW9uKXJldHVybiBuW2VdLnN2Z2F0b3JBbmltYXRpb249ITAsbltlXTtyZXR1cm4gbnVsbH0odCxlKTtpZihyKXJldHVybiByO2lmKG4+PTIwKXJldHVybiBudWxsO2NvbnN0IGk9ZnVuY3Rpb24odCl7Y29uc3QgZT10PT50LnNoYWRvd1Jvb3Q7cmV0dXJuIGRvY3VtZW50P0FycmF5LmZyb20odC5xdWVyeVNlbGVjdG9yQWxsKCI6bm90KCIrWyJhIiwiYXJlYSIsImF1ZGlvIiwiYnIiLCJjYW52YXMiLCJjaXJjbGUiLCJkYXRhbGlzdCIsImVtYmVkIiwiZyIsImhlYWQiLCJociIsImlmcmFtZSIsImltZyIsImlucHV0IiwibGluayIsIm9iamVjdCIsInBhdGgiLCJwb2x5Z29uIiwicmVjdCIsInNjcmlwdCIsInNvdXJjZSIsInN0eWxlIiwic3ZnIiwidGl0bGUiLCJ0cmFjayIsInZpZGVvIl0uam9pbigpKyIpIikpLmZpbHRlcihlKS5tYXAoZSk6W119KGUpO2ZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXtjb25zdCByPXZ0KHQsaVtlXSxuKzEpO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gYnQodCxlPW51bGwsbj1OdW1iZXIscj0idW5kZWZpbmVkIiE9dHlwZW9mIEJpZ0ludCYmQmlnSW50KXtjb25zdCBpPSIweCIrKHQucmVwbGFjZSgvW14wLTlhLWZBLUZdKy9nLCIiKXx8MjcpO3JldHVybiBlJiZyJiZuLmlzU2FmZUludGVnZXImJiFuLmlzU2FmZUludGVnZXIoK2kpP24ocihpKSklZStlOitpfWZ1bmN0aW9uIHd0KHQsZT0yNyl7cmV0dXJuIXR8fHQlZT90JWU6WzAsMV0uaW5jbHVkZXMoZSk/ZTp3dCh0L2UsZSl9ZnVuY3Rpb24geHQodCxlLG4pe2lmKCF0fHwhdC5sZW5ndGgpcmV0dXJuO2NvbnN0IHI9YnQobiksaT13dChyKSs1O2xldCBzPWZ1bmN0aW9uKHQsZSxuKXtsZXQgcj0iIjtmb3IoO3QmJm4mJmU8PXQubGVuZ3RoOylyKz10LnN1YnN0cmluZygwLGUpLHQ9dC5zdWJzdHJpbmcoZSsxKSxlPW47cmV0dXJuIHIrdH0odCx3dChyLDUpLGkpO3JldHVybiBzPXMucmVwbGFjZSgvXHg3YyQvZywiPT0iKS5yZXBsYWNlKC9ceDJmJC9nLCI9Iikscz1hdG9iKHMpLHM9cy5yZXBsYWNlKC9bXHg0MS1ceDVBXS9nLCIiKSxzPWZ1bmN0aW9uKHQsZSxuKXtjb25zdCByPSsoIjB4Iit0LnN1YnN0cmluZygwLDQpKTt0PXQuc3Vic3RyaW5nKDQpO2NvbnN0IGk9YnQoZSxyKSVyK24lMjcscz1bXTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrPTIpe2lmKCJ8Ij09PXRbZV0pe2NvbnN0IG49KygiMHgiK3Quc3Vic3RyaW5nKGUrMSxlKzErNCkpLWk7ZSs9MyxzLnB1c2gobik7Y29udGludWV9Y29uc3Qgbj0rKCIweCIrdFtlXSt0W2UrMV0pLWk7cy5wdXNoKG4pfXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLnMpfShzLGUscikscz1KU09OLnBhcnNlKHMpLHN9Y29uc3QgQXQ9W3trZXk6ImFsdGVybmF0ZSIsZGVmOiExfSx7a2V5OiJmaWxsIixkZWY6MX0se2tleToiaXRlcmF0aW9ucyIsZGVmOjB9LHtrZXk6ImRpcmVjdGlvbiIsZGVmOjF9LHtrZXk6InNwZWVkIixkZWY6MX0se2tleToiZnBzIixkZWY6MTAwfV07bGV0IF90PWNsYXNze19zdmc7X3Jvb3RJZDtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9pZD0wLHRoaXMuX3J1bm5pbmc9ITEsdGhpcy5fcm9sbGluZ0JhY2s9ITEsdGhpcy5fYW5pbWF0aW9ucz10LmFuaW1hdGlvbnMsdGhpcy5fc2V0dGluZ3M9dC5hbmltYXRpb25TZXR0aW5ncyx0LnZlcnNpb248IjIwMjItMDUtMDIiJiZkZWxldGUgdGhpcy5fc2V0dGluZ3Muc3BlZWQsQXQuZm9yRWFjaCh0PT57dGhpcy5fc2V0dGluZ3NbdC5rZXldPXRoaXMuX3NldHRpbmdzW3Qua2V5XXx8dC5kZWZ9KSx0aGlzLmR1cmF0aW9uPXQuYW5pbWF0aW9uU2V0dGluZ3MuZHVyYXRpb24sdGhpcy5vZmZzZXQ9dC5hbmltYXRpb25TZXR0aW5ncy5vZmZzZXR8fDAsdGhpcy5yb2xsYmFja1N0YXJ0T2Zmc2V0PTAsdGhpcy5fcm9vdElkPXQucm9vdCx0aGlzLl9zdmc9dC5zdmcsdGhpcy5fb3JpZ2luYWxBbmltYXRpb25zPXQub3JpZ2luYWxBbmltYXRpb25zLHRoaXMuX2ZUQz1uZXcgVCh0aGlzKX1nZXQgc3ZnKCl7cmV0dXJuIHRoaXMuX3N2Z31nZXQgcm9vdElkKCl7cmV0dXJuIHRoaXMuX3Jvb3RJZH1nZXQgYWx0ZXJuYXRlKCl7cmV0dXJuIHRoaXMuX3NldHRpbmdzLmFsdGVybmF0ZX1nZXQgZmlsbCgpe3JldHVybiB0aGlzLl9zZXR0aW5ncy5maWxsfWdldCBpdGVyYXRpb25zKCl7cmV0dXJuIHRoaXMuX3NldHRpbmdzLml0ZXJhdGlvbnN9Z2V0IGRpcmVjdGlvbigpe3JldHVybiB0aGlzLl9zZXR0aW5ncy5kaXJlY3Rpb259Z2V0IHNwZWVkKCl7cmV0dXJuIHRoaXMuX3NldHRpbmdzLnNwZWVkfWdldCBmcHMoKXtyZXR1cm4gdGhpcy5fc2V0dGluZ3MuZnBzfWdldCB3RCgpe3JldHVybiB0aGlzLl9zZXR0aW5ncy53fWdldCBvcmlnaW5hbEFuaW1hdGlvbnMoKXtyZXR1cm4gdGhpcy5fb3JpZ2luYWxBbmltYXRpb25zfWdldCBtYXhGaW5pdGVEdXJhdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdGlvbnM+MD90aGlzLml0ZXJhdGlvbnMqdGhpcy5kdXJhdGlvbjp0aGlzLmR1cmF0aW9ufXN0YXRpYyBidWlsZCh0LGUpe2lmKGRlbGV0ZSB0LmFuaW1hdGlvblNldHRpbmdzLHQub3B0aW9ucz14dCh0Lm9wdGlvbnMsdC5yb290LCI5MWM4MGQ3NyIpLHQuYW5pbWF0aW9ucy5tYXAoZT0+e2Uuc2V0dGluZ3M9eHQoZS5zLHQucm9vdCwiOTFjODBkNzciKSxkZWxldGUgZS5zLHQuYW5pbWF0aW9uU2V0dGluZ3N8fCh0LmFuaW1hdGlvblNldHRpbmdzPWUuc2V0dGluZ3MpfSksT2JqZWN0LmFzc2lnbih0LHtvcmlnaW5hbEFuaW1hdGlvbnM6dC5hbmltYXRpb25zfSxmdW5jdGlvbih0LGUpe2lmKGx0PWUsIXR8fCF0LnJvb3R8fCFBcnJheS5pc0FycmF5KHQuYW5pbWF0aW9ucykpcmV0dXJuIG51bGw7Y29uc3Qgbj12dCh0KTtpZighbilyZXR1cm4gbnVsbDtjb25zdCByPXQuYW5pbWF0aW9ucy5tYXAodD0+bXQobix0KSkuZmlsdGVyKHQ9PiEhdCk7cmV0dXJuIHIubGVuZ3RoP3tzdmc6bixhbmltYXRpb25zOnJ9Om51bGx9KHQsZSkpLG51bGw9PXR8fCF0LnN2ZylyZXR1cm4gbnVsbDtjb25zdCBuPXQub3B0aW9uc3x8e30scj1uZXcgdGhpcyh0KTtyZXR1cm57ZWw6dC5zdmcsb3B0aW9uczpuLHBsYXllcjpyfX1zdGF0aWMgcHVzaCh0KXtyZXR1cm4gdGhpcy5idWlsZCh0KX1zdGF0aWMgaW5pdCgpe2NvbnN0IHQ9d2luZG93Ll9fU1ZHQVRPUl9QTEFZRVJfXyYmd2luZG93Ll9fU1ZHQVRPUl9QTEFZRVJfX1siOTFjODBkNzciXTtBcnJheS5pc0FycmF5KHQpJiZ0LnNwbGljZSgwKS5mb3JFYWNoKHQ9PnRoaXMuYnVpbGQodCkpfV9hcHBseSh0LGU9e30pe2NvbnN0IG49dGhpcy5fYW5pbWF0aW9ucyxyPW4ubGVuZ3RoO2xldCBpPTA7Zm9yKGxldCBzPTA7czxyO3MrKyllW3NdP2krKzooZVtzXT1uW3NdKHQsMSksZVtzXSYmaSsrKTtyZXR1cm4gaX1fcm9sbGJhY2sodCl7bGV0IGU9MS8wLG49bnVsbDt0aGlzLnJvbGxiYWNrU3RhcnRPZmZzZXQ9dCx0aGlzLl9yb2xsaW5nQmFjaz0hMCx0aGlzLl9ydW5uaW5nPSEwO2NvbnN0IHI9aT0+e2lmKCF0aGlzLl9yb2xsaW5nQmFjaylyZXR1cm47bnVsbD09biYmKG49aSk7bGV0IHM9TWF0aC5yb3VuZCh0LShpLW4pKnRoaXMuc3BlZWQpO2lmKHM+dGhpcy5kdXJhdGlvbiYmZSE9PTEvMCl7Y29uc3QgdD0hIXRoaXMuYWx0ZXJuYXRlJiZzL3RoaXMuZHVyYXRpb24lMj4xO2xldCBlPXMldGhpcy5kdXJhdGlvbjtlKz10P3RoaXMuZHVyYXRpb246MCxzPWV8fHRoaXMuZHVyYXRpb259Y29uc3Qgbz0odGhpcy5mcHM/MWUzL3RoaXMuZnBzOjApKnRoaXMuc3BlZWQsdT1NYXRoLm1heCgwLHMpO3U8PWUtbyYmKHRoaXMub2Zmc2V0PXUsZT11LHRoaXMuX2FwcGx5KHUpKTtjb25zdCBsPXRoaXMuaXRlcmF0aW9ucz4wJiYtMT09PXRoaXMuZmlsbCYmcz49dGhpcy5tYXhGaW5pdGVEdXJhdGlvbjsoczw9MHx8dGhpcy5vZmZzZXQ8c3x8bCkmJnRoaXMuc3RvcCgpLHRoaXMuX2lkPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocil9O3RoaXMuX2lkPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocil9X3N0YXJ0KHQ9MCl7bGV0IGUsbj0tMS8wO2NvbnN0IHI9e307dGhpcy5fcnVubmluZz0hMDtjb25zdCBpPXM9PntlPz89cztjb25zdCBvPU1hdGgucm91bmQoKHMtZSkqdGhpcy5zcGVlZCt0KSx1PSh0aGlzLmZwcz8xZTMvdGhpcy5mcHM6MCkqdGhpcy5zcGVlZDtvPj1uK3UmJiF0aGlzLl9yb2xsaW5nQmFjayYmdGhpcy5fZlRDLmNGKHMsKCk9Pnt0aGlzLm9mZnNldD1vLG49bztpZih0aGlzLl9hcHBseShvLHIpPT09dGhpcy5fYW5pbWF0aW9ucy5sZW5ndGgpcmV0dXJuIHRoaXMucGF1c2UoITApLCEwfSl8fCh0aGlzLl9pZD13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGkpKX07dGhpcy5faWQ9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShpKX1fcGF1c2UoKXt0aGlzLl9pZCYmd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2lkKSx0aGlzLl9ydW5uaW5nPSExfXBsYXkoKXtpZighdGhpcy5fcnVubmluZylyZXR1cm4gdGhpcy5fcm9sbGluZ0JhY2s/dGhpcy5fcm9sbGJhY2sodGhpcy5vZmZzZXQpOnRoaXMuX3N0YXJ0KHRoaXMub2Zmc2V0KX1zdG9wKCl7dGhpcy5fcGF1c2UoKSx0aGlzLm9mZnNldD0wLHRoaXMucm9sbGJhY2tTdGFydE9mZnNldD0wLHRoaXMuX3JvbGxpbmdCYWNrPSExLHRoaXMuX2FwcGx5KDApfXJlYWNoZWRUb0VuZCgpe3JldHVybiB0aGlzLml0ZXJhdGlvbnM+MCYmdGhpcy5vZmZzZXQ+PXRoaXMuaXRlcmF0aW9ucyp0aGlzLmR1cmF0aW9ufXJlc3RhcnQodD0hMSl7dGhpcy5zdG9wKHQpLHRoaXMucGxheSh0KX1wYXVzZSgpe3RoaXMuX3BhdXNlKCl9dG9nZ2xlKCl7cmV0dXJuIHRoaXMuX3J1bm5pbmc/dGhpcy5wYXVzZSgpOnRoaXMucmVhY2hlZFRvRW5kKCk/dGhpcy5yZXN0YXJ0KCk6dGhpcy5wbGF5KCl9dHJpZ2dlcih0LGUpe31fYWRqdXN0T2Zmc2V0KHQ9ITEpe2NvbnN0IGU9dGhpcy5hbHRlcm5hdGU/Mip0aGlzLmR1cmF0aW9uOnRoaXMuZHVyYXRpb247aWYodCl7aWYoIXRoaXMuX3JvbGxpbmdCYWNrJiYwPT09dGhpcy5vZmZzZXQpcmV0dXJuIHZvaWQodGhpcy5vZmZzZXQ9ZSk7dGhpcy5fcm9sbGluZ0JhY2smJih0aGlzLm9mZnNldCx0aGlzLm1heEZpbml0ZUR1cmF0aW9uKX0hdGhpcy5fcm9sbGluZ0JhY2t8fHRoaXMucm9sbGJhY2tTdGFydE9mZnNldDw9dGhpcy5kdXJhdGlvbj8wIT09dGhpcy5pdGVyYXRpb25zJiYodGhpcy5vZmZzZXQ9TWF0aC5taW4odGhpcy5vZmZzZXQsdGhpcy5tYXhGaW5pdGVEdXJhdGlvbikpOih0aGlzLm9mZnNldD10aGlzLnJvbGxiYWNrU3RhcnRPZmZzZXQtKHRoaXMucm9sbGJhY2tTdGFydE9mZnNldC10aGlzLm9mZnNldCklZSx0aGlzLnJvbGxiYWNrU3RhcnRPZmZzZXQ9MCl9cmV2ZXJzZSh0PSExKXtpZighdGhpcy5fcnVubmluZylyZXR1cm4gdGhpcy5fYWRqdXN0T2Zmc2V0KHQpLHRoaXMuX3JvbGxpbmdCYWNrPSF0aGlzLl9yb2xsaW5nQmFjayx0JiZ0aGlzLnBsYXkoITEpLHZvaWQgdGhpcy50cmlnZ2VyKCJyZXZlcnNlIix0aGlzLm9mZnNldCk7dGhpcy5wYXVzZSghMSwhMSksdGhpcy5fYWRqdXN0T2Zmc2V0KCksdGhpcy5fcm9sbGluZ0JhY2s9IXRoaXMuX3JvbGxpbmdCYWNrLHRoaXMucGxheSghMSksdGhpcy50cmlnZ2VyKCJyZXZlcnNlIix0aGlzLm9mZnNldCl9fTtmdW5jdGlvbiBrdCh0KXtyZXR1cm4gbih0KSsiIn1mdW5jdGlvbiBTdCh0LGU9IiAiKXtyZXR1cm4gdCYmdC5sZW5ndGg/dC5tYXAoa3QpLmpvaW4oZSk6IiJ9ZnVuY3Rpb24gRXQodCl7cmV0dXJuIGt0KHQueCkrIiwiK2t0KHQueSl9ZnVuY3Rpb24gSXQodCl7cmV0dXJuIHQ/bnVsbD09dC5hfHx0LmE+PTE/ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuInRyYW5zcGFyZW50Ijtjb25zdCBlPXQ9PnBhcnNlSW50KHQpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2NvbnN0IGU9W107bGV0IG49IiMiPT09dFswXT9lLnB1c2goIiMiKTowO2Zvcig7bjx0Lmxlbmd0aDtuKz0yKXtpZih0W25dIT09dFtuKzFdKXJldHVybiB0O2UucHVzaCh0W25dKX1yZXR1cm4gZS5qb2luKCIiKX0oIiMiK2UodC5yKStlKHQuZykrZSh0LmIpKyhudWxsPT10LmF8fHQuYT49MT8iIjplKDI1NSp0LmEpKSl9KHQpOiJyZ2JhKCIrdC5yKyIsIit0LmcrIiwiK3QuYisiLCIrdC5hKyIpIjoidHJhbnNwYXJlbnQifWZ1bmN0aW9uIE90KHQpe3JldHVybiB0PyJ1cmwoIyIrdCsiKSI6Im5vbmUifSFmdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9WyJtcyIsIm1veiIsIndlYmtpdCIsIm8iXSxuPTA7bjxlLmxlbmd0aCYmIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7KytuKXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU9d2luZG93W2Vbbl0rIlJlcXVlc3RBbmltYXRpb25GcmFtZSJdLHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZT13aW5kb3dbZVtuXSsiQ2FuY2VsQW5pbWF0aW9uRnJhbWUiXXx8d2luZG93W2Vbbl0rIkNhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZSJdO3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fCh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lPWZ1bmN0aW9uKGUpe3ZhciBuPURhdGUubm93KCkscj1NYXRoLm1heCgwLDE2LShuLXQpKSxpPXdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZShuK3IpfSxyKTtyZXR1cm4gdD1uK3IsaX0sd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lPXdpbmRvdy5jbGVhclRpbWVvdXQpfSgpO3ZhciBNdD17ZjpudWxsLGk6Wix1Oih0LGUpPT5uPT57Y29uc3Qgcj1lKG4pO3Quc2V0QXR0cmlidXRlKCJyeCIsa3Qoci54KSksdC5zZXRBdHRyaWJ1dGUoInJ5IixrdChyLnkpKX19LEJ0PXtmOm51bGwsaTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIDA9PT10P2U6MT09PXQ/bjp7d2lkdGg6WCh0LGUud2lkdGgsbi53aWR0aCksaGVpZ2h0OlgodCxlLmhlaWdodCxuLmhlaWdodCl9fSx1Oih0LGUpPT5uPT57Y29uc3Qgcj1lKG4pO3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsa3Qoci53aWR0aCkpLHQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLGt0KHIuaGVpZ2h0KSl9fTtsZXQgTnQ9e30sanQ9bnVsbDtmdW5jdGlvbiBUdCh0KXtsZXQgZT1mdW5jdGlvbigpe2lmKGp0KXJldHVybiBqdDtpZigib2JqZWN0IiE9dHlwZW9mIGRvY3VtZW50fHwhZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKXJldHVybnt9O2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKTtyZXR1cm4gdCYmdC5zdHlsZT8odC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHQuc3R5bGUub3BhY2l0eT0iMC4wMSIsdC5zdHlsZS56SW5kZXg9Ii05OTk5Iix0LnN0eWxlLmxlZnQ9Ii05OTk5cHgiLHQuc3R5bGUud2lkdGg9IjFweCIsdC5zdHlsZS5oZWlnaHQ9IjFweCIsanQ9e3N2Zzp0fSxqdCk6e319KCkuc3ZnO2lmKCFlKXJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbnVsbH07bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGUubmFtZXNwYWNlVVJJLCJwYXRoIik7bi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJkIix0KSxuLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwiLCJub25lIiksbi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJzdHJva2UiLCJub25lIiksZS5hcHBlbmRDaGlsZChuKTtsZXQgcj1uLmdldFRvdGFsTGVuZ3RoKCk7cmV0dXJuIGZ1bmN0aW9uKHQpe2xldCBlPW4uZ2V0UG9pbnRBdExlbmd0aChyKnQpO3JldHVybnt4OmUueCx5OmUueX19fWZ1bmN0aW9uIFB0KHQsZSxuLHIsaT0xKXtsZXQgcz1mdW5jdGlvbih0KXtyZXR1cm4gTnRbdF0/TnRbdF06TnRbdF09VHQodCl9KGZ1bmN0aW9uKHQsZSxuLHIpe2lmKCF0fHwhcilyZXR1cm4hMTtsZXQgaT1bIk0iLHQueCx0LnldO2lmKGUmJm4mJihpLnB1c2goIkMiKSxpLnB1c2goZS54KSxpLnB1c2goZS55KSxpLnB1c2gobi54KSxpLnB1c2gobi55KSksZT8hbjpuKXtsZXQgdD1lfHxuO2kucHVzaCgiUSIpLGkucHVzaCh0LngpLGkucHVzaCh0LnkpfXJldHVybiBlfHxufHxpLnB1c2goIkwiKSxpLnB1c2goci54KSxpLnB1c2goci55KSxpLmpvaW4oIiAiKX0odCxlLG4scikpO3RyeXtyZXR1cm4gcyhpKX1jYXRjaCh0KXtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gRnQodCxlLG4pe3JldHVybiB0KyhlLXQpKm59ZnVuY3Rpb24gUnQodCxlLG4scj0hMSl7Y29uc3QgaT17eDpGdCh0LngsZS54LG4pLHk6RnQodC55LGUueSxuKX07cmV0dXJuIHImJihpLmE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5hdGFuMihlLnktdC55LGUueC10LngpfSh0LGUpKSxpfWZ1bmN0aW9uIEN0KHQsZSxuLHIpe2NvbnN0IGk9MS1yO3JldHVybiBpKmkqdCsyKmkqciplK3IqcipufWZ1bmN0aW9uIFZ0KHQsZSxuLHIpe3JldHVybiAyKigxLXIpKihlLXQpKzIqcioobi1lKX1mdW5jdGlvbiBEdCh0LGUsbixyLGk9ITEpe2xldCBzPVB0KHQsZSxudWxsLG4scik7cmV0dXJuIHN8fChzPXt4OkN0KHQueCxlLngsbi54LHIpLHk6Q3QodC55LGUueSxuLnkscil9KSxpJiYocy5hPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBNYXRoLmF0YW4yKFZ0KHQueSxlLnksbi55LHIpLFZ0KHQueCxlLngsbi54LHIpKX0odCxlLG4scikpLHN9ZnVuY3Rpb24gJHQodCxlLG4scixpKXtjb25zdCBzPWkqaTtyZXR1cm4gaSpzKihyLXQrMyooZS1uKSkrMypzKih0K24tMiplKSszKmkqKGUtdCkrdH1mdW5jdGlvbiBxdCh0LGUsbixyLGkpe2NvbnN0IHM9MS1pO3JldHVybiAzKihzKnMqKGUtdCkrMipzKmkqKG4tZSkraSppKihyLW4pKX1mdW5jdGlvbiBMdCh0LGUsbixyLGkscz0hMSl7bGV0IG89UHQodCxlLG4scixpKTtyZXR1cm4gb3x8KG89e3g6JHQodC54LGUueCxuLngsci54LGkpLHk6JHQodC55LGUueSxuLnksci55LGkpfSkscyYmKG8uYT1mdW5jdGlvbih0LGUsbixyLGkpe3JldHVybiBNYXRoLmF0YW4yKHF0KHQueSxlLnksbi55LHIueSxpKSxxdCh0LngsZS54LG4ueCxyLngsaSkpfSh0LGUsbixyLGkpKSxvfWZ1bmN0aW9uIHp0KHQsZSxuLHI9ITEpe2lmKFd0KGUpKXtpZihZdChuKSlyZXR1cm4gRHQoZSxuLnN0YXJ0LG4sdCxyKX1lbHNlIGlmKFd0KG4pKXtpZihVdChlKSlyZXR1cm4gRHQoZSxlLmVuZCxuLHQscil9ZWxzZXtpZihVdChlKSlyZXR1cm4gWXQobik/THQoZSxlLmVuZCxuLnN0YXJ0LG4sdCxyKTpEdChlLGUuZW5kLG4sdCxyKTtpZihZdChuKSlyZXR1cm4gRHQoZSxuLnN0YXJ0LG4sdCxyKX1yZXR1cm4gUnQoZSxuLHQscil9ZnVuY3Rpb24gR3QodCxlLG4pe2NvbnN0IHI9enQodCxlLG4sITApO3JldHVybiByLmE9byhmdW5jdGlvbih0LGU9ITEpe3JldHVybiBlP3QrTWF0aC5QSTp0fShyLmEpKSxyfWZ1bmN0aW9uIFd0KHQpe3JldHVybiF0LnR5cGV8fCJjb3JuZXIiPT09dC50eXBlfWZ1bmN0aW9uIFl0KHQpe3JldHVybiBudWxsIT10LnN0YXJ0JiYhV3QodCl9ZnVuY3Rpb24gVXQodCl7cmV0dXJuIG51bGwhPXQuZW5kJiYhV3QodCl9Y29uc3QgSHQ9bmV3IGNsYXNze2NvbnN0cnVjdG9yKHQ9MSxlPTAsbj0wLHI9MSxpPTAscz0wKXt0aGlzLm09W3QsZSxuLHIsaSxzXSx0aGlzLmk9bnVsbCx0aGlzLnc9bnVsbCx0aGlzLnM9bnVsbH1nZXQgZGV0ZXJtaW5hbnQoKXtjb25zdCB0PXRoaXMubTtyZXR1cm4gdFswXSp0WzNdLXRbMV0qdFsyXX1nZXQgaXNJZGVudGl0eSgpe2lmKG51bGw9PT10aGlzLmkpe2NvbnN0IHQ9dGhpcy5tO3RoaXMuaT0xPT09dFswXSYmMD09PXRbMV0mJjA9PT10WzJdJiYxPT09dFszXSYmMD09PXRbNF0mJjA9PT10WzVdfXJldHVybiB0aGlzLml9cG9pbnQodCxlKXtjb25zdCBuPXRoaXMubTtyZXR1cm57eDpuWzBdKnQrblsyXSplK25bNF0seTpuWzFdKnQrblszXSplK25bNV19fXRyYW5zbGF0ZVNlbGYodD0wLGU9MCl7aWYoIXQmJiFlKXJldHVybiB0aGlzO2NvbnN0IG49dGhpcy5tO3JldHVybiBuWzRdKz1uWzBdKnQrblsyXSplLG5bNV0rPW5bMV0qdCtuWzNdKmUsdGhpcy53PXRoaXMucz10aGlzLmk9bnVsbCx0aGlzfXJvdGF0ZVNlbGYodD0wKXtpZih0JT0zNjApe3Q9cyh0KTtjb25zdCBlPSQodCksbj1xKHQpLHI9dGhpcy5tLGk9clswXSxvPXJbMV07clswXT1pKm4rclsyXSplLHJbMV09bypuK3JbM10qZSxyWzJdPXJbMl0qbi1pKmUsclszXT1yWzNdKm4tbyplLHRoaXMudz10aGlzLnM9dGhpcy5pPW51bGx9cmV0dXJuIHRoaXN9c2NhbGVTZWxmKHQ9MSxlPTEpe2lmKDEhPT10fHwxIT09ZSl7Y29uc3Qgbj10aGlzLm07blswXSo9dCxuWzFdKj10LG5bMl0qPWUsblszXSo9ZSx0aGlzLnc9dGhpcy5zPXRoaXMuaT1udWxsfXJldHVybiB0aGlzfXNrZXdTZWxmKHQsZSl7aWYoZSU9MzYwLCh0JT0zNjApfHxlKXtjb25zdCBuPXRoaXMubSxyPW5bMF0saT1uWzFdLG89blsyXSx1PW5bM107dCYmKHQ9RyhzKHQpKSxuWzJdKz1yKnQsblszXSs9aSp0KSxlJiYoZT1HKHMoZSkpLG5bMF0rPW8qZSxuWzFdKz11KmUpLHRoaXMudz10aGlzLnM9dGhpcy5pPW51bGx9cmV0dXJuIHRoaXN9cmVzZXRTZWxmKHQ9MSxlPTAsbj0wLHI9MSxpPTAscz0wKXtjb25zdCBvPXRoaXMubTtyZXR1cm4gb1swXT10LG9bMV09ZSxvWzJdPW4sb1szXT1yLG9bNF09aSxvWzVdPXMsdGhpcy53PXRoaXMucz10aGlzLmk9bnVsbCx0aGlzfXJlY29tcG9zZVNlbGYodD1udWxsLGU9bnVsbCxuPW51bGwscj1udWxsLGk9bnVsbCl7cmV0dXJuIHRoaXMuaXNJZGVudGl0eXx8dGhpcy5yZXNldFNlbGYoKSx0JiYodC54fHx0LnkpJiZ0aGlzLnRyYW5zbGF0ZVNlbGYodC54LHQueSksZSYmdGhpcy5yb3RhdGVTZWxmKGUpLG4mJihuLngmJnRoaXMuc2tld1NlbGYobi54LDApLG4ueSYmdGhpcy5za2V3U2VsZigwLG4ueSkpLCFyfHwxPT09ci54JiYxPT09ci55fHx0aGlzLnNjYWxlU2VsZihyLngsci55KSxpJiYoaS54fHxpLnkpJiZ0aGlzLnRyYW5zbGF0ZVNlbGYoaS54LGkueSksdGhpc31kZWNvbXBvc2UodD0wLGU9MCl7Y29uc3Qgcj10aGlzLm0saT1yWzBdKnJbMF0rclsxXSpyWzFdLHM9W1tyWzBdLHJbMV1dLFtyWzJdLHJbM11dXTtsZXQgdT1ZKGkpO2lmKDA9PT11KXJldHVybntvcmlnaW46e3g6bihyWzRdKSx5Om4ocls1XSl9LHRyYW5zbGF0ZTp7eDpuKHQpLHk6bihlKX0sc2NhbGU6e3g6MCx5OjB9LHNrZXc6e3g6MCx5OjB9LHJvdGF0ZTowfTtzWzBdWzBdLz11LHNbMF1bMV0vPXU7Y29uc3QgbD1yWzBdKnJbM10tclsxXSpyWzJdPDA7bCYmKHU9LXUpO2xldCBhPXNbMF1bMF0qc1sxXVswXStzWzBdWzFdKnNbMV1bMV07c1sxXVswXS09c1swXVswXSphLHNbMV1bMV0tPXNbMF1bMV0qYTtsZXQgYyxmPVkoc1sxXVswXSpzWzFdWzBdK3NbMV1bMV0qc1sxXVsxXSk7cmV0dXJuIDA9PT1mP3tvcmlnaW46e3g6bihyWzRdKSx5Om4ocls1XSl9LHRyYW5zbGF0ZTp7eDpuKHQpLHk6bihlKX0sc2NhbGU6e3g6bih1KSx5OjB9LHNrZXc6e3g6MCx5OjB9LHJvdGF0ZTowfTooc1sxXVswXS89ZixzWzFdWzFdLz1mLGEvPWYsc1sxXVsxXTwwPyhjPW8oTChzWzFdWzFdKSksc1swXVsxXTwwJiYoYz0zNjAtYykpOmM9byh6KHNbMF1bMV0pKSxsJiYoYz0tYyksYT1vKFcoYSxZKHNbMF1bMF0qc1swXVswXStzWzBdWzFdKnNbMF1bMV0pKSksbCYmKGE9LWEpLHtvcmlnaW46e3g6bihyWzRdKSx5Om4ocls1XSl9LHRyYW5zbGF0ZTp7eDpuKHQpLHk6bihlKX0sc2NhbGU6e3g6bih1KSx5Om4oZil9LHNrZXc6e3g6bihhKSx5OjB9LHJvdGF0ZTpuKGMpfSl9bXVsdGlwbHkodCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWx0aXBseVNlbGYodCl9cHJlTXVsdGlwbHkodCl7cmV0dXJuIHQubXVsdGlwbHkodGhpcyl9bXVsdGlwbHlTZWxmKHQpe2NvbnN0e2E6ZSxiOm4sYzpyLGQ6aSx0eDpzLHR5Om99PVUodGhpcy5tLHQubSk7cmV0dXJuIHRoaXMucmVzZXRTZWxmKGUsbixyLGkscyxvKSx0aGlzfXByZU11bHRpcGx5U2VsZih0KXtjb25zdHthOmUsYjpuLGM6cixkOmksdHg6cyx0eTpvfT1VKHQubSx0aGlzLm0pO3JldHVybiB0aGlzLnJlc2V0U2VsZihlLG4scixpLHMsbyksdGhpc31jbG9uZSgpe2NvbnN0IHQ9dGhpcy5tO3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0WzBdLHRbMV0sdFsyXSx0WzNdLHRbNF0sdFs1XSl9c3RhdGljIGNyZWF0ZSh0KXtyZXR1cm4gdD9BcnJheS5pc0FycmF5KHQpP25ldyB0aGlzKC4uLnQpOnQgaW5zdGFuY2VvZiB0aGlzP3QuY2xvbmUoKToobmV3IHRoaXMpLnJlY29tcG9zZVNlbGYodC5vcmlnaW4sdC5yb3RhdGUsdC5za2V3LHQuc2NhbGUsdC50cmFuc2xhdGUpOm5ldyB0aGlzfXRvU3RyaW5nKHQ9IiAiLGU9ITEpe2lmKG51bGw9PT10aGlzLnMpe2xldCByPXRoaXMubS5tYXAodD0+bih0KSk7ZXx8MSE9PXJbMF18fDAhPT1yWzFdfHwwIT09clsyXXx8MSE9PXJbM10/dGhpcy5zPSJtYXRyaXgoIityLmpvaW4odCkrIikiOnRoaXMucz0idHJhbnNsYXRlKCIrcls0XSt0K3JbNV0rIikifXJldHVybiB0aGlzLnN9fTt2YXIgSnQ9e2Y6ZnVuY3Rpb24odCl7cmV0dXJuIHQ/dC5qb2luKCIgIik6IiJ9LGk6ZnVuY3Rpb24odCxlLG4pe2lmKDA9PT10KXJldHVybiBlO2lmKDE9PT10KXJldHVybiBuO2xldCByPWUubGVuZ3RoO2lmKHIhPT1uLmxlbmd0aClyZXR1cm4gSCh0LGUsbik7bGV0IGkscz1uZXcgQXJyYXkocik7Zm9yKGxldCBvPTA7bzxyO28rKyl7aWYoaT10eXBlb2YgZVtvXSxpIT09dHlwZW9mIG5bb10pcmV0dXJuIEgodCxlLG4pO2lmKCJudW1iZXIiPT09aSlzW29dPUoodCxlW29dLG5bb10pO2Vsc2V7aWYoZVtvXSE9PW5bb10pcmV0dXJuIEgodCxlLG4pO3Nbb109ZVtvXX19cmV0dXJuIHN9fSxYdD17ZjpTdCxpOm50fSxLdD17ZjpudWxsLGk6bnQsdToodCxlKT0+bj0+e2NvbnN0IHI9ZShuKTt0LnNldEF0dHJpYnV0ZSgieDEiLGt0KHJbMF0pKSx0LnNldEF0dHJpYnV0ZSgieTEiLGt0KHJbMV0pKSx0LnNldEF0dHJpYnV0ZSgieDIiLGt0KHJbMl0pKSx0LnNldEF0dHJpYnV0ZSgieTIiLGt0KHJbM10pKX19LFF0PXtmOmt0LGk6Sn0sWnQ9e2Y6a3QsaTpLfSx0ZT17ZjpmdW5jdGlvbih0LGU9IiAiKXtyZXR1cm4gdCYmdC5sZW5ndGg+MCYmKHQ9dC5tYXAodD0+bih0LDQpKSksU3QodCxlKX0saTpmdW5jdGlvbih0LGUscil7bGV0IGk9ZS5sZW5ndGgscz1yLmxlbmd0aDtpZihpIT09cylpZigwPT09aSlpPXMsZT1ydChpLDApO2Vsc2UgaWYoMD09PXMpcz1pLHI9cnQoaSwwKTtlbHNle2NvbnN0IHQ9ZnVuY3Rpb24odCxlKXtjb25zdCBuPXQqZS9mdW5jdGlvbih0LGUpe2xldCBuO2Zvcig7ZTspbj1lLGU9dCVlLHQ9bjtyZXR1cm4gdHx8MX0odCxlKTtyZXR1cm4gbjwwPy1uOm59KGkscyk7ZT1pdChlLE1hdGguZmxvb3IodC9pKSkscj1pdChyLE1hdGguZmxvb3IodC9zKSksaT1zPXR9bGV0IG89W107Zm9yKGxldCBzPTA7czxpO3MrKylvLnB1c2gobihYKHQsZVtzXSxyW3NdKSkpO3JldHVybiBvfX0sZWU9e2Y6a3QsaTpKfTtmdW5jdGlvbiBuZSh0LGUscil7cmV0dXJuIHQubWFwKHQ9PmZ1bmN0aW9uKHQsZSxyKXtsZXQgaT10LnY7aWYoIWl8fCJnIiE9PWkudHx8aS5zfHwhaS52fHwhaS5yKXJldHVybiB0O2NvbnN0IHM9ci5nZXRFbGVtZW50QnlJZChpLnIpLG89cyYmcy5xdWVyeVNlbGVjdG9yQWxsKCJzdG9wIil8fFtdO3JldHVybiBpLnM9aS52Lm1hcCgodCxlKT0+e2xldCByPW9bZV0mJm9bZV0uZ2V0QXR0cmlidXRlKCJvZmZzZXQiKTtyZXR1cm4gcj1uKHBhcnNlSW50KHIpLzEwMCkse2M6dCxvOnJ9fSksZGVsZXRlIGkudix0fSh0LDAscikpfWNvbnN0IHJlPXtndDoiZ3JhZGllbnRUcmFuc2Zvcm0iLGM6e3g6ImN4Iix5OiJjeSJ9LHJkOiJyIixmOnt4OiJ4MSIseToieTEifSx0bzp7eDoieDIiLHk6InkyIn19O2Z1bmN0aW9uIGllKHQsZSxuLHIsaSxzLG8sdSl7cmV0dXJuIG5lKHQsMCx1KSxlPWZ1bmN0aW9uKHQsZSxuKXtsZXQgcixpLHM7Y29uc3Qgbz10Lmxlbmd0aC0xLHU9e307Zm9yKGxldCBsPTA7bDw9bztsKyspcj10W2xdLHIuZSYmKHIuZT1lKHIuZSkpLHIudiYmKGk9ci52LCJnIj09PWkudCYmaS5yJiYocz1uLmdldEVsZW1lbnRCeUlkKGkucikscyYmKHVbaS5yXT17ZTpzLHM6cy5xdWVyeVNlbGVjdG9yQWxsKCJzdG9wIil9KSkpO3JldHVybiB1fSh0LHIsdSkscj0+e2NvbnN0IGk9bihyLHQsc2UpO2lmKCFpKXJldHVybiJub25lIjtpZigiYyI9PT1pLnQpcmV0dXJuIEl0KGkudik7aWYoImciPT09aS50KXtpZighZVtpLnJdKXJldHVybiBPdChpLnIpO2NvbnN0IHQ9ZVtpLnJdO3JldHVybiBmdW5jdGlvbih0LGUpe2xldCBuPXQucztmb3IobGV0IHI9bi5sZW5ndGg7cjxlLmxlbmd0aDtyKyspe2NvbnN0IGU9bltuLmxlbmd0aC0xXS5jbG9uZU5vZGUoKTtlLmlkPWxlKGUuaWQpLHQuZS5hcHBlbmRDaGlsZChlKSxuPXQucz10LmUucXVlcnlTZWxlY3RvckFsbCgic3RvcCIpfWZvcihsZXQgdD0wLHI9bi5sZW5ndGgsaT1lLmxlbmd0aC0xO3Q8cjt0Kyspblt0XS5zZXRBdHRyaWJ1dGUoInN0b3AtY29sb3IiLEl0KGVbTWF0aC5taW4odCxpKV0uYykpLG5bdF0uc2V0QXR0cmlidXRlKCJvZmZzZXQiLGVbTWF0aC5taW4odCxpKV0ubyl9KHQsaS5zKSxPYmplY3Qua2V5cyhyZSkuZm9yRWFjaChlPT57aWYodm9pZCAwPT09aVtlXSlyZXR1cm47aWYoIm9iamVjdCI9PXR5cGVvZiByZVtlXSlyZXR1cm4gdm9pZCBPYmplY3Qua2V5cyhyZVtlXSkuZm9yRWFjaChuPT57aWYodm9pZCAwPT09aVtlXVtuXSlyZXR1cm47Y29uc3Qgcj1pW2VdW25dLHM9cmVbZV1bbl07dC5lLnNldEF0dHJpYnV0ZShzLHIpfSk7Y29uc3Qgbj0iZ3QiPT09ZT8ocj1pW2VdLEFycmF5LmlzQXJyYXkocik/Im1hdHJpeCgiK3Iuam9pbigiICIpKyIpIjoiIik6aVtlXTt2YXIgcjtjb25zdCBzPXJlW2VdO3QuZS5zZXRBdHRyaWJ1dGUocyxuKX0pLE90KGkucil9cmV0dXJuIm5vbmUifX1mdW5jdGlvbiBzZSh0LGUsbil7aWYoMD09PXQpcmV0dXJuIGU7aWYoMT09PXQpcmV0dXJuIG47aWYoZSYmbil7Y29uc3Qgcj1lLnQ7aWYocj09PW4udClzd2l0Y2goZS50KXtjYXNlImMiOnJldHVybnt0OnIsdjpldCh0LGUudixuLnYpfTtjYXNlImciOmlmKGUucj09PW4ucil7Y29uc3QgaT17dDpyLHM6b2UodCxlLnMsbi5zKSxyOmUucn07cmV0dXJuIGUuZ3QmJm4uZ3QmJihpLmd0PW50KHQsZS5ndCxuLmd0KSksZS5jPyhpLmM9USh0LGUuYyxuLmMpLGkucmQ9WCh0LGUucmQsbi5yZCkpOmUuZiYmKGkuZj1RKHQsZS5mLG4uZiksaS50bz1RKHQsZS50byxuLnRvKSksaX19aWYoImMiPT09ZS50JiYiZyI9PT1uLnR8fCJjIj09PW4udCYmImciPT09ZS50KXtjb25zdCByPSJjIj09PWUudD9lOm4saT0iZyI9PT1lLnQ/ey4uLmV9OnsuLi5ufSxzPWkucy5tYXAodD0+KHtjOnIudixvOnQub30pKTtyZXR1cm4gaS5zPSJjIj09PWUudD9vZSh0LHMsaS5zKTpvZSh0LGkucyxzKSxpfX1yZXR1cm4gSCh0LGUsbil9ZnVuY3Rpb24gb2UodCxlLG4pe2lmKGUubGVuZ3RoPT09bi5sZW5ndGgpcmV0dXJuIGUubWFwKChlLHIpPT51ZSh0LGUsbltyXSkpO2NvbnN0IHI9TWF0aC5tYXgoZS5sZW5ndGgsbi5sZW5ndGgpLGk9W107Zm9yKGxldCBzPTA7czxyO3MrKyl7Y29uc3Qgcj11ZSh0LGVbTWF0aC5taW4ocyxlLmxlbmd0aC0xKV0sbltNYXRoLm1pbihzLG4ubGVuZ3RoLTEpXSk7aS5wdXNoKHIpfXJldHVybiBpfWZ1bmN0aW9uIHVlKHQsZSxuKXtyZXR1cm57bzpLKHQsZS5vLG4ub3x8MCksYzpldCh0LGUuYyxuLmN8fHt9KX19ZnVuY3Rpb24gbGUodCl7cmV0dXJuIHQucmVwbGFjZSgvLWZpbGwtKFswLTldKykkLywodCxlKT0+Ii1maWxsLSIrKCtlKzEpKX1mdW5jdGlvbiBhZSh0LGUsbil7cmV0dXJuIDA9PT10P2U6MT09PXQ/bjp7Ymx1cjpaKHQsZS5ibHVyLG4uYmx1ciksb2Zmc2V0OlEodCxlLm9mZnNldCxuLm9mZnNldCksY29sb3I6ZXQodCxlLmNvbG9yLG4uY29sb3IpfX1jb25zdCBjZT17Ymx1cjpaLGJyaWdodG5lc3M6WCxjb250cmFzdDpYLCJkcm9wLXNoYWRvdyI6YWUsImlubmVyLXNoYWRvdyI6YWUsZ3JheXNjYWxlOlgsImh1ZS1yb3RhdGUiOkosaW52ZXJ0Olgsb3BhY2l0eTpYLHNhdHVyYXRlOlgsc2VwaWE6WH07ZnVuY3Rpb24gZmUodCxlLG4pe2lmKDA9PT10KXJldHVybiBlO2lmKDE9PT10KXJldHVybiBuO2NvbnN0IHI9ZS5sZW5ndGg7aWYociE9PW4ubGVuZ3RoKXJldHVybiBIKHQsZSxuKTtjb25zdCBpPVtdO2xldCBzO2ZvcihsZXQgbz0wO288cjtvKyspe2lmKGVbb10udHlwZSE9PW5bb10udHlwZSlyZXR1cm4gZTtpZihzPWNlW2Vbb10udHlwZV0sIXMpcmV0dXJuIEgodCxlLG4pO2kucHVzaCh7dHlwZTplLnR5cGUsdmFsdWU6cyh0LGVbb10udmFsdWUsbltvXS52YWx1ZSl9KX1yZXR1cm4gaX1jb25zdCBoZT17Ymx1cjp0PT50P2U9Pnt0LnNldEF0dHJpYnV0ZSgic3RkRGV2aWF0aW9uIixFdChlKSl9Om51bGwsYnJpZ2h0bmVzczoodCxlLG4pPT4odD1nZShuLGUpKT9lPT57ZT1rdChlKSx0Lm1hcCh0PT50LnNldEF0dHJpYnV0ZSgic2xvcGUiLGUpKX06bnVsbCxjb250cmFzdDoodCxlLG4pPT4odD1nZShuLGUpKT9lPT57Y29uc3Qgbj1rdCgoMS1lKS8yKTtlPWt0KGUpLHQubWFwKHQ9Pnt0LnNldEF0dHJpYnV0ZSgic2xvcGUiLGUpLHQuc2V0QXR0cmlidXRlKCJpbnRlcmNlcHQiLG4pfSl9Om51bGwsImRyb3Atc2hhZG93Iih0LGUsbil7Y29uc3Qgcj1uLmdldEVsZW1lbnRCeUlkKGUrIi1ibHVyIik7aWYoIXIpcmV0dXJuIG51bGw7Y29uc3QgaT1uLmdldEVsZW1lbnRCeUlkKGUrIi1vZmZzZXQiKTtpZighaSlyZXR1cm4gbnVsbDtjb25zdCBzPW4uZ2V0RWxlbWVudEJ5SWQoZSsiLWZsb29kIik7cmV0dXJuIHM/dD0+e3Iuc2V0QXR0cmlidXRlKCJzdGREZXZpYXRpb24iLEV0KHQuYmx1cikpLGkuc2V0QXR0cmlidXRlKCJkeCIsa3QodC5vZmZzZXQueCkpLGkuc2V0QXR0cmlidXRlKCJkeSIsa3QodC5vZmZzZXQueSkpLHMuc2V0QXR0cmlidXRlKCJmbG9vZC1jb2xvciIsSXQodC5jb2xvcikpfTpudWxsfSwiaW5uZXItc2hhZG93Iih0LGUsbil7Y29uc3Qgcj1uLmdldEVsZW1lbnRCeUlkKGUrIi1ibHVyIik7aWYoIXIpcmV0dXJuIG51bGw7Y29uc3QgaT1uLmdldEVsZW1lbnRCeUlkKGUrIi1vZmZzZXQiKTtpZighaSlyZXR1cm4gbnVsbDtjb25zdCBzPW4uZ2V0RWxlbWVudEJ5SWQoZSsiLWNvbG9yLW1hdHJpeCIpO3JldHVybiBzP3Q9PntyLnNldEF0dHJpYnV0ZSgic3RkRGV2aWF0aW9uIixFdCh0LmJsdXIpKSxpLnNldEF0dHJpYnV0ZSgiZHgiLGt0KHQub2Zmc2V0LngpKSxpLnNldEF0dHJpYnV0ZSgiZHkiLGt0KHQub2Zmc2V0LnkpKTtjb25zdCBlPVswLDAsMCwwLHQuY29sb3Iuci8yNTUsMCwwLDAsMCx0LmNvbG9yLmcvMjU1LDAsMCwwLDAsdC5jb2xvci5iLzI1NSwwLDAsMCx0LmNvbG9yLmEsMF07cy5zZXRBdHRyaWJ1dGUoInZhbHVlcyIsU3QoZSkpfTpudWxsfSxncmF5c2NhbGU6dD0+dD9lPT57dC5zZXRBdHRyaWJ1dGUoInZhbHVlcyIsU3QoZnVuY3Rpb24odCl7cmV0dXJuWy4yMTI2Ky43ODc0Kih0PTEtdCksLjcxNTItLjcxNTIqdCwuMDcyMi0uMDcyMip0LDAsMCwuMjEyNi0uMjEyNip0LC43MTUyKy4yODQ4KnQsLjA3MjItLjA3MjIqdCwwLDAsLjIxMjYtLjIxMjYqdCwuNzE1Mi0uNzE1Mip0LC4wNzIyKy45Mjc4KnQsMCwwLDAsMCwwLDEsMF19KGUpKSl9Om51bGwsImh1ZS1yb3RhdGUiOnQ9PnQ/ZT0+dC5zZXRBdHRyaWJ1dGUoInZhbHVlcyIsa3QoZSkpOm51bGwsaW52ZXJ0Oih0LGUsbik9Pih0PWdlKG4sZSkpP2U9PntlPWt0KGUpKyIgIitrdCgxLWUpLHQubWFwKHQ9PnQuc2V0QXR0cmlidXRlKCJ0YWJsZVZhbHVlcyIsZSkpfTpudWxsLG9wYWNpdHk6KHQsZSxuKT0+KHQ9bi5nZXRFbGVtZW50QnlJZChlKyItQSIpKT9lPT50LnNldEF0dHJpYnV0ZSgidGFibGVWYWx1ZXMiLCIwICIra3QoZSkpOm51bGwsc2F0dXJhdGU6dD0+dD9lPT50LnNldEF0dHJpYnV0ZSgidmFsdWVzIixrdChlKSk6bnVsbCxzZXBpYTp0PT50P2U9PnQuc2V0QXR0cmlidXRlKCJ2YWx1ZXMiLFN0KGZ1bmN0aW9uKHQpe3JldHVyblsuMzkzKy42MDcqKHQ9MS10KSwuNzY5LS43NjkqdCwuMTg5LS4xODkqdCwwLDAsLjM0OS0uMzQ5KnQsLjY4NisuMzE0KnQsLjE2OC0uMTY4KnQsMCwwLC4yNzItLjI3Mip0LC41MzQtLjUzNCp0LC4xMzErLjg2OSp0LDAsMCwwLDAsMCwxLDBdfShlKSkpOm51bGx9O2NvbnN0IGRlPVsiUiIsIkciLCJCIl07ZnVuY3Rpb24gZ2UodCxlKXtjb25zdCBuPWRlLm1hcChuPT50LmdldEVsZW1lbnRCeUlkKGUrIi0iK24pfHxudWxsKTtyZXR1cm4tMSE9PW4uaW5kZXhPZihudWxsKT9udWxsOm59dmFyIHBlPXtmaWxsOmllLCJmaWxsLW9wYWNpdHkiOlp0LHN0cm9rZTppZSwic3Ryb2tlLW9wYWNpdHkiOlp0LCJzdHJva2Utd2lkdGgiOlF0LCJzdHJva2UtZGFzaG9mZnNldCI6ZWUsInN0cm9rZS1kYXNoYXJyYXkiOnRlLG9wYWNpdHk6WnQsdHJhbnNmb3JtOmZ1bmN0aW9uKHQsZSxuLHIpe2lmKCEodD1mdW5jdGlvbih0LGUpe2lmKCF0fHwib2JqZWN0IiE9dHlwZW9mIHQpcmV0dXJuIG51bGw7bGV0IG49ITE7Zm9yKGNvbnN0IHIgaW4gdCl0Lmhhc093blByb3BlcnR5KHIpJiYodFtyXSYmdFtyXS5sZW5ndGg/KHRbcl0uZm9yRWFjaCh0PT57dC5lJiYodC5lPWUodC5lKSl9KSxuPSEwKTpkZWxldGUgdFtyXSk7cmV0dXJuIG4/dDpudWxsfSh0LHIpKSlyZXR1cm4gbnVsbDtjb25zdCBpPShyLGkscyxvPW51bGwpPT50W3JdP24oaSx0W3JdLHMpOmUmJmVbcl0/ZVtyXTpvO3JldHVybiBlJiZlLmEmJnQubz9lPT57Y29uc3Qgcj1uKGUsdC5vLEd0KTtyZXR1cm4gSHQucmVjb21wb3NlU2VsZihyLGkoInIiLGUsSiwwKStyLmEsaSgiayIsZSxRKSxpKCJzIixlLFEpLGkoInQiLGUsUSkpLnRvU3RyaW5nKCl9OnQ9Pkh0LnJlY29tcG9zZVNlbGYoaSgibyIsdCx6dCxudWxsKSxpKCJyIix0LEosMCksaSgiayIsdCxRKSxpKCJzIix0LFEpLGkoInQiLHQsUSkpLnRvU3RyaW5nKCl9LCIjZmlsdGVyIjpmdW5jdGlvbih0LGUsbixyLGkscyxvLHUpe2lmKCFlLml0ZW1zfHwhdHx8IXQubGVuZ3RoKXJldHVybiBudWxsO2NvbnN0IGw9ZnVuY3Rpb24odCxlKXt0PXQubWFwKHQ9PnQmJmhlW3RbMF1dPyhlLmdldEVsZW1lbnRCeUlkKHRbMV0pLGhlW3RbMF1dKGUuZ2V0RWxlbWVudEJ5SWQodFsxXSksdFsxXSxlKSk6bnVsbCk7Y29uc3Qgbj10Lmxlbmd0aDtyZXR1cm4gZT0+e2ZvcihsZXQgcj0wO3I8bjtyKyspdFtyXSYmdFtyXShlW3JdLnZhbHVlKX19KGUuaXRlbXMsdSk7cmV0dXJuIGw/KHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5tYXAodD0+KHQuZT1lKHQuZSksdCkpfSh0LHIpLGU9PntsKG4oZSx0LGZlKSl9KTpudWxsfSwiI2xpbmUiOkt0LHBvaW50czpYdCxkOkp0LHI6UXQsIiNzaXplIjpCdCwiI3JhZGl1cyI6TXQsXyh0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpc1t0W25dXT1lO2Vsc2UgdGhpc1t0XT1lfX07Y29uc3QgeWU9e2N1cnJlbnRUaW1lOiJvZmZzZXQiLGR1cmF0aW9uOiJkdXJhdGlvbiIsaGFzRW5kZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFjaGVkVG9FbmQoKX0saXNBbHRlcm5hdGU6ImFsdGVybmF0ZSIsaXNQbGF5aW5nOiJfcnVubmluZyIsaXNSb2xsaW5nQmFjazoiX3JvbGxpbmdCYWNrIixzdGF0ZTpmdW5jdGlvbih0LGUpe3JldHVybiBlLmlzUGxheWluZz9lLmlzUm9sbGluZ0JhY2s/InJvbGxiYWNrIjoicGxheWluZyI6ZS5oYXNFbmRlZD8iZW5kZWQiOiJwYXVzZWQifSx0b3RhbFRpbWU6Im1heEZpbml0ZUR1cmF0aW9uIixpdGVyYXRpb25zOiJpdGVyYXRpb25zIixkaXJlY3Rpb246ImRpcmVjdGlvbiIsZmlsbDoiZmlsbCIsaXNSZXZlcnNlZDpmdW5jdGlvbih0LGUpe3JldHVybi0xPT09ZS5kaXJlY3Rpb259LGlzQmFja3dhcmRzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuLTE9PT1lLmZpbGx9LGlzSW5maW5pdGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gMD09PWUuaXRlcmF0aW9uc30sc3BlZWQ6InNwZWVkIixmcHM6ImZwcyJ9LG1lPXtkZXN0cnVjdDoiZGVzdHJ1Y3QiLHBhdXNlOiJwYXVzZSIscGxheTpmdW5jdGlvbih0LGUpe3JldHVybiB2ZSh0LGUuaGFzRW5kZWQ/InJlc3RhcnQiOiJwbGF5IixlKX0scmVzdGFydDoicmVzdGFydCIscmV2ZXJzZTpmdW5jdGlvbih0LGUpe3JldHVybiB2ZSh0LCJyZXZlcnNlIixlLFshMF0pfSxzZWVrOiJzZWVrIixzZWVrQnk6InNlZWtCeSIsc2Vla1RvOiJzZWVrVG8iLHN0b3A6InN0b3AiLHRvZ2dsZToidG9nZ2xlIix0b2dnbGVQbGF5OiJ0b2dnbGUiLHNldDoic2V0In07ZnVuY3Rpb24gdmUodCxlLG4scj1bXSl7cmV0dXJuIGZ1bmN0aW9uKCl7Y29uc3QgaT1bLi4uYXJndW1lbnRzXTtyZXR1cm4gaS51bnNoaWZ0KC4uLnIpLHRbZV0uY2FsbCh0LC4uLmkpLG59fWNsYXNzIGJle2NvbnN0cnVjdG9yKHQpe2NvbnN0IGU9e30sbj1bIm9uIiwib2ZmIl0scj17Z2V0OmZ1bmN0aW9uKHQscixpKXtyZXR1cm4geWVbcl0/ImZ1bmN0aW9uIj09dHlwZW9mIHllW3JdP3llW3JdLmNhbGwodCx0LGkpOnRbeWVbcl1dOm1lW3JdPyJmdW5jdGlvbiI9PXR5cGVvZiBtZVtyXT9tZVtyXS5jYWxsKHQsdCxpKTp2ZSh0LG1lW3JdLGkpOi0xIT09bi5pbmRleE9mKHIpP2Vbcl06InJlYWR5Ij09PXI/dD0+KHQmJnQuY2FsbChpLGkpLGkpOnZvaWQgMH0sc2V0OmZ1bmN0aW9uKHQscixpKXtyZXR1cm4tMSE9PW4uaW5kZXhPZihyKSYmKGVbcl09aSl9LG93bktleXM6ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKHllKX0saGFzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMCE9PXllW2VdfX07aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiBuZXcgUHJveHkodCxyKTtjb25zdCBpPU9iamVjdC5rZXlzKHllKS5jb25jYXQoT2JqZWN0LmtleXMobWUpKS5jb25jYXQobikscz17fTtyZXR1cm4gaS5mb3JFYWNoKGU9Pntjb25zdCBpPXtlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMSxnZXQ6KCk9PnIuZ2V0KHQsZSxzKX07LTEhPT1uLmluZGV4T2YoZSkmJihpLnNldD1uPT5yLnNldCh0LGUsbikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLGUsaSl9KSxzfX1mdW5jdGlvbiB3ZSh0KXt0fHwodD10aGlzKTtsZXQgZT17fTt0aGlzLm9uPWZ1bmN0aW9uKHQsbixyPSExKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgbiYmKHQuc3BsaXQoL1ssIF0rL2cpLmZvckVhY2godD0+KGVbdF09ZVt0XXx8W10scj9lW3RdLnVuc2hpZnQobik6ZVt0XS5wdXNoKG4pKSksITApfSx0aGlzLm9mZj1mdW5jdGlvbih0LG4pe2ZvcihsZXQgciBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkocikmJnIuc3Vic3RyKDAsdC5sZW5ndGgpPT09dClpZihuKWZvcihsZXQgdD0wO3Q8ZVtyXS5sZW5ndGg7dCsrKWVbcl1bdF09PT1uJiYoZVtyXVt0XT1udWxsKTtlbHNlIGVbcl09bnVsbH0sdGhpcy50cmlnZ2VyPWZ1bmN0aW9uKCl7bGV0IG4sW3IsLi4uaV09Wy4uLmFyZ3VtZW50c107dDpmb3IobGV0IHMgaW4gZSlpZihlLmhhc093blByb3BlcnR5KHMpJiZlW3NdJiYocz09PXJ8fHMuc3Vic3RyKDAsci5sZW5ndGgrMSk9PT1yKyIuIikpZm9yKGxldCByPTA7cjwoZVtzXXx8W10pLmxlbmd0aDtyKyspaWYoZVtzXVtyXSYmKG49ZVtzXVtyXS5hcHBseSh0LGkpLCExPT09bikpYnJlYWsgdDtyZXR1cm4gbn19bGV0IHhlPWZ1bmN0aW9uKHQsZSxuPW4pe2xldCByPSExLGk9bnVsbDtyZXR1cm4gZnVuY3Rpb24ocyl7ciYmY2xlYXJUaW1lb3V0KHIpLHI9c2V0VGltZW91dCgoKT0+ZnVuY3Rpb24oKXtsZXQgcz0wLG89bi5pbm5lckhlaWdodCx1PTAsbD1uLmlubmVyV2lkdGgsYT10LnBhcmVudE5vZGU7Zm9yKDthIGluc3RhbmNlb2YgRWxlbWVudDspe2xldCB0PW4uZ2V0Q29tcHV0ZWRTdHlsZShhKTtpZigidmlzaWJsZSIhPT10Lm92ZXJmbG93WXx8InZpc2libGUiIT09dC5vdmVyZmxvd1gpe2xldCBlPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7InZpc2libGUiIT09dC5vdmVyZmxvd1kmJihzPU1hdGgubWF4KHMsZS50b3ApLG89TWF0aC5taW4obyxlLmJvdHRvbSkpLCJ2aXNpYmxlIiE9PXQub3ZlcmZsb3dYJiYodT1NYXRoLm1heCh1LGUubGVmdCksbD1NYXRoLm1pbihsLGUucmlnaHQpKX1pZihhPT09YS5wYXJlbnROb2RlKWJyZWFrO2E9YS5wYXJlbnROb2RlfXI9ITE7bGV0IGM9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPU1hdGgubWluKGMuaGVpZ2h0LE1hdGgubWF4KDAscy1jLnRvcCkpLGg9TWF0aC5taW4oYy5oZWlnaHQsTWF0aC5tYXgoMCxjLmJvdHRvbS1vKSksZD1NYXRoLm1pbihjLndpZHRoLE1hdGgubWF4KDAsdS1jLmxlZnQpKSxnPU1hdGgubWluKGMud2lkdGgsTWF0aC5tYXgoMCxjLnJpZ2h0LWwpKSxwPShjLmhlaWdodC1mLWgpL2MuaGVpZ2h0LHk9KGMud2lkdGgtZC1nKS9jLndpZHRoLG09TWF0aC5yb3VuZChwKnkqMTAwKTtudWxsIT09aSYmaT09PW18fChpPW0sZShtKSl9KCksMTAwKX19O2NsYXNzIEFle2NvbnN0cnVjdG9yKHQsZSxuKXtjb25zdCByPWZ1bmN0aW9uKHQpe3ZhciBlO2NvbnN0IG49dCYmMT09PShudWxsPT09KGU9dC5vd25lckRvY3VtZW50KXx8dm9pZCAwPT09ZXx8bnVsbD09PShlPWUuY2hpbGROb2Rlcyl8fHZvaWQgMD09PWU/dm9pZCAwOmUubGVuZ3RoKSYmd2luZG93LnBhcmVudCE9PXdpbmRvdyxyPXtlbDp0LHdpbmRvdzp3aW5kb3d9O2lmKCFuKXJldHVybiByO2xldCBpO3RyeXtpPXdpbmRvdy5wYXJlbnQuZG9jdW1lbnR9Y2F0Y2godCl7cmV0dXJuIHJ9cmV0dXJuIHIud2luZG93PXdpbmRvdy5wYXJlbnQsci5lbD1BcnJheS5mcm9tKGkucXVlcnlTZWxlY3RvckFsbCgiaWZyYW1lLG9iamVjdCIpKS5maWx0ZXIodD0+dC5jb250ZW50V2luZG93PT09d2luZG93KVswXXx8ci5lbCxyfSh0KTtlPU1hdGgubWF4KDEsZXx8MSksZT1NYXRoLm1pbihlLDEwMCksdGhpcy5lbD1yLmVsLHRoaXMuX2hhbmRsZXJzPVtdLHRoaXMub25UaHJlc2hvbGRDaGFuZ2U9biYmbi5jYWxsP246KCk9Pnt9LHRoaXMudGhyZXNob2xkUGVyY2VudD1lfHwxLHRoaXMuY3VycmVudFZpc2liaWxpdHk9bnVsbCx0aGlzLnZpc2liaWxpdHlDYWxjdWxhdG9yPXhlKHRoaXMuZWwsdGhpcy5vblZpc2liaWxpdHlVcGRhdGUuYmluZCh0aGlzKSxyLndpbmRvdyksdGhpcy5iaW5kU2Nyb2xsV2F0Y2hlcnMoKSx0aGlzLnZpc2liaWxpdHlDYWxjdWxhdG9yKCl9YmluZFNjcm9sbFdhdGNoZXJzKCl7bGV0IHQ9dGhpcy5lbC5wYXJlbnROb2RlO2Zvcig7dCYmKHRoaXMuX2hhbmRsZXJzLnB1c2goe2VsZW1lbnQ6dCxldmVudDoic2Nyb2xsIixoYW5kbGVyOnRoaXMudmlzaWJpbGl0eUNhbGN1bGF0b3J9KSx0LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy52aXNpYmlsaXR5Q2FsY3VsYXRvciksdCE9PXQucGFyZW50Tm9kZSYmdCE9PWRvY3VtZW50KTspdD10LnBhcmVudE5vZGV9b25WaXNpYmlsaXR5VXBkYXRlKHQpe2xldCBlPXRoaXMuY3VycmVudFZpc2liaWxpdHk+PXRoaXMudGhyZXNob2xkUGVyY2VudCxuPXQ+PXRoaXMudGhyZXNob2xkUGVyY2VudDtpZihudWxsPT09dGhpcy5jdXJyZW50VmlzaWJpbGl0eXx8ZSE9PW4pcmV0dXJuIHRoaXMuY3VycmVudFZpc2liaWxpdHk9dCx2b2lkIHRoaXMub25UaHJlc2hvbGRDaGFuZ2Uobik7dGhpcy5jdXJyZW50VmlzaWJpbGl0eT10fWRlc3RydWN0KCl7dGhpcy5faGFuZGxlcnMuZm9yRWFjaCh0PT57dC5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodC5ldmVudCx0LmhhbmRsZXIpfSl9fWNsYXNzIF9le3N0YXRpYyBhZGp1c3RMaW5rKHQpe3ZhciBlO2NvbnN0IG49dCYmMT09PShudWxsPT09KGU9dC5vd25lckRvY3VtZW50KXx8dm9pZCAwPT09ZXx8bnVsbD09PShlPWUuY2hpbGROb2Rlcyl8fHZvaWQgMD09PWU/dm9pZCAwOmUubGVuZ3RoKSYmd2luZG93LnBhcmVudCE9PXdpbmRvdyxyPW51bGw9PXQ/dm9pZCAwOnQuZmlyc3RFbGVtZW50Q2hpbGQ7biYmciYmImEiPT09ci50YWdOYW1lJiYhci5nZXRBdHRyaWJ1dGUoInRhcmdldCIpJiZyLnNldEF0dHJpYnV0ZU5TKG51bGwsInRhcmdldCIsIl9wYXJlbnQiKX1zdGF0aWMgYXV0b1BsYXkodCxlLG4scj1bXSl7aWYoImNsaWNrIj09PW4uc3RhcnQpe2NvbnN0IGk9KCk9Pntzd2l0Y2gobi5jbGljayl7Y2FzZSJmcmVlemUiOnJldHVybiF0Ll9ydW5uaW5nJiZ0LnJlYWNoZWRUb0VuZCgpP3QucmVzdGFydCgpOnQudG9nZ2xlKCk7Y2FzZSJyZXN0YXJ0IjpyZXR1cm4gdC5vZmZzZXQ+MD90LnJlc3RhcnQoKTp0LnBsYXkoKTtjYXNlInJldmVyc2UiOnJldHVybiB0Ll9ydW5uaW5nP3QucmV2ZXJzZSgpOnQucmVhY2hlZFRvRW5kKCk/MT09PXQuZmlsbD90LnJldmVyc2UoITApOnQucmVzdGFydCgpOnQucGxheSgpO2RlZmF1bHQ6aWYodC5fcnVubmluZylyZXR1cm47cmV0dXJuIHQucmVhY2hlZFRvRW5kKCk/dC5yZXN0YXJ0KCk6dC5wbGF5KCl9fTtyZXR1cm4gci5wdXNoKHtlbGVtZW50OmUsZXZlbnQ6ImNsaWNrIixoYW5kbGVyOml9KSx2b2lkIGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGkpfWlmKCJob3ZlciI9PT1uLnN0YXJ0KXtjb25zdCBpPSgpPT50LnJlYWNoZWRUb0VuZCgpP3QucmVzdGFydCgpOnQuX3JvbGxpbmdCYWNrP3QucmV2ZXJzZSgpOnQucGxheSgpO3IucHVzaCh7ZWxlbWVudDplLGV2ZW50OiJtb3VzZWVudGVyIixoYW5kbGVyOml9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGkpO2NvbnN0IHM9KCk9Pntzd2l0Y2gobi5ob3Zlcil7Y2FzZSJmcmVlemUiOnJldHVybiB0LnBhdXNlKCk7Y2FzZSJyZXNldCI6cmV0dXJuIHQuc3RvcCgpO2Nhc2UicmV2ZXJzZSI6aWYodC5yZXZlcnNlKCksdC5fcnVubmluZylyZXR1cm47cmV0dXJuIHQucGxheSgpO2RlZmF1bHQ6cmV0dXJufX07cmV0dXJuIHIucHVzaCh7ZWxlbWVudDplLGV2ZW50OiJtb3VzZWxlYXZlIixoYW5kbGVyOnN9KSx2b2lkIGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIscyl9aWYoInNjcm9sbCI9PT1uLnN0YXJ0KXtjb25zdCBpPW5ldyBBZShlLG4uc2Nyb2xsfHwyNSxmdW5jdGlvbihlKXtlP3QucmVhY2hlZFRvRW5kKCk/dC5yZXN0YXJ0KCk6dC5wbGF5KCk6dC5wYXVzZSgpfSk7cmV0dXJuIHZvaWQgci5wdXNoKHtjYWxsYmFjazooKT0+aS5kZXN0cnVjdCgpfSl9InByb2dyYW1tYXRpYyIhPT1uLnN0YXJ0JiZ0LnBsYXkoKX19Y29uc3Qga2U9ITAsU2U9WyJpdGVyYXRpb25zIiwic3BlZWQiLCJmcHMiLCJkaXJlY3Rpb24iLCJmaWxsIiwiYWx0ZXJuYXRlIl07Y2xhc3MgRWUgZXh0ZW5kcyBfdHtjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLl9oYW5kbGVycz1bXX1zdGF0aWMgYnVpbGQodCl7dmFyIGUsbjtsZXQgcj1zdXBlci5idWlsZCh0LHBlKTtpZighcilyZXR1cm4gbnVsbDtsZXR7ZWw6aSxvcHRpb25zOnMscGxheWVyOm99PXI7Y29uc3QgdT1uZXcgYmUobyksbD1uZXcgd2UodSk7dS5vbj1sLm9uLHUub2ZmPWwub2ZmLG8udHJpZ2dlcj1sLnRyaWdnZXI7Y29uc3QgYT1udWxsPT1pfHxudWxsPT09KGU9aS5zdmdhdG9yUGxheWVyKXx8dm9pZCAwPT09ZXx8bnVsbD09PShlPWUucmVhZHkpfHx2b2lkIDA9PT1lfHxudWxsPT09KG49ZS5jYWxsKXx8dm9pZCAwPT09bj92b2lkIDA6bi5jYWxsKGUpO2kuc3ZnYXRvclBsYXllcj11LF9lLmFkanVzdExpbmsoaSksX2UuYXV0b1BsYXkobyxpLHMsby5faGFuZGxlcnMpLGZ1bmN0aW9uKHQsZSxuKXtsZXQgcjsiZnVuY3Rpb24iPT10eXBlb2YgRXZlbnQ/cj1uZXcgRXZlbnQoInJlYWR5Iik6KHI9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iiksci5pbml0RXZlbnQoInJlYWR5IiwhMCwhMCkpO2lmKHQuZGlzcGF0Y2hFdmVudChyKSwhbnx8IW4ubGVuZ3RoKXJldHVybjtuLmZvckVhY2godD0+ZS5yZWFkeSh0KSl9KGksaS5zdmdhdG9yUGxheWVyLGEpfXBsYXkodD10cnVlKXtjb25zdCBlPXN1cGVyLnBsYXkoKTtyZXR1cm4gdD09PWtlJiZ0aGlzLnRyaWdnZXIoInBsYXkiLHRoaXMub2Zmc2V0KSxlfXBhdXNlKHQ9ITEsZT10cnVlKXtjb25zdCBuPXN1cGVyLnBhdXNlKCk7cmV0dXJuIGU9PT1rZSYmdGhpcy50cmlnZ2VyKHQ/ImVuZCI6InBhdXNlIix0aGlzLm9mZnNldCksbn1yZXN0YXJ0KCl7Y29uc3QgdD1zdXBlci5yZXN0YXJ0KCExKTtyZXR1cm4gdGhpcy50cmlnZ2VyKCJyZXN0YXJ0Iix0aGlzLm9mZnNldCksdH1zdG9wKHQ9dHJ1ZSl7Y29uc3QgZT1zdXBlci5zdG9wKCk7cmV0dXJuIHQ9PT1rZSYmdGhpcy50cmlnZ2VyKCJzdG9wIix0aGlzLm9mZnNldCksZX1fYXBwbHkodCxlPXt9LG49dHJ1ZSl7Y29uc3Qgcj1zdXBlci5fYXBwbHkodCk7aWYobj09PWtlKXtjb25zdCBlPSgpPT50aGlzLnRyaWdnZXIoImtleWZyYW1lIix0KTt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpfXJldHVybiByfXNlZWtUbyh0KXtjb25zdCBlPXRoaXMuX3J1bm5pbmc7dmFyIG4scixpO2UmJnRoaXMucGF1c2UoITEsITEpLHRoaXMub2Zmc2V0PXRoaXMuaXRlcmF0aW9ucz4wPyhuPXQscj0wLGk9dGhpcy5tYXhGaW5pdGVEdXJhdGlvbixuPHI/cjpuPmk/aTpuKTpNYXRoLm1heCh0LDApLHRoaXMuX2FwcGx5KHRoaXMub2Zmc2V0KSxlJiZ0aGlzLnBsYXkoITEpfXNlZWsodCl7cmV0dXJuIHRoaXMuc2Vla1RvKE1hdGgucm91bmQodC8xMDAqdGhpcy5tYXhGaW5pdGVEdXJhdGlvbikpfXNlZWtCeSh0KXtyZXR1cm4gdGhpcy5zZWVrVG8odGhpcy5vZmZzZXQrdCl9c2V0KHQsZSl7aWYoIVNlLmluY2x1ZGVzKHQpKXJldHVybjtjb25zdCBuPXRoaXMuX3J1bm5pbmc7biYmdGhpcy5wYXVzZSghMSwhMSksdGhpcy5fc2V0dGluZ3NbdF09ZSxuP3RoaXMucGxheSghMSk6dGhpcy5fYXBwbHkodGhpcy5vZmZzZXQse30sITEpfWRlc3RydWN0KCl7dGhpcy5zdG9wKCksdGhpcy5faGFuZGxlcnMuZm9yRWFjaCh0PT57dC5lbGVtZW50P3QuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHQuZXZlbnQsdC5oYW5kbGVyKTp0LmNhbGxiYWNrJiZ0LmNhbGxiYWNrLmNhbGwmJnQuY2FsbGJhY2suY2FsbCgpfSk7Y29uc3QgdD0oKT0+e30sZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykpO2UucHVzaCguLi5PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSksZS5mb3JFYWNoKGU9PnsiZnVuY3Rpb24iPT10eXBlb2YgdGhpc1tlXT90aGlzW2VdPXQ6ZGVsZXRlIHRoaXNbZV19KX19cmV0dXJuIEVlLmluaXQoKSxFZX0pOwooZnVuY3Rpb24ocyxpLG8sdyxkLGEsYil7KGE9QXJyYXkuZnJvbShkLnF1ZXJ5U2VsZWN0b3JBbGwoJ3N2ZyMnICsgaS5yb290KSkuZmlsdGVyKG49PiAhbi5zdmdhdG9yUGxheWVyKVswXXx8e30pLnN2Z2F0b3JQbGF5ZXI9e3JlYWR5OihmdW5jdGlvbihhKXtiPVtdO3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gYz8oYi5wdXNoKGMpLGEuc3ZnYXRvclBsYXllcik6Yn19KShhKX07d1tvXT13W29dfHx7fTt3W29dW3NdPXdbb11bc118fFtdO3dbb11bc10ucHVzaChpKTt9KSgnOTFjODBkNzcnLHsicm9vdCI6ImVoS0JWRzJUalh0MSIsInZlcnNpb24iOiIyMDI1LTA0LTA3IiwiYW5pbWF0aW9ucyI6W3siZWxlbWVudHMiOnsiZWhLQlZHMlRqWHQzIjp7InN0cm9rZS1kYXNob2Zmc2V0IjpbeyJ0IjoxMDAsInYiOjkwNi45MX0seyJ0Ijo3MDAsInYiOjEwfSx7InQiOjExMDAsInYiOi05NDB9XX0sImVoS0JWRzJUalh0NCI6eyJvcGFjaXR5IjpbeyJ0IjoxNDAwLCJ2IjowLjV9LHsidCI6MTgwMCwidiI6MH1dLCJzdHJva2UtZGFzaG9mZnNldCI6W3sidCI6ODAwLCJ2Ijo5MDYuOTF9LHsidCI6MTQwMCwidiI6MTB9LHsidCI6MTgwMCwidiI6LTk0MH1dfSwiZWhLQlZHMlRqWHQ1Ijp7Im9wYWNpdHkiOlt7InQiOjIyMDAsInYiOjF9LHsidCI6MzEwMCwidiI6MH1dLCJzdHJva2UtZGFzaG9mZnNldCI6W3sidCI6MTQwMCwidiI6MjIxNC42Mn0seyJ0IjoyMjAwLCJ2Ijo0NDI5fSx7InQiOjMxMDAsInYiOjY2MjB9XX0sImVoS0JWRzJUalh0NiI6eyJvcGFjaXR5IjpbeyJ0IjoyNzAwLCJ2IjoxfSx7InQiOjM1MDAsInYiOjB9XSwic3Ryb2tlLWRhc2hvZmZzZXQiOlt7InQiOjIwMDAsInYiOjIyMTQuNjJ9LHsidCI6MjcwMCwidiI6MH0seyJ0IjozNTAwLCJ2IjotMjIxNC42Mn1dfSwiZWhLQlZHMlRqWHQ3Ijp7Im9wYWNpdHkiOlt7InQiOjE5MDAsInYiOjF9LHsidCI6MjMwMCwidiI6MH1dLCJzdHJva2UtZGFzaG9mZnNldCI6W3sidCI6MTAwMCwidiI6OTAyLjl9LHsidCI6MTQwMCwidiI6LTMwfSx7InQiOjE5MDAsInYiOi0zMH0seyJ0IjoyMzAwLCJ2IjotOTIwfV19LCJlaEtCVkcyVGpYdDgiOnsib3BhY2l0eSI6W3sidCI6MjQwMCwidiI6MX0seyJ0IjoyODAwLCJ2IjowfV0sInN0cm9rZS1kYXNob2Zmc2V0IjpbeyJ0IjoxNTAwLCJ2Ijo1OTQuMTl9LHsidCI6MjAwMCwidiI6MH0seyJ0IjoyNDAwLCJ2IjowfSx7InQiOjI4MDAsInYiOi01OTB9XX0sImVoS0JWRzJUalh0OSI6eyJ0cmFuc2Zvcm0iOnsiZGF0YSI6eyJ0Ijp7IngiOi00NzcuOTk5OTYyLCJ5IjotNDgzLjk5OTkyNH19LCJrZXlzIjp7Im8iOlt7InQiOjIwMDAsInYiOnsieCI6MTM4NC41Mzk4NjMsInkiOjU0Mi43NTU2NjMsInR5cGUiOiJjb3JuZXIifX0seyJ0IjoyMzAwLCJ2Ijp7IngiOjEzODQuNTM5ODYzLCJ5Ijo1NDIuNzU1NjYzLCJ0eXBlIjoiY29ybmVyIn19LHsidCI6NDkwMCwidiI6eyJ4IjoxMzg0LjUzOTg2MywieSI6NTQyLjc1NTY2MywidHlwZSI6ImNvcm5lciJ9fSx7InQiOjU0MDAsInYiOnsieCI6MTM4NC41Mzk4NjMsInkiOjYwMS43NTU2NjMsInR5cGUiOiJjb3JuZXIifX1dLCJrIjpbeyJ0IjoyMDAwLCJ2Ijp7IngiOjAsInkiOjB9fSx7InQiOjIzMDAsInYiOnsieCI6MCwieSI6MH19LHsidCI6NDkwMCwidiI6eyJ4IjowLCJ5IjowfX0seyJ0Ijo1NDAwLCJ2Ijp7IngiOjAsInkiOjB9fV0sInMiOlt7InQiOjIwMDAsInYiOnsieCI6MC45NTcxMTQsInkiOjAuOTU3MTE0fX0seyJ0IjoyMzAwLCJ2Ijp7IngiOjAuOTU3MTE0LCJ5IjowLjk1NzExNH19LHsidCI6NDkwMCwidiI6eyJ4IjowLjk1NzExNCwieSI6MC45NTcxMTR9fSx7InQiOjU0MDAsInYiOnsieCI6MC45NTcxMTQsInkiOjAuNTQ3Mjd9fV19fSwib3BhY2l0eSI6W3sidCI6MjAwMCwidiI6MH0seyJ0IjoyMzAwLCJ2IjoxfSx7InQiOjQ5MDAsInYiOjF9LHsidCI6NTEwMCwidiI6MH1dLCIjZmlsdGVyIjp7ImtleXMiOlt7InQiOjIwMDAsInYiOlt7InR5cGUiOiJkcm9wLXNoYWRvdyIsInZhbHVlIjp7ImJsdXIiOnsieCI6MTIwLCJ5IjoxMjB9LCJvZmZzZXQiOnsieCI6MCwieSI6MH0sImNvbG9yIjp7InIiOjIxMiwiZyI6MTM1LCJiIjoyNDcsImEiOjAuM319fV19LHsidCI6MjMwMCwidiI6W3sidHlwZSI6ImRyb3Atc2hhZG93IiwidmFsdWUiOnsiYmx1ciI6eyJ4IjoxMjAsInkiOjEyMH0sIm9mZnNldCI6eyJ4IjowLCJ5IjowfSwiY29sb3IiOnsiciI6MjEyLCJnIjoxMzUsImIiOjI0NywiYSI6MC4zfX19XX0seyJ0Ijo0OTAwLCJ2IjpbeyJ0eXBlIjoiZHJvcC1zaGFkb3ciLCJ2YWx1ZSI6eyJibHVyIjp7IngiOjEyMCwieSI6MTIwfSwib2Zmc2V0Ijp7IngiOjAsInkiOjB9LCJjb2xvciI6eyJyIjoyMTIsImciOjEzNSwiYiI6MjQ3LCJhIjowLjN9fX1dfSx7InQiOjU0MDAsInYiOlt7InR5cGUiOiJkcm9wLXNoYWRvdyIsInZhbHVlIjp7ImJsdXIiOnsieCI6MTIwLCJ5IjoxMjB9LCJvZmZzZXQiOnsieCI6MCwieSI6MH0sImNvbG9yIjp7InIiOjIxMiwiZyI6MTM1LCJiIjoyNDcsImEiOjAuM319fV19XSwiZGF0YSI6eyJpdGVtcyI6W1siZHJvcC1zaGFkb3ciLCJlaEtCVkcyVGpYdDktZmlsdGVyLWRyb3Atc2hhZG93LTAiXV19fX0sImVoS0JWRzJUalh0MTYiOnsidHJhbnNmb3JtIjp7ImRhdGEiOnsiciI6OTB9LCJrZXlzIjp7Im8iOlt7InQiOjQ5MDAsInYiOnsieCI6MTM4NC42MTQ2MDIsInkiOjU0Mi43NTU2NywidHlwZSI6ImNvcm5lciJ9fSx7InQiOjU0MDAsInYiOnsieCI6MTM4NC42MTQ2MDIsInkiOjYwMi43NTU2NywidHlwZSI6ImNvcm5lciJ9fV0sImsiOlt7InQiOjQ5MDAsInYiOnsieCI6MCwieSI6MH19LHsidCI6NTQwMCwidiI6eyJ4IjowLCJ5IjowfX1dLCJzIjpbeyJ0Ijo0OTAwLCJ2Ijp7IngiOjAuOTQ0NjM5LCJ5IjowLjk0NDYzOX19LHsidCI6NTQwMCwidiI6eyJ4IjowLjYxMTM0MywieSI6MS4wNjQwNTh9fV19fSwib3BhY2l0eSI6W3sidCI6NDkwMCwidiI6MX0seyJ0Ijo1NDAwLCJ2IjowfSx7InQiOjU0MjAsInYiOjB9XSwic3Ryb2tlLXdpZHRoIjpbeyJ0Ijo0OTAwLCJ2Ijo4OH0seyJ0Ijo1NDAwLCJ2IjozfV0sInN0cm9rZS1kYXNob2Zmc2V0IjpbeyJ0IjozNTAwLCJ2IjoyMDU3LjY2fSx7InQiOjQyMDAsInYiOjEyODB9LHsidCI6NDcwMCwidiI6MTM1MH0seyJ0Ijo1NDAwLCJ2IjowfV19LCJlaEtCVkcyVGpYdDE3Ijp7InRyYW5zZm9ybSI6eyJrZXlzIjp7Im8iOlt7InQiOjQ5MDAsInYiOnsieCI6MTM4NC45OTk5OTksInkiOjU0MywidHlwZSI6ImNvcm5lciJ9fSx7InQiOjU0MDAsInYiOnsieCI6MTM4NC45OTk5OTksInkiOjYwMywidHlwZSI6ImN1c3AiLCJlbmQiOnsieCI6MTM4My42NDE3ODcsInkiOjY0Ni41NzAxODl9fX0seyJ0Ijo1OTAwLCJ2Ijp7IngiOjEzODQuOTk5OTk5LCJ5Ijo3MTQuMTc3MTczLCJ0eXBlIjoiY3VzcCIsInN0YXJ0Ijp7IngiOjEzODQuMjE4ODM5LCJ5Ijo2OTkuNjk3NDc2fX19LHsidCI6NjM1MCwidiI6eyJ4IjoxMzg0Ljc4Njk4NywieSI6NzI5LjIyODE0OSwidHlwZSI6ImNvcm5lciJ9fSx7InQiOjY2NzAsInYiOnsieCI6MTM4NC43ODY5ODcsInkiOjYzNi45MTIzNiwidHlwZSI6ImNvcm5lciJ9fSx7InQiOjY5OTAsInYiOnsieCI6MTM4NC43ODY5ODcsInkiOjcxMy4yMjgxNDksInR5cGUiOiJjb3JuZXIifX0seyJ0Ijo3MTYwLCJ2Ijp7IngiOjEzODQuNzg2OTg3LCJ5Ijo4MzAuMjI4MTQ5LCJ0eXBlIjoiY29ybmVyIn19LHsidCI6Nzc2MCwidiI6eyJ4IjoxMzg0Ljc4Njk4NywieSI6Njc0LjA2Mzc2NSwidHlwZSI6ImNvcm5lciJ9fSx7InQiOjc5MjAsInYiOnsieCI6MTM4NC43ODY5ODcsInkiOjYzMC4yMjgxNDksInR5cGUiOiJjb3JuZXIifX1dLCJrIjpbeyJ0Ijo0OTAwLCJ2Ijp7IngiOjAsInkiOjB9fSx7InQiOjU0MDAsInYiOnsieCI6MCwieSI6MH19LHsidCI6NTkwMCwidiI6eyJ4IjowLCJ5IjowfX0seyJ0Ijo2MzUwLCJ2Ijp7IngiOjAsInkiOjB9fSx7InQiOjY2NzAsInYiOnsieCI6MCwieSI6MH19LHsidCI6NzE2MCwidiI6eyJ4IjowLCJ5IjowfX0seyJ0Ijo3OTIwLCJ2Ijp7IngiOjAsInkiOjB9fV0sInMiOlt7InQiOjQ5MDAsInYiOnsieCI6MS4yOTcxNjcsInkiOjIuMzg3Njk4fX0seyJ0Ijo1NDAwLCJ2Ijp7IngiOjEuMjk3MTY3LCJ5IjoxLjM3MjgzMn19LHsidCI6NTkwMCwidiI6eyJ4IjoxLjI5NzE2NywieSI6MS4zNzI4MzJ9fSx7InQiOjYzNTAsInYiOnsieCI6MS4yOTcxNjcsInkiOjEuMzcyODMyfX0seyJ0Ijo2NjcwLCJ2Ijp7IngiOjEuMjg4NzA4LCJ5IjoxLjM1OTd9fSx7InQiOjcxNjAsInYiOnsieCI6MC42OTQ0NTUsInkiOjAuNDM3MTU4fX0seyJ0Ijo3OTIwLCJ2Ijp7IngiOjAuNjIzODU4LCJ5IjowLjI5ODk4NH19XX19LCJvcGFjaXR5IjpbeyJ0Ijo0OTAwLCJ2IjowfSx7InQiOjU0MDAsInYiOjF9LHsidCI6NTkwMCwidiI6MX0seyJ0Ijo2MzUwLCJ2IjoxfSx7InQiOjcxNjAsInYiOjF9LHsidCI6NzkyMCwidiI6MH1dfSwiZWhLQlZHMlRqWHQxOCI6eyJ0cmFuc2Zvcm0iOnsia2V5cyI6eyJvIjpbeyJ0Ijo1MDAwLCJ2Ijp7IngiOjEzODIuODUyNDIxLCJ5Ijo1NDIuMDkwMDU1LCJ0eXBlIjoiY29ybmVyIn19LHsidCI6NTIwMCwidiI6eyJ4IjoxMzgyLjg1MjQyMSwieSI6NTQyLjA5MDA1NSwidHlwZSI6ImNvcm5lciJ9fSx7InQiOjU1MDAsInYiOnsieCI6MTM4Mi44NTI0MjEsInkiOjQ0Mi4wOTAwNTUsInR5cGUiOiJjb3JuZXIifX0seyJ0Ijo1OTAwLCJ2Ijp7IngiOjEzODIuODUyNDIxLCJ5Ijo1NDIuMDkwMDU1LCJ0eXBlIjoiY29ybmVyIn19LHsidCI6NjAwMCwidiI6eyJ4IjoxMzgyLjg1MjQyMSwieSI6NTQyLjA5MDA1NSwidHlwZSI6ImNvcm5lciJ9fSx7InQiOjY0MzAsInYiOnsieCI6MTM4Mi44NTI0MjEsInkiOjU0Ni43NTIyMjYsInR5cGUiOiJjb3JuZXIifX0seyJ0Ijo2NjcwLCJ2Ijp7IngiOjEzODIuODUyNDIxLCJ5Ijo1NDQuMDUyNDM5LCJ0eXBlIjoiY29ybmVyIn19LHsidCI6Njc0MCwidiI6eyJ4IjoxMzgyLjg1MjQyMSwieSI6NTIzLjI2NTAwMSwidHlwZSI6ImNvcm5lciJ9fSx7InQiOjY4MDAsInYiOnsieCI6MTM4Mi44NTI0MjEsInkiOjU0Mi41OTAwNTUsInR5cGUiOiJjb3JuZXIifX0seyJ0Ijo3MDAwLCJ2Ijp7IngiOjEzODIuODUyNDIxLCJ5Ijo1NDMuMDkwMDU1LCJ0eXBlIjoiY29ybmVyIn19LHsidCI6NzIwMCwidiI6eyJ4IjoxMzgyLjg1MjQyMSwieSI6NTgyLjA5MDA1NSwidHlwZSI6ImNvcm5lciJ9fSx7InQiOjc5OTAsInYiOnsieCI6MTM4Mi44NTI0MjEsInkiOjU0Mi4wOTAwNTUsInR5cGUiOiJjb3JuZXIifX1dLCJrIjpbeyJ0Ijo1MDAwLCJ2Ijp7IngiOjAsInkiOjB9fSx7InQiOjUyMDAsInYiOnsieCI6MCwieSI6MH19LHsidCI6NTUwMCwidiI6eyJ4IjowLCJ5IjowfX0seyJ0Ijo1OTAwLCJ2Ijp7IngiOjAsInkiOjB9fSx7InQiOjYwMDAsInYiOnsieCI6MCwieSI6MH19LHsidCI6NjgwMCwidiI6eyJ4IjowLCJ5IjowfX0seyJ0Ijo3MjAwLCJ2Ijp7IngiOjAsInkiOjB9fSx7InQiOjc5OTAsInYiOnsieCI6MCwieSI6MH19XSwicyI6W3sidCI6NTAwMCwidiI6eyJ4IjoxLCJ5IjoxLjYyOH19LHsidCI6NTIwMCwidiI6eyJ4IjoxLCJ5IjoxLjI3NjQzNH19LHsidCI6NTUwMCwidiI6eyJ4IjoxLjExMTg0NiwieSI6MS4xMDAyNDZ9fSx7InQiOjU5MDAsInYiOnsieCI6MS4xMTE4NDYsInkiOjEuMTAwMjQ2fX0seyJ0Ijo2MDAwLCJ2Ijp7IngiOjEuMTExODQ2LCJ5IjoxLjEwMDI0Nn19LHsidCI6NjQzMCwidiI6eyJ4IjoxLjExMTg0NiwieSI6MS4wOTU4Mn19LHsidCI6NjY3MCwidiI6eyJ4IjoxLjExMTg0NiwieSI6MS4wOTM4MDR9fSx7InQiOjY3NDAsInYiOnsieCI6MS4xMTE4NDYsInkiOjEuMDkzMjE2fX0seyJ0Ijo2ODAwLCJ2Ijp7IngiOjEuMTExODQ2LCJ5IjoxLjA5MjcxMn19LHsidCI6NzIwMCwidiI6eyJ4IjoxLjExMTg0NiwieSI6MC40OTc1MzR9fSx7InQiOjc5OTAsInYiOnsieCI6MC43NzQ5ODUsInkiOjAuNDE1NDgyfX1dfX0sIm9wYWNpdHkiOlt7InQiOjUwMDAsInYiOjB9LHsidCI6NTIwMCwidiI6MX0seyJ0Ijo1NTAwLCJ2IjoxfSx7InQiOjU5MDAsInYiOjF9LHsidCI6NjAwMCwidiI6MX0seyJ0Ijo2ODAwLCJ2IjoxfSx7InQiOjcyMDAsInYiOjF9LHsidCI6Nzk5MCwidiI6MH1dfSwiZWhLQlZHMlRqWHQxOSI6eyJ0cmFuc2Zvcm0iOnsia2V5cyI6eyJvIjpbeyJ0Ijo1NjAwLCJ2Ijp7IngiOjEzNzkuNzAyNjE4LCJ5Ijo0MzkuNzczMzIxLCJ0eXBlIjoiY29ybmVyIn19LHsidCI6NTgwMCwidiI6eyJ4IjoxMzc5LjcwMjYxOCwieSI6MzYxLjc3MzMyMSwidHlwZSI6ImNvcm5lciJ9fSx7InQiOjYwMDAsInYiOnsieCI6MTM3OS43MDI2MTgsInkiOjM2MS43NzMzMjEsInR5cGUiOiJjb3JuZXIifX0seyJ0Ijo2MjYwLCJ2Ijp7IngiOjEzNzkuNzAyNjE4LCJ5IjozNjYuMjg1NTE2LCJ0eXBlIjoiY29ybmVyIn19LHsidCI6NjUxMCwidiI6eyJ4IjoxMzc5LjcwMjYxOCwieSI6Mzc0LjEyMjkxNCwidHlwZSI6ImNvcm5lciJ9fSx7InQiOjY3NDAsInYiOnsieCI6MTM3OS43MDI2MTgsInkiOjM3My41Mjk0MTgsInR5cGUiOiJjb3JuZXIifX0seyJ0Ijo2ODAwLCJ2Ijp7IngiOjEzNzkuNzAyNjE4LCJ5IjozNjAuNDcyNTA4LCJ0eXBlIjoiY29ybmVyIn19LHsidCI6NjkwMCwidiI6eyJ4IjoxMzc5LjcwMjYxOCwieSI6MzE5LjEwNjY1NCwidHlwZSI6ImNvcm5lciJ9fSx7InQiOjcyMzAsInYiOnsieCI6MTM3OS43MDI2MTgsInkiOjMwMS43NzMzMjEsInR5cGUiOiJjb3JuZXIifX0seyJ0Ijo3NjMwLCJ2Ijp7IngiOjEzNzkuNzAyNjE4LCJ5IjozMjEuNzczMzIxLCJ0eXBlIjoiY29ybmVyIn19LHsidCI6ODA2MCwidiI6eyJ4IjoxMzc5LjcwMjYxOCwieSI6NDQxLjc3MzMyMSwidHlwZSI6ImNvcm5lciJ9fV0sImsiOlt7InQiOjU2MDAsInYiOnsieCI6MCwieSI6MH19LHsidCI6NTgwMCwidiI6eyJ4IjowLCJ5IjowfX0seyJ0Ijo2MDAwLCJ2Ijp7IngiOjAsInkiOjB9fSx7InQiOjY4MDAsInYiOnsieCI6MCwieSI6MH19LHsidCI6NzIzMCwidiI6eyJ4IjowLCJ5IjowfX0seyJ0Ijo3NjMwLCJ2Ijp7IngiOjAsInkiOjB9fSx7InQiOjgwNjAsInYiOnsieCI6MCwieSI6MH19XSwicyI6W3sidCI6NTYwMCwidiI6eyJ4IjowLjkwODc2MiwieSI6MC44Mzg4MTl9fSx7InQiOjU4MDAsInYiOnsieCI6MC45MDUwNDMsInkiOjAuNzY5MTc0fX0seyJ0Ijo2MDAwLCJ2Ijp7IngiOjAuOTA1MDQzLCJ5IjowLjc2OTE3NH19LHsidCI6NjI2MCwidiI6eyJ4IjowLjkwODY1LCJ5IjowLjc2NzQwN319LHsidCI6NjUxMCwidiI6eyJ4IjowLjkwOTg1MiwieSI6MC43NjY4MTh9fSx7InQiOjY3NDAsInYiOnsieCI6MC45MTAwNjEsInkiOjAuNzY2NzE2fX0seyJ0Ijo2ODAwLCJ2Ijp7IngiOjAuOTE0NjYyLCJ5IjowLjc2NDQ2M319LHsidCI6NzIzMCwidiI6eyJ4IjoxLjQ5NjU3NSwieSI6MC40Nzk0NDl9fSx7InQiOjc2MzAsInYiOnsieCI6MS40OTY1NzUsInkiOjAuNDc5NDQ5fX0seyJ0Ijo4MDYwLCJ2Ijp7IngiOjAuOTcwMzMsInkiOjAuNDg4Mzc3fX1dfX0sIm9wYWNpdHkiOlt7InQiOjU1OTAsInYiOjB9LHsidCI6NTYwMCwidiI6MX0seyJ0Ijo1ODAwLCJ2IjoxfSx7InQiOjYwMDAsInYiOjF9LHsidCI6NjgwMCwidiI6MX0seyJ0Ijo3MjMwLCJ2IjoxfSx7InQiOjc2MzAsInYiOjF9LHsidCI6ODA2MCwidiI6MH1dfSwiZWhLQlZHMlRqWHQyMCI6eyJzdHJva2UtZGFzaG9mZnNldCI6W3sidCI6NzAwMCwidiI6NDQwfSx7InQiOjgwMDAsInYiOjB9LHsidCI6OTAwMCwidiI6LTkwN31dfSwiZWhLQlZHMlRqWHQyMSI6eyJzdHJva2UtZGFzaG9mZnNldCI6W3sidCI6ODAwMCwidiI6OTA2LjkxfSx7InQiOjg4MDAsInYiOjEwfSx7InQiOjk2MDAsInYiOi05NDB9XX0sImVoS0JWRzJUalh0MjIiOnsib3BhY2l0eSI6W3sidCI6MTAwMDAsInYiOjF9LHsidCI6MTEyMDAsInYiOjB9XSwic3Ryb2tlLWRhc2hvZmZzZXQiOlt7InQiOjg4MDAsInYiOjI0MTMuNTR9LHsidCI6MTAwMDAsInYiOjQ4MjB9LHsidCI6MTEyMDAsInYiOjcwNTB9XX0sImVoS0JWRzJUalh0MjMiOnsib3BhY2l0eSI6W3sidCI6OTIwMCwidiI6MX0seyJ0IjoxMDQwMCwidiI6MH1dLCJzdHJva2UtZGFzaG9mZnNldCI6W3sidCI6ODAwMCwidiI6MTcwMC41N30seyJ0Ijo5MjAwLCJ2IjozMzkwfSx7InQiOjEwNDAwLCJ2Ijo1MDkwfV19LCJlaEtCVkcyVGpYdDI0Ijp7InRyYW5zZm9ybSI6eyJkYXRhIjp7Im8iOnsieCI6MTQyOC41MzI1MywieSI6NTQ4Ljk4ODc3MiwidHlwZSI6ImNvcm5lciJ9LCJ0Ijp7IngiOi0xNDMwLjE5MjQ0NCwieSI6LTU1My44NjM5NTJ9fSwia2V5cyI6eyJzIjpbeyJ0IjoxMDIwMCwidiI6eyJ4IjoxLCJ5IjoxfX0seyJ0IjoxMDcwMCwidiI6eyJ4IjoxLCJ5IjoxfX0seyJ0IjoxMjAwMCwidiI6eyJ4IjoxLCJ5IjoxfX0seyJ0IjoxMjEwMCwidiI6eyJ4IjoxLjA0LCJ5IjoxLjA0fX0seyJ0IjoxMjIwMCwidiI6eyJ4IjoxLCJ5IjoxfX0seyJ0IjoxMzAwMCwidiI6eyJ4IjoxLCJ5IjoxfX0seyJ0IjoxMzEwMCwidiI6eyJ4IjoxLjA0LCJ5IjoxLjA0fX0seyJ0IjoxMzIwMCwidiI6eyJ4IjoxLCJ5IjoxfX0seyJ0IjoxNDAwMCwidiI6eyJ4IjoxLCJ5IjoxfX0seyJ0IjoxNDEwMCwidiI6eyJ4IjoxLjA0LCJ5IjoxLjA0fX0seyJ0IjoxNDIwMCwidiI6eyJ4IjoxLCJ5IjoxfX0seyJ0IjoxNDgwMCwidiI6eyJ4IjowLjgsInkiOjAuOH19XX19LCJvcGFjaXR5IjpbeyJ0IjoxMDIwMCwidiI6MH0seyJ0IjoxMDcwMCwidiI6MX0seyJ0IjoxMjAwMCwidiI6MX0seyJ0IjoxMjEwMCwidiI6MX0seyJ0IjoxMjIwMCwidiI6MX0seyJ0IjoxMzAwMCwidiI6MX0seyJ0IjoxMzEwMCwidiI6MX0seyJ0IjoxMzIwMCwidiI6MX0seyJ0IjoxNDAwMCwidiI6MX0seyJ0IjoxNDEwMCwidiI6MX0seyJ0IjoxNDIwMCwidiI6MX0seyJ0IjoxNDgwMCwidiI6MH1dLCIjZmlsdGVyIjp7ImtleXMiOlt7InQiOjEwMjAwLCJ2IjpbXX0seyJ0IjoxMDcwMCwidiI6W119LHsidCI6MTIwMDAsInYiOltdfSx7InQiOjEyMTAwLCJ2IjpbXX0seyJ0IjoxMjIwMCwidiI6W119LHsidCI6MTMwMDAsInYiOltdfSx7InQiOjEzMTAwLCJ2IjpbXX0seyJ0IjoxMzIwMCwidiI6W119LHsidCI6MTQwMDAsInYiOltdfSx7InQiOjE0MTAwLCJ2IjpbXX0seyJ0IjoxNDIwMCwidiI6W119LHsidCI6MTQ4MDAsInYiOltdfV0sImRhdGEiOnsiaXRlbXMiOltdfX19LCJlaEtCVkcyVGpYdDM1Ijp7Im9wYWNpdHkiOlt7InQiOjY1MDAsInYiOjF9LHsidCI6NjU1MCwidiI6MH1dLCJzdHJva2UtZGFzaG9mZnNldCI6W3sidCI6NjExMCwidiI6ODgyLjI5fSx7InQiOjY1MDAsInYiOi0yMH1dfSwiZWhLQlZHMlRqWHQzNiI6eyJ0cmFuc2Zvcm0iOnsia2V5cyI6eyJvIjpbeyJ0Ijo2MTEwLCJ2Ijp7IngiOjEzODAuMzQ0NzM5LCJ5IjoxMTAzLjc0NDU3NiwidHlwZSI6ImNvcm5lciJ9fSx7InQiOjY1MDAsInYiOnsieCI6MTM4MC4zNDQ3MzksInkiOjg4My43NDQ1NzYsInR5cGUiOiJjb3JuZXIifX1dfX0sIm9wYWNpdHkiOlt7InQiOjYxMTAsInYiOjF9LHsidCI6NjUwMCwidiI6MX0seyJ0Ijo2NTUwLCJ2IjowfV19LCJlaEtCVkcyVGpYdDM3Ijp7InRyYW5zZm9ybSI6eyJrZXlzIjp7Im8iOlt7InQiOjYxMTAsInYiOnsieCI6MTQwNi44MjA4MjYsInkiOjExMDMuNzQ0NTc2LCJ0eXBlIjoiY29ybmVyIn19LHsidCI6NjUwMCwidiI6eyJ4IjoxNDA2LjgyMDgyNiwieSI6ODgzLjc0NDU3NiwidHlwZSI6ImNvcm5lciJ9fV19fSwib3BhY2l0eSI6W3sidCI6NjExMCwidiI6MX0seyJ0Ijo2NTAwLCJ2IjoxfSx7InQiOjY1NTAsInYiOjB9XX0sImVoS0JWRzJUalh0MzkiOnsib3BhY2l0eSI6W3sidCI6NjQwMCwidiI6MX0seyJ0Ijo2NzgwLCJ2IjoxfSx7InQiOjY4MzAsInYiOjB9XSwic3Ryb2tlLWRhc2hvZmZzZXQiOlt7InQiOjYzOTAsInYiOjg4Mi4yOX0seyJ0Ijo2NDAwLCJ2Ijo4ODIuMjl9LHsidCI6Njc4MCwidiI6LTIwfSx7InQiOjY3OTAsInYiOi0yMH1dfSwiZWhLQlZHMlRqWHQ0MCI6eyJ0cmFuc2Zvcm0iOnsia2V5cyI6eyJvIjpbeyJ0Ijo2NDAwLCJ2Ijp7IngiOjEzODAuMzQ0NzM5LCJ5IjoxMDk1Ljc0NDU3NiwidHlwZSI6ImNvcm5lciJ9fSx7InQiOjY3ODAsInYiOnsieCI6MTM4MC4zNDQ3MzksInkiOjk1My43NDQ1NzYsInR5cGUiOiJjb3JuZXIifX1dfX0sIm9wYWNpdHkiOlt7InQiOjYzOTAsInYiOjB9LHsidCI6NjQwMCwidiI6MX0seyJ0Ijo2NzgwLCJ2IjoxfSx7InQiOjY4MzAsInYiOjB9XX0sImVoS0JWRzJUalh0NDEiOnsidHJhbnNmb3JtIjp7ImtleXMiOnsibyI6W3sidCI6NjQwMCwidiI6eyJ4IjoxNDA2LjgyMDgyNiwieSI6MTA5NS43NDQ1NzYsInR5cGUiOiJjb3JuZXIifX0seyJ0Ijo2NzgwLCJ2Ijp7IngiOjE0MDYuODIwODI2LCJ5Ijo5NTMuNzQ0NTc2LCJ0eXBlIjoiY29ybmVyIn19XX19LCJvcGFjaXR5IjpbeyJ0Ijo2MzkwLCJ2IjowfSx7InQiOjY0MDAsInYiOjF9LHsidCI6Njc4MCwidiI6MX0seyJ0Ijo2ODMwLCJ2IjowfV19fSwicyI6Ik1ESEExWldFeU5EazRZQmpsak9UazRPRGxpR09UQTVOamsxTkRrQTJNVFU0TldOTU5UQ2MxTnpVM05UTTBPS1RoaU9UQTVPVGhqVU9HRTVZamt3T1RZTjVOVVkwT1ZNMk1URlU0TlRNME9Ua3dPQ1dJNFl6azVRemc0SU9XSTVNRGsyT1RVVTVZVFE1VFVNMk1UVVUzTlRNME9UaGtPQ1RBNU16a3pORGsyUU1UVTROVE5CTkRrUjRPRGt6T1dJNFl6Q2s1T1RVNE9EbGlPSkdNME9UWXhPR1E0TE9Ea3pWVGxoT0dNVTFNelE1T1dGTk9UWGM0WXpoak9HSTBPRlRZeE5UZzFNelE1U09HUkRPVGM1WVU0SjBPVFl4TlRnMU56VVUzWVRRLyJ9XSwib3B0aW9ucyI6Ik1ERUF4TURneU1qazNZVVRkaU5qZzNPVGRpVk1qazBNVEk1TnpNTTNOalk0Tm1KU01qRms0TkF8In0sJ19fU1ZHQVRPUl9QTEFZRVJfXycsd2luZG93LGRvY3VtZW50KQoJ
- • script crossorigin:- integrity:no https://www.userlane.com//data:text/javascript;base64,KGZ1bmN0aW9uKHdpbmRvdyxkb2N1bWVudCl7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIGdldFBhcmRvdElmcmFtZXMoKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaWZyYW1lW2RhdGEtcGFyZG90LWZvcm09InRydWUiXScpKTt9CmZ1bmN0aW9uIG5vcm1hbGl6ZU92ZXJyaWRlcyhvdmVycmlkZXMpe3ZhciBvdXQ9e307aWYoIW92ZXJyaWRlc3x8dHlwZW9mIG92ZXJyaWRlcyE9PSdvYmplY3QnKXJldHVybiBvdXQ7T2JqZWN0LmtleXMob3ZlcnJpZGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7dmFyIHZhbD1vdmVycmlkZXNba2V5XTtpZihrZXk9PT0ndXRtX3BhcnRuZXJfdHlwZScmJndpbmRvdy5VU0xOQXR0cmlidXRpb24mJnR5cGVvZiB3aW5kb3cuVVNMTkF0dHJpYnV0aW9uLm5vcm1hbGl6ZVBhcnRuZXJUeXBlPT09J2Z1bmN0aW9uJyl7dmFsPXdpbmRvdy5VU0xOQXR0cmlidXRpb24ubm9ybWFsaXplUGFydG5lclR5cGUodmFsKTt9CmlmKHZhbCE9bnVsbCYmdmFsIT09Jycpe291dFtrZXldPXZhbDt9fSk7cmV0dXJuIG91dDt9CmZ1bmN0aW9uIGJ1aWxkSWZyYW1lU3JjKGJhc2VTcmMsb3ZlcnJpZGVzKXtpZighd2luZG93LlVTTE5BdHRyaWJ1dGlvbnx8dHlwZW9mIHdpbmRvdy5VU0xOQXR0cmlidXRpb24uYnVpbGRVcmwhPT0nZnVuY3Rpb24nKXtyZXR1cm4gYmFzZVNyYzt9CnJldHVybiB3aW5kb3cuVVNMTkF0dHJpYnV0aW9uLmJ1aWxkVXJsKGJhc2VTcmMsbm9ybWFsaXplT3ZlcnJpZGVzKG92ZXJyaWRlcykse2tlZXBFeGlzdGluZ1F1ZXJ5UGFyYW1zRG9taW5hbnQ6dHJ1ZSxmb3JjZVBlcmNlbnQyMDp0cnVlfSk7fQpmdW5jdGlvbiBhcHBseUlmcmFtZVNyYyhpZnJhbWUsb3ZlcnJpZGVzKXtpZighaWZyYW1lKXJldHVybjt2YXIgYmFzZVNyYz1pZnJhbWUuZ2V0QXR0cmlidXRlKCdkYXRhLXNyYycpfHxpZnJhbWUuZ2V0QXR0cmlidXRlKCdzcmMnKTtpZighYmFzZVNyYylyZXR1cm47aWYoIWlmcmFtZS5fX3VzbG5CYXNlU3JjKXtpZnJhbWUuX191c2xuQmFzZVNyYz1iYXNlU3JjO30KdmFyIG5leHRTcmM9YnVpbGRJZnJhbWVTcmMoaWZyYW1lLl9fdXNsbkJhc2VTcmMsb3ZlcnJpZGVzKTt2YXIgY3VycmVudFNyYz1pZnJhbWUuZ2V0QXR0cmlidXRlKCdzcmMnKTtpZihjdXJyZW50U3JjIT09bmV4dFNyYyl7aWZyYW1lLnNldEF0dHJpYnV0ZSgnc3JjJyxuZXh0U3JjKTt9fQpmdW5jdGlvbiBpbml0QWxsUGFyZG90SWZyYW1lcygpe3ZhciBpZnJhbWVzPWdldFBhcmRvdElmcmFtZXMoKTtpZighaWZyYW1lcy5sZW5ndGgpcmV0dXJuO2lmcmFtZXMuZm9yRWFjaChmdW5jdGlvbihpZnJhbWUpe2FwcGx5SWZyYW1lU3JjKGlmcmFtZSk7fSk7fQpmdW5jdGlvbiByZWZyZXNoQWxsUGFyZG90SWZyYW1lc0ZvckNUQSgpe3ZhciBpZnJhbWVzPWdldFBhcmRvdElmcmFtZXMoKTtpZighaWZyYW1lcy5sZW5ndGgpcmV0dXJuO3ZhciBsYXRlc3RDVEE9bnVsbDtpZih3aW5kb3cuVVNMTkF0dHJpYnV0aW9uJiZ0eXBlb2Ygd2luZG93LlVTTE5BdHRyaWJ1dGlvbi5nZXQ9PT0nZnVuY3Rpb24nKXtsYXRlc3RDVEE9d2luZG93LlVTTE5BdHRyaWJ1dGlvbi5nZXQoJ3dlYl9jdGEnKTt9CmlmcmFtZXMuZm9yRWFjaChmdW5jdGlvbihpZnJhbWUpe2FwcGx5SWZyYW1lU3JjKGlmcmFtZSx7d2ViX2N0YTpsYXRlc3RDVEF9KTt9KTt9CmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLGZ1bmN0aW9uKCl7aW5pdEFsbFBhcmRvdElmcmFtZXMoKTt9KTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd1c2xuOmN0YWNoYW5nZScsZnVuY3Rpb24oKXtyZWZyZXNoQWxsUGFyZG90SWZyYW1lc0ZvckNUQSgpO30pO30pKHdpbmRvdyxkb2N1bWVudCk7
- • script crossorigin:- integrity:no https://www.userlane.com//data:text/javascript;base64,ZnVuY3Rpb24gZ2V0UGFyYW1Gcm9tVVNMTihuYW1lKXtpZighQXJyYXkuaXNBcnJheSh3aW5kb3cudXNsbkRhdGFMYXllcikpcmV0dXJuIG51bGw7dmFyIHZhbHVlPW51bGw7Zm9yKHZhciBpPTA7aTx3aW5kb3cudXNsbkRhdGFMYXllci5sZW5ndGg7aSsrKXt2YXIgb2JqPXdpbmRvdy51c2xuRGF0YUxheWVyW2ldO2lmKG9iaiYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaixuYW1lKSl7dmFsdWU9b2JqW25hbWVdO319CnJldHVybiB2YWx1ZTt9
- • script crossorigin:- integrity:no https://www.userlane.com//data:text/javascript;base64,ZnVuY3Rpb24gY29weVVybCh1cmwpe2lmKCF1cmwpe3Nob3dDb3B5VG9hc3QoJ05vIGxpbmsgYXZhaWFibGUnLCdkYW5nZXInKTtyZXR1cm47fQppZihuYXZpZ2F0b3IuY2xpcGJvYXJkJiZ3aW5kb3cuaXNTZWN1cmVDb250ZXh0KXtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh1cmwpLnRoZW4oZnVuY3Rpb24oKXtzaG93Q29weVRvYXN0KCdMaW5rIGlzIGNvcGllZCB0byBjbGlwYm9hcmQnLCdzdWNjZXNzJyk7fSkuY2F0Y2goZnVuY3Rpb24oKXtmYWxsYmFja0NvcHkodXJsKTt9KTt9ZWxzZXtmYWxsYmFja0NvcHkodXJsKTt9fQpmdW5jdGlvbiBmYWxsYmFja0NvcHkodGV4dCl7Y29uc3QgdGV4dGFyZWE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTt0ZXh0YXJlYS52YWx1ZT10ZXh0O3RleHRhcmVhLnNldEF0dHJpYnV0ZSgncmVhZG9ubHknLCcnKTt0ZXh0YXJlYS5zdHlsZS5wb3NpdGlvbj0nYWJzb2x1dGUnO3RleHRhcmVhLnN0eWxlLmxlZnQ9Jy05OTk5cHgnO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dGFyZWEpO3RleHRhcmVhLnNlbGVjdCgpO3RyeXtkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO3Nob3dDb3B5VG9hc3QoJ0xpbmsgaXMgY29waWVkIHRvIGNsaXBib2FyZCcsJ3N1Y2Nlc3MnKTt9Y2F0Y2goZXJyKXtzaG93Q29weVRvYXN0KCdPaCBubyBzb21ldGhpbmcgd2VudCB3cm9uZycsJ2RhbmdlcicpO30KZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXh0YXJlYSk7fQpmdW5jdGlvbiBzaG93Q29weVRvYXN0KG1lc3NhZ2UsdHlwZT0nc3VjY2Vzcycpe2NvbnN0IHRvYXN0RWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvcHlUb2FzdCcpO2NvbnN0IGljb25XcmFwPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb3B5VG9hc3RJY29uJyk7Y29uc3QgdG9hc3RCb2R5PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb3B5VG9hc3RNZXNzYWdlJyk7dG9hc3RFbC5jbGFzc0xpc3QucmVtb3ZlKCd0ZXh0LWJnLXN1Y2Nlc3MnLCd0ZXh0LWJnLWRhbmdlcicsJ3RleHQtYmctd2FybmluZycsJ3RleHQtYmctaW5mbycsJ3RleHQtYmctc2Vjb25kYXJ5Jyk7dG9hc3RFbC5jbGFzc0xpc3QuYWRkKCd0ZXh0LWJnLScrdHlwZSk7dG9hc3RCb2R5LnRleHRDb250ZW50PW1lc3NhZ2U7aWNvbldyYXAuaW5uZXJIVE1MPXRvYXN0SWNvblN2Z1t0eXBlXXx8dG9hc3RJY29uU3ZnLnN1Y2Nlc3M7Y29uc3QgdG9hc3Q9bmV3IGJvb3RzdHJhcC5Ub2FzdCh0b2FzdEVsLHtkZWxheToyNTAwfSk7dG9hc3Quc2hvdygpO30KY29uc3QgdG9hc3RJY29uU3ZnPXtzdWNjZXNzOmAKICAgIDxzdmcgY2xhc3M9InRvYXN0LWljb24iIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgdmlld0JveD0iMCAwIDUyIDUyIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgIDxjaXJjbGUgY2xhc3M9InRvYXN0LWljb25fX2NpcmNsZSIgY3g9IjI2IiBjeT0iMjYiIHI9IjI1IiBmaWxsPSJub25lIj48L2NpcmNsZT4KICAgICAgPHBhdGggY2xhc3M9InRvYXN0LWljb25fX2NoZWNrIiBmaWxsPSJub25lIiBkPSJNMTQgMjcgbDcgNyBsMTcgLTE3Ij48L3BhdGg+CiAgICA8L3N2Zz4KICBgLGRhbmdlcjpgCiAgICA8c3ZnIGNsYXNzPSJ0b2FzdC1pY29uIiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCA1MiA1MiIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPgogICAgICA8Y2lyY2xlIGNsYXNzPSJ0b2FzdC1pY29uX19jaXJjbGUiIGN4PSIyNiIgY3k9IjI2IiByPSIyNSIgZmlsbD0ibm9uZSI+PC9jaXJjbGU+CiAgICAgIDxwYXRoIGNsYXNzPSJ0b2FzdC1pY29uX194IiBmaWxsPSJub25lIiBkPSJNMTYgMTYgTDM2IDM2IE0zNiAxNiBMMTYgMzYiPjwvcGF0aD4KICAgIDwvc3ZnPgogIGB9OyhmdW5jdGlvbigpe3ZhciBTVE9SQUdFX0tFWT0ndXNsbl9sYXN0X2N0YSc7ZnVuY3Rpb24gc2FmZVRleHQoc3RyKXtpZighc3RyKXJldHVybicnO3JldHVybiBTdHJpbmcoc3RyKS5yZXBsYWNlKC9ccysvZywnICcpLnRyaW0oKS5zbGljZSgwLDE1MCk7fQpmdW5jdGlvbiBidWlsZEN0YUxhYmVsKGVsKXtyZXR1cm4oZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWN0YScpfHxlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtY3RhLWxhYmVsJyl8fGVsLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpfHxlbC5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyl8fHNhZmVUZXh0KGVsLmlubmVyVGV4dCl8fHNhZmVUZXh0KGVsLmdldEF0dHJpYnV0ZSgnaHJlZicpKXx8J2N0YScpO30KZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGUpe3ZhciBlbD1lLnRhcmdldC5jbG9zZXN0KCdhLCBidXR0b24sIFtyb2xlPSJidXR0b24iXSwgaW5wdXRbdHlwZT0ic3VibWl0Il0nKTtpZighZWwpcmV0dXJuO3ZhciBpc0NUQT1lbC5oYXNBdHRyaWJ1dGUoJ2RhdGEtY3RhJyl8fGVsLmNsYXNzTGlzdC5jb250YWlucygnY3RhJyk7aWYoIWlzQ1RBKXJldHVybjt2YXIgbGFiZWw9YnVpbGRDdGFMYWJlbChlbCk7aWYoIWxhYmVsKXJldHVybjt0cnl7c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShTVE9SQUdFX0tFWSxsYWJlbCk7fWNhdGNoKGUpe319LHRydWUpO30pKCk7
- • script crossorigin:- integrity:no https://www.userlane.com//data:text/javascript;base64,CiAgICAgICAgICAgIHZhciBfU0VBUkNIV1BfTElWRV9BSkFYX1NFQVJDSF9CTE9DS1MgPSB0cnVlOwogICAgICAgICAgICB2YXIgX1NFQVJDSFdQX0xJVkVfQUpBWF9TRUFSQ0hfRU5HSU5FID0gJ2RlZmF1bHQnOwogICAgICAgICAgICB2YXIgX1NFQVJDSFdQX0xJVkVfQUpBWF9TRUFSQ0hfQ09ORklHID0gJ2RlZmF1bHQnOwogICAgICAgIA==
- • script crossorigin:- integrity:no https://www.userlane.com//data:text/javascript;base64,CnZhciBtUFMyaWRfcGFyYW1zID0geyJpbnN0YW5jZXMiOnsibVBTMmlkX2luc3RhbmNlXzAiOnsic2VsZWN0b3IiOiJhW2hyZWYqPScjJ106bm90KFtocmVmPScjJ10pIiwiYXV0b1NlbGVjdG9yTWVudUxpbmtzIjoidHJ1ZSIsImV4Y2x1ZGVTZWxlY3RvciI6ImFbaHJlZl49JyN0YWItJ10sIGFbaHJlZl49JyN0YWJzLSddLCBhW2RhdGEtdG9nZ2xlXTpub3QoW2RhdGEtdG9nZ2xlPSd0b29sdGlwJ10pLCBhW2RhdGEtc2xpZGVdLCBhW2RhdGEtdmMtdGFic10sIGFbZGF0YS12Yy1hY2NvcmRpb25dLCBhLnNjcmVlbi1yZWFkZXItdGV4dC5za2lwLWxpbmsiLCJzY3JvbGxTcGVlZCI6ODAwLCJhdXRvU2Nyb2xsU3BlZWQiOiJ0cnVlIiwic2Nyb2xsRWFzaW5nIjoiZWFzZUluT3V0UXVpbnQiLCJzY3JvbGxpbmdFYXNpbmciOiJlYXNlT3V0UXVpbnQiLCJmb3JjZVNjcm9sbEVhc2luZyI6ImZhbHNlIiwicGFnZUVuZFNtb290aFNjcm9sbCI6InRydWUiLCJzdG9wU2Nyb2xsT25Vc2VyQWN0aW9uIjoiZmFsc2UiLCJhdXRvQ29ycmVjdFNjcm9sbCI6ImZhbHNlIiwiYXV0b0NvcnJlY3RTY3JvbGxFeHRlbmQiOiJmYWxzZSIsImxheW91dCI6InZlcnRpY2FsIiwib2Zmc2V0IjowLCJkdW1teU9mZnNldCI6ImZhbHNlIiwiaGlnaGxpZ2h0U2VsZWN0b3IiOiIiLCJjbGlja2VkQ2xhc3MiOiJtUFMyaWQtY2xpY2tlZCIsInRhcmdldENsYXNzIjoibVBTMmlkLXRhcmdldCIsImhpZ2hsaWdodENsYXNzIjoibVBTMmlkLWhpZ2hsaWdodCIsImZvcmNlU2luZ2xlSGlnaGxpZ2h0IjoiZmFsc2UiLCJrZWVwSGlnaGxpZ2h0VW50aWxOZXh0IjoiZmFsc2UiLCJoaWdobGlnaHRCeU5leHRUYXJnZXQiOiJmYWxzZSIsImFwcGVuZEhhc2giOiJmYWxzZSIsInNjcm9sbFRvSGFzaCI6InRydWUiLCJzY3JvbGxUb0hhc2hGb3JBbGwiOiJ0cnVlIiwic2Nyb2xsVG9IYXNoRGVsYXkiOjAsInNjcm9sbFRvSGFzaFVzZUVsZW1lbnREYXRhIjoidHJ1ZSIsInNjcm9sbFRvSGFzaFJlbW92ZVVybEhhc2giOiJmYWxzZSIsImRpc2FibGVQbHVnaW5CZWxvdyI6MCwiYWRtaW5EaXNwbGF5V2lkZ2V0c0lkIjoidHJ1ZSIsImFkbWluVGlueU1DRWJ1dHRvbnMiOiJ0cnVlIiwidW5iaW5kVW5yZWxhdGVkQ2xpY2tFdmVudHMiOiJmYWxzZSIsInVuYmluZFVucmVsYXRlZENsaWNrRXZlbnRzU2VsZWN0b3IiOiIiLCJub3JtYWxpemVBbmNob3JQb2ludFRhcmdldHMiOiJmYWxzZSIsImVuY29kZUxpbmtzIjoiZmFsc2UifX0sInRvdGFsX2luc3RhbmNlcyI6IjEiLCJzaG9ydGNvZGVfY2xhc3MiOiJfcHMyaWQifTsKLy8jIHNvdXJjZVVSTD1wYWdlLXNjcm9sbC10by1pZC1wbHVnaW4tc2NyaXB0LWpzLWV4dHJhCg==
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/plugins/page-scroll-to-id/js/page-scroll-to-id.min.js
- • script crossorigin:- integrity:no https://www.userlane.com//data:text/javascript;base64,CnZhciBzZWFyY2h3cF9saXZlX3NlYXJjaF9wYXJhbXMgPSBbXTsKc2VhcmNod3BfbGl2ZV9zZWFyY2hfcGFyYW1zID0geyJhamF4dXJsIjoiaHR0cHM6XC9cL3d3dy51c2VybGFuZS5jb21cL3dwLWFkbWluXC9hZG1pbi1hamF4LnBocCIsIm9yaWdpbl9pZCI6MiwiY29uZmlnIjp7ImRlZmF1bHQiOnsiZW5naW5lIjoiZGVmYXVsdCIsImlucHV0Ijp7ImRlbGF5IjozMDAsIm1pbl9jaGFycyI6M30sInJlc3VsdHMiOnsicG9zaXRpb24iOiJib3R0b20iLCJ3aWR0aCI6ImF1dG8iLCJvZmZzZXQiOnsieCI6MCwieSI6NX19LCJzcGlubmVyIjp7ImxpbmVzIjoxMiwibGVuZ3RoIjo4LCJ3aWR0aCI6MywicmFkaXVzIjo4LCJzY2FsZSI6MSwiY29ybmVycyI6MSwiY29sb3IiOiIjNDI0MjQyIiwiZmFkZUNvbG9yIjoidHJhbnNwYXJlbnQiLCJzcGVlZCI6MSwicm90YXRlIjowLCJhbmltYXRpb24iOiJzZWFyY2h3cC1zcGlubmVyLWxpbmUtZmFkZS1xdWljayIsImRpcmVjdGlvbiI6MSwiekluZGV4IjoyMDAwMDAwMDAwLCJjbGFzc05hbWUiOiJzcGlubmVyIiwidG9wIjoiNTAlIiwibGVmdCI6IjUwJSIsInNoYWRvdyI6IjAgMCAxcHggdHJhbnNwYXJlbnQiLCJwb3NpdGlvbiI6ImFic29sdXRlIn19fSwibXNnX25vX2NvbmZpZ19mb3VuZCI6Ik5vIHZhbGlkIFNlYXJjaFdQIExpdmUgU2VhcmNoIGNvbmZpZ3VyYXRpb24gZm91bmQhIiwiYXJpYV9pbnN0cnVjdGlvbnMiOiJXaGVuIGF1dG9jb21wbGV0ZSByZXN1bHRzIGFyZSBhdmFpbGFibGUgdXNlIHVwIGFuZCBkb3duIGFycm93cyB0byByZXZpZXcgYW5kIGVudGVyIHRvIGdvIHRvIHRoZSBkZXNpcmVkIHBhZ2UuIFRvdWNoIGRldmljZSB1c2VycywgZXhwbG9yZSBieSB0b3VjaCBvciB3aXRoIHN3aXBlIGdlc3R1cmVzLiJ9OzsKLy8jIHNvdXJjZVVSTD1zd3AtbGl2ZS1zZWFyY2gtY2xpZW50LWpzLWV4dHJhCg==
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/plugins/searchwp-live-ajax-search/assets/javascript/dist/script.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/js/bootstrap.bundle.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/js/swiper-bundle.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/js/appear.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/js/scrollCue.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/js/mixitup.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/js/odometer.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/js/owl.carousel.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/js/magnific-popup.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/js/SplitType.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/js/gsap.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/js/ScrollTrigger.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/js/SplitText.min.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/uploads/autoptimize/js/autoptimize_single_f45a6576728974e1a3522c16d7ad9aa1.js
- • script crossorigin:- integrity:no https://www.userlane.com/wp-content/uploads/autoptimize/js/autoptimize_single_9fcd1f59064a0c364f62960dcd66b694.js
- • script crossorigin:- integrity:no https://www.userlane.com//data:text/javascript;base64,CnZhciBtYWxpbmt5U2V0dGluZ3MgPSB7IjEiOnsidGhlbWVfZGVmYXVsdHMiOiJUd2VudHkgU2l4dGVlbiIsInBvc3RzX3dyYXBwZXIiOiIuZ3JpZC1saXN0IC5yb3ciLCJwb3N0X3dyYXBwZXIiOiIuZ3JpZC1saXN0IC5jb2wtMTIiLCJwYWdpbmF0aW9uX3dyYXBwZXIiOiIubmF2aWdhdGlvbiIsIm5leHRfcGFnZV9zZWxlY3RvciI6Ii5uYXYtbGlua3MgYS5uZXh0IiwicGFnaW5nX3R5cGUiOiJwYWdpbmF0aW9uIiwiaW5maW5pdGVfc2Nyb2xsX2J1ZmZlciI6IjIwIiwiYWpheF9sb2FkZXIiOiJcdTAwM0NpbWcgc3JjPVwiaHR0cHM6Ly93d3cudXNlcmxhbmUuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9tYWxpbmt5LWFqYXgtcGFnaW5hdGlvbi9pbWcvbG9hZGVyLmdpZlwiIGFsdD1cIkFKQVggTG9hZGVyXCIgL1x1MDAzRSIsImxvYWRfbW9yZV9idXR0b25fdGV4dCI6IkxvYWQgTW9yZSBQb3N0cyIsImxvYWRpbmdfbW9yZV9wb3N0c190ZXh0IjoiTG9hZGluZy4uLiIsImNhbGxiYWNrX2Z1bmN0aW9uIjoiIn19OwovLyMgc291cmNlVVJMPW1hbGlua3ktYWpheC1wYWdpbmF0aW9uLW1haW4tanMtanMtZXh0cmEK
- ... and 1 more
Stylesheets (12)
- • stylesheet crossorigin:- integrity:no https://www.userlane.com/wp-content/uploads/autoptimize/css/autoptimize_single_42e6b4eaad6247f76e5e38e3abd34f3a.css
- • stylesheet crossorigin:- integrity:no https://www.userlane.com/wp-content/uploads/autoptimize/css/autoptimize_single_443ec340845a883a6a2ca80fe1e30899.css
- • stylesheet crossorigin:- integrity:no https://www.userlane.com/wp-content/uploads/autoptimize/css/autoptimize_single_3679360c3686387ffd2ece86458b039e.css
- • stylesheet crossorigin:- integrity:no https://www.userlane.com/wp-content/uploads/autoptimize/css/autoptimize_single_19ae8a87eb36d29dc5184945f3a2b34f.css
- • stylesheet crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/css/owl.theme.default.min.css
- • stylesheet crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/css/owl.carousel.min.css
- • stylesheet crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/css/magnific-popup.min.css
- • stylesheet crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/css/swiper-bundle.min.css
- • stylesheet crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/css/odometer.min.css
- • stylesheet crossorigin:- integrity:no https://www.userlane.com/wp-content/uploads/autoptimize/css/autoptimize_single_14817e6e5025dadf482490087f9031ae.css
- • stylesheet crossorigin:- integrity:no https://www.userlane.com/wp-content/themes/userlane/base/css/bootstrap.min.css
- • stylesheet crossorigin:- integrity:no https://www.userlane.com/wp-content/uploads/autoptimize/css/autoptimize_single_69dab7d1afc0f00319590e5a54a27486.css
Images (25)
- • https://www.userlane.com/wp-content/themes/userlane/base/images/white-logo.svg
- • https://www.userlane.com/wp-content/themes/userlane/base/images/logo.svg
- • https://www.userlane.com/wp-content/themes/userlane/base/images/userlane-logomark__purple.svg
- • https://www.userlane.com/wp-content/uploads/2025/02/mercedes-logo.png
- • https://www.userlane.com/wp-content/uploads/2025/05/bmw_logo.png
- • https://www.userlane.com/wp-content/uploads/2025/12/National_Health_Service_England_logo.svg.png
- • https://www.userlane.com/wp-content/uploads/2026/03/logo2.png
- • https://www.userlane.com/wp-content/uploads/2026/03/logo5.png
- • https://www.userlane.com/wp-content/uploads/2026/03/logo7.svg
- • https://www.userlane.com/wp-content/uploads/2022/10/celonis-logo.svg
- • https://www.userlane.com/wp-content/uploads/2022/10/db-logo.svg
- • https://www.userlane.com/wp-content/uploads/2025/11/app-analytics.svg
- • https://www.userlane.com/wp-content/uploads/2025/11/upscale.svg
- • https://www.userlane.com//
- • https://www.userlane.com/wp-content/uploads/2026/03/iStock-2162895612.jpg
- • https://www.userlane.com/wp-content/uploads/2026/03/iStock-1500696964-e1773404408217.jpg
- • https://www.userlane.com/wp-content/uploads/2026/03/AdobeStock_1660043962-e1773404467527.jpeg
- • https://www.userlane.com/wp-content/uploads/2025/09/4666-1-300x200.jpg
- • https://www.userlane.com/wp-content/uploads/2025/07/praswin-prakashan-CxEUOs20Gec-unsplash-1-1-1-300x169.jpg
- • https://www.userlane.com/wp-content/uploads/2025/03/evaluation-of-software-training-article-300x200.jpg
- • https://www.userlane.com/wp-content/themes/userlane/base/images/logomark.svg
- • https://www.userlane.com/wp-content/themes/userlane/base/images/logomark-white.svg
- • https://www.userlane.com/wp-content/themes/userlane/base/images/bg/footer_disclosure.svg
- • https://www.userlane.com/wp-content/themes/userlane/base/images/icons/up-arrow.svg
- • https://www.userlane.com/wp-content/themes/userlane/base/images/icons/white-up-arrow.svg