{"id":15109,"date":"2025-12-26T16:59:47","date_gmt":"2025-12-26T11:29:47","guid":{"rendered":"https:\/\/utho.com\/blog\/?p=15109"},"modified":"2026-05-21T16:01:29","modified_gmt":"2026-05-21T10:31:29","slug":"complete-guide-python-data-types","status":"publish","type":"post","link":"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/","title":{"rendered":"A Complete Guide to Python Data Types for Modern Developers"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Learning data types is very important for anyone using Python, whether you make small scripts or big applications. Understanding python basics helps developers write clean and correct code. Python\u2019s data types help manage different kinds of information like numbers, text, or more complex data. For modern developers, knowing data types is important to make software that is easy to grow and maintain. Python also has new features like type hints, which make coding easier. This guide explains all main Python data types and covers python basics to help you make better coding choices.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What Are Data Types in Python?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Data types tell Python what kind of value a variable can have and what we can do with it. Everything in Python is data so knowing <strong>python basics<\/strong> is very important.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A data type decides if a value is a number text, true or false list dictionary set or something else. Python is smart and gives types to variables by itself. This is called dynamic typing. You do not have to tell Python the type yourself.<br><strong>For example:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even though Python gives types automatically developers still need to know data types to write good clean and fast programs. This is very important for working with data machine learning websites APIs and checking code quality. Python has many types built in like numbers, text lists, dictionaries sets true or false and more. You can also make your own types using classes. Python 3 lets you add type hints to make code easier to read and understand and reinforces <strong>python basics<\/strong> for all developers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Understanding data types helps developers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Optimize performance<\/li>\n\n\n\n<li>Avoid type-related bugs<\/li>\n\n\n\n<li>Improve readability<\/li>\n\n\n\n<li>Maintain large codebases<\/li>\n\n\n\n<li>Ensure predictable behavior in functions<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This section-along with the rest of the blog-will give you a deep, structured, developer-friendly understanding of Python\u2019s data types, enabling you to choose the right type in every situation.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"546\" src=\"https:\/\/utho.com\/blog\/wp-content\/uploads\/image2-1024x546.jpg\" alt=\"Python numeric data types\" class=\"wp-image-15115\" srcset=\"https:\/\/utho.com\/blog\/wp-content\/uploads\/image2-1024x546.jpg 1024w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image2-300x160.jpg 300w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image2-768x410.jpg 768w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image2-150x80.jpg 150w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image2.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Numeric Data Types of Python<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Python has many types of numbers that are easy to use. You can work with whole numbers, decimals , complex numbers and true\/false values. Numbers are very important for many programs like money calculations games, machine learning science projects and decision making. Knowing <strong>python basics<\/strong> helps beginners and advanced users understand how to use numbers correctly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Whole numbers are numbers without decimals like 1 2 100 or -5. You can use them for counting items, keeping scores or simple money calculations.<br>Decimal numbers are numbers with decimals like 3.14 0.5 or -7.2. You can use them when you need exact numbers like in prices, science experiments or measurements.<br>Complex numbers are special numbers like 2 + 3j used in advanced math and scientific calculations.<br>Boolean numbers are special numbers that are only True or False. They are used to check conditions or make decisions in programs like if a player has enough points or if a task is complete.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Python makes it simple to use numbers and do math. You can add, subtract, multiply, divide and do more complicated calculations easily. You can also use extra modules to do harder math work with very exact numbers and scientific calculations. These features make Python a great language for beginners and advanced programmers alike and reinforce python basics for anyone learning to work with numbers in games apps websites machine learning projects or science and finance programs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Below are the primary numeric data types in Python:<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. <\/strong><strong>int<\/strong><strong> (Integer)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Integers represent whole numbers-values without any fractional or decimal component. They can be positive, negative, or zero.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">a = 10<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">b = -42<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Python\u2019s handling of integers is one of its major strengths. Unlike languages such as C, C++, or Java that restrict integers to fixed memory sizes (like 32-bit or 64-bit), Python automatically adjusts the memory allocation based on the size of the number. This means Python can handle extremely large integers without overflow issues:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Great for cryptography<\/li>\n\n\n\n<li>Ideal for financial calculations involving big numbers<\/li>\n\n\n\n<li>Useful in scientific simulations requiring high numeric ranges<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Python\u2019s unlimited integer precision makes it more robust for applications where numeric overflow would otherwise cause errors or data corruption.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. <\/strong><strong>float<\/strong><strong> (Floating-Point Numbers)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Floats represent real numbers, which include decimal or fractional values.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">pi = 3.14159<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Under the hood, Python implements floats using<strong> 64-bit double-precision format<\/strong> based on the <strong>IEEE-754 standard.<\/strong> This ensures a balance between speed and accuracy, making floats suitable for scientific computing, machine learning algorithms, statistical modeling, engineering simulations, and data analysis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, because floats rely on binary fractions, certain decimal values cannot be represented with perfect accuracy. This sometimes results in small precision errors:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">0.1 + 0.2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># Output: 0.30000000000000004<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While these errors are normal in floating-point arithmetic, understanding them is critical when developing financial applications or systems requiring exact decimal values.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. <\/strong><strong>complex<\/strong><strong> (Complex Numbers)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Complex numbers consist of a real part and an imaginary part, written in Python using the j notation:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">z = 3 + 5j<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Python is one of the few programming languages that natively supports complex numbers without requiring external libraries. Developers can perform addition, subtraction, multiplication, division, trigonometric functions, and more with complex numbers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use cases include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Quantum computing<\/li>\n\n\n\n<li>Digital signal processing<\/li>\n\n\n\n<li>Electrical engineering calculations<\/li>\n\n\n\n<li>Physics simulations<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Complex numbers make Python uniquely powerful in domains where advanced mathematics is required.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. <\/strong><strong>bool<\/strong><strong> (Boolean)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Booleans represent truth values: True and False.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">x = True<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">y = False<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Interestingly, Booleans in Python are actually a subtype of integers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>True is interpreted as 1<\/li>\n\n\n\n<li>False is interpreted as 0<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This allows Booleans to be used in arithmetic expressions:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">True + True\u00a0 \u00a0 # Output: 2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">False + True \u00a0 # Output: 1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Booleans play a crucial role in conditional logic, loop control, comparisons, and decision-making in almost every Python program.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. Additional Numeric Modules<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beyond built-in numeric types, Python strengthens its numerical ecosystem with specialized libraries designed for precision, performance, and mathematical depth.<\/p>\n\n\n\n<h4 id=\"h-decimal\" class=\"wp-block-heading\"><strong>decimal<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Used for high-precision decimal arithmetic. Essential for banking, finance, and currency calculations where floating-point errors are unacceptable.<\/p>\n\n\n\n<h4 id=\"h-fractions\" class=\"wp-block-heading\"><strong>fractions<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Represents rational numbers as exact numerator\/denominator pairs. Ideal for scenarios requiring exact results rather than approximations.<\/p>\n\n\n\n<h4 id=\"h-math\" class=\"wp-block-heading\"><strong>math<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Provides advanced mathematical functions such as trigonometry, logarithms, constants (pi, e), factorials, and more. Highly optimized for performance.<\/p>\n\n\n\n<h4 id=\"h-random\" class=\"wp-block-heading\"><strong>random<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Useful for probabilistic models, simulations, testing, and generating pseudo-random numbers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These modules extend Python\u2019s numeric capabilities far beyond typical number operations, making it a go-to language for scientific research, engineering applications, and data-driven development.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Built-in Data Types in Python\u00a0<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Python has many built-in data types that are easy to use. These data types help developers store, organize and work with data easily. They are used in every Python program from small scripts to big projects like machine learning.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Python groups its data types into categories based on how they work and how data is stored. Knowing these categories is important for writing code that is faster, cleaner and easier to understand.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"696\" src=\"https:\/\/utho.com\/blog\/wp-content\/uploads\/image1-1024x696.jpg\" alt=\"Python built in data types overview\" class=\"wp-image-15116\" srcset=\"https:\/\/utho.com\/blog\/wp-content\/uploads\/image1-1024x696.jpg 1024w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image1-300x204.jpg 300w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image1-768x522.jpg 768w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image1-150x102.jpg 150w, https:\/\/utho.com\/blog\/wp-content\/uploads\/image1.jpg 1152w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Below is a deep dive into each category:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Text Type<\/strong><\/p>\n\n\n\n<h4 id=\"h-str-string\" class=\"wp-block-heading\"><strong>str<\/strong><strong> (String)<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">A <strong>string<\/strong> represents a sequence of Unicode characters. It is one of the most frequently used data types in Python.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">name = &#8220;Python&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Key characteristics of Python strings:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Immutable:<\/strong> Once created, a string cannot be changed. Any modification results in a new string object.<\/li>\n\n\n\n<li><strong>Unicode support:<\/strong> Python strings fully support international characters (Hindi, Chinese, Emojis, special symbols, etc.).<\/li>\n\n\n\n<li><strong>Rich functionality:<\/strong> Strings allow slicing, concatenation, formatting, searching, and transformation using built-in methods.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Use cases include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Text processing<\/li>\n\n\n\n<li>User input<\/li>\n\n\n\n<li>Log messages<\/li>\n\n\n\n<li>Configuration files<\/li>\n\n\n\n<li>NLP (Natural Language Processing)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Sequence Types<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These data types store ordered collections of items.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>list<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A <strong>list<\/strong> is a mutable sequence that can store heterogeneous data types-integers, strings, objects, or even other lists.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">nums = [1, 2, 3]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Core properties:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Mutable:<\/strong> Items can be added, removed, or changed.<\/li>\n\n\n\n<li><strong>Dynamic resizing:<\/strong> Grows\/shrinks automatically as elements are added or deleted.<\/li>\n\n\n\n<li><strong>Heterogeneous:<\/strong> Supports storing mixed data types.<\/li>\n\n\n\n<li><strong>Index-based access:<\/strong> Retrieval is fast using list[index].<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Lists are useful for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Managing datasets<\/li>\n\n\n\n<li>Building dynamic collections<\/li>\n\n\n\n<li>Storing results from loops<\/li>\n\n\n\n<li>Data transformation pipelines<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>tuple<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A <strong>tuple<\/strong> is an immutable, ordered collection of items.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">coords = (10, 20)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Core properties:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Immutable:<\/strong> Once created, elements cannot be modified.<\/li>\n\n\n\n<li><strong>Lightweight:<\/strong> Faster and more memory-efficient than lists.<\/li>\n\n\n\n<li><strong>Used for fixed data:<\/strong> Ideal for values that must not change, such as coordinates, configurations, and metadata.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Tuples are commonly used in:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Function returns (multiple values)<\/li>\n\n\n\n<li>Database records<\/li>\n\n\n\n<li>Hashable types for dictionary keys<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>range<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">range represents a sequence of numbers, often used in loops:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">r = range(1, 10)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Range objects:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Do not generate numbers immediately (lazy evaluation)<\/li>\n\n\n\n<li>Are memory-efficient<\/li>\n\n\n\n<li>Provide fast iteration<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Perfect for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Loop counters<\/li>\n\n\n\n<li>Generating sequences<\/li>\n\n\n\n<li>Mathematical series<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Mapping Type<\/strong><\/p>\n\n\n\n<h4 id=\"h-dict-dictionary\" class=\"wp-block-heading\"><strong>dict<\/strong><strong> (Dictionary)<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">A dictionary stores data in <em>key-value<\/em> pairs and is one of the most powerful and widely used Python data structures.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">student = {&#8220;name&#8221;: &#8220;John&#8221;, &#8220;age&#8221;: 22}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Key characteristics:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Fast lookup:<\/strong> Dictionaries use hashing, making searches extremely quick.<\/li>\n\n\n\n<li><strong>Mutable:<\/strong> Keys and values can be added, removed, or modified.<\/li>\n\n\n\n<li><strong>Flexible:<\/strong> Keys must be unique and hashable; values can be anything.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Use cases:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Storing JSON-like data<\/li>\n\n\n\n<li>API responses<\/li>\n\n\n\n<li>Caching<\/li>\n\n\n\n<li>User profiles<\/li>\n\n\n\n<li>Configurations and environment variables<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Dictionaries are crucial in modern Python apps, especially in web, ML, and data engineering workflows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. Set Types<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A set is an <strong>unordered collection<\/strong> of unique items. Useful when you want to avoid duplicate values.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>set<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">s = {1, 2, 3}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Key properties:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>No duplicates allowed<\/strong><\/li>\n\n\n\n<li><strong>Mutable and dynamic<\/strong><\/li>\n\n\n\n<li><strong>Extremely fast for membership checks<\/strong> (in, not in)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Great for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Removing duplicates<\/li>\n\n\n\n<li>Mathematical operations (union, intersection, difference)<\/li>\n\n\n\n<li>Fast membership testing<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>frozenset<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An immutable version of a set.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Key uses:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>When a set needs to be hashable<\/li>\n\n\n\n<li>When storing inside dictionaries or other sets<\/li>\n\n\n\n<li>For fixed, read-only sets of unique data<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. Boolean Type<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Already covered under numeric types, but essential to mention here:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Represents truth values: True and False<\/li>\n\n\n\n<li>Frequently used in:<br>\n<ul class=\"wp-block-list\">\n<li>Conditional statements<\/li>\n\n\n\n<li>Loops<\/li>\n\n\n\n<li>Comparisons<\/li>\n\n\n\n<li>Logical operations<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Booleans form the foundation of program flow control.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>6. Binary Types<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Designed for handling raw binary data, bytes, and memory-efficient operations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Includes:<\/p>\n\n\n\n<h4 id=\"h-bytes\" class=\"wp-block-heading\"><strong>bytes<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Immutable sequences of bytes (0\u2013255).<br>Used in:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>File handling<\/li>\n\n\n\n<li>Image\/audio data<\/li>\n\n\n\n<li>Compression<\/li>\n<\/ul>\n\n\n\n<h4 id=\"h-bytearray\" class=\"wp-block-heading\"><strong>bytearray<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Mutable version of bytes.<br>Used when binary data must be modified.<\/p>\n\n\n\n<h4 id=\"h-memoryview\" class=\"wp-block-heading\"><strong>memoryview<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Provides a view into binary data without copying it-very efficient for large data blocks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Important in:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Network communication<\/li>\n\n\n\n<li>Buffer handling<\/li>\n\n\n\n<li>High-performance applications<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why Built-in Data Types Matter<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Python\u2019s built-in data types are optimized for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Speed<\/li>\n\n\n\n<li>Flexibility<\/li>\n\n\n\n<li>Memory efficiency<\/li>\n\n\n\n<li>Real-world application needs<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">They form the foundation for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Algorithms<\/li>\n\n\n\n<li>APIs and backend systems<\/li>\n\n\n\n<li>Machine learning pipelines<\/li>\n\n\n\n<li>Enterprise-grade applications<\/li>\n\n\n\n<li>Data analysis workflows<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Mastering these types ensures better performance, cleaner code, and improved problem-solving as a Python developer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Choosing the Right Data Type<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The ability to choose the correct data type determines:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Application performance<\/li>\n\n\n\n<li>Memory usage<\/li>\n\n\n\n<li>Code readability<\/li>\n\n\n\n<li>Bug prevention<\/li>\n<\/ul>\n\n\n\n<h3 id=\"h-when-to-use-which-data-type\" class=\"wp-block-heading\"><strong>When to use which data type?<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Purpose<\/strong><\/td><td><strong>Best Data Type<\/strong><\/td><\/tr><tr><td>Store structured key-value data<\/td><td>dict<\/td><\/tr><tr><td>Maintain order + indexing<\/td><td>list<\/td><\/tr><tr><td>Protect data from modification<\/td><td>tuple<\/td><\/tr><tr><td>Fast membership tests<\/td><td>set<\/td><\/tr><tr><td>Real numbers or decimal precision<\/td><td>float \/ decimal<\/td><\/tr><tr><td>Store raw binary data<\/td><td>bytes<\/td><\/tr><tr><td>Use simple yes\/no values<\/td><td>bool<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 id=\"h-choosing-based-on-mutability\" class=\"wp-block-heading\"><strong>Choosing based on mutability<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <strong>tuples<\/strong> instead of <strong>lists<\/strong> when immutability is required.<\/li>\n\n\n\n<li>Use <strong>frozenset<\/strong> instead of <strong>set<\/strong> when modifying is not allowed.<\/li>\n<\/ul>\n\n\n\n<h3 id=\"h-choosing-based-on-operation-speed\" class=\"wp-block-heading\"><strong>Choosing based on operation speed<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dictionaries and sets are faster for lookups.<\/li>\n\n\n\n<li>Lists are better for ordered data and slicing.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Choosing the right type ensures your code remains efficient and clear.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Type Hints and Annotations (Python 3.5+)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Type hinting revolutionized Python by adding static typing capabilities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">def add(a: int, b: int) -> int:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0return a + b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Benefits:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Better IDE support<\/li>\n\n\n\n<li>Fewer bugs<\/li>\n\n\n\n<li>Cleaner documentation<\/li>\n\n\n\n<li>Helps large teams maintain code<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Python supports:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Basic types (int, str, float)<\/li>\n\n\n\n<li>Generic types (list[int], dict[str, int])<\/li>\n\n\n\n<li>Optional types (Optional[str])<\/li>\n\n\n\n<li>Union types (int | str)<\/li>\n\n\n\n<li>Custom classes as types<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Type hints bridge the gap between Python\u2019s dynamic nature and modern development practices requiring consistency and clarity.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Advanced and Custom Data Types<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Python allows creating <strong>custom classes<\/strong> to serve as new data types.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">class Vehicle:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0def __init__(self, model: str, speed: int):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.model = model<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self.speed = speed<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Additionally, advanced data structures include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>NamedTuple<\/li>\n\n\n\n<li>dataclasses<\/li>\n\n\n\n<li>Enum<\/li>\n\n\n\n<li>TypedDict<\/li>\n\n\n\n<li>User-defined classes<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These provide flexibility to structure data optimally for complex projects.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Common Mistakes and Tips<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Confusing mutable vs immutable types<\/li>\n\n\n\n<li>Using lists where sets are needed<\/li>\n\n\n\n<li>Misusing floats in financial calculations<\/li>\n\n\n\n<li>Failing to use type hints<\/li>\n\n\n\n<li>Unintentionally modifying shared data structures<\/li>\n\n\n\n<li>Overusing dictionaries where classes are better<\/li>\n\n\n\n<li>Avoiding built-ins like enumerate, zip, map<\/li>\n<\/ol>\n\n\n\n<h3 id=\"h-tips-for-developers\" class=\"wp-block-heading\"><strong>Tips for developers:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Always choose the smallest effective data type<\/li>\n\n\n\n<li>Use type hints in all modern codebases<\/li>\n\n\n\n<li>Prefer immutable types for safety<\/li>\n\n\n\n<li>Use standard libraries before reinventing structures<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Python data types are very important for every program script and system made with Python. They help you work with numbers, text lists and other data easily. Knowing data types is important to write clean, easy to understand and fast code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As Python grows and improves learning, built in types, type hints and custom data structures will help you make modern professional and bigger programs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>FAQs<\/strong><\/h2>\n\n\n\n<h3 id=\"h-1-why-are-data-types-important-in-python\" class=\"wp-block-heading\"><strong>1. Why are data types important in Python?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">They determine how data behaves and what operations are allowed.<\/p>\n\n\n\n<h3 id=\"h-2-does-python-support-static-typing\" class=\"wp-block-heading\"><strong>2. Does Python support static typing?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, through type hints introduced in Python 3.5+.<\/p>\n\n\n\n<h3 id=\"h-3-are-lists-or-tuples-faster\" class=\"wp-block-heading\"><strong>3. Are lists or tuples faster?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tuples are faster because they are immutable.<\/p>\n\n\n\n<h3 id=\"h-4-what-type-should-i-use-for-financial-calculations\" class=\"wp-block-heading\"><strong>4. What type should I use for financial calculations?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Use the decimal module for precision.<\/p>\n\n\n\n<h3 id=\"h-5-what-is-the-most-commonly-used-data-type-in-python\" class=\"wp-block-heading\"><strong>5. What is the most commonly used data type in Python?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Lists and dictionaries are the most widely used.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learning data types is very important for anyone using Python, whether you make small scripts or big applications. Understanding python basics helps developers write clean and correct code. Python\u2019s data types help manage different kinds of information like numbers, text, or more complex data. For modern developers, knowing data types is important to make software [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":15110,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"{\"document\":\"AAAHwsSfyhK2HtAYCLgBvimeAZwBnAKqFDSMcjSUUDSAHjSQCZgBnAGOAZQQlAO+BpwDqgaIA4IHkAOuDbgBth+GBIAMNJgUNLAeNJQTNJYVNLYQNKwSNLYKNKYJmgS8CzSmDzSkHzSMDDSAEDS8DzSWBDSgFowDnAQ0ogacA6AEoAOyBzSKDjSEDDSmGDSECaYELKYTKKgEjgE0lAm8BI4BNJIUlAGcAZgBkAM0kAw0ih2WApwBlAKcAZQCnAQ0kBM0tBSGBI4BNI4inAWYBIgFvAOsBLIDiAaiA4wGhgQIAgECCgJCSgCkEgECCgJCSgCwAQECCgJCSgC4BQECCgKMB84HSgCwCAECCgINAAIMAgwCDALGAUoAoAEBAgoCGFpKAIIBAQIKAkJKAJoQAQIKAkJKAKYBAQIKAQ1KLAIBAgoCTAA4AQIKAkwAPgECCgJMADYBAgoCTACAAQECCgJM2gS6BQECCgJCSgCUBgECCgEDSgAaAQIKAkJKAKwBAQIKAkJKAJAMAQIKAkJKAIwTAQIKAkJKAJYPAQIKAkJKAJoCAQIKAkJKAJgCAQIKAkJKAIwEAQIKAkJKAB4BAgoCQkoAIAECCgJCSgCuCgECCgENSiwCAQIKAkwAPAECCgJMALwBAQIKAkzmA7IFAQIKAkJKALYEAQIKAkJKALoCAQIKAkJKAKYCAQIKAkJKACoBAgoCQkoAtgoBAgoCQkoAoAUBAgoCQkoAJAECCgJCSgCMAQECCgJCSgCqBQECCgJCSgCwAgECCgJCSgCcAwECCgJCSgAmAQIKAkJKAIgIAQIKAkJKADYBAgoBDUosAgECCgJMADIBAgoCTACCAQECCgJMAJYBAQIKAkz4A64EAQIKAkJKAJIDAQIKAkJKAJoCAQIKAkJKALIBAQIKAkJKACIBAgoCQkoAJAECCgJCSgCcAgECCgENSiwCAQIKAkwAgAEBAgoCTO4BsAIBAgoCQkoAhgIBAgoCFgwCDHJKAJoBAQIKAhoMaEoAkAEBAgoCQkoAlAQBAgoCQkoArgEBAgoCQkoAlAUBAgoCQgBKAIQBAQIKAkJKALgEAQIKAkIASgCIAQECCgJCSgCkBAECCgJCAEoAPgECCgJCSgC8BAECCgJCAEoAggEBAgoCQkoAigMBAgoCQkoAmAYBAgoCigEM2AFKALoBAQIKAkJKAJwHAQIKAkJKAJoGAQIKAQNKABoBAgoCQkoAogEBAgoCQkoAjAEBAgoCQgBKALABAQIKAkJKAJYEAQIKAkJKADABAgoCQkoAngEBAgoBDUosAgECCgJMALwDAQIKAkwAoAQBAgoCTMoJsg0BAgoCQkoANgECCgENSiwCAQIKAkwALgECCgJMACQBAgoCTAAoAQIKAkwANgECCgJM3gOwBAECCgJCSgCWAQECCgJCSgC6AQECCgJCSgA8AQIKAkJKAJ4EAQIKAkJKADIBAgoCQkoAMgECCgENSiwCAQIKAkwAlAIBAgoCTACQAwECCgJMAJQCAQIKAkzmCIgLAQIKAkJKADwBAgoBDUosAgECCgJMADIBAgoCTACIAQECCgJMAIQBAQIKAkzsA7YEAQIKAkJKAD4BAgoCQkoAngIBAgoCQkoANAECCgJCSgAyAQIKAQ1KLAIBAgoCTACcAgECCgJMAKQCAQIKAkzuBbwJAQIKAkJKAIoBAQIKAQ1KLAIBAgoCTACUAQECCgJMADABAgoCTPIChgQBAgoCQkoAPgECCgJCSgCKAgECCgJCSgAyAQIKAkJKAC4BAgoBDUosAgECCgJMALoBAQIKAkwAOAECCgJM4AOcBAECCgJCSgAqAQIKAQ1KLAIBAgoCTAAqAQIKAkwAOAECCgJM0AKGAwECCgJCSgCSAQECCgJCAEoAugEBAgoCQkoAigQBAgoCQkoAnAEBAgoCQkoAOgECCgENSiwCAQIKAkwAgAMBAgoCTACqAgECCgJM2AaQCQECCgJCSgAmAQIKAQ1KLAIBAgoCTAA8AQIKAkwAKgECCgJMAB4BAgoCTAAqAQIKAkzcA7wEAQIKAkJKAJ4DAQIKAkJKAIwBAQIKAkJKALYDAQIKAkJKADoBAgoCQkoALAECCgJCSgAwAQIKAQ1KLAIBAgoCTACcAQECCgJMAJgBAQIKAkziA7YFAQIKAkJKACYBAgoBDUosAgECCgJMADYBAgoCTACCAgECCgJM5gOkBAECCgJCSgCGAQECCgJCSgCOAQECCgJCSgAkAQIKAQ1KLAIBAgoCTACOAQECCgJMAKwBAQIKAkzoA4gFAQIKAkJKAJIBAQIKAkJKAJgCAQIKAQ1KLAIBAgoCTACeAQECCgJMPAIBAgoBDUosAgECCgJMADwBAgoCTAAaAQIKAkwAJgECCgJM9AWoBgECCgJCSgC8AQECCgJCSgCSAQECCgJCSgCuAgECCgJCSgAkAQIKAkIASgCAAQECCgJCSgC0AQECCgENSiwCAQIKAkwAKgECCgJMADABAgoCTMgCrgIBAgoCQgBKAIgBAQIKAkJKAJoCAQIKAkIASgCKAQECCgJCSgCEAwECCgJCSgAsAQIKAQ1KLAIBAgoCTAA6AQIKAkwALgECCgJM1gKgAwECCgJCSgCwAQECCgJCSgCwAQECCgENSiwCAQIKAkwAGgECCgJMACYBAgoCTAAyAQIKAkzgAqgDAQIKAkJKAIwBAQIKAQ1KLAIBAgoCTAAkAQIKAkwAgAEBAgoCTACEAQECCgJMAIoBAQIKAkzgBJ4FAQIKAkJKALgDAQIKAkJKAKwBAQIKAkJKAIACAQIKAQ1KLAIBAgoCTAA+AQIKAkwAKAECCgJMADABAgoCTMQDsAMBAgoCQgBKAK4BAQIKAQ5KADABAgoCQgBKAK4BAQIKAQ1KLAIBAgoCTACIAwECCgJM9gOABwECCgJCAEoAuAEBAgoBDUosAgECCgJMAKoBAQIKAkzYAoQEAQIKAkJKAJ4CAQIKAkJKAIQCAQIKAkJKAKICAQIKAkJKACIBAgoCMgh8SgCWAQECCgIwckoAmgEBAgoCQkoAJAECCgENSiwCAQIKAkwANAECCgJMACQBAgoCTAA6AQIKAkzAA44EAQIKAkJKADIBAgoBDUosAgECCgJMAIoBAQIKAkwAogEBAgoCTACMAQECCgJMAD4BAgoCTOQFogYBAgoCQkoAjAQBAgoCQkoAsAEBAgoCQkoAtgIBAgoCQkoALgECCgIwckoAmAIBAgoCBgKaAeQBSgCWAgECCgIGApoB5AFKAJYCAQIKAkJKALABAQIKAQ1KLAIBAgoCTAAkAQIKAkwAJgECCgJMABgBAgoCTAAiAQIKAkzyAqoDAQIKAkJKAKgCAQIKAkJKAKQBAQIKAQ1KLAIBAgoCTACYAQECCgJMAJIBAQIKAkwAogEBAgoCTACCAQECCgJMALABAQIKAkwArgEBAgoCTNoJgAsBAgoCQgBKAJ4BAQIKAQ1KLAIBAgoCTACsAQECCgJMAJwBAQIKAkwAkgEBAgoCTMgFgAcBAgoCQkoAiAEBAgoCQkoAsAcBAgoCQkoAggUBAgoCQkoAPAECCgJCAEoAigIBAgoCQkoAkgIBAgoCQgBKAIACAQIKAkJKALYBAQIKAkIASgCyAQECCgJCSgCsAQECCgJCAEoAoAIBAgoCQkoAnAEBAgoCQgBKAKICAQIKAkJK1K4EIhjaAhYPAfAJqroE1LME2AeCvAQBAQgASAAKEgMBRgMBwp8EBgMBBAMBmlEGAwEEAwG8NwYDAQQDAZgPBgMBBAMBsgQOkAGcKYYaBgMBBAMBkg4GAwEEAwGoDgYDAQQDAa4LBgMBBAMBogkGAwEEAwGwCgYDAQQDAZgIBgMBBAMBsAQGAwEEAwGcDAYDAQQDAaAJBgMBBAMBnA8GAwEEAwGGBgYDAQQDAYYHBgMBBAMBnAgGAwEEAwGmDwYDAQQDAbQKBgMBBAMBqgYGAwEEAwGeBAYDAQQDAawMBgMBBAMBigUEAwIEAwGGAgYDAQQDAaIIBgMBBAMBggymAgYDAQQDAaoEBgMBBAMB2okMgBqAc4hRtB6ECrQCohGSCoYKigq+EK4hhhCMFaQfiBSKFqoRoBOqC5oKlhCaEJgggA20ELAQigWUF6gHlge8B5ILvg64DJoZuAmSBY4UtgWICooGhhWwAqgEhA2+HbIDsAOwBoQUqBWUBYIjtAmECZ4IqgmZAZDcCOwBDwHaApYBsLMEAwHKgAMOkAGcKa70ASSAF5gClgLwnQyAGoBziFG0HoQKtAKiEZIKhgqKCr4QriGGEIwVpB+IFIoWqhGgE6oLmgqWEJoQmCCADbQQsBCKBZQXqAeWB7wHkgu+DrgMmhm4CZIFjhS2BYgKigaGFbACqASEDb4dsgOwA7AGhBSoFZQFgiO0CYQJngiqCbYcKAMnAAQAJwAEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEACcAKAYnACgCJwAHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEAIQAKAAnAIcAKAMnAQQAhAgoACcAhwAoAycBBACEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwAoDycABwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACgAJwCHACgDJwAoAScAKAInAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnACgPJwAHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwAoDycABwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnACgPJwAHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAhAMoACcAhwAoAycBBACEASgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgBJwCHACgDJwEEACgAJwCHACgDJwEEACgBJwCHACgDJwEEACgAJwCHACgDJwEEACgBJwCHACgDJwEEACgAJwCHACgDJwEEACgBJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEAIQBKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnACgBJwAoAicAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoAScAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycAKA8nAAcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAKAAnAIcAKAMnACgPJwAHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnACgPJwAHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAoACcAhwAoAycAKA8nAAcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwAoDycABwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAoACcAhwAoAycAKA8nAAcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnACgPJwAHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACgAJwCHACgDJwAoDycABwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAoACcAhwAoAycBBAAoAScAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycAKA8nAAcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAKAAnAIcAKAMnACgPJwAHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnACgPJwAHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACgAJwCHACgDJwAoDycABwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycAKA8nAAcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnACgPJwAHACgDJwEEACcAhwAoAycBBAAnAAcAKAMnACgPJwAHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoAScAhwAoAycBBAAoACcAhwAoAycAKA8nAAcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAKAEnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAEnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnACgPJwAHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwAoDycABwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAKAAnAIcAKAMnACgPJwAHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnAQQAKAAnAIcAKAMnACgPJwAHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAoAScAhwAoAycAKAAnACgOJwCHACgDJwEEACgBJwCHACgDJwAoDycABwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACgBJwCHACgDJwAoDycABwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEAIQBKAAnAIcAKAMnAQQAhAAoACcAhwAoAycBBAAoACcAhwAoAycAKA8nAAcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACgAJwCHACgDJwAoDycABwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEAIQAKAAnAIcAKAMnAQQAhAIoACcAhwAoAycBBACEAigAJwCHACgDJwEEACgAJwCHACgDJwAoDycABwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwAoDycABwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAKAEnAIcAKAMnACgPJwAHACgDJwEEACcAhwAoAycBBAAnAIcAKAMnAQQAJwCHACgDJwEEACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoACcAhwAoAycBBAAoAScAhwAoAycBBAAoACcAhwAoAycBBAAoAScAhwAoAycBBAAoACcAhwAoAycBBAAoAScAhwAoAycBBAAoACcAhwAoAycBBAAoAScAhwAoAycBBAAoACcAhwAoAycBBAAoAScAhwAoAycBBAAoACcAKAGoAMQAhACoAMQDqAHEAMcAKAInASgAJwAoAAQAhAPEA6gjxAOoxgHEAEQAqBFEAsT76ATjzgRzdGF0ZXZlcnNpb25kb2N1bWVudGRhdGVkb2N1bWVudHNsdWdkb2N1bWVudHN0YXR1c2RvY3VtZW50dGl0bGVBIENvbXBsZXRlIEd1aWRlIHRvIFB5dGhvbiBEYXRhIFR5cGVzIGZvciBNb2Rlcm4gRGV2ZWxvcGVyc2RvY3VtZW50Y29udGVudDwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5MZWFybmluZyBkYXRhIHR5cGVzIGlzIHZlcnkgaW1wb3J0YW50IGZvciBhbnlvbmUgdXNpbmcgUHl0aG9uLCB3aGV0aGVyIHlvdSBtYWtlIHNtYWxsIHNjcmlwdHMgb3IgYmlnIGFwcGxpY2F0aW9ucy4gVW5kZXJzdGFuZGluZyBweXRob24gYmFzaWNzIGhlbHBzIGRldmVsb3BlcnMgd3JpdGUgY2xlYW4gYW5kIGNvcnJlY3QgY29kZS4gUHl0aG9u4oCZcyBkYXRhIHR5cGVzIGhlbHAgbWFuYWdlIGRpZmZlcmVudCBraW5kcyBvZiBpbmZvcm1hdGlvbiBsaWtlIG51bWJlcnMsIHRleHQsIG9yIG1vcmUgY29tcGxleCBkYXRhLiBGb3IgbW9kZXJuIGRldmVsb3BlcnMsIGtub3dpbmcgZGF0YSB0eXBlcyBpcyBpbXBvcnRhbnQgdG8gbWFrZSBzb2Z0d2FyZSB0aGF0IGlzIGVhc3kgdG8gZ3JvdyBhbmQgbWFpbnRhaW4uIFB5dGhvbiBhbHNvIGhhcyBuZXcgZmVhdHVyZXMgbGlrZSB0eXBlIGhpbnRzLCB3aGljaCBtYWtlIGNvZGluZyBlYXNpZXIuIFRoaXMgZ3VpZGUgZXhwbGFpbnMgYWxsIG1haW4gUHl0aG9uIGRhdGEgdHlwZXMgYW5kIGNvdmVycyBweXRob24gYmFzaWNzIHRvIGhlbHAgeW91IG1ha2UgYmV0dGVyIGNvZGluZyBjaG9pY2VzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+V2hhdCBBcmUgRGF0YSBUeXBlcyBpbiBQeXRob24\/PC9zdHJvbmc+PC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5EYXRhIHR5cGVzIHRlbGwgUHl0aG9uIHdoYXQga2luZCBvZiB2YWx1ZSBhIHZhcmlhYmxlIGNhbiBoYXZlIGFuZCB3aGF0IHdlIGNhbiBkbyB3aXRoIGl0LiBFdmVyeXRoaW5nIGluIFB5dGhvbiBpcyBkYXRhIHNvIGtub3dpbmcgPHN0cm9uZz5weXRob24gYmFzaWNzPC9zdHJvbmc+IGlzIHZlcnkgaW1wb3J0YW50LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkEgZGF0YSB0eXBlIGRlY2lkZXMgaWYgYSB2YWx1ZSBpcyBhIG51bWJlciB0ZXh0LCB0cnVlIG9yIGZhbHNlIGxpc3QgZGljdGlvbmFyeSBzZXQgb3Igc29tZXRoaW5nIGVsc2UuIFB5dGhvbiBpcyBzbWFydCBhbmQgZ2l2ZXMgdHlwZXMgdG8gdmFyaWFibGVzIGJ5IGl0c2VsZi4gVGhpcyBpcyBjYWxsZWQgZHluYW1pYyB0eXBpbmcuIFlvdSBkbyBub3QgaGF2ZSB0byB0ZWxsIFB5dGhvbiB0aGUgdHlwZSB5b3Vyc2VsZi48YnI+PHN0cm9uZz5Gb3IgZXhhbXBsZTo8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+RXZlbiB0aG91Z2ggUHl0aG9uIGdpdmVzIHR5cGVzIGF1dG9tYXRpY2FsbHkgZGV2ZWxvcGVycyBzdGlsbCBuZWVkIHRvIGtub3cgZGF0YSB0eXBlcyB0byB3cml0ZSBnb29kIGNsZWFuIGFuZCBmYXN0IHByb2dyYW1zLiBUaGlzIGlzIHZlcnkgaW1wb3J0YW50IGZvciB3b3JraW5nIHdpdGggZGF0YSBtYWNoaW5lIGxlYXJuaW5nIHdlYnNpdGVzIEFQSXMgYW5kIGNoZWNraW5nIGNvZGUgcXVhbGl0eS4gUHl0aG9uIGhhcyBtYW55IHR5cGVzIGJ1aWx0IGluIGxpa2UgbnVtYmVycywgdGV4dCBsaXN0cywgZGljdGlvbmFyaWVzIHNldHMgdHJ1ZSBvciBmYWxzZSBhbmQgbW9yZS4gWW91IGNhbiBhbHNvIG1ha2UgeW91ciBvd24gdHlwZXMgdXNpbmcgY2xhc3Nlcy4gUHl0aG9uIDMgbGV0cyB5b3UgYWRkIHR5cGUgaGludHMgdG8gbWFrZSBjb2RlIGVhc2llciB0byByZWFkIGFuZCB1bmRlcnN0YW5kIGFuZCByZWluZm9yY2VzIDxzdHJvbmc+cHl0aG9uIGJhc2ljczwvc3Ryb25nPiBmb3IgYWxsIGRldmVsb3BlcnMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VW5kZXJzdGFuZGluZyBkYXRhIHR5cGVzIGhlbHBzIGRldmVsb3BlcnM6PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmxpc3QgLS0+CjxsaT5PcHRpbWl6ZSBwZXJmb3JtYW5jZTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QXZvaWQgdHlwZS1yZWxhdGVkIGJ1Z3M8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkltcHJvdmUgcmVhZGFiaWxpdHk8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPk1haW50YWluIGxhcmdlIGNvZGViYXNlczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+RW5zdXJlIHByZWRpY3RhYmxlIGJlaGF2aW9yIGluIGZ1bmN0aW9uczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoaXMgc2VjdGlvbi1hbG9uZyB3aXRoIHRoZSByZXN0IG9mIHRoZSBibG9nLXdpbGwgZ2l2ZSB5b3UgYSBkZWVwLCBzdHJ1Y3R1cmVkLCBkZXZlbG9wZXItZnJpZW5kbHkgdW5kZXJzdGFuZGluZyBvZiBQeXRob27igJlzIGRhdGEgdHlwZXMsIGVuYWJsaW5nIHlvdSB0byBjaG9vc2UgdGhlIHJpZ2h0IHR5cGUgaW4gZXZlcnkgc2l0dWF0aW9uLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDppbWFnZSB7ImlkIjoxNTExNSwic2l6ZVNsdWciOiJsYXJnZSIsImxpbmtEZXN0aW5hdGlvbiI6Im5vbmUifSAtLT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBzcmM9Imh0dHBzOi8vdXRoby5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvaW1hZ2UyLTEwMjR4NTQ2LmpwZyIgYWx0PSJQeXRob24gbnVtZXJpYyBkYXRhIHR5cGVzIiBjbGFzcz0id3AtaW1hZ2UtMTUxMTUiLz48L2ZpZ3VyZT4KPCEtLSAvd3A6aW1hZ2UgLS0+Cgo8IS0tIHdwOmhlYWRpbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz5OdW1lcmljIERhdGEgVHlwZXMgb2YgUHl0aG9uPC9zdHJvbmc+PC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5QeXRob24gaGFzIG1hbnkgdHlwZXMgb2YgbnVtYmVycyB0aGF0IGFyZSBlYXN5IHRvIHVzZS4gWW91IGNhbiB3b3JrIHdpdGggd2hvbGUgbnVtYmVycywgZGVjaW1hbHMgLCBjb21wbGV4IG51bWJlcnMgYW5kIHRydWUvZmFsc2UgdmFsdWVzLiBOdW1iZXJzIGFyZSB2ZXJ5IGltcG9ydGFudCBmb3IgbWFueSBwcm9ncmFtcyBsaWtlIG1vbmV5IGNhbGN1bGF0aW9ucyBnYW1lcywgbWFjaGluZSBsZWFybmluZyBzY2llbmNlIHByb2plY3RzIGFuZCBkZWNpc2lvbiBtYWtpbmcuIEtub3dpbmcgPHN0cm9uZz5weXRob24gYmFzaWNzPC9zdHJvbmc+IGhlbHBzIGJlZ2lubmVycyBhbmQgYWR2YW5jZWQgdXNlcnMgdW5kZXJzdGFuZCBob3cgdG8gdXNlIG51bWJlcnMgY29ycmVjdGx5LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPldob2xlIG51bWJlcnMgYXJlIG51bWJlcnMgd2l0aG91dCBkZWNpbWFscyBsaWtlIDEgMiAxMDAgb3IgLTUuIFlvdSBjYW4gdXNlIHRoZW0gZm9yIGNvdW50aW5nIGl0ZW1zLCBrZWVwaW5nIHNjb3JlcyBvciBzaW1wbGUgbW9uZXkgY2FsY3VsYXRpb25zLjxicj5EZWNpbWFsIG51bWJlcnMgYXJlIG51bWJlcnMgd2l0aCBkZWNpbWFscyBsaWtlIDMuMTQgMC41IG9yIC03LjIuIFlvdSBjYW4gdXNlIHRoZW0gd2hlbiB5b3UgbmVlZCBleGFjdCBudW1iZXJzIGxpa2UgaW4gcHJpY2VzLCBzY2llbmNlIGV4cGVyaW1lbnRzIG9yIG1lYXN1cmVtZW50cy48YnI+Q29tcGxleCBudW1iZXJzIGFyZSBzcGVjaWFsIG51bWJlcnMgbGlrZSAyICsgM2ogdXNlZCBpbiBhZHZhbmNlZCBtYXRoIGFuZCBzY2llbnRpZmljIGNhbGN1bGF0aW9ucy48YnI+Qm9vbGVhbiBudW1iZXJzIGFyZSBzcGVjaWFsIG51bWJlcnMgdGhhdCBhcmUgb25seSBUcnVlIG9yIEZhbHNlLiBUaGV5IGFyZSB1c2VkIHRvIGNoZWNrIGNvbmRpdGlvbnMgb3IgbWFrZSBkZWNpc2lvbnMgaW4gcHJvZ3JhbXMgbGlrZSBpZiBhIHBsYXllciBoYXMgZW5vdWdoIHBvaW50cyBvciBpZiBhIHRhc2sgaXMgY29tcGxldGUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UHl0aG9uIG1ha2VzIGl0IHNpbXBsZSB0byB1c2UgbnVtYmVycyBhbmQgZG8gbWF0aC4gWW91IGNhbiBhZGQsIHN1YnRyYWN0LCBtdWx0aXBseSwgZGl2aWRlIGFuZCBkbyBtb3JlIGNvbXBsaWNhdGVkIGNhbGN1bGF0aW9ucyBlYXNpbHkuIFlvdSBjYW4gYWxzbyB1c2UgZXh0cmEgbW9kdWxlcyB0byBkbyBoYXJkZXIgbWF0aCB3b3JrIHdpdGggdmVyeSBleGFjdCBudW1iZXJzIGFuZCBzY2llbnRpZmljIGNhbGN1bGF0aW9ucy4gVGhlc2UgZmVhdHVyZXMgbWFrZSBQeXRob24gYSBncmVhdCBsYW5ndWFnZSBmb3IgYmVnaW5uZXJzIGFuZCBhZHZhbmNlZCBwcm9ncmFtbWVycyBhbGlrZSBhbmQgcmVpbmZvcmNlIHB5dGhvbiBiYXNpY3MgZm9yIGFueW9uZSBsZWFybmluZyB0byB3b3JrIHdpdGggbnVtYmVycyBpbiBnYW1lcyBhcHBzIHdlYnNpdGVzIG1hY2hpbmUgbGVhcm5pbmcgcHJvamVjdHMgb3Igc2NpZW5jZSBhbmQgZmluYW5jZSBwcm9ncmFtcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyAtLT4KPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPkJlbG93IGFyZSB0aGUgcHJpbWFyeSBudW1lcmljIGRhdGEgdHlwZXMgaW4gUHl0aG9uOjwvc3Ryb25nPjwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz4xLiA8L3N0cm9uZz48c3Ryb25nPmludDwvc3Ryb25nPjxzdHJvbmc+IChJbnRlZ2VyKTwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkludGVnZXJzIHJlcHJlc2VudCB3aG9sZSBudW1iZXJzLXZhbHVlcyB3aXRob3V0IGFueSBmcmFjdGlvbmFsIG9yIGRlY2ltYWwgY29tcG9uZW50LiBUaGV5IGNhbiBiZSBwb3NpdGl2ZSwgbmVnYXRpdmUsIG9yIHplcm8uPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+YSA9IDEwPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+YiA9IC00MjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlB5dGhvbuKAmXMgaGFuZGxpbmcgb2YgaW50ZWdlcnMgaXMgb25lIG9mIGl0cyBtYWpvciBzdHJlbmd0aHMuIFVubGlrZSBsYW5ndWFnZXMgc3VjaCBhcyBDLCBDKyssIG9yIEphdmEgdGhhdCByZXN0cmljdCBpbnRlZ2VycyB0byBmaXhlZCBtZW1vcnkgc2l6ZXMgKGxpa2UgMzItYml0IG9yIDY0LWJpdCksIFB5dGhvbiBhdXRvbWF0aWNhbGx5IGFkanVzdHMgdGhlIG1lbW9yeSBhbGxvY2F0aW9uIGJhc2VkIG9uIHRoZSBzaXplIG9mIHRoZSBudW1iZXIuIFRoaXMgbWVhbnMgUHl0aG9uIGNhbiBoYW5kbGUgZXh0cmVtZWx5IGxhcmdlIGludGVnZXJzIHdpdGhvdXQgb3ZlcmZsb3cgaXNzdWVzOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8bGk+R3JlYXQgZm9yIGNyeXB0b2dyYXBoeTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+SWRlYWwgZm9yIGZpbmFuY2lhbCBjYWxjdWxhdGlvbnMgaW52b2x2aW5nIGJpZyBudW1iZXJzPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5Vc2VmdWwgaW4gc2NpZW50aWZpYyBzaW11bGF0aW9ucyByZXF1aXJpbmcgaGlnaCBudW1lcmljIHJhbmdlczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlB5dGhvbuKAmXMgdW5saW1pdGVkIGludGVnZXIgcHJlY2lzaW9uIG1ha2VzIGl0IG1vcmUgcm9idXN0IGZvciBhcHBsaWNhdGlvbnMgd2hlcmUgbnVtZXJpYyBvdmVyZmxvdyB3b3VsZCBvdGhlcndpc2UgY2F1c2UgZXJyb3JzIG9yIGRhdGEgY29ycnVwdGlvbi48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPjIuIDwvc3Ryb25nPjxzdHJvbmc+ZmxvYXQ8L3N0cm9uZz48c3Ryb25nPiAoRmxvYXRpbmctUG9pbnQgTnVtYmVycyk8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5GbG9hdHMgcmVwcmVzZW50IHJlYWwgbnVtYmVycywgd2hpY2ggaW5jbHVkZSBkZWNpbWFsIG9yIGZyYWN0aW9uYWwgdmFsdWVzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPnBpID0gMy4xNDE1OTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlVuZGVyIHRoZSBob29kLCBQeXRob24gaW1wbGVtZW50cyBmbG9hdHMgdXNpbmc8c3Ryb25nPiA2NC1iaXQgZG91YmxlLXByZWNpc2lvbiBmb3JtYXQ8L3N0cm9uZz4gYmFzZWQgb24gdGhlIDxzdHJvbmc+SUVFRS03NTQgc3RhbmRhcmQuPC9zdHJvbmc+IFRoaXMgZW5zdXJlcyBhIGJhbGFuY2UgYmV0d2VlbiBzcGVlZCBhbmQgYWNjdXJhY3ksIG1ha2luZyBmbG9hdHMgc3VpdGFibGUgZm9yIHNjaWVudGlmaWMgY29tcHV0aW5nLCBtYWNoaW5lIGxlYXJuaW5nIGFsZ29yaXRobXMsIHN0YXRpc3RpY2FsIG1vZGVsaW5nLCBlbmdpbmVlcmluZyBzaW11bGF0aW9ucywgYW5kIGRhdGEgYW5hbHlzaXMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+SG93ZXZlciwgYmVjYXVzZSBmbG9hdHMgcmVseSBvbiBiaW5hcnkgZnJhY3Rpb25zLCBjZXJ0YWluIGRlY2ltYWwgdmFsdWVzIGNhbm5vdCBiZSByZXByZXNlbnRlZCB3aXRoIHBlcmZlY3QgYWNjdXJhY3kuIFRoaXMgc29tZXRpbWVzIHJlc3VsdHMgaW4gc21hbGwgcHJlY2lzaW9uIGVycm9yczo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4wLjEgKyAwLjI8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD4jIE91dHB1dDogMC4zMDAwMDAwMDAwMDAwMDAwNDwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPldoaWxlIHRoZXNlIGVycm9ycyBhcmUgbm9ybWFsIGluIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMsIHVuZGVyc3RhbmRpbmcgdGhlbSBpcyBjcml0aWNhbCB3aGVuIGRldmVsb3BpbmcgZmluYW5jaWFsIGFwcGxpY2F0aW9ucyBvciBzeXN0ZW1zIHJlcXVpcmluZyBleGFjdCBkZWNpbWFsIHZhbHVlcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPjMuIDwvc3Ryb25nPjxzdHJvbmc+Y29tcGxleDwvc3Ryb25nPjxzdHJvbmc+IChDb21wbGV4IE51bWJlcnMpPC9zdHJvbmc+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Q29tcGxleCBudW1iZXJzIGNvbnNpc3Qgb2YgYSByZWFsIHBhcnQgYW5kIGFuIGltYWdpbmFyeSBwYXJ0LCB3cml0dGVuIGluIFB5dGhvbiB1c2luZyB0aGUgaiBub3RhdGlvbjo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD56ID0gMyArIDVqPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UHl0aG9uIGlzIG9uZSBvZiB0aGUgZmV3IHByb2dyYW1taW5nIGxhbmd1YWdlcyB0aGF0IG5hdGl2ZWx5IHN1cHBvcnRzIGNvbXBsZXggbnVtYmVycyB3aXRob3V0IHJlcXVpcmluZyBleHRlcm5hbCBsaWJyYXJpZXMuIERldmVsb3BlcnMgY2FuIHBlcmZvcm0gYWRkaXRpb24sIHN1YnRyYWN0aW9uLCBtdWx0aXBsaWNhdGlvbiwgZGl2aXNpb24sIHRyaWdvbm9tZXRyaWMgZnVuY3Rpb25zLCBhbmQgbW9yZSB3aXRoIGNvbXBsZXggbnVtYmVycy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Vc2UgY2FzZXMgaW5jbHVkZTo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPGxpPlF1YW50dW0gY29tcHV0aW5nPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5EaWdpdGFsIHNpZ25hbCBwcm9jZXNzaW5nPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5FbGVjdHJpY2FsIGVuZ2luZWVyaW5nIGNhbGN1bGF0aW9uczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+UGh5c2ljcyBzaW11bGF0aW9uczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkNvbXBsZXggbnVtYmVycyBtYWtlIFB5dGhvbiB1bmlxdWVseSBwb3dlcmZ1bCBpbiBkb21haW5zIHdoZXJlIGFkdmFuY2VkIG1hdGhlbWF0aWNzIGlzIHJlcXVpcmVkLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+NC4gPC9zdHJvbmc+PHN0cm9uZz5ib29sPC9zdHJvbmc+PHN0cm9uZz4gKEJvb2xlYW4pPC9zdHJvbmc+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Qm9vbGVhbnMgcmVwcmVzZW50IHRydXRoIHZhbHVlczogVHJ1ZSBhbmQgRmFsc2UuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+eCA9IFRydWU8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD55ID0gRmFsc2U8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5JbnRlcmVzdGluZ2x5LCBCb29sZWFucyBpbiBQeXRob24gYXJlIGFjdHVhbGx5IGEgc3VidHlwZSBvZiBpbnRlZ2Vyczo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPGxpPlRydWUgaXMgaW50ZXJwcmV0ZWQgYXMgMTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+RmFsc2UgaXMgaW50ZXJwcmV0ZWQgYXMgMDwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoaXMgYWxsb3dzIEJvb2xlYW5zIHRvIGJlIHVzZWQgaW4gYXJpdGhtZXRpYyBleHByZXNzaW9uczo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkJvb2xlYW5zIHBsYXkgYSBjcnVjaWFsIHJvbGUgaW4gY29uZGl0aW9uYWwgbG9naWMsIGxvb3AgY29udHJvbCwgY29tcGFyaXNvbnMsIGFuZCBkZWNpc2lvbi1tYWtpbmcgaW4gYWxtb3N0IGV2ZXJ5IFB5dGhvbiBwcm9ncmFtLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+NS4gQWRkaXRpb25hbCBOdW1lcmljIE1vZHVsZXM8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5CZXlvbmQgYnVpbHQtaW4gbnVtZXJpYyB0eXBlcywgUHl0aG9uIHN0cmVuZ3RoZW5zIGl0cyBudW1lcmljYWwgZWNvc3lzdGVtIHdpdGggc3BlY2lhbGl6ZWQgbGlicmFyaWVzIGRlc2lnbmVkIGZvciBwcmVjaXNpb24sIHBlcmZvcm1hbmNlLCBhbmQgbWF0aGVtYXRpY2FsIGRlcHRoLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Vc2VkIGZvciBoaWdoLXByZWNpc2lvbiBkZWNpbWFsIGFyaXRobWV0aWMuIEVzc2VudGlhbCBmb3IgYmFua2luZywgZmluYW5jZSwgYW5kIGN1cnJlbmN5IGNhbGN1bGF0aW9ucyB3aGVyZSBmbG9hdGluZy1wb2ludCBlcnJvcnMgYXJlIHVuYWNjZXB0YWJsZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UmVwcmVzZW50cyByYXRpb25hbCBudW1iZXJzIGFzIGV4YWN0IG51bWVyYXRvci9kZW5vbWluYXRvciBwYWlycy4gSWRlYWwgZm9yIHNjZW5hcmlvcyByZXF1aXJpbmcgZXhhY3QgcmVzdWx0cyByYXRoZXIgdGhhbiBhcHByb3hpbWF0aW9ucy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UHJvdmlkZXMgYWR2YW5jZWQgbWF0aGVtYXRpY2FsIGZ1bmN0aW9ucyBzdWNoIGFzIHRyaWdvbm9tZXRyeSwgbG9nYXJpdGhtcywgY29uc3RhbnRzIChwaSwgZSksIGZhY3RvcmlhbHMsIGFuZCBtb3JlLiBIaWdobHkgb3B0aW1pemVkIGZvciBwZXJmb3JtYW5jZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VXNlZnVsIGZvciBwcm9iYWJpbGlzdGljIG1vZGVscywgc2ltdWxhdGlvbnMsIHRlc3RpbmcsIGFuZCBnZW5lcmF0aW5nIHBzZXVkby1yYW5kb20gbnVtYmVycy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGVzZSBtb2R1bGVzIGV4dGVuZCBQeXRob27igJlzIG51bWVyaWMgY2FwYWJpbGl0aWVzIGZhciBiZXlvbmQgdHlwaWNhbCBudW1iZXIgb3BlcmF0aW9ucywgbWFraW5nIGl0IGEgZ28tdG8gbGFuZ3VhZ2UgZm9yIHNjaWVudGlmaWMgcmVzZWFyY2gsIGVuZ2luZWVyaW5nIGFwcGxpY2F0aW9ucywgYW5kIGRhdGEtZHJpdmVuIGRldmVsb3BtZW50LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5QeXRob24gaGFzIG1hbnkgYnVpbHQtaW4gZGF0YSB0eXBlcyB0aGF0IGFyZSBlYXN5IHRvIHVzZS4gVGhlc2UgZGF0YSB0eXBlcyBoZWxwIGRldmVsb3BlcnMgc3RvcmUsIG9yZ2FuaXplIGFuZCB3b3JrIHdpdGggZGF0YSBlYXNpbHkuIFRoZXkgYXJlIHVzZWQgaW4gZXZlcnkgUHl0aG9uIHByb2dyYW0gZnJvbSBzbWFsbCBzY3JpcHRzIHRvIGJpZyBwcm9qZWN0cyBsaWtlIG1hY2hpbmUgbGVhcm5pbmcuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UHl0aG9uIGdyb3VwcyBpdHMgZGF0YSB0eXBlcyBpbnRvIGNhdGVnb3JpZXMgYmFzZWQgb24gaG93IHRoZXkgd29yayBhbmQgaG93IGRhdGEgaXMgc3RvcmVkLiBLbm93aW5nIHRoZXNlIGNhdGVnb3JpZXMgaXMgaW1wb3J0YW50IGZvciB3cml0aW5nIGNvZGUgdGhhdCBpcyBmYXN0ZXIsIGNsZWFuZXIgYW5kIGVhc2llciB0byB1bmRlcnN0YW5kLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDppbWFnZSB7ImlkIjoxNTExNiwic2l6ZVNsdWciOiJsYXJnZSIsImxpbmtEZXN0aW5hdGlvbiI6Im5vbmUifSAtLT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBzcmM9Imh0dHBzOi8vdXRoby5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvaW1hZ2UxLTEwMjR4Njk2LmpwZyIgYWx0PSJQeXRob24gYnVpbHQgaW4gZGF0YSB0eXBlcyBvdmVydmlldyIgY2xhc3M9IndwLWltYWdlLTE1MTE2Ii8+PC9maWd1cmU+CjwhLS0gL3dwOmltYWdlIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkJlbG93IGlzIGEgZGVlcCBkaXZlIGludG8gZWFjaCBjYXRlZ29yeTo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPjEuIFRleHQgVHlwZTwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5BIDxzdHJvbmc+c3RyaW5nPC9zdHJvbmc+IHJlcHJlc2VudHMgYSBzZXF1ZW5jZSBvZiBVbmljb2RlIGNoYXJhY3RlcnMuIEl0IGlzIG9uZSBvZiB0aGUgbW9zdCBmcmVxdWVudGx5IHVzZWQgZGF0YSB0eXBlcyBpbiBQeXRob24uPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+bmFtZSA9ICJQeXRob24iPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+S2V5IGNoYXJhY3RlcmlzdGljcyBvZiBQeXRob24gc3RyaW5nczo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPGxpPjxzdHJvbmc+SW1tdXRhYmxlOjwvc3Ryb25nPiBPbmNlIGNyZWF0ZWQsIGEgc3RyaW5nIGNhbm5vdCBiZSBjaGFuZ2VkLiBBbnkgbW9kaWZpY2F0aW9uIHJlc3VsdHMgaW4gYSBuZXcgc3RyaW5nIG9iamVjdC48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+VW5pY29kZSBzdXBwb3J0Ojwvc3Ryb25nPiBQeXRob24gc3RyaW5ncyBmdWxseSBzdXBwb3J0IGludGVybmF0aW9uYWwgY2hhcmFjdGVycyAoSGluZGksIENoaW5lc2UsIEVtb2ppcywgc3BlY2lhbCBzeW1ib2xzLCBldGMuKS48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+UmljaCBmdW5jdGlvbmFsaXR5Ojwvc3Ryb25nPiBTdHJpbmdzIGFsbG93IHNsaWNpbmcsIGNvbmNhdGVuYXRpb24sIGZvcm1hdHRpbmcsIHNlYXJjaGluZywgYW5kIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGJ1aWx0LWluIG1ldGhvZHMuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VXNlIGNhc2VzIGluY2x1ZGU6PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmxpc3QgLS0+CjxsaT5UZXh0IHByb2Nlc3Npbmc8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlVzZXIgaW5wdXQ8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkxvZyBtZXNzYWdlczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+Q29uZmlndXJhdGlvbiBmaWxlczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+TkxQIChOYXR1cmFsIExhbmd1YWdlIFByb2Nlc3NpbmcpPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz4yLiBTZXF1ZW5jZSBUeXBlczwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZXNlIGRhdGEgdHlwZXMgc3RvcmUgb3JkZXJlZCBjb2xsZWN0aW9ucyBvZiBpdGVtcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPmxpc3Q8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5BIDxzdHJvbmc+bGlzdDwvc3Ryb25nPiBpcyBhIG11dGFibGUgc2VxdWVuY2UgdGhhdCBjYW4gc3RvcmUgaGV0ZXJvZ2VuZW91cyBkYXRhIHR5cGVzLWludGVnZXJzLCBzdHJpbmdzLCBvYmplY3RzLCBvciBldmVuIG90aGVyIGxpc3RzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPm51bXMgPSBbMSwgMiwgM108L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Db3JlIHByb3BlcnRpZXM6PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmxpc3QgLS0+CjxsaT48c3Ryb25nPk11dGFibGU6PC9zdHJvbmc+IEl0ZW1zIGNhbiBiZSBhZGRlZCwgcmVtb3ZlZCwgb3IgY2hhbmdlZC48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+RHluYW1pYyByZXNpemluZzo8L3N0cm9uZz4gR3Jvd3Mvc2hyaW5rcyBhdXRvbWF0aWNhbGx5IGFzIGVsZW1lbnRzIGFyZSBhZGRlZCBvciBkZWxldGVkLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+PHN0cm9uZz5IZXRlcm9nZW5lb3VzOjwvc3Ryb25nPiBTdXBwb3J0cyBzdG9yaW5nIG1peGVkIGRhdGEgdHlwZXMuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPkluZGV4LWJhc2VkIGFjY2Vzczo8L3N0cm9uZz4gUmV0cmlldmFsIGlzIGZhc3QgdXNpbmcgbGlzdFtpbmRleF0uPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+TGlzdHMgYXJlIHVzZWZ1bCBmb3I6PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmxpc3QgLS0+CjxsaT5NYW5hZ2luZyBkYXRhc2V0czwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QnVpbGRpbmcgZHluYW1pYyBjb2xsZWN0aW9uczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+U3RvcmluZyByZXN1bHRzIGZyb20gbG9vcHM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkRhdGEgdHJhbnNmb3JtYXRpb24gcGlwZWxpbmVzPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz50dXBsZTwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkEgPHN0cm9uZz50dXBsZTwvc3Ryb25nPiBpcyBhbiBpbW11dGFibGUsIG9yZGVyZWQgY29sbGVjdGlvbiBvZiBpdGVtcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5jb29yZHMgPSAoMTAsIDIwKTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkNvcmUgcHJvcGVydGllczo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPGxpPjxzdHJvbmc+SW1tdXRhYmxlOjwvc3Ryb25nPiBPbmNlIGNyZWF0ZWQsIGVsZW1lbnRzIGNhbm5vdCBiZSBtb2RpZmllZC48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+TGlnaHR3ZWlnaHQ6PC9zdHJvbmc+IEZhc3RlciBhbmQgbW9yZSBtZW1vcnktZWZmaWNpZW50IHRoYW4gbGlzdHMuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPlVzZWQgZm9yIGZpeGVkIGRhdGE6PC9zdHJvbmc+IElkZWFsIGZvciB2YWx1ZXMgdGhhdCBtdXN0IG5vdCBjaGFuZ2UsIHN1Y2ggYXMgY29vcmRpbmF0ZXMsIGNvbmZpZ3VyYXRpb25zLCBhbmQgbWV0YWRhdGEuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VHVwbGVzIGFyZSBjb21tb25seSB1c2VkIGluOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8bGk+RnVuY3Rpb24gcmV0dXJucyAobXVsdGlwbGUgdmFsdWVzKTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+RGF0YWJhc2UgcmVjb3JkczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+SGFzaGFibGUgdHlwZXMgZm9yIGRpY3Rpb25hcnkga2V5czwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+cmFuZ2U8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5yYW5nZSByZXByZXNlbnRzIGEgc2VxdWVuY2Ugb2YgbnVtYmVycywgb2Z0ZW4gdXNlZCBpbiBsb29wczo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5yID0gcmFuZ2UoMSwgMTApPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UmFuZ2Ugb2JqZWN0czo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPGxpPkRvIG5vdCBnZW5lcmF0ZSBudW1iZXJzIGltbWVkaWF0ZWx5IChsYXp5IGV2YWx1YXRpb24pPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5BcmUgbWVtb3J5LWVmZmljaWVudDwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+UHJvdmlkZSBmYXN0IGl0ZXJhdGlvbjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlBlcmZlY3QgZm9yOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8bGk+TG9vcCBjb3VudGVyczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+R2VuZXJhdGluZyBzZXF1ZW5jZXM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPk1hdGhlbWF0aWNhbCBzZXJpZXM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPjMuIE1hcHBpbmcgVHlwZTwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5BIGRpY3Rpb25hcnkgc3RvcmVzIGRhdGEgaW4gPGVtPmtleS12YWx1ZTwvZW0+IHBhaXJzIGFuZCBpcyBvbmUgb2YgdGhlIG1vc3QgcG93ZXJmdWwgYW5kIHdpZGVseSB1c2VkIFB5dGhvbiBkYXRhIHN0cnVjdHVyZXMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+c3R1ZGVudCA9IHsibmFtZSI6ICJKb2huIiwgImFnZSI6IDIyfTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPktleSBjaGFyYWN0ZXJpc3RpY3M6PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmxpc3QgLS0+CjxsaT48c3Ryb25nPkZhc3QgbG9va3VwOjwvc3Ryb25nPiBEaWN0aW9uYXJpZXMgdXNlIGhhc2hpbmcsIG1ha2luZyBzZWFyY2hlcyBleHRyZW1lbHkgcXVpY2suPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPk11dGFibGU6PC9zdHJvbmc+IEtleXMgYW5kIHZhbHVlcyBjYW4gYmUgYWRkZWQsIHJlbW92ZWQsIG9yIG1vZGlmaWVkLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+PHN0cm9uZz5GbGV4aWJsZTo8L3N0cm9uZz4gS2V5cyBtdXN0IGJlIHVuaXF1ZSBhbmQgaGFzaGFibGU7IHZhbHVlcyBjYW4gYmUgYW55dGhpbmcuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VXNlIGNhc2VzOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8bGk+U3RvcmluZyBKU09OLWxpa2UgZGF0YTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QVBJIHJlc3BvbnNlczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+Q2FjaGluZzwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+VXNlciBwcm9maWxlczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+Q29uZmlndXJhdGlvbnMgYW5kIGVudmlyb25tZW50IHZhcmlhYmxlczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkRpY3Rpb25hcmllcyBhcmUgY3J1Y2lhbCBpbiBtb2Rlcm4gUHl0aG9uIGFwcHMsIGVzcGVjaWFsbHkgaW4gd2ViLCBNTCwgYW5kIGRhdGEgZW5naW5lZXJpbmcgd29ya2Zsb3dzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+NC4gU2V0IFR5cGVzPC9zdHJvbmc+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QSBzZXQgaXMgYW4gPHN0cm9uZz51bm9yZGVyZWQgY29sbGVjdGlvbjwvc3Ryb25nPiBvZiB1bmlxdWUgaXRlbXMuIFVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIGF2b2lkIGR1cGxpY2F0ZSB2YWx1ZXMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5zZXQ8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5zID0gezEsIDIsIDN9PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+S2V5IHByb3BlcnRpZXM6PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmxpc3QgLS0+CjxsaT48c3Ryb25nPk5vIGR1cGxpY2F0ZXMgYWxsb3dlZDwvc3Ryb25nPjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+PHN0cm9uZz5NdXRhYmxlIGFuZCBkeW5hbWljPC9zdHJvbmc+PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPkV4dHJlbWVseSBmYXN0IGZvciBtZW1iZXJzaGlwIGNoZWNrczwvc3Ryb25nPiAoaW4sIG5vdCBpbik8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5HcmVhdCBmb3I6PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmxpc3QgLS0+CjxsaT5SZW1vdmluZyBkdXBsaWNhdGVzPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5NYXRoZW1hdGljYWwgb3BlcmF0aW9ucyAodW5pb24sIGludGVyc2VjdGlvbiwgZGlmZmVyZW5jZSk8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkZhc3QgbWVtYmVyc2hpcCB0ZXN0aW5nPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5mcm96ZW5zZXQ8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5BbiBpbW11dGFibGUgdmVyc2lvbiBvZiBhIHNldC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5LZXkgdXNlczo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPGxpPldoZW4gYSBzZXQgbmVlZHMgdG8gYmUgaGFzaGFibGU8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPldoZW4gc3RvcmluZyBpbnNpZGUgZGljdGlvbmFyaWVzIG9yIG90aGVyIHNldHM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkZvciBmaXhlZCwgcmVhZC1vbmx5IHNldHMgb2YgdW5pcXVlIGRhdGE8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPjUuIEJvb2xlYW4gVHlwZTwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkFscmVhZHkgY292ZXJlZCB1bmRlciBudW1lcmljIHR5cGVzLCBidXQgZXNzZW50aWFsIHRvIG1lbnRpb24gaGVyZTo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPGxpPlJlcHJlc2VudHMgdHJ1dGggdmFsdWVzOiBUcnVlIGFuZCBGYWxzZTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+RnJlcXVlbnRseSB1c2VkIGluOjxicj48IS0tIHdwOmxpc3QgLS0+CjxsaT5Db25kaXRpb25hbCBzdGF0ZW1lbnRzPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5Mb29wczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+Q29tcGFyaXNvbnM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkxvZ2ljYWwgb3BlcmF0aW9uczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkJvb2xlYW5zIGZvcm0gdGhlIGZvdW5kYXRpb24gb2YgcHJvZ3JhbSBmbG93IGNvbnRyb2wuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz42LiBCaW5hcnkgVHlwZXM8L3N0cm9uZz48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5EZXNpZ25lZCBmb3IgaGFuZGxpbmcgcmF3IGJpbmFyeSBkYXRhLCBieXRlcywgYW5kIG1lbW9yeS1lZmZpY2llbnQgb3BlcmF0aW9ucy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5JbmNsdWRlczo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+SW1tdXRhYmxlIHNlcXVlbmNlcyBvZiBieXRlcyAoMOKAkzI1NSkuPGJyPlVzZWQgaW46PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmxpc3QgLS0+CjxsaT5GaWxlIGhhbmRsaW5nPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5JbWFnZS9hdWRpbyBkYXRhPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5Db21wcmVzc2lvbjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5NdXRhYmxlIHZlcnNpb24gb2YgYnl0ZXMuPGJyPlVzZWQgd2hlbiBiaW5hcnkgZGF0YSBtdXN0IGJlIG1vZGlmaWVkLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Qcm92aWRlcyBhIHZpZXcgaW50byBiaW5hcnkgZGF0YSB3aXRob3V0IGNvcHlpbmcgaXQtdmVyeSBlZmZpY2llbnQgZm9yIGxhcmdlIGRhdGEgYmxvY2tzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkltcG9ydGFudCBpbjo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPGxpPk5ldHdvcmsgY29tbXVuaWNhdGlvbjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QnVmZmVyIGhhbmRsaW5nPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5IaWdoLXBlcmZvcm1hbmNlIGFwcGxpY2F0aW9uczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+V2h5IEJ1aWx0LWluIERhdGEgVHlwZXMgTWF0dGVyPC9zdHJvbmc+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UHl0aG9u4oCZcyBidWlsdC1pbiBkYXRhIHR5cGVzIGFyZSBvcHRpbWl6ZWQgZm9yOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8bGk+U3BlZWQ8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkZsZXhpYmlsaXR5PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5NZW1vcnkgZWZmaWNpZW5jeTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+UmVhbC13b3JsZCBhcHBsaWNhdGlvbiBuZWVkczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZXkgZm9ybSB0aGUgZm91bmRhdGlvbiBmb3I6PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmxpc3QgLS0+CjxsaT5BbGdvcml0aG1zPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5BUElzIGFuZCBiYWNrZW5kIHN5c3RlbXM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPk1hY2hpbmUgbGVhcm5pbmcgcGlwZWxpbmVzPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5FbnRlcnByaXNlLWdyYWRlIGFwcGxpY2F0aW9uczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+RGF0YSBhbmFseXNpcyB3b3JrZmxvd3M8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5NYXN0ZXJpbmcgdGhlc2UgdHlwZXMgZW5zdXJlcyBiZXR0ZXIgcGVyZm9ybWFuY2UsIGNsZWFuZXIgY29kZSwgYW5kIGltcHJvdmVkIHByb2JsZW0tc29sdmluZyBhcyBhIFB5dGhvbiBkZXZlbG9wZXIuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+PHN0cm9uZz5DaG9vc2luZyB0aGUgUmlnaHQgRGF0YSBUeXBlPC9zdHJvbmc+PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIGFiaWxpdHkgdG8gY2hvb3NlIHRoZSBjb3JyZWN0IGRhdGEgdHlwZSBkZXRlcm1pbmVzOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8bGk+QXBwbGljYXRpb24gcGVyZm9ybWFuY2U8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPk1lbW9yeSB1c2FnZTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+Q29kZSByZWFkYWJpbGl0eTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QnVnIHByZXZlbnRpb248L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIC93cDp0YWJsZSAtLT4KCjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmxpc3QgLS0+CjxsaT5Vc2UgPHN0cm9uZz50dXBsZXM8L3N0cm9uZz4gaW5zdGVhZCBvZiA8c3Ryb25nPmxpc3RzPC9zdHJvbmc+IHdoZW4gaW1tdXRhYmlsaXR5IGlzIHJlcXVpcmVkLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+VXNlIDxzdHJvbmc+ZnJvemVuc2V0PC9zdHJvbmc+IGluc3RlYWQgb2YgPHN0cm9uZz5zZXQ8L3N0cm9uZz4gd2hlbiBtb2RpZnlpbmcgaXMgbm90IGFsbG93ZWQuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8bGk+RGljdGlvbmFyaWVzIGFuZCBzZXRzIGFyZSBmYXN0ZXIgZm9yIGxvb2t1cHMuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5MaXN0cyBhcmUgYmV0dGVyIGZvciBvcmRlcmVkIGRhdGEgYW5kIHNsaWNpbmcuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Q2hvb3NpbmcgdGhlIHJpZ2h0IHR5cGUgZW5zdXJlcyB5b3VyIGNvZGUgcmVtYWlucyBlZmZpY2llbnQgYW5kIGNsZWFyLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjxzdHJvbmc+VHlwZSBIaW50cyBhbmQgQW5ub3RhdGlvbnMgKFB5dGhvbiAzLjUrKTwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlR5cGUgaGludGluZyByZXZvbHV0aW9uaXplZCBQeXRob24gYnkgYWRkaW5nIHN0YXRpYyB0eXBpbmcgY2FwYWJpbGl0aWVzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkV4YW1wbGU6PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5CZW5lZml0czo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPGxpPkJldHRlciBJREUgc3VwcG9ydDwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+RmV3ZXIgYnVnczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+Q2xlYW5lciBkb2N1bWVudGF0aW9uPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5IZWxwcyBsYXJnZSB0ZWFtcyBtYWludGFpbiBjb2RlPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UHl0aG9uIHN1cHBvcnRzOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8bGk+QmFzaWMgdHlwZXMgKGludCwgc3RyLCBmbG9hdCk8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkdlbmVyaWMgdHlwZXMgKGxpc3RbaW50XSwgZGljdFtzdHIsIGludF0pPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5PcHRpb25hbCB0eXBlcyAoT3B0aW9uYWxbc3RyXSk8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlVuaW9uIHR5cGVzIChpbnQgfCBzdHIpPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5DdXN0b20gY2xhc3NlcyBhcyB0eXBlczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlR5cGUgaGludHMgYnJpZGdlIHRoZSBnYXAgYmV0d2VlbiBQeXRob27igJlzIGR5bmFtaWMgbmF0dXJlIGFuZCBtb2Rlcm4gZGV2ZWxvcG1lbnQgcHJhY3RpY2VzIHJlcXVpcmluZyBjb25zaXN0ZW5jeSBhbmQgY2xhcml0eS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD48c3Ryb25nPkFkdmFuY2VkIGFuZCBDdXN0b20gRGF0YSBUeXBlczwvc3Ryb25nPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlB5dGhvbiBhbGxvd3MgY3JlYXRpbmcgPHN0cm9uZz5jdXN0b20gY2xhc3Nlczwvc3Ryb25nPiB0byBzZXJ2ZSBhcyBuZXcgZGF0YSB0eXBlcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5jbGFzcyBWZWhpY2xlOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkFkZGl0aW9uYWxseSwgYWR2YW5jZWQgZGF0YSBzdHJ1Y3R1cmVzIGluY2x1ZGU6PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmxpc3QgLS0+CjxsaT5OYW1lZFR1cGxlPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5kYXRhY2xhc3NlczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+RW51bTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+VHlwZWREaWN0PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5Vc2VyLWRlZmluZWQgY2xhc3NlczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZXNlIHByb3ZpZGUgZmxleGliaWxpdHkgdG8gc3RydWN0dXJlIGRhdGEgb3B0aW1hbGx5IGZvciBjb21wbGV4IHByb2plY3RzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+Q29tbW9uIE1pc3Rha2VzIGFuZCBUaXBzPC9zdHJvbmc+PC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6bGlzdCB7Im9yZGVyZWQiOnRydWV9IC0tPgo8bGk+Q29uZnVzaW5nIG11dGFibGUgdnMgaW1tdXRhYmxlIHR5cGVzPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5Vc2luZyBsaXN0cyB3aGVyZSBzZXRzIGFyZSBuZWVkZWQ8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPk1pc3VzaW5nIGZsb2F0cyBpbiBmaW5hbmNpYWwgY2FsY3VsYXRpb25zPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5GYWlsaW5nIHRvIHVzZSB0eXBlIGhpbnRzPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5VbmludGVudGlvbmFsbHkgbW9kaWZ5aW5nIHNoYXJlZCBkYXRhIHN0cnVjdHVyZXM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPk92ZXJ1c2luZyBkaWN0aW9uYXJpZXMgd2hlcmUgY2xhc3NlcyBhcmUgYmV0dGVyPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5Bdm9pZGluZyBidWlsdC1pbnMgbGlrZSBlbnVtZXJhdGUsIHppcCwgbWFwPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvb2w+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8bGk+QWx3YXlzIGNob29zZSB0aGUgc21hbGxlc3QgZWZmZWN0aXZlIGRhdGEgdHlwZTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+VXNlIHR5cGUgaGludHMgaW4gYWxsIG1vZGVybiBjb2RlYmFzZXM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlByZWZlciBpbW11dGFibGUgdHlwZXMgZm9yIHNhZmV0eTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+VXNlIHN0YW5kYXJkIGxpYnJhcmllcyBiZWZvcmUgcmVpbnZlbnRpbmcgc3RydWN0dXJlczwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+Q29uY2x1c2lvbjwvc3Ryb25nPjwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UHl0aG9uIGRhdGEgdHlwZXMgYXJlIHZlcnkgaW1wb3J0YW50IGZvciBldmVyeSBwcm9ncmFtIHNjcmlwdCBhbmQgc3lzdGVtIG1hZGUgd2l0aCBQeXRob24uIFRoZXkgaGVscCB5b3Ugd29yayB3aXRoIG51bWJlcnMsIHRleHQgbGlzdHMgYW5kIG90aGVyIGRhdGEgZWFzaWx5LiBLbm93aW5nIGRhdGEgdHlwZXMgaXMgaW1wb3J0YW50IHRvIHdyaXRlIGNsZWFuLCBlYXN5IHRvIHVuZGVyc3RhbmQgYW5kIGZhc3QgY29kZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5BcyBQeXRob24gZ3Jvd3MgYW5kIGltcHJvdmVzIGxlYXJuaW5nLCBidWlsdCBpbiB0eXBlcywgdHlwZSBoaW50cyBhbmQgY3VzdG9tIGRhdGEgc3RydWN0dXJlcyB3aWxsIGhlbHAgeW91IG1ha2UgbW9kZXJuIHByb2Zlc3Npb25hbCBhbmQgYmlnZ2VyIHByb2dyYW1zLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+RkFRczwvc3Ryb25nPjwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZXkgZGV0ZXJtaW5lIGhvdyBkYXRhIGJlaGF2ZXMgYW5kIHdoYXQgb3BlcmF0aW9ucyBhcmUgYWxsb3dlZC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+WWVzLCB0aHJvdWdoIHR5cGUgaGludHMgaW50cm9kdWNlZCBpbiBQeXRob24gMy41Ky48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VHVwbGVzIGFyZSBmYXN0ZXIgYmVjYXVzZSB0aGV5IGFyZSBpbW11dGFibGUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlVzZSB0aGUgZGVjaW1hbCBtb2R1bGUgZm9yIHByZWNpc2lvbi48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+TGlzdHMgYW5kIGRpY3Rpb25hcmllcyBhcmUgdGhlIG1vc3Qgd2lkZWx5IHVzZWQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+ZG9jdW1lbnRleGNlcnB0ZG9jdW1lbnRhdXRob3Jkb2N1bWVudGZlYXR1cmVkX21lZGlhZG9jdW1lbnRjb21tZW50X3N0YXR1c2RvY3VtZW50cGluZ19zdGF0dXNkb2N1bWVudHN0aWNreWRvY3VtZW50dGVtcGxhdGVkb2N1bWVudGZvcm1hdGRvY3VtZW50bWV0YWZvb3Rub3Rlc2RvY3VtZW50Y2F0ZWdvcmllc2RvY3VtZW50dGFnc2RvY3VtZW50YmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50TGVhcm5pbmcgZGF0YSB0eXBlcyBpcyB2ZXJ5IGltcG9ydGFudCBmb3IgYW55b25lIHVzaW5nIFB5dGhvbiwgd2hldGhlciB5b3UgbWFrZSBzbWFsbCBzY3JpcHRzIG9yIGJpZyBhcHBsaWNhdGlvbnMuIFVuZGVyc3RhbmRpbmcgcHl0aG9uIGJhc2ljcyBoZWxwcyBkZXZlbG9wZXJzIHdyaXRlIGNsZWFuIGFuZCBjb3JyZWN0IGNvZGUuIFB5dGhvbuKAmXMgZGF0YSB0eXBlcyBoZWxwIG1hbmFnZSBkaWZmZXJlbnQga2luZHMgb2YgaW5mb3JtYXRpb24gbGlrZSBudW1iZXJzLCB0ZXh0LCBvciBtb3JlIGNvbXBsZXggZGF0YS4gRm9yIG1vZGVybiBkZXZlbG9wZXJzLCBrbm93aW5nIGRhdGEgdHlwZXMgaXMgaW1wb3J0YW50IHRvIG1ha2Ugc29mdHdhcmUgdGhhdCBpcyBlYXN5IHRvIGdyb3cgYW5kIG1haW50YWluLiBQeXRob24gYWxzbyBoYXMgbmV3IGZlYXR1cmVzIGxpa2UgdHlwZSBoaW50cywgd2hpY2ggbWFrZSBjb2RpbmcgZWFzaWVyLiBUaGlzIGd1aWRlIGV4cGxhaW5zIGFsbCBtYWluIFB5dGhvbiBkYXRhIHR5cGVzIGFuZCBjb3ZlcnMgcHl0aG9uIGJhc2ljcyB0byBoZWxwIHlvdSBtYWtlIGJldHRlciBjb2RpbmcgY2hvaWNlcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPldoYXQgQXJlIERhdGEgVHlwZXMgaW4gUHl0aG9uPzwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnREYXRhIHR5cGVzIHRlbGwgUHl0aG9uIHdoYXQga2luZCBvZiB2YWx1ZSBhIHZhcmlhYmxlIGNhbiBoYXZlIGFuZCB3aGF0IHdlIGNhbiBkbyB3aXRoIGl0LiBFdmVyeXRoaW5nIGluIFB5dGhvbiBpcyBkYXRhIHNvIGtub3dpbmcgPHN0cm9uZz5weXRob24gYmFzaWNzPC9zdHJvbmc+IGlzIHZlcnkgaW1wb3J0YW50LmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEEgZGF0YSB0eXBlIGRlY2lkZXMgaWYgYSB2YWx1ZSBpcyBhIG51bWJlciB0ZXh0LCB0cnVlIG9yIGZhbHNlIGxpc3QgZGljdGlvbmFyeSBzZXQgb3Igc29tZXRoaW5nIGVsc2UuIFB5dGhvbiBpcyBzbWFydCBhbmQgZ2l2ZXMgdHlwZXMgdG8gdmFyaWFibGVzIGJ5IGl0c2VsZi4gVGhpcyBpcyBjYWxsZWQgZHluYW1pYyB0eXBpbmcuIFlvdSBkbyBub3QgaGF2ZSB0byB0ZWxsIFB5dGhvbiB0aGUgdHlwZSB5b3Vyc2VsZi48YnI+PHN0cm9uZz5Gb3IgZXhhbXBsZTo8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnR4ID0gMTAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgIyBpbnRkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnR5ID0gIkhlbGxvIiAmbmJzcDsgIyBzdHJkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRFdmVuIHRob3VnaCBQeXRob24gZ2l2ZXMgdHlwZXMgYXV0b21hdGljYWxseSBkZXZlbG9wZXJzIHN0aWxsIG5lZWQgdG8ga25vdyBkYXRhIHR5cGVzIHRvIHdyaXRlIGdvb2QgY2xlYW4gYW5kIGZhc3QgcHJvZ3JhbXMuIFRoaXMgaXMgdmVyeSBpbXBvcnRhbnQgZm9yIHdvcmtpbmcgd2l0aCBkYXRhIG1hY2hpbmUgbGVhcm5pbmcgd2Vic2l0ZXMgQVBJcyBhbmQgY2hlY2tpbmcgY29kZSBxdWFsaXR5LiBQeXRob24gaGFzIG1hbnkgdHlwZXMgYnVpbHQgaW4gbGlrZSBudW1iZXJzLCB0ZXh0IGxpc3RzLCBkaWN0aW9uYXJpZXMgc2V0cyB0cnVlIG9yIGZhbHNlIGFuZCBtb3JlLiBZb3UgY2FuIGFsc28gbWFrZSB5b3VyIG93biB0eXBlcyB1c2luZyBjbGFzc2VzLiBQeXRob24gMyBsZXRzIHlvdSBhZGQgdHlwZSBoaW50cyB0byBtYWtlIGNvZGUgZWFzaWVyIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgYW5kIHJlaW5mb3JjZXMgPHN0cm9uZz5weXRob24gYmFzaWNzPC9zdHJvbmc+IGZvciBhbGwgZGV2ZWxvcGVycy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRVbmRlcnN0YW5kaW5nIGRhdGEgdHlwZXMgaGVscHMgZGV2ZWxvcGVyczpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50T3B0aW1pemUgcGVyZm9ybWFuY2Vpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEF2b2lkIHR5cGUtcmVsYXRlZCBidWdzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRJbXByb3ZlIHJlYWRhYmlsaXR5aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRNYWludGFpbiBsYXJnZSBjb2RlYmFzZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEVuc3VyZSBwcmVkaWN0YWJsZSBiZWhhdmlvciBpbiBmdW5jdGlvbnNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoaXMgc2VjdGlvbi1hbG9uZyB3aXRoIHRoZSByZXN0IG9mIHRoZSBibG9nLXdpbGwgZ2l2ZSB5b3UgYSBkZWVwLCBzdHJ1Y3R1cmVkLCBkZXZlbG9wZXItZnJpZW5kbHkgdW5kZXJzdGFuZGluZyBvZiBQeXRob27igJlzIGRhdGEgdHlwZXMsIGVuYWJsaW5nIHlvdSB0byBjaG9vc2UgdGhlIHJpZ2h0IHR5cGUgaW4gZXZlcnkgc2l0dWF0aW9uLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzdXJsYWx0Y2FwdGlvbmlkc2l6ZVNsdWdsaW5rRGVzdGluYXRpb25pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+TnVtZXJpYyBEYXRhIFR5cGVzIG9mIFB5dGhvbjwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRQeXRob24gaGFzIG1hbnkgdHlwZXMgb2YgbnVtYmVycyB0aGF0IGFyZSBlYXN5IHRvIHVzZS4gWW91IGNhbiB3b3JrIHdpdGggd2hvbGUgbnVtYmVycywgZGVjaW1hbHMgLCBjb21wbGV4IG51bWJlcnMgYW5kIHRydWUvZmFsc2UgdmFsdWVzLiBOdW1iZXJzIGFyZSB2ZXJ5IGltcG9ydGFudCBmb3IgbWFueSBwcm9ncmFtcyBsaWtlIG1vbmV5IGNhbGN1bGF0aW9ucyBnYW1lcywgbWFjaGluZSBsZWFybmluZyBzY2llbmNlIHByb2plY3RzIGFuZCBkZWNpc2lvbiBtYWtpbmcuIEtub3dpbmcgPHN0cm9uZz5weXRob24gYmFzaWNzPC9zdHJvbmc+IGhlbHBzIGJlZ2lubmVycyBhbmQgYWR2YW5jZWQgdXNlcnMgdW5kZXJzdGFuZCBob3cgdG8gdXNlIG51bWJlcnMgY29ycmVjdGx5LmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFdob2xlIG51bWJlcnMgYXJlIG51bWJlcnMgd2l0aG91dCBkZWNpbWFscyBsaWtlIDEgMiAxMDAgb3IgLTUuIFlvdSBjYW4gdXNlIHRoZW0gZm9yIGNvdW50aW5nIGl0ZW1zLCBrZWVwaW5nIHNjb3JlcyBvciBzaW1wbGUgbW9uZXkgY2FsY3VsYXRpb25zLjxicj5EZWNpbWFsIG51bWJlcnMgYXJlIG51bWJlcnMgd2l0aCBkZWNpbWFscyBsaWtlIDMuMTQgMC41IG9yIC03LjIuIFlvdSBjYW4gdXNlIHRoZW0gd2hlbiB5b3UgbmVlZCBleGFjdCBudW1iZXJzIGxpa2UgaW4gcHJpY2VzLCBzY2llbmNlIGV4cGVyaW1lbnRzIG9yIG1lYXN1cmVtZW50cy48YnI+Q29tcGxleCBudW1iZXJzIGFyZSBzcGVjaWFsIG51bWJlcnMgbGlrZSAyICsgM2ogdXNlZCBpbiBhZHZhbmNlZCBtYXRoIGFuZCBzY2llbnRpZmljIGNhbGN1bGF0aW9ucy48YnI+Qm9vbGVhbiBudW1iZXJzIGFyZSBzcGVjaWFsIG51bWJlcnMgdGhhdCBhcmUgb25seSBUcnVlIG9yIEZhbHNlLiBUaGV5IGFyZSB1c2VkIHRvIGNoZWNrIGNvbmRpdGlvbnMgb3IgbWFrZSBkZWNpc2lvbnMgaW4gcHJvZ3JhbXMgbGlrZSBpZiBhIHBsYXllciBoYXMgZW5vdWdoIHBvaW50cyBvciBpZiBhIHRhc2sgaXMgY29tcGxldGUuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50UHl0aG9uIG1ha2VzIGl0IHNpbXBsZSB0byB1c2UgbnVtYmVycyBhbmQgZG8gbWF0aC4gWW91IGNhbiBhZGQsIHN1YnRyYWN0LCBtdWx0aXBseSwgZGl2aWRlIGFuZCBkbyBtb3JlIGNvbXBsaWNhdGVkIGNhbGN1bGF0aW9ucyBlYXNpbHkuIFlvdSBjYW4gYWxzbyB1c2UgZXh0cmEgbW9kdWxlcyB0byBkbyBoYXJkZXIgbWF0aCB3b3JrIHdpdGggdmVyeSBleGFjdCBudW1iZXJzIGFuZCBzY2llbnRpZmljIGNhbGN1bGF0aW9ucy4gVGhlc2UgZmVhdHVyZXMgbWFrZSBQeXRob24gYSBncmVhdCBsYW5ndWFnZSBmb3IgYmVnaW5uZXJzIGFuZCBhZHZhbmNlZCBwcm9ncmFtbWVycyBhbGlrZSBhbmQgcmVpbmZvcmNlIHB5dGhvbiBiYXNpY3MgZm9yIGFueW9uZSBsZWFybmluZyB0byB3b3JrIHdpdGggbnVtYmVycyBpbiBnYW1lcyBhcHBzIHdlYnNpdGVzIG1hY2hpbmUgbGVhcm5pbmcgcHJvamVjdHMgb3Igc2NpZW5jZSBhbmQgZmluYW5jZSBwcm9ncmFtcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkJlbG93IGFyZSB0aGUgcHJpbWFyeSBudW1lcmljIGRhdGEgdHlwZXMgaW4gUHl0aG9uOjwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjEuIDwvc3Ryb25nPjxzdHJvbmc+aW50PC9zdHJvbmc+PHN0cm9uZz4gKEludGVnZXIpPC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50SW50ZWdlcnMgcmVwcmVzZW50IHdob2xlIG51bWJlcnMtdmFsdWVzIHdpdGhvdXQgYW55IGZyYWN0aW9uYWwgb3IgZGVjaW1hbCBjb21wb25lbnQuIFRoZXkgY2FuIGJlIHBvc2l0aXZlLCBuZWdhdGl2ZSwgb3IgemVyby5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRhID0gMTBkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRiID0gLTQyZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50UHl0aG9u4oCZcyBoYW5kbGluZyBvZiBpbnRlZ2VycyBpcyBvbmUgb2YgaXRzIG1ham9yIHN0cmVuZ3Rocy4gVW5saWtlIGxhbmd1YWdlcyBzdWNoIGFzIEMsIEMrKywgb3IgSmF2YSB0aGF0IHJlc3RyaWN0IGludGVnZXJzIHRvIGZpeGVkIG1lbW9yeSBzaXplcyAobGlrZSAzMi1iaXQgb3IgNjQtYml0KSwgUHl0aG9uIGF1dG9tYXRpY2FsbHkgYWRqdXN0cyB0aGUgbWVtb3J5IGFsbG9jYXRpb24gYmFzZWQgb24gdGhlIHNpemUgb2YgdGhlIG51bWJlci4gVGhpcyBtZWFucyBQeXRob24gY2FuIGhhbmRsZSBleHRyZW1lbHkgbGFyZ2UgaW50ZWdlcnMgd2l0aG91dCBvdmVyZmxvdyBpc3N1ZXM6ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzdHlwZXN0YXJ0cmV2ZXJzZWRwbGFjZWhvbGRlcmJhY2tncm91bmRDb2xvcnRleHRDb2xvcmdyYWRpZW50bG9ja2FuY2hvcmNsYXNzTmFtZWZvbnRGYW1pbHlmb250U2l6ZXN0eWxlbWV0YWRhdGFpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEdyZWF0IGZvciBjcnlwdG9ncmFwaHlpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudElkZWFsIGZvciBmaW5hbmNpYWwgY2FsY3VsYXRpb25zIGludm9sdmluZyBiaWcgbnVtYmVyc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VXNlZnVsIGluIHNjaWVudGlmaWMgc2ltdWxhdGlvbnMgcmVxdWlyaW5nIGhpZ2ggbnVtZXJpYyByYW5nZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFB5dGhvbuKAmXMgdW5saW1pdGVkIGludGVnZXIgcHJlY2lzaW9uIG1ha2VzIGl0IG1vcmUgcm9idXN0IGZvciBhcHBsaWNhdGlvbnMgd2hlcmUgbnVtZXJpYyBvdmVyZmxvdyB3b3VsZCBvdGhlcndpc2UgY2F1c2UgZXJyb3JzIG9yIGRhdGEgY29ycnVwdGlvbi5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjIuIDwvc3Ryb25nPjxzdHJvbmc+ZmxvYXQ8L3N0cm9uZz48c3Ryb25nPiAoRmxvYXRpbmctUG9pbnQgTnVtYmVycyk8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRGbG9hdHMgcmVwcmVzZW50IHJlYWwgbnVtYmVycywgd2hpY2ggaW5jbHVkZSBkZWNpbWFsIG9yIGZyYWN0aW9uYWwgdmFsdWVzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudHBpID0gMy4xNDE1OWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFVuZGVyIHRoZSBob29kLCBQeXRob24gaW1wbGVtZW50cyBmbG9hdHMgdXNpbmc8c3Ryb25nPiA2NC1iaXQgZG91YmxlLXByZWNpc2lvbiBmb3JtYXQ8L3N0cm9uZz4gYmFzZWQgb24gdGhlIDxzdHJvbmc+SUVFRS03NTQgc3RhbmRhcmQuPC9zdHJvbmc+IFRoaXMgZW5zdXJlcyBhIGJhbGFuY2UgYmV0d2VlbiBzcGVlZCBhbmQgYWNjdXJhY3ksIG1ha2luZyBmbG9hdHMgc3VpdGFibGUgZm9yIHNjaWVudGlmaWMgY29tcHV0aW5nLCBtYWNoaW5lIGxlYXJuaW5nIGFsZ29yaXRobXMsIHN0YXRpc3RpY2FsIG1vZGVsaW5nLCBlbmdpbmVlcmluZyBzaW11bGF0aW9ucywgYW5kIGRhdGEgYW5hbHlzaXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50SG93ZXZlciwgYmVjYXVzZSBmbG9hdHMgcmVseSBvbiBiaW5hcnkgZnJhY3Rpb25zLCBjZXJ0YWluIGRlY2ltYWwgdmFsdWVzIGNhbm5vdCBiZSByZXByZXNlbnRlZCB3aXRoIHBlcmZlY3QgYWNjdXJhY3kuIFRoaXMgc29tZXRpbWVzIHJlc3VsdHMgaW4gc21hbGwgcHJlY2lzaW9uIGVycm9yczpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQwLjEgKyAwLjJkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQjIE91dHB1dDogMC4zMDAwMDAwMDAwMDAwMDAwNGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFdoaWxlIHRoZXNlIGVycm9ycyBhcmUgbm9ybWFsIGluIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMsIHVuZGVyc3RhbmRpbmcgdGhlbSBpcyBjcml0aWNhbCB3aGVuIGRldmVsb3BpbmcgZmluYW5jaWFsIGFwcGxpY2F0aW9ucyBvciBzeXN0ZW1zIHJlcXVpcmluZyBleGFjdCBkZWNpbWFsIHZhbHVlcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjMuIDwvc3Ryb25nPjxzdHJvbmc+Y29tcGxleDwvc3Ryb25nPjxzdHJvbmc+IChDb21wbGV4IE51bWJlcnMpPC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Q29tcGxleCBudW1iZXJzIGNvbnNpc3Qgb2YgYSByZWFsIHBhcnQgYW5kIGFuIGltYWdpbmFyeSBwYXJ0LCB3cml0dGVuIGluIFB5dGhvbiB1c2luZyB0aGUgaiBub3RhdGlvbjpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnR6ID0gMyArIDVqZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50UHl0aG9uIGlzIG9uZSBvZiB0aGUgZmV3IHByb2dyYW1taW5nIGxhbmd1YWdlcyB0aGF0IG5hdGl2ZWx5IHN1cHBvcnRzIGNvbXBsZXggbnVtYmVycyB3aXRob3V0IHJlcXVpcmluZyBleHRlcm5hbCBsaWJyYXJpZXMuIERldmVsb3BlcnMgY2FuIHBlcmZvcm0gYWRkaXRpb24sIHN1YnRyYWN0aW9uLCBtdWx0aXBsaWNhdGlvbiwgZGl2aXNpb24sIHRyaWdvbm9tZXRyaWMgZnVuY3Rpb25zLCBhbmQgbW9yZSB3aXRoIGNvbXBsZXggbnVtYmVycy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRVc2UgY2FzZXMgaW5jbHVkZTpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50UXVhbnR1bSBjb21wdXRpbmdpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudERpZ2l0YWwgc2lnbmFsIHByb2Nlc3Npbmdpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEVsZWN0cmljYWwgZW5naW5lZXJpbmcgY2FsY3VsYXRpb25zaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRQaHlzaWNzIHNpbXVsYXRpb25zaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRDb21wbGV4IG51bWJlcnMgbWFrZSBQeXRob24gdW5pcXVlbHkgcG93ZXJmdWwgaW4gZG9tYWlucyB3aGVyZSBhZHZhbmNlZCBtYXRoZW1hdGljcyBpcyByZXF1aXJlZC5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjQuIDwvc3Ryb25nPjxzdHJvbmc+Ym9vbDwvc3Ryb25nPjxzdHJvbmc+IChCb29sZWFuKTwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEJvb2xlYW5zIHJlcHJlc2VudCB0cnV0aCB2YWx1ZXM6IFRydWUgYW5kIEZhbHNlLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudHggPSBUcnVlZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50eSA9IEZhbHNlZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50SW50ZXJlc3RpbmdseSwgQm9vbGVhbnMgaW4gUHl0aG9uIGFyZSBhY3R1YWxseSBhIHN1YnR5cGUgb2YgaW50ZWdlcnM6ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzdHlwZXN0YXJ0cmV2ZXJzZWRwbGFjZWhvbGRlcmJhY2tncm91bmRDb2xvcnRleHRDb2xvcmdyYWRpZW50bG9ja2FuY2hvcmNsYXNzTmFtZWZvbnRGYW1pbHlmb250U2l6ZXN0eWxlbWV0YWRhdGFpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRydWUgaXMgaW50ZXJwcmV0ZWQgYXMgMWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50RmFsc2UgaXMgaW50ZXJwcmV0ZWQgYXMgMGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhpcyBhbGxvd3MgQm9vbGVhbnMgdG8gYmUgdXNlZCBpbiBhcml0aG1ldGljIGV4cHJlc3Npb25zOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRydWUgKyBUcnVlJm5ic3A7ICZuYnNwOyAjIE91dHB1dDogMmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEZhbHNlICsgVHJ1ZSAmbmJzcDsgIyBPdXRwdXQ6IDFkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRCb29sZWFucyBwbGF5IGEgY3J1Y2lhbCByb2xlIGluIGNvbmRpdGlvbmFsIGxvZ2ljLCBsb29wIGNvbnRyb2wsIGNvbXBhcmlzb25zLCBhbmQgZGVjaXNpb24tbWFraW5nIGluIGFsbW9zdCBldmVyeSBQeXRob24gcHJvZ3JhbS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjUuIEFkZGl0aW9uYWwgTnVtZXJpYyBNb2R1bGVzPC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50QmV5b25kIGJ1aWx0LWluIG51bWVyaWMgdHlwZXMsIFB5dGhvbiBzdHJlbmd0aGVucyBpdHMgbnVtZXJpY2FsIGVjb3N5c3RlbSB3aXRoIHNwZWNpYWxpemVkIGxpYnJhcmllcyBkZXNpZ25lZCBmb3IgcHJlY2lzaW9uLCBwZXJmb3JtYW5jZSwgYW5kIG1hdGhlbWF0aWNhbCBkZXB0aC5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPmRlY2ltYWw8L3N0cm9uZz5sZXZlbGFuY2hvcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VXNlZCBmb3IgaGlnaC1wcmVjaXNpb24gZGVjaW1hbCBhcml0aG1ldGljLiBFc3NlbnRpYWwgZm9yIGJhbmtpbmcsIGZpbmFuY2UsIGFuZCBjdXJyZW5jeSBjYWxjdWxhdGlvbnMgd2hlcmUgZmxvYXRpbmctcG9pbnQgZXJyb3JzIGFyZSB1bmFjY2VwdGFibGUuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5mcmFjdGlvbnM8L3N0cm9uZz5sZXZlbGFuY2hvcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50UmVwcmVzZW50cyByYXRpb25hbCBudW1iZXJzIGFzIGV4YWN0IG51bWVyYXRvci9kZW5vbWluYXRvciBwYWlycy4gSWRlYWwgZm9yIHNjZW5hcmlvcyByZXF1aXJpbmcgZXhhY3QgcmVzdWx0cyByYXRoZXIgdGhhbiBhcHByb3hpbWF0aW9ucy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPm1hdGg8L3N0cm9uZz5sZXZlbGFuY2hvcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50UHJvdmlkZXMgYWR2YW5jZWQgbWF0aGVtYXRpY2FsIGZ1bmN0aW9ucyBzdWNoIGFzIHRyaWdvbm9tZXRyeSwgbG9nYXJpdGhtcywgY29uc3RhbnRzIChwaSwgZSksIGZhY3RvcmlhbHMsIGFuZCBtb3JlLiBIaWdobHkgb3B0aW1pemVkIGZvciBwZXJmb3JtYW5jZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPnJhbmRvbTwvc3Ryb25nPmxldmVsYW5jaG9yaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRVc2VmdWwgZm9yIHByb2JhYmlsaXN0aWMgbW9kZWxzLCBzaW11bGF0aW9ucywgdGVzdGluZywgYW5kIGdlbmVyYXRpbmcgcHNldWRvLXJhbmRvbSBudW1iZXJzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZXNlIG1vZHVsZXMgZXh0ZW5kIFB5dGhvbuKAmXMgbnVtZXJpYyBjYXBhYmlsaXRpZXMgZmFyIGJleW9uZCB0eXBpY2FsIG51bWJlciBvcGVyYXRpb25zLCBtYWtpbmcgaXQgYSBnby10byBsYW5ndWFnZSBmb3Igc2NpZW50aWZpYyByZXNlYXJjaCwgZW5naW5lZXJpbmcgYXBwbGljYXRpb25zLCBhbmQgZGF0YS1kcml2ZW4gZGV2ZWxvcG1lbnQuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5CdWlsdC1pbiBEYXRhIFR5cGVzIGluIFB5dGhvbiZuYnNwOzwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFB5dGhvbiBoYXMgbWFueSBidWlsdC1pbiBkYXRhIHR5cGVzIHRoYXQgYXJlIGVhc3kgdG8gdXNlLiBUaGVzZSBkYXRhIHR5cGVzIGhlbHAgZGV2ZWxvcGVycyBzdG9yZSwgb3JnYW5pemUgYW5kIHdvcmsgd2l0aCBkYXRhIGVhc2lseS4gVGhleSBhcmUgdXNlZCBpbiBldmVyeSBQeXRob24gcHJvZ3JhbSBmcm9tIHNtYWxsIHNjcmlwdHMgdG8gYmlnIHByb2plY3RzIGxpa2UgbWFjaGluZSBsZWFybmluZy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRQeXRob24gZ3JvdXBzIGl0cyBkYXRhIHR5cGVzIGludG8gY2F0ZWdvcmllcyBiYXNlZCBvbiBob3cgdGhleSB3b3JrIGFuZCBob3cgZGF0YSBpcyBzdG9yZWQuIEtub3dpbmcgdGhlc2UgY2F0ZWdvcmllcyBpcyBpbXBvcnRhbnQgZm9yIHdyaXRpbmcgY29kZSB0aGF0IGlzIGZhc3RlciwgY2xlYW5lciBhbmQgZWFzaWVyIHRvIHVuZGVyc3RhbmQuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXN1cmxhbHRjYXB0aW9uaWRzaXplU2x1Z2xpbmtEZXN0aW5hdGlvbmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50QmVsb3cgaXMgYSBkZWVwIGRpdmUgaW50byBlYWNoIGNhdGVnb3J5OmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+MS4gVGV4dCBUeXBlPC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5zdHI8L3N0cm9uZz48c3Ryb25nPiAoU3RyaW5nKTwvc3Ryb25nPmxldmVsYW5jaG9yaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBIDxzdHJvbmc+c3RyaW5nPC9zdHJvbmc+IHJlcHJlc2VudHMgYSBzZXF1ZW5jZSBvZiBVbmljb2RlIGNoYXJhY3RlcnMuIEl0IGlzIG9uZSBvZiB0aGUgbW9zdCBmcmVxdWVudGx5IHVzZWQgZGF0YSB0eXBlcyBpbiBQeXRob24uZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50bmFtZSA9ICJQeXRob24iZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50S2V5IGNoYXJhY3RlcmlzdGljcyBvZiBQeXRob24gc3RyaW5nczpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5JbW11dGFibGU6PC9zdHJvbmc+IE9uY2UgY3JlYXRlZCwgYSBzdHJpbmcgY2Fubm90IGJlIGNoYW5nZWQuIEFueSBtb2RpZmljYXRpb24gcmVzdWx0cyBpbiBhIG5ldyBzdHJpbmcgb2JqZWN0LmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5Vbmljb2RlIHN1cHBvcnQ6PC9zdHJvbmc+IFB5dGhvbiBzdHJpbmdzIGZ1bGx5IHN1cHBvcnQgaW50ZXJuYXRpb25hbCBjaGFyYWN0ZXJzIChIaW5kaSwgQ2hpbmVzZSwgRW1vamlzLCBzcGVjaWFsIHN5bWJvbHMsIGV0Yy4pLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5SaWNoIGZ1bmN0aW9uYWxpdHk6PC9zdHJvbmc+IFN0cmluZ3MgYWxsb3cgc2xpY2luZywgY29uY2F0ZW5hdGlvbiwgZm9ybWF0dGluZywgc2VhcmNoaW5nLCBhbmQgdHJhbnNmb3JtYXRpb24gdXNpbmcgYnVpbHQtaW4gbWV0aG9kcy5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFVzZSBjYXNlcyBpbmNsdWRlOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc3R5cGVzdGFydHJldmVyc2VkcGxhY2Vob2xkZXJiYWNrZ3JvdW5kQ29sb3J0ZXh0Q29sb3JncmFkaWVudGxvY2thbmNob3JjbGFzc05hbWVmb250RmFtaWx5Zm9udFNpemVzdHlsZW1ldGFkYXRhaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUZXh0IHByb2Nlc3Npbmdpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFVzZXIgaW5wdXRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudExvZyBtZXNzYWdlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Q29uZmlndXJhdGlvbiBmaWxlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50TkxQIChOYXR1cmFsIExhbmd1YWdlIFByb2Nlc3NpbmcpaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjIuIFNlcXVlbmNlIFR5cGVzPC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlc2UgZGF0YSB0eXBlcyBzdG9yZSBvcmRlcmVkIGNvbGxlY3Rpb25zIG9mIGl0ZW1zLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+bGlzdDwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEEgPHN0cm9uZz5saXN0PC9zdHJvbmc+IGlzIGEgbXV0YWJsZSBzZXF1ZW5jZSB0aGF0IGNhbiBzdG9yZSBoZXRlcm9nZW5lb3VzIGRhdGEgdHlwZXMtaW50ZWdlcnMsIHN0cmluZ3MsIG9iamVjdHMsIG9yIGV2ZW4gb3RoZXIgbGlzdHMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50bnVtcyA9IFsxLCAyLCAzXWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudENvcmUgcHJvcGVydGllczpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5NdXRhYmxlOjwvc3Ryb25nPiBJdGVtcyBjYW4gYmUgYWRkZWQsIHJlbW92ZWQsIG9yIGNoYW5nZWQuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkR5bmFtaWMgcmVzaXppbmc6PC9zdHJvbmc+IEdyb3dzL3Nocmlua3MgYXV0b21hdGljYWxseSBhcyBlbGVtZW50cyBhcmUgYWRkZWQgb3IgZGVsZXRlZC5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+SGV0ZXJvZ2VuZW91czo8L3N0cm9uZz4gU3VwcG9ydHMgc3RvcmluZyBtaXhlZCBkYXRhIHR5cGVzLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5JbmRleC1iYXNlZCBhY2Nlc3M6PC9zdHJvbmc+IFJldHJpZXZhbCBpcyBmYXN0IHVzaW5nIGxpc3RbaW5kZXhdLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50TGlzdHMgYXJlIHVzZWZ1bCBmb3I6ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzdHlwZXN0YXJ0cmV2ZXJzZWRwbGFjZWhvbGRlcmJhY2tncm91bmRDb2xvcnRleHRDb2xvcmdyYWRpZW50bG9ja2FuY2hvcmNsYXNzTmFtZWZvbnRGYW1pbHlmb250U2l6ZXN0eWxlbWV0YWRhdGFpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudE1hbmFnaW5nIGRhdGFzZXRzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRCdWlsZGluZyBkeW5hbWljIGNvbGxlY3Rpb25zaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRTdG9yaW5nIHJlc3VsdHMgZnJvbSBsb29wc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50RGF0YSB0cmFuc2Zvcm1hdGlvbiBwaXBlbGluZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+dHVwbGU8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBIDxzdHJvbmc+dHVwbGU8L3N0cm9uZz4gaXMgYW4gaW1tdXRhYmxlLCBvcmRlcmVkIGNvbGxlY3Rpb24gb2YgaXRlbXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Y29vcmRzID0gKDEwLCAyMClkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRDb3JlIHByb3BlcnRpZXM6ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzdHlwZXN0YXJ0cmV2ZXJzZWRwbGFjZWhvbGRlcmJhY2tncm91bmRDb2xvcnRleHRDb2xvcmdyYWRpZW50bG9ja2FuY2hvcmNsYXNzTmFtZWZvbnRGYW1pbHlmb250U2l6ZXN0eWxlbWV0YWRhdGFpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+SW1tdXRhYmxlOjwvc3Ryb25nPiBPbmNlIGNyZWF0ZWQsIGVsZW1lbnRzIGNhbm5vdCBiZSBtb2RpZmllZC5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+TGlnaHR3ZWlnaHQ6PC9zdHJvbmc+IEZhc3RlciBhbmQgbW9yZSBtZW1vcnktZWZmaWNpZW50IHRoYW4gbGlzdHMuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPlVzZWQgZm9yIGZpeGVkIGRhdGE6PC9zdHJvbmc+IElkZWFsIGZvciB2YWx1ZXMgdGhhdCBtdXN0IG5vdCBjaGFuZ2UsIHN1Y2ggYXMgY29vcmRpbmF0ZXMsIGNvbmZpZ3VyYXRpb25zLCBhbmQgbWV0YWRhdGEuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUdXBsZXMgYXJlIGNvbW1vbmx5IHVzZWQgaW46ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzdHlwZXN0YXJ0cmV2ZXJzZWRwbGFjZWhvbGRlcmJhY2tncm91bmRDb2xvcnRleHRDb2xvcmdyYWRpZW50bG9ja2FuY2hvcmNsYXNzTmFtZWZvbnRGYW1pbHlmb250U2l6ZXN0eWxlbWV0YWRhdGFpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEZ1bmN0aW9uIHJldHVybnMgKG11bHRpcGxlIHZhbHVlcylpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudERhdGFiYXNlIHJlY29yZHNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEhhc2hhYmxlIHR5cGVzIGZvciBkaWN0aW9uYXJ5IGtleXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+cmFuZ2U8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRyYW5nZSByZXByZXNlbnRzIGEgc2VxdWVuY2Ugb2YgbnVtYmVycywgb2Z0ZW4gdXNlZCBpbiBsb29wczpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRyID0gcmFuZ2UoMSwgMTApZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50UmFuZ2Ugb2JqZWN0czpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50RG8gbm90IGdlbmVyYXRlIG51bWJlcnMgaW1tZWRpYXRlbHkgKGxhenkgZXZhbHVhdGlvbilpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEFyZSBtZW1vcnktZWZmaWNpZW50aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRQcm92aWRlIGZhc3QgaXRlcmF0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRQZXJmZWN0IGZvcjpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50TG9vcCBjb3VudGVyc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50R2VuZXJhdGluZyBzZXF1ZW5jZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudE1hdGhlbWF0aWNhbCBzZXJpZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+My4gTWFwcGluZyBUeXBlPC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5kaWN0PC9zdHJvbmc+PHN0cm9uZz4gKERpY3Rpb25hcnkpPC9zdHJvbmc+bGV2ZWxhbmNob3Jpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEEgZGljdGlvbmFyeSBzdG9yZXMgZGF0YSBpbiA8ZW0+a2V5LXZhbHVlPC9lbT4gcGFpcnMgYW5kIGlzIG9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCBhbmQgd2lkZWx5IHVzZWQgUHl0aG9uIGRhdGEgc3RydWN0dXJlcy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRzdHVkZW50ID0geyJuYW1lIjogIkpvaG4iLCAiYWdlIjogMjJ9ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50S2V5IGNoYXJhY3RlcmlzdGljczpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5GYXN0IGxvb2t1cDo8L3N0cm9uZz4gRGljdGlvbmFyaWVzIHVzZSBoYXNoaW5nLCBtYWtpbmcgc2VhcmNoZXMgZXh0cmVtZWx5IHF1aWNrLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5NdXRhYmxlOjwvc3Ryb25nPiBLZXlzIGFuZCB2YWx1ZXMgY2FuIGJlIGFkZGVkLCByZW1vdmVkLCBvciBtb2RpZmllZC5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+RmxleGlibGU6PC9zdHJvbmc+IEtleXMgbXVzdCBiZSB1bmlxdWUgYW5kIGhhc2hhYmxlOyB2YWx1ZXMgY2FuIGJlIGFueXRoaW5nLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VXNlIGNhc2VzOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc3R5cGVzdGFydHJldmVyc2VkcGxhY2Vob2xkZXJiYWNrZ3JvdW5kQ29sb3J0ZXh0Q29sb3JncmFkaWVudGxvY2thbmNob3JjbGFzc05hbWVmb250RmFtaWx5Zm9udFNpemVzdHlsZW1ldGFkYXRhaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRTdG9yaW5nIEpTT04tbGlrZSBkYXRhaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBUEkgcmVzcG9uc2VzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRDYWNoaW5naW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRVc2VyIHByb2ZpbGVzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRDb25maWd1cmF0aW9ucyBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnREaWN0aW9uYXJpZXMgYXJlIGNydWNpYWwgaW4gbW9kZXJuIFB5dGhvbiBhcHBzLCBlc3BlY2lhbGx5IGluIHdlYiwgTUwsIGFuZCBkYXRhIGVuZ2luZWVyaW5nIHdvcmtmbG93cy5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjQuIFNldCBUeXBlczwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEEgc2V0IGlzIGFuIDxzdHJvbmc+dW5vcmRlcmVkIGNvbGxlY3Rpb248L3N0cm9uZz4gb2YgdW5pcXVlIGl0ZW1zLiBVc2VmdWwgd2hlbiB5b3Ugd2FudCB0byBhdm9pZCBkdXBsaWNhdGUgdmFsdWVzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+c2V0PC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50cyA9IHsxLCAyLCAzfWRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEtleSBwcm9wZXJ0aWVzOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc3R5cGVzdGFydHJldmVyc2VkcGxhY2Vob2xkZXJiYWNrZ3JvdW5kQ29sb3J0ZXh0Q29sb3JncmFkaWVudGxvY2thbmNob3JjbGFzc05hbWVmb250RmFtaWx5Zm9udFNpemVzdHlsZW1ldGFkYXRhaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPk5vIGR1cGxpY2F0ZXMgYWxsb3dlZDwvc3Ryb25nPmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5NdXRhYmxlIGFuZCBkeW5hbWljPC9zdHJvbmc+aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkV4dHJlbWVseSBmYXN0IGZvciBtZW1iZXJzaGlwIGNoZWNrczwvc3Ryb25nPiAoaW4sIG5vdCBpbilpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEdyZWF0IGZvcjpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50UmVtb3ZpbmcgZHVwbGljYXRlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50TWF0aGVtYXRpY2FsIG9wZXJhdGlvbnMgKHVuaW9uLCBpbnRlcnNlY3Rpb24sIGRpZmZlcmVuY2UpaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRGYXN0IG1lbWJlcnNoaXAgdGVzdGluZ2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5mcm96ZW5zZXQ8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBbiBpbW11dGFibGUgdmVyc2lvbiBvZiBhIHNldC5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRLZXkgdXNlczpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50V2hlbiBhIHNldCBuZWVkcyB0byBiZSBoYXNoYWJsZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50V2hlbiBzdG9yaW5nIGluc2lkZSBkaWN0aW9uYXJpZXMgb3Igb3RoZXIgc2V0c2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Rm9yIGZpeGVkLCByZWFkLW9ubHkgc2V0cyBvZiB1bmlxdWUgZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz41LiBCb29sZWFuIFR5cGU8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBbHJlYWR5IGNvdmVyZWQgdW5kZXIgbnVtZXJpYyB0eXBlcywgYnV0IGVzc2VudGlhbCB0byBtZW50aW9uIGhlcmU6ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzdHlwZXN0YXJ0cmV2ZXJzZWRwbGFjZWhvbGRlcmJhY2tncm91bmRDb2xvcnRleHRDb2xvcmdyYWRpZW50bG9ja2FuY2hvcmNsYXNzTmFtZWZvbnRGYW1pbHlmb250U2l6ZXN0eWxlbWV0YWRhdGFpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFJlcHJlc2VudHMgdHJ1dGggdmFsdWVzOiBUcnVlIGFuZCBGYWxzZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50RnJlcXVlbnRseSB1c2VkIGluOjxicj5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc3R5cGVzdGFydHJldmVyc2VkcGxhY2Vob2xkZXJiYWNrZ3JvdW5kQ29sb3J0ZXh0Q29sb3JncmFkaWVudGxvY2thbmNob3JjbGFzc05hbWVmb250RmFtaWx5Zm9udFNpemVzdHlsZW1ldGFkYXRhaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRDb25kaXRpb25hbCBzdGF0ZW1lbnRzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRMb29wc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Q29tcGFyaXNvbnNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudExvZ2ljYWwgb3BlcmF0aW9uc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Qm9vbGVhbnMgZm9ybSB0aGUgZm91bmRhdGlvbiBvZiBwcm9ncmFtIGZsb3cgY29udHJvbC5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjYuIEJpbmFyeSBUeXBlczwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudERlc2lnbmVkIGZvciBoYW5kbGluZyByYXcgYmluYXJ5IGRhdGEsIGJ5dGVzLCBhbmQgbWVtb3J5LWVmZmljaWVudCBvcGVyYXRpb25zLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEluY2x1ZGVzOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+Ynl0ZXM8L3N0cm9uZz5sZXZlbGFuY2hvcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50SW1tdXRhYmxlIHNlcXVlbmNlcyBvZiBieXRlcyAoMOKAkzI1NSkuPGJyPlVzZWQgaW46ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzdHlwZXN0YXJ0cmV2ZXJzZWRwbGFjZWhvbGRlcmJhY2tncm91bmRDb2xvcnRleHRDb2xvcmdyYWRpZW50bG9ja2FuY2hvcmNsYXNzTmFtZWZvbnRGYW1pbHlmb250U2l6ZXN0eWxlbWV0YWRhdGFpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEZpbGUgaGFuZGxpbmdpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEltYWdlL2F1ZGlvIGRhdGFpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudENvbXByZXNzaW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPmJ5dGVhcnJheTwvc3Ryb25nPmxldmVsYW5jaG9yaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRNdXRhYmxlIHZlcnNpb24gb2YgYnl0ZXMuPGJyPlVzZWQgd2hlbiBiaW5hcnkgZGF0YSBtdXN0IGJlIG1vZGlmaWVkLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+bWVtb3J5dmlldzwvc3Ryb25nPmxldmVsYW5jaG9yaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRQcm92aWRlcyBhIHZpZXcgaW50byBiaW5hcnkgZGF0YSB3aXRob3V0IGNvcHlpbmcgaXQtdmVyeSBlZmZpY2llbnQgZm9yIGxhcmdlIGRhdGEgYmxvY2tzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEltcG9ydGFudCBpbjpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50TmV0d29yayBjb21tdW5pY2F0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRCdWZmZXIgaGFuZGxpbmdpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEhpZ2gtcGVyZm9ybWFuY2UgYXBwbGljYXRpb25zaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPldoeSBCdWlsdC1pbiBEYXRhIFR5cGVzIE1hdHRlcjwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFB5dGhvbuKAmXMgYnVpbHQtaW4gZGF0YSB0eXBlcyBhcmUgb3B0aW1pemVkIGZvcjpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50U3BlZWRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEZsZXhpYmlsaXR5aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRNZW1vcnkgZWZmaWNpZW5jeWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50UmVhbC13b3JsZCBhcHBsaWNhdGlvbiBuZWVkc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhleSBmb3JtIHRoZSBmb3VuZGF0aW9uIGZvcjpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50QWxnb3JpdGhtc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50QVBJcyBhbmQgYmFja2VuZCBzeXN0ZW1zaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRNYWNoaW5lIGxlYXJuaW5nIHBpcGVsaW5lc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50RW50ZXJwcmlzZS1ncmFkZSBhcHBsaWNhdGlvbnNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudERhdGEgYW5hbHlzaXMgd29ya2Zsb3dzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRNYXN0ZXJpbmcgdGhlc2UgdHlwZXMgZW5zdXJlcyBiZXR0ZXIgcGVyZm9ybWFuY2UsIGNsZWFuZXIgY29kZSwgYW5kIGltcHJvdmVkIHByb2JsZW0tc29sdmluZyBhcyBhIFB5dGhvbiBkZXZlbG9wZXIuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5DaG9vc2luZyB0aGUgUmlnaHQgRGF0YSBUeXBlPC9zdHJvbmc+ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIGFiaWxpdHkgdG8gY2hvb3NlIHRoZSBjb3JyZWN0IGRhdGEgdHlwZSBkZXRlcm1pbmVzOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc3R5cGVzdGFydHJldmVyc2VkcGxhY2Vob2xkZXJiYWNrZ3JvdW5kQ29sb3J0ZXh0Q29sb3JncmFkaWVudGxvY2thbmNob3JjbGFzc05hbWVmb250RmFtaWx5Zm9udFNpemVzdHlsZW1ldGFkYXRhaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBcHBsaWNhdGlvbiBwZXJmb3JtYW5jZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50TWVtb3J5IHVzYWdlaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRDb2RlIHJlYWRhYmlsaXR5aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRCdWcgcHJldmVudGlvbmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5XaGVuIHRvIHVzZSB3aGljaCBkYXRhIHR5cGU\/PC9zdHJvbmc+bGV2ZWxhbmNob3Jpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzaGFzRml4ZWRMYXlvdXRjYXB0aW9uaGVhZGJvZHlmb290Ym9yZGVyQ29sb3JiYWNrZ3JvdW5kQ29sb3J0ZXh0Q29sb3JncmFkaWVudGFsaWdubG9ja2FuY2hvcmNsYXNzTmFtZWZvbnRGYW1pbHlmb250U2l6ZXN0eWxlbWV0YWRhdGFpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+Q2hvb3NpbmcgYmFzZWQgb24gbXV0YWJpbGl0eTwvc3Ryb25nPmxldmVsYW5jaG9yaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VXNlIDxzdHJvbmc+dHVwbGVzPC9zdHJvbmc+IGluc3RlYWQgb2YgPHN0cm9uZz5saXN0czwvc3Ryb25nPiB3aGVuIGltbXV0YWJpbGl0eSBpcyByZXF1aXJlZC5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFVzZSA8c3Ryb25nPmZyb3plbnNldDwvc3Ryb25nPiBpbnN0ZWFkIG9mIDxzdHJvbmc+c2V0PC9zdHJvbmc+IHdoZW4gbW9kaWZ5aW5nIGlzIG5vdCBhbGxvd2VkLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5DaG9vc2luZyBiYXNlZCBvbiBvcGVyYXRpb24gc3BlZWQ8L3N0cm9uZz5sZXZlbGFuY2hvcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzdHlwZXN0YXJ0cmV2ZXJzZWRwbGFjZWhvbGRlcmJhY2tncm91bmRDb2xvcnRleHRDb2xvcmdyYWRpZW50bG9ja2FuY2hvcmNsYXNzTmFtZWZvbnRGYW1pbHlmb250U2l6ZXN0eWxlbWV0YWRhdGFpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudERpY3Rpb25hcmllcyBhbmQgc2V0cyBhcmUgZmFzdGVyIGZvciBsb29rdXBzLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50TGlzdHMgYXJlIGJldHRlciBmb3Igb3JkZXJlZCBkYXRhIGFuZCBzbGljaW5nLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Q2hvb3NpbmcgdGhlIHJpZ2h0IHR5cGUgZW5zdXJlcyB5b3VyIGNvZGUgcmVtYWlucyBlZmZpY2llbnQgYW5kIGNsZWFyLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+VHlwZSBIaW50cyBhbmQgQW5ub3RhdGlvbnMgKFB5dGhvbiAzLjUrKTwvc3Ryb25nPmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFR5cGUgaGludGluZyByZXZvbHV0aW9uaXplZCBQeXRob24gYnkgYWRkaW5nIHN0YXRpYyB0eXBpbmcgY2FwYWJpbGl0aWVzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEV4YW1wbGU6ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZGVmIGFkZChhOiBpbnQsIGI6IGludCkgLSZndDsgaW50OmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiBhICsgYmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEJlbmVmaXRzOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc3R5cGVzdGFydHJldmVyc2VkcGxhY2Vob2xkZXJiYWNrZ3JvdW5kQ29sb3J0ZXh0Q29sb3JncmFkaWVudGxvY2thbmNob3JjbGFzc05hbWVmb250RmFtaWx5Zm9udFNpemVzdHlsZW1ldGFkYXRhaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRCZXR0ZXIgSURFIHN1cHBvcnRpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEZld2VyIGJ1Z3Npbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudENsZWFuZXIgZG9jdW1lbnRhdGlvbmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50SGVscHMgbGFyZ2UgdGVhbXMgbWFpbnRhaW4gY29kZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50UHl0aG9uIHN1cHBvcnRzOmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc3R5cGVzdGFydHJldmVyc2VkcGxhY2Vob2xkZXJiYWNrZ3JvdW5kQ29sb3J0ZXh0Q29sb3JncmFkaWVudGxvY2thbmNob3JjbGFzc05hbWVmb250RmFtaWx5Zm9udFNpemVzdHlsZW1ldGFkYXRhaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRCYXNpYyB0eXBlcyAoaW50LCBzdHIsIGZsb2F0KWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50R2VuZXJpYyB0eXBlcyAobGlzdFtpbnRdLCBkaWN0W3N0ciwgaW50XSlpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudE9wdGlvbmFsIHR5cGVzIChPcHRpb25hbFtzdHJdKWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VW5pb24gdHlwZXMgKGludCB8IHN0cilpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEN1c3RvbSBjbGFzc2VzIGFzIHR5cGVzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUeXBlIGhpbnRzIGJyaWRnZSB0aGUgZ2FwIGJldHdlZW4gUHl0aG9u4oCZcyBkeW5hbWljIG5hdHVyZSBhbmQgbW9kZXJuIGRldmVsb3BtZW50IHByYWN0aWNlcyByZXF1aXJpbmcgY29uc2lzdGVuY3kgYW5kIGNsYXJpdHkuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5BZHZhbmNlZCBhbmQgQ3VzdG9tIERhdGEgVHlwZXM8L3N0cm9uZz5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRQeXRob24gYWxsb3dzIGNyZWF0aW5nIDxzdHJvbmc+Y3VzdG9tIGNsYXNzZXM8L3N0cm9uZz4gdG8gc2VydmUgYXMgbmV3IGRhdGEgdHlwZXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Y2xhc3MgVmVoaWNsZTpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtkZWYgX19pbml0X18oc2VsZiwgbW9kZWw6IHN0ciwgc3BlZWQ6IGludCk6ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7c2VsZi5tb2RlbCA9IG1vZGVsZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7c2VsZi5zcGVlZCA9IHNwZWVkZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50QWRkaXRpb25hbGx5LCBhZHZhbmNlZCBkYXRhIHN0cnVjdHVyZXMgaW5jbHVkZTpkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXN0eXBlc3RhcnRyZXZlcnNlZHBsYWNlaG9sZGVyYmFja2dyb3VuZENvbG9ydGV4dENvbG9yZ3JhZGllbnRsb2NrYW5jaG9yY2xhc3NOYW1lZm9udEZhbWlseWZvbnRTaXplc3R5bGVtZXRhZGF0YWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50TmFtZWRUdXBsZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50ZGF0YWNsYXNzZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEVudW1pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFR5cGVkRGljdGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VXNlci1kZWZpbmVkIGNsYXNzZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZXNlIHByb3ZpZGUgZmxleGliaWxpdHkgdG8gc3RydWN0dXJlIGRhdGEgb3B0aW1hbGx5IGZvciBjb21wbGV4IHByb2plY3RzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+Q29tbW9uIE1pc3Rha2VzIGFuZCBUaXBzPC9zdHJvbmc+bGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc3R5cGVzdGFydHJldmVyc2VkcGxhY2Vob2xkZXJiYWNrZ3JvdW5kQ29sb3J0ZXh0Q29sb3JncmFkaWVudGxvY2thbmNob3JjbGFzc05hbWVmb250RmFtaWx5Zm9udFNpemVzdHlsZW1ldGFkYXRhaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRDb25mdXNpbmcgbXV0YWJsZSB2cyBpbW11dGFibGUgdHlwZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFVzaW5nIGxpc3RzIHdoZXJlIHNldHMgYXJlIG5lZWRlZGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50TWlzdXNpbmcgZmxvYXRzIGluIGZpbmFuY2lhbCBjYWxjdWxhdGlvbnNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEZhaWxpbmcgdG8gdXNlIHR5cGUgaGludHNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFVuaW50ZW50aW9uYWxseSBtb2RpZnlpbmcgc2hhcmVkIGRhdGEgc3RydWN0dXJlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50T3ZlcnVzaW5nIGRpY3Rpb25hcmllcyB3aGVyZSBjbGFzc2VzIGFyZSBiZXR0ZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEF2b2lkaW5nIGJ1aWx0LWlucyBsaWtlIGVudW1lcmF0ZSwgemlwLCBtYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+VGlwcyBmb3IgZGV2ZWxvcGVyczo8L3N0cm9uZz5sZXZlbGFuY2hvcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzdHlwZXN0YXJ0cmV2ZXJzZWRwbGFjZWhvbGRlcmJhY2tncm91bmRDb2xvcnRleHRDb2xvcmdyYWRpZW50bG9ja2FuY2hvcmNsYXNzTmFtZWZvbnRGYW1pbHlmb250U2l6ZXN0eWxlbWV0YWRhdGFpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEFsd2F5cyBjaG9vc2UgdGhlIHNtYWxsZXN0IGVmZmVjdGl2ZSBkYXRhIHR5cGVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFVzZSB0eXBlIGhpbnRzIGluIGFsbCBtb2Rlcm4gY29kZWJhc2VzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRQcmVmZXIgaW1tdXRhYmxlIHR5cGVzIGZvciBzYWZldHlpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFVzZSBzdGFuZGFyZCBsaWJyYXJpZXMgYmVmb3JlIHJlaW52ZW50aW5nIHN0cnVjdHVyZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+Q29uY2x1c2lvbjwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRQeXRob24gZGF0YSB0eXBlcyBhcmUgdmVyeSBpbXBvcnRhbnQgZm9yIGV2ZXJ5IHByb2dyYW0gc2NyaXB0IGFuZCBzeXN0ZW0gbWFkZSB3aXRoIFB5dGhvbi4gVGhleSBoZWxwIHlvdSB3b3JrIHdpdGggbnVtYmVycywgdGV4dCBsaXN0cyBhbmQgb3RoZXIgZGF0YSBlYXNpbHkuIEtub3dpbmcgZGF0YSB0eXBlcyBpcyBpbXBvcnRhbnQgdG8gd3JpdGUgY2xlYW4sIGVhc3kgdG8gdW5kZXJzdGFuZCBhbmQgZmFzdCBjb2RlLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEFzIFB5dGhvbiBncm93cyBhbmQgaW1wcm92ZXMgbGVhcm5pbmcsIGJ1aWx0IGluIHR5cGVzLCB0eXBlIGhpbnRzIGFuZCBjdXN0b20gZGF0YSBzdHJ1Y3R1cmVzIHdpbGwgaGVscCB5b3UgbWFrZSBtb2Rlcm4gcHJvZmVzc2lvbmFsIGFuZCBiaWdnZXIgcHJvZ3JhbXMuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5GQVFzPC9zdHJvbmc+bGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+MS4gV2h5IGFyZSBkYXRhIHR5cGVzIGltcG9ydGFudCBpbiBQeXRob24\/PC9zdHJvbmc+bGV2ZWxhbmNob3Jpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZXkgZGV0ZXJtaW5lIGhvdyBkYXRhIGJlaGF2ZXMgYW5kIHdoYXQgb3BlcmF0aW9ucyBhcmUgYWxsb3dlZC5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjIuIERvZXMgUHl0aG9uIHN1cHBvcnQgc3RhdGljIHR5cGluZz88L3N0cm9uZz5sZXZlbGFuY2hvcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50WWVzLCB0aHJvdWdoIHR5cGUgaGludHMgaW50cm9kdWNlZCBpbiBQeXRob24gMy41Ky5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjMuIEFyZSBsaXN0cyBvciB0dXBsZXMgZmFzdGVyPzwvc3Ryb25nPmxldmVsYW5jaG9yaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUdXBsZXMgYXJlIGZhc3RlciBiZWNhdXNlIHRoZXkgYXJlIGltbXV0YWJsZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjQuIFdoYXQgdHlwZSBzaG91bGQgSSB1c2UgZm9yIGZpbmFuY2lhbCBjYWxjdWxhdGlvbnM\/PC9zdHJvbmc+bGV2ZWxhbmNob3Jpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFVzZSB0aGUgZGVjaW1hbCBtb2R1bGUgZm9yIHByZWNpc2lvbi5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPjUuIFdoYXQgaXMgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBkYXRhIHR5cGUgaW4gUHl0aG9uPzwvc3Ryb25nPmxldmVsYW5jaG9yaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRMaXN0cyBhbmQgZGljdGlvbmFyaWVzIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZC5kcm9wQ2FwaW5uZXJCbG9ja3NzdGF0ZXNhdmVkQXRzdGF0ZXNhdmVkQnnCoFzCoMKgwqDCoG91cnNlbGYuPGJyPjxzdHJvbmc+Rm9yIGV4YW1wbGU6PC9zdHJvbmc+aXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkeCA9IDEwICAgIMKgwqDCoMKgwqDCoMKgwqA+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPHA+PC9wPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8cD5UcnVlICsgVHJ1ZcKgIMKgICMgT3V0cHV0OiAyPC9wPgo8cD5GYWxzZSArIFRydWUgwqAgIyBPdXRwdXQ6IDE8L3A+CjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjo0LCJhbmNob3IiOiJoLWRlY2ltYWwifSAtLT4KPGg0IGlkPSJoLWRlY2ltYWwiIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPmRlY2ltYWw8L3N0cm9uZz48L2g0Pgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6NCwiYW5jaG9yIjoiaC1mcmFjdGlvbnMifSAtLT4KPGg0IGlkPSJoLWZyYWN0aW9ucyIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+ZnJhY3Rpb25zPC9zdHJvbmc+PC9oND4KPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjQsImFuY2hvciI6ImgtbWF0aCJ9IC0tPgo8aDQgaWQ9ImgtbWF0aCIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+bWF0aDwvc3Ryb25nPjwvaDQ+CjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjo0LCJhbmNob3IiOiJoLXJhbmRvbSJ9IC0tPgo8aDQgaWQ9ImgtcmFuZG9tIiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz5yYW5kb208L3N0cm9uZz48L2g0Pgo8cD48c3Ryb25nPkJ1aWx0LWluIERhdGEgVHlwZXMgaW4gUHl0aG9uwqA8L3N0cm9uZz48L3A+CjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjo0LCJhbmNob3IiOiJoLXN0ci1zdHJpbmcifSAtLT4KPGg0IGlkPSJoLXN0ci1zdHJpbmciIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPnN0cjwvc3Ryb25nPjxzdHJvbmc+IChTdHJpbmcpPC9zdHJvbmc+PC9oND4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjQsImFuY2hvciI6ImgtZGljdC1kaWN0aW9uYXJ5In0gLS0+CjxoNCBpZD0iaC1kaWN0LWRpY3Rpb25hcnkiIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPmRpY3Q8L3N0cm9uZz48c3Ryb25nPiAoRGljdGlvbmFyeSk8L3N0cm9uZz48L2g0Pgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6NCwiYW5jaG9yIjoiaC1ieXRlcyJ9IC0tPgo8aDQgaWQ9ImgtYnl0ZXMiIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPmJ5dGVzPC9zdHJvbmc+PC9oND4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjQsImFuY2hvciI6ImgtYnl0ZWFycmF5In0gLS0+CjxoNCBpZD0iaC1ieXRlYXJyYXkiIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPmJ5dGVhcnJheTwvc3Ryb25nPjwvaDQ+CjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjo0LCJhbmNob3IiOiJoLW1lbW9yeXZpZXcifSAtLT4KPGg0IGlkPSJoLW1lbW9yeXZpZXciIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPm1lbW9yeXZpZXc8L3N0cm9uZz48L2g0Pgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6MywiYW5jaG9yIjoiaC13aGVuLXRvLXVzZS13aGljaC1kYXRhLXR5cGUifSAtLT4KPGgzIGlkPSJoLXdoZW4tdG8tdXNlLXdoaWNoLWRhdGEtdHlwZSIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+V2hlbiB0byB1c2Ugd2hpY2ggZGF0YSB0eXBlPzwvc3Ryb25nPjwvaDM+CjwhLS0gd3A6dGFibGUgeyJoYXNGaXhlZExheW91dCI6ZmFsc2V9IC0tPgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay10YWJsZSI+PHRhYmxlPjx0Ym9keT48dHI+PHRkPjxzdHJvbmc+wqAgwqAgwqAgwqAgwqAgwqAgUHVycG9zZTwvc3Ryb25nPjwvdGQ+PHRkPjxzdHJvbmc+QmVzdCBEYXRhIFR5cGU8L3N0cm9uZz48L3RkPjwvdHI+PHRyPjx0ZD5TdG9yZSBzdHJ1Y3R1cmVkIGtleS12YWx1ZSBkYXRhPC90ZD48dGQ+ZGljdDwvdGQ+PC90cj48dHI+PHRkPk1haW50YWluIG9yZGVyICsgaW5kZXhpbmc8L3RkPjx0ZD5saXN0PC90ZD48L3RyPjx0cj48dGQ+UHJvdGVjdCBkYXRhIGZyb20gbW9kaWZpY2F0aW9uPC90ZD48dGQ+dHVwbGU8L3RkPjwvdHI+PHRyPjx0ZD5GYXN0IG1lbWJlcnNoaXAgdGVzdHM8L3RkPjx0ZD5zZXQ8L3RkPjwvdHI+PHRyPjx0ZD5SZWFsIG51bWJlcnMgb3IgZGVjaW1hbCBwcmVjaXNpb248L3RkPjx0ZD5mbG9hdCAvIGRlY2ltYWw8L3RkPjwvdHI+PHRyPjx0ZD5TdG9yZSByYXcgYmluYXJ5IGRhdGE8L3RkPjx0ZD5ieXRlczwvdGQ+PC90cj48dHI+PHRkPlVzZSBzaW1wbGUgeWVzL25vIHZhbHVlczwvdGQ+PHRkPmJvb2w8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZmlndXJlPgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6MywiYW5jaG9yIjoiaC1jaG9vc2luZy1iYXNlZC1vbi1tdXRhYmlsaXR5In0gLS0+CjxoMyBpZD0iaC1jaG9vc2luZy1iYXNlZC1vbi1tdXRhYmlsaXR5IiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz5DaG9vc2luZyBiYXNlZCBvbiBtdXRhYmlsaXR5PC9zdHJvbmc+PC9oMz4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjMsImFuY2hvciI6ImgtY2hvb3NpbmctYmFzZWQtb24tb3BlcmF0aW9uLXNwZWVkIn0gLS0+CjxoMyBpZD0iaC1jaG9vc2luZy1iYXNlZC1vbi1vcGVyYXRpb24tc3BlZWQiIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPkNob29zaW5nIGJhc2VkIG9uIG9wZXJhdGlvbiBzcGVlZDwvc3Ryb25nPjwvaDM+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxwPmRlZiBhZGQoYTogaW50LCBiOiBpbnQpIC0+IGludDo8L3A+CjxwPsKgwqDCoMKgcmV0dXJuIGEgKyBiPC9wPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8cD7CoMKgwqDCoGRlZiBfX2luaXRfXyhzZWxmLCBtb2RlbDogc3RyLCBzcGVlZDogaW50KTo8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqBzZWxmLm1vZGVsID0gbW9kZWw8L3A+CjxwPsKgwqDCoMKgwqDCoMKgwqBzZWxmLnNwZWVkID0gc3BlZWQ8L3A+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxvbCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozLCJhbmNob3IiOiJoLXRpcHMtZm9yLWRldmVsb3BlcnMifSAtLT4KPGgzIGlkPSJoLXRpcHMtZm9yLWRldmVsb3BlcnMiIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPlRpcHMgZm9yIGRldmVsb3BlcnM6PC9zdHJvbmc+PC9oMz4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjMsImFuY2hvciI6ImgtMS13aHktYXJlLWRhdGEtdHlwZXMtaW1wb3J0YW50LWluLXB5dGhvbiJ9IC0tPgo8aDMgaWQ9ImgtMS13aHktYXJlLWRhdGEtdHlwZXMtaW1wb3J0YW50LWluLXB5dGhvbiIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+MS4gV2h5IGFyZSBkYXRhIHR5cGVzIGltcG9ydGFudCBpbiBQeXRob24\/PC9zdHJvbmc+PC9oMz4KPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjMsImFuY2hvciI6ImgtMi1kb2VzLXB5dGhvbi1zdXBwb3J0LXN0YXRpYy10eXBpbmcifSAtLT4KPGgzIGlkPSJoLTItZG9lcy1weXRob24tc3VwcG9ydC1zdGF0aWMtdHlwaW5nIiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz4yLiBEb2VzIFB5dGhvbiBzdXBwb3J0IHN0YXRpYyB0eXBpbmc\/PC9zdHJvbmc+PC9oMz4KPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjMsImFuY2hvciI6ImgtMy1hcmUtbGlzdHMtb3ItdHVwbGVzLWZhc3RlciJ9IC0tPgo8aDMgaWQ9ImgtMy1hcmUtbGlzdHMtb3ItdHVwbGVzLWZhc3RlciIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+My4gQXJlIGxpc3RzIG9yIHR1cGxlcyBmYXN0ZXI\/PC9zdHJvbmc+PC9oMz4KPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjMsImFuY2hvciI6ImgtNC13aGF0LXR5cGUtc2hvdWxkLWktdXNlLWZvci1maW5hbmNpYWwtY2FsY3VsYXRpb25zIn0gLS0+CjxoMyBpZD0iaC00LXdoYXQtdHlwZS1zaG91bGQtaS11c2UtZm9yLWZpbmFuY2lhbC1jYWxjdWxhdGlvbnMiIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPjQuIFdoYXQgdHlwZSBzaG91bGQgSSB1c2UgZm9yIGZpbmFuY2lhbCBjYWxjdWxhdGlvbnM\/PC9zdHJvbmc+PC9oMz4KPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjMsImFuY2hvciI6ImgtNS13aGF0LWlzLXRoZS1tb3N0LWNvbW1vbmx5LXVzZWQtZGF0YS10eXBlLWluLXB5dGhvbiJ9IC0tPgo8aDMgaWQ9ImgtNS13aGF0LWlzLXRoZS1tb3N0LWNvbW1vbmx5LXVzZWQtZGF0YS10eXBlLWluLXB5dGhvbiIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+NS4gV2hhdCBpcyB0aGUgbW9zdCBjb21tb25seSB1c2VkIGRhdGEgdHlwZSBpbiBQeXRob24\/PC9zdHJvbmc+PC9oMz4KBQcIBAgECAYIBTsIB78ULpUKhjmKKIAPqAQuigifA5UDoQO3BrsPgAaMCpgPqgmrCpsIlgmbBbMEvgWzB7IPhgaACL4HiwKQC44CkQOQArkDhQeCBpMMogQWFCeqBCeJCi6oAYgGpQ5uAI4CqAmaCieHEYwCvgG5AbEBugEIBwgGCA4IDggLCAZIAQYIBAkICggECAYIBw8ECgeJCQcLCAcPBAoHLwULCAcPBAoHswIHCwgHDwQKB6YDKQcLCAcPBAoHRgABBgEGAQYBBQcLCAcPBAoHTAAHCwgHDwQKB4QIBwsIBw8ECgcqBwsIBw8ECgcGBAUICw8JCAQGCQoIBQgLCAcPBAoHFAsIBw8ECgcXCwgHDwQKBxMLCAcPBAoHGAsIBw8ECgcoCwgHDwQKB4EDBwsIBw8ECkMABwIIDwsIBw8ECgctBQsIBw8ECge\/BQcLCAcPBAoHnQkHCwgHDwQKB6IHBwsIBw8ECgeEAQULCAcPBAoHgwEHCwgHDwQKB70BBwsIBw8ECgcGBwsIBw8ECkcBCwgHDwQKB44FBwsIBw8ECgcGBAUICw8JCAQGCQoIBQgLCAcPBAoHFgsIBw8ECgc2CwgHDwQKBz4LCAcPBAoHkgIHCwgHDwQKB5QBBwsIBw8ECgeKAQcLCAcPBAoHDAcLCAcPBAoHkgUHCwgHDwQKB6cCBwsIBw8ECgcJBwsIBw8ECgcdBwsIBw8ECgesAgcLCAcPBAoHjwEHCwgHDwQKB6UBBwsIBw8ECgcKBwsIBw8ECge7AwcLCAcPBAoHEgcLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKBxELCAcPBAoHGQsIBw8ECgcjCwgHDwQKBxMLCAcPBAoHoAEHCwgHDwQKB4QBBwsIBw8ECgcwBwsIBw8ECgcIBwsIBw8ECgcJBwsIBw8ECgeFAQcLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKBxgLCAcPBAoHGQsIBw8ECgc6BwsIBw8ECgcLBgEGDAcLCAcPBAoHDQYMBwsIBw8ECgeBAgcLCAcPBAoHLgcLCAcPBAoHoQIHCwgHDwQKBxgFBgsIBw8ECgeTAgcLCAcPBAoHGgUGCwgHDwQKB4kCBwsIBw8ECgcVBQYLCAcPBAoHlQIHCwgHDwQKBxcFBgsIBw8ECgecAQcLCAcPBAoHgwMHCwgHDwQKByUGCQcLCAcPBAoHpQMHCwgHDwQKB4QDBwsIBw8ECkMABwIIDwsIBw8ECgcoBwsIBw8ECgcdBwsIBw8ECgcuBQYLCAcPBAoHggIHCwgHDwQKBw8HCwgHDwQKByYHCwgHDwQKBwYEBQgLDwkIBAYJCggFCAsIBw8ECge2AQsIBw8ECgeIAgsIBw8ECgeMAgsIBw8ECgcSBwsIBw8ECgcGBAUICw8JCAQGCQoIBQgLCAcPBAoHDwsIBw8ECgcKCwgHDwQKBwwLCAcPBAoHEwsIBw8ECgchCwgHDwQKByIHCwgHDwQKBzQHCwgHDwQKBxUHCwgHDwQKB4YCBwsIBw8ECgcQBwsIBw8ECgcQBwsIBw8ECgcGBAUICw8JCAQGCQoIBQgLCAcPBAoHggELCAcPBAoHoAELCAcPBAoHggELCAcPBAoHiQELCAcPBAoHFQcLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKBxELCAcPBAoHHAsIBw8ECgcaCwgHDwQKBx0LCAcPBAoHFgcLCAcPBAoHhgEHCwgHDwQKBxEHCwgHDwQKBxAHCwgHDwQKBwYEBQgLDwkIBAYJCggFCAsIBw8ECgeGAQsIBw8ECgeKAQsIBw8ECge\/AQsIBw8ECgccBwsIBw8ECgcGBAUICw8JCAQGCQoIBQgLCAcPBAoHIgsIBw8ECgcQCwgHDwQKByILCAcPBAoHFgcLCAcPBAoHPAcLCAcPBAoHEAcLCAcPBAoHDgcLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKBzULCAcPBAoHFAsIBw8ECgcWCwgHDwQKBwwHCwgHDwQKBwYEBQgLDwkIBAYJCggFCAsIBw8ECgcNCwgHDwQKBxQLCAcPBAoHEwsIBw8ECgcgBwsIBw8ECgczBQYLCAcPBAoHvAEHCwgHDwQKByUHCwgHDwQKBxQHCwgHDwQKBwYEBQgLDwkIBAYJCggFCAsIBw8ECgeYAQsIBw8ECgeNAQsIBw8ECgeUAQsIBw8ECgcKBwsIBw8ECgcGBAUICw8JCAQGCQoIBQgLCAcPBAoHFgsIBw8ECgcNCwgHDwQKRwALCAcPBAoHDQsIBw8ECgcoCwgHDwQKB6YBBwsIBw8ECgcdBwsIBw8ECgeyAQcLCAcPBAoHFAcLCAcPBAoHDQcLCAcPBAoHDwcLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKByYLCAcPBAoHJAsIBw8ECgeCAQsIBw8ECgcKBwsIBw8ECgcGBAUICw8JCAQGCQoIBQgLCAcPBAoHEwsIBw8ECgc5CwgHDwQKBxcLCAcPBAoHGgcLCAcPBAoHHgcLCAcPBAoHCQcLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKBx8LCAcPBAoHLgsIBw8ECgcoCwgHDwQKByAHCwgHDwQKB4MBBwsIBw8ECgcGBAUICw8JCAQGCQoIBQgLCAcPBAoHJwsIBw8ECgcXCwgHDwQKBwYEBQgLDwkIBAYJCggFCAsIBw8ECgcWCwgHDwQKBwULCAcPBAoHSwAIBw8ECgcSCwgHDwQKBzUHCwgHDwQKByAHCwgHDwQKB44BBwsIBw8ECgcJBwsIBw8ECgcWBQYLCAcPBAoHMQcLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKBw0LCAcPBAoHEAsIBw8ECgdLAAgHDwQKBxoFBgsIBw8ECgeEAQcLCAcPBAoHGwUGCwgHDwQKB5kBBwsIBw8ECgcNBwsIBw8ECgcGBAUICw8JCAQGCQoIBQgLCAcPBAoHFQsIBw8ECgcPCwgHDwQKBx0LCAcPBAoHLwcLCAcPBAoHLwcLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKBwULCAcPBAoHSwAIBw8ECgcRCwgHDwQKBxwLCAcPBAoHHQcLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKBwoLCAcPBAoHGAsIBw8ECgcaCwgHDwQKBx0LCAcPBAoHFwsIBw8ECgezAQcLCAcPBAoHLQcLCAcPBAoHNwcLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKBxcLCAcPBAoHDAsIBw8ECgcQCwgHDwQKBw4LCAcPBAoHLQUGCwgHDwQKDgdEAQsPCQgFBAYJCggFCAsIBw8ECgctBQYLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKB5wBCwgHDwQKB50BCwgHDwQKBzIFBgsIBw8ECgcGBAUICw8JCAQGCQoIBQgLCAcPBAoHLQsIBw8ECgcuCwgHDwQKB4YBBwsIBw8ECgc5BwsIBw8ECgeIAQcLCAcPBAoHCAcLCAcPBAoHGQQFBwsIBw8ECgcYDAcLCAcPBAoHCQcLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKBxILCAcPBAoHCgsIBw8ECgcVCwgHDwQKBx8LCAcPBAoHEAcLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKBx0LCAcPBAoHKQsIBw8ECgceCwgHDwQKBxcLCAcPBAoHFwsIBw8ECge9AQcLCAcPBAoHLwcLCAcPBAoHkgEHCwgHDwQKBw4HCwgHDwQKBxgrBwsIBw8ECgcDAS0RBwsIBw8ECgcDAS0RBwsIBw8ECgcvBwsIBw8ECgcGBAUICw8JCAQGCQoIBQgLCAcPBAoHCgsIBw8ECgdLAAgHDwQKBwQLCAcPBAoHCQsIBw8ECgcUCwgHDwQKB4sBBwsIBw8ECgcpBQsIBw8ECgcGBAUICw8JCAQGCQoIBQgLCAcPBAoHJAsIBw8ECgchCwgHDwQKBykLCAcPBAoHGQsIBw8ECgcwCwgHDwQKBy8LCAcPBAoHKwsIBw8ECgclBQYLCAcPBAoHBgQFCAsPCQgEBgkKCAUICwgHDwQKBy4LCAcPBAoHJgsIBw8ECgchCwgHDwQKBzQLCAcPBAoHGwULCAcPBAoHrwMHCwgHDwQKB5gCBwsIBw8ECgcVBQsIBw8ECgc7BQYLCAcPBAoHgAEHCwgHDwQKBzYFBgsIBw8ECgcyBwsIBw8ECgcvBQYLCAcPBAoHLQcLCAcPBAoHhgEFBgsIBw8ECgclBwsIBw8ECgeHAQUGCwgHDwQKBzAHCwUHBQdBBCkHDwQKRwALCAZBC0QASAFwAmIAvwGFArYBvAE3mwJwBqoCcAW5ATCFAogCcAK8Aq4JvgIwjQMwJxhwADdiAHAApAIwpAOVA4ADhQSIBBQBBAAAAQAAAAEIAAABAgDrFwEBAJUJQgEBAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIASEECL44BWgIsJ6oBrgGkAagBPIMCWgaNAloFpgEargGwAVoCkwKzCZQCGp4CGiosWgCLAcoBAFoAgwIargKkApYChAOGA0HwEAGAHgB9AXcTMjAyNS0xMi0yNlQxNjo1OTo0N3cgY29tcGxldGUtZ3VpZGUtcHl0aG9uLWRhdGEtdHlwZXN3B3B1Ymxpc2h9FX2G7AF3BG9wZW53BG9wZW55dwB3CHN0YW5kYXJkdwB1An2ODn0BdQB3JDcyYjllNjE3LTRiMmUtNDE2Mi1hMmNhLTUwYzYxOTI1NDgzNXh30gQ8cD5MZWFybmluZyBkYXRhIHR5cGVzIGlzIHZlcnkgaW1wb3J0YW50IGZvciBhbnlvbmUgdXNpbmcgUHl0aG9uLCB3aGV0aGVyIHlvdSBtYWtlIHNtYWxsIHNjcmlwdHMgb3IgYmlnIGFwcGxpY2F0aW9ucy4gVW5kZXJzdGFuZGluZyBweXRob24gYmFzaWNzIGhlbHBzIGRldmVsb3BlcnMgd3JpdGUgY2xlYW4gYW5kIGNvcnJlY3QgY29kZS4gUHl0aG9u4oCZcyBkYXRhIHR5cGVzIGhlbHAgbWFuYWdlIGRpZmZlcmVudCBraW5kcyBvZiBpbmZvcm1hdGlvbiBsaWtlIG51bWJlcnMsIHRleHQsIG9yIG1vcmUgY29tcGxleCBkYXRhLiBGb3IgbW9kZXJuIGRldmVsb3BlcnMsIGtub3dpbmcgZGF0YSB0eXBlcyBpcyBpbXBvcnRhbnQgdG8gbWFrZSBzb2Z0d2FyZSB0aGF0IGlzIGVhc3kgdG8gZ3JvdyBhbmQgbWFpbnRhaW4uIFB5dGhvbiBhbHNvIGhhcyBuZXcgZmVhdHVyZXMgbGlrZSB0eXBlIGhpbnRzLCB3aGljaCBtYWtlIGNvZGluZyBlYXNpZXIuIFRoaXMgZ3VpZGUgZXhwbGFpbnMgYWxsIG1haW4gUHl0aG9uIGRhdGEgdHlwZXMgYW5kIGNvdmVycyBweXRob24gYmFzaWNzIHRvIGhlbHAgeW91IG1ha2UgYmV0dGVyIGNvZGluZyBjaG9pY2VzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZjFjOWNhMTItN2FjNC00OTQyLTgyNzgtNzZmMGIyNGIzNzcyeHdRPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPldoYXQgQXJlIERhdGEgVHlwZXMgaW4gUHl0aG9uPzwvc3Ryb25nPjwvaDI+dwxjb3JlL2hlYWRpbmd9AnckNGVjNjkwMmItMGZmYy00ZDQ0LWEwOWUtOTQwZDkxZjk2MzYxeHe6ATxwPkRhdGEgdHlwZXMgdGVsbCBQeXRob24gd2hhdCBraW5kIG9mIHZhbHVlIGEgdmFyaWFibGUgY2FuIGhhdmUgYW5kIHdoYXQgd2UgY2FuIGRvIHdpdGggaXQuIEV2ZXJ5dGhpbmcgaW4gUHl0aG9uIGlzIGRhdGEgc28ga25vd2luZyA8c3Ryb25nPnB5dGhvbiBiYXNpY3M8L3N0cm9uZz4gaXMgdmVyeSBpbXBvcnRhbnQuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQxNzFiNTViNS0wYTY3LTRkOGYtOTQyNi04YjA3Zjg5ZGI3YTV4d5YCPHA+QSBkYXRhIHR5cGUgZGVjaWRlcyBpZiBhIHZhbHVlIGlzIGEgbnVtYmVyIHRleHQsIHRydWUgb3IgZmFsc2UgbGlzdCBkaWN0aW9uYXJ5IHNldCBvciBzb21ldGhpbmcgZWxzZS4gUHl0aG9uIGlzIHNtYXJ0IGFuZCBnaXZlcyB0eXBlcyB0byB2YXJpYWJsZXMgYnkgaXRzZWxmLiBUaGlzIGlzIGNhbGxlZCBkeW5hbWljIHR5cGluZy4gWW91IGRvIG5vdCBoYXZlIHRvIHRlbGwgUHl0aG9uIHRoZSB0eXBlIHlvdXJzZWxmLjxicj48c3Ryb25nPkZvciBleGFtcGxlOjwvc3Ryb25nPjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMjg3OWRmOTQtYzQ0OS00NWVmLWIzY2YtZGJiNzZlMWIzYjhieHcuPHA+eCA9IDEwJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICMgaW50PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQxYWRlNzJlZC03NGMwLTQwNzYtODU4ZC0wZTYyNjMyZjMwMDd4dx88cD55ID0gIkhlbGxvIiAmbmJzcDsgIyBzdHI8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDA2NGVmOTUyLWNkNjgtNGY5OC1iY2JjLTA0YzczNWY0Mjg5Nnh3iwQ8cD5FdmVuIHRob3VnaCBQeXRob24gZ2l2ZXMgdHlwZXMgYXV0b21hdGljYWxseSBkZXZlbG9wZXJzIHN0aWxsIG5lZWQgdG8ga25vdyBkYXRhIHR5cGVzIHRvIHdyaXRlIGdvb2QgY2xlYW4gYW5kIGZhc3QgcHJvZ3JhbXMuIFRoaXMgaXMgdmVyeSBpbXBvcnRhbnQgZm9yIHdvcmtpbmcgd2l0aCBkYXRhIG1hY2hpbmUgbGVhcm5pbmcgd2Vic2l0ZXMgQVBJcyBhbmQgY2hlY2tpbmcgY29kZSBxdWFsaXR5LiBQeXRob24gaGFzIG1hbnkgdHlwZXMgYnVpbHQgaW4gbGlrZSBudW1iZXJzLCB0ZXh0IGxpc3RzLCBkaWN0aW9uYXJpZXMgc2V0cyB0cnVlIG9yIGZhbHNlIGFuZCBtb3JlLiBZb3UgY2FuIGFsc28gbWFrZSB5b3VyIG93biB0eXBlcyB1c2luZyBjbGFzc2VzLiBQeXRob24gMyBsZXRzIHlvdSBhZGQgdHlwZSBoaW50cyB0byBtYWtlIGNvZGUgZWFzaWVyIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgYW5kIHJlaW5mb3JjZXMgPHN0cm9uZz5weXRob24gYmFzaWNzPC9zdHJvbmc+IGZvciBhbGwgZGV2ZWxvcGVycy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGRlYjAxOWEzLWRlMmUtNDQzNi1iMzI3LWIxMTI0Yjc2ZjUwYnh3MTxwPlVuZGVyc3RhbmRpbmcgZGF0YSB0eXBlcyBoZWxwcyBkZXZlbG9wZXJzOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckYTQzNzIxOGQtZjMxMC00NjkxLTkyMjMtYzU1NjFhMmVkYjFmeHcRPHVsPgoKCgoKCgoKPC91bD53CWNvcmUvbGlzdHl3AH9\/f39\/f39\/f39\/f39\/dyQyNGI5Y2NjMi1hMzU2LTRkZjYtYjE1NC1mZTc2YjExNzhiMDd4dx08bGk+T3B0aW1pemUgcGVyZm9ybWFuY2U8L2xpPncOY29yZS9saXN0LWl0ZW13JDU1MmM4YjY4LTc2MWItNGI0MS1iMjI2LWVjZmE3YWMwZmE0N3h3IDxsaT5Bdm9pZCB0eXBlLXJlbGF0ZWQgYnVnczwvbGk+dw5jb3JlL2xpc3QtaXRlbXckODAxZDBlMWYtZTg0Mi00NDFlLWI3YTMtMTIxOTZlODE2M2FmeHccPGxpPkltcHJvdmUgcmVhZGFiaWxpdHk8L2xpPncOY29yZS9saXN0LWl0ZW13JGZmNjVjZjU1LWFlM2QtNDljZC1iMGVkLWQ4MGQzMjFiNjA0YXh3ITxsaT5NYWludGFpbiBsYXJnZSBjb2RlYmFzZXM8L2xpPncOY29yZS9saXN0LWl0ZW13JGM1OThkMGQ0LTVmODktNGJlOC05Y2VkLTcyNzVhNzk1NjZiNnh3MTxsaT5FbnN1cmUgcHJlZGljdGFibGUgYmVoYXZpb3IgaW4gZnVuY3Rpb25zPC9saT53DmNvcmUvbGlzdC1pdGVtdyQ0MzZkODI2MS1iZjhiLTQ4MGYtODQwMS1hNGFkOWNmNGU4Yjh4d8oBPHA+VGhpcyBzZWN0aW9uLWFsb25nIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGJsb2ctd2lsbCBnaXZlIHlvdSBhIGRlZXAsIHN0cnVjdHVyZWQsIGRldmVsb3Blci1mcmllbmRseSB1bmRlcnN0YW5kaW5nIG9mIFB5dGhvbuKAmXMgZGF0YSB0eXBlcywgZW5hYmxpbmcgeW91IHRvIGNob29zZSB0aGUgcmlnaHQgdHlwZSBpbiBldmVyeSBzaXR1YXRpb24uPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRlZjVhN2Q4Zi05ZmIyLTQyOGMtOWRlMy05NDNlMDBjM2I1MWJ4d7MBPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBzcmM9Imh0dHBzOi8vdXRoby5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvaW1hZ2UyLTEwMjR4NTQ2LmpwZyIgYWx0PSJQeXRob24gbnVtZXJpYyBkYXRhIHR5cGVzIiBjbGFzcz0id3AtaW1hZ2UtMTUxMTUiLz48L2ZpZ3VyZT53CmNvcmUvaW1hZ2V3PGh0dHBzOi8vdXRoby5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvaW1hZ2UyLTEwMjR4NTQ2LmpwZ3cZUHl0aG9uIG51bWVyaWMgZGF0YSB0eXBlc32L7AF3BWxhcmdldwRub25ldyRhZTY0OTk3ZC1lZDQzLTQyMTctYmIwOS1hMGFmNDY4YWE5ZTZ4d088aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+TnVtZXJpYyBEYXRhIFR5cGVzIG9mIFB5dGhvbjwvc3Ryb25nPjwvaDI+dwxjb3JlL2hlYWRpbmd9AnckNDVhNTcyMzctNmI3Zi00OTc5LTk4N2QtNDgzNTJhYzQwMjFleHeGAzxwPlB5dGhvbiBoYXMgbWFueSB0eXBlcyBvZiBudW1iZXJzIHRoYXQgYXJlIGVhc3kgdG8gdXNlLiBZb3UgY2FuIHdvcmsgd2l0aCB3aG9sZSBudW1iZXJzLCBkZWNpbWFscyAsIGNvbXBsZXggbnVtYmVycyBhbmQgdHJ1ZS9mYWxzZSB2YWx1ZXMuIE51bWJlcnMgYXJlIHZlcnkgaW1wb3J0YW50IGZvciBtYW55IHByb2dyYW1zIGxpa2UgbW9uZXkgY2FsY3VsYXRpb25zIGdhbWVzLCBtYWNoaW5lIGxlYXJuaW5nIHNjaWVuY2UgcHJvamVjdHMgYW5kIGRlY2lzaW9uIG1ha2luZy4gS25vd2luZyA8c3Ryb25nPnB5dGhvbiBiYXNpY3M8L3N0cm9uZz4gaGVscHMgYmVnaW5uZXJzIGFuZCBhZHZhbmNlZCB1c2VycyB1bmRlcnN0YW5kIGhvdyB0byB1c2UgbnVtYmVycyBjb3JyZWN0bHkuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRkN2ZmMDg1Yy03ZTZmLTQzMmYtYmQ3Ni02ODE0NjE0NTEwOTd4d+QEPHA+V2hvbGUgbnVtYmVycyBhcmUgbnVtYmVycyB3aXRob3V0IGRlY2ltYWxzIGxpa2UgMSAyIDEwMCBvciAtNS4gWW91IGNhbiB1c2UgdGhlbSBmb3IgY291bnRpbmcgaXRlbXMsIGtlZXBpbmcgc2NvcmVzIG9yIHNpbXBsZSBtb25leSBjYWxjdWxhdGlvbnMuPGJyPkRlY2ltYWwgbnVtYmVycyBhcmUgbnVtYmVycyB3aXRoIGRlY2ltYWxzIGxpa2UgMy4xNCAwLjUgb3IgLTcuMi4gWW91IGNhbiB1c2UgdGhlbSB3aGVuIHlvdSBuZWVkIGV4YWN0IG51bWJlcnMgbGlrZSBpbiBwcmljZXMsIHNjaWVuY2UgZXhwZXJpbWVudHMgb3IgbWVhc3VyZW1lbnRzLjxicj5Db21wbGV4IG51bWJlcnMgYXJlIHNwZWNpYWwgbnVtYmVycyBsaWtlIDIgKyAzaiB1c2VkIGluIGFkdmFuY2VkIG1hdGggYW5kIHNjaWVudGlmaWMgY2FsY3VsYXRpb25zLjxicj5Cb29sZWFuIG51bWJlcnMgYXJlIHNwZWNpYWwgbnVtYmVycyB0aGF0IGFyZSBvbmx5IFRydWUgb3IgRmFsc2UuIFRoZXkgYXJlIHVzZWQgdG8gY2hlY2sgY29uZGl0aW9ucyBvciBtYWtlIGRlY2lzaW9ucyBpbiBwcm9ncmFtcyBsaWtlIGlmIGEgcGxheWVyIGhhcyBlbm91Z2ggcG9pbnRzIG9yIGlmIGEgdGFzayBpcyBjb21wbGV0ZS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDU4MWY5MzU2LWFmNTAtNDlkNC05YTg3LWU0Njc2NmMyOTQ4Znh36QM8cD5QeXRob24gbWFrZXMgaXQgc2ltcGxlIHRvIHVzZSBudW1iZXJzIGFuZCBkbyBtYXRoLiBZb3UgY2FuIGFkZCwgc3VidHJhY3QsIG11bHRpcGx5LCBkaXZpZGUgYW5kIGRvIG1vcmUgY29tcGxpY2F0ZWQgY2FsY3VsYXRpb25zIGVhc2lseS4gWW91IGNhbiBhbHNvIHVzZSBleHRyYSBtb2R1bGVzIHRvIGRvIGhhcmRlciBtYXRoIHdvcmsgd2l0aCB2ZXJ5IGV4YWN0IG51bWJlcnMgYW5kIHNjaWVudGlmaWMgY2FsY3VsYXRpb25zLiBUaGVzZSBmZWF0dXJlcyBtYWtlIFB5dGhvbiBhIGdyZWF0IGxhbmd1YWdlIGZvciBiZWdpbm5lcnMgYW5kIGFkdmFuY2VkIHByb2dyYW1tZXJzIGFsaWtlIGFuZCByZWluZm9yY2UgcHl0aG9uIGJhc2ljcyBmb3IgYW55b25lIGxlYXJuaW5nIHRvIHdvcmsgd2l0aCBudW1iZXJzIGluIGdhbWVzIGFwcHMgd2Vic2l0ZXMgbWFjaGluZSBsZWFybmluZyBwcm9qZWN0cyBvciBzY2llbmNlIGFuZCBmaW5hbmNlIHByb2dyYW1zLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMjgyNGM5OTktY2ZhNy00NGRlLTg0ZjgtMGVkNjFkMjU2NmQ0eHdmPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPkJlbG93IGFyZSB0aGUgcHJpbWFyeSBudW1lcmljIGRhdGEgdHlwZXMgaW4gUHl0aG9uOjwvc3Ryb25nPjwvaDI+dwxjb3JlL2hlYWRpbmd9AnckMjliZDFlNjUtZDVkZS00ZGQ0LWE0NDctZDg2M2UzNDlmNzIzeHdKPHA+PHN0cm9uZz4xLiA8L3N0cm9uZz48c3Ryb25nPmludDwvc3Ryb25nPjxzdHJvbmc+IChJbnRlZ2VyKTwvc3Ryb25nPjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZWRhNTc3N2ItYWNlMS00YTM1LWIyYzUtYmVmZGFlYmZlNGNjeHeEATxwPkludGVnZXJzIHJlcHJlc2VudCB3aG9sZSBudW1iZXJzLXZhbHVlcyB3aXRob3V0IGFueSBmcmFjdGlvbmFsIG9yIGRlY2ltYWwgY29tcG9uZW50LiBUaGV5IGNhbiBiZSBwb3NpdGl2ZSwgbmVnYXRpdmUsIG9yIHplcm8uPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ5ZTJiMDI3NS1iMzVmLTRmNzItYWE5Ni03MTViMjhlMjUzZDJ4dw08cD5hID0gMTA8L3A+dw5jb3JlL3BhcmFncmFwaHl3JGZkNjY3N2IxLWRiYjAtNDc4Ni05ODYzLTFlMzY1YWJjMDRiYXh3DjxwPmIgPSAtNDI8L3A+dw5jb3JlL3BhcmFncmFwaHl3JGU3NjJlY2ZjLTI4YjYtNDhmZi1hYjhhLTA2ZGMxM2ZiMGJjZXh31wI8cD5QeXRob27igJlzIGhhbmRsaW5nIG9mIGludGVnZXJzIGlzIG9uZSBvZiBpdHMgbWFqb3Igc3RyZW5ndGhzLiBVbmxpa2UgbGFuZ3VhZ2VzIHN1Y2ggYXMgQywgQysrLCBvciBKYXZhIHRoYXQgcmVzdHJpY3QgaW50ZWdlcnMgdG8gZml4ZWQgbWVtb3J5IHNpemVzIChsaWtlIDMyLWJpdCBvciA2NC1iaXQpLCBQeXRob24gYXV0b21hdGljYWxseSBhZGp1c3RzIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBiYXNlZCBvbiB0aGUgc2l6ZSBvZiB0aGUgbnVtYmVyLiBUaGlzIG1lYW5zIFB5dGhvbiBjYW4gaGFuZGxlIGV4dHJlbWVseSBsYXJnZSBpbnRlZ2VycyB3aXRob3V0IG92ZXJmbG93IGlzc3Vlczo8L3A+dw5jb3JlL3BhcmFncmFwaHl3JGFjODQ5YTE4LTAzODUtNGZkYS1iZDMzLWM0MTg0ZDFmMTdmNnh3DTx1bD4KCgoKPC91bD53CWNvcmUvbGlzdHl3AH9\/f39\/f39\/f39\/f39\/dyQ0NDI2NjYxZi1lYjU5LTQ1YzItYWE0MS1kNGZkZDJkY2M3MzZ4dx88bGk+R3JlYXQgZm9yIGNyeXB0b2dyYXBoeTwvbGk+dw5jb3JlL2xpc3QtaXRlbXckZWYwZWUwOWUtZWMxYy00NzVmLWI2Y2EtN2U3MDhjMjgyMzdheHc\/PGxpPklkZWFsIGZvciBmaW5hbmNpYWwgY2FsY3VsYXRpb25zIGludm9sdmluZyBiaWcgbnVtYmVyczwvbGk+dw5jb3JlL2xpc3QtaXRlbXckZGIxY2M3YWItZTg2OS00NjZmLTk2MGEtMzFkNjY2MDUxNmE5eHdHPGxpPlVzZWZ1bCBpbiBzY2llbnRpZmljIHNpbXVsYXRpb25zIHJlcXVpcmluZyBoaWdoIG51bWVyaWMgcmFuZ2VzPC9saT53DmNvcmUvbGlzdC1pdGVtdyRjYzljMDM3Yi0zZGNjLTQ3YjgtYjY4NC02Y2U4MDUyNTViNTJ4d5sBPHA+UHl0aG9u4oCZcyB1bmxpbWl0ZWQgaW50ZWdlciBwcmVjaXNpb24gbWFrZXMgaXQgbW9yZSByb2J1c3QgZm9yIGFwcGxpY2F0aW9ucyB3aGVyZSBudW1lcmljIG92ZXJmbG93IHdvdWxkIG90aGVyd2lzZSBjYXVzZSBlcnJvcnMgb3IgZGF0YSBjb3JydXB0aW9uLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNDlmZDgzY2YtNDAxMC00Nzk4LTkzYmItMDRkZjQ4YThmY2Q0eHdbPHA+PHN0cm9uZz4yLiA8L3N0cm9uZz48c3Ryb25nPmZsb2F0PC9zdHJvbmc+PHN0cm9uZz4gKEZsb2F0aW5nLVBvaW50IE51bWJlcnMpPC9zdHJvbmc+PC9wPncOY29yZS9wYXJhZ3JhcGh5dyRmZGMzOTQ4MC02NmNlLTQwMTItYmNmOC0zYWQ1Mzg1YTdkYTB4d1E8cD5GbG9hdHMgcmVwcmVzZW50IHJlYWwgbnVtYmVycywgd2hpY2ggaW5jbHVkZSBkZWNpbWFsIG9yIGZyYWN0aW9uYWwgdmFsdWVzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMGExMjM3YmItYjFlYi00YjU0LWI4NGQtNzA4NDc0OTdlYzVleHcTPHA+cGkgPSAzLjE0MTU5PC9wPncOY29yZS9wYXJhZ3JhcGh5dyRhYTBhYmNkMC1lM2U0LTQ3Y2MtODYxYy1hMWQxNTY3OTQ3ZmZ4d9kCPHA+VW5kZXIgdGhlIGhvb2QsIFB5dGhvbiBpbXBsZW1lbnRzIGZsb2F0cyB1c2luZzxzdHJvbmc+IDY0LWJpdCBkb3VibGUtcHJlY2lzaW9uIGZvcm1hdDwvc3Ryb25nPiBiYXNlZCBvbiB0aGUgPHN0cm9uZz5JRUVFLTc1NCBzdGFuZGFyZC48L3N0cm9uZz4gVGhpcyBlbnN1cmVzIGEgYmFsYW5jZSBiZXR3ZWVuIHNwZWVkIGFuZCBhY2N1cmFjeSwgbWFraW5nIGZsb2F0cyBzdWl0YWJsZSBmb3Igc2NpZW50aWZpYyBjb21wdXRpbmcsIG1hY2hpbmUgbGVhcm5pbmcgYWxnb3JpdGhtcywgc3RhdGlzdGljYWwgbW9kZWxpbmcsIGVuZ2luZWVyaW5nIHNpbXVsYXRpb25zLCBhbmQgZGF0YSBhbmFseXNpcy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGJhZmExNGNmLTQ4NDMtNDVjYi05YTU4LWNhMGIzOWMyOTVkMXh3rgE8cD5Ib3dldmVyLCBiZWNhdXNlIGZsb2F0cyByZWx5IG9uIGJpbmFyeSBmcmFjdGlvbnMsIGNlcnRhaW4gZGVjaW1hbCB2YWx1ZXMgY2Fubm90IGJlIHJlcHJlc2VudGVkIHdpdGggcGVyZmVjdCBhY2N1cmFjeS4gVGhpcyBzb21ldGltZXMgcmVzdWx0cyBpbiBzbWFsbCBwcmVjaXNpb24gZXJyb3JzOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMWRhMTYwZDgtMWZmMS00ZjE0LWFjZWYtZWI0ODZmY2U0OTg4eHcQPHA+MC4xICsgMC4yPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQwYWU2OTY2NC0wNjU4LTQzZTgtODZlYy1hODNlYTY3ZDRlZmN4dyQ8cD4jIE91dHB1dDogMC4zMDAwMDAwMDAwMDAwMDAwNDwvcD53DmNvcmUvcGFyYWdyYXBoeXckYWI2MGFlNjYtMGY0Yy00ODJmLTgwNzctY2ZhOGY0NDFlNjM2eHezATxwPldoaWxlIHRoZXNlIGVycm9ycyBhcmUgbm9ybWFsIGluIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMsIHVuZGVyc3RhbmRpbmcgdGhlbSBpcyBjcml0aWNhbCB3aGVuIGRldmVsb3BpbmcgZmluYW5jaWFsIGFwcGxpY2F0aW9ucyBvciBzeXN0ZW1zIHJlcXVpcmluZyBleGFjdCBkZWNpbWFsIHZhbHVlcy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDEwZTljNjNjLWU1NDYtNDBkOC1iMjNmLTQ1NTVlY2YwYzVhOXh3VjxwPjxzdHJvbmc+My4gPC9zdHJvbmc+PHN0cm9uZz5jb21wbGV4PC9zdHJvbmc+PHN0cm9uZz4gKENvbXBsZXggTnVtYmVycyk8L3N0cm9uZz48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDZjMjE3YmY0LTA4ODEtNDM5Zi04NzYxLWZmOWZlOGFlNmExZHh3bDxwPkNvbXBsZXggbnVtYmVycyBjb25zaXN0IG9mIGEgcmVhbCBwYXJ0IGFuZCBhbiBpbWFnaW5hcnkgcGFydCwgd3JpdHRlbiBpbiBQeXRob24gdXNpbmcgdGhlIGogbm90YXRpb246PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ3NWFmNGVkOC04NjdhLTRjZDktOGFkYS05NWVlNDRkNTJkM2V4dxE8cD56ID0gMyArIDVqPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQwZDM4N2U4Zi1iYWZhLTRjMDgtYTVlMy03OTY1ZGQzZTgzNjh4d4ICPHA+UHl0aG9uIGlzIG9uZSBvZiB0aGUgZmV3IHByb2dyYW1taW5nIGxhbmd1YWdlcyB0aGF0IG5hdGl2ZWx5IHN1cHBvcnRzIGNvbXBsZXggbnVtYmVycyB3aXRob3V0IHJlcXVpcmluZyBleHRlcm5hbCBsaWJyYXJpZXMuIERldmVsb3BlcnMgY2FuIHBlcmZvcm0gYWRkaXRpb24sIHN1YnRyYWN0aW9uLCBtdWx0aXBsaWNhdGlvbiwgZGl2aXNpb24sIHRyaWdvbm9tZXRyaWMgZnVuY3Rpb25zLCBhbmQgbW9yZSB3aXRoIGNvbXBsZXggbnVtYmVycy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDY0YjNhZGJjLWVhMDctNGE0Zi04OWM5LTlmNTU4NDQ3MWU3NXh3GTxwPlVzZSBjYXNlcyBpbmNsdWRlOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckYzEyMmI0M2UtZDUyOC00Y2RlLTllMzItMTllZDYxYmRhNDM3eHcPPHVsPgoKCgoKCjwvdWw+dwljb3JlL2xpc3R5dwB\/f39\/f39\/f39\/f39\/f3ckY2RhMWI3OWUtMTRmMy00Yzk4LWJkMWQtMTE0NmY1MmMzYmM4eHcaPGxpPlF1YW50dW0gY29tcHV0aW5nPC9saT53DmNvcmUvbGlzdC1pdGVtdyQ5Y2NiNGVmYS0zY2JkLTQzNTEtOWU0Yy1mY2IxZTRiZjBlYzN4dyI8bGk+RGlnaXRhbCBzaWduYWwgcHJvY2Vzc2luZzwvbGk+dw5jb3JlL2xpc3QtaXRlbXckYWE2MWU1MmYtZDU3MS00MDQxLWI0ZDgtYWE4ZDY2MTNjZmQ3eHcsPGxpPkVsZWN0cmljYWwgZW5naW5lZXJpbmcgY2FsY3VsYXRpb25zPC9saT53DmNvcmUvbGlzdC1pdGVtdyRmNmQxYjRiNy0xMjdjLTQxZWYtYTM4OC02MmY1NDQ0NTZjMzd4dxw8bGk+UGh5c2ljcyBzaW11bGF0aW9uczwvbGk+dw5jb3JlL2xpc3QtaXRlbXckMGQzNDFmYjQtZTc1Yy00NWFiLWFhNTktOTZhNzk4N2I3ZDAyeHdnPHA+Q29tcGxleCBudW1iZXJzIG1ha2UgUHl0aG9uIHVuaXF1ZWx5IHBvd2VyZnVsIGluIGRvbWFpbnMgd2hlcmUgYWR2YW5jZWQgbWF0aGVtYXRpY3MgaXMgcmVxdWlyZWQuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRjZjUzYjI0NS03OTk0LTQ1NzAtYWM1ZC02NjNmYTAwNjcxZDh4d0s8cD48c3Ryb25nPjQuIDwvc3Ryb25nPjxzdHJvbmc+Ym9vbDwvc3Ryb25nPjxzdHJvbmc+IChCb29sZWFuKTwvc3Ryb25nPjwvcD53DmNvcmUvcGFyYWdyYXBoeXckYjE0NTFjNzUtZmI2Mi00ODlkLTg5ZDEtZDBlMzUyZGUwMDNheHc3PHA+Qm9vbGVhbnMgcmVwcmVzZW50IHRydXRoIHZhbHVlczogVHJ1ZSBhbmQgRmFsc2UuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ4ZGNhZGM2ZS0wNTgyLTQzYWQtYjk1My04OTlkOGExMjYzMjN4dw88cD54ID0gVHJ1ZTwvcD53DmNvcmUvcGFyYWdyYXBoeXckNjIyM2UyNGMtMmZlYS00MWNhLWI5MTctZTdmNjEwMjhkNzExeHcQPHA+eSA9IEZhbHNlPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ4Y2NjNmMzYy1kOGU3LTQ1YmQtODVlZC01NjRiMmJmNGM4Yjl4d0w8cD5JbnRlcmVzdGluZ2x5LCBCb29sZWFucyBpbiBQeXRob24gYXJlIGFjdHVhbGx5IGEgc3VidHlwZSBvZiBpbnRlZ2Vyczo8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDU5MTJkMmQzLTRlY2YtNGFjNi1iYWY2LTU2ZDllMjJkNWM5Mnh3Czx1bD4KCjwvdWw+dwljb3JlL2xpc3R5dwB\/f39\/f39\/f39\/f39\/f3ckOWZjNDhiODItN2U0ZS00MWRhLWJlYjUtNjY1ZGQ4ZjFiMDIxeHchPGxpPlRydWUgaXMgaW50ZXJwcmV0ZWQgYXMgMTwvbGk+dw5jb3JlL2xpc3QtaXRlbXckN2U1MTUwZmYtZTUyMC00Y2NlLTk0OWEtOThlZGZkNzY0MTZkeHciPGxpPkZhbHNlIGlzIGludGVycHJldGVkIGFzIDA8L2xpPncOY29yZS9saXN0LWl0ZW13JDQwOTVjYWJmLTY4ZmUtNGQyYi05NmVhLTQ0YmZiNWRkYjMwYnh3QTxwPlRoaXMgYWxsb3dzIEJvb2xlYW5zIHRvIGJlIHVzZWQgaW4gYXJpdGhtZXRpYyBleHByZXNzaW9uczo8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDAyZGJhMDM3LTQzNzctNGRiMC1iYTAwLTllYzljNmZhNDUzM3h3KzxwPlRydWUgKyBUcnVlJm5ic3A7ICZuYnNwOyAjIE91dHB1dDogMjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMmM3MWIwYjEtNTdhOS00ZjZlLThjMzAtZDM2YTNmZWM1MjA0eHcmPHA+RmFsc2UgKyBUcnVlICZuYnNwOyAjIE91dHB1dDogMTwvcD53DmNvcmUvcGFyYWdyYXBoeXckNDUyMDgxZTgtZTc1Ni00ZTNmLWIyMGQtZWY4NTczOWEzZjdkeHeIATxwPkJvb2xlYW5zIHBsYXkgYSBjcnVjaWFsIHJvbGUgaW4gY29uZGl0aW9uYWwgbG9naWMsIGxvb3AgY29udHJvbCwgY29tcGFyaXNvbnMsIGFuZCBkZWNpc2lvbi1tYWtpbmcgaW4gYWxtb3N0IGV2ZXJ5IFB5dGhvbiBwcm9ncmFtLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZGMyZGY5MmMtZjk2NC00ZjMxLWI1OTYtZDRjMGUzOTc4MjQweHc1PHA+PHN0cm9uZz41LiBBZGRpdGlvbmFsIE51bWVyaWMgTW9kdWxlczwvc3Ryb25nPjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMTY2NDI5ODYtZmVhNC00YTY3LWJiZTYtNWEwZTNmOWFhMjVheHeoATxwPkJleW9uZCBidWlsdC1pbiBudW1lcmljIHR5cGVzLCBQeXRob24gc3RyZW5ndGhlbnMgaXRzIG51bWVyaWNhbCBlY29zeXN0ZW0gd2l0aCBzcGVjaWFsaXplZCBsaWJyYXJpZXMgZGVzaWduZWQgZm9yIHByZWNpc2lvbiwgcGVyZm9ybWFuY2UsIGFuZCBtYXRoZW1hdGljYWwgZGVwdGguPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQwNjBiNGNiYi03MTg0LTRlYzYtOTRkNy1iOTVhMDA4MmM2YmN4d0k8aDQgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLWRlY2ltYWwiPjxzdHJvbmc+ZGVjaW1hbDwvc3Ryb25nPjwvaDQ+dwxjb3JlL2hlYWRpbmd9BHcJaC1kZWNpbWFsdyQwZGM1ZDQwOS01OWVmLTRlNTUtYTY0Zi02MDZiMjIzNjEwYjN4d5oBPHA+VXNlZCBmb3IgaGlnaC1wcmVjaXNpb24gZGVjaW1hbCBhcml0aG1ldGljLiBFc3NlbnRpYWwgZm9yIGJhbmtpbmcsIGZpbmFuY2UsIGFuZCBjdXJyZW5jeSBjYWxjdWxhdGlvbnMgd2hlcmUgZmxvYXRpbmctcG9pbnQgZXJyb3JzIGFyZSB1bmFjY2VwdGFibGUuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQyM2NmYmYyNi04ODBjLTQ1NzAtYmJlNS03ODdmMTZkODMyMDZ4d008aDQgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLWZyYWN0aW9ucyI+PHN0cm9uZz5mcmFjdGlvbnM8L3N0cm9uZz48L2g0PncMY29yZS9oZWFkaW5nfQR3C2gtZnJhY3Rpb25zdyQzMjg3NTJiMi1iNzM4LTQ0NTgtYTRmMS0xNTNmNTY4YzFmYjJ4d5ABPHA+UmVwcmVzZW50cyByYXRpb25hbCBudW1iZXJzIGFzIGV4YWN0IG51bWVyYXRvci9kZW5vbWluYXRvciBwYWlycy4gSWRlYWwgZm9yIHNjZW5hcmlvcyByZXF1aXJpbmcgZXhhY3QgcmVzdWx0cyByYXRoZXIgdGhhbiBhcHByb3hpbWF0aW9ucy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGY5ZTY2NzVjLTNiMzQtNGVkMC1hNDQ5LWM3NDgyMzA2ZDBlM3h3QzxoNCBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtbWF0aCI+PHN0cm9uZz5tYXRoPC9zdHJvbmc+PC9oND53DGNvcmUvaGVhZGluZ30EdwZoLW1hdGh3JDBlMjViZWZlLWYwMzQtNDBiZi05NzdhLTQwZWRjZGQ3YzE5OHh3nAE8cD5Qcm92aWRlcyBhZHZhbmNlZCBtYXRoZW1hdGljYWwgZnVuY3Rpb25zIHN1Y2ggYXMgdHJpZ29ub21ldHJ5LCBsb2dhcml0aG1zLCBjb25zdGFudHMgKHBpLCBlKSwgZmFjdG9yaWFscywgYW5kIG1vcmUuIEhpZ2hseSBvcHRpbWl6ZWQgZm9yIHBlcmZvcm1hbmNlLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMzIzM2U2Y2ItM2MxNC00YTkwLTgwMDQtYzQ4NTI5Y2Y0YzJmeHdHPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC1yYW5kb20iPjxzdHJvbmc+cmFuZG9tPC9zdHJvbmc+PC9oND53DGNvcmUvaGVhZGluZ30EdwhoLXJhbmRvbXckNzI5OGE4YjUtMjZhZi00M2FjLTkyNTktNjVjODJhY2Q5Yzg5eHdjPHA+VXNlZnVsIGZvciBwcm9iYWJpbGlzdGljIG1vZGVscywgc2ltdWxhdGlvbnMsIHRlc3RpbmcsIGFuZCBnZW5lcmF0aW5nIHBzZXVkby1yYW5kb20gbnVtYmVycy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDVlYjQ1YWZkLTg4MjQtNDhjMC1iOTdiLTljNTc4OGNjMjBiN3h3zAE8cD5UaGVzZSBtb2R1bGVzIGV4dGVuZCBQeXRob27igJlzIG51bWVyaWMgY2FwYWJpbGl0aWVzIGZhciBiZXlvbmQgdHlwaWNhbCBudW1iZXIgb3BlcmF0aW9ucywgbWFraW5nIGl0IGEgZ28tdG8gbGFuZ3VhZ2UgZm9yIHNjaWVudGlmaWMgcmVzZWFyY2gsIGVuZ2luZWVyaW5nIGFwcGxpY2F0aW9ucywgYW5kIGRhdGEtZHJpdmVuIGRldmVsb3BtZW50LjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZmUxZDVjZTktOTMwYi00NjEzLWEwMDYtNDhlZTFlZDM0ZmRjeHc7PHA+PHN0cm9uZz5CdWlsdC1pbiBEYXRhIFR5cGVzIGluIFB5dGhvbiZuYnNwOzwvc3Ryb25nPjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNTA4NGQ4ZGItNzFmZi00OTA4LTgxYzItYjMyMGJhZThhNWY1eHfsATxwPlB5dGhvbiBoYXMgbWFueSBidWlsdC1pbiBkYXRhIHR5cGVzIHRoYXQgYXJlIGVhc3kgdG8gdXNlLiBUaGVzZSBkYXRhIHR5cGVzIGhlbHAgZGV2ZWxvcGVycyBzdG9yZSwgb3JnYW5pemUgYW5kIHdvcmsgd2l0aCBkYXRhIGVhc2lseS4gVGhleSBhcmUgdXNlZCBpbiBldmVyeSBQeXRob24gcHJvZ3JhbSBmcm9tIHNtYWxsIHNjcmlwdHMgdG8gYmlnIHByb2plY3RzIGxpa2UgbWFjaGluZSBsZWFybmluZy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGIxOTQ4YjY5LTM5NWUtNGI1NC1hNTJjLTYyNDljYjY2YzVlZXh3ywE8cD5QeXRob24gZ3JvdXBzIGl0cyBkYXRhIHR5cGVzIGludG8gY2F0ZWdvcmllcyBiYXNlZCBvbiBob3cgdGhleSB3b3JrIGFuZCBob3cgZGF0YSBpcyBzdG9yZWQuIEtub3dpbmcgdGhlc2UgY2F0ZWdvcmllcyBpcyBpbXBvcnRhbnQgZm9yIHdyaXRpbmcgY29kZSB0aGF0IGlzIGZhc3RlciwgY2xlYW5lciBhbmQgZWFzaWVyIHRvIHVuZGVyc3RhbmQuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRkNzlkZjcwNy01MTM1LTQ1YTktYWNlYi1lNGU2ODkxYzg4NDN4d70BPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBzcmM9Imh0dHBzOi8vdXRoby5jb20vYmxvZy93cC1jb250ZW50L3VwbG9hZHMvaW1hZ2UxLTEwMjR4Njk2LmpwZyIgYWx0PSJQeXRob24gYnVpbHQgaW4gZGF0YSB0eXBlcyBvdmVydmlldyIgY2xhc3M9IndwLWltYWdlLTE1MTE2Ii8+PC9maWd1cmU+dwpjb3JlL2ltYWdldzxodHRwczovL3V0aG8uY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzL2ltYWdlMS0xMDI0eDY5Ni5qcGd3I1B5dGhvbiBidWlsdCBpbiBkYXRhIHR5cGVzIG92ZXJ2aWV3fYzsAXcFbGFyZ2V3BG5vbmV3JDZiNzUwZGU5LTEzNDctNGU4YS04ZTVlLWU0Y2RmMjkwYjFlZHh3LzxwPkJlbG93IGlzIGEgZGVlcCBkaXZlIGludG8gZWFjaCBjYXRlZ29yeTo8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDgwMDkwM2Y0LTJmNmMtNGVhZS05NWMyLTlkMDhlNTNlYjBjMXh3JDxwPjxzdHJvbmc+MS4gVGV4dCBUeXBlPC9zdHJvbmc+PC9wPncOY29yZS9wYXJhZ3JhcGh5dyRlNDJjMjdlYS0zODYxLTQxYmItOGJhNi1iMWI2YjYyNDQ3OWF4d2I8aDQgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLXN0ci1zdHJpbmciPjxzdHJvbmc+c3RyPC9zdHJvbmc+PHN0cm9uZz4gKFN0cmluZyk8L3N0cm9uZz48L2g0PncMY29yZS9oZWFkaW5nfQR3DGgtc3RyLXN0cmluZ3ckZTllMjMxYTQtMzBjMC00Y2E0LWI3NTMtYzVmYjNkZjE0NDc1eHeJATxwPkEgPHN0cm9uZz5zdHJpbmc8L3N0cm9uZz4gcmVwcmVzZW50cyBhIHNlcXVlbmNlIG9mIFVuaWNvZGUgY2hhcmFjdGVycy4gSXQgaXMgb25lIG9mIHRoZSBtb3N0IGZyZXF1ZW50bHkgdXNlZCBkYXRhIHR5cGVzIGluIFB5dGhvbi48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDg1YzRkN2YyLWY0ODQtNDdhOC05YWM5LWZiOWMzNjZkMjVjZXh3FjxwPm5hbWUgPSAiUHl0aG9uIjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNTdhM2EyOTctNDNkOS00OWFiLWFmZDYtN2VlY2FlNzhiNmEzeHctPHA+S2V5IGNoYXJhY3RlcmlzdGljcyBvZiBQeXRob24gc3RyaW5nczo8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDdlYmZiN2VlLTU1MzgtNGE0Yy04ZThjLThlMzhhZGIyYzliY3h3DTx1bD4KCgoKPC91bD53CWNvcmUvbGlzdHl3AH9\/f39\/f39\/f39\/f39\/dyQ1MDJhMDZlZi03NzlhLTRmYjQtYWUxNy03NWE2NzVjNjY5YjV4d388bGk+PHN0cm9uZz5JbW11dGFibGU6PC9zdHJvbmc+IE9uY2UgY3JlYXRlZCwgYSBzdHJpbmcgY2Fubm90IGJlIGNoYW5nZWQuIEFueSBtb2RpZmljYXRpb24gcmVzdWx0cyBpbiBhIG5ldyBzdHJpbmcgb2JqZWN0LjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckZmVjOWMzOGYtMmYxMS00Y2Q1LTk1YTAtNTkwNDY1ZDExYjEweHeRATxsaT48c3Ryb25nPlVuaWNvZGUgc3VwcG9ydDo8L3N0cm9uZz4gUHl0aG9uIHN0cmluZ3MgZnVsbHkgc3VwcG9ydCBpbnRlcm5hdGlvbmFsIGNoYXJhY3RlcnMgKEhpbmRpLCBDaGluZXNlLCBFbW9qaXMsIHNwZWNpYWwgc3ltYm9scywgZXRjLikuPC9saT53DmNvcmUvbGlzdC1pdGVtdyQzNDhlYTZiOC0zMTZlLTQ0ZTUtODZmOC1hOTIzZTUwZjZlYzJ4d5UBPGxpPjxzdHJvbmc+UmljaCBmdW5jdGlvbmFsaXR5Ojwvc3Ryb25nPiBTdHJpbmdzIGFsbG93IHNsaWNpbmcsIGNvbmNhdGVuYXRpb24sIGZvcm1hdHRpbmcsIHNlYXJjaGluZywgYW5kIHRyYW5zZm9ybWF0aW9uIHVzaW5nIGJ1aWx0LWluIG1ldGhvZHMuPC9saT53DmNvcmUvbGlzdC1pdGVtdyQ1NTFhZjIyNC1mZDU2LTQ4NjQtYjhhYy0wYzlmNDg3YzVmNmJ4dxk8cD5Vc2UgY2FzZXMgaW5jbHVkZTo8L3A+dw5jb3JlL3BhcmFncmFwaHl3JGJjNDc2NDg0LTNhOGMtNDAxZS1hMTRmLWFmZGMwY2I3MjhlM3h3ETx1bD4KCgoKCgoKCjwvdWw+dwljb3JlL2xpc3R5dwB\/f39\/f39\/f39\/f39\/f3ckZmY4NTg3MjItMTQ2Mi00Nzc4LTkxZmUtY2ZkY2Q5ZjYxOTM4eHcYPGxpPlRleHQgcHJvY2Vzc2luZzwvbGk+dw5jb3JlL2xpc3QtaXRlbXckZTZhYWMzZjEtZjgyZC00NWI2LTkxYzctYmVmMjNlNDQwMWYxeHcTPGxpPlVzZXIgaW5wdXQ8L2xpPncOY29yZS9saXN0LWl0ZW13JGVjZGY0MjI2LTE1YTgtNDgxNi05ZGJiLWJhNTBjYjVmNTM3YXh3FTxsaT5Mb2cgbWVzc2FnZXM8L2xpPncOY29yZS9saXN0LWl0ZW13JGQ3Y2QxMmMzLTBlN2YtNDExNC04MjlkLWVkMmVlODQ5YWMwMXh3HDxsaT5Db25maWd1cmF0aW9uIGZpbGVzPC9saT53DmNvcmUvbGlzdC1pdGVtdyQ0Mjc3NjUxMi00MjI0LTRjM2ItOWNkNy1jYWYzYTBmOTlmMmJ4dyo8bGk+TkxQIChOYXR1cmFsIExhbmd1YWdlIFByb2Nlc3NpbmcpPC9saT53DmNvcmUvbGlzdC1pdGVtdyQ2OTM5ZTU1NC0zZDIzLTRmMWMtOWIwZS0xOWZjMTZkNzA1N2Z4dyk8cD48c3Ryb25nPjIuIFNlcXVlbmNlIFR5cGVzPC9zdHJvbmc+PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ0ZTVjZDQ0OS1hMmQwLTRjNzItYThjNC01Y2U5YTIwNjFlYjB4dzs8cD5UaGVzZSBkYXRhIHR5cGVzIHN0b3JlIG9yZGVyZWQgY29sbGVjdGlvbnMgb2YgaXRlbXMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ4MDQzNjdlMy1iNzg3LTRiMDktOTlkZi0yN2E3ZGQ4MjI1MGJ4dxw8cD48c3Ryb25nPmxpc3Q8L3N0cm9uZz48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDU0ZjM0ODkwLWM2M2EtNDRkMS1hYTUyLTU0MDViNzk0MmYyNHh3jQE8cD5BIDxzdHJvbmc+bGlzdDwvc3Ryb25nPiBpcyBhIG11dGFibGUgc2VxdWVuY2UgdGhhdCBjYW4gc3RvcmUgaGV0ZXJvZ2VuZW91cyBkYXRhIHR5cGVzLWludGVnZXJzLCBzdHJpbmdzLCBvYmplY3RzLCBvciBldmVuIG90aGVyIGxpc3RzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckM2JlMzk3Y2QtOGQ1MS00YmY0LTkzODYtY2UxM2NjY2FhOTBheHcXPHA+bnVtcyA9IFsxLCAyLCAzXTwvcD53DmNvcmUvcGFyYWdyYXBoeXckMmY0YmJhZDAtYzZkNS00ZWY1LWE3ODEtMGExNDVkNjUxMWE0eHcXPHA+Q29yZSBwcm9wZXJ0aWVzOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZWZkMzc1ZTQtNDQxMy00YTAzLThhYWQtNDVkOGNlNzc4YjBieHcPPHVsPgoKCgoKCjwvdWw+dwljb3JlL2xpc3R5dwB\/f39\/f39\/f39\/f39\/f3ckZDI1NzI1NDQtMjVkNC00MTE0LWI3YTgtOWI1MTRjZThiM2RmeHdLPGxpPjxzdHJvbmc+TXV0YWJsZTo8L3N0cm9uZz4gSXRlbXMgY2FuIGJlIGFkZGVkLCByZW1vdmVkLCBvciBjaGFuZ2VkLjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckYzc5Mzg5YTAtZGQ4MC00OGU0LTkwYmItYjY4ZGJjZDgyMTVmeHdpPGxpPjxzdHJvbmc+RHluYW1pYyByZXNpemluZzo8L3N0cm9uZz4gR3Jvd3Mvc2hyaW5rcyBhdXRvbWF0aWNhbGx5IGFzIGVsZW1lbnRzIGFyZSBhZGRlZCBvciBkZWxldGVkLjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckN2M1NTU3NTQtZjUxMy00OWQ2LWJhZGMtYjRjZmU4YzYyZTY0eHdLPGxpPjxzdHJvbmc+SGV0ZXJvZ2VuZW91czo8L3N0cm9uZz4gU3VwcG9ydHMgc3RvcmluZyBtaXhlZCBkYXRhIHR5cGVzLjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckZmMwYjA3YzMtYmNiNS00MjFlLWFmYmEtYzBlZWE0ZjliZTUweHdSPGxpPjxzdHJvbmc+SW5kZXgtYmFzZWQgYWNjZXNzOjwvc3Ryb25nPiBSZXRyaWV2YWwgaXMgZmFzdCB1c2luZyBsaXN0W2luZGV4XS48L2xpPncOY29yZS9saXN0LWl0ZW13JDVlMDA0NTc3LTRjNWQtNGZiMi05NjAyLWY0MTI1NjUwZWU3YXh3HDxwPkxpc3RzIGFyZSB1c2VmdWwgZm9yOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckODFhMzg5NGMtN2I1OC00YWQyLThmZmYtNzVjNWMzMmJmMzlmeHcPPHVsPgoKCgoKCjwvdWw+dwljb3JlL2xpc3R5dwB\/f39\/f39\/f39\/f39\/f3ckNWQ1N2Y5ZjQtZDU5NC00ZTEwLTg2ZWQtMTQzNjk5ZTQyZGFleHcaPGxpPk1hbmFnaW5nIGRhdGFzZXRzPC9saT53DmNvcmUvbGlzdC1pdGVtdyQ3YTYwYWVlNC00YmRmLTQ0MjMtODU1MC0zMjYwNzU0NTdiZmZ4dyU8bGk+QnVpbGRpbmcgZHluYW1pYyBjb2xsZWN0aW9uczwvbGk+dw5jb3JlL2xpc3QtaXRlbXckZTdjNjJkNmQtMjJjMS00NTRjLTlkMTItMTY5MmMwOWJjOTQxeHcjPGxpPlN0b3JpbmcgcmVzdWx0cyBmcm9tIGxvb3BzPC9saT53DmNvcmUvbGlzdC1pdGVtdyQ1MWY0MDVkNy00OGQ3LTRmZjgtYmM1OS05MDVjZmViODg5MmJ4dyY8bGk+RGF0YSB0cmFuc2Zvcm1hdGlvbiBwaXBlbGluZXM8L2xpPncOY29yZS9saXN0LWl0ZW13JGI3MGJhNDFhLTYxODctNGNkZC05N2IwLTY0ZTQ2Mzg0ZjRjOXh3HTxwPjxzdHJvbmc+dHVwbGU8L3N0cm9uZz48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDEzMTNiZDlkLWZmNWYtNGE5MC05NmFiLWQzNTZiODQxNDRkNXh3TTxwPkEgPHN0cm9uZz50dXBsZTwvc3Ryb25nPiBpcyBhbiBpbW11dGFibGUsIG9yZGVyZWQgY29sbGVjdGlvbiBvZiBpdGVtcy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDRmNWY4NGIzLTE2ZjgtNDA2My04ODQ0LTJhOTU2Yjg4ZTUxZHh3GDxwPmNvb3JkcyA9ICgxMCwgMjApPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRjNzVjYTQ2Yi0wYmU4LTRiMDYtOTM1MC04ZTAzZjgwMDYwODB4dxc8cD5Db3JlIHByb3BlcnRpZXM6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ2MjI0ZWVmZS01ZjgxLTQzYmEtYjgzZS0yZTBhODJmN2FmMzh4dw08dWw+CgoKCjwvdWw+dwljb3JlL2xpc3R5dwB\/f39\/f39\/f39\/f39\/f3ckMzAxNGU4ZGYtNGJhMC00ODFiLThhYzEtMzE1NzZhZDA3Mzc4eHdPPGxpPjxzdHJvbmc+SW1tdXRhYmxlOjwvc3Ryb25nPiBPbmNlIGNyZWF0ZWQsIGVsZW1lbnRzIGNhbm5vdCBiZSBtb2RpZmllZC48L2xpPncOY29yZS9saXN0LWl0ZW13JDk4YmQwMGZjLTZmZmEtNGE1Yy05NzAzLTY2MjMxYWZiYTQ3YXh3UzxsaT48c3Ryb25nPkxpZ2h0d2VpZ2h0Ojwvc3Ryb25nPiBGYXN0ZXIgYW5kIG1vcmUgbWVtb3J5LWVmZmljaWVudCB0aGFuIGxpc3RzLjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckZDAzMTcxZDYtOGNiYS00MzA1LWIyMWMtMTEzNWQ1MWYyNjQweHeIATxsaT48c3Ryb25nPlVzZWQgZm9yIGZpeGVkIGRhdGE6PC9zdHJvbmc+IElkZWFsIGZvciB2YWx1ZXMgdGhhdCBtdXN0IG5vdCBjaGFuZ2UsIHN1Y2ggYXMgY29vcmRpbmF0ZXMsIGNvbmZpZ3VyYXRpb25zLCBhbmQgbWV0YWRhdGEuPC9saT53DmNvcmUvbGlzdC1pdGVtdyQxMmQzOTJjNy1lYWIxLTRkZTMtYjhhZC0wNzhhYmJjYTZjN2V4dyM8cD5UdXBsZXMgYXJlIGNvbW1vbmx5IHVzZWQgaW46PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ0OGMyOTMzYy0xYzIzLTQ4OTktYTFjNy00NmU1OWIyYjI4N2V4dw08dWw+CgoKCjwvdWw+dwljb3JlL2xpc3R5dwB\/f39\/f39\/f39\/f39\/f3ckN2ExYWM2NWUtYTkyMy00YTU2LWJlOTAtMzM0MWM4ZGY3MThleHcrPGxpPkZ1bmN0aW9uIHJldHVybnMgKG11bHRpcGxlIHZhbHVlcyk8L2xpPncOY29yZS9saXN0LWl0ZW13JGQ5YjZiN2Q1LTQ4YjItNGM4Ni05NTc5LThiNmFmYjEyMzk4OHh3GTxsaT5EYXRhYmFzZSByZWNvcmRzPC9saT53DmNvcmUvbGlzdC1pdGVtdyQ3YWYwNWEzNi0yODc3LTQ3MGItOTczOS02NzRjN2VmMzE0YmR4dys8bGk+SGFzaGFibGUgdHlwZXMgZm9yIGRpY3Rpb25hcnkga2V5czwvbGk+dw5jb3JlL2xpc3QtaXRlbXckOTNiOWY2NGItYWVhYy00YWYxLThjZmYtOWUxMDZmNzliMzNheHcdPHA+PHN0cm9uZz5yYW5nZTwvc3Ryb25nPjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNDFjZWYzZjUtNjQ3YS00ZjJmLWFkOTktM2NmOGU3YTBlNzlheHdDPHA+cmFuZ2UgcmVwcmVzZW50cyBhIHNlcXVlbmNlIG9mIG51bWJlcnMsIG9mdGVuIHVzZWQgaW4gbG9vcHM6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyRmOTBmMjIyMi0yMDNhLTRhZDEtYTQzNy02YTAzNmIxODY5NmN4dxc8cD5yID0gcmFuZ2UoMSwgMTApPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQxNjEyZGIzMy04NzUzLTQ0NjktOWYyZC0zNDJlZTk3YWFhZTR4dxU8cD5SYW5nZSBvYmplY3RzOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMzkyZmEyMTctY2Y4Ni00ZmIxLTg5NzYtMDM4NzEwMzY0ZTVieHcNPHVsPgoKCgo8L3VsPncJY29yZS9saXN0eXcAf39\/f39\/f39\/f39\/f393JDkzNTQyYmZiLTNiZTMtNDI1Yy04NmI1LWMxODAzNGY3OWE1N3h3PjxsaT5EbyBub3QgZ2VuZXJhdGUgbnVtYmVycyBpbW1lZGlhdGVseSAobGF6eSBldmFsdWF0aW9uKTwvbGk+dw5jb3JlL2xpc3QtaXRlbXckZWRkYzNlOTItNTU0Zi00OTc0LThjNGQtNTM1ZThjMDE5OTc5eHcdPGxpPkFyZSBtZW1vcnktZWZmaWNpZW50PC9saT53DmNvcmUvbGlzdC1pdGVtdyQyMGFhMzc2Ni0yZmNjLTQzN2QtOTFjYy1jNjM0NGY1ODU5OTV4dx88bGk+UHJvdmlkZSBmYXN0IGl0ZXJhdGlvbjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckOWQ4MTQzMmItZDlhNC00ZjU2LWEwNjktYjExZTQ0NTVlYWU0eHcTPHA+UGVyZmVjdCBmb3I6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ2YjZkN2QwZi0wMGExLTQxOGUtODU4MS1mYTcwYjE3OTQ1YzF4dw08dWw+CgoKCjwvdWw+dwljb3JlL2xpc3R5dwB\/f39\/f39\/f39\/f39\/f3ckNGVmNDAyNGUtY2VkNC00YTFiLWIxZTctNzUzZWMwYWUwNTEzeHcWPGxpPkxvb3AgY291bnRlcnM8L2xpPncOY29yZS9saXN0LWl0ZW13JDk2NDNiMTZlLTk0YTctNGZmZi04MzU0LTNiNmI2ZTRhMmUzMnh3HTxsaT5HZW5lcmF0aW5nIHNlcXVlbmNlczwvbGk+dw5jb3JlL2xpc3QtaXRlbXckMzkxM2QwZDYtOWQ0My00NDRhLWI4NTYtNjE0NGQxMjAwMzlheHccPGxpPk1hdGhlbWF0aWNhbCBzZXJpZXM8L2xpPncOY29yZS9saXN0LWl0ZW13JGQwNWY0MTVlLTA1ZWMtNDA2ZC04ZjlhLWQ5NTlkZGIyODYyM3h3JzxwPjxzdHJvbmc+My4gTWFwcGluZyBUeXBlPC9zdHJvbmc+PC9wPncOY29yZS9wYXJhZ3JhcGh5dyRmMDg5NjA3NC02OWU2LTQ2Y2ItODllZS0xN2JjYmJkYmJjY2Z4d2w8aDQgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLWRpY3QtZGljdGlvbmFyeSI+PHN0cm9uZz5kaWN0PC9zdHJvbmc+PHN0cm9uZz4gKERpY3Rpb25hcnkpPC9zdHJvbmc+PC9oND53DGNvcmUvaGVhZGluZ30EdxFoLWRpY3QtZGljdGlvbmFyeXckMWY0NmY5MDktNDRkYi00ZGM0LTkzNGQtMGI1ZTM3YjAyNWNjeHeDATxwPkEgZGljdGlvbmFyeSBzdG9yZXMgZGF0YSBpbiA8ZW0+a2V5LXZhbHVlPC9lbT4gcGFpcnMgYW5kIGlzIG9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCBhbmQgd2lkZWx5IHVzZWQgUHl0aG9uIGRhdGEgc3RydWN0dXJlcy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGQ1ZDVmYjliLTUzYzItNDAwNi1hZjg2LWUwOTkwMDY1M2EwNnh3LDxwPnN0dWRlbnQgPSB7Im5hbWUiOiAiSm9obiIsICJhZ2UiOiAyMn08L3A+dw5jb3JlL3BhcmFncmFwaHl3JDI5MTJjNTcyLWZhMDUtNGQyMC05N2JiLTVlY2U2YTQ1YTJiZnh3GzxwPktleSBjaGFyYWN0ZXJpc3RpY3M6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyRhMWVkZWMyNS0yMmQ2LTQyZmMtYTExMi0xNjRhNDA1MjhiN2V4dw08dWw+CgoKCjwvdWw+dwljb3JlL2xpc3R5dwB\/f39\/f39\/f39\/f39\/f3ckNzU2MzNkNmYtNDkzMS00ODIwLTgxMDktY2Q4ZjVmZWUzNTgweHdhPGxpPjxzdHJvbmc+RmFzdCBsb29rdXA6PC9zdHJvbmc+IERpY3Rpb25hcmllcyB1c2UgaGFzaGluZywgbWFraW5nIHNlYXJjaGVzIGV4dHJlbWVseSBxdWljay48L2xpPncOY29yZS9saXN0LWl0ZW13JGM2NjY2MWY0LTFjYWYtNDM4NS05ZTVmLTEzYjJkOWUxZTM2Mnh3VjxsaT48c3Ryb25nPk11dGFibGU6PC9zdHJvbmc+IEtleXMgYW5kIHZhbHVlcyBjYW4gYmUgYWRkZWQsIHJlbW92ZWQsIG9yIG1vZGlmaWVkLjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckMGU4MTg1OTYtZWE0NC00OTdhLWJmODgtNjI2MDJkOTgyZjY5eHddPGxpPjxzdHJvbmc+RmxleGlibGU6PC9zdHJvbmc+IEtleXMgbXVzdCBiZSB1bmlxdWUgYW5kIGhhc2hhYmxlOyB2YWx1ZXMgY2FuIGJlIGFueXRoaW5nLjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckYjA4ZmM3ODgtNzFiYy00YTg5LWJkMTUtN2E0NTdjMTM3ZDkxeHcRPHA+VXNlIGNhc2VzOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckM2VhMjA0ZGUtODgxYi00NGI2LWI0MDUtNzRhYzZiMGJlNjQzeHcRPHVsPgoKCgoKCgoKPC91bD53CWNvcmUvbGlzdHl3AH9\/f39\/f39\/f39\/f39\/dyQ3NmUzOTc0ZS1lY2RlLTQ3NDUtYjNjOC1iYTA0NGY4MTA5NTd4dx88bGk+U3RvcmluZyBKU09OLWxpa2UgZGF0YTwvbGk+dw5jb3JlL2xpc3QtaXRlbXckNDhiM2FlN2YtYTk0OC00YzBiLWJmMzItMzFjZGYwMjQ3OTMzeHcWPGxpPkFQSSByZXNwb25zZXM8L2xpPncOY29yZS9saXN0LWl0ZW13JGI5ZjRmMDQ1LWM2NTAtNDZjNi04ZjZlLTNkYTUwMDc0YmQ1ZXh3EDxsaT5DYWNoaW5nPC9saT53DmNvcmUvbGlzdC1pdGVtdyRiODU1MmFjNi1jNjFmLTRlNWItOWNmMi02NjFlYzM4ODdkOTB4dxY8bGk+VXNlciBwcm9maWxlczwvbGk+dw5jb3JlL2xpc3QtaXRlbXckMmU4NGFmYWMtN2UzYi00MjQ3LWEzOGItMTY1YmY4ZjU3NjQweHcxPGxpPkNvbmZpZ3VyYXRpb25zIGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXM8L2xpPncOY29yZS9saXN0LWl0ZW13JDg1NjViYzVhLTM3MjUtNDNhNC05MTUwLTA3M2ZiOWNlNzFlYXh3bTxwPkRpY3Rpb25hcmllcyBhcmUgY3J1Y2lhbCBpbiBtb2Rlcm4gUHl0aG9uIGFwcHMsIGVzcGVjaWFsbHkgaW4gd2ViLCBNTCwgYW5kIGRhdGEgZW5naW5lZXJpbmcgd29ya2Zsb3dzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckOWRiN2E5YTEtMmFiOC00NzRlLWEwMjMtN2NkM2YwZjgxYzQxeHckPHA+PHN0cm9uZz40LiBTZXQgVHlwZXM8L3N0cm9uZz48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDgyNmM5MTNlLTk2ZTYtNGU2Yy04ZDM5LTlhZWEzYmFjNzhiMXh3eTxwPkEgc2V0IGlzIGFuIDxzdHJvbmc+dW5vcmRlcmVkIGNvbGxlY3Rpb248L3N0cm9uZz4gb2YgdW5pcXVlIGl0ZW1zLiBVc2VmdWwgd2hlbiB5b3Ugd2FudCB0byBhdm9pZCBkdXBsaWNhdGUgdmFsdWVzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNjhmZjJiMzItZjY0NC00OGQ4LTg5OGUtYmZkMDg2YmRjNDA5eHcbPHA+PHN0cm9uZz5zZXQ8L3N0cm9uZz48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGE4MThlMGZiLTg1YWYtNGRjYS1hZTU1LTkwMDM0YzMzMWE0OXh3FDxwPnMgPSB7MSwgMiwgM308L3A+dw5jb3JlL3BhcmFncmFwaHl3JDFlMjk0MDk4LTk3NjctNDgzYy1hODFkLTU4NjE0MTlhM2YxMnh3FjxwPktleSBwcm9wZXJ0aWVzOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckOGQ5N2U0ZDEtY2Q5MC00ZGI3LWEzNmEtNzExMmU2ZTE3YzA2eHcNPHVsPgoKCgo8L3VsPncJY29yZS9saXN0eXcAf39\/f39\/f39\/f39\/f393JDc4MGQwMzQ5LTA2YWEtNGY0MC04ODA0LWQyNzYzMGYyMTdhM3h3LzxsaT48c3Ryb25nPk5vIGR1cGxpY2F0ZXMgYWxsb3dlZDwvc3Ryb25nPjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckM2Y5ZDM5ZjQtMzI0OC00YjZkLTk4N2UtNzIxYzA2NDg3NDQyeHctPGxpPjxzdHJvbmc+TXV0YWJsZSBhbmQgZHluYW1pYzwvc3Ryb25nPjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckMzQxMmFiYzEtOGUyMC00M2YxLTlhYWEtMGNjZWYyYzA2MTU4eHdLPGxpPjxzdHJvbmc+RXh0cmVtZWx5IGZhc3QgZm9yIG1lbWJlcnNoaXAgY2hlY2tzPC9zdHJvbmc+IChpbiwgbm90IGluKTwvbGk+dw5jb3JlL2xpc3QtaXRlbXckNWUwNzJiYWItNjE4MS00ZWYyLWJkY2EtM2U5Mzc4YTVjMTY2eHcRPHA+R3JlYXQgZm9yOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckODg2ZWYyYmQtZjU5NS00ZGJlLWI0ZWEtY2I5NDVjN2JlMmYxeHcNPHVsPgoKCgo8L3VsPncJY29yZS9saXN0eXcAf39\/f39\/f39\/f39\/f393JGRhNjFlYzVmLWU0YTUtNGU0MS1iMGI3LTJmZDUxYWE0YjkxZXh3HDxsaT5SZW1vdmluZyBkdXBsaWNhdGVzPC9saT53DmNvcmUvbGlzdC1pdGVtdyRlOTFkMjNhNy1hMTcyLTQ5NjgtOWM5NC0wMWJjZTVmYzZlZTZ4d0I8bGk+TWF0aGVtYXRpY2FsIG9wZXJhdGlvbnMgKHVuaW9uLCBpbnRlcnNlY3Rpb24sIGRpZmZlcmVuY2UpPC9saT53DmNvcmUvbGlzdC1pdGVtdyRhYzVjY2RjZi0yYTE1LTQ1OTEtYjFlZi01MzA3MDU3MmQxY2Z4dyA8bGk+RmFzdCBtZW1iZXJzaGlwIHRlc3Rpbmc8L2xpPncOY29yZS9saXN0LWl0ZW13JDJhOThiMjc2LWM3Y2MtNDViNy04MjhjLTc2MWQ4NTI0ZWZhOXh3ITxwPjxzdHJvbmc+ZnJvemVuc2V0PC9zdHJvbmc+PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ0NjVjNGRjMy1mNTZjLTQ4ZDctOTE4YS1iODhkYzYyZDFhMWR4dyU8cD5BbiBpbW11dGFibGUgdmVyc2lvbiBvZiBhIHNldC48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGM2OWFlMTNkLWUwMjgtNDM5MS1iY2ZkLTU0OTdjNGZiM2RmOHh3EDxwPktleSB1c2VzOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckOGI4N2ZkZGItYzA2Ny00NzgxLThlYzAtYjJlMjQxYjM5ZWRmeHcNPHVsPgoKCgo8L3VsPncJY29yZS9saXN0eXcAf39\/f39\/f39\/f39\/f393JDhiMDZkNjQ1LWYxNDQtNDQyYi04NTkxLWVmMjc4NTBjNzQxMnh3KDxsaT5XaGVuIGEgc2V0IG5lZWRzIHRvIGJlIGhhc2hhYmxlPC9saT53DmNvcmUvbGlzdC1pdGVtdyRiYWY0YjAyYy1lNTZiLTRjZGMtYTM5Zi1jNjgxOWJiMWNjOGR4dzc8bGk+V2hlbiBzdG9yaW5nIGluc2lkZSBkaWN0aW9uYXJpZXMgb3Igb3RoZXIgc2V0czwvbGk+dw5jb3JlL2xpc3QtaXRlbXckZjEwYWUwNTQtMGYyOC00OTIwLTlkZWYtYTBkMjU1OTdiYTNkeHcxPGxpPkZvciBmaXhlZCwgcmVhZC1vbmx5IHNldHMgb2YgdW5pcXVlIGRhdGE8L2xpPncOY29yZS9saXN0LWl0ZW13JGQwZWRiNjc1LWNmN2EtNDdkNS1iMjc3LWRhMjE4NjM5MmFhMnh3JzxwPjxzdHJvbmc+NS4gQm9vbGVhbiBUeXBlPC9zdHJvbmc+PC9wPncOY29yZS9wYXJhZ3JhcGh5dyRkYzliYzM2My05NmRmLTQzMTEtOTlkOC0zYTU4NGRmNmM4YjF4d0o8cD5BbHJlYWR5IGNvdmVyZWQgdW5kZXIgbnVtZXJpYyB0eXBlcywgYnV0IGVzc2VudGlhbCB0byBtZW50aW9uIGhlcmU6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ2YWU2ZmJmOS1hNmFkLTQ3ODYtYTIyMy0wYTVjOTY0MzdlNjF4dws8dWw+Cgo8L3VsPncJY29yZS9saXN0eXcAf39\/f39\/f39\/f39\/f393JDI5MmQwNDNiLTk3MDktNGM1MS04MmYyLTM0MDZmMjhmZGUxM3h3MDxsaT5SZXByZXNlbnRzIHRydXRoIHZhbHVlczogVHJ1ZSBhbmQgRmFsc2U8L2xpPncOY29yZS9saXN0LWl0ZW13JDJlZTBhN2NlLTU3OGUtNDk4NS04MGNhLWRlMjU1MDkxZmY1Nnh3IDxsaT5GcmVxdWVudGx5IHVzZWQgaW46PGJyPjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckYWEwYWU4YzQtYWNiYS00M2Y0LWFhNDEtMzI2MTQ4OGE3YzI1eHcPPHVsPgoKCgoKCjwvdWw+dwljb3JlL2xpc3R5dwB\/f39\/f39\/f39\/f39\/f3ckOGZjMWYxOGQtYzExNy00NTYzLTg3MDktM2RmN2EwNWFmMzlheHcfPGxpPkNvbmRpdGlvbmFsIHN0YXRlbWVudHM8L2xpPncOY29yZS9saXN0LWl0ZW13JGQ0ZTVmZDM3LTkzMjEtNDJkMC1hNGZiLWE1ZGI1OTFmMjkwMnh3DjxsaT5Mb29wczwvbGk+dw5jb3JlL2xpc3QtaXRlbXckZDYxNjI5NTItMDlkMi00ZWU1LTk1NzktNDI1M2E2ZDk3ZGFkeHcUPGxpPkNvbXBhcmlzb25zPC9saT53DmNvcmUvbGlzdC1pdGVtdyRlMzdkZjdmZi0wOTIwLTQwNTUtYTg1OC1mNDNlN2JlMGNhODB4dxs8bGk+TG9naWNhbCBvcGVyYXRpb25zPC9saT53DmNvcmUvbGlzdC1pdGVtdyQ3ZjJmNGZjOS1jYmI5LTQ1YTAtOTFlZi00NzdlNTNjNDU0YjB4dzw8cD5Cb29sZWFucyBmb3JtIHRoZSBmb3VuZGF0aW9uIG9mIHByb2dyYW0gZmxvdyBjb250cm9sLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckZmViOGQwNDUtZTY1YS00NjY4LWE3M2EtOThjZDNhYzdiMjEweHcnPHA+PHN0cm9uZz42LiBCaW5hcnkgVHlwZXM8L3N0cm9uZz48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDZhOGVmMzMwLTczMzAtNDdkOC04YjI5LTFlYTU5Y2Q5NzNhNHh3VTxwPkRlc2lnbmVkIGZvciBoYW5kbGluZyByYXcgYmluYXJ5IGRhdGEsIGJ5dGVzLCBhbmQgbWVtb3J5LWVmZmljaWVudCBvcGVyYXRpb25zLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMTFhY2NiNjUtZDczNC00NmZiLTg3MzItOGMzOGRmMTQzZTQxeHcQPHA+SW5jbHVkZXM6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQyMjU5YmI1Ni1hM2IyLTQ0MGMtODQ1MS04ZThiOGQzZmZhODd4d0U8aDQgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLWJ5dGVzIj48c3Ryb25nPmJ5dGVzPC9zdHJvbmc+PC9oND53DGNvcmUvaGVhZGluZ30EdwdoLWJ5dGVzdyQ4ZDg5ODllMC1lMzY2LTRiZjctODEzZC04Yjk0ODVlYjRlZTF4dzo8cD5JbW11dGFibGUgc2VxdWVuY2VzIG9mIGJ5dGVzICgw4oCTMjU1KS48YnI+VXNlZCBpbjo8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDg2ZWE1YmI4LTc5NTQtNDdhZS1hZDk5LTk1MzA2ODg1OWRiNHh3DTx1bD4KCgoKPC91bD53CWNvcmUvbGlzdHl3AH9\/f39\/f39\/f39\/f39\/dyQ2MTMxODA3Ny1jMGU4LTQzM2QtYjVkNy04ZDY4MTE4MjE3NzF4dxY8bGk+RmlsZSBoYW5kbGluZzwvbGk+dw5jb3JlL2xpc3QtaXRlbXckNzg3NzZkZTktYzdmMS00NmNkLTlmZmItOWMxZDYwZjI2OWY0eHcZPGxpPkltYWdlL2F1ZGlvIGRhdGE8L2xpPncOY29yZS9saXN0LWl0ZW13JDU4YmZlY2RlLWJmMjEtNDg5MC1iMDQyLTU1OThiOThkNmZlNnh3FDxsaT5Db21wcmVzc2lvbjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckNTI1ZGM2OWMtMTc5OS00M2E1LTk4Y2MtM2ZlYTU0YmYyYzUxeHdNPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC1ieXRlYXJyYXkiPjxzdHJvbmc+Ynl0ZWFycmF5PC9zdHJvbmc+PC9oND53DGNvcmUvaGVhZGluZ30EdwtoLWJ5dGVhcnJheXckMThhYjQzMzItYTY1NS00M2UwLWEwOTktMWMwY2FhNGNhZjAzeHdLPHA+TXV0YWJsZSB2ZXJzaW9uIG9mIGJ5dGVzLjxicj5Vc2VkIHdoZW4gYmluYXJ5IGRhdGEgbXVzdCBiZSBtb2RpZmllZC48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGQ2ZWVmMzc1LTQxYmYtNDBjZC1hMzBhLWYzZTdjOGVlMmIzY3h3TzxoNCBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtbWVtb3J5dmlldyI+PHN0cm9uZz5tZW1vcnl2aWV3PC9zdHJvbmc+PC9oND53DGNvcmUvaGVhZGluZ30EdwxoLW1lbW9yeXZpZXd3JDRhYTRmNDlhLWExMWItNDQ1MC1iMWRhLTE1YTM4MTU3NmZhMHh3YDxwPlByb3ZpZGVzIGEgdmlldyBpbnRvIGJpbmFyeSBkYXRhIHdpdGhvdXQgY29weWluZyBpdC12ZXJ5IGVmZmljaWVudCBmb3IgbGFyZ2UgZGF0YSBibG9ja3MuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRmOTE2YjJhMy1kMjJiLTQzM2QtYjFiMS0xNTliMGYxNjg1YjN4dxQ8cD5JbXBvcnRhbnQgaW46PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ0NWMxOThkYS1hZGJmLTQxYjYtYjdhMC1lYWEzNTQxNTFlMDh4dw08dWw+CgoKCjwvdWw+dwljb3JlL2xpc3R5dwB\/f39\/f39\/f39\/f39\/f3ckMTY0OTQ2YzctMmZkZC00ODU3LWIwNTctNDc5MzY5ODJkOWY5eHcePGxpPk5ldHdvcmsgY29tbXVuaWNhdGlvbjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckNjdkNzg3NTAtODQwMi00ZDgzLWI1ZjQtYWRiNDM2NTVmNmM3eHcYPGxpPkJ1ZmZlciBoYW5kbGluZzwvbGk+dw5jb3JlL2xpc3QtaXRlbXckMTUxMzgwYTYtMGQ2Yy00NTVkLTk5NDQtYjU3ZGU4ZDAzMzU1eHcmPGxpPkhpZ2gtcGVyZm9ybWFuY2UgYXBwbGljYXRpb25zPC9saT53DmNvcmUvbGlzdC1pdGVtdyQ3YmQxMzFjMy1jNWM5LTQ1NWYtODI3OS1jZGQ1YzJiNzIzZWJ4dzY8cD48c3Ryb25nPldoeSBCdWlsdC1pbiBEYXRhIFR5cGVzIE1hdHRlcjwvc3Ryb25nPjwvcD53DmNvcmUvcGFyYWdyYXBoeXckOTVhOTFkOGUtZmViYi00ZjU5LTk0ODQtOThlZWRmNGMxNjAyeHc4PHA+UHl0aG9u4oCZcyBidWlsdC1pbiBkYXRhIHR5cGVzIGFyZSBvcHRpbWl6ZWQgZm9yOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMTRmNDdkZDAtNDA5NC00ZDNmLWJhMjctMjNiNjY4NDQ5ZGEyeHcPPHVsPgoKCgoKCjwvdWw+dwljb3JlL2xpc3R5dwB\/f39\/f39\/f39\/f39\/f3ckNzllYjI4ODctMjVjNC00ZDYyLWJjOTAtZmEwMWQyOWUyM2Q1eHcOPGxpPlNwZWVkPC9saT53DmNvcmUvbGlzdC1pdGVtdyRlNjgzZThjYy01NjBjLTRjOGEtOWM0ZS02ZGVhMmRjNzNlMTB4dxQ8bGk+RmxleGliaWxpdHk8L2xpPncOY29yZS9saXN0LWl0ZW13JGQzNjk5NmNkLWY1MjUtNGViMy05MzUwLWRlYTcxZGMzMDEwYXh3GjxsaT5NZW1vcnkgZWZmaWNpZW5jeTwvbGk+dw5jb3JlL2xpc3QtaXRlbXckNDBjYjlhMTgtODJiMi00OWZlLTgxODYtMWUwOTU4MzM4MTQyeHclPGxpPlJlYWwtd29ybGQgYXBwbGljYXRpb24gbmVlZHM8L2xpPncOY29yZS9saXN0LWl0ZW13JDUzZGEwNTFkLTU3ZjgtNDM4Ny1hMDlhLTU3NDMwZTk3NmYyMnh3JDxwPlRoZXkgZm9ybSB0aGUgZm91bmRhdGlvbiBmb3I6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ0ZjQ2ZTIxYy02ZmRjLTRkMzQtYTc2NS0wM2I4NjJjN2JmYmJ4dxE8dWw+CgoKCgoKCgo8L3VsPncJY29yZS9saXN0eXcAf39\/f39\/f39\/f39\/f393JGQxOGE2NzAwLTk5NGItNGEyMy04M2YyLWU1NDBiMTVhNWJiMnh3EzxsaT5BbGdvcml0aG1zPC9saT53DmNvcmUvbGlzdC1pdGVtdyQzZTA1ZTI0OC0wMzUzLTRkZjgtYjQxMC0zNTcwOWE4N2U2YTh4dyE8bGk+QVBJcyBhbmQgYmFja2VuZCBzeXN0ZW1zPC9saT53DmNvcmUvbGlzdC1pdGVtdyRmZjQ1N2Y2NS04ZGE2LTRiYTAtOWMwYS0zMDYxNmQyMDdkNTN4dyM8bGk+TWFjaGluZSBsZWFybmluZyBwaXBlbGluZXM8L2xpPncOY29yZS9saXN0LWl0ZW13JGU5MjhjZGE4LThmZGMtNGU5OS04YmM1LTlmZWUxN2Y4YjI3MXh3JjxsaT5FbnRlcnByaXNlLWdyYWRlIGFwcGxpY2F0aW9uczwvbGk+dw5jb3JlL2xpc3QtaXRlbXckM2ZiZmM4OGEtZjI1Ni00MmQ4LTg0MTItMTUwYmQyZTIzNThmeHcgPGxpPkRhdGEgYW5hbHlzaXMgd29ya2Zsb3dzPC9saT53DmNvcmUvbGlzdC1pdGVtdyQ3OWM2YjY2Yi1iODNlLTQxNTktYTgyZi04OWU3MGI5YWJiMGN4d3o8cD5NYXN0ZXJpbmcgdGhlc2UgdHlwZXMgZW5zdXJlcyBiZXR0ZXIgcGVyZm9ybWFuY2UsIGNsZWFuZXIgY29kZSwgYW5kIGltcHJvdmVkIHByb2JsZW0tc29sdmluZyBhcyBhIFB5dGhvbiBkZXZlbG9wZXIuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQxZGQ1MWVlOS03NWRhLTRlMTEtYjdhMi00YjMwODViN2I5NzN4dzQ8cD48c3Ryb25nPkNob29zaW5nIHRoZSBSaWdodCBEYXRhIFR5cGU8L3N0cm9uZz48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGRjYzBiYTcwLWIzN2EtNDFmOC1hMjhlLTE3ODI4MjVmMzFjY3h3PjxwPlRoZSBhYmlsaXR5IHRvIGNob29zZSB0aGUgY29ycmVjdCBkYXRhIHR5cGUgZGV0ZXJtaW5lczo8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDgzNmNiYjg3LWIxNDUtNGQ2Mi1hZTgzLTg2ZTY2YjM1OGQ1MHh3Dzx1bD4KCgoKCgo8L3VsPncJY29yZS9saXN0eXcAf39\/f39\/f39\/f39\/f393JDUzYWMwNmU4LTQ0YzctNDBkNy04MjZkLTU4Y2ViOTA3MmFjNHh3IDxsaT5BcHBsaWNhdGlvbiBwZXJmb3JtYW5jZTwvbGk+dw5jb3JlL2xpc3QtaXRlbXckMzBjOWVjNTgtZmM2Ny00YjViLTljN2UtODRiZjZjZWNlZGRheHcVPGxpPk1lbW9yeSB1c2FnZTwvbGk+dw5jb3JlL2xpc3QtaXRlbXckMDAxYzdlMDEtOTU4OC00OGU0LWE5ZDgtYmE0ZGRjYjE5ZDY4eHcZPGxpPkNvZGUgcmVhZGFiaWxpdHk8L2xpPncOY29yZS9saXN0LWl0ZW13JGY2MWFkYmYwLTU4NjMtNDU5ZC1hMTRjLTc2ODU4ZDc2ZmFlMnh3FzxsaT5CdWcgcHJldmVudGlvbjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckMTcyYTkyZDItZjc2YS00ZjgwLTk1ZWItMTRiMzkyODQ1YWQweHdyPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC13aGVuLXRvLXVzZS13aGljaC1kYXRhLXR5cGUiPjxzdHJvbmc+V2hlbiB0byB1c2Ugd2hpY2ggZGF0YSB0eXBlPzwvc3Ryb25nPjwvaDM+dwxjb3JlL2hlYWRpbmd9A3cdaC13aGVuLXRvLXVzZS13aGljaC1kYXRhLXR5cGV3JDA2NTQwMDZmLTQ3ZGUtNDBkMi1hZmIzLTEyZTI3YWVlYzI3N3h34AQ8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay10YWJsZSI+PHRhYmxlPjx0Ym9keT48dHI+PHRkPjxzdHJvbmc+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgUHVycG9zZTwvc3Ryb25nPjwvdGQ+PHRkPjxzdHJvbmc+QmVzdCBEYXRhIFR5cGU8L3N0cm9uZz48L3RkPjwvdHI+PHRyPjx0ZD5TdG9yZSBzdHJ1Y3R1cmVkIGtleS12YWx1ZSBkYXRhPC90ZD48dGQ+ZGljdDwvdGQ+PC90cj48dHI+PHRkPk1haW50YWluIG9yZGVyICsgaW5kZXhpbmc8L3RkPjx0ZD5saXN0PC90ZD48L3RyPjx0cj48dGQ+UHJvdGVjdCBkYXRhIGZyb20gbW9kaWZpY2F0aW9uPC90ZD48dGQ+dHVwbGU8L3RkPjwvdHI+PHRyPjx0ZD5GYXN0IG1lbWJlcnNoaXAgdGVzdHM8L3RkPjx0ZD5zZXQ8L3RkPjwvdHI+PHRyPjx0ZD5SZWFsIG51bWJlcnMgb3IgZGVjaW1hbCBwcmVjaXNpb248L3RkPjx0ZD5mbG9hdCAvIGRlY2ltYWw8L3RkPjwvdHI+PHRyPjx0ZD5TdG9yZSByYXcgYmluYXJ5IGRhdGE8L3RkPjx0ZD5ieXRlczwvdGQ+PC90cj48dHI+PHRkPlVzZSBzaW1wbGUgeWVzL25vIHZhbHVlczwvdGQ+PHRkPmJvb2w8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZmlndXJlPncKY29yZS90YWJsZXl1AHUIdgEFY2VsbHN1AnYGB2NvbnRlbnR3QjxzdHJvbmc+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgUHVycG9zZTwvc3Ryb25nPgN0YWd3AnRkBXNjb3BlfwVhbGlnbn8HY29sc3Bhbn8Hcm93c3Bhbn92Bgdjb250ZW50dx88c3Ryb25nPkJlc3QgRGF0YSBUeXBlPC9zdHJvbmc+A3RhZ3cCdGQFc2NvcGV\/BWFsaWdufwdjb2xzcGFufwdyb3dzcGFuf3YBBWNlbGxzdQJ2Bgdjb250ZW50dx9TdG9yZSBzdHJ1Y3R1cmVkIGtleS12YWx1ZSBkYXRhA3RhZ3cCdGQFc2NvcGV\/BWFsaWdufwdjb2xzcGFufwdyb3dzcGFuf3YGB2NvbnRlbnR3BGRpY3QDdGFndwJ0ZAVzY29wZX8FYWxpZ25\/B2NvbHNwYW5\/B3Jvd3NwYW5\/dgEFY2VsbHN1AnYGB2NvbnRlbnR3GU1haW50YWluIG9yZGVyICsgaW5kZXhpbmcDdGFndwJ0ZAVzY29wZX8FYWxpZ25\/B2NvbHNwYW5\/B3Jvd3NwYW5\/dgYHY29udGVudHcEbGlzdAN0YWd3AnRkBXNjb3BlfwVhbGlnbn8HY29sc3Bhbn8Hcm93c3Bhbn92AQVjZWxsc3UCdgYHY29udGVudHceUHJvdGVjdCBkYXRhIGZyb20gbW9kaWZpY2F0aW9uA3RhZ3cCdGQFc2NvcGV\/BWFsaWdufwdjb2xzcGFufwdyb3dzcGFuf3YGB2NvbnRlbnR3BXR1cGxlA3RhZ3cCdGQFc2NvcGV\/BWFsaWdufwdjb2xzcGFufwdyb3dzcGFuf3YBBWNlbGxzdQJ2Bgdjb250ZW50dxVGYXN0IG1lbWJlcnNoaXAgdGVzdHMDdGFndwJ0ZAVzY29wZX8FYWxpZ25\/B2NvbHNwYW5\/B3Jvd3NwYW5\/dgYHY29udGVudHcDc2V0A3RhZ3cCdGQFc2NvcGV\/BWFsaWdufwdjb2xzcGFufwdyb3dzcGFuf3YBBWNlbGxzdQJ2Bgdjb250ZW50dyFSZWFsIG51bWJlcnMgb3IgZGVjaW1hbCBwcmVjaXNpb24DdGFndwJ0ZAVzY29wZX8FYWxpZ25\/B2NvbHNwYW5\/B3Jvd3NwYW5\/dgYHY29udGVudHcPZmxvYXQgLyBkZWNpbWFsA3RhZ3cCdGQFc2NvcGV\/BWFsaWdufwdjb2xzcGFufwdyb3dzcGFuf3YBBWNlbGxzdQJ2Bgdjb250ZW50dxVTdG9yZSByYXcgYmluYXJ5IGRhdGEDdGFndwJ0ZAVzY29wZX8FYWxpZ25\/B2NvbHNwYW5\/B3Jvd3NwYW5\/dgYHY29udGVudHcFYnl0ZXMDdGFndwJ0ZAVzY29wZX8FYWxpZ25\/B2NvbHNwYW5\/B3Jvd3NwYW5\/dgEFY2VsbHN1AnYGB2NvbnRlbnR3GFVzZSBzaW1wbGUgeWVzL25vIHZhbHVlcwN0YWd3AnRkBXNjb3BlfwVhbGlnbn8HY29sc3Bhbn8Hcm93c3Bhbn92Bgdjb250ZW50dwRib29sA3RhZ3cCdGQFc2NvcGV\/BWFsaWdufwdjb2xzcGFufwdyb3dzcGFuf3UAf39\/f39\/f39\/f39\/dyQ3YTg1ZDYzNS0yNWNiLTQ2YzUtODE0Ny04ZjJhMTUyZDhkZTF4d3M8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLWNob29zaW5nLWJhc2VkLW9uLW11dGFiaWxpdHkiPjxzdHJvbmc+Q2hvb3NpbmcgYmFzZWQgb24gbXV0YWJpbGl0eTwvc3Ryb25nPjwvaDM+dwxjb3JlL2hlYWRpbmd9A3ceaC1jaG9vc2luZy1iYXNlZC1vbi1tdXRhYmlsaXR5dyQ0MGFiNTI2MS1iMTkyLTRkODQtYThlZS00MzBhZjIwNTRmOGF4dws8dWw+Cgo8L3VsPncJY29yZS9saXN0eXcAf39\/f39\/f39\/f39\/f393JDkwMDIzMjMwLTE0YzctNGY4ZS05MmQyLWFlYmI3YTQ1ZTM5OHh3ZTxsaT5Vc2UgPHN0cm9uZz50dXBsZXM8L3N0cm9uZz4gaW5zdGVhZCBvZiA8c3Ryb25nPmxpc3RzPC9zdHJvbmc+IHdoZW4gaW1tdXRhYmlsaXR5IGlzIHJlcXVpcmVkLjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckOTgyOWM0M2UtNzMzNC00ODNmLWJjNDktMjk2MjRjNDNkMmU2eHdmPGxpPlVzZSA8c3Ryb25nPmZyb3plbnNldDwvc3Ryb25nPiBpbnN0ZWFkIG9mIDxzdHJvbmc+c2V0PC9zdHJvbmc+IHdoZW4gbW9kaWZ5aW5nIGlzIG5vdCBhbGxvd2VkLjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckNWRlZmYzNmItNDM0Ny00MzYwLTg5YTEtNGRkYTcyOTIxYTBleHd9PGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC1jaG9vc2luZy1iYXNlZC1vbi1vcGVyYXRpb24tc3BlZWQiPjxzdHJvbmc+Q2hvb3NpbmcgYmFzZWQgb24gb3BlcmF0aW9uIHNwZWVkPC9zdHJvbmc+PC9oMz53DGNvcmUvaGVhZGluZ30DdyNoLWNob29zaW5nLWJhc2VkLW9uLW9wZXJhdGlvbi1zcGVlZHckMzEzYTlhZjEtM2I0Yy00MjI5LTkwNDctMDIyNmM4MWMwZGQ0eHcLPHVsPgoKPC91bD53CWNvcmUvbGlzdHl3AH9\/f39\/f39\/f39\/f39\/dyQwODA2MGMyMy1jMTUwLTQ1MjUtOTJiYy1hMTJmN2E2YmZkYmR4dzY8bGk+RGljdGlvbmFyaWVzIGFuZCBzZXRzIGFyZSBmYXN0ZXIgZm9yIGxvb2t1cHMuPC9saT53DmNvcmUvbGlzdC1pdGVtdyQxZGVkNmZmMi0zYWMxLTRiNWMtODM3My03OWQ0ZWNkNWJjODR4dzc8bGk+TGlzdHMgYXJlIGJldHRlciBmb3Igb3JkZXJlZCBkYXRhIGFuZCBzbGljaW5nLjwvbGk+dw5jb3JlL2xpc3QtaXRlbXckYWQ4ZmNiOWQtNTI2Mi00YzBkLWIzOTgtNzk1MDhmM2YxN2NheHdNPHA+Q2hvb3NpbmcgdGhlIHJpZ2h0IHR5cGUgZW5zdXJlcyB5b3VyIGNvZGUgcmVtYWlucyBlZmZpY2llbnQgYW5kIGNsZWFyLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNmNhZWYxMzctOTA2OC00NDU5LWJkYTktMDI5MTgyOTc0ZTI0eHdAPHA+PHN0cm9uZz5UeXBlIEhpbnRzIGFuZCBBbm5vdGF0aW9ucyAoUHl0aG9uIDMuNSspPC9zdHJvbmc+PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQyOTJjNGI0Mi1mY2YwLTRlZTgtOGJiYS1mMmQ0ZWQ1ZDQ4ZmR4d088cD5UeXBlIGhpbnRpbmcgcmV2b2x1dGlvbml6ZWQgUHl0aG9uIGJ5IGFkZGluZyBzdGF0aWMgdHlwaW5nIGNhcGFiaWxpdGllcy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JGQzYmZiOWI2LTFlNzYtNDNjMy1hZTVmLTZiYjQ4MmFjMDM2Ynh3DzxwPkV4YW1wbGU6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyRhYjlmMjgwMC04MjZjLTRiYjEtYjA0Yi02ODY4MzYzN2E5NTB4dyk8cD5kZWYgYWRkKGE6IGludCwgYjogaW50KSAtJmd0OyBpbnQ6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQyNzZlZWQwMS1iODljLTRhNDctOTFhMC0xOTRiZmJlMzcxZGN4dys8cD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZXR1cm4gYSArIGI8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDdkODA5MjZkLWYwMzQtNDUzNS1hNzZmLTM4NTcwYzlkZjA5YXh3EDxwPkJlbmVmaXRzOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMzJjYTE2MTktYTIwMC00ODRhLWI4MGItYmQ5ZTY2ZmIxZDU5eHcPPHVsPgoKCgoKCjwvdWw+dwljb3JlL2xpc3R5dwB\/f39\/f39\/f39\/f39\/f3ckZjYxODc5ODgtNjhjNC00MTljLThlN2EtNDliZGNhMTVjYzQ4eHcbPGxpPkJldHRlciBJREUgc3VwcG9ydDwvbGk+dw5jb3JlL2xpc3QtaXRlbXckYjg1OGMzMjAtZDliMC00MWEyLWI4YzQtNTQ0Mzc5M2QyNGFleHcTPGxpPkZld2VyIGJ1Z3M8L2xpPncOY29yZS9saXN0LWl0ZW13JDhlMmUxMTQ0LWUwODMtNGMwZi1hZDZiLThiZWM1ZTA1ZGNjZHh3HjxsaT5DbGVhbmVyIGRvY3VtZW50YXRpb248L2xpPncOY29yZS9saXN0LWl0ZW13JGJlYjk5OWVmLTJkN2UtNDQ4MS1iNDIyLWE5NzY2NDU4NDY0M3h3KDxsaT5IZWxwcyBsYXJnZSB0ZWFtcyBtYWludGFpbiBjb2RlPC9saT53DmNvcmUvbGlzdC1pdGVtdyQxODNmYTJiYy02YzBlLTRjNzItYjQzNi1iNDQwNWI2YTgyNTB4dxc8cD5QeXRob24gc3VwcG9ydHM6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyRjYThjYmFiMS03YjE3LTRhOTMtYTNjZS1iZDU3YzllZjljMTN4dxE8dWw+CgoKCgoKCgo8L3VsPncJY29yZS9saXN0eXcAf39\/f39\/f39\/f39\/f393JGQ2MWI0OWNlLWUxOTItNDE5OS1iMTQ2LTkyYzJmMmQxMjljYXh3JjxsaT5CYXNpYyB0eXBlcyAoaW50LCBzdHIsIGZsb2F0KTwvbGk+dw5jb3JlL2xpc3QtaXRlbXckMGUyMjVkZGItODYwZi00NTRkLWFkYzktMmJjZTcwN2IxNDI5eHcyPGxpPkdlbmVyaWMgdHlwZXMgKGxpc3RbaW50XSwgZGljdFtzdHIsIGludF0pPC9saT53DmNvcmUvbGlzdC1pdGVtdyRkMzU5MTQ1Yy0yMWRkLTQ1NGYtYWMxZi05ZWY0ZmMwMmFlMjZ4dyc8bGk+T3B0aW9uYWwgdHlwZXMgKE9wdGlvbmFsW3N0cl0pPC9saT53DmNvcmUvbGlzdC1pdGVtdyQ0NTYzZDk4Mi1jZjlmLTRmZjktOTQ4ZS0wYWYxYjg4ZGNjMTB4dyA8bGk+VW5pb24gdHlwZXMgKGludCB8IHN0cik8L2xpPncOY29yZS9saXN0LWl0ZW13JDc4MGRkOGViLWRlZDQtNDdkOC1iZTRkLTQ1ZTc5ZDMwMGE4NHh3IDxsaT5DdXN0b20gY2xhc3NlcyBhcyB0eXBlczwvbGk+dw5jb3JlL2xpc3QtaXRlbXckNDZiODUzMzItOWQ4Ny00Y2VhLWI3NGItZGQzMDM2YjA5OTI4eHeGATxwPlR5cGUgaGludHMgYnJpZGdlIHRoZSBnYXAgYmV0d2VlbiBQeXRob27igJlzIGR5bmFtaWMgbmF0dXJlIGFuZCBtb2Rlcm4gZGV2ZWxvcG1lbnQgcHJhY3RpY2VzIHJlcXVpcmluZyBjb25zaXN0ZW5jeSBhbmQgY2xhcml0eS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDhhZmE2ODU4LWQ3YjctNDkwNC04YzJjLTgxYWExNmRkYzJkZXh3NjxwPjxzdHJvbmc+QWR2YW5jZWQgYW5kIEN1c3RvbSBEYXRhIFR5cGVzPC9zdHJvbmc+PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQyZmViNzVmNC0zMTdjLTQ2N2ItOTlmMy1iNWZkYTk5ZmYzNDJ4d1k8cD5QeXRob24gYWxsb3dzIGNyZWF0aW5nIDxzdHJvbmc+Y3VzdG9tIGNsYXNzZXM8L3N0cm9uZz4gdG8gc2VydmUgYXMgbmV3IGRhdGEgdHlwZXMuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRhNjcwZDA2Mi0zZDAyLTQxOTQtOTFjYy0zMmNkOWRmOWRkNDR4dxU8cD5jbGFzcyBWZWhpY2xlOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckMTIyYzdiNzYtNGI4Mi00NzRhLTgwNTktY2I4YTFhMWQyYjNleHdKPHA+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZGVmIF9faW5pdF9fKHNlbGYsIG1vZGVsOiBzdHIsIHNwZWVkOiBpbnQpOjwvcD53DmNvcmUvcGFyYWdyYXBoeXckM2Q3NzJiNmEtMjM0My00ZDNkLTk0ZDMtMWQ4ZTkzNzFjNjc1eHdJPHA+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7c2VsZi5tb2RlbCA9IG1vZGVsPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQwZTMyMzEwYS0zNjUzLTQ3ZGItYjYyYy01M2M2OWRkNmNlODh4d0k8cD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtzZWxmLnNwZWVkID0gc3BlZWQ8L3A+dw5jb3JlL3BhcmFncmFwaHl3JGFkYjM2MDg2LWQ2NzQtNDc0ZC1iZGFhLWUzMjI5OWI5ZjkzNXh3NjxwPkFkZGl0aW9uYWxseSwgYWR2YW5jZWQgZGF0YSBzdHJ1Y3R1cmVzIGluY2x1ZGU6PC9wPncOY29yZS9wYXJhZ3JhcGh5dyRjNGFkZjYxNC02M2IwLTRjNDktOWNhOS0wZDAwYjM0YmJlYTl4dxE8dWw+CgoKCgoKCgo8L3VsPncJY29yZS9saXN0eXcAf39\/f39\/f39\/f39\/f393JDVhMGEwMzA3LWFlYTctNGY5Ny05ZWNiLTc1NTI4OTYwNDVhZXh3EzxsaT5OYW1lZFR1cGxlPC9saT53DmNvcmUvbGlzdC1pdGVtdyQxZGQ0OWVhNC1hNTNkLTRkZGYtOWI1OS1jYTFhMjgwNzA2ZGZ4dxQ8bGk+ZGF0YWNsYXNzZXM8L2xpPncOY29yZS9saXN0LWl0ZW13JDA0YWQ1NGNjLTc5ZGEtNDkzMi1hMWNmLTI4Mzc5ZGE4ZWQwNXh3DTxsaT5FbnVtPC9saT53DmNvcmUvbGlzdC1pdGVtdyQ3NThjMDlhZC02YjUzLTRkZWQtODA5Yy05NjI3NGU2ZDc3OWZ4dxI8bGk+VHlwZWREaWN0PC9saT53DmNvcmUvbGlzdC1pdGVtdyQxZGIxYzI3YS0yMDMxLTQ2ZWYtOTc5YS1mZmIwYzQzZWIyY2Z4dx08bGk+VXNlci1kZWZpbmVkIGNsYXNzZXM8L2xpPncOY29yZS9saXN0LWl0ZW13JGZiOWYzYzViLTEwODgtNDNiMi05ZTNkLTU1NTUzNGUwNTAwZXh3UjxwPlRoZXNlIHByb3ZpZGUgZmxleGliaWxpdHkgdG8gc3RydWN0dXJlIGRhdGEgb3B0aW1hbGx5IGZvciBjb21wbGV4IHByb2plY3RzLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckYTMxNWFlYjktODRkMy00NjNhLTk1Y2ItOGQzOWU4OGJkNGRmeHdLPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPkNvbW1vbiBNaXN0YWtlcyBhbmQgVGlwczwvc3Ryb25nPjwvaDI+dwxjb3JlL2hlYWRpbmd9AnckNDFmMjFmOWUtOTgyNi00ZDFiLWE4NDAtZmI1YjYyZTEzOGYweHcVPG9sPgoKCgoKCgoKCgoKCjwvb2w+dwljb3JlL2xpc3R4dwB\/f39\/f39\/f39\/f39\/f3ckZmE2YmM1MTAtMzQyMi00ZjJhLWJjMmQtZDdiYWUyNGQxNjU2eHctPGxpPkNvbmZ1c2luZyBtdXRhYmxlIHZzIGltbXV0YWJsZSB0eXBlczwvbGk+dw5jb3JlL2xpc3QtaXRlbXckMWRiNDgyZTUtZjVkOC00NTM5LWFkN2ItODA1M2M1ZmEzYjdkeHcqPGxpPlVzaW5nIGxpc3RzIHdoZXJlIHNldHMgYXJlIG5lZWRlZDwvbGk+dw5jb3JlL2xpc3QtaXRlbXckMDI0OGE5YzItNzU2ZC00MjVmLWFjYzMtZDQxMGRhZDgyZTdjeHcyPGxpPk1pc3VzaW5nIGZsb2F0cyBpbiBmaW5hbmNpYWwgY2FsY3VsYXRpb25zPC9saT53DmNvcmUvbGlzdC1pdGVtdyRlZWFkOGJhYS1mOTMyLTQ1N2ItODA1Mi0zNzQzNDlmYmFhZGV4dyI8bGk+RmFpbGluZyB0byB1c2UgdHlwZSBoaW50czwvbGk+dw5jb3JlL2xpc3QtaXRlbXckYmI2MmEwNzUtZTAyNy00YjkyLThhMmQtNWMyOTRiY2Q5ZDk1eHc5PGxpPlVuaW50ZW50aW9uYWxseSBtb2RpZnlpbmcgc2hhcmVkIGRhdGEgc3RydWN0dXJlczwvbGk+dw5jb3JlL2xpc3QtaXRlbXckZDc4ZmU4NGYtNjg4MC00ZWQ1LTkyODgtOTJlMGZjN2E1NjkweHc4PGxpPk92ZXJ1c2luZyBkaWN0aW9uYXJpZXMgd2hlcmUgY2xhc3NlcyBhcmUgYmV0dGVyPC9saT53DmNvcmUvbGlzdC1pdGVtdyRkNGNjNGYzNS1kODk4LTQ2MjYtOTJjZi04ZThhMDIzMWMyYjZ4dzQ8bGk+QXZvaWRpbmcgYnVpbHQtaW5zIGxpa2UgZW51bWVyYXRlLCB6aXAsIG1hcDwvbGk+dw5jb3JlL2xpc3QtaXRlbXckNDVhNGYwNzktNGE0ZC00OGVjLWFhODQtMTFiOTFjMmQyOGNjeHdiPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC10aXBzLWZvci1kZXZlbG9wZXJzIj48c3Ryb25nPlRpcHMgZm9yIGRldmVsb3BlcnM6PC9zdHJvbmc+PC9oMz53DGNvcmUvaGVhZGluZ30DdxVoLXRpcHMtZm9yLWRldmVsb3BlcnN3JGJjM2M2YjYwLTYzYzgtNGNhYy1iY2ZkLThkODg2ZTkwYTBiOXh3Dzx1bD4KCgoKCgo8L3VsPncJY29yZS9saXN0eXcAf39\/f39\/f39\/f39\/f393JDNjZjgzNDgwLWNiZjMtNGEzNS04ZGYzLWMwZDU2NWE4OTkzNnh3NzxsaT5BbHdheXMgY2hvb3NlIHRoZSBzbWFsbGVzdCBlZmZlY3RpdmUgZGF0YSB0eXBlPC9saT53DmNvcmUvbGlzdC1pdGVtdyQxYmZhYTZkZC00ZTc1LTQ2OGYtYTVmNS1jYWM3M2UyMjIyYzR4dy88bGk+VXNlIHR5cGUgaGludHMgaW4gYWxsIG1vZGVybiBjb2RlYmFzZXM8L2xpPncOY29yZS9saXN0LWl0ZW13JDVhZDljMDQxLTNmNzQtNDcxZC1iMzdlLThmOTM1MTA1MjBmMnh3KjxsaT5QcmVmZXIgaW1tdXRhYmxlIHR5cGVzIGZvciBzYWZldHk8L2xpPncOY29yZS9saXN0LWl0ZW13JGZjOWZkYjUyLWJiMjYtNGZlMy05MmE1LWY5NjcyMWM1ZjE2Y3h3PTxsaT5Vc2Ugc3RhbmRhcmQgbGlicmFyaWVzIGJlZm9yZSByZWludmVudGluZyBzdHJ1Y3R1cmVzPC9saT53DmNvcmUvbGlzdC1pdGVtdyRjYjU1Nzc0Yi05OTZlLTQ4YTQtYmRhMy1jYjc2ZmZjMjI1OTh4dz08aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+Q29uY2x1c2lvbjwvc3Ryb25nPjwvaDI+dwxjb3JlL2hlYWRpbmd9AnckZTAyMTJhZDAtMjc1Yy00NzhlLWIzNzQtMWQ4ZTljZjlhZjVkeHf2ATxwPlB5dGhvbiBkYXRhIHR5cGVzIGFyZSB2ZXJ5IGltcG9ydGFudCBmb3IgZXZlcnkgcHJvZ3JhbSBzY3JpcHQgYW5kIHN5c3RlbSBtYWRlIHdpdGggUHl0aG9uLiBUaGV5IGhlbHAgeW91IHdvcmsgd2l0aCBudW1iZXJzLCB0ZXh0IGxpc3RzIGFuZCBvdGhlciBkYXRhIGVhc2lseS4gS25vd2luZyBkYXRhIHR5cGVzIGlzIGltcG9ydGFudCB0byB3cml0ZSBjbGVhbiwgZWFzeSB0byB1bmRlcnN0YW5kIGFuZCBmYXN0IGNvZGUuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyRjYjEzZWExZC1mNmNhLTRjMTItODUxZC02MDgyMTNmYmEzNDF4d58BPHA+QXMgUHl0aG9uIGdyb3dzIGFuZCBpbXByb3ZlcyBsZWFybmluZywgYnVpbHQgaW4gdHlwZXMsIHR5cGUgaGludHMgYW5kIGN1c3RvbSBkYXRhIHN0cnVjdHVyZXMgd2lsbCBoZWxwIHlvdSBtYWtlIG1vZGVybiBwcm9mZXNzaW9uYWwgYW5kIGJpZ2dlciBwcm9ncmFtcy48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDNkODI3YmM5LWJjZTItNDg5NS04NmNhLTc4ZGMxMzQ2MjJiYnh3NzxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz5GQVFzPC9zdHJvbmc+PC9oMj53DGNvcmUvaGVhZGluZ30CdyQ5YmU1YjViNC1lM2QwLTQwYWMtOGI2NS1jZGY2YzRlNjM3MTR4d40BPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC0xLXdoeS1hcmUtZGF0YS10eXBlcy1pbXBvcnRhbnQtaW4tcHl0aG9uIj48c3Ryb25nPjEuIFdoeSBhcmUgZGF0YSB0eXBlcyBpbXBvcnRhbnQgaW4gUHl0aG9uPzwvc3Ryb25nPjwvaDM+dwxjb3JlL2hlYWRpbmd9A3cqaC0xLXdoeS1hcmUtZGF0YS10eXBlcy1pbXBvcnRhbnQtaW4tcHl0aG9udyQyMjZmYTM2OC1jYzI1LTQ3YTEtYmU1NC05M2UzOWVlNWNlYzN4d0c8cD5UaGV5IGRldGVybWluZSBob3cgZGF0YSBiZWhhdmVzIGFuZCB3aGF0IG9wZXJhdGlvbnMgYXJlIGFsbG93ZWQuPC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ1ODMxZmE2Yy1lZjBlLTQ1MWEtYjI1NC0xNjg2YTM3ZmQzOGR4d4MBPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC0yLWRvZXMtcHl0aG9uLXN1cHBvcnQtc3RhdGljLXR5cGluZyI+PHN0cm9uZz4yLiBEb2VzIFB5dGhvbiBzdXBwb3J0IHN0YXRpYyB0eXBpbmc\/PC9zdHJvbmc+PC9oMz53DGNvcmUvaGVhZGluZ30DdyVoLTItZG9lcy1weXRob24tc3VwcG9ydC1zdGF0aWMtdHlwaW5ndyQ5M2NjZGVjYS01NTBiLTQwYzgtYTdlZS0zYjhmZTAyN2FiNTJ4dzk8cD5ZZXMsIHRocm91Z2ggdHlwZSBoaW50cyBpbnRyb2R1Y2VkIGluIFB5dGhvbiAzLjUrLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckOGI5Mjg1MjgtMDI2OC00M2FlLTg2NDgtNDNmNGNkNjY2OWYxeHd1PGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC0zLWFyZS1saXN0cy1vci10dXBsZXMtZmFzdGVyIj48c3Ryb25nPjMuIEFyZSBsaXN0cyBvciB0dXBsZXMgZmFzdGVyPzwvc3Ryb25nPjwvaDM+dwxjb3JlL2hlYWRpbmd9A3ceaC0zLWFyZS1saXN0cy1vci10dXBsZXMtZmFzdGVydyRhYTQ0YjFhMy04NjU0LTRiOTUtOTI3Yy01YmQzYzQxYjY4YzJ4dzQ8cD5UdXBsZXMgYXJlIGZhc3RlciBiZWNhdXNlIHRoZXkgYXJlIGltbXV0YWJsZS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDAzNGJmY2Q0LTViYjQtNDIyOS05YWFiLTYzNGM3NDIxZmY0MHh3owE8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTQtd2hhdC10eXBlLXNob3VsZC1pLXVzZS1mb3ItZmluYW5jaWFsLWNhbGN1bGF0aW9ucyI+PHN0cm9uZz40LiBXaGF0IHR5cGUgc2hvdWxkIEkgdXNlIGZvciBmaW5hbmNpYWwgY2FsY3VsYXRpb25zPzwvc3Ryb25nPjwvaDM+dwxjb3JlL2hlYWRpbmd9A3c1aC00LXdoYXQtdHlwZS1zaG91bGQtaS11c2UtZm9yLWZpbmFuY2lhbC1jYWxjdWxhdGlvbnN3JGE1YTE0YzMzLTRiM2YtNGQ3Mi05MGNlLWYwOGJhZjk1ZjhlNnh3LDxwPlVzZSB0aGUgZGVjaW1hbCBtb2R1bGUgZm9yIHByZWNpc2lvbi48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDFiOGRiMTQyLTRiNjAtNDhjMC1hYzNjLTYyYmM1NzhlMWQzNnh3pQE8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTUtd2hhdC1pcy10aGUtbW9zdC1jb21tb25seS11c2VkLWRhdGEtdHlwZS1pbi1weXRob24iPjxzdHJvbmc+NS4gV2hhdCBpcyB0aGUgbW9zdCBjb21tb25seSB1c2VkIGRhdGEgdHlwZSBpbiBQeXRob24\/PC9zdHJvbmc+PC9oMz53DGNvcmUvaGVhZGluZ30DdzZoLTUtd2hhdC1pcy10aGUtbW9zdC1jb21tb25seS11c2VkLWRhdGEtdHlwZS1pbi1weXRob253JGYzNDI0YmVlLWQ0YTktNGVmYi05MzEwLTIxNWIzNDA3NTEzZXh3NzxwPkxpc3RzIGFuZCBkaWN0aW9uYXJpZXMgYXJlIHRoZSBtb3N0IHdpZGVseSB1c2VkLjwvcD53DmNvcmUvcGFyYWdyYXBoeXtCeeShbD7QAHtB4pR+IEAAAHckM2Y3OTExMDMtMTYxZC00MzhhLWI2NDItZTNlZTVmOWJkOTc0dyQ3MGMzMTAyZi05MmJjLTRlZmItODZkOS03MzI2YjliZGY0ZDJ3JDQ4MTUxZWNmLWI5ZTgtNDZkYi05MjJjLWVmOGI0MjUyY2VhOHckMTcxYjU1YjUtMGE2Ny00ZDhmLTk0MjYtOGIwN2Y4OWRiN2E1eHcuPHA+eCA9IDEwJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICMgaW50PC9wPncOY29yZS9wYXJhZ3JhcGh5dyQ3MGMzMTAyZi05MmJjLTRlZmItODZkOS03MzI2YjliZGY0ZDJ\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f391CHYBBWNlbGxzdQJ2Bgdjb250ZW50dyo8c3Ryb25nPsKgIMKgIMKgIMKgIMKgIMKgIFB1cnBvc2U8L3N0cm9uZz4DdGFndwJ0ZAVzY29wZX8FYWxpZ25\/B2NvbHNwYW5\/B3Jvd3NwYW5\/dgYHY29udGVudHcfPHN0cm9uZz5CZXN0IERhdGEgVHlwZTwvc3Ryb25nPgN0YWd3AnRkBXNjb3BlfwVhbGlnbn8HY29sc3Bhbn8Hcm93c3Bhbn92AQVjZWxsc3UCdgYHY29udGVudHcfU3RvcmUgc3RydWN0dXJlZCBrZXktdmFsdWUgZGF0YQN0YWd3AnRkBXNjb3BlfwVhbGlnbn8HY29sc3Bhbn8Hcm93c3Bhbn92Bgdjb250ZW50dwRkaWN0A3RhZ3cCdGQFc2NvcGV\/BWFsaWdufwdjb2xzcGFufwdyb3dzcGFuf3YBBWNlbGxzdQJ2Bgdjb250ZW50dxlNYWludGFpbiBvcmRlciArIGluZGV4aW5nA3RhZ3cCdGQFc2NvcGV\/BWFsaWdufwdjb2xzcGFufwdyb3dzcGFuf3YGB2NvbnRlbnR3BGxpc3QDdGFndwJ0ZAVzY29wZX8FYWxpZ25\/B2NvbHNwYW5\/B3Jvd3NwYW5\/dgEFY2VsbHN1AnYGB2NvbnRlbnR3HlByb3RlY3QgZGF0YSBmcm9tIG1vZGlmaWNhdGlvbgN0YWd3AnRkBXNjb3BlfwVhbGlnbn8HY29sc3Bhbn8Hcm93c3Bhbn92Bgdjb250ZW50dwV0dXBsZQN0YWd3AnRkBXNjb3BlfwVhbGlnbn8HY29sc3Bhbn8Hcm93c3Bhbn92AQVjZWxsc3UCdgYHY29udGVudHcVRmFzdCBtZW1iZXJzaGlwIHRlc3RzA3RhZ3cCdGQFc2NvcGV\/BWFsaWdufwdjb2xzcGFufwdyb3dzcGFuf3YGB2NvbnRlbnR3A3NldAN0YWd3AnRkBXNjb3BlfwVhbGlnbn8HY29sc3Bhbn8Hcm93c3Bhbn92AQVjZWxsc3UCdgYHY29udGVudHchUmVhbCBudW1iZXJzIG9yIGRlY2ltYWwgcHJlY2lzaW9uA3RhZ3cCdGQFc2NvcGV\/BWFsaWdufwdjb2xzcGFufwdyb3dzcGFuf3YGB2NvbnRlbnR3D2Zsb2F0IC8gZGVjaW1hbAN0YWd3AnRkBXNjb3BlfwVhbGlnbn8HY29sc3Bhbn8Hcm93c3Bhbn92AQVjZWxsc3UCdgYHY29udGVudHcVU3RvcmUgcmF3IGJpbmFyeSBkYXRhA3RhZ3cCdGQFc2NvcGV\/BWFsaWdufwdjb2xzcGFufwdyb3dzcGFuf3YGB2NvbnRlbnR3BWJ5dGVzA3RhZ3cCdGQFc2NvcGV\/BWFsaWdufwdjb2xzcGFufwdyb3dzcGFuf3YBBWNlbGxzdQJ2Bgdjb250ZW50dxhVc2Ugc2ltcGxlIHllcy9ubyB2YWx1ZXMDdGFndwJ0ZAVzY29wZX8FYWxpZ25\/B2NvbHNwYW5\/B3Jvd3NwYW5\/dgYHY29udGVudHcEYm9vbAN0YWd3AnRkBXNjb3BlfwVhbGlnbn8HY29sc3Bhbn8Hcm93c3Bhbn9\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f39\/f38BguKPpQmgAYALLi5NlQUZxhwZihQZwAcZqAIrLiaKBGnfAW3VAWPhAWe3Azv7B4IBgAMZjAUZ2AcZ6gQZqwUZmwQZ1gQZ2wIZswKMAf4CGfMDGfIHGYYDGYAEGf4DGYsBGdAFZY4BGdEBbZABb\/kBGcUDGYIDGZMGGaICkgEW8gQUkwEnGaoCnQEnGYkFKS4raBmIAxmlB0ouSS5JjgEZ6AQZmgWCAScZxwitAYwBowF+lQF5wwFxxQHOBwDrASgCUMgEAAIDAQOsFAACAwED\/Q0AAgMBA+sDAAIDAQOZAQUBBSIFqAoFvAYAAgMBA8gDAAIDAQPTAwACAwED9gIAAgMBA7ACAAIDAQPXAgACAwEDiwIAAgMBA5cBAAIDAQONAwACAwEDrwIAAgMBA+0DAAIDAQPCAQACAwED4gEAAgMBA40CAAIDAQPyAwACAwED2QIAAgMBA9QBAAIDAQOOAQACAwEDlQMAAgMBA6QBAAEEAQNCAAIDAQOQAgACAwEDgQMDDhcoAAIDAQOUAQACAwED9AMXNAIBLBoCASySEAgzDQ==\",\"updateId\":127623160}","footnotes":""},"categories":[910,1],"tags":[],"class_list":["post-15109","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-community","category-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Complete Guide to Python Data Types (2026)<\/title>\n<meta name=\"description\" content=\"Learn all Python data types with clear examples, best practices, and modern use cases to write cleaner, faster, and more reliable code.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Complete Guide to Python Data Types (2026)\" \/>\n<meta property=\"og:description\" content=\"Learn all Python data types with clear examples, best practices, and modern use cases to write cleaner, faster, and more reliable code.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/\" \/>\n<meta property=\"og:site_name\" content=\"Utho\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/uthocloud\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-26T11:29:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-21T10:31:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/utho.com\/blog\/wp-content\/uploads\/A-Complete-Guide-to-Python-Data-Types-for-Modern-Developers.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"556\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Umesh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@uthocloud\" \/>\n<meta name=\"twitter:site\" content=\"@uthocloud\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Umesh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/\"},\"author\":{\"name\":\"Umesh\",\"@id\":\"https:\/\/utho.com\/blog\/#\/schema\/person\/f213e3fcf1ea5603ab66197a9c960b3c\"},\"headline\":\"A Complete Guide to Python Data Types for Modern Developers\",\"datePublished\":\"2025-12-26T11:29:47+00:00\",\"dateModified\":\"2026-05-21T10:31:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/\"},\"wordCount\":2168,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/utho.com\/blog\/#organization\"},\"articleSection\":[\"Community\",\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/\",\"url\":\"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/\",\"name\":\"Complete Guide to Python Data Types (2026)\",\"isPartOf\":{\"@id\":\"https:\/\/utho.com\/blog\/#website\"},\"datePublished\":\"2025-12-26T11:29:47+00:00\",\"dateModified\":\"2026-05-21T10:31:29+00:00\",\"description\":\"Learn all Python data types with clear examples, best practices, and modern use cases to write cleaner, faster, and more reliable code.\",\"breadcrumb\":{\"@id\":\"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/utho.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Complete Guide to Python Data Types for Modern Developers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/utho.com\/blog\/#website\",\"url\":\"https:\/\/utho.com\/blog\/\",\"name\":\"Utho\",\"description\":\"Tutorials Guides for Linux, Windows and Developers\",\"publisher\":{\"@id\":\"https:\/\/utho.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/utho.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/utho.com\/blog\/#organization\",\"name\":\"Utho\",\"url\":\"https:\/\/utho.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/utho.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/utho.com\/blog\/wp-content\/uploads\/utho_logo_blue.png\",\"contentUrl\":\"https:\/\/utho.com\/blog\/wp-content\/uploads\/utho_logo_blue.png\",\"width\":1147,\"height\":446,\"caption\":\"Utho\"},\"image\":{\"@id\":\"https:\/\/utho.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/uthocloud\",\"https:\/\/twitter.com\/uthocloud\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/utho.com\/blog\/#\/schema\/person\/f213e3fcf1ea5603ab66197a9c960b3c\",\"name\":\"Umesh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/utho.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/afa76ed351f7257e667140e6a5ad997a47e4c0c9e09cb1f81f91e75f72906613?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/afa76ed351f7257e667140e6a5ad997a47e4c0c9e09cb1f81f91e75f72906613?s=96&d=mm&r=g\",\"caption\":\"Umesh\"},\"url\":\"https:\/\/utho.com\/blog\/author\/profito\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Complete Guide to Python Data Types (2026)","description":"Learn all Python data types with clear examples, best practices, and modern use cases to write cleaner, faster, and more reliable code.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/","og_locale":"en_US","og_type":"article","og_title":"Complete Guide to Python Data Types (2026)","og_description":"Learn all Python data types with clear examples, best practices, and modern use cases to write cleaner, faster, and more reliable code.","og_url":"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/","og_site_name":"Utho","article_publisher":"https:\/\/www.facebook.com\/uthocloud","article_published_time":"2025-12-26T11:29:47+00:00","article_modified_time":"2026-05-21T10:31:29+00:00","og_image":[{"width":1024,"height":556,"url":"https:\/\/utho.com\/blog\/wp-content\/uploads\/A-Complete-Guide-to-Python-Data-Types-for-Modern-Developers.jpg","type":"image\/jpeg"}],"author":"Umesh","twitter_card":"summary_large_image","twitter_creator":"@uthocloud","twitter_site":"@uthocloud","twitter_misc":{"Written by":"Umesh","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/#article","isPartOf":{"@id":"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/"},"author":{"name":"Umesh","@id":"https:\/\/utho.com\/blog\/#\/schema\/person\/f213e3fcf1ea5603ab66197a9c960b3c"},"headline":"A Complete Guide to Python Data Types for Modern Developers","datePublished":"2025-12-26T11:29:47+00:00","dateModified":"2026-05-21T10:31:29+00:00","mainEntityOfPage":{"@id":"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/"},"wordCount":2168,"commentCount":0,"publisher":{"@id":"https:\/\/utho.com\/blog\/#organization"},"articleSection":["Community","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/utho.com\/blog\/complete-guide-python-data-types\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/","url":"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/","name":"Complete Guide to Python Data Types (2026)","isPartOf":{"@id":"https:\/\/utho.com\/blog\/#website"},"datePublished":"2025-12-26T11:29:47+00:00","dateModified":"2026-05-21T10:31:29+00:00","description":"Learn all Python data types with clear examples, best practices, and modern use cases to write cleaner, faster, and more reliable code.","breadcrumb":{"@id":"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/utho.com\/blog\/complete-guide-python-data-types\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/utho.com\/blog\/complete-guide-python-data-types\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/utho.com\/blog\/"},{"@type":"ListItem","position":2,"name":"A Complete Guide to Python Data Types for Modern Developers"}]},{"@type":"WebSite","@id":"https:\/\/utho.com\/blog\/#website","url":"https:\/\/utho.com\/blog\/","name":"Utho","description":"Tutorials Guides for Linux, Windows and Developers","publisher":{"@id":"https:\/\/utho.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/utho.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/utho.com\/blog\/#organization","name":"Utho","url":"https:\/\/utho.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/utho.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/utho.com\/blog\/wp-content\/uploads\/utho_logo_blue.png","contentUrl":"https:\/\/utho.com\/blog\/wp-content\/uploads\/utho_logo_blue.png","width":1147,"height":446,"caption":"Utho"},"image":{"@id":"https:\/\/utho.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/uthocloud","https:\/\/twitter.com\/uthocloud"]},{"@type":"Person","@id":"https:\/\/utho.com\/blog\/#\/schema\/person\/f213e3fcf1ea5603ab66197a9c960b3c","name":"Umesh","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/utho.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/afa76ed351f7257e667140e6a5ad997a47e4c0c9e09cb1f81f91e75f72906613?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/afa76ed351f7257e667140e6a5ad997a47e4c0c9e09cb1f81f91e75f72906613?s=96&d=mm&r=g","caption":"Umesh"},"url":"https:\/\/utho.com\/blog\/author\/profito\/"}]}},"_links":{"self":[{"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/posts\/15109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/comments?post=15109"}],"version-history":[{"count":4,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/posts\/15109\/revisions"}],"predecessor-version":[{"id":15354,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/posts\/15109\/revisions\/15354"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/media\/15110"}],"wp:attachment":[{"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/media?parent=15109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/categories?post=15109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/utho.com\/blog\/wp-json\/wp\/v2\/tags?post=15109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}