From 448915aadfac8abcfad44316e935a2528a0e4f16 Mon Sep 17 00:00:00 2001 From: ken-werner-sp Date: Wed, 1 Apr 2026 21:48:24 -0700 Subject: [PATCH 1/4] POC of XPath Evaluator This is a POC for the frontend of an XPath Evaluator tool, based entirely on the existing JSON Path Evaluator. Default values are a fake generated WorkDay result and XPath query for LastName. Relies upon a Lambda for XPath parsing. Errors are minimally exposed and will primarily result in a lack of output. --- docusaurus.config.ts | 4 +- navbar.ts | 1 + .../xpath/ImplementationDropdown/index.tsx | 112 +++++++++ src/components/xpath/InputTerminal/index.tsx | 64 +++++ src/components/xpath/ResultTerminal/index.tsx | 54 ++++ .../xpath/TerminalFontSizeDropdown/index.tsx | 114 +++++++++ .../xpath/XPathQueryInput/index.tsx | 69 ++++++ src/components/xpath/XPathRootInput/index.tsx | 69 ++++++ src/components/xpath/useDebounce.ts | 16 ++ src/pages/tools/EscapeTool.module.css | 12 +- src/pages/tools/sample.xml.json | 1 + src/pages/tools/xpath-evaluator.tsx | 233 ++++++++++++++++++ src/pages/tools/xpath.module.css | 96 ++++++++ src/services/XPathService.ts | 58 +++++ 14 files changed, 896 insertions(+), 7 deletions(-) create mode 100644 src/components/xpath/ImplementationDropdown/index.tsx create mode 100644 src/components/xpath/InputTerminal/index.tsx create mode 100644 src/components/xpath/ResultTerminal/index.tsx create mode 100644 src/components/xpath/TerminalFontSizeDropdown/index.tsx create mode 100644 src/components/xpath/XPathQueryInput/index.tsx create mode 100644 src/components/xpath/XPathRootInput/index.tsx create mode 100644 src/components/xpath/useDebounce.ts create mode 100644 src/pages/tools/sample.xml.json create mode 100644 src/pages/tools/xpath-evaluator.tsx create mode 100644 src/pages/tools/xpath.module.css create mode 100644 src/services/XPathService.ts diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 90298169e6dbe..7bbd7d58ed350 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -86,7 +86,9 @@ const config: Config = { { name: 'twitter:image', content: 'https://developer.sailpoint.com/img/SailPoint-Logo-OG.png' }, // Content Security Policy - { 'http-equiv': 'Content-Security-Policy', content: "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://code.jquery.com https://www.googletagmanager.com https://cdn.jsdelivr.net https://cdn.cookielaw.org https://googleads.g.doubleclick.net; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://p.typekit.net https://use.typekit.net; img-src 'self' data: https: http:; font-src 'self' data: https://cdn.jsdelivr.net https://use.typekit.net https://cdnjs.cloudflare.com; connect-src 'self' http://localhost:3000 https://nug87yusrg.execute-api.us-east-1.amazonaws.com https://*.algolia.net https://*.algolianet.com https://www.googletagmanager.com https://www.google.com https://analytics.google.com https://developer.sailpoint.com https://cdn.cookielaw.org https://stats.g.doubleclick.net https://googleads.g.doubleclick.net https://*.api.identitynow.com https://*.api.identitynow-demo.com; frame-src 'self' https://www.googletagmanager.com https://www.youtube.com https://play.vidyard.com; worker-src 'self' blob:;" }, + { 'http-equiv': 'Content-Security-Policy', + content: "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://code.jquery.com https://www.googletagmanager.com https://cdn.jsdelivr.net https://cdn.cookielaw.org https://googleads.g.doubleclick.net; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://p.typekit.net https://use.typekit.net; img-src 'self' data: https: http:; font-src 'self' data: https://cdn.jsdelivr.net https://use.typekit.net https://cdnjs.cloudflare.com; connect-src 'self' http://localhost:3000 https://nug87yusrg.execute-api.us-east-1.amazonaws.com https://o2352gowwy55a4vviyswr76lxu0ednjs.lambda-url.us-east-2.on.aws https://*.algolia.net https://*.algolianet.com https://www.googletagmanager.com https://www.google.com https://analytics.google.com https://developer.sailpoint.com https://cdn.cookielaw.org https://stats.g.doubleclick.net https://googleads.g.doubleclick.net https://*.api.identitynow.com https://*.api.identitynow-demo.com; frame-src 'self' https://www.googletagmanager.com https://www.youtube.com https://play.vidyard.com; worker-src 'self' blob:;" }, + ], algolia: { appId: 'TB01H1DFAM', diff --git a/navbar.ts b/navbar.ts index ae0c094a36995..795922cb1bdef 100644 --- a/navbar.ts +++ b/navbar.ts @@ -34,6 +34,7 @@ const navbarConfig = { { label: 'CLI', to: '/docs/tools/cli' }, { label: 'Escaping Tool Formatter', to: '/tools/escaping-tool-formatter' }, { label: 'JSON Path Evaluator', to: '/tools/json-path-evaluator' }, + { label: 'XPath Evaluator', to: '/tools/xpath-evaluator' }, { label: 'Rule Development Kit', to: '/docs/tools/rule-development-kit' }, { label: 'UI Development Kit', to: '/docs/tools/ui-development-kit' }, { label: 'Velocity PlayGround', to: '/tools/velocity-playground' }, diff --git a/src/components/xpath/ImplementationDropdown/index.tsx b/src/components/xpath/ImplementationDropdown/index.tsx new file mode 100644 index 0000000000000..234420693703b --- /dev/null +++ b/src/components/xpath/ImplementationDropdown/index.tsx @@ -0,0 +1,112 @@ +import React, { useState, FocusEvent, ChangeEvent } from 'react'; +import FormControl from '@mui/material/FormControl'; +import InputLabel from '@mui/material/InputLabel'; +import Select from '@mui/material/Select'; +import MenuItem from '@mui/material/MenuItem'; +import { useColorMode } from '@docusaurus/theme-common'; +import { createTheme, ThemeProvider } from '@mui/material/styles'; + +// Define prop types +interface ImplementationDropdownProps { + implementation: string; + onImplementationChange: (value: string) => void; + onFocus?: (event: FocusEvent) => void; + onBlur?: (event: FocusEvent) => void; +} + +const ImplementationDropdown: React.FC = ({ + implementation, + onImplementationChange, + onFocus, + onBlur, +}) => { + const { colorMode } = useColorMode(); + const [isFocused, setIsFocused] = useState(false); + const [expanded, setExpanded] = useState(false); + + const theme = createTheme({ + components: { + MuiOutlinedInput: { + styleOverrides: { + root: { + '& .MuiOutlinedInput-notchedOutline': { + borderColor: colorMode === 'dark' ? '#ffffff' : 'initial', + borderWidth: 1, + }, + '&.Mui-focused .MuiOutlinedInput-notchedOutline': { + borderColor: colorMode === 'dark' ? 'rgb(115,200,235)' : 'rgb(4,125,246)', + }, + '&:hover .MuiOutlinedInput-notchedOutline': { + borderColor: colorMode === 'dark' ? 'rgb(115,200,235)' : 'rgb(4,125,246)', + }, + }, + }, + }, + MuiSelect: { + styleOverrides: { + icon: { + color: colorMode === 'dark' ? '#ffffff' : 'black', + }, + }, + }, + }, + }); + + const handleChange = (event: ChangeEvent<{ value: unknown }>) => { + onImplementationChange(event.target.value as string); + }; + + // Handle focus and blur state changes + const handleFocus = (event: FocusEvent) => { + setIsFocused(true); + if (onFocus) onFocus(event); + }; + + const handleBlur = (event: FocusEvent) => { + setIsFocused(false); + if (onBlur) onBlur(event); + }; + + // Handle dropdown expanded state + const handleDropdownOpen = () => setExpanded(true); + const handleDropdownClose = () => setExpanded(false); + + return ( + + + + Implementation + + + + + + ); +}; + +export default ImplementationDropdown; diff --git a/src/components/xpath/InputTerminal/index.tsx b/src/components/xpath/InputTerminal/index.tsx new file mode 100644 index 0000000000000..20906415062e2 --- /dev/null +++ b/src/components/xpath/InputTerminal/index.tsx @@ -0,0 +1,64 @@ +import React from 'react'; +import AceEditor from 'react-ace'; +import 'ace-builds/src-noconflict/mode-xml'; +import 'ace-builds/src-noconflict/mode-text'; +import 'ace-builds/src-noconflict/theme-github_dark'; +import 'ace-builds/src-noconflict/theme-github_light_default'; +import 'ace-builds/src-noconflict/ext-language_tools'; +import { useColorMode } from '@docusaurus/theme-common'; +import styles from '../../../pages/tools/xpath.module.css'; + +// Ensure ace is properly configured +declare const ace: any; +if (typeof ace !== 'undefined' && ace.config) { + ace.config.setModuleUrl( + 'ace/mode/json_worker', + new URL( + 'https://ajaxorg.github.io/ace-builds/src-noconflict/worker-xml.js' + ).toString(), + ); +} + +interface InputTerminalProps { + fontSize: string; + value: string; + onChange: (value: string) => void; + hasJsonParseError?: boolean; + mode?: 'xml' | 'text'; // 🔄 new optional mode prop +} + +const InputTerminal: React.FC = ({ + fontSize, + value, + onChange, + hasJsonParseError = false, + mode = 'xml', // default to 'json' for backward compatibility +}) => { + const { colorMode } = useColorMode(); + + const terminalClass = hasJsonParseError + ? styles.inputTerminalContainer + : styles.terminalContainerDefault; + + return ( +
+

Inputs

+ +
+ ); +}; + +export default InputTerminal; diff --git a/src/components/xpath/ResultTerminal/index.tsx b/src/components/xpath/ResultTerminal/index.tsx new file mode 100644 index 0000000000000..6ca944f2fe4f9 --- /dev/null +++ b/src/components/xpath/ResultTerminal/index.tsx @@ -0,0 +1,54 @@ +import React from 'react'; +import AceEditor from 'react-ace'; +import 'ace-builds/src-noconflict/mode-json'; +import 'ace-builds/src-noconflict/mode-text'; +import 'ace-builds/src-noconflict/theme-github_dark'; +import 'ace-builds/src-noconflict/theme-github_light_default'; +import 'ace-builds/src-noconflict/ext-language_tools'; +import { useColorMode } from '@docusaurus/theme-common'; +import styles from '../../../pages/tools/xpath.module.css'; + +// Ensure ace is properly configured +declare const ace: any; +if (typeof ace !== 'undefined' && ace.config) { + ace.config.setModuleUrl( + 'ace/mode/json_worker', + new URL( + 'https://ajaxorg.github.io/ace-builds/src-noconflict/worker-json.js' + ).toString(), + ); +} + +// Props interface with optional `mode` +interface ResultTerminalProps { + result: string; + fontSize: string; + mode?: 'json' | 'text'; +} + +const ResultTerminal: React.FC = ({ result, fontSize, mode = 'json' }) => { + const { colorMode } = useColorMode(); + + return ( +
+

Evaluation results

+ + +
+ ); +}; + +export default ResultTerminal; diff --git a/src/components/xpath/TerminalFontSizeDropdown/index.tsx b/src/components/xpath/TerminalFontSizeDropdown/index.tsx new file mode 100644 index 0000000000000..3188f2c2d3593 --- /dev/null +++ b/src/components/xpath/TerminalFontSizeDropdown/index.tsx @@ -0,0 +1,114 @@ +import React, { useState, ChangeEvent, FocusEvent } from 'react'; +import FormControl from '@mui/material/FormControl'; +import InputLabel from '@mui/material/InputLabel'; +import Select from '@mui/material/Select'; +import MenuItem from '@mui/material/MenuItem'; +import { createTheme, ThemeProvider } from '@mui/material/styles'; +import { useColorMode } from '@docusaurus/theme-common'; + +// Define props interface +interface TerminalFontSizeDropdownProps { + fontSize: string; + onFontSizeChange: (value: string) => void; + onFocus?: (event: FocusEvent) => void; + onBlur?: (event: FocusEvent) => void; +} + +const TerminalFontSizeDropdown: React.FC = ({ + fontSize, + onFontSizeChange, + onFocus, + onBlur, +}) => { + const { colorMode } = useColorMode(); + const [isFocused, setIsFocused] = useState(false); + const [expanded, setExpanded] = useState(false); + + const theme = createTheme({ + components: { + MuiOutlinedInput: { + styleOverrides: { + root: { + '& .MuiOutlinedInput-notchedOutline': { + borderColor: colorMode === 'dark' ? '#ffffff' : 'initial', + borderWidth: 1, + }, + '&.Mui-focused .MuiOutlinedInput-notchedOutline': { + borderColor: colorMode === 'dark' ? 'rgb(115,200,235)' : 'rgb(4,125,246)', + }, + '&:hover .MuiOutlinedInput-notchedOutline': { + borderColor: colorMode === 'dark' ? 'rgb(115,200,235)' : 'rgb(4,125,246)', + }, + }, + }, + }, + MuiSelect: { + styleOverrides: { + icon: { + color: colorMode === 'dark' ? '#ffffff' : 'black', + }, + }, + }, + }, + }); + + const handleChange = (event: ChangeEvent<{ value: unknown }>) => { + onFontSizeChange(event.target.value as string); + }; + + // Handle focus and blur state changes + const handleFocus = (event: FocusEvent) => { + setIsFocused(true); + if (onFocus) onFocus(event); + }; + + const handleBlur = (event: FocusEvent) => { + setIsFocused(false); + if (onBlur) onBlur(event); + }; + + // Handle dropdown expanded state + const handleDropdownOpen = () => setExpanded(true); + const handleDropdownClose = () => setExpanded(false); + + return ( + + + + Terminal Font Size + + + + + ); +}; + +export default TerminalFontSizeDropdown; diff --git a/src/components/xpath/XPathQueryInput/index.tsx b/src/components/xpath/XPathQueryInput/index.tsx new file mode 100644 index 0000000000000..a66ec3b7f962f --- /dev/null +++ b/src/components/xpath/XPathQueryInput/index.tsx @@ -0,0 +1,69 @@ +import React, { useState, FocusEvent, ChangeEvent } from 'react'; +import TextField from '@mui/material/TextField'; +import { useColorMode } from '@docusaurus/theme-common'; +import { createTheme, ThemeProvider } from '@mui/material/styles'; + +// Define props interface +interface XPathQueryInputProps { + value: string; + onChange: (event: ChangeEvent) => void; + onFocus?: (event: FocusEvent) => void; + onBlur?: (event: FocusEvent) => void; +} + +const XPathQueryInput: React.FC = ({ value, onChange, onFocus, onBlur }) => { + const { colorMode } = useColorMode(); + const [isFocused, setIsFocused] = useState(false); + + const theme = createTheme({ + components: { + MuiOutlinedInput: { + styleOverrides: { + root: { + '& .MuiOutlinedInput-notchedOutline': { + borderColor: colorMode === 'dark' ? '#ffffff' : 'initial', + borderWidth: 1, + }, + '&:hover .MuiOutlinedInput-notchedOutline': { + borderColor: colorMode === 'dark' ? 'rgb(115,200,235)' : 'rgb(4,125,246)', + }, + }, + }, + }, + }, + }); + + return ( + + { + setIsFocused(true); + if (onFocus) onFocus(event); + }} + onBlur={(event) => { + setIsFocused(false); + if (onBlur) onBlur(event); + }} + sx={{ + m: 1, + minWidth: 800, + '& .MuiInputLabel-root': { + color: isFocused ? (colorMode === 'dark' ? 'rgb(115,200,235)' : 'rgb(4,125,246)') : 'initial', + }, + '& .MuiOutlinedInput-root.Mui-focused': { + '& fieldset': { + borderColor: colorMode === 'dark' ? 'rgb(115,200,235)' : 'rgb(4,125,246)', + }, + }, + }} + id="outlined-basic-xpath-input" + label="Enter XPath query" + variant="outlined" + value={value} + onChange={onChange} + /> + + ); +}; + +export default XPathQueryInput; diff --git a/src/components/xpath/XPathRootInput/index.tsx b/src/components/xpath/XPathRootInput/index.tsx new file mode 100644 index 0000000000000..3b8c6bdd46cee --- /dev/null +++ b/src/components/xpath/XPathRootInput/index.tsx @@ -0,0 +1,69 @@ +import React, { useState, FocusEvent, ChangeEvent } from 'react'; +import TextField from '@mui/material/TextField'; +import { useColorMode } from '@docusaurus/theme-common'; +import { createTheme, ThemeProvider } from '@mui/material/styles'; + +// Define props interface +interface XPathRootInputProps { + value: string; + onChange: (event: ChangeEvent) => void; + onFocus?: (event: FocusEvent) => void; + onBlur?: (event: FocusEvent) => void; +} + +const XPathRootInput: React.FC = ({ value, onChange, onFocus, onBlur }) => { + const { colorMode } = useColorMode(); + const [isFocused, setIsFocused] = useState(false); + + const theme = createTheme({ + components: { + MuiOutlinedInput: { + styleOverrides: { + root: { + '& .MuiOutlinedInput-notchedOutline': { + borderColor: colorMode === 'dark' ? '#ffffff' : 'initial', + borderWidth: 1, + }, + '&:hover .MuiOutlinedInput-notchedOutline': { + borderColor: colorMode === 'dark' ? 'rgb(115,200,235)' : 'rgb(4,125,246)', + }, + }, + }, + }, + }, + }); + + return ( + + { + setIsFocused(true); + if (onFocus) onFocus(event); + }} + onBlur={(event) => { + setIsFocused(false); + if (onBlur) onBlur(event); + }} + sx={{ + m: 1, + minWidth: 800, + '& .MuiInputLabel-root': { + color: isFocused ? (colorMode === 'dark' ? 'rgb(115,200,235)' : 'rgb(4,125,246)') : 'initial', + }, + '& .MuiOutlinedInput-root.Mui-focused': { + '& fieldset': { + borderColor: colorMode === 'dark' ? 'rgb(115,200,235)' : 'rgb(4,125,246)', + }, + }, + }} + id="outlined-basic-xpath-input" + label="Enter XPath root" + variant="outlined" + value={value} + onChange={onChange} + /> + + ); +}; + +export default XPathRootInput; diff --git a/src/components/xpath/useDebounce.ts b/src/components/xpath/useDebounce.ts new file mode 100644 index 0000000000000..481ad379e122d --- /dev/null +++ b/src/components/xpath/useDebounce.ts @@ -0,0 +1,16 @@ +import { useState, useEffect } from 'react'; + +// Define the hook's return type +export function useDebounce(value: T, delay: number): T { + const [debouncedValue, setDebouncedValue] = useState(value); + + useEffect(() => { + const handler = setTimeout(() => { + setDebouncedValue(value); + }, delay); + + return () => clearTimeout(handler); + }, [value, delay]); + + return debouncedValue; +} diff --git a/src/pages/tools/EscapeTool.module.css b/src/pages/tools/EscapeTool.module.css index 7187a01c6cbf5..daa975baa60dd 100644 --- a/src/pages/tools/EscapeTool.module.css +++ b/src/pages/tools/EscapeTool.module.css @@ -31,12 +31,12 @@ background: var(--terminal-background) !important; } -a[id^='jsonpathDocumentationLink'] { +a[id^='xpathDocumentationLink'] { color: var(--link-color) !important; text-decoration: underline !important; } -a[id^='jsonpathDocumentationLink']:hover { +a[id^='xpathDocumentationLink']:hover { text-decoration: none !important; } @@ -51,15 +51,15 @@ div[id^='implementation-dropdown-select'] { color: var(--ifm-primary-text-color); } -input[id^='outlined-basic-jsonpath-input'], -label[id^='outlined-basic-jsonpath-input-label'], +input[id^='outlined-basic-xpath-input'], +label[id^='outlined-basic-xpath-input-label'], select[id^='terminal-font-size-select'], label[id^='terminal-font-size-label'], select[id^='implementation-dropdown-select'], label[id^='implementation-dropdown-label'] { color: var(--ifm-primary-text-color); } -input[id^='outlined-basic-jsonpath-input'], +input[id^='outlined-basic-xpath-input'], div[id^='terminal-font-size-select'], div[id^='implementation-dropdown-select'] { background: var(--terminal-background); @@ -84,7 +84,7 @@ span[class^='ace_string'] { color: var(--terminal-value) !important; } -div [id^='jsonpathalert'] { +div [id^='xpathalert'] { color: rgb(244, 67, 54); border: 1px solid rgb(244, 67, 54); } diff --git a/src/pages/tools/sample.xml.json b/src/pages/tools/sample.xml.json new file mode 100644 index 0000000000000..53add47309662 --- /dev/null +++ b/src/pages/tools/sample.xml.json @@ -0,0 +1 @@ +{"xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGVudjpFbnZlbG9wZQogICAgeG1sbnM6ZW52PSJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy9zb2FwL2VudmVsb3BlLyIKICAgIHhtbG5zOndkPSJ1cm46Y29tLndvcmtkYXkvYnN2YyI+CiAgPGVudjpCb2R5PgogICAgPHdkOkdldF9Xb3JrZXJzX1Jlc3BvbnNlIHdkOnZlcnNpb249InY0My4wIj4KCiAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICA8IS0tIFJFU1BPTlNFIEZJTFRFUiAvIFBBR0lOQVRJT04gTUVUQURBVEEgICAgICAgICAgICAgICAgICAgICAgICAtLT4KICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgIDx3ZDpSZXF1ZXN0X1JlZmVyZW5jZXM+CiAgICAgICAgPCEtLSBPbWl0dGVkIHdoZW4gbm8gZmlsdGVyIHdhcyBhcHBsaWVkIChpLmUuIGFsbCB3b3JrZXJzIHJldHVybmVkKSAtLT4KICAgICAgPC93ZDpSZXF1ZXN0X1JlZmVyZW5jZXM+CgogICAgICA8d2Q6UmVzcG9uc2VfRmlsdGVyPgogICAgICAgIDx3ZDpBc19PZl9FZmZlY3RpdmVfRGF0ZT4yMDI2LTAzLTMwPC93ZDpBc19PZl9FZmZlY3RpdmVfRGF0ZT4KICAgICAgICA8d2Q6QXNfT2ZfRW50cnlfRGF0ZVRpbWU+MjAyNi0wMy0zMFQxMjowMDowMC4wMDAtMDc6MDA8L3dkOkFzX09mX0VudHJ5X0RhdGVUaW1lPgogICAgICAgIDx3ZDpQYWdlPjE8L3dkOlBhZ2U+CiAgICAgICAgPHdkOkNvdW50PjEwMDwvd2Q6Q291bnQ+CiAgICAgIDwvd2Q6UmVzcG9uc2VfRmlsdGVyPgoKICAgICAgPHdkOlJlc3BvbnNlX1Jlc3VsdHM+CiAgICAgICAgPHdkOlRvdGFsX1Jlc3VsdHM+Mjwvd2Q6VG90YWxfUmVzdWx0cz4KICAgICAgICA8d2Q6VG90YWxfUGFnZXM+MTwvd2Q6VG90YWxfUGFnZXM+CiAgICAgICAgPHdkOlBhZ2VfUmVzdWx0cz4yPC93ZDpQYWdlX1Jlc3VsdHM+CiAgICAgICAgPHdkOlBhZ2U+MTwvd2Q6UGFnZT4KICAgICAgPC93ZDpSZXNwb25zZV9SZXN1bHRzPgoKICAgICAgPHdkOlJlc3BvbnNlX0RhdGE+CgogICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICAgIDwhLS0gV09SS0VSIDEg4oCUIEFjdGl2ZSBFbXBsb3llZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+CiAgICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgPHdkOldvcmtlcj4KICAgICAgICAgIDx3ZDpXb3JrZXJfUmVmZXJlbmNlPgogICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj4zYWE1NTUwYjdmZTM0OGI1YWU4OGMzYWYxYjQ4YzU3Mzwvd2Q6SUQ+CiAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJFbXBsb3llZV9JRCI+MTAwMjM0PC93ZDpJRD4KICAgICAgICAgIDwvd2Q6V29ya2VyX1JlZmVyZW5jZT4KCiAgICAgICAgICA8d2Q6V29ya2VyX0RhdGE+CiAgICAgICAgICAgIDx3ZDpXb3JrZXJfSUQ+MTAwMjM0PC93ZDpXb3JrZXJfSUQ+CiAgICAgICAgICAgIDx3ZDpVc2VyX0lEPmpzbWl0aDwvd2Q6VXNlcl9JRD4KCiAgICAgICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgICAgIDwhLS0gUEVSU09OQUwgREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPgogICAgICAgICAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICAgICAgICA8d2Q6UGVyc29uYWxfRGF0YT4KCiAgICAgICAgICAgICAgPCEtLSA9PT0gTmFtZSBEYXRhID09PSAtLT4KICAgICAgICAgICAgICA8d2Q6TmFtZV9EYXRhPgogICAgICAgICAgICAgICAgPHdkOkxlZ2FsX05hbWVfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOk5hbWVfRGV0YWlsX0RhdGE+CiAgICAgICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YmMzM2FhMzE1MmVjNDJkNDk5NWY0NzkxYTEwNmVkMDk8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IklTT18zMTY2LTFfQWxwaGEtMl9Db2RlIj5VUzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSVNPXzMxNjYtMV9BbHBoYS0zX0NvZGUiPlVTQTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Rmlyc3RfTmFtZT5KYW5lPC93ZDpGaXJzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpNaWRkbGVfTmFtZT5NYXJpZTwvd2Q6TWlkZGxlX05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHdkOkxhc3RfTmFtZT5TbWl0aDwvd2Q6TGFzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpGb3JtYXR0ZWRfTmFtZT5KYW5lIE1hcmllIFNtaXRoPC93ZDpGb3JtYXR0ZWRfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6UmVwb3J0aW5nX05hbWU+U21pdGgsIEphbmUgTWFyaWU8L3dkOlJlcG9ydGluZ19OYW1lPgogICAgICAgICAgICAgICAgICA8L3dkOk5hbWVfRGV0YWlsX0RhdGE+CiAgICAgICAgICAgICAgICA8L3dkOkxlZ2FsX05hbWVfRGF0YT4KICAgICAgICAgICAgICAgIDx3ZDpQcmVmZXJyZWRfTmFtZV9EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6TmFtZV9EZXRhaWxfRGF0YT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5iYzMzYWEzMTUyZWM0MmQ0OTk1ZjQ3OTFhMTA2ZWQwOTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSVNPXzMxNjYtMV9BbHBoYS0yX0NvZGUiPlVTPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8L3dkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpGaXJzdF9OYW1lPkphbmU8L3dkOkZpcnN0X05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHdkOkxhc3RfTmFtZT5TbWl0aDwvd2Q6TGFzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpGb3JtYXR0ZWRfTmFtZT5KYW5lIFNtaXRoPC93ZDpGb3JtYXR0ZWRfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6UmVwb3J0aW5nX05hbWU+U21pdGgsIEphbmU8L3dkOlJlcG9ydGluZ19OYW1lPgogICAgICAgICAgICAgICAgICA8L3dkOk5hbWVfRGV0YWlsX0RhdGE+CiAgICAgICAgICAgICAgICA8L3dkOlByZWZlcnJlZF9OYW1lX0RhdGE+CiAgICAgICAgICAgICAgPC93ZDpOYW1lX0RhdGE+CgogICAgICAgICAgICAgIDwhLS0gPT09IENvbnRhY3QgRGF0YSA9PT0gLS0+CiAgICAgICAgICAgICAgPHdkOkNvbnRhY3RfRGF0YT4KCiAgICAgICAgICAgICAgICA8IS0tIFdvcmsgRW1haWwgLS0+CiAgICAgICAgICAgICAgICA8d2Q6RW1haWxfQWRkcmVzc19EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6RW1haWxfQWRkcmVzcz5qYW5lLnNtaXRoQGFjbWVjb3JwLmNvbTwvd2Q6RW1haWxfQWRkcmVzcz4KICAgICAgICAgICAgICAgICAgPHdkOlVzYWdlX0RhdGEgd2Q6UHVibGljPSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9EYXRhIHdkOlByaW1hcnk9InRydWUiPgogICAgICAgICAgICAgICAgICAgICAgPHdkOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5kMGUxZjJhM2I0YzVkNmU3ZjhhOWIwYzFkMmUzZjRhNTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb21tdW5pY2F0aW9uX1VzYWdlX1R5cGVfSUQiPldPUks8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPC93ZDpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3dkOlR5cGVfRGF0YT4KICAgICAgICAgICAgICAgICAgPC93ZDpVc2FnZV9EYXRhPgogICAgICAgICAgICAgICAgPC93ZDpFbWFpbF9BZGRyZXNzX0RhdGE+CgogICAgICAgICAgICAgICAgPCEtLSBIb21lIEVtYWlsIC0tPgogICAgICAgICAgICAgICAgPHdkOkVtYWlsX0FkZHJlc3NfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOkVtYWlsX0FkZHJlc3M+amFuZS5tLnNtaXRoQGdtYWlsLmNvbTwvd2Q6RW1haWxfQWRkcmVzcz4KICAgICAgICAgICAgICAgICAgPHdkOlVzYWdlX0RhdGEgd2Q6UHVibGljPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgPHdkOlR5cGVfRGF0YSB3ZDpQcmltYXJ5PSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmExYjJjM2Q0ZTVmNmE3YjhjOWQwZTFmMmEzYjRjNWQ2PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkNvbW11bmljYXRpb25fVXNhZ2VfVHlwZV9JRCI+SE9NRTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3dkOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6VHlwZV9EYXRhPgogICAgICAgICAgICAgICAgICA8L3dkOlVzYWdlX0RhdGE+CiAgICAgICAgICAgICAgICA8L3dkOkVtYWlsX0FkZHJlc3NfRGF0YT4KCiAgICAgICAgICAgICAgICA8IS0tIFdvcmsgUGhvbmUgLS0+CiAgICAgICAgICAgICAgICA8d2Q6UGhvbmVfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOkludGVybmF0aW9uYWxfUGhvbmVfQ29kZT4xPC93ZDpJbnRlcm5hdGlvbmFsX1Bob25lX0NvZGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpBcmVhX0NvZGU+NjE5PC93ZDpBcmVhX0NvZGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpQaG9uZV9OdW1iZXI+NTU1LTAxNDI8L3dkOlBob25lX051bWJlcj4KICAgICAgICAgICAgICAgICAgPHdkOlBob25lX0RldmljZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5lNGY1YTZiN2M4ZDllMGYxYTJiM2M0ZDVlNmY3YThiOTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IlBob25lX0RldmljZV9UeXBlX0lEIj5MYW5kbGluZTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDwvd2Q6UGhvbmVfRGV2aWNlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8d2Q6VXNhZ2VfRGF0YSB3ZDpQdWJsaWM9InRydWUiPgogICAgICAgICAgICAgICAgICAgIDx3ZDpUeXBlX0RhdGEgd2Q6UHJpbWFyeT0idHJ1ZSI+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmQwZTFmMmEzYjRjNWQ2ZTdmOGE5YjBjMWQyZTNmNGE1PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkNvbW11bmljYXRpb25fVXNhZ2VfVHlwZV9JRCI+V09SSzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3dkOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6VHlwZV9EYXRhPgogICAgICAgICAgICAgICAgICA8L3dkOlVzYWdlX0RhdGE+CiAgICAgICAgICAgICAgICAgIDx3ZDpGb3JtYXR0ZWRfUGhvbmU+KzEgKDYxOSkgNTU1LTAxNDI8L3dkOkZvcm1hdHRlZF9QaG9uZT4KICAgICAgICAgICAgICAgIDwvd2Q6UGhvbmVfRGF0YT4KCiAgICAgICAgICAgICAgICA8IS0tIE1vYmlsZSBQaG9uZSAtLT4KICAgICAgICAgICAgICAgIDx3ZDpQaG9uZV9EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6SW50ZXJuYXRpb25hbF9QaG9uZV9Db2RlPjE8L3dkOkludGVybmF0aW9uYWxfUGhvbmVfQ29kZT4KICAgICAgICAgICAgICAgICAgPHdkOkFyZWFfQ29kZT44NTg8L3dkOkFyZWFfQ29kZT4KICAgICAgICAgICAgICAgICAgPHdkOlBob25lX051bWJlcj41NTUtMDE5ODwvd2Q6UGhvbmVfTnVtYmVyPgogICAgICAgICAgICAgICAgICA8d2Q6UGhvbmVfRGV2aWNlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmY1YTZiN2M4ZDllMGYxYTJiM2M0ZDVlNmY3YThiOWMwPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iUGhvbmVfRGV2aWNlX1R5cGVfSUQiPk1vYmlsZTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDwvd2Q6UGhvbmVfRGV2aWNlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8d2Q6VXNhZ2VfRGF0YSB3ZDpQdWJsaWM9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9EYXRhIHdkOlByaW1hcnk9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YTFiMmMzZDRlNWY2YTdiOGM5ZDBlMWYyYTNiNGM1ZDY8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iQ29tbXVuaWNhdGlvbl9Vc2FnZV9UeXBlX0lEIj5IT01FPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpUeXBlX0RhdGE+CiAgICAgICAgICAgICAgICAgIDwvd2Q6VXNhZ2VfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOkZvcm1hdHRlZF9QaG9uZT4rMSAoODU4KSA1NTUtMDE5ODwvd2Q6Rm9ybWF0dGVkX1Bob25lPgogICAgICAgICAgICAgICAgPC93ZDpQaG9uZV9EYXRhPgoKICAgICAgICAgICAgICAgIDwhLS0gSG9tZSBBZGRyZXNzIC0tPgogICAgICAgICAgICAgICAgPHdkOkFkZHJlc3NfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmJjMzNhYTMxNTJlYzQyZDQ5OTVmNDc5MWExMDZlZDA5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSVNPXzMxNjYtMV9BbHBoYS0yX0NvZGUiPlVTPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHdkOkxhc3RfTW9kaWZpZWQ+MjAyNC0wNi0xNVQwOTozMDowMC4wMDAtMDc6MDA8L3dkOkxhc3RfTW9kaWZpZWQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpBZGRyZXNzX0xpbmVfRGF0YSB3ZDpUeXBlPSJBRERSRVNTX0xJTkVfMSI+NzQyIEV2ZXJncmVlbiBUZXJyYWNlPC93ZDpBZGRyZXNzX0xpbmVfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOkFkZHJlc3NfTGluZV9EYXRhIHdkOlR5cGU9IkFERFJFU1NfTElORV8yIj5BcHQgNEI8L3dkOkFkZHJlc3NfTGluZV9EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6TXVuaWNpcGFsaXR5PlNhbiBEaWVnbzwvd2Q6TXVuaWNpcGFsaXR5PgogICAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9SZWdpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmE4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQzPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iQ291bnRyeV9SZWdpb25fSUQiPlVTQS1DQTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDwvd2Q6Q291bnRyeV9SZWdpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9SZWdpb25fRGVzY3JpcHRvcj5DYWxpZm9ybmlhPC93ZDpDb3VudHJ5X1JlZ2lvbl9EZXNjcmlwdG9yPgogICAgICAgICAgICAgICAgICA8d2Q6UG9zdGFsX0NvZGU+OTIxMDE8L3dkOlBvc3RhbF9Db2RlPgogICAgICAgICAgICAgICAgICA8d2Q6Rm9ybWF0dGVkX0FkZHJlc3M+NzQyIEV2ZXJncmVlbiBUZXJyYWNlLCBBcHQgNEIsIFNhbiBEaWVnbywgQ0EgOTIxMDEsIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYTwvd2Q6Rm9ybWF0dGVkX0FkZHJlc3M+CiAgICAgICAgICAgICAgICAgIDx3ZDpEZWZhdWx0ZWRfQnVzaW5lc3NfU2l0ZV9BZGRyZXNzPmZhbHNlPC93ZDpEZWZhdWx0ZWRfQnVzaW5lc3NfU2l0ZV9BZGRyZXNzPgogICAgICAgICAgICAgICAgICA8d2Q6TnVtYmVyX29mX0RheXM+MzY1PC93ZDpOdW1iZXJfb2ZfRGF5cz4KICAgICAgICAgICAgICAgICAgPHdkOlVzYWdlX0RhdGEgd2Q6UHVibGljPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgPHdkOlR5cGVfRGF0YSB3ZDpQcmltYXJ5PSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YTFiMmMzZDRlNWY2YTdiOGM5ZDBlMWYyYTNiNGM1ZDY8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iQ29tbXVuaWNhdGlvbl9Vc2FnZV9UeXBlX0lEIj5IT01FPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpUeXBlX0RhdGE+CiAgICAgICAgICAgICAgICAgIDwvd2Q6VXNhZ2VfRGF0YT4KICAgICAgICAgICAgICAgIDwvd2Q6QWRkcmVzc19EYXRhPgoKICAgICAgICAgICAgICA8L3dkOkNvbnRhY3RfRGF0YT4KCiAgICAgICAgICAgICAgPCEtLSA9PT0gQmlvZ3JhcGhpY2FsIERhdGEgKGRhdGUgb2YgYmlydGgsIGdlbmRlciwgZXRjLikgPT09IC0tPgogICAgICAgICAgICAgIDx3ZDpCaW9ncmFwaGljYWxfRGF0YT4KICAgICAgICAgICAgICAgIDx3ZDpEYXRlX29mX0JpcnRoPjE5ODgtMDctMjI8L3dkOkRhdGVfb2ZfQmlydGg+CiAgICAgICAgICAgICAgICA8d2Q6R2VuZGVyX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+OWEwYjFjMmQzZTRmNWE2YjdjOGQ5ZTBmMWEyYjNjNGQ8L3dkOklEPgogICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iR2VuZGVyX0lEIj5GZW1hbGU8L3dkOklEPgogICAgICAgICAgICAgICAgPC93ZDpHZW5kZXJfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfb2ZfQmlydGhfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5iYzMzYWEzMTUyZWM0MmQ0OTk1ZjQ3OTFhMTA2ZWQwOTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJJU09fMzE2Ni0xX0FscGhhLTJfQ29kZSI+VVM8L3dkOklEPgogICAgICAgICAgICAgICAgPC93ZDpDb3VudHJ5X29mX0JpcnRoX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgIDx3ZDpNYXJpdGFsX1N0YXR1c19SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmM0ZDVlNmY3YThiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik1hcml0YWxfU3RhdHVzX0lEIj5NYXJyaWVkPC93ZDpJRD4KICAgICAgICAgICAgICAgIDwvd2Q6TWFyaXRhbF9TdGF0dXNfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgPHdkOk1hcml0YWxfU3RhdHVzX0RhdGU+MjAxOS0xMC0wNTwvd2Q6TWFyaXRhbF9TdGF0dXNfRGF0ZT4KICAgICAgICAgICAgICA8L3dkOkJpb2dyYXBoaWNhbF9EYXRhPgoKICAgICAgICAgICAgICA8IS0tID09PSBJRCBEYXRhIChuYXRpb25hbCBJRHMsIGdvdmVybm1lbnQgSURzKSA9PT0gLS0+CiAgICAgICAgICAgICAgPHdkOklkZW50aWZpY2F0aW9uX0RhdGE+CiAgICAgICAgICAgICAgICA8d2Q6TmF0aW9uYWxfSUQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpOYXRpb25hbF9JRF9EYXRhPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRD4qKiotKiotNjc4OTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+ZThmOWEwYjFjMmQzZTRmNWE2YjdjOGQ5ZTBmMWEyYjM8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik5hdGlvbmFsX0lEX1R5cGVfQ29kZSI+VVNBLVNTTjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpJRF9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5iYzMzYWEzMTUyZWM0MmQ0OTk1ZjQ3OTFhMTA2ZWQwOTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSVNPXzMxNjYtMV9BbHBoYS0yX0NvZGUiPlVTPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8L3dkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJc3N1ZWRfRGF0ZT4yMDA2LTAzLTE1PC93ZDpJc3N1ZWRfRGF0ZT4KICAgICAgICAgICAgICAgICAgPC93ZDpOYXRpb25hbF9JRF9EYXRhPgogICAgICAgICAgICAgICAgPC93ZDpOYXRpb25hbF9JRD4KICAgICAgICAgICAgICAgIDx3ZDpDdXN0b21fSUQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpDdXN0b21fSURfRGF0YT4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQ+QkFER0UtMDAyMzQ8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRF9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmYxYTJiM2M0ZDVlNmY3YThiOWMwZDFlMmYzYTRiNWM2PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDdXN0b21fSURfVHlwZV9JRCI+QmFkZ2VfSUQ8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6SURfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDwvd2Q6Q3VzdG9tX0lEX0RhdGE+CiAgICAgICAgICAgICAgICA8L3dkOkN1c3RvbV9JRD4KICAgICAgICAgICAgICA8L3dkOklkZW50aWZpY2F0aW9uX0RhdGE+CgogICAgICAgICAgICA8L3dkOlBlcnNvbmFsX0RhdGE+CgogICAgICAgICAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICAgICAgICA8IS0tIEVNUExPWU1FTlQgREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4KICAgICAgICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgICAgICAgICAgPHdkOkVtcGxveW1lbnRfRGF0YT4KCiAgICAgICAgICAgICAgPHdkOldvcmtlcl9Kb2JfRGF0YT4KICAgICAgICAgICAgICAgIDx3ZDpQb3NpdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6UG9zaXRpb25fSUQ+UC0wMDQ1MjE8L3dkOlBvc2l0aW9uX0lEPgogICAgICAgICAgICAgICAgICA8d2Q6UG9zaXRpb25fVGl0bGU+U2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyPC93ZDpQb3NpdGlvbl9UaXRsZT4KICAgICAgICAgICAgICAgICAgPHdkOkJ1c2luZXNzX1RpdGxlPlNlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcjwvd2Q6QnVzaW5lc3NfVGl0bGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpTdGFydF9EYXRlPjIwMjMtMDEtMDk8L3dkOlN0YXJ0X0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpEZWZhdWx0X1dlZWtseV9Ib3Vycz40MDwvd2Q6RGVmYXVsdF9XZWVrbHlfSG91cnM+CiAgICAgICAgICAgICAgICAgIDx3ZDpTY2hlZHVsZWRfV2Vla2x5X0hvdXJzPjQwPC93ZDpTY2hlZHVsZWRfV2Vla2x5X0hvdXJzPgogICAgICAgICAgICAgICAgICA8d2Q6RnVsbF9UaW1lX0VxdWl2YWxlbnRfUGVyY2VudGFnZT4xMDA8L3dkOkZ1bGxfVGltZV9FcXVpdmFsZW50X1BlcmNlbnRhZ2U+CgogICAgICAgICAgICAgICAgICA8d2Q6UG9zaXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjdiYzY2NDBjOGFmNDU5YzZiZjk5ZDRiMDJjNTlkMDAxPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iUG9zaXRpb25fSUQiPlAtMDA0NTIxPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpQb3NpdGlvbl9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgICA8d2Q6V29ya2VyX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmQ0ZTVmNmE3YjhjOWQwZTFmMmEzYjRjNWQ2ZTdmOGE5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV29ya2VyX1R5cGVfSUQiPlJlZ3VsYXI8L3dkOklEPgogICAgICAgICAgICAgICAgICA8L3dkOldvcmtlcl9UeXBlX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICAgIDx3ZDpKb2JfUHJvZmlsZV9TdW1tYXJ5X0RhdGE+CiAgICAgICAgICAgICAgICAgICAgPHdkOkpvYl9Qcm9maWxlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjFhMmIzYzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGI1YzZkPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJKb2JfUHJvZmlsZV9JRCI+SlAtU1dFLVNSPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8L3dkOkpvYl9Qcm9maWxlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Sm9iX1Byb2ZpbGVfTmFtZT5TZW5pb3IgU29mdHdhcmUgRW5naW5lZXI8L3dkOkpvYl9Qcm9maWxlX05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHdkOk1hbmFnZW1lbnRfTGV2ZWxfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+MmIzYzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGI1YzZkN2U8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik1hbmFnZW1lbnRfTGV2ZWxfSUQiPkluZGl2aWR1YWxfQ29udHJpYnV0b3I8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6TWFuYWdlbWVudF9MZXZlbF9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOkpvYl9DYXRlZ29yeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj4zYzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGI1YzZkN2U4Zjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSm9iX0NhdGVnb3J5X0lEIj5FbmdpbmVlcmluZzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpKb2JfQ2F0ZWdvcnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpKb2JfRmFtaWx5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjRkNWU2ZjdhOGI5YzBkMWUyZjNhNGI1YzZkN2U4ZjlhPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJKb2JfRmFtaWx5X0lEIj5KRi1FbmdpbmVlcmluZzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpKb2JfRmFtaWx5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPC93ZDpKb2JfUHJvZmlsZV9TdW1tYXJ5X0RhdGE+CgogICAgICAgICAgICAgICAgICA8d2Q6QnVzaW5lc3NfU2l0ZV9TdW1tYXJ5X0RhdGE+CiAgICAgICAgICAgICAgICAgICAgPHdkOk5hbWU+U2FuIERpZWdvIEhRPC93ZDpOYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpMb2NhdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj41ZTZmN2E4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iTG9jYXRpb25fSUQiPkxPQy1TRC1IUTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpMb2NhdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOkxvY2F0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+NmY3YThiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTBiMWM8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkxvY2F0aW9uX1R5cGVfSUQiPk9mZmljZTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpMb2NhdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6QWRkcmVzc19EYXRhPgogICAgICAgICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSVNPXzMxNjYtMV9BbHBoYS0yX0NvZGUiPlVTPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6QWRkcmVzc19MaW5lX0RhdGEgd2Q6VHlwZT0iQUREUkVTU19MSU5FXzEiPjEwMCBJbm5vdmF0aW9uIERyaXZlPC93ZDpBZGRyZXNzX0xpbmVfRGF0YT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpBZGRyZXNzX0xpbmVfRGF0YSB3ZDpUeXBlPSJBRERSRVNTX0xJTkVfMiI+U3VpdGUgNTAwPC93ZDpBZGRyZXNzX0xpbmVfRGF0YT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpNdW5pY2lwYWxpdHk+U2FuIERpZWdvPC93ZDpNdW5pY2lwYWxpdHk+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9SZWdpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iQ291bnRyeV9SZWdpb25fSUQiPlVTQS1DQTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3dkOkNvdW50cnlfUmVnaW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpDb3VudHJ5X1JlZ2lvbl9EZXNjcmlwdG9yPkNhbGlmb3JuaWE8L3dkOkNvdW50cnlfUmVnaW9uX0Rlc2NyaXB0b3I+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6UG9zdGFsX0NvZGU+OTIxMzA8L3dkOlBvc3RhbF9Db2RlPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6QWRkcmVzc19EYXRhPgogICAgICAgICAgICAgICAgICA8L3dkOkJ1c2luZXNzX1NpdGVfU3VtbWFyeV9EYXRhPgoKICAgICAgICAgICAgICAgICAgPCEtLSBQYXkgUmF0ZSBUeXBlIC0tPgogICAgICAgICAgICAgICAgICA8d2Q6UGF5X1JhdGVfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+N2E4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQ8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJQYXlfUmF0ZV9UeXBlX0lEIj5TYWxhcnk8L3dkOklEPgogICAgICAgICAgICAgICAgICA8L3dkOlBheV9SYXRlX1R5cGVfUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPCEtLSBUaW1lIFR5cGUgKEZ1bGxfdGltZSAvIFBhcnRfdGltZSkgLS0+CiAgICAgICAgICAgICAgICAgIDx3ZDpQb3NpdGlvbl9UaW1lX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjhiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iUG9zaXRpb25fVGltZV9UeXBlX0lEIj5GdWxsX3RpbWU8L3dkOklEPgogICAgICAgICAgICAgICAgICA8L3dkOlBvc2l0aW9uX1RpbWVfVHlwZV9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgICA8IS0tIFN1cGVydmlzb3J5IE9yZ2FuaXphdGlvbiAtLT4KICAgICAgICAgICAgICAgICAgPHdkOlN1cGVydmlzb3J5X09yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+OWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlNGY8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJPcmdhbml6YXRpb25fUmVmZXJlbmNlX0lEIj5FTkctUExBVEZPUk0tMDAxPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpTdXBlcnZpc29yeV9Pcmdhbml6YXRpb25fUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPCEtLSBDb3N0IENlbnRlciAtLT4KICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICAgIDx3ZDpXb3JrZXJfT3JnYW5pemF0aW9uX0RhdGE+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6T3JnYW5pemF0aW9uX0RhdGE+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpPcmdhbml6YXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjBkMWUyZjNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iT3JnYW5pemF0aW9uX1JlZmVyZW5jZV9JRCI+Q0MtNDUwMDwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkNvc3RfQ2VudGVyX1JlZmVyZW5jZV9JRCI+Q0MtNDUwMDwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6T3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9OYW1lPkVuZ2luZWVyaW5nIC0gUGxhdGZvcm08L3dkOk9yZ2FuaXphdGlvbl9OYW1lPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6T3JnYW5pemF0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjFlMmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlNGY1YTZiPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iT3JnYW5pemF0aW9uX1R5cGVfSUQiPkNvc3RfQ2VudGVyPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPC93ZDpPcmdhbml6YXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8L3dkOk9yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6T3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj4yZjNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhNmI3Yzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik9yZ2FuaXphdGlvbl9SZWZlcmVuY2VfSUQiPkNPTVAtQUNNRTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkNvbXBhbnlfUmVmZXJlbmNlX0lEIj5DT01QLUFDTUU8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8L3dkOk9yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpPcmdhbml6YXRpb25fTmFtZT5BY21lIENvcnBvcmF0aW9uPC93ZDpPcmdhbml6YXRpb25fTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj4zYTRiNWM2ZDdlOGY5YTBiMWMyZDNlNGY1YTZiN2M4ZDwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik9yZ2FuaXphdGlvbl9UeXBlX0lEIj5Db21wYW55PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPC93ZDpPcmdhbml6YXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8L3dkOk9yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6V29ya2VyX09yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICA8L3dkOk9yZ2FuaXphdGlvbl9EYXRhPgoKICAgICAgICAgICAgICAgIDwvd2Q6UG9zaXRpb25fRGF0YT4KCiAgICAgICAgICAgICAgICA8IS0tIE1hbmFnZXIgUmVmZXJlbmNlIC0tPgogICAgICAgICAgICAgICAgPHdkOk1hbmFnZXJfYXNfb2ZfbGFzdF9kZXRlY3RlZF9tYW5hZ2VyX2NoYW5nZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmFhYmJjY2RkMTEyMjMzNDQ1NTY2Nzc4ODk5MDBhYWJiPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkVtcGxveWVlX0lEIj4xMDAwODk8L3dkOklEPgogICAgICAgICAgICAgICAgPC93ZDpNYW5hZ2VyX2FzX29mX2xhc3RfZGV0ZWN0ZWRfbWFuYWdlcl9jaGFuZ2VfUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgIDwhLS0gV29ya2VyIFN0YXR1cyAoQWN0aXZlLCBIaXJlIERhdGUsIGV0Yy4pIC0tPgogICAgICAgICAgICAgICAgPHdkOldvcmtlcl9TdGF0dXNfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOkFjdGl2ZT50cnVlPC93ZDpBY3RpdmU+CiAgICAgICAgICAgICAgICAgIDx3ZDpBY3RpdmVfU3RhdHVzX0RhdGU+MjAyMS0wMy0xNTwvd2Q6QWN0aXZlX1N0YXR1c19EYXRlPgogICAgICAgICAgICAgICAgICA8d2Q6SGlyZV9EYXRlPjIwMjEtMDMtMTU8L3dkOkhpcmVfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOk9yaWdpbmFsX0hpcmVfRGF0ZT4yMDIxLTAzLTE1PC93ZDpPcmlnaW5hbF9IaXJlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpFbmRfRW1wbG95bWVudF9EYXRlLz4KICAgICAgICAgICAgICAgICAgPHdkOkNvbnRpbnVvdXNfU2VydmljZV9EYXRlPjIwMjEtMDMtMTU8L3dkOkNvbnRpbnVvdXNfU2VydmljZV9EYXRlPgogICAgICAgICAgICAgICAgICA8d2Q6Rmlyc3RfRGF5X29mX1dvcms+MjAyMS0wMy0xNTwvd2Q6Rmlyc3RfRGF5X29mX1dvcms+CiAgICAgICAgICAgICAgICAgIDx3ZDpTZW5pb3JpdHlfRGF0ZT4yMDIxLTAzLTE1PC93ZDpTZW5pb3JpdHlfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOkJlbmVmaXRzX1NlcnZpY2VfRGF0ZT4yMDIxLTAzLTE1PC93ZDpCZW5lZml0c19TZXJ2aWNlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpDb21wYW55X1NlcnZpY2VfRGF0ZT4yMDIxLTAzLTE1PC93ZDpDb21wYW55X1NlcnZpY2VfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOlJldGlyZWQ+ZmFsc2U8L3dkOlJldGlyZWQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpUZXJtaW5hdGVkPmZhbHNlPC93ZDpUZXJtaW5hdGVkPgogICAgICAgICAgICAgICAgICA8d2Q6UmVoaXJlPmZhbHNlPC93ZDpSZWhpcmU+CiAgICAgICAgICAgICAgICAgIDx3ZDpEYXlzX1VuZW1wbG95ZWQ+MDwvd2Q6RGF5c19VbmVtcGxveWVkPgogICAgICAgICAgICAgICAgICA8d2Q6Tm90X1JldHVybmluZz5mYWxzZTwvd2Q6Tm90X1JldHVybmluZz4KICAgICAgICAgICAgICAgICAgPHdkOlByb2JhdGlvbl9TdGFydF9EYXRlPjIwMjEtMDMtMTU8L3dkOlByb2JhdGlvbl9TdGFydF9EYXRlPgogICAgICAgICAgICAgICAgICA8d2Q6UHJvYmF0aW9uX0VuZF9EYXRlPjIwMjEtMDktMTU8L3dkOlByb2JhdGlvbl9FbmRfRGF0ZT4KICAgICAgICAgICAgICAgIDwvd2Q6V29ya2VyX1N0YXR1c19EYXRhPgoKICAgICAgICAgICAgICA8L3dkOldvcmtlcl9Kb2JfRGF0YT4KCiAgICAgICAgICAgICAgPCEtLSBJbnRlcm5hdGlvbmFsIEFzc2lnbm1lbnQgKGVtcHR5IGZvciB0aGlzIHdvcmtlcikgLS0+CiAgICAgICAgICAgICAgPHdkOldvcmtlcl9Kb2JfRGF0YT4KICAgICAgICAgICAgICAgIDwhLS0gQWRkaXRpb25hbCBwb3NpdGlvbnMgd291bGQgYXBwZWFyIGFzIGFkZGl0aW9uYWwgV29ya2VyX0pvYl9EYXRhIGVsZW1lbnRzIC0tPgogICAgICAgICAgICAgICAgPCEtLSBUaGlzIHdvcmtlciBoYXMgb25seSBvbmUgcG9zaXRpb24sIHNvIG9ubHkgb25lIGFwcGVhcnMgYWJvdmUgLS0+CiAgICAgICAgICAgICAgPC93ZDpXb3JrZXJfSm9iX0RhdGE+CgogICAgICAgICAgICA8L3dkOkVtcGxveW1lbnRfRGF0YT4KCiAgICAgICAgICA8L3dkOldvcmtlcl9EYXRhPgogICAgICAgIDwvd2Q6V29ya2VyPgoKICAgICAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgICAgICA8IS0tIFdPUktFUiAyIOKAlCBUZXJtaW5hdGVkIEVtcGxveWVlICh0ZXN0cyB5b3VyIHBhcnNlciBlZGdlIGNhc2UpIC0tPgogICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICAgIDx3ZDpXb3JrZXI+CiAgICAgICAgICA8d2Q6V29ya2VyX1JlZmVyZW5jZT4KICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+OGRkNzc2MWU5YmY1NGFjN2IwMTFlNWMyM2Q3MGZhOTI8L3dkOklEPgogICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iRW1wbG95ZWVfSUQiPjEwMDU3ODwvd2Q6SUQ+CiAgICAgICAgICA8L3dkOldvcmtlcl9SZWZlcmVuY2U+CgogICAgICAgICAgPHdkOldvcmtlcl9EYXRhPgogICAgICAgICAgICA8d2Q6V29ya2VyX0lEPjEwMDU3ODwvd2Q6V29ya2VyX0lEPgogICAgICAgICAgICA8d2Q6VXNlcl9JRD5yZ2FyY2lhPC93ZDpVc2VyX0lEPgoKICAgICAgICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgICAgICAgICAgPCEtLSBQRVJTT05BTCBEQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+CiAgICAgICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgICAgIDx3ZDpQZXJzb25hbF9EYXRhPgoKICAgICAgICAgICAgICA8d2Q6TmFtZV9EYXRhPgogICAgICAgICAgICAgICAgPHdkOkxlZ2FsX05hbWVfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOk5hbWVfRGV0YWlsX0RhdGE+CiAgICAgICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YmMzM2FhMzE1MmVjNDJkNDk5NWY0NzkxYTEwNmVkMDk8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IklTT18zMTY2LTFfQWxwaGEtMl9Db2RlIj5VUzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSVNPXzMxNjYtMV9BbHBoYS0zX0NvZGUiPlVTQTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Rmlyc3RfTmFtZT5Sb2JlcnRvPC93ZDpGaXJzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpMYXN0X05hbWU+R2FyY2lhPC93ZDpMYXN0X05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHdkOkZvcm1hdHRlZF9OYW1lPlJvYmVydG8gR2FyY2lhPC93ZDpGb3JtYXR0ZWRfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6UmVwb3J0aW5nX05hbWU+R2FyY2lhLCBSb2JlcnRvPC93ZDpSZXBvcnRpbmdfTmFtZT4KICAgICAgICAgICAgICAgICAgPC93ZDpOYW1lX0RldGFpbF9EYXRhPgogICAgICAgICAgICAgICAgPC93ZDpMZWdhbF9OYW1lX0RhdGE+CiAgICAgICAgICAgICAgICA8d2Q6UHJlZmVycmVkX05hbWVfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOk5hbWVfRGV0YWlsX0RhdGE+CiAgICAgICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YmMzM2FhMzE1MmVjNDJkNDk5NWY0NzkxYTEwNmVkMDk8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IklTT18zMTY2LTFfQWxwaGEtMl9Db2RlIj5VUzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Rmlyc3RfTmFtZT5Sb2I8L3dkOkZpcnN0X05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHdkOkxhc3RfTmFtZT5HYXJjaWE8L3dkOkxhc3RfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Rm9ybWF0dGVkX05hbWU+Um9iIEdhcmNpYTwvd2Q6Rm9ybWF0dGVkX05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHdkOlJlcG9ydGluZ19OYW1lPkdhcmNpYSwgUm9iPC93ZDpSZXBvcnRpbmdfTmFtZT4KICAgICAgICAgICAgICAgICAgPC93ZDpOYW1lX0RldGFpbF9EYXRhPgogICAgICAgICAgICAgICAgPC93ZDpQcmVmZXJyZWRfTmFtZV9EYXRhPgogICAgICAgICAgICAgIDwvd2Q6TmFtZV9EYXRhPgoKICAgICAgICAgICAgICA8d2Q6Q29udGFjdF9EYXRhPgoKICAgICAgICAgICAgICAgIDwhLS0gV29yayBFbWFpbCAtLT4KICAgICAgICAgICAgICAgIDx3ZDpFbWFpbF9BZGRyZXNzX0RhdGE+CiAgICAgICAgICAgICAgICAgIDx3ZDpFbWFpbF9BZGRyZXNzPnJvYmVydG8uZ2FyY2lhQGFjbWVjb3JwLmNvbTwvd2Q6RW1haWxfQWRkcmVzcz4KICAgICAgICAgICAgICAgICAgPHdkOlVzYWdlX0RhdGEgd2Q6UHVibGljPSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9EYXRhIHdkOlByaW1hcnk9InRydWUiPgogICAgICAgICAgICAgICAgICAgICAgPHdkOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5kMGUxZjJhM2I0YzVkNmU3ZjhhOWIwYzFkMmUzZjRhNTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb21tdW5pY2F0aW9uX1VzYWdlX1R5cGVfSUQiPldPUks8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPC93ZDpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3dkOlR5cGVfRGF0YT4KICAgICAgICAgICAgICAgICAgPC93ZDpVc2FnZV9EYXRhPgogICAgICAgICAgICAgICAgPC93ZDpFbWFpbF9BZGRyZXNzX0RhdGE+CgogICAgICAgICAgICAgICAgPCEtLSBXb3JrIFBob25lIC0tPgogICAgICAgICAgICAgICAgPHdkOlBob25lX0RhdGE+CiAgICAgICAgICAgICAgICAgIDx3ZDpJbnRlcm5hdGlvbmFsX1Bob25lX0NvZGU+MTwvd2Q6SW50ZXJuYXRpb25hbF9QaG9uZV9Db2RlPgogICAgICAgICAgICAgICAgICA8d2Q6QXJlYV9Db2RlPjUxMjwvd2Q6QXJlYV9Db2RlPgogICAgICAgICAgICAgICAgICA8d2Q6UGhvbmVfTnVtYmVyPjU1NS0wMzc3PC93ZDpQaG9uZV9OdW1iZXI+CiAgICAgICAgICAgICAgICAgIDx3ZDpQaG9uZV9EZXZpY2VfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+ZTRmNWE2YjdjOGQ5ZTBmMWEyYjNjNGQ1ZTZmN2E4Yjk8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJQaG9uZV9EZXZpY2VfVHlwZV9JRCI+TGFuZGxpbmU8L3dkOklEPgogICAgICAgICAgICAgICAgICA8L3dkOlBob25lX0RldmljZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHdkOlVzYWdlX0RhdGEgd2Q6UHVibGljPSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9EYXRhIHdkOlByaW1hcnk9InRydWUiPgogICAgICAgICAgICAgICAgICAgICAgPHdkOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5kMGUxZjJhM2I0YzVkNmU3ZjhhOWIwYzFkMmUzZjRhNTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb21tdW5pY2F0aW9uX1VzYWdlX1R5cGVfSUQiPldPUks8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPC93ZDpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3dkOlR5cGVfRGF0YT4KICAgICAgICAgICAgICAgICAgPC93ZDpVc2FnZV9EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6Rm9ybWF0dGVkX1Bob25lPisxICg1MTIpIDU1NS0wMzc3PC93ZDpGb3JtYXR0ZWRfUGhvbmU+CiAgICAgICAgICAgICAgICA8L3dkOlBob25lX0RhdGE+CgogICAgICAgICAgICAgICAgPCEtLSBIb21lIEFkZHJlc3MgLS0+CiAgICAgICAgICAgICAgICA8d2Q6QWRkcmVzc19EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YmMzM2FhMzE1MmVjNDJkNDk5NWY0NzkxYTEwNmVkMDk8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJJU09fMzE2Ni0xX0FscGhhLTJfQ29kZSI+VVM8L3dkOklEPgogICAgICAgICAgICAgICAgICA8L3dkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8d2Q6TGFzdF9Nb2RpZmllZD4yMDIzLTExLTAxVDE0OjIyOjAwLjAwMC0wNTowMDwvd2Q6TGFzdF9Nb2RpZmllZD4KICAgICAgICAgICAgICAgICAgPHdkOkFkZHJlc3NfTGluZV9EYXRhIHdkOlR5cGU9IkFERFJFU1NfTElORV8xIj4yMjAwIENvbmdyZXNzIEF2ZW51ZTwvd2Q6QWRkcmVzc19MaW5lX0RhdGE+CiAgICAgICAgICAgICAgICAgIDx3ZDpNdW5pY2lwYWxpdHk+QXVzdGluPC93ZDpNdW5pY2lwYWxpdHk+CiAgICAgICAgICAgICAgICAgIDx3ZDpDb3VudHJ5X1JlZ2lvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTQ8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb3VudHJ5X1JlZ2lvbl9JRCI+VVNBLVRYPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpDb3VudHJ5X1JlZ2lvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpDb3VudHJ5X1JlZ2lvbl9EZXNjcmlwdG9yPlRleGFzPC93ZDpDb3VudHJ5X1JlZ2lvbl9EZXNjcmlwdG9yPgogICAgICAgICAgICAgICAgICA8d2Q6UG9zdGFsX0NvZGU+Nzg3MDE8L3dkOlBvc3RhbF9Db2RlPgogICAgICAgICAgICAgICAgICA8d2Q6Rm9ybWF0dGVkX0FkZHJlc3M+MjIwMCBDb25ncmVzcyBBdmVudWUsIEF1c3RpbiwgVFggNzg3MDEsIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYTwvd2Q6Rm9ybWF0dGVkX0FkZHJlc3M+CiAgICAgICAgICAgICAgICAgIDx3ZDpEZWZhdWx0ZWRfQnVzaW5lc3NfU2l0ZV9BZGRyZXNzPmZhbHNlPC93ZDpEZWZhdWx0ZWRfQnVzaW5lc3NfU2l0ZV9BZGRyZXNzPgogICAgICAgICAgICAgICAgICA8d2Q6VXNhZ2VfRGF0YSB3ZDpQdWJsaWM9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9EYXRhIHdkOlByaW1hcnk9InRydWUiPgogICAgICAgICAgICAgICAgICAgICAgPHdkOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5hMWIyYzNkNGU1ZjZhN2I4YzlkMGUxZjJhM2I0YzVkNjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb21tdW5pY2F0aW9uX1VzYWdlX1R5cGVfSUQiPkhPTUU8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPC93ZDpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3dkOlR5cGVfRGF0YT4KICAgICAgICAgICAgICAgICAgPC93ZDpVc2FnZV9EYXRhPgogICAgICAgICAgICAgICAgPC93ZDpBZGRyZXNzX0RhdGE+CgogICAgICAgICAgICAgIDwvd2Q6Q29udGFjdF9EYXRhPgoKICAgICAgICAgICAgICA8d2Q6QmlvZ3JhcGhpY2FsX0RhdGE+CiAgICAgICAgICAgICAgICA8d2Q6RGF0ZV9vZl9CaXJ0aD4xOTkyLTExLTAzPC93ZDpEYXRlX29mX0JpcnRoPgogICAgICAgICAgICAgICAgPHdkOkdlbmRlcl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjBhMWIyYzNkNGU1ZjZhN2I4YzlkMGUxZjJhM2I0YzVkPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkdlbmRlcl9JRCI+TWFsZTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICA8L3dkOkdlbmRlcl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9vZl9CaXJ0aF9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmJjMzNhYTMxNTJlYzQyZDQ5OTVmNDc5MWExMDZlZDA5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IklTT18zMTY2LTFfQWxwaGEtMl9Db2RlIj5VUzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICA8L3dkOkNvdW50cnlfb2ZfQmlydGhfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgPHdkOk1hcml0YWxfU3RhdHVzX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+ZDVlNmY3YThiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTA8L3dkOklEPgogICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iTWFyaXRhbF9TdGF0dXNfSUQiPlNpbmdsZTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICA8L3dkOk1hcml0YWxfU3RhdHVzX1JlZmVyZW5jZT4KICAgICAgICAgICAgICA8L3dkOkJpb2dyYXBoaWNhbF9EYXRhPgoKICAgICAgICAgICAgICA8d2Q6SWRlbnRpZmljYXRpb25fRGF0YT4KICAgICAgICAgICAgICAgIDx3ZDpOYXRpb25hbF9JRD4KICAgICAgICAgICAgICAgICAgPHdkOk5hdGlvbmFsX0lEX0RhdGE+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEPioqKi0qKi00MzIxPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SURfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5lOGY5YTBiMWMyZDNlNGY1YTZiN2M4ZDllMGYxYTJiMzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iTmF0aW9uYWxfSURfVHlwZV9Db2RlIj5VU0EtU1NOPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8L3dkOklEX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmJjMzNhYTMxNTJlYzQyZDQ5OTVmNDc5MWExMDZlZDA5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJJU09fMzE2Ni0xX0FscGhhLTJfQ29kZSI+VVM8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDwvd2Q6TmF0aW9uYWxfSURfRGF0YT4KICAgICAgICAgICAgICAgIDwvd2Q6TmF0aW9uYWxfSUQ+CiAgICAgICAgICAgICAgPC93ZDpJZGVudGlmaWNhdGlvbl9EYXRhPgoKICAgICAgICAgICAgPC93ZDpQZXJzb25hbF9EYXRhPgoKICAgICAgICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgICAgICAgICAgPCEtLSBFTVBMT1lNRU5UIERBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+CiAgICAgICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgICAgIDx3ZDpFbXBsb3ltZW50X0RhdGE+CgogICAgICAgICAgICAgIDx3ZDpXb3JrZXJfSm9iX0RhdGE+CiAgICAgICAgICAgICAgICA8d2Q6UG9zaXRpb25fRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOlBvc2l0aW9uX0lEPlAtMDAzODg3PC93ZDpQb3NpdGlvbl9JRD4KICAgICAgICAgICAgICAgICAgPHdkOlBvc2l0aW9uX1RpdGxlPkZpbmFuY2lhbCBBbmFseXN0PC93ZDpQb3NpdGlvbl9UaXRsZT4KICAgICAgICAgICAgICAgICAgPHdkOkJ1c2luZXNzX1RpdGxlPkZpbmFuY2lhbCBBbmFseXN0IElJPC93ZDpCdXNpbmVzc19UaXRsZT4KICAgICAgICAgICAgICAgICAgPHdkOlN0YXJ0X0RhdGU+MjAyMi0wNi0wMTwvd2Q6U3RhcnRfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOkVuZF9EYXRlPjIwMjUtMTItMjA8L3dkOkVuZF9EYXRlPgogICAgICAgICAgICAgICAgICA8d2Q6RGVmYXVsdF9XZWVrbHlfSG91cnM+NDA8L3dkOkRlZmF1bHRfV2Vla2x5X0hvdXJzPgogICAgICAgICAgICAgICAgICA8d2Q6U2NoZWR1bGVkX1dlZWtseV9Ib3Vycz40MDwvd2Q6U2NoZWR1bGVkX1dlZWtseV9Ib3Vycz4KICAgICAgICAgICAgICAgICAgPHdkOkZ1bGxfVGltZV9FcXVpdmFsZW50X1BlcmNlbnRhZ2U+MTAwPC93ZDpGdWxsX1RpbWVfRXF1aXZhbGVudF9QZXJjZW50YWdlPgoKICAgICAgICAgICAgICAgICAgPHdkOlBvc2l0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5jY2Q4ZTlmMGExYjJjM2Q0ZTVmNmE3YjhjOWQwZTFmMjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IlBvc2l0aW9uX0lEIj5QLTAwMzg4Nzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDwvd2Q6UG9zaXRpb25fUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPHdkOldvcmtlcl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5kNGU1ZjZhN2I4YzlkMGUxZjJhM2I0YzVkNmU3ZjhhOTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ildvcmtlcl9UeXBlX0lEIj5SZWd1bGFyPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpXb3JrZXJfVHlwZV9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgICA8d2Q6Sm9iX1Byb2ZpbGVfU3VtbWFyeV9EYXRhPgogICAgICAgICAgICAgICAgICAgIDx3ZDpKb2JfUHJvZmlsZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5hYTExYmIyMmNjMzNkZDQ0ZWU1NWZmNjYwMDc3ODg5OTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSm9iX1Byb2ZpbGVfSUQiPkpQLUZJTi1BTkw8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6Sm9iX1Byb2ZpbGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpKb2JfUHJvZmlsZV9OYW1lPkZpbmFuY2lhbCBBbmFseXN0PC93ZDpKb2JfUHJvZmlsZV9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpNYW5hZ2VtZW50X0xldmVsX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjJiM2M0ZDVlNmY3YThiOWMwZDFlMmYzYTRiNWM2ZDdlPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJNYW5hZ2VtZW50X0xldmVsX0lEIj5JbmRpdmlkdWFsX0NvbnRyaWJ1dG9yPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8L3dkOk1hbmFnZW1lbnRfTGV2ZWxfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpKb2JfQ2F0ZWdvcnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YmIyMmNjMzNkZDQ0ZWU1NWZmNjYwMDc3ODg5OTAwMTE8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkpvYl9DYXRlZ29yeV9JRCI+RmluYW5jZTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpKb2JfQ2F0ZWdvcnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpKb2JfRmFtaWx5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmNjMzNkZDQ0ZWU1NWZmNjYwMDc3ODg5OTAwMTEyMjMzPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJKb2JfRmFtaWx5X0lEIj5KRi1GaW5hbmNlPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8L3dkOkpvYl9GYW1pbHlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8L3dkOkpvYl9Qcm9maWxlX1N1bW1hcnlfRGF0YT4KCiAgICAgICAgICAgICAgICAgIDx3ZDpCdXNpbmVzc19TaXRlX1N1bW1hcnlfRGF0YT4KICAgICAgICAgICAgICAgICAgICA8d2Q6TmFtZT5BdXN0aW4gT2ZmaWNlPC93ZDpOYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpMb2NhdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5kZDQ0ZWU1NWZmNjYwMDc3ODg5OTAwMTEyMjMzNDRhYTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iTG9jYXRpb25fSUQiPkxPQy1BVVMtMDE8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6TG9jYXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpMb2NhdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjZmN2E4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJMb2NhdGlvbl9UeXBlX0lEIj5PZmZpY2U8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6TG9jYXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOkFkZHJlc3NfRGF0YT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IklTT18zMTY2LTFfQWxwaGEtMl9Db2RlIj5VUzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3dkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOkFkZHJlc3NfTGluZV9EYXRhIHdkOlR5cGU9IkFERFJFU1NfTElORV8xIj41MDAgV2VzdCAybmQgU3RyZWV0PC93ZDpBZGRyZXNzX0xpbmVfRGF0YT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpBZGRyZXNzX0xpbmVfRGF0YSB3ZDpUeXBlPSJBRERSRVNTX0xJTkVfMiI+Rmxvb3IgMTI8L3dkOkFkZHJlc3NfTGluZV9EYXRhPgogICAgICAgICAgICAgICAgICAgICAgPHdkOk11bmljaXBhbGl0eT5BdXN0aW48L3dkOk11bmljaXBhbGl0eT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpDb3VudHJ5X1JlZ2lvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb3VudHJ5X1JlZ2lvbl9JRCI+VVNBLVRYPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6Q291bnRyeV9SZWdpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfUmVnaW9uX0Rlc2NyaXB0b3I+VGV4YXM8L3dkOkNvdW50cnlfUmVnaW9uX0Rlc2NyaXB0b3I+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6UG9zdGFsX0NvZGU+Nzg3MDE8L3dkOlBvc3RhbF9Db2RlPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6QWRkcmVzc19EYXRhPgogICAgICAgICAgICAgICAgICA8L3dkOkJ1c2luZXNzX1NpdGVfU3VtbWFyeV9EYXRhPgoKICAgICAgICAgICAgICAgICAgPHdkOlBheV9SYXRlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjdhOGI5YzBkMWUyZjNhNGI1YzZkN2U4ZjlhMGIxYzJkPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iUGF5X1JhdGVfVHlwZV9JRCI+U2FsYXJ5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpQYXlfUmF0ZV9UeXBlX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICAgIDx3ZDpQb3NpdGlvbl9UaW1lX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjhiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iUG9zaXRpb25fVGltZV9UeXBlX0lEIj5GdWxsX3RpbWU8L3dkOklEPgogICAgICAgICAgICAgICAgICA8L3dkOlBvc2l0aW9uX1RpbWVfVHlwZV9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgICA8d2Q6U3VwZXJ2aXNvcnlfT3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5lZTU1ZmY2NjAwNzc4ODk5MDAxMTIyMzM0NDU1NjZiYjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik9yZ2FuaXphdGlvbl9SZWZlcmVuY2VfSUQiPkZJTi1DT1JQLTAwMTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDwvd2Q6U3VwZXJ2aXNvcnlfT3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICAgIDx3ZDpPcmdhbml6YXRpb25fRGF0YT4KICAgICAgICAgICAgICAgICAgICA8d2Q6V29ya2VyX09yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6T3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5mZjY2MDA3Nzg4OTkwMDExMjIzMzQ0NTU2Njc3ODg5OTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik9yZ2FuaXphdGlvbl9SZWZlcmVuY2VfSUQiPkNDLTMyMDA8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb3N0X0NlbnRlcl9SZWZlcmVuY2VfSUQiPkNDLTMyMDA8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8L3dkOk9yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpPcmdhbml6YXRpb25fTmFtZT5GaW5hbmNlIC0gQ29ycG9yYXRlPC93ZDpPcmdhbml6YXRpb25fTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj4xZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTRmNWE2Yjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik9yZ2FuaXphdGlvbl9UeXBlX0lEIj5Db3N0X0NlbnRlcjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6T3JnYW5pemF0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPC93ZDpPcmdhbml6YXRpb25fRGF0YT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpPcmdhbml6YXRpb25fRGF0YT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+MmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlNGY1YTZiN2M8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJPcmdhbml6YXRpb25fUmVmZXJlbmNlX0lEIj5DT01QLUFDTUU8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb21wYW55X1JlZmVyZW5jZV9JRCI+Q09NUC1BQ01FPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPC93ZDpPcmdhbml6YXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6T3JnYW5pemF0aW9uX05hbWU+QWNtZSBDb3Jwb3JhdGlvbjwvd2Q6T3JnYW5pemF0aW9uX05hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpPcmdhbml6YXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+M2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTRmNWE2YjdjOGQ8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJPcmdhbml6YXRpb25fVHlwZV9JRCI+Q29tcGFueTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6T3JnYW5pemF0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPC93ZDpPcmdhbml6YXRpb25fRGF0YT4KICAgICAgICAgICAgICAgICAgICA8L3dkOldvcmtlcl9Pcmdhbml6YXRpb25fRGF0YT4KICAgICAgICAgICAgICAgICAgPC93ZDpPcmdhbml6YXRpb25fRGF0YT4KCiAgICAgICAgICAgICAgICA8L3dkOlBvc2l0aW9uX0RhdGE+CgogICAgICAgICAgICAgICAgPHdkOk1hbmFnZXJfYXNfb2ZfbGFzdF9kZXRlY3RlZF9tYW5hZ2VyX2NoYW5nZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjExMjIzMzQ0NTU2Njc3ODg5OTAwMTFhYWJiY2NkZGVlPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkVtcGxveWVlX0lEIj4xMDAxMDI8L3dkOklEPgogICAgICAgICAgICAgICAgPC93ZDpNYW5hZ2VyX2FzX29mX2xhc3RfZGV0ZWN0ZWRfbWFuYWdlcl9jaGFuZ2VfUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgIDx3ZDpXb3JrZXJfU3RhdHVzX0RhdGE+CiAgICAgICAgICAgICAgICAgIDx3ZDpBY3RpdmU+ZmFsc2U8L3dkOkFjdGl2ZT4KICAgICAgICAgICAgICAgICAgPHdkOkFjdGl2ZV9TdGF0dXNfRGF0ZT4yMDIyLTA2LTAxPC93ZDpBY3RpdmVfU3RhdHVzX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpIaXJlX0RhdGU+MjAyMi0wNi0wMTwvd2Q6SGlyZV9EYXRlPgogICAgICAgICAgICAgICAgICA8d2Q6T3JpZ2luYWxfSGlyZV9EYXRlPjIwMjItMDYtMDE8L3dkOk9yaWdpbmFsX0hpcmVfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOkVuZF9FbXBsb3ltZW50X0RhdGU+MjAyNS0xMi0yMDwvd2Q6RW5kX0VtcGxveW1lbnRfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOkNvbnRpbnVvdXNfU2VydmljZV9EYXRlPjIwMjItMDYtMDE8L3dkOkNvbnRpbnVvdXNfU2VydmljZV9EYXRlPgogICAgICAgICAgICAgICAgICA8d2Q6Rmlyc3RfRGF5X29mX1dvcms+MjAyMi0wNi0wMTwvd2Q6Rmlyc3RfRGF5X29mX1dvcms+CiAgICAgICAgICAgICAgICAgIDx3ZDpTZW5pb3JpdHlfRGF0ZT4yMDIyLTA2LTAxPC93ZDpTZW5pb3JpdHlfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOkJlbmVmaXRzX1NlcnZpY2VfRGF0ZT4yMDIyLTA2LTAxPC93ZDpCZW5lZml0c19TZXJ2aWNlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpDb21wYW55X1NlcnZpY2VfRGF0ZT4yMDIyLTA2LTAxPC93ZDpDb21wYW55X1NlcnZpY2VfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOlJldGlyZWQ+ZmFsc2U8L3dkOlJldGlyZWQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpUZXJtaW5hdGVkPnRydWU8L3dkOlRlcm1pbmF0ZWQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpUZXJtaW5hdGlvbl9EYXRlPjIwMjUtMTItMjA8L3dkOlRlcm1pbmF0aW9uX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpQYXlfVGhyb3VnaF9EYXRlPjIwMjUtMTItMzE8L3dkOlBheV9UaHJvdWdoX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpUZXJtaW5hdGlvbl9DYXRlZ29yeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YWFiYjExMjJjY2RkMzM0NGVlZmY1NTY2YWFiYjc3ODg8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJUZXJtaW5hdGlvbl9DYXRlZ29yeV9JRCI+Vm9sdW50YXJ5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpUZXJtaW5hdGlvbl9DYXRlZ29yeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpQcmltYXJ5X1Rlcm1pbmF0aW9uX1JlYXNvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+Y2NkZDMzNDRlZWZmNTU2NmFhYmI3Nzg4OTkwMDExMjI8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJUZXJtaW5hdGlvbl9SZWFzb25fSUQiPlJlc2lnbmF0aW9uIC0gTmV3IE9wcG9ydHVuaXR5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpQcmltYXJ5X1Rlcm1pbmF0aW9uX1JlYXNvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpSZWhpcmU+ZmFsc2U8L3dkOlJlaGlyZT4KICAgICAgICAgICAgICAgICAgPHdkOkRheXNfVW5lbXBsb3llZD4wPC93ZDpEYXlzX1VuZW1wbG95ZWQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpOb3RfUmV0dXJuaW5nPnRydWU8L3dkOk5vdF9SZXR1cm5pbmc+CiAgICAgICAgICAgICAgICAgIDx3ZDpSZXNpZ25hdGlvbl9EYXRlPjIwMjUtMTEtMjA8L3dkOlJlc2lnbmF0aW9uX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpMYXN0X0RheV9vZl9Xb3JrPjIwMjUtMTItMTk8L3dkOkxhc3RfRGF5X29mX1dvcms+CiAgICAgICAgICAgICAgICAgIDx3ZDpFbGlnaWJsZV9mb3JfUmVoaXJlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5lZWZmNTU2NmFhYmI3Nzg4OTkwMDExMjJjY2RkMzM0NDwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkVsaWdpYmxlX2Zvcl9SZWhpcmVfSUQiPlllczwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDwvd2Q6RWxpZ2libGVfZm9yX1JlaGlyZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICA8L3dkOldvcmtlcl9TdGF0dXNfRGF0YT4KCiAgICAgICAgICAgICAgPC93ZDpXb3JrZXJfSm9iX0RhdGE+CgogICAgICAgICAgICA8L3dkOkVtcGxveW1lbnRfRGF0YT4KCiAgICAgICAgICA8L3dkOldvcmtlcl9EYXRhPgogICAgICAgIDwvd2Q6V29ya2VyPgoKICAgICAgPC93ZDpSZXNwb25zZV9EYXRhPgogICAgPC93ZDpHZXRfV29ya2Vyc19SZXNwb25zZT4KICA8L2VudjpCb2R5Pgo8L2VudjpFbnZlbG9wZT4="} \ No newline at end of file diff --git a/src/pages/tools/xpath-evaluator.tsx b/src/pages/tools/xpath-evaluator.tsx new file mode 100644 index 0000000000000..70de3b87f1dd4 --- /dev/null +++ b/src/pages/tools/xpath-evaluator.tsx @@ -0,0 +1,233 @@ +import React, {useState} from 'react'; +import Layout from '@theme/Layout'; +import styles from './xpath.module.css'; +import Alert from '@mui/material/Alert'; +import Stack from '@mui/material/Stack'; +import Link from '@mui/material/Link'; +import TerminalFontSizeDropdown from '../../components/xpath/TerminalFontSizeDropdown'; +import InputTerminal from '../../components/xpath/InputTerminal'; +import ResultTerminal from '../../components/xpath/ResultTerminal'; +import ImplementationDropdown from '../../components/xpath/ImplementationDropdown'; +import XPathQueryInput from '../../components/xpath/XPathQueryInput'; +import XPathRootInput from '../../components/xpath/XPathRootInput'; +import { + evaluateXPath, +} from '../../services/XPathService'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import Button from '@mui/material/Button'; + +// Define the type for implementation options +type ImplementationType = 'XPath'; + +// Define the documentation links type +const documentationLinks: Record< + ImplementationType, + {url: string; text: string} +> = { + XPath: { + url: 'https://en.wikipedia.org/wiki/XPath', + text: 'XPath Documentation', + }, +}; + const sampleXmlFile = require('./sample.xml.json') + let buffer = new Buffer(sampleXmlFile.xml, 'base64'); + const sampleXml = buffer.toString(); + + const XPathEvaluator: React.FC = () => { + const [result, setResult] = useState(JSON.stringify([], null, 4)); + const [query, setQuery] = useState('wd:Worker_Data/wd:Personal_Data/wd:Name_Data/wd:Legal_Name_Data/wd:Name_Detail_Data/wd:Last_Name | wd:Applicant_Data/wd:Personal_Data/wd:Name_Data/wd:Legal_Name_Data/wd:Name_Detail_Data/wd:Last_Name'); + const [root, setRoot] = useState('//wd:Response_Data/wd:Worker'); + const [queryParseError, setQueryParseError] = useState(''); + const [fontSize, setFontSize] = useState('16'); + const [inputXml, setInputXml] = useState(sampleXml); + const [implementation, setImplementation] = + useState('XPath'); + const [localXml, setLocalXml] = useState(inputXml); + const [xmlParseError, setXmlParseError] = useState(false); + const [isQueryFocused, setIsQueryFocused] = useState(false); + const [isRootFocused, setIsRootFocused] = useState(false); + const [isDropdownFocused, setIsDropdownFocused] = useState(false); + const {siteConfig} = useDocusaurusContext(); + + // Apply XPath query + const applyXPathQuery = async (xml: string, xPath: string, root: string) => { + if (xPath.length === 0 || xPath === '//') { + setResult('[]'); + return; + } + + try { + let result: any; + let tempResult: any; + + try { + switch (implementation) { + case 'XPath': + tempResult = await evaluateXPath( + 'https://o2352gowwy55a4vviyswr76lxu0ednjs.lambda-url.us-east-2.on.aws/', + xPath, + root, + xml, + ); + result = tempResult.error ? tempResult.error : tempResult; + break; + } + } catch (error: any) { + result = error.message; + } + + setResult( + result.length > 0 || + typeof result === 'number' || + typeof result === 'object' || + typeof result === 'boolean' + ? JSON.stringify(result, null, 2) + : 'No match', + ); + setQueryParseError(''); + setXmlParseError(false); + } catch (error: any) { + setResult('No match'); + setXmlParseError(true); + setQueryParseError(error.message || 'Error executing XPath query'); + } + }; + + // Handle input change + const handleXmlChange = (newxml: string) => { + setLocalXml(newxml); + }; + + // Handle query input change + const handleQueryChange = (event: React.ChangeEvent) => { + setQuery(event.target.value); + }; + + // Handle root input change + const handleRootChange = (event: React.ChangeEvent) => { + setRoot(event.target.value); + }; + + // Handle implementation change + const handleImplementationChange = ( + newImplementation: ImplementationType, + ) => { + setImplementation(newImplementation); + }; + + // Handle focus events + const handleQueryFocus = () => setIsQueryFocused(true); + const handleQueryBlur = () => setIsQueryFocused(false); + const handleRootFocus = () => setIsRootFocused(true); + const handleRootBlur = () => setIsRootFocused(false); + const handleDropdownFocus = () => setIsDropdownFocused(true); + const handleDropdownBlur = () => setIsDropdownFocused(false); + + // Run button handler + const handleRunQuery = () => { + applyXPathQuery(localXml, query, root); + }; + + return ( + +
+
+
+ + + + {documentationLinks[implementation] && ( + + {documentationLinks[implementation].text} + + )} + + + + {queryParseError && ( +
+ + {queryParseError} + +
+ )} +
+ + + {(false && + + )} + + + + +
+
+ + + + + +
+
+
+ ); +}; + +export default XPathEvaluator; diff --git a/src/pages/tools/xpath.module.css b/src/pages/tools/xpath.module.css new file mode 100644 index 0000000000000..8d71f391778ca --- /dev/null +++ b/src/pages/tools/xpath.module.css @@ -0,0 +1,96 @@ +.containerFluid { + margin: 20px; +} + +.actionBar { + margin-top: 2%; + margin-bottom: 2%; +} + +.alertContainer { + min-height: 50px; +} + +.inputTerminalContainer { + border: 3px solid red !important; + background: var(--terminal-background) !important; +} + +.terminalContainerDefault { + border: 3px solid var(--dev-card-background) !important; + background: var(--terminal-background) !important; +} + +a[id^='xpathDocumentationLink'] { + color: var(--link-color) !important; + text-decoration: underline !important; +} + +a[id^='xpathDocumentationLink']:hover { + text-decoration: none!important; +} + +li[class^='MuiButtonBase-root'] { + color: var(--ifm-primary-text-color); +} +div[class^='MuiFormControl-root'] { + color: var(--ifm-primary-text-color); +} +div[id^='terminal-font-size-select'], +div[id^='implementation-dropdown-select'] { + color: var(--ifm-primary-text-color); +} + +input[id^='outlined-basic-xpath-input'], +label[id^='outlined-basic-xpath-input-label'], +select[id^='terminal-font-size-select'], +label[id^='terminal-font-size-label'], +select[id^='implementation-dropdown-select'], +label[id^='implementation-dropdown-label'] { + color: var(--ifm-primary-text-color); +} +input[id^='outlined-basic-xpath-input'], +div[id^='terminal-font-size-select'], +div[id^='implementation-dropdown-select'] { + background: var(--terminal-background); +} +fieldset[class^='MuiOutlinedInput-notchedOutline css-1ll44ll-MuiOutlinedInput-notchedOutline'] { + border: 1.5px solid var(--terminal-background); +} +ul[class^='MuiList-root MuiList-padding MuiMenu-list css-1toxriw-MuiList-root-MuiMenu-list'] { + background-color: var(--terminal-background); +} +ul[class^='MuiMenu-list'] { + background-color: var(--terminal-background); +} +div[class^='MuiPaper-root'] { + background-color: var(--terminal-background) !important; +} + +span[class^='ace_variable'] { + color: var(--terminal-key) !important; +} +span[class^='ace_string'] { + color: var(--terminal-value) !important; +} + +div [id^='xpathalert'] { + color: rgb(244, 67, 54); + border: 1px solid rgb(244, 67, 54); +} + +.actionBar button { + min-width: 100px; +} + +.runButton { + color: var(--ifm-button-colors) !important; + border: 1px solid var(--ifm-button-colors) !important; + background-color: var(--dropdown-background) !important; +} + +.runButton:hover { + background-color: var(--ifm-button-colors) !important; + color: var(--text-on-primary) !important; + border: 1px solid var(--ifm-button-colors) !important; +} diff --git a/src/services/XPathService.ts b/src/services/XPathService.ts new file mode 100644 index 0000000000000..2b471841174af --- /dev/null +++ b/src/services/XPathService.ts @@ -0,0 +1,58 @@ +// Common function to handle XPath evaluation +export async function evaluateXPath( + gatewayUrl: string, + xPathQuery: string, + rootPath: string, + xmlData: string | object +): Promise { + const buffer = Buffer.from(xmlData); + const xmlb64String = buffer.toString('base64'); + + const requestBody = { + attributeMappings: { + 'XPath Query Result': xPathQuery + }, + rootPath: rootPath, + xml: xmlb64String + }; + + try { + const response = await fetch(`${gatewayUrl}`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(requestBody) + }); + + if (!response.ok) { + const errorResponse = await response.json(); + console.error('JSONPath error:', errorResponse.error); + + // Handle rate limiting specifically + if (response.status === 429) { + throw new Error('Too many requests. Please wait a moment and try again.'); + } + + throw new Error(`XPath evaluation error: ${errorResponse.error}`); + } + + const json = await response.json(); + console.log('Response JSON: ' + json); + + // Parse the result if it's a string containing JSON + if (json.result && typeof json.result === 'string') { + try { + json.result = JSON.parse(json.result); + } catch (e) { + // If it's not valid JSON, keep the original string + console.log('Result was not JSON parseable, keeping as is'); + } + } + + return json; + } catch (error) { + console.error('Error evaluating XPath:', error); + throw error; + } +} \ No newline at end of file From 893d86b14cd151f35f8f4fa6f513ee4a8b59143e Mon Sep 17 00:00:00 2001 From: ken-werner-sp Date: Wed, 1 Apr 2026 22:36:16 -0700 Subject: [PATCH 2/4] bugfixes Terminal class updates based on error bool hasXmlParseError Ace Editor module URL correction --- src/components/xpath/InputTerminal/index.tsx | 10 +++++----- src/pages/tools/xpath-evaluator.tsx | 16 +++++++--------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/components/xpath/InputTerminal/index.tsx b/src/components/xpath/InputTerminal/index.tsx index 20906415062e2..5c464b1845cf3 100644 --- a/src/components/xpath/InputTerminal/index.tsx +++ b/src/components/xpath/InputTerminal/index.tsx @@ -12,7 +12,7 @@ import styles from '../../../pages/tools/xpath.module.css'; declare const ace: any; if (typeof ace !== 'undefined' && ace.config) { ace.config.setModuleUrl( - 'ace/mode/json_worker', + 'ace/mode/xml_worker', new URL( 'https://ajaxorg.github.io/ace-builds/src-noconflict/worker-xml.js' ).toString(), @@ -23,7 +23,7 @@ interface InputTerminalProps { fontSize: string; value: string; onChange: (value: string) => void; - hasJsonParseError?: boolean; + hasXmlParseError?: boolean; mode?: 'xml' | 'text'; // 🔄 new optional mode prop } @@ -31,12 +31,12 @@ const InputTerminal: React.FC = ({ fontSize, value, onChange, - hasJsonParseError = false, - mode = 'xml', // default to 'json' for backward compatibility + hasXmlParseError = false, + mode = 'xml', }) => { const { colorMode } = useColorMode(); - const terminalClass = hasJsonParseError + const terminalClass = hasXmlParseError ? styles.inputTerminalContainer : styles.terminalContainerDefault; diff --git a/src/pages/tools/xpath-evaluator.tsx b/src/pages/tools/xpath-evaluator.tsx index 70de3b87f1dd4..9a6e09698b7ce 100644 --- a/src/pages/tools/xpath-evaluator.tsx +++ b/src/pages/tools/xpath-evaluator.tsx @@ -30,7 +30,7 @@ const documentationLinks: Record< }, }; const sampleXmlFile = require('./sample.xml.json') - let buffer = new Buffer(sampleXmlFile.xml, 'base64'); + let buffer = Buffer.from(sampleXmlFile.xml, 'base64') const sampleXml = buffer.toString(); const XPathEvaluator: React.FC = () => { @@ -150,6 +150,12 @@ const documentationLinks: Record< onFocus={handleRootFocus} onBlur={handleRootBlur} /> + {documentationLinks[implementation] && ( )} - - - {queryParseError && (
From 6fad506c61f9ea0f440228637ee3d8db156c5c30 Mon Sep 17 00:00:00 2001 From: ken-werner-sp Date: Wed, 1 Apr 2026 23:07:31 -0700 Subject: [PATCH 3/4] Add xpath lambda to cloudfront csp --- template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template.yaml b/template.yaml index 0b470e74d6c35..29048fe351ea2 100644 --- a/template.yaml +++ b/template.yaml @@ -360,7 +360,7 @@ Resources: Comment: "Security headers for developer.sailpoint.com including CSP" SecurityHeadersConfig: ContentSecurityPolicy: - ContentSecurityPolicy: "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://code.jquery.com https://www.googletagmanager.com https://cdn.jsdelivr.net https://cdn.cookielaw.org https://googleads.g.doubleclick.net; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://p.typekit.net https://use.typekit.net; img-src 'self' data: https: http:; font-src 'self' data: https://cdn.jsdelivr.net https://use.typekit.net https://cdnjs.cloudflare.com; connect-src 'self' http://localhost:3000 https://*.algolia.net https://*.algolianet.com https://www.googletagmanager.com https://www.google.com https://analytics.google.com https://developer.sailpoint.com https://nug87yusrg.execute-api.us-east-1.amazonaws.com https://cdn.cookielaw.org https://stats.g.doubleclick.net https://googleads.g.doubleclick.net https://*.api.identitynow.com https://*.api.identitynow-demo.com; frame-src 'self' https://www.googletagmanager.com https://www.youtube.com https://play.vidyard.com; worker-src 'self' blob:;" + ContentSecurityPolicy: "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://code.jquery.com https://www.googletagmanager.com https://cdn.jsdelivr.net https://cdn.cookielaw.org https://googleads.g.doubleclick.net; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://p.typekit.net https://use.typekit.net; img-src 'self' data: https: http:; font-src 'self' data: https://cdn.jsdelivr.net https://use.typekit.net https://cdnjs.cloudflare.com; connect-src 'self' http://localhost:3000 https://*.algolia.net https://*.algolianet.com https://www.googletagmanager.com https://www.google.com https://analytics.google.com https://developer.sailpoint.com https://nug87yusrg.execute-api.us-east-1.amazonaws.com https://o2352gowwy55a4vviyswr76lxu0ednjs.lambda-url.us-east-2.on.aws https://cdn.cookielaw.org https://stats.g.doubleclick.net https://googleads.g.doubleclick.net https://*.api.identitynow.com https://*.api.identitynow-demo.com; frame-src 'self' https://www.googletagmanager.com https://www.youtube.com https://play.vidyard.com; worker-src 'self' blob:;" Override: true Parameters: AuthUsername: From 8ebe24e534fbb57665d0f39c39b96a1e8d13c3ca Mon Sep 17 00:00:00 2001 From: ken-werner-sp Date: Wed, 1 Apr 2026 23:35:59 -0700 Subject: [PATCH 4/4] Update sample data Remove fake "WorkDay" data, use fake data from nonexistent HR source "Xylophonic HR" --- src/pages/tools/sample.xml.json | 2 +- src/pages/tools/xpath-evaluator.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/tools/sample.xml.json b/src/pages/tools/sample.xml.json index 53add47309662..c4935a5ff0468 100644 --- a/src/pages/tools/sample.xml.json +++ b/src/pages/tools/sample.xml.json @@ -1 +1 @@ -{"xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGVudjpFbnZlbG9wZQogICAgeG1sbnM6ZW52PSJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy9zb2FwL2VudmVsb3BlLyIKICAgIHhtbG5zOndkPSJ1cm46Y29tLndvcmtkYXkvYnN2YyI+CiAgPGVudjpCb2R5PgogICAgPHdkOkdldF9Xb3JrZXJzX1Jlc3BvbnNlIHdkOnZlcnNpb249InY0My4wIj4KCiAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICA8IS0tIFJFU1BPTlNFIEZJTFRFUiAvIFBBR0lOQVRJT04gTUVUQURBVEEgICAgICAgICAgICAgICAgICAgICAgICAtLT4KICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgIDx3ZDpSZXF1ZXN0X1JlZmVyZW5jZXM+CiAgICAgICAgPCEtLSBPbWl0dGVkIHdoZW4gbm8gZmlsdGVyIHdhcyBhcHBsaWVkIChpLmUuIGFsbCB3b3JrZXJzIHJldHVybmVkKSAtLT4KICAgICAgPC93ZDpSZXF1ZXN0X1JlZmVyZW5jZXM+CgogICAgICA8d2Q6UmVzcG9uc2VfRmlsdGVyPgogICAgICAgIDx3ZDpBc19PZl9FZmZlY3RpdmVfRGF0ZT4yMDI2LTAzLTMwPC93ZDpBc19PZl9FZmZlY3RpdmVfRGF0ZT4KICAgICAgICA8d2Q6QXNfT2ZfRW50cnlfRGF0ZVRpbWU+MjAyNi0wMy0zMFQxMjowMDowMC4wMDAtMDc6MDA8L3dkOkFzX09mX0VudHJ5X0RhdGVUaW1lPgogICAgICAgIDx3ZDpQYWdlPjE8L3dkOlBhZ2U+CiAgICAgICAgPHdkOkNvdW50PjEwMDwvd2Q6Q291bnQ+CiAgICAgIDwvd2Q6UmVzcG9uc2VfRmlsdGVyPgoKICAgICAgPHdkOlJlc3BvbnNlX1Jlc3VsdHM+CiAgICAgICAgPHdkOlRvdGFsX1Jlc3VsdHM+Mjwvd2Q6VG90YWxfUmVzdWx0cz4KICAgICAgICA8d2Q6VG90YWxfUGFnZXM+MTwvd2Q6VG90YWxfUGFnZXM+CiAgICAgICAgPHdkOlBhZ2VfUmVzdWx0cz4yPC93ZDpQYWdlX1Jlc3VsdHM+CiAgICAgICAgPHdkOlBhZ2U+MTwvd2Q6UGFnZT4KICAgICAgPC93ZDpSZXNwb25zZV9SZXN1bHRzPgoKICAgICAgPHdkOlJlc3BvbnNlX0RhdGE+CgogICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICAgIDwhLS0gV09SS0VSIDEg4oCUIEFjdGl2ZSBFbXBsb3llZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+CiAgICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgPHdkOldvcmtlcj4KICAgICAgICAgIDx3ZDpXb3JrZXJfUmVmZXJlbmNlPgogICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj4zYWE1NTUwYjdmZTM0OGI1YWU4OGMzYWYxYjQ4YzU3Mzwvd2Q6SUQ+CiAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJFbXBsb3llZV9JRCI+MTAwMjM0PC93ZDpJRD4KICAgICAgICAgIDwvd2Q6V29ya2VyX1JlZmVyZW5jZT4KCiAgICAgICAgICA8d2Q6V29ya2VyX0RhdGE+CiAgICAgICAgICAgIDx3ZDpXb3JrZXJfSUQ+MTAwMjM0PC93ZDpXb3JrZXJfSUQ+CiAgICAgICAgICAgIDx3ZDpVc2VyX0lEPmpzbWl0aDwvd2Q6VXNlcl9JRD4KCiAgICAgICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgICAgIDwhLS0gUEVSU09OQUwgREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPgogICAgICAgICAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICAgICAgICA8d2Q6UGVyc29uYWxfRGF0YT4KCiAgICAgICAgICAgICAgPCEtLSA9PT0gTmFtZSBEYXRhID09PSAtLT4KICAgICAgICAgICAgICA8d2Q6TmFtZV9EYXRhPgogICAgICAgICAgICAgICAgPHdkOkxlZ2FsX05hbWVfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOk5hbWVfRGV0YWlsX0RhdGE+CiAgICAgICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YmMzM2FhMzE1MmVjNDJkNDk5NWY0NzkxYTEwNmVkMDk8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IklTT18zMTY2LTFfQWxwaGEtMl9Db2RlIj5VUzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSVNPXzMxNjYtMV9BbHBoYS0zX0NvZGUiPlVTQTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Rmlyc3RfTmFtZT5KYW5lPC93ZDpGaXJzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpNaWRkbGVfTmFtZT5NYXJpZTwvd2Q6TWlkZGxlX05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHdkOkxhc3RfTmFtZT5TbWl0aDwvd2Q6TGFzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpGb3JtYXR0ZWRfTmFtZT5KYW5lIE1hcmllIFNtaXRoPC93ZDpGb3JtYXR0ZWRfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6UmVwb3J0aW5nX05hbWU+U21pdGgsIEphbmUgTWFyaWU8L3dkOlJlcG9ydGluZ19OYW1lPgogICAgICAgICAgICAgICAgICA8L3dkOk5hbWVfRGV0YWlsX0RhdGE+CiAgICAgICAgICAgICAgICA8L3dkOkxlZ2FsX05hbWVfRGF0YT4KICAgICAgICAgICAgICAgIDx3ZDpQcmVmZXJyZWRfTmFtZV9EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6TmFtZV9EZXRhaWxfRGF0YT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5iYzMzYWEzMTUyZWM0MmQ0OTk1ZjQ3OTFhMTA2ZWQwOTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSVNPXzMxNjYtMV9BbHBoYS0yX0NvZGUiPlVTPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8L3dkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpGaXJzdF9OYW1lPkphbmU8L3dkOkZpcnN0X05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHdkOkxhc3RfTmFtZT5TbWl0aDwvd2Q6TGFzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpGb3JtYXR0ZWRfTmFtZT5KYW5lIFNtaXRoPC93ZDpGb3JtYXR0ZWRfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6UmVwb3J0aW5nX05hbWU+U21pdGgsIEphbmU8L3dkOlJlcG9ydGluZ19OYW1lPgogICAgICAgICAgICAgICAgICA8L3dkOk5hbWVfRGV0YWlsX0RhdGE+CiAgICAgICAgICAgICAgICA8L3dkOlByZWZlcnJlZF9OYW1lX0RhdGE+CiAgICAgICAgICAgICAgPC93ZDpOYW1lX0RhdGE+CgogICAgICAgICAgICAgIDwhLS0gPT09IENvbnRhY3QgRGF0YSA9PT0gLS0+CiAgICAgICAgICAgICAgPHdkOkNvbnRhY3RfRGF0YT4KCiAgICAgICAgICAgICAgICA8IS0tIFdvcmsgRW1haWwgLS0+CiAgICAgICAgICAgICAgICA8d2Q6RW1haWxfQWRkcmVzc19EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6RW1haWxfQWRkcmVzcz5qYW5lLnNtaXRoQGFjbWVjb3JwLmNvbTwvd2Q6RW1haWxfQWRkcmVzcz4KICAgICAgICAgICAgICAgICAgPHdkOlVzYWdlX0RhdGEgd2Q6UHVibGljPSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9EYXRhIHdkOlByaW1hcnk9InRydWUiPgogICAgICAgICAgICAgICAgICAgICAgPHdkOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5kMGUxZjJhM2I0YzVkNmU3ZjhhOWIwYzFkMmUzZjRhNTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb21tdW5pY2F0aW9uX1VzYWdlX1R5cGVfSUQiPldPUks8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPC93ZDpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3dkOlR5cGVfRGF0YT4KICAgICAgICAgICAgICAgICAgPC93ZDpVc2FnZV9EYXRhPgogICAgICAgICAgICAgICAgPC93ZDpFbWFpbF9BZGRyZXNzX0RhdGE+CgogICAgICAgICAgICAgICAgPCEtLSBIb21lIEVtYWlsIC0tPgogICAgICAgICAgICAgICAgPHdkOkVtYWlsX0FkZHJlc3NfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOkVtYWlsX0FkZHJlc3M+amFuZS5tLnNtaXRoQGdtYWlsLmNvbTwvd2Q6RW1haWxfQWRkcmVzcz4KICAgICAgICAgICAgICAgICAgPHdkOlVzYWdlX0RhdGEgd2Q6UHVibGljPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgPHdkOlR5cGVfRGF0YSB3ZDpQcmltYXJ5PSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmExYjJjM2Q0ZTVmNmE3YjhjOWQwZTFmMmEzYjRjNWQ2PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkNvbW11bmljYXRpb25fVXNhZ2VfVHlwZV9JRCI+SE9NRTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3dkOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6VHlwZV9EYXRhPgogICAgICAgICAgICAgICAgICA8L3dkOlVzYWdlX0RhdGE+CiAgICAgICAgICAgICAgICA8L3dkOkVtYWlsX0FkZHJlc3NfRGF0YT4KCiAgICAgICAgICAgICAgICA8IS0tIFdvcmsgUGhvbmUgLS0+CiAgICAgICAgICAgICAgICA8d2Q6UGhvbmVfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOkludGVybmF0aW9uYWxfUGhvbmVfQ29kZT4xPC93ZDpJbnRlcm5hdGlvbmFsX1Bob25lX0NvZGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpBcmVhX0NvZGU+NjE5PC93ZDpBcmVhX0NvZGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpQaG9uZV9OdW1iZXI+NTU1LTAxNDI8L3dkOlBob25lX051bWJlcj4KICAgICAgICAgICAgICAgICAgPHdkOlBob25lX0RldmljZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5lNGY1YTZiN2M4ZDllMGYxYTJiM2M0ZDVlNmY3YThiOTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IlBob25lX0RldmljZV9UeXBlX0lEIj5MYW5kbGluZTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDwvd2Q6UGhvbmVfRGV2aWNlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8d2Q6VXNhZ2VfRGF0YSB3ZDpQdWJsaWM9InRydWUiPgogICAgICAgICAgICAgICAgICAgIDx3ZDpUeXBlX0RhdGEgd2Q6UHJpbWFyeT0idHJ1ZSI+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmQwZTFmMmEzYjRjNWQ2ZTdmOGE5YjBjMWQyZTNmNGE1PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkNvbW11bmljYXRpb25fVXNhZ2VfVHlwZV9JRCI+V09SSzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3dkOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6VHlwZV9EYXRhPgogICAgICAgICAgICAgICAgICA8L3dkOlVzYWdlX0RhdGE+CiAgICAgICAgICAgICAgICAgIDx3ZDpGb3JtYXR0ZWRfUGhvbmU+KzEgKDYxOSkgNTU1LTAxNDI8L3dkOkZvcm1hdHRlZF9QaG9uZT4KICAgICAgICAgICAgICAgIDwvd2Q6UGhvbmVfRGF0YT4KCiAgICAgICAgICAgICAgICA8IS0tIE1vYmlsZSBQaG9uZSAtLT4KICAgICAgICAgICAgICAgIDx3ZDpQaG9uZV9EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6SW50ZXJuYXRpb25hbF9QaG9uZV9Db2RlPjE8L3dkOkludGVybmF0aW9uYWxfUGhvbmVfQ29kZT4KICAgICAgICAgICAgICAgICAgPHdkOkFyZWFfQ29kZT44NTg8L3dkOkFyZWFfQ29kZT4KICAgICAgICAgICAgICAgICAgPHdkOlBob25lX051bWJlcj41NTUtMDE5ODwvd2Q6UGhvbmVfTnVtYmVyPgogICAgICAgICAgICAgICAgICA8d2Q6UGhvbmVfRGV2aWNlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmY1YTZiN2M4ZDllMGYxYTJiM2M0ZDVlNmY3YThiOWMwPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iUGhvbmVfRGV2aWNlX1R5cGVfSUQiPk1vYmlsZTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDwvd2Q6UGhvbmVfRGV2aWNlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8d2Q6VXNhZ2VfRGF0YSB3ZDpQdWJsaWM9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9EYXRhIHdkOlByaW1hcnk9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YTFiMmMzZDRlNWY2YTdiOGM5ZDBlMWYyYTNiNGM1ZDY8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iQ29tbXVuaWNhdGlvbl9Vc2FnZV9UeXBlX0lEIj5IT01FPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpUeXBlX0RhdGE+CiAgICAgICAgICAgICAgICAgIDwvd2Q6VXNhZ2VfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOkZvcm1hdHRlZF9QaG9uZT4rMSAoODU4KSA1NTUtMDE5ODwvd2Q6Rm9ybWF0dGVkX1Bob25lPgogICAgICAgICAgICAgICAgPC93ZDpQaG9uZV9EYXRhPgoKICAgICAgICAgICAgICAgIDwhLS0gSG9tZSBBZGRyZXNzIC0tPgogICAgICAgICAgICAgICAgPHdkOkFkZHJlc3NfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmJjMzNhYTMxNTJlYzQyZDQ5OTVmNDc5MWExMDZlZDA5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSVNPXzMxNjYtMV9BbHBoYS0yX0NvZGUiPlVTPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHdkOkxhc3RfTW9kaWZpZWQ+MjAyNC0wNi0xNVQwOTozMDowMC4wMDAtMDc6MDA8L3dkOkxhc3RfTW9kaWZpZWQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpBZGRyZXNzX0xpbmVfRGF0YSB3ZDpUeXBlPSJBRERSRVNTX0xJTkVfMSI+NzQyIEV2ZXJncmVlbiBUZXJyYWNlPC93ZDpBZGRyZXNzX0xpbmVfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOkFkZHJlc3NfTGluZV9EYXRhIHdkOlR5cGU9IkFERFJFU1NfTElORV8yIj5BcHQgNEI8L3dkOkFkZHJlc3NfTGluZV9EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6TXVuaWNpcGFsaXR5PlNhbiBEaWVnbzwvd2Q6TXVuaWNpcGFsaXR5PgogICAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9SZWdpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmE4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQzPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iQ291bnRyeV9SZWdpb25fSUQiPlVTQS1DQTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDwvd2Q6Q291bnRyeV9SZWdpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9SZWdpb25fRGVzY3JpcHRvcj5DYWxpZm9ybmlhPC93ZDpDb3VudHJ5X1JlZ2lvbl9EZXNjcmlwdG9yPgogICAgICAgICAgICAgICAgICA8d2Q6UG9zdGFsX0NvZGU+OTIxMDE8L3dkOlBvc3RhbF9Db2RlPgogICAgICAgICAgICAgICAgICA8d2Q6Rm9ybWF0dGVkX0FkZHJlc3M+NzQyIEV2ZXJncmVlbiBUZXJyYWNlLCBBcHQgNEIsIFNhbiBEaWVnbywgQ0EgOTIxMDEsIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYTwvd2Q6Rm9ybWF0dGVkX0FkZHJlc3M+CiAgICAgICAgICAgICAgICAgIDx3ZDpEZWZhdWx0ZWRfQnVzaW5lc3NfU2l0ZV9BZGRyZXNzPmZhbHNlPC93ZDpEZWZhdWx0ZWRfQnVzaW5lc3NfU2l0ZV9BZGRyZXNzPgogICAgICAgICAgICAgICAgICA8d2Q6TnVtYmVyX29mX0RheXM+MzY1PC93ZDpOdW1iZXJfb2ZfRGF5cz4KICAgICAgICAgICAgICAgICAgPHdkOlVzYWdlX0RhdGEgd2Q6UHVibGljPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgPHdkOlR5cGVfRGF0YSB3ZDpQcmltYXJ5PSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YTFiMmMzZDRlNWY2YTdiOGM5ZDBlMWYyYTNiNGM1ZDY8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iQ29tbXVuaWNhdGlvbl9Vc2FnZV9UeXBlX0lEIj5IT01FPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpUeXBlX0RhdGE+CiAgICAgICAgICAgICAgICAgIDwvd2Q6VXNhZ2VfRGF0YT4KICAgICAgICAgICAgICAgIDwvd2Q6QWRkcmVzc19EYXRhPgoKICAgICAgICAgICAgICA8L3dkOkNvbnRhY3RfRGF0YT4KCiAgICAgICAgICAgICAgPCEtLSA9PT0gQmlvZ3JhcGhpY2FsIERhdGEgKGRhdGUgb2YgYmlydGgsIGdlbmRlciwgZXRjLikgPT09IC0tPgogICAgICAgICAgICAgIDx3ZDpCaW9ncmFwaGljYWxfRGF0YT4KICAgICAgICAgICAgICAgIDx3ZDpEYXRlX29mX0JpcnRoPjE5ODgtMDctMjI8L3dkOkRhdGVfb2ZfQmlydGg+CiAgICAgICAgICAgICAgICA8d2Q6R2VuZGVyX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+OWEwYjFjMmQzZTRmNWE2YjdjOGQ5ZTBmMWEyYjNjNGQ8L3dkOklEPgogICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iR2VuZGVyX0lEIj5GZW1hbGU8L3dkOklEPgogICAgICAgICAgICAgICAgPC93ZDpHZW5kZXJfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfb2ZfQmlydGhfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5iYzMzYWEzMTUyZWM0MmQ0OTk1ZjQ3OTFhMTA2ZWQwOTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJJU09fMzE2Ni0xX0FscGhhLTJfQ29kZSI+VVM8L3dkOklEPgogICAgICAgICAgICAgICAgPC93ZDpDb3VudHJ5X29mX0JpcnRoX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgIDx3ZDpNYXJpdGFsX1N0YXR1c19SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmM0ZDVlNmY3YThiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik1hcml0YWxfU3RhdHVzX0lEIj5NYXJyaWVkPC93ZDpJRD4KICAgICAgICAgICAgICAgIDwvd2Q6TWFyaXRhbF9TdGF0dXNfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgPHdkOk1hcml0YWxfU3RhdHVzX0RhdGU+MjAxOS0xMC0wNTwvd2Q6TWFyaXRhbF9TdGF0dXNfRGF0ZT4KICAgICAgICAgICAgICA8L3dkOkJpb2dyYXBoaWNhbF9EYXRhPgoKICAgICAgICAgICAgICA8IS0tID09PSBJRCBEYXRhIChuYXRpb25hbCBJRHMsIGdvdmVybm1lbnQgSURzKSA9PT0gLS0+CiAgICAgICAgICAgICAgPHdkOklkZW50aWZpY2F0aW9uX0RhdGE+CiAgICAgICAgICAgICAgICA8d2Q6TmF0aW9uYWxfSUQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpOYXRpb25hbF9JRF9EYXRhPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRD4qKiotKiotNjc4OTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+ZThmOWEwYjFjMmQzZTRmNWE2YjdjOGQ5ZTBmMWEyYjM8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik5hdGlvbmFsX0lEX1R5cGVfQ29kZSI+VVNBLVNTTjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpJRF9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5iYzMzYWEzMTUyZWM0MmQ0OTk1ZjQ3OTFhMTA2ZWQwOTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSVNPXzMxNjYtMV9BbHBoYS0yX0NvZGUiPlVTPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8L3dkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJc3N1ZWRfRGF0ZT4yMDA2LTAzLTE1PC93ZDpJc3N1ZWRfRGF0ZT4KICAgICAgICAgICAgICAgICAgPC93ZDpOYXRpb25hbF9JRF9EYXRhPgogICAgICAgICAgICAgICAgPC93ZDpOYXRpb25hbF9JRD4KICAgICAgICAgICAgICAgIDx3ZDpDdXN0b21fSUQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpDdXN0b21fSURfRGF0YT4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQ+QkFER0UtMDAyMzQ8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRF9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmYxYTJiM2M0ZDVlNmY3YThiOWMwZDFlMmYzYTRiNWM2PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDdXN0b21fSURfVHlwZV9JRCI+QmFkZ2VfSUQ8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6SURfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDwvd2Q6Q3VzdG9tX0lEX0RhdGE+CiAgICAgICAgICAgICAgICA8L3dkOkN1c3RvbV9JRD4KICAgICAgICAgICAgICA8L3dkOklkZW50aWZpY2F0aW9uX0RhdGE+CgogICAgICAgICAgICA8L3dkOlBlcnNvbmFsX0RhdGE+CgogICAgICAgICAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICAgICAgICA8IS0tIEVNUExPWU1FTlQgREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4KICAgICAgICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgICAgICAgICAgPHdkOkVtcGxveW1lbnRfRGF0YT4KCiAgICAgICAgICAgICAgPHdkOldvcmtlcl9Kb2JfRGF0YT4KICAgICAgICAgICAgICAgIDx3ZDpQb3NpdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6UG9zaXRpb25fSUQ+UC0wMDQ1MjE8L3dkOlBvc2l0aW9uX0lEPgogICAgICAgICAgICAgICAgICA8d2Q6UG9zaXRpb25fVGl0bGU+U2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyPC93ZDpQb3NpdGlvbl9UaXRsZT4KICAgICAgICAgICAgICAgICAgPHdkOkJ1c2luZXNzX1RpdGxlPlNlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcjwvd2Q6QnVzaW5lc3NfVGl0bGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpTdGFydF9EYXRlPjIwMjMtMDEtMDk8L3dkOlN0YXJ0X0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpEZWZhdWx0X1dlZWtseV9Ib3Vycz40MDwvd2Q6RGVmYXVsdF9XZWVrbHlfSG91cnM+CiAgICAgICAgICAgICAgICAgIDx3ZDpTY2hlZHVsZWRfV2Vla2x5X0hvdXJzPjQwPC93ZDpTY2hlZHVsZWRfV2Vla2x5X0hvdXJzPgogICAgICAgICAgICAgICAgICA8d2Q6RnVsbF9UaW1lX0VxdWl2YWxlbnRfUGVyY2VudGFnZT4xMDA8L3dkOkZ1bGxfVGltZV9FcXVpdmFsZW50X1BlcmNlbnRhZ2U+CgogICAgICAgICAgICAgICAgICA8d2Q6UG9zaXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjdiYzY2NDBjOGFmNDU5YzZiZjk5ZDRiMDJjNTlkMDAxPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iUG9zaXRpb25fSUQiPlAtMDA0NTIxPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpQb3NpdGlvbl9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgICA8d2Q6V29ya2VyX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmQ0ZTVmNmE3YjhjOWQwZTFmMmEzYjRjNWQ2ZTdmOGE5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV29ya2VyX1R5cGVfSUQiPlJlZ3VsYXI8L3dkOklEPgogICAgICAgICAgICAgICAgICA8L3dkOldvcmtlcl9UeXBlX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICAgIDx3ZDpKb2JfUHJvZmlsZV9TdW1tYXJ5X0RhdGE+CiAgICAgICAgICAgICAgICAgICAgPHdkOkpvYl9Qcm9maWxlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjFhMmIzYzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGI1YzZkPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJKb2JfUHJvZmlsZV9JRCI+SlAtU1dFLVNSPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8L3dkOkpvYl9Qcm9maWxlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Sm9iX1Byb2ZpbGVfTmFtZT5TZW5pb3IgU29mdHdhcmUgRW5naW5lZXI8L3dkOkpvYl9Qcm9maWxlX05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHdkOk1hbmFnZW1lbnRfTGV2ZWxfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+MmIzYzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGI1YzZkN2U8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik1hbmFnZW1lbnRfTGV2ZWxfSUQiPkluZGl2aWR1YWxfQ29udHJpYnV0b3I8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6TWFuYWdlbWVudF9MZXZlbF9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOkpvYl9DYXRlZ29yeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj4zYzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGI1YzZkN2U4Zjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSm9iX0NhdGVnb3J5X0lEIj5FbmdpbmVlcmluZzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpKb2JfQ2F0ZWdvcnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpKb2JfRmFtaWx5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjRkNWU2ZjdhOGI5YzBkMWUyZjNhNGI1YzZkN2U4ZjlhPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJKb2JfRmFtaWx5X0lEIj5KRi1FbmdpbmVlcmluZzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpKb2JfRmFtaWx5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPC93ZDpKb2JfUHJvZmlsZV9TdW1tYXJ5X0RhdGE+CgogICAgICAgICAgICAgICAgICA8d2Q6QnVzaW5lc3NfU2l0ZV9TdW1tYXJ5X0RhdGE+CiAgICAgICAgICAgICAgICAgICAgPHdkOk5hbWU+U2FuIERpZWdvIEhRPC93ZDpOYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpMb2NhdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj41ZTZmN2E4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iTG9jYXRpb25fSUQiPkxPQy1TRC1IUTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpMb2NhdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOkxvY2F0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+NmY3YThiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTBiMWM8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkxvY2F0aW9uX1R5cGVfSUQiPk9mZmljZTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpMb2NhdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6QWRkcmVzc19EYXRhPgogICAgICAgICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSVNPXzMxNjYtMV9BbHBoYS0yX0NvZGUiPlVTPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6QWRkcmVzc19MaW5lX0RhdGEgd2Q6VHlwZT0iQUREUkVTU19MSU5FXzEiPjEwMCBJbm5vdmF0aW9uIERyaXZlPC93ZDpBZGRyZXNzX0xpbmVfRGF0YT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpBZGRyZXNzX0xpbmVfRGF0YSB3ZDpUeXBlPSJBRERSRVNTX0xJTkVfMiI+U3VpdGUgNTAwPC93ZDpBZGRyZXNzX0xpbmVfRGF0YT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpNdW5pY2lwYWxpdHk+U2FuIERpZWdvPC93ZDpNdW5pY2lwYWxpdHk+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9SZWdpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iQ291bnRyeV9SZWdpb25fSUQiPlVTQS1DQTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3dkOkNvdW50cnlfUmVnaW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpDb3VudHJ5X1JlZ2lvbl9EZXNjcmlwdG9yPkNhbGlmb3JuaWE8L3dkOkNvdW50cnlfUmVnaW9uX0Rlc2NyaXB0b3I+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6UG9zdGFsX0NvZGU+OTIxMzA8L3dkOlBvc3RhbF9Db2RlPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6QWRkcmVzc19EYXRhPgogICAgICAgICAgICAgICAgICA8L3dkOkJ1c2luZXNzX1NpdGVfU3VtbWFyeV9EYXRhPgoKICAgICAgICAgICAgICAgICAgPCEtLSBQYXkgUmF0ZSBUeXBlIC0tPgogICAgICAgICAgICAgICAgICA8d2Q6UGF5X1JhdGVfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+N2E4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQ8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJQYXlfUmF0ZV9UeXBlX0lEIj5TYWxhcnk8L3dkOklEPgogICAgICAgICAgICAgICAgICA8L3dkOlBheV9SYXRlX1R5cGVfUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPCEtLSBUaW1lIFR5cGUgKEZ1bGxfdGltZSAvIFBhcnRfdGltZSkgLS0+CiAgICAgICAgICAgICAgICAgIDx3ZDpQb3NpdGlvbl9UaW1lX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjhiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iUG9zaXRpb25fVGltZV9UeXBlX0lEIj5GdWxsX3RpbWU8L3dkOklEPgogICAgICAgICAgICAgICAgICA8L3dkOlBvc2l0aW9uX1RpbWVfVHlwZV9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgICA8IS0tIFN1cGVydmlzb3J5IE9yZ2FuaXphdGlvbiAtLT4KICAgICAgICAgICAgICAgICAgPHdkOlN1cGVydmlzb3J5X09yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+OWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlNGY8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJPcmdhbml6YXRpb25fUmVmZXJlbmNlX0lEIj5FTkctUExBVEZPUk0tMDAxPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpTdXBlcnZpc29yeV9Pcmdhbml6YXRpb25fUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPCEtLSBDb3N0IENlbnRlciAtLT4KICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICAgIDx3ZDpXb3JrZXJfT3JnYW5pemF0aW9uX0RhdGE+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6T3JnYW5pemF0aW9uX0RhdGE+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpPcmdhbml6YXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjBkMWUyZjNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iT3JnYW5pemF0aW9uX1JlZmVyZW5jZV9JRCI+Q0MtNDUwMDwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkNvc3RfQ2VudGVyX1JlZmVyZW5jZV9JRCI+Q0MtNDUwMDwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6T3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9OYW1lPkVuZ2luZWVyaW5nIC0gUGxhdGZvcm08L3dkOk9yZ2FuaXphdGlvbl9OYW1lPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6T3JnYW5pemF0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjFlMmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlNGY1YTZiPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iT3JnYW5pemF0aW9uX1R5cGVfSUQiPkNvc3RfQ2VudGVyPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPC93ZDpPcmdhbml6YXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8L3dkOk9yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6T3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj4yZjNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhNmI3Yzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik9yZ2FuaXphdGlvbl9SZWZlcmVuY2VfSUQiPkNPTVAtQUNNRTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkNvbXBhbnlfUmVmZXJlbmNlX0lEIj5DT01QLUFDTUU8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8L3dkOk9yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpPcmdhbml6YXRpb25fTmFtZT5BY21lIENvcnBvcmF0aW9uPC93ZDpPcmdhbml6YXRpb25fTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj4zYTRiNWM2ZDdlOGY5YTBiMWMyZDNlNGY1YTZiN2M4ZDwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik9yZ2FuaXphdGlvbl9UeXBlX0lEIj5Db21wYW55PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPC93ZDpPcmdhbml6YXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8L3dkOk9yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6V29ya2VyX09yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICA8L3dkOk9yZ2FuaXphdGlvbl9EYXRhPgoKICAgICAgICAgICAgICAgIDwvd2Q6UG9zaXRpb25fRGF0YT4KCiAgICAgICAgICAgICAgICA8IS0tIE1hbmFnZXIgUmVmZXJlbmNlIC0tPgogICAgICAgICAgICAgICAgPHdkOk1hbmFnZXJfYXNfb2ZfbGFzdF9kZXRlY3RlZF9tYW5hZ2VyX2NoYW5nZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmFhYmJjY2RkMTEyMjMzNDQ1NTY2Nzc4ODk5MDBhYWJiPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkVtcGxveWVlX0lEIj4xMDAwODk8L3dkOklEPgogICAgICAgICAgICAgICAgPC93ZDpNYW5hZ2VyX2FzX29mX2xhc3RfZGV0ZWN0ZWRfbWFuYWdlcl9jaGFuZ2VfUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgIDwhLS0gV29ya2VyIFN0YXR1cyAoQWN0aXZlLCBIaXJlIERhdGUsIGV0Yy4pIC0tPgogICAgICAgICAgICAgICAgPHdkOldvcmtlcl9TdGF0dXNfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOkFjdGl2ZT50cnVlPC93ZDpBY3RpdmU+CiAgICAgICAgICAgICAgICAgIDx3ZDpBY3RpdmVfU3RhdHVzX0RhdGU+MjAyMS0wMy0xNTwvd2Q6QWN0aXZlX1N0YXR1c19EYXRlPgogICAgICAgICAgICAgICAgICA8d2Q6SGlyZV9EYXRlPjIwMjEtMDMtMTU8L3dkOkhpcmVfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOk9yaWdpbmFsX0hpcmVfRGF0ZT4yMDIxLTAzLTE1PC93ZDpPcmlnaW5hbF9IaXJlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpFbmRfRW1wbG95bWVudF9EYXRlLz4KICAgICAgICAgICAgICAgICAgPHdkOkNvbnRpbnVvdXNfU2VydmljZV9EYXRlPjIwMjEtMDMtMTU8L3dkOkNvbnRpbnVvdXNfU2VydmljZV9EYXRlPgogICAgICAgICAgICAgICAgICA8d2Q6Rmlyc3RfRGF5X29mX1dvcms+MjAyMS0wMy0xNTwvd2Q6Rmlyc3RfRGF5X29mX1dvcms+CiAgICAgICAgICAgICAgICAgIDx3ZDpTZW5pb3JpdHlfRGF0ZT4yMDIxLTAzLTE1PC93ZDpTZW5pb3JpdHlfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOkJlbmVmaXRzX1NlcnZpY2VfRGF0ZT4yMDIxLTAzLTE1PC93ZDpCZW5lZml0c19TZXJ2aWNlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpDb21wYW55X1NlcnZpY2VfRGF0ZT4yMDIxLTAzLTE1PC93ZDpDb21wYW55X1NlcnZpY2VfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOlJldGlyZWQ+ZmFsc2U8L3dkOlJldGlyZWQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpUZXJtaW5hdGVkPmZhbHNlPC93ZDpUZXJtaW5hdGVkPgogICAgICAgICAgICAgICAgICA8d2Q6UmVoaXJlPmZhbHNlPC93ZDpSZWhpcmU+CiAgICAgICAgICAgICAgICAgIDx3ZDpEYXlzX1VuZW1wbG95ZWQ+MDwvd2Q6RGF5c19VbmVtcGxveWVkPgogICAgICAgICAgICAgICAgICA8d2Q6Tm90X1JldHVybmluZz5mYWxzZTwvd2Q6Tm90X1JldHVybmluZz4KICAgICAgICAgICAgICAgICAgPHdkOlByb2JhdGlvbl9TdGFydF9EYXRlPjIwMjEtMDMtMTU8L3dkOlByb2JhdGlvbl9TdGFydF9EYXRlPgogICAgICAgICAgICAgICAgICA8d2Q6UHJvYmF0aW9uX0VuZF9EYXRlPjIwMjEtMDktMTU8L3dkOlByb2JhdGlvbl9FbmRfRGF0ZT4KICAgICAgICAgICAgICAgIDwvd2Q6V29ya2VyX1N0YXR1c19EYXRhPgoKICAgICAgICAgICAgICA8L3dkOldvcmtlcl9Kb2JfRGF0YT4KCiAgICAgICAgICAgICAgPCEtLSBJbnRlcm5hdGlvbmFsIEFzc2lnbm1lbnQgKGVtcHR5IGZvciB0aGlzIHdvcmtlcikgLS0+CiAgICAgICAgICAgICAgPHdkOldvcmtlcl9Kb2JfRGF0YT4KICAgICAgICAgICAgICAgIDwhLS0gQWRkaXRpb25hbCBwb3NpdGlvbnMgd291bGQgYXBwZWFyIGFzIGFkZGl0aW9uYWwgV29ya2VyX0pvYl9EYXRhIGVsZW1lbnRzIC0tPgogICAgICAgICAgICAgICAgPCEtLSBUaGlzIHdvcmtlciBoYXMgb25seSBvbmUgcG9zaXRpb24sIHNvIG9ubHkgb25lIGFwcGVhcnMgYWJvdmUgLS0+CiAgICAgICAgICAgICAgPC93ZDpXb3JrZXJfSm9iX0RhdGE+CgogICAgICAgICAgICA8L3dkOkVtcGxveW1lbnRfRGF0YT4KCiAgICAgICAgICA8L3dkOldvcmtlcl9EYXRhPgogICAgICAgIDwvd2Q6V29ya2VyPgoKICAgICAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgICAgICA8IS0tIFdPUktFUiAyIOKAlCBUZXJtaW5hdGVkIEVtcGxveWVlICh0ZXN0cyB5b3VyIHBhcnNlciBlZGdlIGNhc2UpIC0tPgogICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICAgIDx3ZDpXb3JrZXI+CiAgICAgICAgICA8d2Q6V29ya2VyX1JlZmVyZW5jZT4KICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+OGRkNzc2MWU5YmY1NGFjN2IwMTFlNWMyM2Q3MGZhOTI8L3dkOklEPgogICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iRW1wbG95ZWVfSUQiPjEwMDU3ODwvd2Q6SUQ+CiAgICAgICAgICA8L3dkOldvcmtlcl9SZWZlcmVuY2U+CgogICAgICAgICAgPHdkOldvcmtlcl9EYXRhPgogICAgICAgICAgICA8d2Q6V29ya2VyX0lEPjEwMDU3ODwvd2Q6V29ya2VyX0lEPgogICAgICAgICAgICA8d2Q6VXNlcl9JRD5yZ2FyY2lhPC93ZDpVc2VyX0lEPgoKICAgICAgICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgICAgICAgICAgPCEtLSBQRVJTT05BTCBEQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+CiAgICAgICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgICAgIDx3ZDpQZXJzb25hbF9EYXRhPgoKICAgICAgICAgICAgICA8d2Q6TmFtZV9EYXRhPgogICAgICAgICAgICAgICAgPHdkOkxlZ2FsX05hbWVfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOk5hbWVfRGV0YWlsX0RhdGE+CiAgICAgICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YmMzM2FhMzE1MmVjNDJkNDk5NWY0NzkxYTEwNmVkMDk8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IklTT18zMTY2LTFfQWxwaGEtMl9Db2RlIj5VUzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSVNPXzMxNjYtMV9BbHBoYS0zX0NvZGUiPlVTQTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Rmlyc3RfTmFtZT5Sb2JlcnRvPC93ZDpGaXJzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpMYXN0X05hbWU+R2FyY2lhPC93ZDpMYXN0X05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHdkOkZvcm1hdHRlZF9OYW1lPlJvYmVydG8gR2FyY2lhPC93ZDpGb3JtYXR0ZWRfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6UmVwb3J0aW5nX05hbWU+R2FyY2lhLCBSb2JlcnRvPC93ZDpSZXBvcnRpbmdfTmFtZT4KICAgICAgICAgICAgICAgICAgPC93ZDpOYW1lX0RldGFpbF9EYXRhPgogICAgICAgICAgICAgICAgPC93ZDpMZWdhbF9OYW1lX0RhdGE+CiAgICAgICAgICAgICAgICA8d2Q6UHJlZmVycmVkX05hbWVfRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOk5hbWVfRGV0YWlsX0RhdGE+CiAgICAgICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YmMzM2FhMzE1MmVjNDJkNDk5NWY0NzkxYTEwNmVkMDk8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IklTT18zMTY2LTFfQWxwaGEtMl9Db2RlIj5VUzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Rmlyc3RfTmFtZT5Sb2I8L3dkOkZpcnN0X05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHdkOkxhc3RfTmFtZT5HYXJjaWE8L3dkOkxhc3RfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6Rm9ybWF0dGVkX05hbWU+Um9iIEdhcmNpYTwvd2Q6Rm9ybWF0dGVkX05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHdkOlJlcG9ydGluZ19OYW1lPkdhcmNpYSwgUm9iPC93ZDpSZXBvcnRpbmdfTmFtZT4KICAgICAgICAgICAgICAgICAgPC93ZDpOYW1lX0RldGFpbF9EYXRhPgogICAgICAgICAgICAgICAgPC93ZDpQcmVmZXJyZWRfTmFtZV9EYXRhPgogICAgICAgICAgICAgIDwvd2Q6TmFtZV9EYXRhPgoKICAgICAgICAgICAgICA8d2Q6Q29udGFjdF9EYXRhPgoKICAgICAgICAgICAgICAgIDwhLS0gV29yayBFbWFpbCAtLT4KICAgICAgICAgICAgICAgIDx3ZDpFbWFpbF9BZGRyZXNzX0RhdGE+CiAgICAgICAgICAgICAgICAgIDx3ZDpFbWFpbF9BZGRyZXNzPnJvYmVydG8uZ2FyY2lhQGFjbWVjb3JwLmNvbTwvd2Q6RW1haWxfQWRkcmVzcz4KICAgICAgICAgICAgICAgICAgPHdkOlVzYWdlX0RhdGEgd2Q6UHVibGljPSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9EYXRhIHdkOlByaW1hcnk9InRydWUiPgogICAgICAgICAgICAgICAgICAgICAgPHdkOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5kMGUxZjJhM2I0YzVkNmU3ZjhhOWIwYzFkMmUzZjRhNTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb21tdW5pY2F0aW9uX1VzYWdlX1R5cGVfSUQiPldPUks8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPC93ZDpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3dkOlR5cGVfRGF0YT4KICAgICAgICAgICAgICAgICAgPC93ZDpVc2FnZV9EYXRhPgogICAgICAgICAgICAgICAgPC93ZDpFbWFpbF9BZGRyZXNzX0RhdGE+CgogICAgICAgICAgICAgICAgPCEtLSBXb3JrIFBob25lIC0tPgogICAgICAgICAgICAgICAgPHdkOlBob25lX0RhdGE+CiAgICAgICAgICAgICAgICAgIDx3ZDpJbnRlcm5hdGlvbmFsX1Bob25lX0NvZGU+MTwvd2Q6SW50ZXJuYXRpb25hbF9QaG9uZV9Db2RlPgogICAgICAgICAgICAgICAgICA8d2Q6QXJlYV9Db2RlPjUxMjwvd2Q6QXJlYV9Db2RlPgogICAgICAgICAgICAgICAgICA8d2Q6UGhvbmVfTnVtYmVyPjU1NS0wMzc3PC93ZDpQaG9uZV9OdW1iZXI+CiAgICAgICAgICAgICAgICAgIDx3ZDpQaG9uZV9EZXZpY2VfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+ZTRmNWE2YjdjOGQ5ZTBmMWEyYjNjNGQ1ZTZmN2E4Yjk8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJQaG9uZV9EZXZpY2VfVHlwZV9JRCI+TGFuZGxpbmU8L3dkOklEPgogICAgICAgICAgICAgICAgICA8L3dkOlBob25lX0RldmljZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHdkOlVzYWdlX0RhdGEgd2Q6UHVibGljPSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9EYXRhIHdkOlByaW1hcnk9InRydWUiPgogICAgICAgICAgICAgICAgICAgICAgPHdkOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5kMGUxZjJhM2I0YzVkNmU3ZjhhOWIwYzFkMmUzZjRhNTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb21tdW5pY2F0aW9uX1VzYWdlX1R5cGVfSUQiPldPUks8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPC93ZDpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3dkOlR5cGVfRGF0YT4KICAgICAgICAgICAgICAgICAgPC93ZDpVc2FnZV9EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6Rm9ybWF0dGVkX1Bob25lPisxICg1MTIpIDU1NS0wMzc3PC93ZDpGb3JtYXR0ZWRfUGhvbmU+CiAgICAgICAgICAgICAgICA8L3dkOlBob25lX0RhdGE+CgogICAgICAgICAgICAgICAgPCEtLSBIb21lIEFkZHJlc3MgLS0+CiAgICAgICAgICAgICAgICA8d2Q6QWRkcmVzc19EYXRhPgogICAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YmMzM2FhMzE1MmVjNDJkNDk5NWY0NzkxYTEwNmVkMDk8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJJU09fMzE2Ni0xX0FscGhhLTJfQ29kZSI+VVM8L3dkOklEPgogICAgICAgICAgICAgICAgICA8L3dkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8d2Q6TGFzdF9Nb2RpZmllZD4yMDIzLTExLTAxVDE0OjIyOjAwLjAwMC0wNTowMDwvd2Q6TGFzdF9Nb2RpZmllZD4KICAgICAgICAgICAgICAgICAgPHdkOkFkZHJlc3NfTGluZV9EYXRhIHdkOlR5cGU9IkFERFJFU1NfTElORV8xIj4yMjAwIENvbmdyZXNzIEF2ZW51ZTwvd2Q6QWRkcmVzc19MaW5lX0RhdGE+CiAgICAgICAgICAgICAgICAgIDx3ZDpNdW5pY2lwYWxpdHk+QXVzdGluPC93ZDpNdW5pY2lwYWxpdHk+CiAgICAgICAgICAgICAgICAgIDx3ZDpDb3VudHJ5X1JlZ2lvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTQ8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb3VudHJ5X1JlZ2lvbl9JRCI+VVNBLVRYPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpDb3VudHJ5X1JlZ2lvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpDb3VudHJ5X1JlZ2lvbl9EZXNjcmlwdG9yPlRleGFzPC93ZDpDb3VudHJ5X1JlZ2lvbl9EZXNjcmlwdG9yPgogICAgICAgICAgICAgICAgICA8d2Q6UG9zdGFsX0NvZGU+Nzg3MDE8L3dkOlBvc3RhbF9Db2RlPgogICAgICAgICAgICAgICAgICA8d2Q6Rm9ybWF0dGVkX0FkZHJlc3M+MjIwMCBDb25ncmVzcyBBdmVudWUsIEF1c3RpbiwgVFggNzg3MDEsIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYTwvd2Q6Rm9ybWF0dGVkX0FkZHJlc3M+CiAgICAgICAgICAgICAgICAgIDx3ZDpEZWZhdWx0ZWRfQnVzaW5lc3NfU2l0ZV9BZGRyZXNzPmZhbHNlPC93ZDpEZWZhdWx0ZWRfQnVzaW5lc3NfU2l0ZV9BZGRyZXNzPgogICAgICAgICAgICAgICAgICA8d2Q6VXNhZ2VfRGF0YSB3ZDpQdWJsaWM9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICA8d2Q6VHlwZV9EYXRhIHdkOlByaW1hcnk9InRydWUiPgogICAgICAgICAgICAgICAgICAgICAgPHdkOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5hMWIyYzNkNGU1ZjZhN2I4YzlkMGUxZjJhM2I0YzVkNjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb21tdW5pY2F0aW9uX1VzYWdlX1R5cGVfSUQiPkhPTUU8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPC93ZDpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3dkOlR5cGVfRGF0YT4KICAgICAgICAgICAgICAgICAgPC93ZDpVc2FnZV9EYXRhPgogICAgICAgICAgICAgICAgPC93ZDpBZGRyZXNzX0RhdGE+CgogICAgICAgICAgICAgIDwvd2Q6Q29udGFjdF9EYXRhPgoKICAgICAgICAgICAgICA8d2Q6QmlvZ3JhcGhpY2FsX0RhdGE+CiAgICAgICAgICAgICAgICA8d2Q6RGF0ZV9vZl9CaXJ0aD4xOTkyLTExLTAzPC93ZDpEYXRlX29mX0JpcnRoPgogICAgICAgICAgICAgICAgPHdkOkdlbmRlcl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjBhMWIyYzNkNGU1ZjZhN2I4YzlkMGUxZjJhM2I0YzVkPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkdlbmRlcl9JRCI+TWFsZTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICA8L3dkOkdlbmRlcl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICA8d2Q6Q291bnRyeV9vZl9CaXJ0aF9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmJjMzNhYTMxNTJlYzQyZDQ5OTVmNDc5MWExMDZlZDA5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IklTT18zMTY2LTFfQWxwaGEtMl9Db2RlIj5VUzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICA8L3dkOkNvdW50cnlfb2ZfQmlydGhfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgPHdkOk1hcml0YWxfU3RhdHVzX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+ZDVlNmY3YThiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTA8L3dkOklEPgogICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iTWFyaXRhbF9TdGF0dXNfSUQiPlNpbmdsZTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICA8L3dkOk1hcml0YWxfU3RhdHVzX1JlZmVyZW5jZT4KICAgICAgICAgICAgICA8L3dkOkJpb2dyYXBoaWNhbF9EYXRhPgoKICAgICAgICAgICAgICA8d2Q6SWRlbnRpZmljYXRpb25fRGF0YT4KICAgICAgICAgICAgICAgIDx3ZDpOYXRpb25hbF9JRD4KICAgICAgICAgICAgICAgICAgPHdkOk5hdGlvbmFsX0lEX0RhdGE+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEPioqKi0qKi00MzIxPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SURfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5lOGY5YTBiMWMyZDNlNGY1YTZiN2M4ZDllMGYxYTJiMzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iTmF0aW9uYWxfSURfVHlwZV9Db2RlIj5VU0EtU1NOPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8L3dkOklEX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmJjMzNhYTMxNTJlYzQyZDQ5OTVmNDc5MWExMDZlZDA5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJJU09fMzE2Ni0xX0FscGhhLTJfQ29kZSI+VVM8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDwvd2Q6TmF0aW9uYWxfSURfRGF0YT4KICAgICAgICAgICAgICAgIDwvd2Q6TmF0aW9uYWxfSUQ+CiAgICAgICAgICAgICAgPC93ZDpJZGVudGlmaWNhdGlvbl9EYXRhPgoKICAgICAgICAgICAgPC93ZDpQZXJzb25hbF9EYXRhPgoKICAgICAgICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgICAgICAgICAgPCEtLSBFTVBMT1lNRU5UIERBVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+CiAgICAgICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgICAgIDx3ZDpFbXBsb3ltZW50X0RhdGE+CgogICAgICAgICAgICAgIDx3ZDpXb3JrZXJfSm9iX0RhdGE+CiAgICAgICAgICAgICAgICA8d2Q6UG9zaXRpb25fRGF0YT4KICAgICAgICAgICAgICAgICAgPHdkOlBvc2l0aW9uX0lEPlAtMDAzODg3PC93ZDpQb3NpdGlvbl9JRD4KICAgICAgICAgICAgICAgICAgPHdkOlBvc2l0aW9uX1RpdGxlPkZpbmFuY2lhbCBBbmFseXN0PC93ZDpQb3NpdGlvbl9UaXRsZT4KICAgICAgICAgICAgICAgICAgPHdkOkJ1c2luZXNzX1RpdGxlPkZpbmFuY2lhbCBBbmFseXN0IElJPC93ZDpCdXNpbmVzc19UaXRsZT4KICAgICAgICAgICAgICAgICAgPHdkOlN0YXJ0X0RhdGU+MjAyMi0wNi0wMTwvd2Q6U3RhcnRfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOkVuZF9EYXRlPjIwMjUtMTItMjA8L3dkOkVuZF9EYXRlPgogICAgICAgICAgICAgICAgICA8d2Q6RGVmYXVsdF9XZWVrbHlfSG91cnM+NDA8L3dkOkRlZmF1bHRfV2Vla2x5X0hvdXJzPgogICAgICAgICAgICAgICAgICA8d2Q6U2NoZWR1bGVkX1dlZWtseV9Ib3Vycz40MDwvd2Q6U2NoZWR1bGVkX1dlZWtseV9Ib3Vycz4KICAgICAgICAgICAgICAgICAgPHdkOkZ1bGxfVGltZV9FcXVpdmFsZW50X1BlcmNlbnRhZ2U+MTAwPC93ZDpGdWxsX1RpbWVfRXF1aXZhbGVudF9QZXJjZW50YWdlPgoKICAgICAgICAgICAgICAgICAgPHdkOlBvc2l0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5jY2Q4ZTlmMGExYjJjM2Q0ZTVmNmE3YjhjOWQwZTFmMjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IlBvc2l0aW9uX0lEIj5QLTAwMzg4Nzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDwvd2Q6UG9zaXRpb25fUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPHdkOldvcmtlcl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5kNGU1ZjZhN2I4YzlkMGUxZjJhM2I0YzVkNmU3ZjhhOTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ildvcmtlcl9UeXBlX0lEIj5SZWd1bGFyPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpXb3JrZXJfVHlwZV9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgICA8d2Q6Sm9iX1Byb2ZpbGVfU3VtbWFyeV9EYXRhPgogICAgICAgICAgICAgICAgICAgIDx3ZDpKb2JfUHJvZmlsZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5hYTExYmIyMmNjMzNkZDQ0ZWU1NWZmNjYwMDc3ODg5OTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iSm9iX1Byb2ZpbGVfSUQiPkpQLUZJTi1BTkw8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6Sm9iX1Byb2ZpbGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpKb2JfUHJvZmlsZV9OYW1lPkZpbmFuY2lhbCBBbmFseXN0PC93ZDpKb2JfUHJvZmlsZV9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpNYW5hZ2VtZW50X0xldmVsX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjJiM2M0ZDVlNmY3YThiOWMwZDFlMmYzYTRiNWM2ZDdlPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJNYW5hZ2VtZW50X0xldmVsX0lEIj5JbmRpdmlkdWFsX0NvbnRyaWJ1dG9yPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8L3dkOk1hbmFnZW1lbnRfTGV2ZWxfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpKb2JfQ2F0ZWdvcnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YmIyMmNjMzNkZDQ0ZWU1NWZmNjYwMDc3ODg5OTAwMTE8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkpvYl9DYXRlZ29yeV9JRCI+RmluYW5jZTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC93ZDpKb2JfQ2F0ZWdvcnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpKb2JfRmFtaWx5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPmNjMzNkZDQ0ZWU1NWZmNjYwMDc3ODg5OTAwMTEyMjMzPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJKb2JfRmFtaWx5X0lEIj5KRi1GaW5hbmNlPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8L3dkOkpvYl9GYW1pbHlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8L3dkOkpvYl9Qcm9maWxlX1N1bW1hcnlfRGF0YT4KCiAgICAgICAgICAgICAgICAgIDx3ZDpCdXNpbmVzc19TaXRlX1N1bW1hcnlfRGF0YT4KICAgICAgICAgICAgICAgICAgICA8d2Q6TmFtZT5BdXN0aW4gT2ZmaWNlPC93ZDpOYW1lPgogICAgICAgICAgICAgICAgICAgIDx3ZDpMb2NhdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5kZDQ0ZWU1NWZmNjYwMDc3ODg5OTAwMTEyMjMzNDRhYTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iTG9jYXRpb25fSUQiPkxPQy1BVVMtMDE8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6TG9jYXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpMb2NhdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjZmN2E4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJMb2NhdGlvbl9UeXBlX0lEIj5PZmZpY2U8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6TG9jYXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOkFkZHJlc3NfRGF0YT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IklTT18zMTY2LTFfQWxwaGEtMl9Db2RlIj5VUzwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3dkOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOkFkZHJlc3NfTGluZV9EYXRhIHdkOlR5cGU9IkFERFJFU1NfTElORV8xIj41MDAgV2VzdCAybmQgU3RyZWV0PC93ZDpBZGRyZXNzX0xpbmVfRGF0YT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpBZGRyZXNzX0xpbmVfRGF0YSB3ZDpUeXBlPSJBRERSRVNTX0xJTkVfMiI+Rmxvb3IgMTI8L3dkOkFkZHJlc3NfTGluZV9EYXRhPgogICAgICAgICAgICAgICAgICAgICAgPHdkOk11bmljaXBhbGl0eT5BdXN0aW48L3dkOk11bmljaXBhbGl0eT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpDb3VudHJ5X1JlZ2lvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb3VudHJ5X1JlZ2lvbl9JRCI+VVNBLVRYPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6Q291bnRyeV9SZWdpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHdkOkNvdW50cnlfUmVnaW9uX0Rlc2NyaXB0b3I+VGV4YXM8L3dkOkNvdW50cnlfUmVnaW9uX0Rlc2NyaXB0b3I+CiAgICAgICAgICAgICAgICAgICAgICA8d2Q6UG9zdGFsX0NvZGU+Nzg3MDE8L3dkOlBvc3RhbF9Db2RlPgogICAgICAgICAgICAgICAgICAgIDwvd2Q6QWRkcmVzc19EYXRhPgogICAgICAgICAgICAgICAgICA8L3dkOkJ1c2luZXNzX1NpdGVfU3VtbWFyeV9EYXRhPgoKICAgICAgICAgICAgICAgICAgPHdkOlBheV9SYXRlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjdhOGI5YzBkMWUyZjNhNGI1YzZkN2U4ZjlhMGIxYzJkPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iUGF5X1JhdGVfVHlwZV9JRCI+U2FsYXJ5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpQYXlfUmF0ZV9UeXBlX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICAgIDx3ZDpQb3NpdGlvbl9UaW1lX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjhiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iUG9zaXRpb25fVGltZV9UeXBlX0lEIj5GdWxsX3RpbWU8L3dkOklEPgogICAgICAgICAgICAgICAgICA8L3dkOlBvc2l0aW9uX1RpbWVfVHlwZV9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgICA8d2Q6U3VwZXJ2aXNvcnlfT3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5lZTU1ZmY2NjAwNzc4ODk5MDAxMTIyMzM0NDU1NjZiYjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik9yZ2FuaXphdGlvbl9SZWZlcmVuY2VfSUQiPkZJTi1DT1JQLTAwMTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDwvd2Q6U3VwZXJ2aXNvcnlfT3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICAgIDx3ZDpPcmdhbml6YXRpb25fRGF0YT4KICAgICAgICAgICAgICAgICAgICA8d2Q6V29ya2VyX09yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6T3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5mZjY2MDA3Nzg4OTkwMDExMjIzMzQ0NTU2Njc3ODg5OTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik9yZ2FuaXphdGlvbl9SZWZlcmVuY2VfSUQiPkNDLTMyMDA8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb3N0X0NlbnRlcl9SZWZlcmVuY2VfSUQiPkNDLTMyMDA8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8L3dkOk9yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpPcmdhbml6YXRpb25fTmFtZT5GaW5hbmNlIC0gQ29ycG9yYXRlPC93ZDpPcmdhbml6YXRpb25fTmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj4xZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTRmNWE2Yjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9Ik9yZ2FuaXphdGlvbl9UeXBlX0lEIj5Db3N0X0NlbnRlcjwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6T3JnYW5pemF0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPC93ZDpPcmdhbml6YXRpb25fRGF0YT4KICAgICAgICAgICAgICAgICAgICAgIDx3ZDpPcmdhbml6YXRpb25fRGF0YT4KICAgICAgICAgICAgICAgICAgICAgICAgPHdkOk9yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+MmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlNGY1YTZiN2M8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJPcmdhbml6YXRpb25fUmVmZXJlbmNlX0lEIj5DT01QLUFDTUU8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJDb21wYW55X1JlZmVyZW5jZV9JRCI+Q09NUC1BQ01FPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPC93ZDpPcmdhbml6YXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8d2Q6T3JnYW5pemF0aW9uX05hbWU+QWNtZSBDb3Jwb3JhdGlvbjwvd2Q6T3JnYW5pemF0aW9uX05hbWU+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpPcmdhbml6YXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+M2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTRmNWE2YjdjOGQ8L3dkOklEPgogICAgICAgICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJPcmdhbml6YXRpb25fVHlwZV9JRCI+Q29tcGFueTwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvd2Q6T3JnYW5pemF0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPC93ZDpPcmdhbml6YXRpb25fRGF0YT4KICAgICAgICAgICAgICAgICAgICA8L3dkOldvcmtlcl9Pcmdhbml6YXRpb25fRGF0YT4KICAgICAgICAgICAgICAgICAgPC93ZDpPcmdhbml6YXRpb25fRGF0YT4KCiAgICAgICAgICAgICAgICA8L3dkOlBvc2l0aW9uX0RhdGE+CgogICAgICAgICAgICAgICAgPHdkOk1hbmFnZXJfYXNfb2ZfbGFzdF9kZXRlY3RlZF9tYW5hZ2VyX2NoYW5nZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJXSUQiPjExMjIzMzQ0NTU2Njc3ODg5OTAwMTFhYWJiY2NkZGVlPC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkVtcGxveWVlX0lEIj4xMDAxMDI8L3dkOklEPgogICAgICAgICAgICAgICAgPC93ZDpNYW5hZ2VyX2FzX29mX2xhc3RfZGV0ZWN0ZWRfbWFuYWdlcl9jaGFuZ2VfUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgIDx3ZDpXb3JrZXJfU3RhdHVzX0RhdGE+CiAgICAgICAgICAgICAgICAgIDx3ZDpBY3RpdmU+ZmFsc2U8L3dkOkFjdGl2ZT4KICAgICAgICAgICAgICAgICAgPHdkOkFjdGl2ZV9TdGF0dXNfRGF0ZT4yMDIyLTA2LTAxPC93ZDpBY3RpdmVfU3RhdHVzX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpIaXJlX0RhdGU+MjAyMi0wNi0wMTwvd2Q6SGlyZV9EYXRlPgogICAgICAgICAgICAgICAgICA8d2Q6T3JpZ2luYWxfSGlyZV9EYXRlPjIwMjItMDYtMDE8L3dkOk9yaWdpbmFsX0hpcmVfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOkVuZF9FbXBsb3ltZW50X0RhdGU+MjAyNS0xMi0yMDwvd2Q6RW5kX0VtcGxveW1lbnRfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOkNvbnRpbnVvdXNfU2VydmljZV9EYXRlPjIwMjItMDYtMDE8L3dkOkNvbnRpbnVvdXNfU2VydmljZV9EYXRlPgogICAgICAgICAgICAgICAgICA8d2Q6Rmlyc3RfRGF5X29mX1dvcms+MjAyMi0wNi0wMTwvd2Q6Rmlyc3RfRGF5X29mX1dvcms+CiAgICAgICAgICAgICAgICAgIDx3ZDpTZW5pb3JpdHlfRGF0ZT4yMDIyLTA2LTAxPC93ZDpTZW5pb3JpdHlfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOkJlbmVmaXRzX1NlcnZpY2VfRGF0ZT4yMDIyLTA2LTAxPC93ZDpCZW5lZml0c19TZXJ2aWNlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpDb21wYW55X1NlcnZpY2VfRGF0ZT4yMDIyLTA2LTAxPC93ZDpDb21wYW55X1NlcnZpY2VfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHdkOlJldGlyZWQ+ZmFsc2U8L3dkOlJldGlyZWQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpUZXJtaW5hdGVkPnRydWU8L3dkOlRlcm1pbmF0ZWQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpUZXJtaW5hdGlvbl9EYXRlPjIwMjUtMTItMjA8L3dkOlRlcm1pbmF0aW9uX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpQYXlfVGhyb3VnaF9EYXRlPjIwMjUtMTItMzE8L3dkOlBheV9UaHJvdWdoX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpUZXJtaW5hdGlvbl9DYXRlZ29yeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+YWFiYjExMjJjY2RkMzM0NGVlZmY1NTY2YWFiYjc3ODg8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJUZXJtaW5hdGlvbl9DYXRlZ29yeV9JRCI+Vm9sdW50YXJ5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpUZXJtaW5hdGlvbl9DYXRlZ29yeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpQcmltYXJ5X1Rlcm1pbmF0aW9uX1JlYXNvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IldJRCI+Y2NkZDMzNDRlZWZmNTU2NmFhYmI3Nzg4OTkwMDExMjI8L3dkOklEPgogICAgICAgICAgICAgICAgICAgIDx3ZDpJRCB3ZDp0eXBlPSJUZXJtaW5hdGlvbl9SZWFzb25fSUQiPlJlc2lnbmF0aW9uIC0gTmV3IE9wcG9ydHVuaXR5PC93ZDpJRD4KICAgICAgICAgICAgICAgICAgPC93ZDpQcmltYXJ5X1Rlcm1pbmF0aW9uX1JlYXNvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx3ZDpSZWhpcmU+ZmFsc2U8L3dkOlJlaGlyZT4KICAgICAgICAgICAgICAgICAgPHdkOkRheXNfVW5lbXBsb3llZD4wPC93ZDpEYXlzX1VuZW1wbG95ZWQ+CiAgICAgICAgICAgICAgICAgIDx3ZDpOb3RfUmV0dXJuaW5nPnRydWU8L3dkOk5vdF9SZXR1cm5pbmc+CiAgICAgICAgICAgICAgICAgIDx3ZDpSZXNpZ25hdGlvbl9EYXRlPjIwMjUtMTEtMjA8L3dkOlJlc2lnbmF0aW9uX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx3ZDpMYXN0X0RheV9vZl9Xb3JrPjIwMjUtMTItMTk8L3dkOkxhc3RfRGF5X29mX1dvcms+CiAgICAgICAgICAgICAgICAgIDx3ZDpFbGlnaWJsZV9mb3JfUmVoaXJlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8d2Q6SUQgd2Q6dHlwZT0iV0lEIj5lZWZmNTU2NmFhYmI3Nzg4OTkwMDExMjJjY2RkMzM0NDwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHdkOklEIHdkOnR5cGU9IkVsaWdpYmxlX2Zvcl9SZWhpcmVfSUQiPlllczwvd2Q6SUQ+CiAgICAgICAgICAgICAgICAgIDwvd2Q6RWxpZ2libGVfZm9yX1JlaGlyZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICA8L3dkOldvcmtlcl9TdGF0dXNfRGF0YT4KCiAgICAgICAgICAgICAgPC93ZDpXb3JrZXJfSm9iX0RhdGE+CgogICAgICAgICAgICA8L3dkOkVtcGxveW1lbnRfRGF0YT4KCiAgICAgICAgICA8L3dkOldvcmtlcl9EYXRhPgogICAgICAgIDwvd2Q6V29ya2VyPgoKICAgICAgPC93ZDpSZXNwb25zZV9EYXRhPgogICAgPC93ZDpHZXRfV29ya2Vyc19SZXNwb25zZT4KICA8L2VudjpCb2R5Pgo8L2VudjpFbnZlbG9wZT4="} \ No newline at end of file +{"xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNvYXA6RW52ZWxvcGUKICAgIHhtbG5zOnNvYXA9Imh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvZW52ZWxvcGUvIgogICAgeG1sbnM6eGhyPSJ1cm46Y29tLnh5bG9waG9uaWNoci9hcGkiPgogIDxzb2FwOkJvZHk+CiAgICA8eGhyOkdldEVtcGxveWVlc19SZXNwb25zZSB4aHI6dmVyc2lvbj0idjEyLjAiPgoKICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgIDwhLS0gUEFHSU5BVElPTiBNRVRBREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPgogICAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgICAgPHhocjpSZXNwb25zZV9GaWx0ZXI+CiAgICAgICAgPHhocjpFZmZlY3RpdmVfQXNfT2ZfRGF0ZT4yMDI2LTAzLTMwPC94aHI6RWZmZWN0aXZlX0FzX09mX0RhdGU+CiAgICAgICAgPHhocjpFZmZlY3RpdmVfQXNfT2ZfRGF0ZVRpbWU+MjAyNi0wMy0zMFQxMjowMDowMC4wMDAtMDc6MDA8L3hocjpFZmZlY3RpdmVfQXNfT2ZfRGF0ZVRpbWU+CiAgICAgICAgPHhocjpQYWdlPjE8L3hocjpQYWdlPgogICAgICAgIDx4aHI6UGFnZV9TaXplPjEwMDwveGhyOlBhZ2VfU2l6ZT4KICAgICAgPC94aHI6UmVzcG9uc2VfRmlsdGVyPgoKICAgICAgPHhocjpSZXNwb25zZV9TdW1tYXJ5PgogICAgICAgIDx4aHI6VG90YWxfUmVjb3Jkcz40PC94aHI6VG90YWxfUmVjb3Jkcz4KICAgICAgICA8eGhyOlRvdGFsX1BhZ2VzPjE8L3hocjpUb3RhbF9QYWdlcz4KICAgICAgICA8eGhyOlJlY29yZHNfT25fUGFnZT40PC94aHI6UmVjb3Jkc19Pbl9QYWdlPgogICAgICAgIDx4aHI6Q3VycmVudF9QYWdlPjE8L3hocjpDdXJyZW50X1BhZ2U+CiAgICAgIDwveGhyOlJlc3BvbnNlX1N1bW1hcnk+CgogICAgICA8eGhyOlJlc3BvbnNlX0RhdGE+CgogICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICAgIDwhLS0gRU1QTE9ZRUUgMSDigJQgQWN0aXZlLCBGdWxsLVRpbWUsIFVTLWJhc2VkICAgICAgICAgICAgICAgICAgICAgLS0+CiAgICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgPHhocjpFbXBsb3llZT4KICAgICAgICAgIDx4aHI6RW1wbG95ZWVfUmVmZXJlbmNlPgogICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmE0YzllMTdmMmI2ZDQ4YTM5MDFlN2M1ZjgzZDJiMGE2PC94aHI6SUQ+CiAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkVtcGxveWVlX051bWJlciI+RU1QLTIwNDgxNzwveGhyOklEPgogICAgICAgICAgPC94aHI6RW1wbG95ZWVfUmVmZXJlbmNlPgoKICAgICAgICAgIDx4aHI6RW1wbG95ZWVfRGF0YT4KICAgICAgICAgICAgPHhocjpFbXBsb3llZV9OdW1iZXI+RU1QLTIwNDgxNzwveGhyOkVtcGxveWVlX051bWJlcj4KICAgICAgICAgICAgPHhocjpMb2dpbl9JRD5rcGF0ZWw8L3hocjpMb2dpbl9JRD4KCiAgICAgICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgICAgIDwhLS0gUEVSU09OQUwgREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPgogICAgICAgICAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICAgICAgICA8eGhyOlBlcnNvbmFsX0RhdGE+CgogICAgICAgICAgICAgIDx4aHI6TmFtZV9EYXRhPgogICAgICAgICAgICAgICAgPHhocjpMZWdhbF9OYW1lPgogICAgICAgICAgICAgICAgICA8eGhyOk5hbWVfRGV0YWlsPgogICAgICAgICAgICAgICAgICAgIDx4aHI6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmJjMzNhYTMxNTJlYzQyZDQ5OTVmNDc5MWExMDZlZDA5PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJJU09fMzE2Nl9BbHBoYTIiPlVTPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJJU09fMzE2Nl9BbHBoYTMiPlVTQTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDwveGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6VGl0bGU+TXMuPC94aHI6VGl0bGU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpGaXJzdF9OYW1lPkthdml0YTwveGhyOkZpcnN0X05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpNaWRkbGVfTmFtZT5SYW5pPC94aHI6TWlkZGxlX05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpMYXN0X05hbWU+UGF0ZWw8L3hocjpMYXN0X05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpTdWZmaXgvPgogICAgICAgICAgICAgICAgICAgIDx4aHI6RGlzcGxheV9OYW1lPkthdml0YSBSYW5pIFBhdGVsPC94aHI6RGlzcGxheV9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6U29ydF9OYW1lPlBhdGVsLCBLYXZpdGEgUmFuaTwveGhyOlNvcnRfTmFtZT4KICAgICAgICAgICAgICAgICAgPC94aHI6TmFtZV9EZXRhaWw+CiAgICAgICAgICAgICAgICA8L3hocjpMZWdhbF9OYW1lPgogICAgICAgICAgICAgICAgPHhocjpQcmVmZXJyZWRfTmFtZT4KICAgICAgICAgICAgICAgICAgPHhocjpOYW1lX0RldGFpbD4KICAgICAgICAgICAgICAgICAgICA8eGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5iYzMzYWEzMTUyZWM0MmQ0OTk1ZjQ3OTFhMTA2ZWQwOTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iSVNPXzMxNjZfQWxwaGEyIj5VUzwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDwveGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6Rmlyc3RfTmFtZT5LYXZpdGE8L3hocjpGaXJzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6TGFzdF9OYW1lPlBhdGVsPC94aHI6TGFzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6RGlzcGxheV9OYW1lPkthdml0YSBQYXRlbDwveGhyOkRpc3BsYXlfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOlNvcnRfTmFtZT5QYXRlbCwgS2F2aXRhPC94aHI6U29ydF9OYW1lPgogICAgICAgICAgICAgICAgICA8L3hocjpOYW1lX0RldGFpbD4KICAgICAgICAgICAgICAgIDwveGhyOlByZWZlcnJlZF9OYW1lPgogICAgICAgICAgICAgIDwveGhyOk5hbWVfRGF0YT4KCiAgICAgICAgICAgICAgPHhocjpDb250YWN0X0RhdGE+CgogICAgICAgICAgICAgICAgPCEtLSBXb3JrIEVtYWlsIC0tPgogICAgICAgICAgICAgICAgPHhocjpFbWFpbD4KICAgICAgICAgICAgICAgICAgPHhocjpFbWFpbF9BZGRyZXNzPmthdml0YS5wYXRlbEBnbG9iYWxkeW5hbWljcy5jb208L3hocjpFbWFpbF9BZGRyZXNzPgogICAgICAgICAgICAgICAgICA8eGhyOlVzYWdlIHhocjpQdWJsaWM9InRydWUiPgogICAgICAgICAgICAgICAgICAgIDx4aHI6VHlwZV9JbmZvIHhocjpQcmltYXJ5PSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZDBlMWYyYTNiNGM1ZDZlN2Y4YTliMGMxZDJlM2Y0YTU8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iVXNhZ2VfVHlwZV9Db2RlIj5XT1JLPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3hocjpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3hocjpUeXBlX0luZm8+CiAgICAgICAgICAgICAgICAgIDwveGhyOlVzYWdlPgogICAgICAgICAgICAgICAgPC94aHI6RW1haWw+CgogICAgICAgICAgICAgICAgPCEtLSBQZXJzb25hbCBFbWFpbCAtLT4KICAgICAgICAgICAgICAgIDx4aHI6RW1haWw+CiAgICAgICAgICAgICAgICAgIDx4aHI6RW1haWxfQWRkcmVzcz5rYXZpdGEuci5wYXRlbEBvdXRsb29rLmNvbTwveGhyOkVtYWlsX0FkZHJlc3M+CiAgICAgICAgICAgICAgICAgIDx4aHI6VXNhZ2UgeGhyOlB1YmxpYz0iZmFsc2UiPgogICAgICAgICAgICAgICAgICAgIDx4aHI6VHlwZV9JbmZvIHhocjpQcmltYXJ5PSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmExYjJjM2Q0ZTVmNmE3YjhjOWQwZTFmMmEzYjRjNWQ2PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IlVzYWdlX1R5cGVfQ29kZSI+SE9NRTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPC94aHI6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6VHlwZV9JbmZvPgogICAgICAgICAgICAgICAgICA8L3hocjpVc2FnZT4KICAgICAgICAgICAgICAgIDwveGhyOkVtYWlsPgoKICAgICAgICAgICAgICAgIDwhLS0gV29yayBQaG9uZSAtLT4KICAgICAgICAgICAgICAgIDx4aHI6UGhvbmU+CiAgICAgICAgICAgICAgICAgIDx4aHI6Q291bnRyeV9Db2RlPjE8L3hocjpDb3VudHJ5X0NvZGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6QXJlYV9Db2RlPjQxNTwveGhyOkFyZWFfQ29kZT4KICAgICAgICAgICAgICAgICAgPHhocjpOdW1iZXI+NTU1LTAxMzI8L3hocjpOdW1iZXI+CiAgICAgICAgICAgICAgICAgIDx4aHI6RXh0ZW5zaW9uPjQ0MjA8L3hocjpFeHRlbnNpb24+CiAgICAgICAgICAgICAgICAgIDx4aHI6RGV2aWNlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZTRmNWE2YjdjOGQ5ZTBmMWEyYjNjNGQ1ZTZmN2E4Yjk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJEZXZpY2VfVHlwZV9Db2RlIj5MYW5kbGluZTwveGhyOklEPgogICAgICAgICAgICAgICAgICA8L3hocjpEZXZpY2VfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx4aHI6VXNhZ2UgeGhyOlB1YmxpYz0idHJ1ZSI+CiAgICAgICAgICAgICAgICAgICAgPHhocjpUeXBlX0luZm8geGhyOlByaW1hcnk9InRydWUiPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5kMGUxZjJhM2I0YzVkNmU3ZjhhOWIwYzFkMmUzZjRhNTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJVc2FnZV9UeXBlX0NvZGUiPldPUks8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwveGhyOlR5cGVfSW5mbz4KICAgICAgICAgICAgICAgICAgPC94aHI6VXNhZ2U+CiAgICAgICAgICAgICAgICAgIDx4aHI6Rm9ybWF0dGVkX051bWJlcj4rMSAoNDE1KSA1NTUtMDEzMiB4NDQyMDwveGhyOkZvcm1hdHRlZF9OdW1iZXI+CiAgICAgICAgICAgICAgICA8L3hocjpQaG9uZT4KCiAgICAgICAgICAgICAgICA8IS0tIE1vYmlsZSBQaG9uZSAtLT4KICAgICAgICAgICAgICAgIDx4aHI6UGhvbmU+CiAgICAgICAgICAgICAgICAgIDx4aHI6Q291bnRyeV9Db2RlPjE8L3hocjpDb3VudHJ5X0NvZGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6QXJlYV9Db2RlPjY1MDwveGhyOkFyZWFfQ29kZT4KICAgICAgICAgICAgICAgICAgPHhocjpOdW1iZXI+NTU1LTAyNzg8L3hocjpOdW1iZXI+CiAgICAgICAgICAgICAgICAgIDx4aHI6RGV2aWNlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZjVhNmI3YzhkOWUwZjFhMmIzYzRkNWU2ZjdhOGI5YzA8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJEZXZpY2VfVHlwZV9Db2RlIj5Nb2JpbGU8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6RGV2aWNlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8eGhyOlVzYWdlIHhocjpQdWJsaWM9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICA8eGhyOlR5cGVfSW5mbyB4aHI6UHJpbWFyeT0iZmFsc2UiPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5hMWIyYzNkNGU1ZjZhN2I4YzlkMGUxZjJhM2I0YzVkNjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJVc2FnZV9UeXBlX0NvZGUiPkhPTUU8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwveGhyOlR5cGVfSW5mbz4KICAgICAgICAgICAgICAgICAgPC94aHI6VXNhZ2U+CiAgICAgICAgICAgICAgICAgIDx4aHI6Rm9ybWF0dGVkX051bWJlcj4rMSAoNjUwKSA1NTUtMDI3ODwveGhyOkZvcm1hdHRlZF9OdW1iZXI+CiAgICAgICAgICAgICAgICA8L3hocjpQaG9uZT4KCiAgICAgICAgICAgICAgICA8IS0tIEhvbWUgQWRkcmVzcyAtLT4KICAgICAgICAgICAgICAgIDx4aHI6QWRkcmVzcz4KICAgICAgICAgICAgICAgICAgPHhocjpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmJjMzNhYTMxNTJlYzQyZDQ5OTVmNDc5MWExMDZlZDA5PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iSVNPXzMxNjZfQWxwaGEyIj5VUzwveGhyOklEPgogICAgICAgICAgICAgICAgICA8L3hocjpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHhocjpMYXN0X01vZGlmaWVkPjIwMjUtMDEtMTBUMDg6MTU6MDAuMDAwLTA4OjAwPC94aHI6TGFzdF9Nb2RpZmllZD4KICAgICAgICAgICAgICAgICAgPHhocjpMaW5lIHhocjpUeXBlPSJMSU5FXzEiPjE4NDcgTG9tYmFyZCBTdHJlZXQ8L3hocjpMaW5lPgogICAgICAgICAgICAgICAgICA8eGhyOkxpbmUgeGhyOlR5cGU9IkxJTkVfMiI+VW5pdCA2PC94aHI6TGluZT4KICAgICAgICAgICAgICAgICAgPHhocjpDaXR5PlNhbiBGcmFuY2lzY288L3hocjpDaXR5PgogICAgICAgICAgICAgICAgICA8eGhyOlJlZ2lvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5hOGI5YzBkMWUyZjNhNGI1YzZkN2U4ZjlhMGIxYzJkMzwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IlJlZ2lvbl9Db2RlIj5VU0EtQ0E8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6UmVnaW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHhocjpSZWdpb25fTmFtZT5DYWxpZm9ybmlhPC94aHI6UmVnaW9uX05hbWU+CiAgICAgICAgICAgICAgICAgIDx4aHI6UG9zdGFsX0NvZGU+OTQxMjM8L3hocjpQb3N0YWxfQ29kZT4KICAgICAgICAgICAgICAgICAgPHhocjpGb3JtYXR0ZWRfQWRkcmVzcz4xODQ3IExvbWJhcmQgU3RyZWV0LCBVbml0IDYsIFNhbiBGcmFuY2lzY28sIENBIDk0MTIzLCBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2E8L3hocjpGb3JtYXR0ZWRfQWRkcmVzcz4KICAgICAgICAgICAgICAgICAgPHhocjpJc19CdXNpbmVzc19TaXRlX0RlZmF1bHQ+ZmFsc2U8L3hocjpJc19CdXNpbmVzc19TaXRlX0RlZmF1bHQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6VXNhZ2UgeGhyOlB1YmxpYz0iZmFsc2UiPgogICAgICAgICAgICAgICAgICAgIDx4aHI6VHlwZV9JbmZvIHhocjpQcmltYXJ5PSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YTFiMmMzZDRlNWY2YTdiOGM5ZDBlMWYyYTNiNGM1ZDY8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iVXNhZ2VfVHlwZV9Db2RlIj5IT01FPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3hocjpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3hocjpUeXBlX0luZm8+CiAgICAgICAgICAgICAgICAgIDwveGhyOlVzYWdlPgogICAgICAgICAgICAgICAgPC94aHI6QWRkcmVzcz4KCiAgICAgICAgICAgICAgPC94aHI6Q29udGFjdF9EYXRhPgoKICAgICAgICAgICAgICA8eGhyOkJpb2dyYXBoaWNhbF9EYXRhPgogICAgICAgICAgICAgICAgPHhocjpEYXRlX29mX0JpcnRoPjE5OTAtMDQtMTg8L3hocjpEYXRlX29mX0JpcnRoPgogICAgICAgICAgICAgICAgPHhocjpHZW5kZXJfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjlhMGIxYzJkM2U0ZjVhNmI3YzhkOWUwZjFhMmIzYzRkPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdlbmRlcl9Db2RlIj5GZW1hbGU8L3hocjpJRD4KICAgICAgICAgICAgICAgIDwveGhyOkdlbmRlcl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICA8eGhyOkNvdW50cnlfb2ZfQmlydGhfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmJjMzNhYTMxNTJlYzQyZDQ5OTVmNDc5MWExMDZlZDA5PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IklTT18zMTY2X0FscGhhMiI+VVM8L3hocjpJRD4KICAgICAgICAgICAgICAgIDwveGhyOkNvdW50cnlfb2ZfQmlydGhfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgPHhocjpNYXJpdGFsX1N0YXR1c19SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGI1YzZkN2U4Zjk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iTWFyaXRhbF9TdGF0dXNfQ29kZSI+TWFycmllZDwveGhyOklEPgogICAgICAgICAgICAgICAgPC94aHI6TWFyaXRhbF9TdGF0dXNfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgPHhocjpNYXJpdGFsX1N0YXR1c19EYXRlPjIwMjAtMDgtMTU8L3hocjpNYXJpdGFsX1N0YXR1c19EYXRlPgogICAgICAgICAgICAgIDwveGhyOkJpb2dyYXBoaWNhbF9EYXRhPgoKICAgICAgICAgICAgICA8eGhyOklkZW50aWZpY2F0aW9uX0RhdGE+CiAgICAgICAgICAgICAgICA8eGhyOk5hdGlvbmFsX0lEPgogICAgICAgICAgICAgICAgICA8eGhyOk5hdGlvbmFsX0lEX0RldGFpbD4KICAgICAgICAgICAgICAgICAgICA8eGhyOlZhbHVlPioqKi0qKi03ODkwPC94aHI6VmFsdWU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRF9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZThmOWEwYjFjMmQzZTRmNWE2YjdjOGQ5ZTBmMWEyYjM8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9Ik5hdGlvbmFsX0lEX1R5cGUiPlVTQS1TU048L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpJRF9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5iYzMzYWEzMTUyZWM0MmQ0OTk1ZjQ3OTFhMTA2ZWQwOTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iSVNPXzMxNjZfQWxwaGEyIj5VUzwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDwveGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SXNzdWVkX0RhdGU+MjAwOC0wNi0yMDwveGhyOklzc3VlZF9EYXRlPgogICAgICAgICAgICAgICAgICA8L3hocjpOYXRpb25hbF9JRF9EZXRhaWw+CiAgICAgICAgICAgICAgICA8L3hocjpOYXRpb25hbF9JRD4KICAgICAgICAgICAgICAgIDx4aHI6Q3VzdG9tX0lEPgogICAgICAgICAgICAgICAgICA8eGhyOkN1c3RvbV9JRF9EZXRhaWw+CiAgICAgICAgICAgICAgICAgICAgPHhocjpWYWx1ZT5CQURHRS0xMDQ4MjwveGhyOlZhbHVlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SURfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmYxYTJiM2M0ZDVlNmY3YThiOWMwZDFlMmYzYTRiNWM2PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJDdXN0b21fSURfVHlwZSI+QmFkZ2VfSUQ8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpJRF9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPC94aHI6Q3VzdG9tX0lEX0RldGFpbD4KICAgICAgICAgICAgICAgIDwveGhyOkN1c3RvbV9JRD4KICAgICAgICAgICAgICAgIDx4aHI6Q3VzdG9tX0lEPgogICAgICAgICAgICAgICAgICA8eGhyOkN1c3RvbV9JRF9EZXRhaWw+CiAgICAgICAgICAgICAgICAgICAgPHhocjpWYWx1ZT5QS1QtMDA5MTwveGhyOlZhbHVlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SURfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmEyYjNjNGQ1ZTZmN2E4YjljMGQxZTJmM2E0YjVjNmQ3PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJDdXN0b21fSURfVHlwZSI+UGFya2luZ19QZXJtaXQ8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpJRF9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPC94aHI6Q3VzdG9tX0lEX0RldGFpbD4KICAgICAgICAgICAgICAgIDwveGhyOkN1c3RvbV9JRD4KICAgICAgICAgICAgICA8L3hocjpJZGVudGlmaWNhdGlvbl9EYXRhPgoKICAgICAgICAgICAgPC94aHI6UGVyc29uYWxfRGF0YT4KCiAgICAgICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgICAgIDwhLS0gRU1QTE9ZTUVOVCBEQVRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPgogICAgICAgICAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICAgICAgICA8eGhyOkVtcGxveW1lbnRfRGF0YT4KICAgICAgICAgICAgICA8eGhyOkpvYl9EYXRhPgogICAgICAgICAgICAgICAgPHhocjpQb3NpdGlvbj4KICAgICAgICAgICAgICAgICAgPHhocjpQb3NpdGlvbl9JRD5QT1MtMDA5MjEzPC94aHI6UG9zaXRpb25fSUQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6UG9zaXRpb25fVGl0bGU+UHJpbmNpcGFsIERhdGEgRW5naW5lZXI8L3hocjpQb3NpdGlvbl9UaXRsZT4KICAgICAgICAgICAgICAgICAgPHhocjpCdXNpbmVzc19UaXRsZT5QcmluY2lwYWwgRGF0YSBFbmdpbmVlcjwveGhyOkJ1c2luZXNzX1RpdGxlPgogICAgICAgICAgICAgICAgICA8eGhyOlN0YXJ0X0RhdGU+MjAyNC0wMi0xMjwveGhyOlN0YXJ0X0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6RGVmYXVsdF9XZWVrbHlfSG91cnM+NDA8L3hocjpEZWZhdWx0X1dlZWtseV9Ib3Vycz4KICAgICAgICAgICAgICAgICAgPHhocjpTY2hlZHVsZWRfV2Vla2x5X0hvdXJzPjQwPC94aHI6U2NoZWR1bGVkX1dlZWtseV9Ib3Vycz4KICAgICAgICAgICAgICAgICAgPHhocjpGVEVfUGVyY2VudGFnZT4xMDA8L3hocjpGVEVfUGVyY2VudGFnZT4KCiAgICAgICAgICAgICAgICAgIDx4aHI6UG9zaXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+N2JjNjY0MGM4YWY0NTljNmJmOTlkNGIwMmM1OWQwMDE8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJQb3NpdGlvbl9JRCI+UE9TLTAwOTIxMzwveGhyOklEPgogICAgICAgICAgICAgICAgICA8L3hocjpQb3NpdGlvbl9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgICA8eGhyOkVtcGxveWVlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZDRlNWY2YTdiOGM5ZDBlMWYyYTNiNGM1ZDZlN2Y4YTk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJFbXBsb3llZV9UeXBlX0NvZGUiPlJlZ3VsYXI8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6RW1wbG95ZWVfVHlwZV9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgICA8eGhyOkpvYl9Qcm9maWxlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6Sm9iX1Byb2ZpbGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj4xYTJiM2M0ZDVlNmY3YThiOWMwZDFlMmYzYTRiNWM2ZDwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iSm9iX1Byb2ZpbGVfQ29kZSI+SlAtREFUQS1FTkctUDwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDwveGhyOkpvYl9Qcm9maWxlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkpvYl9Qcm9maWxlX05hbWU+UHJpbmNpcGFsIERhdGEgRW5naW5lZXI8L3hocjpKb2JfUHJvZmlsZV9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6TWFuYWdlbWVudF9MZXZlbF9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjJiM2M0ZDVlNmY3YThiOWMwZDFlMmYzYTRiNWM2ZDdlPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJNYW5hZ2VtZW50X0xldmVsX0NvZGUiPkluZGl2aWR1YWxfQ29udHJpYnV0b3I8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpNYW5hZ2VtZW50X0xldmVsX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkpvYl9DYXRlZ29yeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjNjNGQ1ZTZmN2E4YjljMGQxZTJmM2E0YjVjNmQ3ZThmPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJKb2JfQ2F0ZWdvcnlfQ29kZSI+RW5naW5lZXJpbmc8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpKb2JfQ2F0ZWdvcnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6Sm9iX0ZhbWlseV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjRkNWU2ZjdhOGI5YzBkMWUyZjNhNGI1YzZkN2U4ZjlhPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJKb2JfRmFtaWx5X0NvZGUiPkpGLURhdGEtRW5naW5lZXJpbmc8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpKb2JfRmFtaWx5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPC94aHI6Sm9iX1Byb2ZpbGU+CgogICAgICAgICAgICAgICAgICA8eGhyOldvcmtfTG9jYXRpb24+CiAgICAgICAgICAgICAgICAgICAgPHhocjpMb2NhdGlvbl9OYW1lPlNhbiBGcmFuY2lzY28gSFE8L3hocjpMb2NhdGlvbl9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6TG9jYXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj41ZTZmN2E4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iTG9jYXRpb25fQ29kZSI+TE9DLVNGLUhRPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6TG9jYXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6TG9jYXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjZmN2E4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJMb2NhdGlvbl9UeXBlX0NvZGUiPk9mZmljZTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDwveGhyOkxvY2F0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6QWRkcmVzcz4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IklTT18zMTY2X0FscGhhMiI+VVM8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpMaW5lIHhocjpUeXBlPSJMSU5FXzEiPjM1MCBNaXNzaW9uIFN0cmVldDwveGhyOkxpbmU+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOkxpbmUgeGhyOlR5cGU9IkxJTkVfMiI+Rmxvb3IgMjI8L3hocjpMaW5lPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpDaXR5PlNhbiBGcmFuY2lzY288L3hocjpDaXR5PgogICAgICAgICAgICAgICAgICAgICAgPHhocjpSZWdpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJSZWdpb25fQ29kZSI+VVNBLUNBPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3hocjpSZWdpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpSZWdpb25fTmFtZT5DYWxpZm9ybmlhPC94aHI6UmVnaW9uX05hbWU+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOlBvc3RhbF9Db2RlPjk0MTA1PC94aHI6UG9zdGFsX0NvZGU+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6QWRkcmVzcz4KICAgICAgICAgICAgICAgICAgPC94aHI6V29ya19Mb2NhdGlvbj4KCiAgICAgICAgICAgICAgICAgIDx4aHI6UGF5X1JhdGVfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj43YThiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IlBheV9SYXRlX1R5cGVfQ29kZSI+U2FsYXJ5PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDwveGhyOlBheV9SYXRlX1R5cGVfUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPHhocjpUaW1lX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+OGI5YzBkMWUyZjNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJUaW1lX1R5cGVfQ29kZSI+RnVsbF9UaW1lPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDwveGhyOlRpbWVfVHlwZV9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgICA8eGhyOlN1cGVydmlzb3J5X09yZ19SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj45YzBkMWUyZjNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9Ik9yZ19Db2RlIj5FTkctREFUQS0wMDE8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6U3VwZXJ2aXNvcnlfT3JnX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uX0Fzc2lnbm1lbnRzPgogICAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjBkMWUyZjNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9Ik9yZ19Db2RlIj5DQy03MTAwPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkNvc3RfQ2VudGVyX0NvZGUiPkNDLTcxMDA8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOk9yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOk9yZ2FuaXphdGlvbl9OYW1lPkVuZ2luZWVyaW5nIC0gRGF0YSBQbGF0Zm9ybTwveGhyOk9yZ2FuaXphdGlvbl9OYW1lPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+MWUyZjNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhNmI8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iT3JnX1R5cGVfQ29kZSI+Q29zdF9DZW50ZXI8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOk9yZ2FuaXphdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3hocjpPcmdhbml6YXRpb24+CiAgICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb24+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOk9yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+MmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlNGY1YTZiN2M8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iT3JnX0NvZGUiPkNPTVAtR0Q8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iQ29tcGFueV9Db2RlIj5DT01QLUdEPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3hocjpPcmdhbml6YXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb25fTmFtZT5HbG9iYWwgRHluYW1pY3MgSW5jLjwveGhyOk9yZ2FuaXphdGlvbl9OYW1lPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+M2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTRmNWE2YjdjOGQ8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iT3JnX1R5cGVfQ29kZSI+Q29tcGFueTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPC94aHI6T3JnYW5pemF0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwveGhyOk9yZ2FuaXphdGlvbj4KICAgICAgICAgICAgICAgICAgICA8eGhyOk9yZ2FuaXphdGlvbj4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj40YTViNmM3ZDhlOWYwYTFiMmMzZDRlNWY2YTdiOGM5ZDwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJPcmdfQ29kZSI+UkVHLVdFU1Q8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iUmVnaW9uX09yZ19Db2RlIj5SRUctV0VTVDwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPC94aHI6T3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uX05hbWU+V2VzdGVybiBSZWdpb248L3hocjpPcmdhbml6YXRpb25fTmFtZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjViNmM3ZDhlOWYwYTFiMmMzZDRlNWY2YTdiOGM5ZDBlPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9Ik9yZ19UeXBlX0NvZGUiPlJlZ2lvbjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPC94aHI6T3JnYW5pemF0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwveGhyOk9yZ2FuaXphdGlvbj4KICAgICAgICAgICAgICAgICAgPC94aHI6T3JnYW5pemF0aW9uX0Fzc2lnbm1lbnRzPgoKICAgICAgICAgICAgICAgIDwveGhyOlBvc2l0aW9uPgoKICAgICAgICAgICAgICAgIDx4aHI6TWFuYWdlcl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YWFiYmNjZGQxMTIyMzM0NDU1NjY3Nzg4OTkwMGFhYmI8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iRW1wbG95ZWVfTnVtYmVyIj5FTVAtMTk4MDQ0PC94aHI6SUQ+CiAgICAgICAgICAgICAgICA8L3hocjpNYW5hZ2VyX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICA8eGhyOkVtcGxveW1lbnRfU3RhdHVzPgogICAgICAgICAgICAgICAgICA8eGhyOklzX0FjdGl2ZT50cnVlPC94aHI6SXNfQWN0aXZlPgogICAgICAgICAgICAgICAgICA8eGhyOkFjdGl2ZV9TdGF0dXNfRGF0ZT4yMDIyLTA4LTAxPC94aHI6QWN0aXZlX1N0YXR1c19EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOkhpcmVfRGF0ZT4yMDIyLTA4LTAxPC94aHI6SGlyZV9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOk9yaWdpbmFsX0hpcmVfRGF0ZT4yMDIyLTA4LTAxPC94aHI6T3JpZ2luYWxfSGlyZV9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOkVuZF9FbXBsb3ltZW50X0RhdGUvPgogICAgICAgICAgICAgICAgICA8eGhyOkNvbnRpbnVvdXNfU2VydmljZV9EYXRlPjIwMjItMDgtMDE8L3hocjpDb250aW51b3VzX1NlcnZpY2VfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHhocjpGaXJzdF9EYXlfb2ZfV29yaz4yMDIyLTA4LTAxPC94aHI6Rmlyc3RfRGF5X29mX1dvcms+CiAgICAgICAgICAgICAgICAgIDx4aHI6U2VuaW9yaXR5X0RhdGU+MjAyMi0wOC0wMTwveGhyOlNlbmlvcml0eV9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOkJlbmVmaXRzX1NlcnZpY2VfRGF0ZT4yMDIyLTA4LTAxPC94aHI6QmVuZWZpdHNfU2VydmljZV9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOkNvbXBhbnlfU2VydmljZV9EYXRlPjIwMjItMDgtMDE8L3hocjpDb21wYW55X1NlcnZpY2VfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHhocjpJc19SZXRpcmVkPmZhbHNlPC94aHI6SXNfUmV0aXJlZD4KICAgICAgICAgICAgICAgICAgPHhocjpJc19UZXJtaW5hdGVkPmZhbHNlPC94aHI6SXNfVGVybWluYXRlZD4KICAgICAgICAgICAgICAgICAgPHhocjpJc19SZWhpcmU+ZmFsc2U8L3hocjpJc19SZWhpcmU+CiAgICAgICAgICAgICAgICAgIDx4aHI6RGF5c19VbmVtcGxveWVkPjA8L3hocjpEYXlzX1VuZW1wbG95ZWQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6UHJvYmF0aW9uX1N0YXJ0X0RhdGU+MjAyMi0wOC0wMTwveGhyOlByb2JhdGlvbl9TdGFydF9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOlByb2JhdGlvbl9FbmRfRGF0ZT4yMDIzLTAyLTAxPC94aHI6UHJvYmF0aW9uX0VuZF9EYXRlPgogICAgICAgICAgICAgICAgPC94aHI6RW1wbG95bWVudF9TdGF0dXM+CgogICAgICAgICAgICAgIDwveGhyOkpvYl9EYXRhPgogICAgICAgICAgICA8L3hocjpFbXBsb3ltZW50X0RhdGE+CgogICAgICAgICAgPC94aHI6RW1wbG95ZWVfRGF0YT4KICAgICAgICA8L3hocjpFbXBsb3llZT4KCiAgICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgPCEtLSBFTVBMT1lFRSAyIOKAlCBUZXJtaW5hdGVkIChWb2x1bnRhcnkgUmVzaWduYXRpb24pICAgICAgICAgICAgICAtLT4KICAgICAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgICAgICA8eGhyOkVtcGxveWVlPgogICAgICAgICAgPHhocjpFbXBsb3llZV9SZWZlcmVuY2U+CiAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+OGRkNzc2MWU5YmY1NGFjN2IwMTFlNWMyM2Q3MGZhOTI8L3hocjpJRD4KICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iRW1wbG95ZWVfTnVtYmVyIj5FTVAtMTg3MjkzPC94aHI6SUQ+CiAgICAgICAgICA8L3hocjpFbXBsb3llZV9SZWZlcmVuY2U+CgogICAgICAgICAgPHhocjpFbXBsb3llZV9EYXRhPgogICAgICAgICAgICA8eGhyOkVtcGxveWVlX051bWJlcj5FTVAtMTg3MjkzPC94aHI6RW1wbG95ZWVfTnVtYmVyPgogICAgICAgICAgICA8eGhyOkxvZ2luX0lEPnRjaGVuPC94aHI6TG9naW5fSUQ+CgogICAgICAgICAgICA8eGhyOlBlcnNvbmFsX0RhdGE+CiAgICAgICAgICAgICAgPHhocjpOYW1lX0RhdGE+CiAgICAgICAgICAgICAgICA8eGhyOkxlZ2FsX05hbWU+CiAgICAgICAgICAgICAgICAgIDx4aHI6TmFtZV9EZXRhaWw+CiAgICAgICAgICAgICAgICAgICAgPHhocjpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YmMzM2FhMzE1MmVjNDJkNDk5NWY0NzkxYTEwNmVkMDk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IklTT18zMTY2X0FscGhhMiI+VVM8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IklTT18zMTY2X0FscGhhMyI+VVNBPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpGaXJzdF9OYW1lPlRhbzwveGhyOkZpcnN0X05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpMYXN0X05hbWU+Q2hlbjwveGhyOkxhc3RfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkRpc3BsYXlfTmFtZT5UYW8gQ2hlbjwveGhyOkRpc3BsYXlfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOlNvcnRfTmFtZT5DaGVuLCBUYW88L3hocjpTb3J0X05hbWU+CiAgICAgICAgICAgICAgICAgIDwveGhyOk5hbWVfRGV0YWlsPgogICAgICAgICAgICAgICAgPC94aHI6TGVnYWxfTmFtZT4KICAgICAgICAgICAgICAgIDx4aHI6UHJlZmVycmVkX05hbWU+CiAgICAgICAgICAgICAgICAgIDx4aHI6TmFtZV9EZXRhaWw+CiAgICAgICAgICAgICAgICAgICAgPHhocjpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YmMzM2FhMzE1MmVjNDJkNDk5NWY0NzkxYTEwNmVkMDk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IklTT18zMTY2X0FscGhhMiI+VVM8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkZpcnN0X05hbWU+VGFvPC94aHI6Rmlyc3RfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkxhc3RfTmFtZT5DaGVuPC94aHI6TGFzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6RGlzcGxheV9OYW1lPlRhbyBDaGVuPC94aHI6RGlzcGxheV9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6U29ydF9OYW1lPkNoZW4sIFRhbzwveGhyOlNvcnRfTmFtZT4KICAgICAgICAgICAgICAgICAgPC94aHI6TmFtZV9EZXRhaWw+CiAgICAgICAgICAgICAgICA8L3hocjpQcmVmZXJyZWRfTmFtZT4KICAgICAgICAgICAgICA8L3hocjpOYW1lX0RhdGE+CgogICAgICAgICAgICAgIDx4aHI6Q29udGFjdF9EYXRhPgogICAgICAgICAgICAgICAgPHhocjpFbWFpbD4KICAgICAgICAgICAgICAgICAgPHhocjpFbWFpbF9BZGRyZXNzPnRhby5jaGVuQGdsb2JhbGR5bmFtaWNzLmNvbTwveGhyOkVtYWlsX0FkZHJlc3M+CiAgICAgICAgICAgICAgICAgIDx4aHI6VXNhZ2UgeGhyOlB1YmxpYz0idHJ1ZSI+CiAgICAgICAgICAgICAgICAgICAgPHhocjpUeXBlX0luZm8geGhyOlByaW1hcnk9InRydWUiPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5kMGUxZjJhM2I0YzVkNmU3ZjhhOWIwYzFkMmUzZjRhNTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJVc2FnZV9UeXBlX0NvZGUiPldPUks8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwveGhyOlR5cGVfSW5mbz4KICAgICAgICAgICAgICAgICAgPC94aHI6VXNhZ2U+CiAgICAgICAgICAgICAgICA8L3hocjpFbWFpbD4KCiAgICAgICAgICAgICAgICA8eGhyOlBob25lPgogICAgICAgICAgICAgICAgICA8eGhyOkNvdW50cnlfQ29kZT4xPC94aHI6Q291bnRyeV9Db2RlPgogICAgICAgICAgICAgICAgICA8eGhyOkFyZWFfQ29kZT4zMTI8L3hocjpBcmVhX0NvZGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6TnVtYmVyPjU1NS0wNDkxPC94aHI6TnVtYmVyPgogICAgICAgICAgICAgICAgICA8eGhyOkRldmljZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmU0ZjVhNmI3YzhkOWUwZjFhMmIzYzRkNWU2ZjdhOGI5PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iRGV2aWNlX1R5cGVfQ29kZSI+TGFuZGxpbmU8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6RGV2aWNlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8eGhyOlVzYWdlIHhocjpQdWJsaWM9InRydWUiPgogICAgICAgICAgICAgICAgICAgIDx4aHI6VHlwZV9JbmZvIHhocjpQcmltYXJ5PSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZDBlMWYyYTNiNGM1ZDZlN2Y4YTliMGMxZDJlM2Y0YTU8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iVXNhZ2VfVHlwZV9Db2RlIj5XT1JLPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3hocjpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3hocjpUeXBlX0luZm8+CiAgICAgICAgICAgICAgICAgIDwveGhyOlVzYWdlPgogICAgICAgICAgICAgICAgICA8eGhyOkZvcm1hdHRlZF9OdW1iZXI+KzEgKDMxMikgNTU1LTA0OTE8L3hocjpGb3JtYXR0ZWRfTnVtYmVyPgogICAgICAgICAgICAgICAgPC94aHI6UGhvbmU+CgogICAgICAgICAgICAgICAgPHhocjpBZGRyZXNzPgogICAgICAgICAgICAgICAgICA8eGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YmMzM2FhMzE1MmVjNDJkNDk5NWY0NzkxYTEwNmVkMDk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJJU09fMzE2Nl9BbHBoYTIiPlVTPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDwveGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8eGhyOkxhc3RfTW9kaWZpZWQ+MjAyNC0wMy0yMlQxMDo0NTowMC4wMDAtMDY6MDA8L3hocjpMYXN0X01vZGlmaWVkPgogICAgICAgICAgICAgICAgICA8eGhyOkxpbmUgeGhyOlR5cGU9IkxJTkVfMSI+NDQwIE5vcnRoIFdhYmFzaCBBdmVudWU8L3hocjpMaW5lPgogICAgICAgICAgICAgICAgICA8eGhyOkxpbmUgeGhyOlR5cGU9IkxJTkVfMiI+QXB0IDI3MDE8L3hocjpMaW5lPgogICAgICAgICAgICAgICAgICA8eGhyOkNpdHk+Q2hpY2FnbzwveGhyOkNpdHk+CiAgICAgICAgICAgICAgICAgIDx4aHI6UmVnaW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmMwZDFlMmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlNGY1PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iUmVnaW9uX0NvZGUiPlVTQS1JTDwveGhyOklEPgogICAgICAgICAgICAgICAgICA8L3hocjpSZWdpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8eGhyOlJlZ2lvbl9OYW1lPklsbGlub2lzPC94aHI6UmVnaW9uX05hbWU+CiAgICAgICAgICAgICAgICAgIDx4aHI6UG9zdGFsX0NvZGU+NjA2MTE8L3hocjpQb3N0YWxfQ29kZT4KICAgICAgICAgICAgICAgICAgPHhocjpGb3JtYXR0ZWRfQWRkcmVzcz40NDAgTm9ydGggV2FiYXNoIEF2ZW51ZSwgQXB0IDI3MDEsIENoaWNhZ28sIElMIDYwNjExLCBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2E8L3hocjpGb3JtYXR0ZWRfQWRkcmVzcz4KICAgICAgICAgICAgICAgICAgPHhocjpJc19CdXNpbmVzc19TaXRlX0RlZmF1bHQ+ZmFsc2U8L3hocjpJc19CdXNpbmVzc19TaXRlX0RlZmF1bHQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6VXNhZ2UgeGhyOlB1YmxpYz0iZmFsc2UiPgogICAgICAgICAgICAgICAgICAgIDx4aHI6VHlwZV9JbmZvIHhocjpQcmltYXJ5PSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YTFiMmMzZDRlNWY2YTdiOGM5ZDBlMWYyYTNiNGM1ZDY8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iVXNhZ2VfVHlwZV9Db2RlIj5IT01FPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3hocjpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3hocjpUeXBlX0luZm8+CiAgICAgICAgICAgICAgICAgIDwveGhyOlVzYWdlPgogICAgICAgICAgICAgICAgPC94aHI6QWRkcmVzcz4KICAgICAgICAgICAgICA8L3hocjpDb250YWN0X0RhdGE+CgogICAgICAgICAgICAgIDx4aHI6QmlvZ3JhcGhpY2FsX0RhdGE+CiAgICAgICAgICAgICAgICA8eGhyOkRhdGVfb2ZfQmlydGg+MTk4NS0xMi0wOTwveGhyOkRhdGVfb2ZfQmlydGg+CiAgICAgICAgICAgICAgICA8eGhyOkdlbmRlcl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+MGExYjJjM2Q0ZTVmNmE3YjhjOWQwZTFmMmEzYjRjNWQ8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR2VuZGVyX0NvZGUiPk1hbGU8L3hocjpJRD4KICAgICAgICAgICAgICAgIDwveGhyOkdlbmRlcl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICA8eGhyOkNvdW50cnlfb2ZfQmlydGhfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmRkNDRlZTU1ZmY2NjAwNzc4ODk5MDAxMTIyMzM0NGJiPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IklTT18zMTY2X0FscGhhMiI+Q048L3hocjpJRD4KICAgICAgICAgICAgICAgIDwveGhyOkNvdW50cnlfb2ZfQmlydGhfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgPHhocjpNYXJpdGFsX1N0YXR1c19SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGI1YzZkN2U4Zjk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iTWFyaXRhbF9TdGF0dXNfQ29kZSI+TWFycmllZDwveGhyOklEPgogICAgICAgICAgICAgICAgPC94aHI6TWFyaXRhbF9TdGF0dXNfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgPHhocjpNYXJpdGFsX1N0YXR1c19EYXRlPjIwMTUtMDUtMjA8L3hocjpNYXJpdGFsX1N0YXR1c19EYXRlPgogICAgICAgICAgICAgIDwveGhyOkJpb2dyYXBoaWNhbF9EYXRhPgoKICAgICAgICAgICAgICA8eGhyOklkZW50aWZpY2F0aW9uX0RhdGE+CiAgICAgICAgICAgICAgICA8eGhyOk5hdGlvbmFsX0lEPgogICAgICAgICAgICAgICAgICA8eGhyOk5hdGlvbmFsX0lEX0RldGFpbD4KICAgICAgICAgICAgICAgICAgICA8eGhyOlZhbHVlPioqKi0qKi0zNDU2PC94aHI6VmFsdWU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRF9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZThmOWEwYjFjMmQzZTRmNWE2YjdjOGQ5ZTBmMWEyYjM8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9Ik5hdGlvbmFsX0lEX1R5cGUiPlVTQS1TU048L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpJRF9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5iYzMzYWEzMTUyZWM0MmQ0OTk1ZjQ3OTFhMTA2ZWQwOTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iSVNPXzMxNjZfQWxwaGEyIj5VUzwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDwveGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8L3hocjpOYXRpb25hbF9JRF9EZXRhaWw+CiAgICAgICAgICAgICAgICA8L3hocjpOYXRpb25hbF9JRD4KICAgICAgICAgICAgICA8L3hocjpJZGVudGlmaWNhdGlvbl9EYXRhPgoKICAgICAgICAgICAgPC94aHI6UGVyc29uYWxfRGF0YT4KCiAgICAgICAgICAgIDx4aHI6RW1wbG95bWVudF9EYXRhPgogICAgICAgICAgICAgIDx4aHI6Sm9iX0RhdGE+CiAgICAgICAgICAgICAgICA8eGhyOlBvc2l0aW9uPgogICAgICAgICAgICAgICAgICA8eGhyOlBvc2l0aW9uX0lEPlBPUy0wMDY3NDQ8L3hocjpQb3NpdGlvbl9JRD4KICAgICAgICAgICAgICAgICAgPHhocjpQb3NpdGlvbl9UaXRsZT5NYXJrZXRpbmcgTWFuYWdlcjwveGhyOlBvc2l0aW9uX1RpdGxlPgogICAgICAgICAgICAgICAgICA8eGhyOkJ1c2luZXNzX1RpdGxlPlNlbmlvciBNYXJrZXRpbmcgTWFuYWdlcjwveGhyOkJ1c2luZXNzX1RpdGxlPgogICAgICAgICAgICAgICAgICA8eGhyOlN0YXJ0X0RhdGU+MjAyMy0wMy0wMTwveGhyOlN0YXJ0X0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6RW5kX0RhdGU+MjAyNi0wMS0xNTwveGhyOkVuZF9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOkRlZmF1bHRfV2Vla2x5X0hvdXJzPjQwPC94aHI6RGVmYXVsdF9XZWVrbHlfSG91cnM+CiAgICAgICAgICAgICAgICAgIDx4aHI6U2NoZWR1bGVkX1dlZWtseV9Ib3Vycz40MDwveGhyOlNjaGVkdWxlZF9XZWVrbHlfSG91cnM+CiAgICAgICAgICAgICAgICAgIDx4aHI6RlRFX1BlcmNlbnRhZ2U+MTAwPC94aHI6RlRFX1BlcmNlbnRhZ2U+CgogICAgICAgICAgICAgICAgICA8eGhyOlBvc2l0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmNjZDhlOWYwYTFiMmMzZDRlNWY2YTdiOGM5ZDBlMWYyPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iUG9zaXRpb25fSUQiPlBPUy0wMDY3NDQ8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6UG9zaXRpb25fUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPHhocjpFbXBsb3llZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmQ0ZTVmNmE3YjhjOWQwZTFmMmEzYjRjNWQ2ZTdmOGE5PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iRW1wbG95ZWVfVHlwZV9Db2RlIj5SZWd1bGFyPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDwveGhyOkVtcGxveWVlX1R5cGVfUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPHhocjpKb2JfUHJvZmlsZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkpvYl9Qcm9maWxlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YWExMWJiMjJjYzMzZGQ0NGVlNTVmZjY2MDA3Nzg4OTk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkpvYl9Qcm9maWxlX0NvZGUiPkpQLU1LVC1NR1I8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpKb2JfUHJvZmlsZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpKb2JfUHJvZmlsZV9OYW1lPk1hcmtldGluZyBNYW5hZ2VyPC94aHI6Sm9iX1Byb2ZpbGVfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOk1hbmFnZW1lbnRfTGV2ZWxfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj42YzdkOGU5ZjBhMWIyYzNkNGU1ZjZhN2I4YzlkMGUxZjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iTWFuYWdlbWVudF9MZXZlbF9Db2RlIj5NYW5hZ2VyPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6TWFuYWdlbWVudF9MZXZlbF9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpKb2JfQ2F0ZWdvcnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5iYjIyY2MzM2RkNDRlZTU1ZmY2NjAwNzc4ODk5MDAxMTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iSm9iX0NhdGVnb3J5X0NvZGUiPk1hcmtldGluZzwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDwveGhyOkpvYl9DYXRlZ29yeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpKb2JfRmFtaWx5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+Y2MzM2RkNDRlZTU1ZmY2NjAwNzc4ODk5MDAxMTIyMzM8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkpvYl9GYW1pbHlfQ29kZSI+SkYtTWFya2V0aW5nPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6Sm9iX0ZhbWlseV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDwveGhyOkpvYl9Qcm9maWxlPgoKICAgICAgICAgICAgICAgICAgPHhocjpXb3JrX0xvY2F0aW9uPgogICAgICAgICAgICAgICAgICAgIDx4aHI6TG9jYXRpb25fTmFtZT5DaGljYWdvIE9mZmljZTwveGhyOkxvY2F0aW9uX05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpMb2NhdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmRkNDRlZTU1ZmY2NjAwNzc4ODk5MDAxMTIyMzM0NGFhPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJMb2NhdGlvbl9Db2RlIj5MT0MtQ0hJLTAxPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6TG9jYXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6TG9jYXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjZmN2E4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJMb2NhdGlvbl9UeXBlX0NvZGUiPk9mZmljZTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDwveGhyOkxvY2F0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6QWRkcmVzcz4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IklTT18zMTY2X0FscGhhMiI+VVM8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpMaW5lIHhocjpUeXBlPSJMSU5FXzEiPjIzMyBTb3V0aCBXYWNrZXIgRHJpdmU8L3hocjpMaW5lPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpMaW5lIHhocjpUeXBlPSJMSU5FXzIiPlN1aXRlIDQ4MDA8L3hocjpMaW5lPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpDaXR5PkNoaWNhZ288L3hocjpDaXR5PgogICAgICAgICAgICAgICAgICAgICAgPHhocjpSZWdpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJSZWdpb25fQ29kZSI+VVNBLUlMPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3hocjpSZWdpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpSZWdpb25fTmFtZT5JbGxpbm9pczwveGhyOlJlZ2lvbl9OYW1lPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpQb3N0YWxfQ29kZT42MDYwNjwveGhyOlBvc3RhbF9Db2RlPgogICAgICAgICAgICAgICAgICAgIDwveGhyOkFkZHJlc3M+CiAgICAgICAgICAgICAgICAgIDwveGhyOldvcmtfTG9jYXRpb24+CgogICAgICAgICAgICAgICAgICA8eGhyOlBheV9SYXRlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+N2E4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQ8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJQYXlfUmF0ZV9UeXBlX0NvZGUiPlNhbGFyeTwveGhyOklEPgogICAgICAgICAgICAgICAgICA8L3hocjpQYXlfUmF0ZV9UeXBlX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICAgIDx4aHI6VGltZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjhiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iVGltZV9UeXBlX0NvZGUiPkZ1bGxfVGltZTwveGhyOklEPgogICAgICAgICAgICAgICAgICA8L3hocjpUaW1lX1R5cGVfUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPHhocjpTdXBlcnZpc29yeV9PcmdfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZWU1NWZmNjYwMDc3ODg5OTAwMTEyMjMzNDQ1NTY2YmI8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJPcmdfQ29kZSI+TUtULUJSQU5ELTAwMTwveGhyOklEPgogICAgICAgICAgICAgICAgICA8L3hocjpTdXBlcnZpc29yeV9PcmdfUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb25fQXNzaWdubWVudHM+CiAgICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb24+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOk9yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZmY2NjAwNzc4ODk5MDAxMTIyMzM0NDU1NjY3Nzg4OTk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iT3JnX0NvZGUiPkNDLTUyMDA8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iQ29zdF9DZW50ZXJfQ29kZSI+Q0MtNTIwMDwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPC94aHI6T3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uX05hbWU+TWFya2V0aW5nIC0gQnJhbmQ8L3hocjpPcmdhbml6YXRpb25fTmFtZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjFlMmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlNGY1YTZiPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9Ik9yZ19UeXBlX0NvZGUiPkNvc3RfQ2VudGVyPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3hocjpPcmdhbml6YXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6T3JnYW5pemF0aW9uPgogICAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTRmNWE2YjdjPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9Ik9yZ19Db2RlIj5DT01QLUdEPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkNvbXBhbnlfQ29kZSI+Q09NUC1HRDwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPC94aHI6T3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uX05hbWU+R2xvYmFsIER5bmFtaWNzIEluYy48L3hocjpPcmdhbml6YXRpb25fTmFtZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhNmI3YzhkPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9Ik9yZ19UeXBlX0NvZGUiPkNvbXBhbnk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOk9yZ2FuaXphdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3hocjpPcmdhbml6YXRpb24+CiAgICAgICAgICAgICAgICAgIDwveGhyOk9yZ2FuaXphdGlvbl9Bc3NpZ25tZW50cz4KCiAgICAgICAgICAgICAgICA8L3hocjpQb3NpdGlvbj4KCiAgICAgICAgICAgICAgICA8eGhyOk1hbmFnZXJfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjExMjIzMzQ0NTU2Njc3ODg5OTAwMTFhYWJiY2NkZGVlPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkVtcGxveWVlX051bWJlciI+RU1QLTE3NjAwMjwveGhyOklEPgogICAgICAgICAgICAgICAgPC94aHI6TWFuYWdlcl9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgPHhocjpFbXBsb3ltZW50X1N0YXR1cz4KICAgICAgICAgICAgICAgICAgPHhocjpJc19BY3RpdmU+ZmFsc2U8L3hocjpJc19BY3RpdmU+CiAgICAgICAgICAgICAgICAgIDx4aHI6QWN0aXZlX1N0YXR1c19EYXRlPjIwMjEtMDktMTU8L3hocjpBY3RpdmVfU3RhdHVzX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6SGlyZV9EYXRlPjIwMjEtMDktMTU8L3hocjpIaXJlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6T3JpZ2luYWxfSGlyZV9EYXRlPjIwMjEtMDktMTU8L3hocjpPcmlnaW5hbF9IaXJlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6RW5kX0VtcGxveW1lbnRfRGF0ZT4yMDI2LTAxLTE1PC94aHI6RW5kX0VtcGxveW1lbnRfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHhocjpDb250aW51b3VzX1NlcnZpY2VfRGF0ZT4yMDIxLTA5LTE1PC94aHI6Q29udGludW91c19TZXJ2aWNlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6Rmlyc3RfRGF5X29mX1dvcms+MjAyMS0wOS0xNTwveGhyOkZpcnN0X0RheV9vZl9Xb3JrPgogICAgICAgICAgICAgICAgICA8eGhyOlNlbmlvcml0eV9EYXRlPjIwMjEtMDktMTU8L3hocjpTZW5pb3JpdHlfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHhocjpCZW5lZml0c19TZXJ2aWNlX0RhdGU+MjAyMS0wOS0xNTwveGhyOkJlbmVmaXRzX1NlcnZpY2VfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHhocjpDb21wYW55X1NlcnZpY2VfRGF0ZT4yMDIxLTA5LTE1PC94aHI6Q29tcGFueV9TZXJ2aWNlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6SXNfUmV0aXJlZD5mYWxzZTwveGhyOklzX1JldGlyZWQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6SXNfVGVybWluYXRlZD50cnVlPC94aHI6SXNfVGVybWluYXRlZD4KICAgICAgICAgICAgICAgICAgPHhocjpUZXJtaW5hdGlvbl9EYXRlPjIwMjYtMDEtMTU8L3hocjpUZXJtaW5hdGlvbl9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOlBheV9UaHJvdWdoX0RhdGU+MjAyNi0wMS0zMTwveGhyOlBheV9UaHJvdWdoX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6VGVybWluYXRpb25fQ2F0ZWdvcnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YWFiYjExMjJjY2RkMzM0NGVlZmY1NTY2YWFiYjc3ODg8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJUZXJtaW5hdGlvbl9DYXRlZ29yeV9Db2RlIj5Wb2x1bnRhcnk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6VGVybWluYXRpb25fQ2F0ZWdvcnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8eGhyOlByaW1hcnlfVGVybWluYXRpb25fUmVhc29uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmNjZGQzMzQ0ZWVmZjU1NjZhYWJiNzc4ODk5MDAxMTIyPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iVGVybWluYXRpb25fUmVhc29uX0NvZGUiPlJlc2lnbmF0aW9uX05ld19PcHBvcnR1bml0eTwveGhyOklEPgogICAgICAgICAgICAgICAgICA8L3hocjpQcmltYXJ5X1Rlcm1pbmF0aW9uX1JlYXNvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx4aHI6SXNfUmVoaXJlPmZhbHNlPC94aHI6SXNfUmVoaXJlPgogICAgICAgICAgICAgICAgICA8eGhyOkRheXNfVW5lbXBsb3llZD4wPC94aHI6RGF5c19VbmVtcGxveWVkPgogICAgICAgICAgICAgICAgICA8eGhyOk5vdF9SZXR1cm5pbmc+dHJ1ZTwveGhyOk5vdF9SZXR1cm5pbmc+CiAgICAgICAgICAgICAgICAgIDx4aHI6UmVzaWduYXRpb25fRGF0ZT4yMDI1LTEyLTE1PC94aHI6UmVzaWduYXRpb25fRGF0ZT4KICAgICAgICAgICAgICAgICAgPHhocjpMYXN0X0RheV9vZl9Xb3JrPjIwMjYtMDEtMTQ8L3hocjpMYXN0X0RheV9vZl9Xb3JrPgogICAgICAgICAgICAgICAgICA8eGhyOkVsaWdpYmxlX2Zvcl9SZWhpcmVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZWVmZjU1NjZhYWJiNzc4ODk5MDAxMTIyY2NkZDMzNDQ8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJSZWhpcmVfRWxpZ2liaWxpdHlfQ29kZSI+WWVzPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDwveGhyOkVsaWdpYmxlX2Zvcl9SZWhpcmVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgPC94aHI6RW1wbG95bWVudF9TdGF0dXM+CgogICAgICAgICAgICAgIDwveGhyOkpvYl9EYXRhPgogICAgICAgICAgICA8L3hocjpFbXBsb3ltZW50X0RhdGE+CgogICAgICAgICAgPC94aHI6RW1wbG95ZWVfRGF0YT4KICAgICAgICA8L3hocjpFbXBsb3llZT4KCiAgICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgPCEtLSBFTVBMT1lFRSAzIOKAlCBBY3RpdmUsIE9uIExlYXZlIChQYXJlbnRhbCkgICAgICAgICAgICAgICAgICAgICAtLT4KICAgICAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgICAgICA8eGhyOkVtcGxveWVlPgogICAgICAgICAgPHhocjpFbXBsb3llZV9SZWZlcmVuY2U+CiAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZjdlNmQ1YzRiM2EyOTE4MDcwNjA1MDQwMzAyMDEwZmY8L3hocjpJRD4KICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iRW1wbG95ZWVfTnVtYmVyIj5FTVAtMjExMzA1PC94aHI6SUQ+CiAgICAgICAgICA8L3hocjpFbXBsb3llZV9SZWZlcmVuY2U+CgogICAgICAgICAgPHhocjpFbXBsb3llZV9EYXRhPgogICAgICAgICAgICA8eGhyOkVtcGxveWVlX051bWJlcj5FTVAtMjExMzA1PC94aHI6RW1wbG95ZWVfTnVtYmVyPgogICAgICAgICAgICA8eGhyOkxvZ2luX0lEPnNqb2hhbnNzb248L3hocjpMb2dpbl9JRD4KCiAgICAgICAgICAgIDx4aHI6UGVyc29uYWxfRGF0YT4KICAgICAgICAgICAgICA8eGhyOk5hbWVfRGF0YT4KICAgICAgICAgICAgICAgIDx4aHI6TGVnYWxfTmFtZT4KICAgICAgICAgICAgICAgICAgPHhocjpOYW1lX0RldGFpbD4KICAgICAgICAgICAgICAgICAgICA8eGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5lZTQ0ZmY1NTAwNjY3Nzg4OTkxMTIyMzM0NDU1YWFiYjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iSVNPXzMxNjZfQWxwaGEyIj5TRTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iSVNPXzMxNjZfQWxwaGEzIj5TV0U8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkZpcnN0X05hbWU+U29maWE8L3hocjpGaXJzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6TWlkZGxlX05hbWU+TGlubsOpYTwveGhyOk1pZGRsZV9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6TGFzdF9OYW1lPkpvaGFuc3NvbjwveGhyOkxhc3RfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkRpc3BsYXlfTmFtZT5Tb2ZpYSBMaW5uw6lhIEpvaGFuc3NvbjwveGhyOkRpc3BsYXlfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOlNvcnRfTmFtZT5Kb2hhbnNzb24sIFNvZmlhIExpbm7DqWE8L3hocjpTb3J0X05hbWU+CiAgICAgICAgICAgICAgICAgIDwveGhyOk5hbWVfRGV0YWlsPgogICAgICAgICAgICAgICAgPC94aHI6TGVnYWxfTmFtZT4KICAgICAgICAgICAgICAgIDx4aHI6UHJlZmVycmVkX05hbWU+CiAgICAgICAgICAgICAgICAgIDx4aHI6TmFtZV9EZXRhaWw+CiAgICAgICAgICAgICAgICAgICAgPHhocjpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YmMzM2FhMzE1MmVjNDJkNDk5NWY0NzkxYTEwNmVkMDk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IklTT18zMTY2X0FscGhhMiI+VVM8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkZpcnN0X05hbWU+U29maWE8L3hocjpGaXJzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6TGFzdF9OYW1lPkpvaGFuc3NvbjwveGhyOkxhc3RfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkRpc3BsYXlfTmFtZT5Tb2ZpYSBKb2hhbnNzb248L3hocjpEaXNwbGF5X05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpTb3J0X05hbWU+Sm9oYW5zc29uLCBTb2ZpYTwveGhyOlNvcnRfTmFtZT4KICAgICAgICAgICAgICAgICAgPC94aHI6TmFtZV9EZXRhaWw+CiAgICAgICAgICAgICAgICA8L3hocjpQcmVmZXJyZWRfTmFtZT4KICAgICAgICAgICAgICA8L3hocjpOYW1lX0RhdGE+CgogICAgICAgICAgICAgIDx4aHI6Q29udGFjdF9EYXRhPgogICAgICAgICAgICAgICAgPHhocjpFbWFpbD4KICAgICAgICAgICAgICAgICAgPHhocjpFbWFpbF9BZGRyZXNzPnNvZmlhLmpvaGFuc3NvbkBnbG9iYWxkeW5hbWljcy5jb208L3hocjpFbWFpbF9BZGRyZXNzPgogICAgICAgICAgICAgICAgICA8eGhyOlVzYWdlIHhocjpQdWJsaWM9InRydWUiPgogICAgICAgICAgICAgICAgICAgIDx4aHI6VHlwZV9JbmZvIHhocjpQcmltYXJ5PSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZDBlMWYyYTNiNGM1ZDZlN2Y4YTliMGMxZDJlM2Y0YTU8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iVXNhZ2VfVHlwZV9Db2RlIj5XT1JLPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3hocjpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3hocjpUeXBlX0luZm8+CiAgICAgICAgICAgICAgICAgIDwveGhyOlVzYWdlPgogICAgICAgICAgICAgICAgPC94aHI6RW1haWw+CgogICAgICAgICAgICAgICAgPHhocjpFbWFpbD4KICAgICAgICAgICAgICAgICAgPHhocjpFbWFpbF9BZGRyZXNzPnNvZmlhLmpvaGFuc3NvbkBwcm90b24ubWU8L3hocjpFbWFpbF9BZGRyZXNzPgogICAgICAgICAgICAgICAgICA8eGhyOlVzYWdlIHhocjpQdWJsaWM9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICA8eGhyOlR5cGVfSW5mbyB4aHI6UHJpbWFyeT0iZmFsc2UiPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5hMWIyYzNkNGU1ZjZhN2I4YzlkMGUxZjJhM2I0YzVkNjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJVc2FnZV9UeXBlX0NvZGUiPkhPTUU8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwveGhyOlR5cGVfSW5mbz4KICAgICAgICAgICAgICAgICAgPC94aHI6VXNhZ2U+CiAgICAgICAgICAgICAgICA8L3hocjpFbWFpbD4KCiAgICAgICAgICAgICAgICA8eGhyOlBob25lPgogICAgICAgICAgICAgICAgICA8eGhyOkNvdW50cnlfQ29kZT4xPC94aHI6Q291bnRyeV9Db2RlPgogICAgICAgICAgICAgICAgICA8eGhyOkFyZWFfQ29kZT4yMDY8L3hocjpBcmVhX0NvZGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6TnVtYmVyPjU1NS0wODM0PC94aHI6TnVtYmVyPgogICAgICAgICAgICAgICAgICA8eGhyOkRldmljZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmY1YTZiN2M4ZDllMGYxYTJiM2M0ZDVlNmY3YThiOWMwPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iRGV2aWNlX1R5cGVfQ29kZSI+TW9iaWxlPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDwveGhyOkRldmljZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHhocjpVc2FnZSB4aHI6UHVibGljPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgICAgPHhocjpUeXBlX0luZm8geGhyOlByaW1hcnk9InRydWUiPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5hMWIyYzNkNGU1ZjZhN2I4YzlkMGUxZjJhM2I0YzVkNjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJVc2FnZV9UeXBlX0NvZGUiPkhPTUU8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwveGhyOlR5cGVfSW5mbz4KICAgICAgICAgICAgICAgICAgPC94aHI6VXNhZ2U+CiAgICAgICAgICAgICAgICAgIDx4aHI6Rm9ybWF0dGVkX051bWJlcj4rMSAoMjA2KSA1NTUtMDgzNDwveGhyOkZvcm1hdHRlZF9OdW1iZXI+CiAgICAgICAgICAgICAgICA8L3hocjpQaG9uZT4KCiAgICAgICAgICAgICAgICA8eGhyOkFkZHJlc3M+CiAgICAgICAgICAgICAgICAgIDx4aHI6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5iYzMzYWEzMTUyZWM0MmQ0OTk1ZjQ3OTFhMTA2ZWQwOTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IklTT18zMTY2X0FscGhhMiI+VVM8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx4aHI6TGFzdF9Nb2RpZmllZD4yMDI1LTA2LTAxVDExOjAwOjAwLjAwMC0wODowMDwveGhyOkxhc3RfTW9kaWZpZWQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6TGluZSB4aHI6VHlwZT0iTElORV8xIj4zMDE0IE5FIDU1dGggU3RyZWV0PC94aHI6TGluZT4KICAgICAgICAgICAgICAgICAgPHhocjpDaXR5PlNlYXR0bGU8L3hocjpDaXR5PgogICAgICAgICAgICAgICAgICA8eGhyOlJlZ2lvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5kMWUyZjNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhNjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IlJlZ2lvbl9Db2RlIj5VU0EtV0E8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6UmVnaW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHhocjpSZWdpb25fTmFtZT5XYXNoaW5ndG9uPC94aHI6UmVnaW9uX05hbWU+CiAgICAgICAgICAgICAgICAgIDx4aHI6UG9zdGFsX0NvZGU+OTgxMDU8L3hocjpQb3N0YWxfQ29kZT4KICAgICAgICAgICAgICAgICAgPHhocjpGb3JtYXR0ZWRfQWRkcmVzcz4zMDE0IE5FIDU1dGggU3RyZWV0LCBTZWF0dGxlLCBXQSA5ODEwNSwgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhPC94aHI6Rm9ybWF0dGVkX0FkZHJlc3M+CiAgICAgICAgICAgICAgICAgIDx4aHI6SXNfQnVzaW5lc3NfU2l0ZV9EZWZhdWx0PmZhbHNlPC94aHI6SXNfQnVzaW5lc3NfU2l0ZV9EZWZhdWx0PgogICAgICAgICAgICAgICAgICA8eGhyOlVzYWdlIHhocjpQdWJsaWM9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICA8eGhyOlR5cGVfSW5mbyB4aHI6UHJpbWFyeT0idHJ1ZSI+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmExYjJjM2Q0ZTVmNmE3YjhjOWQwZTFmMmEzYjRjNWQ2PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IlVzYWdlX1R5cGVfQ29kZSI+SE9NRTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPC94aHI6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6VHlwZV9JbmZvPgogICAgICAgICAgICAgICAgICA8L3hocjpVc2FnZT4KICAgICAgICAgICAgICAgIDwveGhyOkFkZHJlc3M+CiAgICAgICAgICAgICAgPC94aHI6Q29udGFjdF9EYXRhPgoKICAgICAgICAgICAgICA8eGhyOkJpb2dyYXBoaWNhbF9EYXRhPgogICAgICAgICAgICAgICAgPHhocjpEYXRlX29mX0JpcnRoPjE5OTMtMDItMTQ8L3hocjpEYXRlX29mX0JpcnRoPgogICAgICAgICAgICAgICAgPHhocjpHZW5kZXJfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjlhMGIxYzJkM2U0ZjVhNmI3YzhkOWUwZjFhMmIzYzRkPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdlbmRlcl9Db2RlIj5GZW1hbGU8L3hocjpJRD4KICAgICAgICAgICAgICAgIDwveGhyOkdlbmRlcl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICA8eGhyOkNvdW50cnlfb2ZfQmlydGhfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmVlNDRmZjU1MDA2Njc3ODg5OTExMjIzMzQ0NTVhYWJiPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IklTT18zMTY2X0FscGhhMiI+U0U8L3hocjpJRD4KICAgICAgICAgICAgICAgIDwveGhyOkNvdW50cnlfb2ZfQmlydGhfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgPHhocjpNYXJpdGFsX1N0YXR1c19SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZTZmN2E4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjE8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iTWFyaXRhbF9TdGF0dXNfQ29kZSI+RG9tZXN0aWNfUGFydG5lcnNoaXA8L3hocjpJRD4KICAgICAgICAgICAgICAgIDwveGhyOk1hcml0YWxfU3RhdHVzX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgIDx4aHI6TWFyaXRhbF9TdGF0dXNfRGF0ZT4yMDIzLTAxLTEwPC94aHI6TWFyaXRhbF9TdGF0dXNfRGF0ZT4KICAgICAgICAgICAgICA8L3hocjpCaW9ncmFwaGljYWxfRGF0YT4KCiAgICAgICAgICAgICAgPHhocjpJZGVudGlmaWNhdGlvbl9EYXRhPgogICAgICAgICAgICAgICAgPHhocjpOYXRpb25hbF9JRD4KICAgICAgICAgICAgICAgICAgPHhocjpOYXRpb25hbF9JRF9EZXRhaWw+CiAgICAgICAgICAgICAgICAgICAgPHhocjpWYWx1ZT4qKiotKiotNTUxMjwveGhyOlZhbHVlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SURfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmU4ZjlhMGIxYzJkM2U0ZjVhNmI3YzhkOWUwZjFhMmIzPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJOYXRpb25hbF9JRF9UeXBlIj5VU0EtU1NOPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6SURfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YmMzM2FhMzE1MmVjNDJkNDk5NWY0NzkxYTEwNmVkMDk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IklTT18zMTY2X0FscGhhMiI+VVM8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPC94aHI6TmF0aW9uYWxfSURfRGV0YWlsPgogICAgICAgICAgICAgICAgPC94aHI6TmF0aW9uYWxfSUQ+CiAgICAgICAgICAgICAgICA8IS0tIE5vdGU6IGFsc28gaG9sZHMgYSBTd2VkaXNoIHBlcnNvbmFsIGlkZW50aXR5IG51bWJlciAtLT4KICAgICAgICAgICAgICAgIDx4aHI6TmF0aW9uYWxfSUQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6TmF0aW9uYWxfSURfRGV0YWlsPgogICAgICAgICAgICAgICAgICAgIDx4aHI6VmFsdWU+OTMwMjE0LVhYWFg8L3hocjpWYWx1ZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5hMGIxYzJkM2U0ZjVhNmI3YzhkOWUwZjFhMmIzYzRkNTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iTmF0aW9uYWxfSURfVHlwZSI+U1dFLVBJTjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDwveGhyOklEX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmVlNDRmZjU1MDA2Njc3ODg5OTExMjIzMzQ0NTVhYWJiPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJJU09fMzE2Nl9BbHBoYTIiPlNFPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJc3N1ZWRfRGF0ZT4xOTkzLTAyLTE0PC94aHI6SXNzdWVkX0RhdGU+CiAgICAgICAgICAgICAgICAgIDwveGhyOk5hdGlvbmFsX0lEX0RldGFpbD4KICAgICAgICAgICAgICAgIDwveGhyOk5hdGlvbmFsX0lEPgogICAgICAgICAgICAgIDwveGhyOklkZW50aWZpY2F0aW9uX0RhdGE+CgogICAgICAgICAgICA8L3hocjpQZXJzb25hbF9EYXRhPgoKICAgICAgICAgICAgPHhocjpFbXBsb3ltZW50X0RhdGE+CiAgICAgICAgICAgICAgPHhocjpKb2JfRGF0YT4KICAgICAgICAgICAgICAgIDx4aHI6UG9zaXRpb24+CiAgICAgICAgICAgICAgICAgIDx4aHI6UG9zaXRpb25fSUQ+UE9TLTAxMDg4MTwveGhyOlBvc2l0aW9uX0lEPgogICAgICAgICAgICAgICAgICA8eGhyOlBvc2l0aW9uX1RpdGxlPlVYIFJlc2VhcmNoIExlYWQ8L3hocjpQb3NpdGlvbl9UaXRsZT4KICAgICAgICAgICAgICAgICAgPHhocjpCdXNpbmVzc19UaXRsZT5VWCBSZXNlYXJjaCBMZWFkPC94aHI6QnVzaW5lc3NfVGl0bGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6U3RhcnRfRGF0ZT4yMDI0LTA2LTAxPC94aHI6U3RhcnRfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHhocjpEZWZhdWx0X1dlZWtseV9Ib3Vycz40MDwveGhyOkRlZmF1bHRfV2Vla2x5X0hvdXJzPgogICAgICAgICAgICAgICAgICA8eGhyOlNjaGVkdWxlZF9XZWVrbHlfSG91cnM+MDwveGhyOlNjaGVkdWxlZF9XZWVrbHlfSG91cnM+CiAgICAgICAgICAgICAgICAgIDx4aHI6RlRFX1BlcmNlbnRhZ2U+MTAwPC94aHI6RlRFX1BlcmNlbnRhZ2U+CgogICAgICAgICAgICAgICAgICA8eGhyOlBvc2l0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjExMjJhYWJiMzM0NGNjZGQ1NTY2ZWVmZjc3ODhhMWIyPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iUG9zaXRpb25fSUQiPlBPUy0wMTA4ODE8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6UG9zaXRpb25fUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPHhocjpFbXBsb3llZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmQ0ZTVmNmE3YjhjOWQwZTFmMmEzYjRjNWQ2ZTdmOGE5PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iRW1wbG95ZWVfVHlwZV9Db2RlIj5SZWd1bGFyPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDwveGhyOkVtcGxveWVlX1R5cGVfUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPHhocjpKb2JfUHJvZmlsZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkpvYl9Qcm9maWxlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YmIxMWNjMjJkZDMzZWU0NGZmNTUwMDY2Nzc4ODk5YWE8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkpvYl9Qcm9maWxlX0NvZGUiPkpQLVVYUi1MRUFEPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6Sm9iX1Byb2ZpbGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6Sm9iX1Byb2ZpbGVfTmFtZT5VWCBSZXNlYXJjaCBMZWFkPC94aHI6Sm9iX1Byb2ZpbGVfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOk1hbmFnZW1lbnRfTGV2ZWxfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj42YzdkOGU5ZjBhMWIyYzNkNGU1ZjZhN2I4YzlkMGUxZjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iTWFuYWdlbWVudF9MZXZlbF9Db2RlIj5NYW5hZ2VyPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6TWFuYWdlbWVudF9MZXZlbF9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpKb2JfQ2F0ZWdvcnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5jYzIyZGQzM2VlNDRmZjU1MDA2Njc3ODg5OTAwMTFiYjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iSm9iX0NhdGVnb3J5X0NvZGUiPkRlc2lnbjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDwveGhyOkpvYl9DYXRlZ29yeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpKb2JfRmFtaWx5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZGQzM2VlNDRmZjU1MDA2Njc3ODg5OTAwMTEyMmNjYmI8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkpvYl9GYW1pbHlfQ29kZSI+SkYtRGVzaWduLVJlc2VhcmNoPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6Sm9iX0ZhbWlseV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDwveGhyOkpvYl9Qcm9maWxlPgoKICAgICAgICAgICAgICAgICAgPHhocjpXb3JrX0xvY2F0aW9uPgogICAgICAgICAgICAgICAgICAgIDx4aHI6TG9jYXRpb25fTmFtZT5TZWF0dGxlIE9mZmljZTwveGhyOkxvY2F0aW9uX05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpMb2NhdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmVlNDRmZjU1MDA2Njc3ODg5OTExMjIzMzQ0NTU2Njc3PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJMb2NhdGlvbl9Db2RlIj5MT0MtU0VBLTAxPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6TG9jYXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6TG9jYXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjZmN2E4YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJMb2NhdGlvbl9UeXBlX0NvZGUiPk9mZmljZTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDwveGhyOkxvY2F0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6QWRkcmVzcz4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IklTT18zMTY2X0FscGhhMiI+VVM8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpMaW5lIHhocjpUeXBlPSJMSU5FXzEiPjcwMSBQaWtlIFN0cmVldDwveGhyOkxpbmU+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOkxpbmUgeGhyOlR5cGU9IkxJTkVfMiI+Rmxvb3IgODwveGhyOkxpbmU+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOkNpdHk+U2VhdHRsZTwveGhyOkNpdHk+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOlJlZ2lvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IlJlZ2lvbl9Db2RlIj5VU0EtV0E8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOlJlZ2lvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOlJlZ2lvbl9OYW1lPldhc2hpbmd0b248L3hocjpSZWdpb25fTmFtZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6UG9zdGFsX0NvZGU+OTgxMDE8L3hocjpQb3N0YWxfQ29kZT4KICAgICAgICAgICAgICAgICAgICA8L3hocjpBZGRyZXNzPgogICAgICAgICAgICAgICAgICA8L3hocjpXb3JrX0xvY2F0aW9uPgoKICAgICAgICAgICAgICAgICAgPHhocjpQYXlfUmF0ZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjdhOGI5YzBkMWUyZjNhNGI1YzZkN2U4ZjlhMGIxYzJkPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iUGF5X1JhdGVfVHlwZV9Db2RlIj5TYWxhcnk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6UGF5X1JhdGVfVHlwZV9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgICA8eGhyOlRpbWVfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj44YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IlRpbWVfVHlwZV9Db2RlIj5GdWxsX1RpbWU8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6VGltZV9UeXBlX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICAgIDx4aHI6U3VwZXJ2aXNvcnlfT3JnX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmZmNTUwMDY2Nzc4ODk5MDAxMTIyMzM0NDU1NjY3N2FhPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iT3JnX0NvZGUiPkRFUy1SRVNFQVJDSC0wMDE8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6U3VwZXJ2aXNvcnlfT3JnX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uX0Fzc2lnbm1lbnRzPgogICAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjAwNjY3Nzg4OTkwMDExMjIzMzQ0NTU2Njc3ODg5OTAwPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9Ik9yZ19Db2RlIj5DQy04MzAwPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkNvc3RfQ2VudGVyX0NvZGUiPkNDLTgzMDA8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOk9yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOk9yZ2FuaXphdGlvbl9OYW1lPkRlc2lnbiAtIFJlc2VhcmNoPC94aHI6T3JnYW5pemF0aW9uX05hbWU+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOk9yZ2FuaXphdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj4xZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTRmNWE2YjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJPcmdfVHlwZV9Db2RlIj5Db3N0X0NlbnRlcjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPC94aHI6T3JnYW5pemF0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwveGhyOk9yZ2FuaXphdGlvbj4KICAgICAgICAgICAgICAgICAgICA8eGhyOk9yZ2FuaXphdGlvbj4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj4yZjNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhNmI3YzwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJPcmdfQ29kZSI+Q09NUC1HRDwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJDb21wYW55X0NvZGUiPkNPTVAtR0Q8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOk9yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOk9yZ2FuaXphdGlvbl9OYW1lPkdsb2JhbCBEeW5hbWljcyBJbmMuPC94aHI6T3JnYW5pemF0aW9uX05hbWU+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOk9yZ2FuaXphdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj4zYTRiNWM2ZDdlOGY5YTBiMWMyZDNlNGY1YTZiN2M4ZDwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJPcmdfVHlwZV9Db2RlIj5Db21wYW55PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3hocjpPcmdhbml6YXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6T3JnYW5pemF0aW9uPgogICAgICAgICAgICAgICAgICA8L3hocjpPcmdhbml6YXRpb25fQXNzaWdubWVudHM+CgogICAgICAgICAgICAgICAgPC94aHI6UG9zaXRpb24+CgogICAgICAgICAgICAgICAgPHhocjpNYW5hZ2VyX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj4yMjMzNDQ1NTY2Nzc4ODk5YWFiYjAwMTFjY2RkZWVmZjwveGhyOklEPgogICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJFbXBsb3llZV9OdW1iZXIiPkVNUC0yMDE0NDA8L3hocjpJRD4KICAgICAgICAgICAgICAgIDwveGhyOk1hbmFnZXJfUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgIDx4aHI6RW1wbG95bWVudF9TdGF0dXM+CiAgICAgICAgICAgICAgICAgIDx4aHI6SXNfQWN0aXZlPnRydWU8L3hocjpJc19BY3RpdmU+CiAgICAgICAgICAgICAgICAgIDx4aHI6QWN0aXZlX1N0YXR1c19EYXRlPjIwMjMtMDQtMTA8L3hocjpBY3RpdmVfU3RhdHVzX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6SGlyZV9EYXRlPjIwMjMtMDQtMTA8L3hocjpIaXJlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6T3JpZ2luYWxfSGlyZV9EYXRlPjIwMjMtMDQtMTA8L3hocjpPcmlnaW5hbF9IaXJlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6RW5kX0VtcGxveW1lbnRfRGF0ZS8+CiAgICAgICAgICAgICAgICAgIDx4aHI6Q29udGludW91c19TZXJ2aWNlX0RhdGU+MjAyMy0wNC0xMDwveGhyOkNvbnRpbnVvdXNfU2VydmljZV9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOkZpcnN0X0RheV9vZl9Xb3JrPjIwMjMtMDQtMTA8L3hocjpGaXJzdF9EYXlfb2ZfV29yaz4KICAgICAgICAgICAgICAgICAgPHhocjpTZW5pb3JpdHlfRGF0ZT4yMDIzLTA0LTEwPC94aHI6U2VuaW9yaXR5X0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6QmVuZWZpdHNfU2VydmljZV9EYXRlPjIwMjMtMDQtMTA8L3hocjpCZW5lZml0c19TZXJ2aWNlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6Q29tcGFueV9TZXJ2aWNlX0RhdGU+MjAyMy0wNC0xMDwveGhyOkNvbXBhbnlfU2VydmljZV9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOklzX1JldGlyZWQ+ZmFsc2U8L3hocjpJc19SZXRpcmVkPgogICAgICAgICAgICAgICAgICA8eGhyOklzX1Rlcm1pbmF0ZWQ+ZmFsc2U8L3hocjpJc19UZXJtaW5hdGVkPgogICAgICAgICAgICAgICAgICA8eGhyOklzX1JlaGlyZT5mYWxzZTwveGhyOklzX1JlaGlyZT4KICAgICAgICAgICAgICAgICAgPHhocjpEYXlzX1VuZW1wbG95ZWQ+MDwveGhyOkRheXNfVW5lbXBsb3llZD4KICAgICAgICAgICAgICAgICAgPCEtLSBMZWF2ZSBvZiBBYnNlbmNlIGZpZWxkcyDigJQgb25seSBwcmVzZW50IHdoZW4gb24gbGVhdmUgLS0+CiAgICAgICAgICAgICAgICAgIDx4aHI6T25fTGVhdmU+dHJ1ZTwveGhyOk9uX0xlYXZlPgogICAgICAgICAgICAgICAgICA8eGhyOkxlYXZlX1N0YXJ0X0RhdGU+MjAyNi0wMi0wMzwveGhyOkxlYXZlX1N0YXJ0X0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6RXhwZWN0ZWRfUmV0dXJuX0RhdGU+MjAyNi0wOC0wMzwveGhyOkV4cGVjdGVkX1JldHVybl9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOkxlYXZlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+Nzc4ODk5MDAxMTIyMzM0NDU1NjY3N2FhYmJjY2RkMDA8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJMZWF2ZV9UeXBlX0NvZGUiPlBhcmVudGFsX0xlYXZlPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDwveGhyOkxlYXZlX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8eGhyOkxlYXZlX1JlcXVlc3RfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ODg5OTAwMTEyMjMzNDQ1NTY2Nzc4OGFhYmJjY2RkMTE8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJMZWF2ZV9SZXF1ZXN0X0lEIj5MUi0yMDI2LTAwMDQxMjwveGhyOklEPgogICAgICAgICAgICAgICAgICA8L3hocjpMZWF2ZV9SZXF1ZXN0X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgIDwveGhyOkVtcGxveW1lbnRfU3RhdHVzPgoKICAgICAgICAgICAgICA8L3hocjpKb2JfRGF0YT4KICAgICAgICAgICAgPC94aHI6RW1wbG95bWVudF9EYXRhPgoKICAgICAgICAgIDwveGhyOkVtcGxveWVlX0RhdGE+CiAgICAgICAgPC94aHI6RW1wbG95ZWU+CgogICAgICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgICAgIDwhLS0gRU1QTE9ZRUUgNCDigJQgQ29udGluZ2VudCBXb3JrZXIgKENvbnRyYWN0b3IpICAgICAgICAgICAgICAgICAgLS0+CiAgICAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICAgICAgPHhocjpFbXBsb3llZT4KICAgICAgICAgIDx4aHI6RW1wbG95ZWVfUmVmZXJlbmNlPgogICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZjEwPC94aHI6SUQ+CiAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkNvbnRpbmdlbnRfV29ya2VyX051bWJlciI+Q1ctNDAwMDkxPC94aHI6SUQ+CiAgICAgICAgICA8L3hocjpFbXBsb3llZV9SZWZlcmVuY2U+CgogICAgICAgICAgPHhocjpFbXBsb3llZV9EYXRhPgogICAgICAgICAgICA8eGhyOkVtcGxveWVlX051bWJlcj5DVy00MDAwOTE8L3hocjpFbXBsb3llZV9OdW1iZXI+CiAgICAgICAgICAgIDx4aHI6TG9naW5fSUQ+bW5ha2FtdXJhLmV4dDwveGhyOkxvZ2luX0lEPgoKICAgICAgICAgICAgPHhocjpQZXJzb25hbF9EYXRhPgogICAgICAgICAgICAgIDx4aHI6TmFtZV9EYXRhPgogICAgICAgICAgICAgICAgPHhocjpMZWdhbF9OYW1lPgogICAgICAgICAgICAgICAgICA8eGhyOk5hbWVfRGV0YWlsPgogICAgICAgICAgICAgICAgICAgIDx4aHI6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmZmMDAxMTIyMzM0NDU1NjY3Nzg4OTlhYWJiY2NkZGVlPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJJU09fMzE2Nl9BbHBoYTIiPkpQPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJJU09fMzE2Nl9BbHBoYTMiPkpQTjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDwveGhyOkNvdW50cnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6Rmlyc3RfTmFtZT5NYXNhdG88L3hocjpGaXJzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6TGFzdF9OYW1lPk5ha2FtdXJhPC94aHI6TGFzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6RGlzcGxheV9OYW1lPk1hc2F0byBOYWthbXVyYTwveGhyOkRpc3BsYXlfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOlNvcnRfTmFtZT5OYWthbXVyYSwgTWFzYXRvPC94aHI6U29ydF9OYW1lPgogICAgICAgICAgICAgICAgICA8L3hocjpOYW1lX0RldGFpbD4KICAgICAgICAgICAgICAgIDwveGhyOkxlZ2FsX05hbWU+CiAgICAgICAgICAgICAgICA8eGhyOlByZWZlcnJlZF9OYW1lPgogICAgICAgICAgICAgICAgICA8eGhyOk5hbWVfRGV0YWlsPgogICAgICAgICAgICAgICAgICAgIDx4aHI6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmJjMzNhYTMxNTJlYzQyZDQ5OTVmNDc5MWExMDZlZDA5PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJJU09fMzE2Nl9BbHBoYTIiPlVTPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpGaXJzdF9OYW1lPk1hc2E8L3hocjpGaXJzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6TGFzdF9OYW1lPk5ha2FtdXJhPC94aHI6TGFzdF9OYW1lPgogICAgICAgICAgICAgICAgICAgIDx4aHI6RGlzcGxheV9OYW1lPk1hc2EgTmFrYW11cmE8L3hocjpEaXNwbGF5X05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpTb3J0X05hbWU+TmFrYW11cmEsIE1hc2E8L3hocjpTb3J0X05hbWU+CiAgICAgICAgICAgICAgICAgIDwveGhyOk5hbWVfRGV0YWlsPgogICAgICAgICAgICAgICAgPC94aHI6UHJlZmVycmVkX05hbWU+CiAgICAgICAgICAgICAgPC94aHI6TmFtZV9EYXRhPgoKICAgICAgICAgICAgICA8eGhyOkNvbnRhY3RfRGF0YT4KICAgICAgICAgICAgICAgIDx4aHI6RW1haWw+CiAgICAgICAgICAgICAgICAgIDx4aHI6RW1haWxfQWRkcmVzcz5tYXNhdG8ubmFrYW11cmEuZXh0QGdsb2JhbGR5bmFtaWNzLmNvbTwveGhyOkVtYWlsX0FkZHJlc3M+CiAgICAgICAgICAgICAgICAgIDx4aHI6VXNhZ2UgeGhyOlB1YmxpYz0idHJ1ZSI+CiAgICAgICAgICAgICAgICAgICAgPHhocjpUeXBlX0luZm8geGhyOlByaW1hcnk9InRydWUiPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpUeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5kMGUxZjJhM2I0YzVkNmU3ZjhhOWIwYzFkMmUzZjRhNTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJVc2FnZV9UeXBlX0NvZGUiPldPUks8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwveGhyOlR5cGVfSW5mbz4KICAgICAgICAgICAgICAgICAgPC94aHI6VXNhZ2U+CiAgICAgICAgICAgICAgICA8L3hocjpFbWFpbD4KCiAgICAgICAgICAgICAgICA8eGhyOlBob25lPgogICAgICAgICAgICAgICAgICA8eGhyOkNvdW50cnlfQ29kZT4xPC94aHI6Q291bnRyeV9Db2RlPgogICAgICAgICAgICAgICAgICA8eGhyOkFyZWFfQ29kZT40MDg8L3hocjpBcmVhX0NvZGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6TnVtYmVyPjU1NS0wNjEyPC94aHI6TnVtYmVyPgogICAgICAgICAgICAgICAgICA8eGhyOkRldmljZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmY1YTZiN2M4ZDllMGYxYTJiM2M0ZDVlNmY3YThiOWMwPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iRGV2aWNlX1R5cGVfQ29kZSI+TW9iaWxlPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgIDwveGhyOkRldmljZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHhocjpVc2FnZSB4aHI6UHVibGljPSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICA8eGhyOlR5cGVfSW5mbyB4aHI6UHJpbWFyeT0idHJ1ZSI+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOlR5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmQwZTFmMmEzYjRjNWQ2ZTdmOGE5YjBjMWQyZTNmNGE1PC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IlVzYWdlX1R5cGVfQ29kZSI+V09SSzwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPC94aHI6VHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6VHlwZV9JbmZvPgogICAgICAgICAgICAgICAgICA8L3hocjpVc2FnZT4KICAgICAgICAgICAgICAgICAgPHhocjpGb3JtYXR0ZWRfTnVtYmVyPisxICg0MDgpIDU1NS0wNjEyPC94aHI6Rm9ybWF0dGVkX051bWJlcj4KICAgICAgICAgICAgICAgIDwveGhyOlBob25lPgoKICAgICAgICAgICAgICAgIDwhLS0gTm90ZTogTm8gaG9tZSBhZGRyZXNzIG9uIGZpbGUgZm9yIGNvbnRpbmdlbnQgd29ya2VycyDigJQgY29tbW9uIHBhdHRlcm4gLS0+CgogICAgICAgICAgICAgIDwveGhyOkNvbnRhY3RfRGF0YT4KCiAgICAgICAgICAgICAgPHhocjpCaW9ncmFwaGljYWxfRGF0YT4KICAgICAgICAgICAgICAgIDx4aHI6RGF0ZV9vZl9CaXJ0aD4xOTg3LTA5LTMwPC94aHI6RGF0ZV9vZl9CaXJ0aD4KICAgICAgICAgICAgICAgIDx4aHI6R2VuZGVyX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj4wYTFiMmMzZDRlNWY2YTdiOGM5ZDBlMWYyYTNiNGM1ZDwveGhyOklEPgogICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHZW5kZXJfQ29kZSI+TWFsZTwveGhyOklEPgogICAgICAgICAgICAgICAgPC94aHI6R2VuZGVyX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgIDx4aHI6Q291bnRyeV9vZl9CaXJ0aF9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+ZmYwMDExMjIzMzQ0NTU2Njc3ODg5OWFhYmJjY2RkZWU8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iSVNPXzMxNjZfQWxwaGEyIj5KUDwveGhyOklEPgogICAgICAgICAgICAgICAgPC94aHI6Q291bnRyeV9vZl9CaXJ0aF9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICA8IS0tIE5vIG1hcml0YWwgc3RhdHVzIOKAlCBub3QgY29sbGVjdGVkIGZvciBjb250aW5nZW50IHdvcmtlcnMgLS0+CiAgICAgICAgICAgICAgPC94aHI6QmlvZ3JhcGhpY2FsX0RhdGE+CgogICAgICAgICAgICAgIDx4aHI6SWRlbnRpZmljYXRpb25fRGF0YT4KICAgICAgICAgICAgICAgIDwhLS0gQ29udGluZ2VudCB3b3JrZXJzIG1heSBoYXZlIG5vIG5hdGlvbmFsIElEcyBvbiBmaWxlIC0tPgogICAgICAgICAgICAgICAgPHhocjpDdXN0b21fSUQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6Q3VzdG9tX0lEX0RldGFpbD4KICAgICAgICAgICAgICAgICAgICA8eGhyOlZhbHVlPlZFTkRPUi1URUNIU1RBUi0wMDkxPC94aHI6VmFsdWU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRF9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YjNjNGQ1ZTZmN2E4YjljMGQxZTJmM2E0YjVjNmQ3ZTg8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkN1c3RvbV9JRF9UeXBlIj5WZW5kb3JfV29ya2VyX0lEPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6SURfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDwveGhyOkN1c3RvbV9JRF9EZXRhaWw+CiAgICAgICAgICAgICAgICA8L3hocjpDdXN0b21fSUQ+CiAgICAgICAgICAgICAgICA8eGhyOkN1c3RvbV9JRD4KICAgICAgICAgICAgICAgICAgPHhocjpDdXN0b21fSURfRGV0YWlsPgogICAgICAgICAgICAgICAgICAgIDx4aHI6VmFsdWU+QkFER0UtRVhULTc3MjE8L3hocjpWYWx1ZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5mMWEyYjNjNGQ1ZTZmN2E4YjljMGQxZTJmM2E0YjVjNjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iQ3VzdG9tX0lEX1R5cGUiPkJhZGdlX0lEPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6SURfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDwveGhyOkN1c3RvbV9JRF9EZXRhaWw+CiAgICAgICAgICAgICAgICA8L3hocjpDdXN0b21fSUQ+CiAgICAgICAgICAgICAgPC94aHI6SWRlbnRpZmljYXRpb25fRGF0YT4KCiAgICAgICAgICAgIDwveGhyOlBlcnNvbmFsX0RhdGE+CgogICAgICAgICAgICA8eGhyOkVtcGxveW1lbnRfRGF0YT4KICAgICAgICAgICAgICA8eGhyOkpvYl9EYXRhPgogICAgICAgICAgICAgICAgPHhocjpQb3NpdGlvbj4KICAgICAgICAgICAgICAgICAgPHhocjpQb3NpdGlvbl9JRD5QT1MtQ1ctMDQxMjwveGhyOlBvc2l0aW9uX0lEPgogICAgICAgICAgICAgICAgICA8eGhyOlBvc2l0aW9uX1RpdGxlPlN0YWZmIEF1Z21lbnRhdGlvbiAtIERldk9wczwveGhyOlBvc2l0aW9uX1RpdGxlPgogICAgICAgICAgICAgICAgICA8eGhyOkJ1c2luZXNzX1RpdGxlPkRldk9wcyBFbmdpbmVlciAoQ29udHJhY3QpPC94aHI6QnVzaW5lc3NfVGl0bGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6U3RhcnRfRGF0ZT4yMDI1LTEwLTAxPC94aHI6U3RhcnRfRGF0ZT4KICAgICAgICAgICAgICAgICAgPHhocjpFbmRfRGF0ZT4yMDI2LTA5LTMwPC94aHI6RW5kX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6RGVmYXVsdF9XZWVrbHlfSG91cnM+NDA8L3hocjpEZWZhdWx0X1dlZWtseV9Ib3Vycz4KICAgICAgICAgICAgICAgICAgPHhocjpTY2hlZHVsZWRfV2Vla2x5X0hvdXJzPjQwPC94aHI6U2NoZWR1bGVkX1dlZWtseV9Ib3Vycz4KICAgICAgICAgICAgICAgICAgPHhocjpGVEVfUGVyY2VudGFnZT4xMDA8L3hocjpGVEVfUGVyY2VudGFnZT4KCiAgICAgICAgICAgICAgICAgIDx4aHI6UG9zaXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YWFiYjAwMTFjY2RkMjIzM2VlZmY0NDU1NjY3Nzg4Y2M8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJQb3NpdGlvbl9JRCI+UE9TLUNXLTA0MTI8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6UG9zaXRpb25fUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPHhocjpFbXBsb3llZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmU1ZjZhN2I4YzlkMGUxZjJhM2I0YzVkNmU3ZjhhOWIwPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iRW1wbG95ZWVfVHlwZV9Db2RlIj5Db250aW5nZW50X1dvcmtlcjwveGhyOklEPgogICAgICAgICAgICAgICAgICA8L3hocjpFbXBsb3llZV9UeXBlX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICAgIDx4aHI6Sm9iX1Byb2ZpbGU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpKb2JfUHJvZmlsZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPmNjMTFkZDIyZWUzM2ZmNDQwMDU1NjY3Nzg4OTkwMDExPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJKb2JfUHJvZmlsZV9Db2RlIj5KUC1ERVZPUFMtQ1c8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpKb2JfUHJvZmlsZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpKb2JfUHJvZmlsZV9OYW1lPkRldk9wcyBFbmdpbmVlciAoQ29udHJhY3QpPC94aHI6Sm9iX1Byb2ZpbGVfTmFtZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOk1hbmFnZW1lbnRfTGV2ZWxfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj4yYjNjNGQ1ZTZmN2E4YjljMGQxZTJmM2E0YjVjNmQ3ZTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iTWFuYWdlbWVudF9MZXZlbF9Db2RlIj5JbmRpdmlkdWFsX0NvbnRyaWJ1dG9yPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6TWFuYWdlbWVudF9MZXZlbF9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpKb2JfQ2F0ZWdvcnlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj4zYzRkNWU2ZjdhOGI5YzBkMWUyZjNhNGI1YzZkN2U4ZjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iSm9iX0NhdGVnb3J5X0NvZGUiPkVuZ2luZWVyaW5nPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6Sm9iX0NhdGVnb3J5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOkpvYl9GYW1pbHlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj5lZTQ0ZmY1NTAwNjY3Nzg4OTkwMDExMjIzMzQ0YWFiYjwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iSm9iX0ZhbWlseV9Db2RlIj5KRi1JbmZyYXN0cnVjdHVyZTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDwveGhyOkpvYl9GYW1pbHlfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICA8L3hocjpKb2JfUHJvZmlsZT4KCiAgICAgICAgICAgICAgICAgIDx4aHI6V29ya19Mb2NhdGlvbj4KICAgICAgICAgICAgICAgICAgICA8eGhyOkxvY2F0aW9uX05hbWU+U2FuIEZyYW5jaXNjbyBIUTwveGhyOkxvY2F0aW9uX05hbWU+CiAgICAgICAgICAgICAgICAgICAgPHhocjpMb2NhdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjVlNmY3YThiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTBiPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJMb2NhdGlvbl9Db2RlIj5MT0MtU0YtSFE8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICA8L3hocjpMb2NhdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpMb2NhdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+NmY3YThiOWMwZDFlMmYzYTRiNWM2ZDdlOGY5YTBiMWM8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkxvY2F0aW9uX1R5cGVfQ29kZSI+T2ZmaWNlPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPC94aHI6TG9jYXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpBZGRyZXNzPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpDb3VudHJ5X1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iSVNPXzMxNjZfQWxwaGEyIj5VUzwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPC94aHI6Q291bnRyeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOkxpbmUgeGhyOlR5cGU9IkxJTkVfMSI+MzUwIE1pc3Npb24gU3RyZWV0PC94aHI6TGluZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6TGluZSB4aHI6VHlwZT0iTElORV8yIj5GbG9vciAyMjwveGhyOkxpbmU+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOkNpdHk+U2FuIEZyYW5jaXNjbzwveGhyOkNpdHk+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOlJlZ2lvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IlJlZ2lvbl9Db2RlIj5VU0EtQ0E8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOlJlZ2lvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOlJlZ2lvbl9OYW1lPkNhbGlmb3JuaWE8L3hocjpSZWdpb25fTmFtZT4KICAgICAgICAgICAgICAgICAgICAgIDx4aHI6UG9zdGFsX0NvZGU+OTQxMDU8L3hocjpQb3N0YWxfQ29kZT4KICAgICAgICAgICAgICAgICAgICA8L3hocjpBZGRyZXNzPgogICAgICAgICAgICAgICAgICA8L3hocjpXb3JrX0xvY2F0aW9uPgoKICAgICAgICAgICAgICAgICAgPHhocjpQYXlfUmF0ZV9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTRmPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iUGF5X1JhdGVfVHlwZV9Db2RlIj5Ib3VybHk8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6UGF5X1JhdGVfVHlwZV9SZWZlcmVuY2U+CgogICAgICAgICAgICAgICAgICA8eGhyOlRpbWVfVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj44YjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IlRpbWVfVHlwZV9Db2RlIj5GdWxsX1RpbWU8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6VGltZV9UeXBlX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICAgIDx4aHI6U3VwZXJ2aXNvcnlfT3JnX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjljMGQxZTJmM2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTRmPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iT3JnX0NvZGUiPkVORy1EQVRBLTAwMTwveGhyOklEPgogICAgICAgICAgICAgICAgICA8L3hocjpTdXBlcnZpc29yeV9PcmdfUmVmZXJlbmNlPgoKICAgICAgICAgICAgICAgICAgPCEtLSBWZW5kb3IgLyBTdGFmZmluZyBBZ2VuY3kgcmVmZXJlbmNlIOKAlCB1bmlxdWUgdG8gY29udGluZ2VudCB3b3JrZXJzIC0tPgogICAgICAgICAgICAgICAgICA8eGhyOlN0YWZmaW5nX0FnZW5jeV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iR0lEIj4xMTAwYWFiYjIyMzNjY2RkNDQ1NWVlZmY2Njc3ODgwMDwveGhyOklEPgogICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IlZlbmRvcl9Db2RlIj5WRU5ET1ItVEVDSFNUQVI8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPC94aHI6U3RhZmZpbmdfQWdlbmN5X1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uX0Fzc2lnbm1lbnRzPgogICAgICAgICAgICAgICAgICAgIDx4aHI6T3JnYW5pemF0aW9uPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8eGhyOklEIHhocjp0eXBlPSJHSUQiPjBkMWUyZjNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9Ik9yZ19Db2RlIj5DQy03MTAwPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkNvc3RfQ2VudGVyX0NvZGUiPkNDLTcxMDA8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOk9yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOk9yZ2FuaXphdGlvbl9OYW1lPkVuZ2luZWVyaW5nIC0gRGF0YSBQbGF0Zm9ybTwveGhyOk9yZ2FuaXphdGlvbl9OYW1lPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+MWUyZjNhNGI1YzZkN2U4ZjlhMGIxYzJkM2U0ZjVhNmI8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iT3JnX1R5cGVfQ29kZSI+Q29zdF9DZW50ZXI8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgIDwveGhyOk9yZ2FuaXphdGlvbl9UeXBlX1JlZmVyZW5jZT4KICAgICAgICAgICAgICAgICAgICA8L3hocjpPcmdhbml6YXRpb24+CiAgICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb24+CiAgICAgICAgICAgICAgICAgICAgICA8eGhyOk9yZ2FuaXphdGlvbl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+MmYzYTRiNWM2ZDdlOGY5YTBiMWMyZDNlNGY1YTZiN2M8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iT3JnX0NvZGUiPkNPTVAtR0Q8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iQ29tcGFueV9Db2RlIj5DT01QLUdEPC94aHI6SUQ+CiAgICAgICAgICAgICAgICAgICAgICA8L3hocjpPcmdhbml6YXRpb25fUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb25fTmFtZT5HbG9iYWwgRHluYW1pY3MgSW5jLjwveGhyOk9yZ2FuaXphdGlvbl9OYW1lPgogICAgICAgICAgICAgICAgICAgICAgPHhocjpPcmdhbml6YXRpb25fVHlwZV9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+M2E0YjVjNmQ3ZThmOWEwYjFjMmQzZTRmNWE2YjdjOGQ8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iT3JnX1R5cGVfQ29kZSI+Q29tcGFueTwveGhyOklEPgogICAgICAgICAgICAgICAgICAgICAgPC94aHI6T3JnYW5pemF0aW9uX1R5cGVfUmVmZXJlbmNlPgogICAgICAgICAgICAgICAgICAgIDwveGhyOk9yZ2FuaXphdGlvbj4KICAgICAgICAgICAgICAgICAgPC94aHI6T3JnYW5pemF0aW9uX0Fzc2lnbm1lbnRzPgoKICAgICAgICAgICAgICAgIDwveGhyOlBvc2l0aW9uPgoKICAgICAgICAgICAgICAgIDx4aHI6TWFuYWdlcl9SZWZlcmVuY2U+CiAgICAgICAgICAgICAgICAgIDx4aHI6SUQgeGhyOnR5cGU9IkdJRCI+YWFiYmNjZGQxMTIyMzM0NDU1NjY3Nzg4OTkwMGFhYmI8L3hocjpJRD4KICAgICAgICAgICAgICAgICAgPHhocjpJRCB4aHI6dHlwZT0iRW1wbG95ZWVfTnVtYmVyIj5FTVAtMTk4MDQ0PC94aHI6SUQ+CiAgICAgICAgICAgICAgICA8L3hocjpNYW5hZ2VyX1JlZmVyZW5jZT4KCiAgICAgICAgICAgICAgICA8eGhyOkVtcGxveW1lbnRfU3RhdHVzPgogICAgICAgICAgICAgICAgICA8eGhyOklzX0FjdGl2ZT50cnVlPC94aHI6SXNfQWN0aXZlPgogICAgICAgICAgICAgICAgICA8eGhyOkFjdGl2ZV9TdGF0dXNfRGF0ZT4yMDI1LTEwLTAxPC94aHI6QWN0aXZlX1N0YXR1c19EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOkhpcmVfRGF0ZT4yMDI1LTEwLTAxPC94aHI6SGlyZV9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOk9yaWdpbmFsX0hpcmVfRGF0ZT4yMDI1LTEwLTAxPC94aHI6T3JpZ2luYWxfSGlyZV9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOkVuZF9FbXBsb3ltZW50X0RhdGU+MjAyNi0wOS0zMDwveGhyOkVuZF9FbXBsb3ltZW50X0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6Q29udGludW91c19TZXJ2aWNlX0RhdGU+MjAyNS0xMC0wMTwveGhyOkNvbnRpbnVvdXNfU2VydmljZV9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOkZpcnN0X0RheV9vZl9Xb3JrPjIwMjUtMTAtMDE8L3hocjpGaXJzdF9EYXlfb2ZfV29yaz4KICAgICAgICAgICAgICAgICAgPHhocjpTZW5pb3JpdHlfRGF0ZT4yMDI1LTEwLTAxPC94aHI6U2VuaW9yaXR5X0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6QmVuZWZpdHNfU2VydmljZV9EYXRlLz4KICAgICAgICAgICAgICAgICAgPHhocjpDb21wYW55X1NlcnZpY2VfRGF0ZT4yMDI1LTEwLTAxPC94aHI6Q29tcGFueV9TZXJ2aWNlX0RhdGU+CiAgICAgICAgICAgICAgICAgIDx4aHI6SXNfUmV0aXJlZD5mYWxzZTwveGhyOklzX1JldGlyZWQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6SXNfVGVybWluYXRlZD5mYWxzZTwveGhyOklzX1Rlcm1pbmF0ZWQ+CiAgICAgICAgICAgICAgICAgIDx4aHI6SXNfUmVoaXJlPmZhbHNlPC94aHI6SXNfUmVoaXJlPgogICAgICAgICAgICAgICAgICA8eGhyOkRheXNfVW5lbXBsb3llZD4wPC94aHI6RGF5c19VbmVtcGxveWVkPgogICAgICAgICAgICAgICAgICA8IS0tIENvbnRyYWN0IEVuZCDigJQgb25seSBwcmVzZW50IGZvciBjb250aW5nZW50IHdvcmtlcnMgLS0+CiAgICAgICAgICAgICAgICAgIDx4aHI6Q29udHJhY3RfRW5kX0RhdGU+MjAyNi0wOS0zMDwveGhyOkNvbnRyYWN0X0VuZF9EYXRlPgogICAgICAgICAgICAgICAgICA8eGhyOkNvbnRyYWN0X1JlbmV3YWJsZT50cnVlPC94aHI6Q29udHJhY3RfUmVuZXdhYmxlPgogICAgICAgICAgICAgICAgPC94aHI6RW1wbG95bWVudF9TdGF0dXM+CgogICAgICAgICAgICAgIDwveGhyOkpvYl9EYXRhPgogICAgICAgICAgICA8L3hocjpFbXBsb3ltZW50X0RhdGE+CgogICAgICAgICAgPC94aHI6RW1wbG95ZWVfRGF0YT4KICAgICAgICA8L3hocjpFbXBsb3llZT4KCiAgICAgIDwveGhyOlJlc3BvbnNlX0RhdGE+CiAgICA8L3hocjpHZXRFbXBsb3llZXNfUmVzcG9uc2U+CiAgPC9zb2FwOkJvZHk+Cjwvc29hcDpFbnZlbG9wZT4="} \ No newline at end of file diff --git a/src/pages/tools/xpath-evaluator.tsx b/src/pages/tools/xpath-evaluator.tsx index 9a6e09698b7ce..59ff9ecb0dcb2 100644 --- a/src/pages/tools/xpath-evaluator.tsx +++ b/src/pages/tools/xpath-evaluator.tsx @@ -35,8 +35,8 @@ const documentationLinks: Record< const XPathEvaluator: React.FC = () => { const [result, setResult] = useState(JSON.stringify([], null, 4)); - const [query, setQuery] = useState('wd:Worker_Data/wd:Personal_Data/wd:Name_Data/wd:Legal_Name_Data/wd:Name_Detail_Data/wd:Last_Name | wd:Applicant_Data/wd:Personal_Data/wd:Name_Data/wd:Legal_Name_Data/wd:Name_Detail_Data/wd:Last_Name'); - const [root, setRoot] = useState('//wd:Response_Data/wd:Worker'); + const [query, setQuery] = useState('xhr:Employee_Data/xhr:Personal_Data/xhr:Name_Data/xhr:Legal_Name/xhr:Name_Detail/xhr:Last_Name'); + const [root, setRoot] = useState('//xhr:Response_Data/xhr:Employee'); const [queryParseError, setQueryParseError] = useState(''); const [fontSize, setFontSize] = useState('16'); const [inputXml, setInputXml] = useState(sampleXml);