<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>117829</bug_id>
          
          <creation_ts>2013-06-20 05:41:53 -0700</creation_ts>
          <short_desc>Cleanup usage of CSSPropertyID and CSSValueID inside WebKit.</short_desc>
          <delta_ts>2013-06-24 07:14:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>117936</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexis Menard (darktears)">menard</reporter>
          <assigned_to name="Alexis Menard (darktears)">menard</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>902100</commentid>
    <comment_count>0</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-06-20 05:41:53 -0700</bug_when>
    <thetext>Cleanup usage of CSSPropertyID and CSSValueID inside WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902102</commentid>
    <comment_count>1</comment_count>
      <attachid>205077</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-06-20 05:46:31 -0700</bug_when>
    <thetext>Created attachment 205077
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902105</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-20 05:49:13 -0700</bug_when>
    <thetext>Attachment 205077 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/CSSComputedStyleDeclaration.cpp&apos;, u&apos;Source/WebCore/css/CSSFontSelector.cpp&apos;, u&apos;Source/WebCore/css/CSSGradientValue.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.h&apos;, u&apos;Source/WebCore/css/CSSParserValues.cpp&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValue.cpp&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValue.h&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValueMappings.h&apos;, u&apos;Source/WebCore/css/CSSToStyleMap.cpp&apos;, u&apos;Source/WebCore/css/Counter.h&apos;, u&apos;Source/WebCore/css/DeprecatedStyleBuilder.cpp&apos;, u&apos;Source/WebCore/css/MediaQueryEvaluator.cpp&apos;, u&apos;Source/WebCore/css/SVGCSSParser.cpp&apos;, u&apos;Source/WebCore/css/SVGCSSStyleSelector.cpp&apos;, u&apos;Source/WebCore/css/StylePropertySet.cpp&apos;, u&apos;Source/WebCore/css/StyleResolver.cpp&apos;, u&apos;Source/WebCore/css/ViewportStyleResolver.cpp&apos;, u&apos;Source/WebCore/css/WebKitCSSMatrix.cpp&apos;, u&apos;Source/WebCore/editing/ApplyStyleCommand.cpp&apos;, u&apos;Source/WebCore/editing/EditingStyle.cpp&apos;, u&apos;Source/WebCore/editing/EditingStyle.h&apos;, u&apos;Source/WebCore/editing/markup.cpp&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk.cpp&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk.h&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk2.cpp&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk3.cpp&apos;, u&apos;Source/WebCore/platform/qt/RenderThemeQt.cpp&apos;, u&apos;Source/WebCore/platform/qt/RenderThemeQt.h&apos;, u&apos;Source/WebCore/rendering/RenderTheme.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTheme.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeMac.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeMac.mm&apos;, u&apos;Source/WebCore/rendering/RenderThemeWin.cpp&apos;, u&apos;Source/WebCore/rendering/RenderThemeWin.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeWinCE.cpp&apos;, u&apos;Source/WebCore/rendering/RenderThemeWinCE.h&apos;]&quot; exit_code: 1
Source/WebCore/css/CSSPrimitiveValue.h:139:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/css/CSSPrimitiveValue.h:140:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902106</commentid>
    <comment_count>3</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-06-20 05:51:33 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 205077 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/CSSComputedStyleDeclaration.cpp&apos;, u&apos;Source/WebCore/css/CSSFontSelector.cpp&apos;, u&apos;Source/WebCore/css/CSSGradientValue.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.h&apos;, u&apos;Source/WebCore/css/CSSParserValues.cpp&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValue.cpp&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValue.h&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValueMappings.h&apos;, u&apos;Source/WebCore/css/CSSToStyleMap.cpp&apos;, u&apos;Source/WebCore/css/Counter.h&apos;, u&apos;Source/WebCore/css/DeprecatedStyleBuilder.cpp&apos;, u&apos;Source/WebCore/css/MediaQueryEvaluator.cpp&apos;, u&apos;Source/WebCore/css/SVGCSSParser.cpp&apos;, u&apos;Source/WebCore/css/SVGCSSStyleSelector.cpp&apos;, u&apos;Source/WebCore/css/StylePropertySet.cpp&apos;, u&apos;Source/WebCore/css/StyleResolver.cpp&apos;, u&apos;Source/WebCore/css/ViewportStyleResolver.cpp&apos;, u&apos;Source/WebCore/css/WebKitCSSMatrix.cpp&apos;, u&apos;Source/WebCore/editing/ApplyStyleCommand.cpp&apos;, u&apos;Source/WebCore/editing/EditingStyle.cpp&apos;, u&apos;Source/WebCore/editing/EditingStyle.h&apos;, u&apos;Source/WebCore/editing/markup.cpp&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk.cpp&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk.h&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk2.cpp&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk3.cpp&apos;, u&apos;Source/WebCore/platform/qt/RenderThemeQt.cpp&apos;, u&apos;Source/WebCore/platform/qt/RenderThemeQt.h&apos;, u&apos;Source/WebCore/rendering/RenderTheme.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTheme.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeMac.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeMac.mm&apos;, u&apos;Source/WebCore/rendering/RenderThemeWin.cpp&apos;, u&apos;Source/WebCore/rendering/RenderThemeWin.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeWinCE.cpp&apos;, u&apos;Source/WebCore/rendering/RenderThemeWinCE.h&apos;]&quot; exit_code: 1
&gt; Source/WebCore/css/CSSPrimitiveValue.h:139:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
&gt; Source/WebCore/css/CSSPrimitiveValue.h:140:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
&gt; Total errors found: 2 in 38 files
&gt; 
&gt;

Please ignore, I&apos;m following the current style. In the future we should change them but some of the values are exposed in JS.
 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902114</commentid>
    <comment_count>4</comment_count>
      <attachid>205077</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-06-20 06:13:14 -0700</bug_when>
    <thetext>Comment on attachment 205077
Patch

Attachment 205077 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/923822</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902117</commentid>
    <comment_count>5</comment_count>
      <attachid>205077</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-06-20 06:21:37 -0700</bug_when>
    <thetext>Comment on attachment 205077
Patch

Attachment 205077 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/895884</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902142</commentid>
    <comment_count>6</comment_count>
      <attachid>205088</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-06-20 07:02:02 -0700</bug_when>
    <thetext>Created attachment 205088
fix build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902144</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-20 07:03:45 -0700</bug_when>
    <thetext>Attachment 205088 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/CSSComputedStyleDeclaration.cpp&apos;, u&apos;Source/WebCore/css/CSSFontSelector.cpp&apos;, u&apos;Source/WebCore/css/CSSGradientValue.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.h&apos;, u&apos;Source/WebCore/css/CSSParserValues.cpp&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValue.cpp&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValue.h&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValueMappings.h&apos;, u&apos;Source/WebCore/css/CSSToStyleMap.cpp&apos;, u&apos;Source/WebCore/css/Counter.h&apos;, u&apos;Source/WebCore/css/DeprecatedStyleBuilder.cpp&apos;, u&apos;Source/WebCore/css/MediaQueryEvaluator.cpp&apos;, u&apos;Source/WebCore/css/SVGCSSParser.cpp&apos;, u&apos;Source/WebCore/css/SVGCSSStyleSelector.cpp&apos;, u&apos;Source/WebCore/css/StylePropertySet.cpp&apos;, u&apos;Source/WebCore/css/StyleResolver.cpp&apos;, u&apos;Source/WebCore/css/ViewportStyleResolver.cpp&apos;, u&apos;Source/WebCore/css/WebKitCSSMatrix.cpp&apos;, u&apos;Source/WebCore/editing/ApplyStyleCommand.cpp&apos;, u&apos;Source/WebCore/editing/EditingStyle.cpp&apos;, u&apos;Source/WebCore/editing/EditingStyle.h&apos;, u&apos;Source/WebCore/editing/markup.cpp&apos;, u&apos;Source/WebCore/platform/blackberry/RenderThemeBlackBerry.cpp&apos;, u&apos;Source/WebCore/platform/blackberry/RenderThemeBlackBerry.h&apos;, u&apos;Source/WebCore/platform/efl/RenderThemeEfl.cpp&apos;, u&apos;Source/WebCore/platform/efl/RenderThemeEfl.h&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk.cpp&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk.h&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk2.cpp&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk3.cpp&apos;, u&apos;Source/WebCore/platform/qt/RenderThemeQt.cpp&apos;, u&apos;Source/WebCore/platform/qt/RenderThemeQt.h&apos;, u&apos;Source/WebCore/rendering/RenderTheme.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTheme.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeMac.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeMac.mm&apos;, u&apos;Source/WebCore/rendering/RenderThemeSafari.cpp&apos;, u&apos;Source/WebCore/rendering/RenderThemeSafari.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeWin.cpp&apos;, u&apos;Source/WebCore/rendering/RenderThemeWin.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeWinCE.cpp&apos;, u&apos;Source/WebCore/rendering/RenderThemeWinCE.h&apos;]&quot; exit_code: 1
Source/WebCore/css/CSSPrimitiveValue.h:139:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/css/CSSPrimitiveValue.h:140:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 44 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902185</commentid>
    <comment_count>8</comment_count>
      <attachid>205099</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-06-20 09:35:10 -0700</bug_when>
    <thetext>Created attachment 205099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902186</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-20 09:38:29 -0700</bug_when>
    <thetext>Attachment 205099 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/CSSComputedStyleDeclaration.cpp&apos;, u&apos;Source/WebCore/css/CSSFontSelector.cpp&apos;, u&apos;Source/WebCore/css/CSSGradientValue.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.h&apos;, u&apos;Source/WebCore/css/CSSParserValues.cpp&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValue.cpp&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValue.h&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValueMappings.h&apos;, u&apos;Source/WebCore/css/CSSToStyleMap.cpp&apos;, u&apos;Source/WebCore/css/Counter.h&apos;, u&apos;Source/WebCore/css/DeprecatedStyleBuilder.cpp&apos;, u&apos;Source/WebCore/css/MediaQueryEvaluator.cpp&apos;, u&apos;Source/WebCore/css/SVGCSSParser.cpp&apos;, u&apos;Source/WebCore/css/SVGCSSStyleSelector.cpp&apos;, u&apos;Source/WebCore/css/StylePropertySet.cpp&apos;, u&apos;Source/WebCore/css/StyleResolver.cpp&apos;, u&apos;Source/WebCore/css/ViewportStyleResolver.cpp&apos;, u&apos;Source/WebCore/css/WebKitCSSMatrix.cpp&apos;, u&apos;Source/WebCore/editing/ApplyStyleCommand.cpp&apos;, u&apos;Source/WebCore/editing/EditingStyle.cpp&apos;, u&apos;Source/WebCore/editing/EditingStyle.h&apos;, u&apos;Source/WebCore/editing/markup.cpp&apos;, u&apos;Source/WebCore/platform/blackberry/RenderThemeBlackBerry.cpp&apos;, u&apos;Source/WebCore/platform/blackberry/RenderThemeBlackBerry.h&apos;, u&apos;Source/WebCore/platform/efl/RenderThemeEfl.cpp&apos;, u&apos;Source/WebCore/platform/efl/RenderThemeEfl.h&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk.cpp&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk.h&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk2.cpp&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk3.cpp&apos;, u&apos;Source/WebCore/platform/qt/RenderThemeQt.cpp&apos;, u&apos;Source/WebCore/platform/qt/RenderThemeQt.h&apos;, u&apos;Source/WebCore/rendering/RenderTheme.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTheme.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeMac.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeMac.mm&apos;, u&apos;Source/WebCore/rendering/RenderThemeSafari.cpp&apos;, u&apos;Source/WebCore/rendering/RenderThemeSafari.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeWin.cpp&apos;, u&apos;Source/WebCore/rendering/RenderThemeWin.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeWinCE.cpp&apos;, u&apos;Source/WebCore/rendering/RenderThemeWinCE.h&apos;]&quot; exit_code: 1
Source/WebCore/css/CSSPrimitiveValue.h:139:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/css/CSSPrimitiveValue.h:140:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 44 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902196</commentid>
    <comment_count>10</comment_count>
      <attachid>205099</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-06-20 10:11:46 -0700</bug_when>
    <thetext>Comment on attachment 205099
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=205099&amp;action=review

This is a great change! r=me, assuming EWS flips green.

&gt; Source/WebCore/ChangeLog:9
&gt; +        not incorrect per say, it&apos;s not ideal for various reason such as type

per say =&gt; per se

&gt; Source/WebCore/css/CSSParserValues.cpp:75
&gt;          return primitiveValue;

Unrelated: Missing .release() here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902199</commentid>
    <comment_count>11</comment_count>
      <attachid>205102</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-06-20 10:15:04 -0700</bug_when>
    <thetext>Created attachment 205102
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902200</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-20 10:16:52 -0700</bug_when>
    <thetext>Attachment 205102 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/CSSComputedStyleDeclaration.cpp&apos;, u&apos;Source/WebCore/css/CSSFontSelector.cpp&apos;, u&apos;Source/WebCore/css/CSSGradientValue.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.h&apos;, u&apos;Source/WebCore/css/CSSParserValues.cpp&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValue.cpp&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValue.h&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValueMappings.h&apos;, u&apos;Source/WebCore/css/CSSToStyleMap.cpp&apos;, u&apos;Source/WebCore/css/Counter.h&apos;, u&apos;Source/WebCore/css/DeprecatedStyleBuilder.cpp&apos;, u&apos;Source/WebCore/css/MediaQueryEvaluator.cpp&apos;, u&apos;Source/WebCore/css/SVGCSSParser.cpp&apos;, u&apos;Source/WebCore/css/SVGCSSStyleSelector.cpp&apos;, u&apos;Source/WebCore/css/StylePropertySet.cpp&apos;, u&apos;Source/WebCore/css/StyleResolver.cpp&apos;, u&apos;Source/WebCore/css/ViewportStyleResolver.cpp&apos;, u&apos;Source/WebCore/css/WebKitCSSMatrix.cpp&apos;, u&apos;Source/WebCore/editing/ApplyStyleCommand.cpp&apos;, u&apos;Source/WebCore/editing/EditingStyle.cpp&apos;, u&apos;Source/WebCore/editing/EditingStyle.h&apos;, u&apos;Source/WebCore/editing/markup.cpp&apos;, u&apos;Source/WebCore/platform/blackberry/RenderThemeBlackBerry.cpp&apos;, u&apos;Source/WebCore/platform/blackberry/RenderThemeBlackBerry.h&apos;, u&apos;Source/WebCore/platform/efl/RenderThemeEfl.cpp&apos;, u&apos;Source/WebCore/platform/efl/RenderThemeEfl.h&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk.cpp&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk.h&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk2.cpp&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk3.cpp&apos;, u&apos;Source/WebCore/platform/qt/RenderThemeQt.cpp&apos;, u&apos;Source/WebCore/platform/qt/RenderThemeQt.h&apos;, u&apos;Source/WebCore/rendering/RenderTheme.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTheme.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeMac.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeMac.mm&apos;, u&apos;Source/WebCore/rendering/RenderThemeSafari.cpp&apos;, u&apos;Source/WebCore/rendering/RenderThemeSafari.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeWin.cpp&apos;, u&apos;Source/WebCore/rendering/RenderThemeWin.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeWinCE.cpp&apos;, u&apos;Source/WebCore/rendering/RenderThemeWinCE.h&apos;]&quot; exit_code: 1
Source/WebCore/css/CSSPrimitiveValue.h:139:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/css/CSSPrimitiveValue.h:140:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 44 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902217</commentid>
    <comment_count>13</comment_count>
      <attachid>205102</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-20 11:05:18 -0700</bug_when>
    <thetext>Comment on attachment 205102
Patch for landing

Clearing flags on attachment: 205102

Committed r151783: &lt;http://trac.webkit.org/changeset/151783&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902218</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-20 11:05:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205077</attachid>
            <date>2013-06-20 05:46:31 -0700</date>
            <delta_ts>2013-06-20 07:01:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117829-20130620094437.patch</filename>
            <type>text/plain</type>
            <size>319925</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxNzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFkMmRlYjA4ZDFkMDIz
MGYyNWVjZGZkZDA4NTg5N2QyYTU1NzAwNy4uMmY2ZTBmZGZkMWMxMzI2NmRhOTNkNjFiNGNjN2E1
YWNkZDMyNjgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5MiBAQAorMjAxMy0wNi0yMCAgQWxl
eGlzIE1lbmFyZCAgPGFsZXhpc0B3ZWJraXQub3JnPgorCisgICAgICAgIENsZWFudXAgdXNhZ2Ug
b2YgQ1NTUHJvcGVydHlJRCBhbmQgQ1NTVmFsdWVJRCBpbnNpZGUgV2ViS2l0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3ODI5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBsb3Qgb2YgY2FsbCBzaXRl
cyB3ZXJlIHVzaW5nIGludGVnZXJzIHRvIHJlcHJlc2VudCB0aGVtLiBXaGlsZSBpdCdzCisgICAg
ICAgIG5vdCBpbmNvcnJlY3QgcGVyIHNheSwgaXQncyBub3QgaWRlYWwgZm9yIHZhcmlvdXMgcmVh
c29uIHN1Y2ggYXMgdHlwZQorICAgICAgICBzYWZldHkgb3IgdG8gcmVtb3ZlIGFtYmlndWl0eS4K
KworICAgICAgICBUaGlzIHBhdGNoIGVyYWRpY2F0ZSB0aGUgd3JvbmcgdXNhZ2UgYnkgbm90IGxl
dHRpbmcgYW55IGludGVnZXIgYmFzZWQKKyAgICAgICAgQVBJIGZvciBnZXR0aW5nIENTU1ZhbHVl
SURzIG9yIENTU1Byb3BlcnR5SURzIGZyb20gQ1NTUHJpbWl0aXZlVmFsdWVzLgorCisgICAgICAg
IEluc3RlYWQgd2UgdXNlIG5ldyBidXQgdHlwZWQgZnVuY3Rpb25zIHRvIGNvbnN0cnVjdCB0aGUg
dmFsdWVzIGFzIHdlbGwKKyAgICAgICAgYXMgZ2V0dGluZyB0aGVtLiBUd28gY3VzdG9tcyBhbmQg
aW50ZXJuYWwgdHlwZXMgd2VyZSBhZGRlZCB0byBDU1NQcmltaXRpdmVWYWx1ZQorICAgICAgICB0
byBoYW5kbGUgY29ycmVjdGx5IHRoZSBuZXcgQVBJcy4KKworICAgICAgICBJdCdzIGdvb2QgdG8g
bm90ZSB0aGF0IGluIG9yZGVyIHRvIHByZXNlcnZlIGNvbXBhdGliaWxpdHkgb24gdGhlCisgICAg
ICAgIENTU1ByaW1pdGl2ZVZhbHVlIHR5cGUgd2hlbmV2ZXIgQ1NTUHJpbWl0aXZlVmFsdWUgaGFu
ZGxlcyBhIENTU1ZhbHVlSUQKKyAgICAgICAgb3IgYSBDU1NQcm9wZXJ0eUlEIHRoZSByZXR1cm4g
dHlwZSBmb3IgdGhlIHB1YmxpYyBBUEkgd2lsbCBiZSBDU1NfSURFTlQKKyAgICAgICAgZGVzcGl0
ZSBpdCBpcyBhIHNlcGFyYXRlIGludGVybmFsIHR5cGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
OiByZWZhY3RvciwgZXhpc3RpbmcgdGVzdHMgc2hvdWxkIGNvdmVyLgorCisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21w
dXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eU1hdGNoZXMpOgorICAgICAgICAqIGNzcy9DU1NG
b250U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjphZGRG
b250RmFjZVJ1bGUpOgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnBvc2l0aW9uRnJvbVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xp
bmVhckdyYWRpZW50VmFsdWU6OmN1c3RvbUNzc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TGluZWFyR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjcmVhdGVHcmFkaWVudCk6CisgICAgICAgICogY3Nz
L0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU3lzdGVt
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6aXNGaWxsUG9zaXRpb25LZXl3b3JkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2U0VmFsdWVzRmlsbFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2UzVmFsdWVzRmlsbFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZpbGxSZXBlYXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZVJhZGlhbEdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6aXNCbGVuZE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjppc0NvbXBvc2l0
ZU9wZXJhdG9yKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NT
U1BhcnNlclZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJWYWx1ZTo6Y3Jl
YXRlQ1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjppc1ZhbGlkQ1NTVW5pdFR5cGVGb3JEb3VibGVDb252ZXJzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpwcmltaXRpdmVUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnByb3BlcnR5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjbGVhbnVwKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpnZXRTdHJpbmdWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y2xvbmVGb3JDU1NPTSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6ZXF1YWxzKToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppc0ZvbnRS
ZWxhdGl2ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNW
YWx1ZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVQYXJz
ZXJPcGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0UHJv
cGVydHlJRCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0VmFsdWVJ
RCk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ1NTUmVmbGVjdGlvbkRpcmVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29s
dW1uU3Bhbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
UHJpbnRDb2xvckFkanVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRUJvcmRlclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBPdXRsaW5lSXNBdXRvKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBDb21wb3NpdGVPcGVyYXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29udHJvbFBhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCYWNrZmFjZVZpc2liaWxpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGaWxsQXR0YWNo
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZp
bGxCb3gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVG
aWxsUmVwZWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFQm94UGFjayk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRUJveEFsaWdubWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRUJveERlY29yYXRpb25CcmVhayk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgQmFja2dyb3VuZEVkZ2VPcmlnaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hTaXppbmcpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hEaXJlY3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hMaW5lcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveE9yaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUNhcHRpb25T
aWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ2xl
YXIpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDdXJz
b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEN1cnNv
clZpc2liaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFRW1wdHlDZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFQWxpZ25JdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRUp1c3RpZnlDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxleERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWduQ29udGVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZsZXhXcmFwKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxvYXQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVCcmVhayk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUxpc3RTdHlsZVBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTGlzdFN0eWxl
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU1h
cmdpbkNvbGxhcHNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFTWFycXVlZUJlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBSZWdpb25GcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU1hcnF1ZWVEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVOQlNQTW9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU92ZXJmbG93KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUGFnZUJyZWFrKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVSZXNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUYWJsZUxheW91dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRBbGlnbik6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEFsaWdu
TGFzdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4
dEp1c3RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFRleHREZWNvcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBUZXh0RGVjb3JhdGlvblN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0VW5kZXJsaW5lUG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0U2VjdXJpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0VHJhbnNmb3JtKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVW5pY29kZUJp
ZGkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2Vy
RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVz
ZXJNb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVVc2VyU2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFVmVydGljYWxBbGlnbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRVZpc2liaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVXaGl0ZVNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFV29yZEJyZWFrKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFT3ZlcmZsb3dXcmFwKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcml0aW5nTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dENvbWJpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJ1YnlQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEVtcGhh
c2lzUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFRleHRPdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgVGV4dEVtcGhhc2lzRmlsbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEVtcGhhc2lzTWFyayk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dE9yaWVudGF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUG9pbnRlckV2ZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udERlc2NyaXB0aW9u
OjpLZXJuaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBGb250U21vb3RoaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRm9udFdlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgRm9udEl0YWxpYyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRm9udFNtYWxsQ2Fwcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFJlbmRlcmluZ01vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbG9yU3BhY2UpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEh5cGhlbnMpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVTbmFwKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQWxpZ24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFU3BlYWspOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJsZW5kTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUNhcCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUpvaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdpbmRSdWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQWxpZ25tZW50QmFzZWxp
bmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3Jk
ZXJDb2xsYXBzZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRUJvcmRlckZpdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRUltYWdlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBFVHJhbnNmb3JtU3R5bGUzRCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uQXhpcyk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uUHJvZ3Jlc3Npb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdyYXBGbG93KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcmFwVGhyb3VnaCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgR3JpZEF1dG9GbG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjb252ZXJ0VG9MZW5ndGgpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCdWZmZXJlZFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
RUNvbG9ySW50ZXJwb2xhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRUNvbG9yUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFRG9taW5hbnRCYXNlbGluZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVNoYXBlUmVuZGVyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVGV4dEFuY2hvcik6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgU1ZHV3JpdGluZ01vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVWZWN0b3JF
ZmZlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVN
YXNrVHlwZSk6CisgICAgICAgICogY3NzL0NTU1RvU3R5bGVNYXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVG9TdHlsZU1hcDo6bWFwRmlsbEF0dGFjaG1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTVG9TdHlsZU1hcDo6bWFwRmlsbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9T
dHlsZU1hcDo6bWFwQW5pbWF0aW9uRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Rv
U3R5bGVNYXA6Om1hcEFuaW1hdGlvbkZpbGxNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Rv
U3R5bGVNYXA6Om1hcEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvbk5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
VG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uUGxheVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvblByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1RvU3R5bGVNYXA6Om1hcE5pbmVQaWVjZUltYWdlUXVhZCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NUb1N0eWxlTWFwOjptYXBOaW5lUGllY2VJbWFnZVJlcGVhdCk6CisgICAgICAgICog
Y3NzL0NvdW50ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvdW50ZXI6Omxpc3RTdHlsZUlkZW50
KToKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVByb3BlcnR5TnVtYmVyOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGx5UHJvcGVydHlBdXRvOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGx5UHJvcGVydHlDbGlwOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJv
cGVydHlDb2xvcjo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5
TGVuZ3RoOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlTdHJp
bmc6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUNvbXB1dGVM
ZW5ndGg6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUZvbnRG
YW1pbHk6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUZvbnRT
aXplOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlGb250V2Vp
Z2h0OjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlGb250VmFy
aWFudExpZ2F0dXJlczo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3Bl
cnR5Q291bnRlcjo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5
Q3Vyc29yOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0
QWxpZ246OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eU1hcnF1
ZWVJbmNyZW1lbnQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eU1hcnF1ZWVSZXBldGl0aW9uOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5
UHJvcGVydHlNYXJxdWVlU3BlZWQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlQcm9wZXJ0eUxpbmVIZWlnaHQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlQcm9wZXJ0eVBhZ2VTaXplOjpnZXRQYWdlU2l6ZUZyb21OYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGx5UHJvcGVydHlQYWdlU2l6ZTo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBseVByb3BlcnR5VGV4dEVtcGhhc2lzU3R5bGU6OmFwcGx5VmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVJlc2l6ZTo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpBcHBseVByb3BlcnR5VmVydGljYWxBbGlnbjo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVByb3BlcnR5Wm9vbTo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBseVByb3BlcnR5Q2xpcFBhdGg6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbHlQcm9wZXJ0eVNoYXBlOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5
UHJvcGVydHlJbWFnZVJlc29sdXRpb246OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAqIGNzcy9NZWRp
YVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9yaWVudGF0aW9uTWVkaWFG
ZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjp2aWV3X21vZGVNZWRpYUZlYXR1cmVFdmFs
KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50ZXJNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAg
KiBjc3MvU1ZHQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VTVkdWYWx1ZSk6CisgICAgICAgICogY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlTVkdQcm9wZXJ0eSk6CisgICAgICAg
ICogY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9w
ZXJ0eVNldDo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKToKKyAgICAgICAgKiBjc3MvU3R5bGVS
ZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVHcmlkVHJhY2tCcmVhZHRoKToK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdyaWRUcmFja0xpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlR3JpZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29sb3JGb3JDU1NWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xvckZyb21QcmltaXRpdmVWYWx1ZUlz
RGVyaXZlZEZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNv
bG9yRnJvbVByaW1pdGl2ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbldpdGhJbmxpbmVTeW50YXgpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y3JlYXRlRmlsdGVyT3BlcmF0aW9ucyk6CisgICAgICAg
ICogY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWV3
cG9ydFN0eWxlUmVzb2x2ZXI6OmdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZSk6CisgICAgICAgICog
Y3NzL1dlYktpdENTU01hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRy
aXg6OnNldE1hdHJpeFZhbHVlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSWRlbnRpZmllcik6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aWRlbnRpZmllckZvclN0eWxl
UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRFcXVpdmFsZW50OjpIVE1MRWxlbWVu
dEVxdWl2YWxlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRFcXVpdmFsZW50Ojp2
YWx1ZUlzUHJlc2VudEluU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHREZWNvcmF0
aW9uRXF1aXZhbGVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0RGVjb3Jh
dGlvbkVxdWl2YWxlbnQ6OkhUTUxUZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdGluZ1N0eWxlOjp0ZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRpbmdTdHlsZTo6cHJlcGFyZVRvQXBwbHlBdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
aW5nU3R5bGU6OnRleHREaXJlY3Rpb25Gb3JTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Zm9udFdlaWdodElzQm9sZCk6CisgICAgICAgIChXZWJDb3JlOjpsZWdhY3lGb250U2l6ZUZyb21D
U1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjppc1RyYW5zcGFyZW50Q29sb3JWYWx1ZSk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuaDoKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1
cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVHdGs6OnN5c3RlbUZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0ay5oOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0
azIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnN5c3RlbUNvbG9yKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lR3RrOjpzeXN0ZW1Db2xvcik6CisgICAgICAgICogcGxhdGZvcm0v
cXQvUmVuZGVyVGhlbWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0Ojpz
eXN0ZW1Gb250KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnN5c3RlbUNvbG9y
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0Lmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpz
eXN0ZW1Db2xvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnN5c3RlbUZv
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnN5c3RlbUNvbG9yKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVXaW46OnN5c3RlbUZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y3NzVmFsdWVJ
ZFRvU3lzQ29sb3JJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbjo6c3lz
dGVtQ29sb3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lV2luQ0U6OnN5c3RlbUZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y3NzVmFsdWVJ
ZFRvU3lzQ29sb3JJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbkNFOjpz
eXN0ZW1Db2xvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luQ0UuaDoKKwog
MjAxMy0wNi0yMCAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIGFuZCB0ZXh0LWRlY29yYXRpb24gYXJlIG5v
dCBwcmVzZXJ2ZWQgd2hlbiBtZXJnaW5nIHBhcmFncmFwaHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggYjJlZDI4MjFhYTdm
NDM1OWFiNzc2ZDAzYTlkZTRkMDVkZjAyMTc5Mi4uM2U5MzkwYTNjYTU0YTJhYjE0MjUxMTNjMGE4
YWZiNWUyZDlmY2FmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTI5NjksOSArMjk2OSw5IEBAIGJvb2wgQ29tcHV0ZWRT
dHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlNYXRjaGVzKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwg
Y29uc3QgQ1NTCiAgICAgICAgIG1fbm9kZS0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG1fbm9k
ZS0+Y29tcHV0ZWRTdHlsZShtX3BzZXVkb0VsZW1lbnRTcGVjaWZpZXIpOwogICAgICAgICBpZiAo
c3R5bGUgJiYgc3R5bGUtPmZvbnREZXNjcmlwdGlvbigpLmtleXdvcmRTaXplKCkpIHsKLSAgICAg
ICAgICAgIGludCBzaXplVmFsdWUgPSBjc3NJZGVudGlmaWVyRm9yRm9udFNpemVLZXl3b3JkKHN0
eWxlLT5mb250RGVzY3JpcHRpb24oKS5rZXl3b3JkU2l6ZSgpKTsKKyAgICAgICAgICAgIENTU1Zh
bHVlSUQgc2l6ZVZhbHVlID0gY3NzSWRlbnRpZmllckZvckZvbnRTaXplS2V5d29yZChzdHlsZS0+
Zm9udERlc2NyaXB0aW9uKCkua2V5d29yZFNpemUoKSk7CiAgICAgICAgICAgICBjb25zdCBDU1NQ
cmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBDU1NQcmlt
aXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNJ
ZGVudCgpICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IHNpemVWYWx1ZSkKKyAgICAg
ICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNWYWx1ZUlEKCkgJiYgcHJpbWl0aXZlVmFsdWUt
PmdldFZhbHVlSUQoKSA9PSBzaXplVmFsdWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dFNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCmlu
ZGV4IGIwNDAyZjIwZDk2Yzg3NTUyOGFmYmIxM2Y3YzI1M2JmMjMyMTVhMjEuLjM1MWQ0NDMyMjIx
NDFlYjlmZDk3MmUzYmEyMzAxNDYzYzQ0MmFkNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
U2VsZWN0b3IuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBDU1NGb250U2VsZWN0b3I6OmFk
ZEZvbnRGYWNlUnVsZShjb25zdCBTdHlsZVJ1bGVGb250RmFjZSogZm9udEZhY2VSdWxlKQogICAg
ICAgICBpZiAoIWZvbnRTdHlsZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihm
b250U3R5bGUuZ2V0KCkpLT5nZXRJZGVudCgpKSB7CisgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihmb250U3R5bGUuZ2V0KCkpLT5nZXRWYWx1ZUlEKCkpIHsK
ICAgICAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgICAgIHRyYWl0c01hc2sgfD0g
Rm9udFN0eWxlTm9ybWFsTWFzazsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTMzLDcgKzEzMyw3
IEBAIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUoY29uc3QgU3R5bGVSdWxl
Rm9udEZhY2UqIGZvbnRGYWNlUnVsZSkKICAgICAgICAgaWYgKCFmb250V2VpZ2h0LT5pc1ByaW1p
dGl2ZVZhbHVlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgc3dpdGNoIChzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGZvbnRXZWlnaHQuZ2V0KCkpLT5nZXRJZGVudCgp
KSB7CisgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihmb250
V2VpZ2h0LmdldCgpKS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVCb2xk
OgogICAgICAgICBjYXNlIENTU1ZhbHVlNzAwOgogICAgICAgICAgICAgdHJhaXRzTWFzayB8PSBG
b250V2VpZ2h0NzAwTWFzazsKQEAgLTE4NCw3ICsxODQsNyBAQCB2b2lkIENTU0ZvbnRTZWxlY3Rv
cjo6YWRkRm9udEZhY2VSdWxlKGNvbnN0IFN0eWxlUnVsZUZvbnRGYWNlKiBmb250RmFjZVJ1bGUp
CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG51bVZhcmlhbnRzOyArK2kpIHsKLSAgICAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih2YXJpYW50TGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKSkt
PmdldElkZW50KCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0
aXZlVmFsdWUqPih2YXJpYW50TGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKSktPmdldFZh
bHVlSUQoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAg
ICAgICAgICAgICAgIHRyYWl0c01hc2sgfD0gRm9udFZhcmlhbnROb3JtYWxNYXNrOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKQEAgLTI2NiwxMiArMjY2LDEyIEBAIHZvaWQgQ1NTRm9udFNl
bGVjdG9yOjphZGRGb250RmFjZVJ1bGUoY29uc3QgU3R5bGVSdWxlRm9udEZhY2UqIGZvbnRGYWNl
UnVsZSkKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZhbWlseUxlbmd0aDsgaSsrKSB7CiAgICAg
ICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBpdGVtID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWUqPihmYW1pbHlMaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkpKTsKICAgICAgICAgU3Ry
aW5nIGZhbWlseU5hbWU7Ci0gICAgICAgIGlmIChpdGVtLT5pc1N0cmluZygpKQorICAgICAgICBp
ZiAoaXRlbS0+aXNTdHJpbmcoKSkgewogICAgICAgICAgICAgZmFtaWx5TmFtZSA9IGl0ZW0tPmdl
dFN0cmluZ1ZhbHVlKCk7Ci0gICAgICAgIGVsc2UgaWYgKGl0ZW0tPmlzSWRlbnQoKSkgeworICAg
ICAgICB9IGVsc2UgaWYgKGl0ZW0tPmlzVmFsdWVJRCgpKSB7CiAgICAgICAgICAgICAvLyBXZSBu
ZWVkIHRvIHVzZSB0aGUgcmF3IHRleHQgZm9yIGFsbCB0aGUgZ2VuZXJpYyBmYW1pbHkgdHlwZXMs
IHNpbmNlIEBmb250LWZhY2UgaXMgYSB3YXkgb2YgYWN0dWFsbHkKICAgICAgICAgICAgIC8vIGRl
ZmluaW5nIHdoYXQgZm9udCB0byB1c2UgZm9yIHRob3NlIHR5cGVzLgotICAgICAgICAgICAgc3dp
dGNoIChpdGVtLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGl0ZW0tPmdldFZh
bHVlSUQoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVTZXJpZjoKICAgICAgICAg
ICAgICAgICAgICAgZmFtaWx5TmFtZSA9IHNlcmlmRmFtaWx5OwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRleCA2NjA4
MzdmNWZiODAxZjMxZTkxZWZiMGNkM2Y0MTJiZTVhODJkNzI0Li41MDA1OThiZDk2NTQ2ZTMyNzkw
ZTY5NjRmNjAzNGUwODcyZTQxYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JhZGllbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFs
dWUuY3BwCkBAIC00MDgsNyArNDA4LDcgQEAgc3RhdGljIGZsb2F0IHBvc2l0aW9uRnJvbVZhbHVl
KENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBSZW4KICAgICBp
ZiAodmFsdWUtPmlzQ2FsY3VsYXRlZFBlcmNlbnRhZ2VXaXRoTGVuZ3RoKCkpCiAgICAgICAgIHJl
dHVybiB2YWx1ZS0+Y3NzQ2FsY1ZhbHVlKCktPnRvQ2FsY1ZhbHVlKHN0eWxlLCByb290U3R5bGUs
IHN0eWxlLT5lZmZlY3RpdmVab29tKCkpLT5ldmFsdWF0ZShlZGdlRGlzdGFuY2UpOwogCi0gICAg
c3dpdGNoICh2YWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgIHN3aXRjaCAodmFsdWUtPmdldFZhbHVl
SUQoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVUb3A6CiAgICAgICAgIEFTU0VSVCghaXNIb3Jpem9u
dGFsKTsKICAgICAgICAgcmV0dXJuIDA7CkBAIC00MjEsNiArNDIxLDggQEAgc3RhdGljIGZsb2F0
IHBvc2l0aW9uRnJvbVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUq
IHN0eWxlLCBSZW4KICAgICBjYXNlIENTU1ZhbHVlUmlnaHQ6CiAgICAgICAgIEFTU0VSVChpc0hv
cml6b250YWwpOwogICAgICAgICByZXR1cm4gc2l6ZS53aWR0aCgpOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIHJldHVybiB2YWx1ZS0+Y29tcHV0ZUxlbmd0aDxm
bG9hdD4oc3R5bGUsIHJvb3RTdHlsZSwgem9vbUZhY3Rvcik7CkBAIC01NDAsNyArNTQyLDcgQEAg
U3RyaW5nIENTU0xpbmVhckdyYWRpZW50VmFsdWU6OmN1c3RvbUNzc1RleHQoKSBjb25zdAogICAg
ICAgICBpZiAobV9hbmdsZSAmJiBtX2FuZ2xlLT5jb21wdXRlRGVncmVlcygpICE9IDE4MCkgewog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChtX2FuZ2xlLT5jc3NUZXh0KCkpOwogICAgICAgICAg
ICAgd3JvdGVTb21ldGhpbmcgPSB0cnVlOwotICAgICAgICB9IGVsc2UgaWYgKChtX2ZpcnN0WCB8
fCBtX2ZpcnN0WSkgJiYgISghbV9maXJzdFggJiYgbV9maXJzdFkgJiYgbV9maXJzdFktPmdldElk
ZW50KCkgPT0gQ1NTVmFsdWVCb3R0b20pKSB7CisgICAgICAgIH0gZWxzZSBpZiAoKG1fZmlyc3RY
IHx8IG1fZmlyc3RZKSAmJiAhKCFtX2ZpcnN0WCAmJiBtX2ZpcnN0WSAmJiBtX2ZpcnN0WS0+Z2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlQm90dG9tKSkgewogICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZExpdGVyYWwoInRvICIpOwogICAgICAgICAgICAgaWYgKG1fZmlyc3RYICYmIG1fZmlyc3RZKSB7
CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChtX2ZpcnN0WC0+Y3NzVGV4dCgpKTsKQEAg
LTY3Nyw5ICs2NzksOSBAQCBQYXNzUmVmUHRyPEdyYWRpZW50PiBDU1NMaW5lYXJHcmFkaWVudFZh
bHVlOjpjcmVhdGVHcmFkaWVudChSZW5kZXJPYmplY3QqIHJlbmRlcgogICAgICAgICAgICAgICAg
IC8vICJNYWdpYyIgY29ybmVycywgc28gdGhlIDUwJSBsaW5lIHRvdWNoZXMgdHdvIGNvcm5lcnMu
CiAgICAgICAgICAgICAgICAgZmxvYXQgcmlzZSA9IHNpemUud2lkdGgoKTsKICAgICAgICAgICAg
ICAgICBmbG9hdCBydW4gPSBzaXplLmhlaWdodCgpOwotICAgICAgICAgICAgICAgIGlmIChtX2Zp
cnN0WCAmJiBtX2ZpcnN0WC0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUxlZnQpCisgICAgICAgICAg
ICAgICAgaWYgKG1fZmlyc3RYICYmIG1fZmlyc3RYLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVM
ZWZ0KQogICAgICAgICAgICAgICAgICAgICBydW4gKj0gLTE7Ci0gICAgICAgICAgICAgICAgaWYg
KG1fZmlyc3RZICYmIG1fZmlyc3RZLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQm90dG9tKQorICAg
ICAgICAgICAgICAgIGlmIChtX2ZpcnN0WSAmJiBtX2ZpcnN0WS0+Z2V0VmFsdWVJRCgpID09IENT
U1ZhbHVlQm90dG9tKQogICAgICAgICAgICAgICAgICAgICByaXNlICo9IC0xOwogICAgICAgICAg
ICAgICAgIC8vIENvbXB1dGUgYW5nbGUsIGFuZCBmbGlwIGl0IGJhY2sgdG8gImJlYXJpbmcgYW5n
bGUiIGRlZ3JlZXMuCiAgICAgICAgICAgICAgICAgZmxvYXQgYW5nbGUgPSA5MCAtIHJhZDJkZWco
YXRhbjIocmlzZSwgcnVuKSk7CkBAIC04MzMsMTIgKzgzNSwxMiBAQCBTdHJpbmcgQ1NTUmFkaWFs
R3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiAKICAgICAgICAgLy8gVGhlIG9u
bHkgYW1iaWd1b3VzIGNhc2UgdGhhdCBuZWVkcyBhbiBleHBsaWNpdCBzaGFwZSB0byBiZSBwcm92
aWRlZAogICAgICAgICAvLyBpcyB3aGVuIGEgc2l6aW5nIGtleXdvcmQgaXMgdXNlZCAob3IgYWxs
IHNpemluZyBpcyBvbWl0dGVkKS4KLSAgICAgICAgaWYgKG1fc2hhcGUgJiYgbV9zaGFwZS0+Z2V0
SWRlbnQoKSAhPSBDU1NWYWx1ZUVsbGlwc2UgJiYgKG1fc2l6aW5nQmVoYXZpb3IgfHwgKCFtX3Np
emluZ0JlaGF2aW9yICYmICFtX2VuZEhvcml6b250YWxTaXplKSkpIHsKKyAgICAgICAgaWYgKG1f
c2hhcGUgJiYgbV9zaGFwZS0+Z2V0VmFsdWVJRCgpICE9IENTU1ZhbHVlRWxsaXBzZSAmJiAobV9z
aXppbmdCZWhhdmlvciB8fCAoIW1fc2l6aW5nQmVoYXZpb3IgJiYgIW1fZW5kSG9yaXpvbnRhbFNp
emUpKSkgewogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoImNpcmNsZSIpOwogICAg
ICAgICAgICAgd3JvdGVTb21ldGhpbmcgPSB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgaWYg
KG1fc2l6aW5nQmVoYXZpb3IgJiYgbV9zaXppbmdCZWhhdmlvci0+Z2V0SWRlbnQoKSAhPSBDU1NW
YWx1ZUZhcnRoZXN0Q29ybmVyKSB7CisgICAgICAgIGlmIChtX3NpemluZ0JlaGF2aW9yICYmIG1f
c2l6aW5nQmVoYXZpb3ItPmdldFZhbHVlSUQoKSAhPSBDU1NWYWx1ZUZhcnRoZXN0Q29ybmVyKSB7
CiAgICAgICAgICAgICBpZiAod3JvdGVTb21ldGhpbmcpCiAgICAgICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnICcpOwogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChtX3NpemluZ0JlaGF2aW9y
LT5jc3NUZXh0KCkpOwpAQCAtMTAxOCwxNCArMTAyMCwxNCBAQCBQYXNzUmVmUHRyPEdyYWRpZW50
PiBDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjcmVhdGVHcmFkaWVudChSZW5kZXJPYmplY3QqIHJl
bmRlcgogICAgIH0gZWxzZSB7CiAgICAgICAgIGVudW0gR3JhZGllbnRTaGFwZSB7IENpcmNsZSwg
RWxsaXBzZSB9OwogICAgICAgICBHcmFkaWVudFNoYXBlIHNoYXBlID0gRWxsaXBzZTsKLSAgICAg
ICAgaWYgKChtX3NoYXBlICYmIG1fc2hhcGUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVDaXJjbGUp
CisgICAgICAgIGlmICgobV9zaGFwZSAmJiBtX3NoYXBlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVDaXJjbGUpCiAgICAgICAgICAgICB8fCAoIW1fc2hhcGUgJiYgIW1fc2l6aW5nQmVoYXZpb3Ig
JiYgbV9lbmRIb3Jpem9udGFsU2l6ZSAmJiAhbV9lbmRWZXJ0aWNhbFNpemUpKQogICAgICAgICAg
ICAgc2hhcGUgPSBDaXJjbGU7CiAKICAgICAgICAgZW51bSBHcmFkaWVudEZpbGwgeyBDbG9zZXN0
U2lkZSwgQ2xvc2VzdENvcm5lciwgRmFydGhlc3RTaWRlLCBGYXJ0aGVzdENvcm5lciB9OwogICAg
ICAgICBHcmFkaWVudEZpbGwgZmlsbCA9IEZhcnRoZXN0Q29ybmVyOwogCi0gICAgICAgIHN3aXRj
aCAobV9zaXppbmdCZWhhdmlvciA/IG1fc2l6aW5nQmVoYXZpb3ItPmdldElkZW50KCkgOiAwKSB7
CisgICAgICAgIHN3aXRjaCAobV9zaXppbmdCZWhhdmlvciA/IG1fc2l6aW5nQmVoYXZpb3ItPmdl
dFZhbHVlSUQoKSA6IDApIHsKICAgICAgICAgY2FzZSBDU1NWYWx1ZUNvbnRhaW46CiAgICAgICAg
IGNhc2UgQ1NTVmFsdWVDbG9zZXN0U2lkZToKICAgICAgICAgICAgIGZpbGwgPSBDbG9zZXN0U2lk
ZTsKQEAgLTEwNDAsNiArMTA0Miw4IEBAIFBhc3NSZWZQdHI8R3JhZGllbnQ+IENTU1JhZGlhbEdy
YWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50KFJlbmRlck9iamVjdCogcmVuZGVyCiAgICAgICAg
IGNhc2UgQ1NTVmFsdWVGYXJ0aGVzdENvcm5lcjoKICAgICAgICAgICAgIGZpbGwgPSBGYXJ0aGVz
dENvcm5lcjsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBOb3cgY29tcHV0ZSB0aGUgZW5kIHJh
ZGlpIGJhc2VkIG9uIHRoZSBzZWNvbmQgcG9pbnQsIHNoYXBlIGFuZCBmaWxsLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAppbmRleCBmMzg2MTczNjYyOGU5MTRjODQwZTEzZWU0OWY4M2NmYjdmMzYx
Zjc4Li5jYTgyYzUxMWJlOTJlZDBlYWJmOWFhNjJlOTBmMzhjYjE2YTZkMzNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcApAQCAtMTQwMCw3ICsxNDAwLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlU3lzdGVtQ29sb3IoUkdCQTMyJiBjb2xvciwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIERvY3Vt
ZW50KgogCiAgICAgQ1NTUGFyc2VyU3RyaW5nIGNzc0NvbG9yOwogICAgIGNzc0NvbG9yLmluaXQo
c3RyaW5nKTsKLSAgICBpbnQgaWQgPSBjc3NWYWx1ZUtleXdvcmRJRChjc3NDb2xvcik7CisgICAg
Q1NTVmFsdWVJRCBpZCA9IGNzc1ZhbHVlS2V5d29yZElEKGNzc0NvbG9yKTsKICAgICBpZiAoaWQg
PD0gMCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0zOTMzLDcgKzM5MzMsNyBAQCBzdGF0
aWMgYm9vbCBpc1ZhbHVlQ29uZmxpY3RpbmdXaXRoQ3VycmVudEVkZ2UoaW50IHZhbHVlMSwgaW50
IHZhbHVlMikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIGlzRmlsbFBvc2l0
aW9uS2V5d29yZChpbnQgdmFsdWUpCitzdGF0aWMgYm9vbCBpc0ZpbGxQb3NpdGlvbktleXdvcmQo
Q1NTVmFsdWVJRCB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgPT0gQ1NTVmFsdWVMZWZ0IHx8
IHZhbHVlID09IENTU1ZhbHVlVG9wIHx8IHZhbHVlID09IENTU1ZhbHVlQm90dG9tIHx8IHZhbHVl
ID09IENTU1ZhbHVlUmlnaHQgfHwgdmFsdWUgPT0gQ1NTVmFsdWVDZW50ZXI7CiB9CkBAIC0zOTQy
LDcgKzM5NDIsNyBAQCB2b2lkIENTU1BhcnNlcjo6cGFyc2U0VmFsdWVzRmlsbFBvc2l0aW9uKENT
U1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0LCBSZWZQdHI8QwogewogICAgIC8vIFsgbGVmdCB8
IHJpZ2h0IF0gWyA8cGVyY2VudGFnZV0gfCA8bGVuZ3RoPiBdICYmIFsgdG9wIHwgYm90dG9tIF0g
WyA8cGVyY2VudGFnZT4gfCA8bGVuZ3RoPiBdCiAgICAgLy8gSW4gdGhlIGNhc2Ugb2YgNCB2YWx1
ZXMgPHBvc2l0aW9uPiByZXF1aXJlcyB0aGUgc2Vjb25kIHZhbHVlIHRvIGJlIGEgbGVuZ3RoIG9y
IGEgcGVyY2VudGFnZS4KLSAgICBpZiAoaXNGaWxsUG9zaXRpb25LZXl3b3JkKHBhcnNlZFZhbHVl
Mi0+Z2V0SWRlbnQoKSkpCisgICAgaWYgKGlzRmlsbFBvc2l0aW9uS2V5d29yZChwYXJzZWRWYWx1
ZTItPmdldFZhbHVlSUQoKSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHVuc2lnbmVkIGN1bXVs
YXRpdmVGbGFncyA9IDA7CkBAIC0zOTUxLDggKzM5NTEsOCBAQCB2b2lkIENTU1BhcnNlcjo6cGFy
c2U0VmFsdWVzRmlsbFBvc2l0aW9uKENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0LCBSZWZQ
dHI8QwogICAgIGlmICghdmFsdWUzKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnQgaWRlbnQx
ID0gcGFyc2VkVmFsdWUxLT5nZXRJZGVudCgpOwotICAgIGludCBpZGVudDMgPSB2YWx1ZTMtPmdl
dElkZW50KCk7CisgICAgQ1NTVmFsdWVJRCBpZGVudDEgPSBwYXJzZWRWYWx1ZTEtPmdldFZhbHVl
SUQoKTsKKyAgICBDU1NWYWx1ZUlEIGlkZW50MyA9IHZhbHVlMy0+Z2V0VmFsdWVJRCgpOwogCiAg
ICAgaWYgKGlkZW50MSA9PSBDU1NWYWx1ZUNlbnRlcikKICAgICAgICAgcmV0dXJuOwpAQCAtMzk3
NSw3ICszOTc1LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlNFZhbHVlc0ZpbGxQb3NpdGlvbihD
U1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCwgUmVmUHRyPEMKICAgICAgICAgcmV0dXJuOwog
CiAgICAgLy8gNHRoIHZhbHVlIG11c3QgYmUgYSBsZW5ndGggb3IgYSBwZXJjZW50YWdlLgotICAg
IGlmIChpc0ZpbGxQb3NpdGlvbktleXdvcmQodmFsdWU0LT5nZXRJZGVudCgpKSkKKyAgICBpZiAo
aXNGaWxsUG9zaXRpb25LZXl3b3JkKHZhbHVlNC0+Z2V0VmFsdWVJRCgpKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgdmFsdWUxID0gY3JlYXRlUHJpbWl0aXZlVmFsdWVQYWlyKHBhcnNlZFZhbHVl
MSwgcGFyc2VkVmFsdWUyKTsKQEAgLTM5OTksOSArMzk5OSw5IEBAIHZvaWQgQ1NTUGFyc2VyOjpw
YXJzZTNWYWx1ZXNGaWxsUG9zaXRpb24oQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJl
ZlB0cjxDCiAgICAgdmFsdWVMaXN0LT5uZXh0KCk7CiAKICAgICBib29sIHN3YXBOZWVkZWQgPSBm
YWxzZTsKLSAgICBDU1NWYWx1ZUlEIGlkZW50MSA9IHN0YXRpY19jYXN0PENTU1ZhbHVlSUQ+KHBh
cnNlZFZhbHVlMS0+Z2V0SWRlbnQoKSk7Ci0gICAgQ1NTVmFsdWVJRCBpZGVudDIgPSBzdGF0aWNf
Y2FzdDxDU1NWYWx1ZUlEPihwYXJzZWRWYWx1ZTItPmdldElkZW50KCkpOwotICAgIENTU1ZhbHVl
SUQgaWRlbnQzID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVJRD4odmFsdWUzLT5nZXRJZGVudCgpKTsK
KyAgICBDU1NWYWx1ZUlEIGlkZW50MSA9IHBhcnNlZFZhbHVlMS0+Z2V0VmFsdWVJRCgpOworICAg
IENTU1ZhbHVlSUQgaWRlbnQyID0gcGFyc2VkVmFsdWUyLT5nZXRWYWx1ZUlEKCk7CisgICAgQ1NT
VmFsdWVJRCBpZGVudDMgPSB2YWx1ZTMtPmdldFZhbHVlSUQoKTsKIAogICAgIENTU1ZhbHVlSUQg
Zmlyc3RQb3NpdGlvbktleXdvcmQ7CiAgICAgQ1NTVmFsdWVJRCBzZWNvbmRQb3NpdGlvbktleXdv
cmQ7CkBAIC00MDcwLDggKzQwNzAsOCBAQCB2b2lkIENTU1BhcnNlcjo6cGFyc2UzVmFsdWVzRmls
bFBvc2l0aW9uKENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0LCBSZWZQdHI8QwogI2lmbmRl
ZiBOREVCVUcKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogZmlyc3QgPSBzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KHZhbHVlMS5nZXQoKSk7CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHNl
Y29uZCA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUyLmdldCgpKTsKLSAg
ICBpZGVudDEgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUlEPihmaXJzdC0+Z2V0UGFpclZhbHVlKCkt
PmZpcnN0KCktPmdldElkZW50KCkpOwotICAgIGlkZW50MiA9IHN0YXRpY19jYXN0PENTU1ZhbHVl
SUQ+KHNlY29uZC0+Z2V0UGFpclZhbHVlKCktPmZpcnN0KCktPmdldElkZW50KCkpOworICAgIGlk
ZW50MSA9IGZpcnN0LT5nZXRQYWlyVmFsdWUoKS0+Zmlyc3QoKS0+Z2V0VmFsdWVJRCgpOworICAg
IGlkZW50MiA9IHNlY29uZC0+Z2V0UGFpclZhbHVlKCktPmZpcnN0KCktPmdldFZhbHVlSUQoKTsK
ICAgICBBU1NFUlQoaWRlbnQxID09IENTU1ZhbHVlTGVmdCB8fCBpZGVudDEgPT0gQ1NTVmFsdWVS
aWdodCk7CiAgICAgQVNTRVJUKGlkZW50MiA9PSBDU1NWYWx1ZUJvdHRvbSB8fCBpZGVudDIgPT0g
Q1NTVmFsdWVUb3ApOwogI2VuZGlmCkBAIC00MTM2LDcgKzQxMzYsNyBAQCB2b2lkIENTU1BhcnNl
cjo6cGFyc2VGaWxsUG9zaXRpb24oQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0
cjxDU1NWYWx1ZQogICAgIHZhbHVlMi5jbGVhcigpOwogCiAgICAgLy8gUGVyIENTUzMgc3ludGF4
LCA8cG9zaXRpb24+IGNhbid0IGhhdmUgJ2NlbnRlcicgYXMgaXRzIHNlY29uZCBrZXl3b3JkIGFz
IHdlIGhhdmUgbW9yZSBhcmd1bWVudHMgdG8gZm9sbG93LgotICAgIGlmIChwYXJzZWRWYWx1ZTIt
PmdldElkZW50KCkgPT0gQ1NTVmFsdWVDZW50ZXIpCisgICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlQ2VudGVyKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
bnVtYmVyT2ZWYWx1ZXMgPT0gMykKQEAgLTQyMjcsNyArNDIyNyw3IEBAIHZvaWQgQ1NTUGFyc2Vy
OjpwYXJzZUZpbGxSZXBlYXQoUmVmUHRyPENTU1ZhbHVlPiYgdmFsdWUxLCBSZWZQdHI8Q1NTVmFs
dWU+JiB2YWx1CiAKICAgICAvLyBJZiBvbmx5IG9uZSB2YWx1ZSB3YXMgc3BlY2lmaWVkLCB2YWx1
ZTIgaXMgdGhlIHNhbWUgYXMgdmFsdWUxLgogICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSB0cnVl
OwotICAgIHZhbHVlMiA9IGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShzdGF0
aWNfY2FzdDxDU1NWYWx1ZUlEPihzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVl
MS5nZXQoKSktPmdldElkZW50KCkpKTsKKyAgICB2YWx1ZTIgPSBjc3NWYWx1ZVBvb2woKS5jcmVh
dGVJZGVudGlmaWVyVmFsdWUoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZTEu
Z2V0KCkpLT5nZXRWYWx1ZUlEKCkpOwogfQogCiBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJz
ZXI6OnBhcnNlRmlsbFNpemUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wmIGFsbG93Q29tbWEp
CkBAIC03Nzg2LDEwICs3Nzg2LDEwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVJhZGlhbEdyYWRp
ZW50KENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0LCBSZWZQdHI8Q1NTVmFsCiAgICAgaWYg
KHNpemVWYWx1ZSAmJiBob3Jpem9udGFsU2l6ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IC8vIENpcmNsZXMgbXVzdCBoYXZlIDAgb3IgMSBsZW5ndGhzLgotICAgIGlmIChzaGFwZVZhbHVl
ICYmIHNoYXBlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVDaXJjbGUgJiYgdmVydGljYWxT
aXplKQorICAgIGlmIChzaGFwZVZhbHVlICYmIHNoYXBlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBD
U1NWYWx1ZUNpcmNsZSAmJiB2ZXJ0aWNhbFNpemUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAvLyBFbGxpcHNlcyBtdXN0IGhhdmUgMCBvciAyIGxlbmd0aC9wZXJjZW50YWdlcy4KLSAgICBp
ZiAoc2hhcGVWYWx1ZSAmJiBzaGFwZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRWxsaXBz
ZSAmJiBob3Jpem9udGFsU2l6ZSAmJiAhdmVydGljYWxTaXplKQorICAgIGlmIChzaGFwZVZhbHVl
ICYmIHNoYXBlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUVsbGlwc2UgJiYgaG9yaXpv
bnRhbFNpemUgJiYgIXZlcnRpY2FsU2l6ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIC8v
IElmIHRoZXJlJ3Mgb25seSBvbmUgc2l6ZSwgaXQgbXVzdCBiZSBhIGxlbmd0aC4KICAgICBpZiAo
IXZlcnRpY2FsU2l6ZSAmJiBob3Jpem9udGFsU2l6ZSAmJiBob3Jpem9udGFsU2l6ZS0+aXNQZXJj
ZW50YWdlKCkpCkBAIC04NDI4LDE3ICs4NDI4LDE3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENT
U1BhcnNlcjo6cGFyc2VUcmFuc2Zvcm1WYWx1ZShDU1NQYXJzZXJWYWx1ZSAqdmFsdWUpCiAgICAg
cmV0dXJuIHRyYW5zZm9ybVZhbHVlLnJlbGVhc2UoKTsKIH0KIAotYm9vbCBDU1NQYXJzZXI6Omlz
QmxlbmRNb2RlKGludCBpZGVudCkKK2Jvb2wgQ1NTUGFyc2VyOjppc0JsZW5kTW9kZShDU1NWYWx1
ZUlEIHZhbHVlSUQpCiB7Ci0gICAgcmV0dXJuIChpZGVudCA+PSBDU1NWYWx1ZU11bHRpcGx5ICYm
IGlkZW50IDw9IENTU1ZhbHVlTHVtaW5vc2l0eSkKLSAgICAgICAgfHwgaWRlbnQgPT0gQ1NTVmFs
dWVOb3JtYWwKLSAgICAgICAgfHwgaWRlbnQgPT0gQ1NTVmFsdWVPdmVybGF5OworICAgIHJldHVy
biAodmFsdWVJRCA+PSBDU1NWYWx1ZU11bHRpcGx5ICYmIHZhbHVlSUQgPD0gQ1NTVmFsdWVMdW1p
bm9zaXR5KQorICAgICAgICB8fCB2YWx1ZUlEID09IENTU1ZhbHVlTm9ybWFsCisgICAgICAgIHx8
IHZhbHVlSUQgPT0gQ1NTVmFsdWVPdmVybGF5OwogfQogCi1ib29sIENTU1BhcnNlcjo6aXNDb21w
b3NpdGVPcGVyYXRvcihpbnQgaWRlbnQpCitib29sIENTU1BhcnNlcjo6aXNDb21wb3NpdGVPcGVy
YXRvcihDU1NWYWx1ZUlEIHZhbHVlSUQpCiB7CiAgICAgLy8gRklYTUU6IEFkZCBDU1NWYWx1ZURl
c3RpbmF0aW9uIGFuZCBDU1NWYWx1ZUxpZ2h0ZXIgd2hlbiB0aGUgQ29tcG9zaXRpbmcgc3BlYyB1
cGRhdGVzLgotICAgIHJldHVybiBpZGVudCA+PSBDU1NWYWx1ZUNsZWFyICYmIGlkZW50IDw9IENT
U1ZhbHVlWG9yOworICAgIHJldHVybiB2YWx1ZUlEID49IENTU1ZhbHVlQ2xlYXIgJiYgdmFsdWVJ
RCA8PSBDU1NWYWx1ZVhvcjsKIH0KIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaAppbmRleCA1OWIwZjA3NTQ3NzNjZWU3YTE2OGU0ZDYyODE4MWQ3YzMxMmIwMGJl
Li4zNWE5NWZkZGNmMTM3OGJjMTU5M2JlZTk5NmFiMGI5ODY1OTVmMzgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCkBAIC0yNjUsOCArMjY1LDggQEAgcHVibGljOgogI2VuZGlmCiAjZW5kaWYKIAot
ICAgIHN0YXRpYyBib29sIGlzQmxlbmRNb2RlKGludCBpZGVudCk7Ci0gICAgc3RhdGljIGJvb2wg
aXNDb21wb3NpdGVPcGVyYXRvcihpbnQgaWRlbnQpOworICAgIHN0YXRpYyBib29sIGlzQmxlbmRN
b2RlKENTU1ZhbHVlSUQpOworICAgIHN0YXRpYyBib29sIGlzQ29tcG9zaXRlT3BlcmF0b3IoQ1NT
VmFsdWVJRCk7CiAKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gcGFyc2VUcmFuc2Zvcm0o
KTsKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZVRyYW5zZm9ybVZhbHVlKENTU1BhcnNl
clZhbHVlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCmluZGV4IDE0NDEx
N2QxMzk2OWRiYjAwNTA4MWY5NWJiYWZiMWExNGQwOTZmYWEuLjhlYzZmZTkyMmQwY2ZjMDQyMDI0
MjIyYzliODlkOGZjNDcwNDg0YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXJWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMu
Y3BwCkBAIC03MCw3ICs3MCw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlclZhbHVl
OjpjcmVhdGVDU1NWYWx1ZSgpCiAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3Jl
YXRlSWRlbnRpZmllcihpZCk7CiAgICAgCiAgICAgaWYgKHVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6
Ok9wZXJhdG9yKSB7Ci0gICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcHJpbWl0aXZl
VmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihpVmFsdWUpOworICAg
ICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHByaW1pdGl2ZVZhbHVlID0gQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZVBhcnNlck9wZXJhdG9yKGlWYWx1ZSk7CiAgICAgICAgIHByaW1pdGl2
ZVZhbHVlLT5zZXRQcmltaXRpdmVUeXBlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEFSU0VSX09Q
RVJBVE9SKTsKICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlOwogICAgIH0KQEAgLTgyLDYg
KzgyLDggQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyVmFsdWU6OmNyZWF0ZUNTU1Zh
bHVlKCkKICAgICBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzIHByaW1pdGl2ZVVuaXQgPSBz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzPih1bml0KTsKICAgICBzd2l0
Y2ggKHByaW1pdGl2ZVVuaXQpIHsKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURF
TlQ6CisgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BST1BFUlRZX0lEOgorICAgIGNh
c2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19WQUxVRV9JRDoKICAgICAgICAgcmV0dXJuIENTU1By
aW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3RyaW5nLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BBUlNF
Ul9JREVOVElGSUVSKTsKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSOgog
ICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShmVmFsdWUsIGlzSW50ID8g
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QQVJTRVJfSU5URUdFUiA6IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfTlVNQkVSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmlu
ZGV4IDJkNDAyNzk5ODEwZTU5OGQyNDQ5OTAwMjg1ZGQ4ZTVkYmFiY2UyNmMuLmYzOTAyYzdiZTM0
Y2EwMjZhOGE0NmE2ODI3MmFhMWU1YjhlYmI0M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlLmNwcApAQCAtMTA3LDYgKzEwNyw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c1ZhbGlkQ1NTVW5pdFR5cGVGb3JEb3VibGVDb252ZXJzaW9uKENTU1ByaW1pdGl2ZVZhbHVlOjpV
bml0CiAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQQ006CiAjZW5kaWYKICAgICBj
YXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQ6CisgICAgY2FzZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1BST1BFUlRZX0lEOgorICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19W
QUxVRV9JRDoKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEFJUjoKICAgICBjYXNl
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEFSU0VSX0hFWENPTE9SOgogICAgIGNhc2UgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19QQVJTRVJfSURFTlRJRklFUjoKQEAgLTE4Miw2ICsxODQsOSBAQCBz
dGF0aWMgQ1NTVGV4dENhY2hlJiBjc3NUZXh0Q2FjaGUoKQogCiB1bnNpZ25lZCBzaG9ydCBDU1NQ
cmltaXRpdmVWYWx1ZTo6cHJpbWl0aXZlVHlwZSgpIGNvbnN0IAogeworICAgIGlmIChtX3ByaW1p
dGl2ZVVuaXRUeXBlID09IENTU19QUk9QRVJUWV9JRCB8fCBtX3ByaW1pdGl2ZVVuaXRUeXBlID09
IENTU19WQUxVRV9JRCkKKyAgICAgICAgcmV0dXJuIENTU19JREVOVDsKKwogICAgIGlmIChtX3By
aW1pdGl2ZVVuaXRUeXBlICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfQ0FMQykKICAgICAgICAg
cmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGU7IAogICAgIApAQCAtMjA2LDMwICsyMTEsNTEgQEAg
dW5zaWduZWQgc2hvcnQgQ1NTUHJpbWl0aXZlVmFsdWU6OnByaW1pdGl2ZVR5cGUoKSBjb25zdAog
ICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VOS05PV047CiB9CiAKLXN0YXRpYyBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlT3JQcm9wZXJ0eU5hbWUoaW50IHZhbHVlT3JQcm9wZXJ0
eUlEKQorc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlOYW1lKENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJRCkKIHsKLSAgICBBU1NFUlRfQVJHKHZhbHVlT3JQcm9wZXJ0eUlELCB2YWx1
ZU9yUHJvcGVydHlJRCA+PSAwKTsKLSAgICBBU1NFUlRfQVJHKHZhbHVlT3JQcm9wZXJ0eUlELCB2
YWx1ZU9yUHJvcGVydHlJRCA8IG51bUNTU1ZhbHVlS2V5d29yZHMgfHwgKHZhbHVlT3JQcm9wZXJ0
eUlEID49IGZpcnN0Q1NTUHJvcGVydHkgJiYgdmFsdWVPclByb3BlcnR5SUQgPCBmaXJzdENTU1By
b3BlcnR5ICsgbnVtQ1NTUHJvcGVydGllcykpOworICAgIEFTU0VSVF9BUkcocHJvcGVydHlJRCwg
cHJvcGVydHlJRCA+PSAwKTsKKyAgICBBU1NFUlRfQVJHKHByb3BlcnR5SUQsIChwcm9wZXJ0eUlE
ID49IGZpcnN0Q1NTUHJvcGVydHkgJiYgcHJvcGVydHlJRCA8IGZpcnN0Q1NTUHJvcGVydHkgKyBu
dW1DU1NQcm9wZXJ0aWVzKSk7CiAKLSAgICBpZiAodmFsdWVPclByb3BlcnR5SUQgPCAwKQorICAg
IGlmIChwcm9wZXJ0eUlEIDwgMCkKICAgICAgICAgcmV0dXJuIG51bGxBdG9tOwogCi0gICAgaWYg
KHZhbHVlT3JQcm9wZXJ0eUlEIDwgbnVtQ1NTVmFsdWVLZXl3b3JkcykgewotICAgICAgICBzdGF0
aWMgQXRvbWljU3RyaW5nKiBrZXl3b3JkU3RyaW5ncyA9IG5ldyBBdG9taWNTdHJpbmdbbnVtQ1NT
VmFsdWVLZXl3b3Jkc107IC8vIExlYWtlZCBpbnRlbnRpb25hbGx5LgotICAgICAgICBBdG9taWNT
dHJpbmcmIGtleXdvcmRTdHJpbmcgPSBrZXl3b3JkU3RyaW5nc1t2YWx1ZU9yUHJvcGVydHlJRF07
Ci0gICAgICAgIGlmIChrZXl3b3JkU3RyaW5nLmlzTnVsbCgpKQotICAgICAgICAgICAga2V5d29y
ZFN0cmluZyA9IGdldFZhbHVlTmFtZSh2YWx1ZU9yUHJvcGVydHlJRCk7Ci0gICAgICAgIHJldHVy
biBrZXl3b3JkU3RyaW5nOwotICAgIH0KKyAgICByZXR1cm4gZ2V0UHJvcGVydHlOYW1lQXRvbWlj
U3RyaW5nKHByb3BlcnR5SUQpOworfQorCitzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZU5hbWUoQ1NTVmFsdWVJRCB2YWx1ZUlEKQoreworICAgIEFTU0VSVF9BUkcodmFsdWVJRCwgdmFs
dWVJRCA+PSAwKTsKKyAgICBBU1NFUlRfQVJHKHZhbHVlSUQsIHZhbHVlSUQgPCBudW1DU1NWYWx1
ZUtleXdvcmRzKTsKIAotICAgIHJldHVybiBnZXRQcm9wZXJ0eU5hbWVBdG9taWNTdHJpbmcoc3Rh
dGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4odmFsdWVPclByb3BlcnR5SUQpKTsKKyAgICBpZiAodmFs
dWVJRCA8IDApCisgICAgICAgIHJldHVybiBudWxsQXRvbTsKKworICAgIHN0YXRpYyBBdG9taWNT
dHJpbmcqIGtleXdvcmRTdHJpbmdzID0gbmV3IEF0b21pY1N0cmluZ1tudW1DU1NWYWx1ZUtleXdv
cmRzXTsgLy8gTGVha2VkIGludGVudGlvbmFsbHkuCisgICAgQXRvbWljU3RyaW5nJiBrZXl3b3Jk
U3RyaW5nID0ga2V5d29yZFN0cmluZ3NbdmFsdWVJRF07CisgICAgaWYgKGtleXdvcmRTdHJpbmcu
aXNOdWxsKCkpCisgICAgICAgIGtleXdvcmRTdHJpbmcgPSBnZXRWYWx1ZU5hbWUodmFsdWVJRCk7
CisgICAgcmV0dXJuIGtleXdvcmRTdHJpbmc7CiB9CiAKLUNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShpbnQgaWRlbnQpCitDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoQ1NTVmFsdWVJRCB2YWx1ZUlEKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3Mp
CiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKLSAgICBtX3ZhbHVlLmlk
ZW50ID0gaWRlbnQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSB2YWx1ZUlEOworfQorCitDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQorICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCit7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19QUk9QRVJU
WV9JRDsKKyAgICBtX3ZhbHVlLnByb3BlcnR5SUQgPSBwcm9wZXJ0eUlEOworfQorCitDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoaW50IHBhcnNlck9wZXJhdG9yKQorICAgIDog
Q1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19QQVJTRVJfT1BFUkFUT1I7CisgICAgbV92YWx1ZS5wYXJzZXJPcGVyYXRvciA9IHBhcnNlck9w
ZXJhdG9yOwogfQogCiBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoZG91Ymxl
IG51bSwgVW5pdFR5cGVzIHR5cGUpCkBAIC0yNjEsMzYgKzI4NywzNiBAQCBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoY29uc3QgTGVuZ3RoJiBsZW5ndGgpCiB7CiAgICAgc3dp
dGNoIChsZW5ndGgudHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQXV0bzoKLSAgICAgICAgICAgIG1f
cHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVBdXRvOworICAgICAgICAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19W
QUxVRV9JRDsKKyAgICAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYkNvcmU6OkZpeGVkOgogICAgICAgICAg
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19QWDsKICAgICAgICAgICAgIG1fdmFsdWUubnVt
ID0gbGVuZ3RoLnZhbHVlKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbnRy
aW5zaWM6Ci0gICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSW50cmluc2ljOworICAgICAgICAgICAg
bV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAgICAgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlSW50cmluc2ljOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgTWluSW50cmluc2ljOgotICAgICAgICAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19JREVOVDsKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1pbkludHJpbnNp
YzsKKyAgICAgICAgICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CisgICAg
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1pbkludHJpbnNpYzsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIE1pbkNvbnRlbnQ6Ci0gICAgICAgICAgICBtX3ByaW1p
dGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlV2Via2l0TWluQ29udGVudDsKKyAgICAgICAgICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfVkFMVUVfSUQ7CisgICAgICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdl
YmtpdE1pbkNvbnRlbnQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBNYXhDb250
ZW50OgotICAgICAgICAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdE1heENvbnRlbnQ7CisgICAgICAg
ICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOworICAgICAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRNYXhDb250ZW50OwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgRmlsbEF2YWlsYWJsZToKLSAgICAgICAgICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfSURFTlQ7Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVXZWJraXRGaWxsQXZhaWxhYmxlOworICAgICAgICAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9
IENTU19WQUxVRV9JRDsKKyAgICAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Vi
a2l0RmlsbEF2YWlsYWJsZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEZpdENv
bnRlbnQ6Ci0gICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0Rml0Q29udGVudDsKKyAgICAg
ICAgICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CisgICAgICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdEZpdENvbnRlbnQ7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBQZXJjZW50OgogICAgICAgICAgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19QRVJDRU5UQUdFOwpAQCAtNDU0LDYgKzQ4MCw4IEBAIHZvaWQgQ1NTUHJpbWl0
aXZlVmFsdWU6OmNsZWFudXAoKQogICAgIGNhc2UgQ1NTX1VOSUNPREVfUkFOR0U6CiAgICAgY2Fz
ZSBDU1NfUEFSU0VSX09QRVJBVE9SOgogICAgIGNhc2UgQ1NTX1BBUlNFUl9JREVOVElGSUVSOgor
ICAgIGNhc2UgQ1NTX1BST1BFUlRZX0lEOgorICAgIGNhc2UgQ1NTX1ZBTFVFX0lEOgogICAgICAg
ICBicmVhazsKICAgICB9CiAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IDA7CkBAIC03NjksOCAr
Nzk3LDEwIEBAIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0U3RyaW5nVmFsdWUoRXhjZXB0
aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAgIGNhc2UgQ1NTX1ZBUklBQkxFX05BTUU6CiAjZW5k
aWYKICAgICAgICAgICAgIHJldHVybiBtX3ZhbHVlLnN0cmluZzsKLSAgICAgICAgY2FzZSBDU1Nf
SURFTlQ6Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWVPclByb3BlcnR5TmFtZShtX3ZhbHVlLmlk
ZW50KTsKKyAgICAgICAgY2FzZSBDU1NfVkFMVUVfSUQ6CisgICAgICAgICAgICByZXR1cm4gdmFs
dWVOYW1lKG1fdmFsdWUudmFsdWVJRCk7CisgICAgICAgIGNhc2UgQ1NTX1BST1BFUlRZX0lEOgor
ICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5TmFtZShtX3ZhbHVlLnByb3BlcnR5SUQpOwogICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAg
ICAgICAgICBicmVhazsKQEAgLTc4OSw4ICs4MTksMTAgQEAgU3RyaW5nIENTU1ByaW1pdGl2ZVZh
bHVlOjpnZXRTdHJpbmdWYWx1ZSgpIGNvbnN0CiAgICAgICAgIGNhc2UgQ1NTX1ZBUklBQkxFX05B
TUU6CiAjZW5kaWYKICAgICAgICAgICAgIHJldHVybiBtX3ZhbHVlLnN0cmluZzsKLSAgICAgICAg
Y2FzZSBDU1NfSURFTlQ6Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWVPclByb3BlcnR5TmFtZSht
X3ZhbHVlLmlkZW50KTsKKyAgICAgICAgY2FzZSBDU1NfVkFMVUVfSUQ6CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWVOYW1lKG1fdmFsdWUudmFsdWVJRCk7CisgICAgICAgIGNhc2UgQ1NTX1BST1BF
UlRZX0lEOgorICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5TmFtZShtX3ZhbHVlLnByb3BlcnR5
SUQpOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtOTcw
LDggKzEwMDIsMTEgQEAgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpjdXN0b21Dc3NUZXh0KCkg
Y29uc3QKICAgICAgICAgY2FzZSBDU1NfVVJJOgogICAgICAgICAgICAgdGV4dCA9ICJ1cmwoIiAr
IHF1b3RlQ1NTVVJMSWZOZWVkZWQobV92YWx1ZS5zdHJpbmcpICsgIikiOwogICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTX0lERU5UOgotICAgICAgICAgICAgdGV4dCA9IHZhbHVl
T3JQcm9wZXJ0eU5hbWUobV92YWx1ZS5pZGVudCk7CisgICAgICAgIGNhc2UgQ1NTX1ZBTFVFX0lE
OgorICAgICAgICAgICAgdGV4dCA9IHZhbHVlTmFtZShtX3ZhbHVlLnZhbHVlSUQpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTX1BST1BFUlRZX0lEOgorICAgICAgICAgICAg
dGV4dCA9IHByb3BlcnR5TmFtZShtX3ZhbHVlLnByb3BlcnR5SUQpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQ1NTX0FUVFI6IHsKICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIg
cmVzdWx0OwpAQCAtMTA2NiwxMyArMTEwMSwxMyBAQCBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6
OmN1c3RvbUNzc1RleHQoKSBjb25zdAogICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
TGl0ZXJhbCgiIHJlY3RhbmdsZSIpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgaWYgKHJlZ2lvbi0+dG9wKCktPm1fcHJp
bWl0aXZlVW5pdFR5cGUgPT0gQ1NTX0lERU5UICYmIHJlZ2lvbi0+dG9wKCktPmdldElkZW50KCkg
PT0gQ1NTVmFsdWVJbnZhbGlkKSB7Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpb24t
PnJpZ2h0KCktPm1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX0lERU5UKTsKLSAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKHJlZ2lvbi0+Ym90dG9tKCktPm1fcHJpbWl0aXZlVW5pdFR5cGUgPT0g
Q1NTX0lERU5UKTsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lvbi0+bGVmdCgpLT5t
X3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19JREVOVCk7Ci0gICAgICAgICAgICAgICAgICAgIEFT
U0VSVChyZWdpb24tPnJpZ2h0KCktPmdldElkZW50KCkgPT0gQ1NTVmFsdWVJbnZhbGlkKTsKLSAg
ICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lvbi0+Ym90dG9tKCktPmdldElkZW50KCkgPT0g
Q1NTVmFsdWVJbnZhbGlkKTsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lvbi0+bGVm
dCgpLT5nZXRJZGVudCgpID09IENTU1ZhbHVlSW52YWxpZCk7CisgICAgICAgICAgICAgICAgaWYg
KHJlZ2lvbi0+dG9wKCktPm1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX1ZBTFVFX0lEICYmIHJl
Z2lvbi0+dG9wKCktPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUludmFsaWQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgQVNTRVJUKHJlZ2lvbi0+cmlnaHQoKS0+bV9wcmltaXRpdmVVbml0VHlwZSA9
PSBDU1NfVkFMVUVfSUQpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5ib3R0
b20oKS0+bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfVkFMVUVfSUQpOworICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQocmVnaW9uLT5sZWZ0KCktPm1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NT
X1ZBTFVFX0lEKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lvbi0+cmlnaHQoKS0+
Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlSW52YWxpZCk7CisgICAgICAgICAgICAgICAgICAgIEFT
U0VSVChyZWdpb24tPmJvdHRvbSgpLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVJbnZhbGlkKTsK
KyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lvbi0+bGVmdCgpLT5nZXRWYWx1ZUlEKCkg
PT0gQ1NTVmFsdWVJbnZhbGlkKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQocmVnaW9uLT50b3AoKS0+Y3NzVGV4dCgpKTsKQEAgLTEwOTAsNyArMTEyNSw3IEBA
IFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiAgICAgICAg
IH0KICNlbmRpZgogICAgICAgICBjYXNlIENTU19QQVJTRVJfT1BFUkFUT1I6IHsKLSAgICAgICAg
ICAgIGNoYXIgYyA9IHN0YXRpY19jYXN0PGNoYXI+KG1fdmFsdWUuaWRlbnQpOworICAgICAgICAg
ICAgY2hhciBjID0gc3RhdGljX2Nhc3Q8Y2hhcj4obV92YWx1ZS5wYXJzZXJPcGVyYXRvcik7CiAg
ICAgICAgICAgICB0ZXh0ID0gU3RyaW5nKCZjLCAxVSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQpAQCAtMTI2MSw4ICsxMjk2LDExIEBAIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IENTU1ByaW1pdGl2ZVZhbHVlOjpjbG9uZUZvckNTU09NKCkgY29uc3QKICNlbmRpZgogICAg
ICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKG1fdmFsdWUubnVtLCBzdGF0
aWNfY2FzdDxVbml0VHlwZXM+KG1fcHJpbWl0aXZlVW5pdFR5cGUpKTsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBDU1NfSURFTlQ6Ci0gICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVl
OjpjcmVhdGVJZGVudGlmaWVyKG1fdmFsdWUuaWRlbnQpOworICAgIGNhc2UgQ1NTX1BST1BFUlRZ
X0lEOgorICAgICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmll
cihtX3ZhbHVlLnByb3BlcnR5SUQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU19WQUxV
RV9JRDoKKyAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZp
ZXIobV92YWx1ZS52YWx1ZUlEKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NfUkdCQ09M
T1I6CiAgICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVDb2xvcihtX3Zh
bHVlLnJnYmNvbG9yKTsKQEAgLTEzMTksOCArMTM1NywxMCBAQCBib29sIENTU1ByaW1pdGl2ZVZh
bHVlOjplcXVhbHMoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmIG90aGVyKSBjb25zdAogICAgIGNh
c2UgQ1NTX1ZNSU46CiAgICAgY2FzZSBDU1NfRElNRU5TSU9OOgogICAgICAgICByZXR1cm4gbV92
YWx1ZS5udW0gPT0gb3RoZXIubV92YWx1ZS5udW07Ci0gICAgY2FzZSBDU1NfSURFTlQ6Ci0gICAg
ICAgIHJldHVybiB2YWx1ZU9yUHJvcGVydHlOYW1lKG1fdmFsdWUuaWRlbnQpID09IHZhbHVlT3JQ
cm9wZXJ0eU5hbWUob3RoZXIubV92YWx1ZS5pZGVudCk7CisgICAgY2FzZSBDU1NfUFJPUEVSVFlf
SUQ6CisgICAgICAgIHJldHVybiBwcm9wZXJ0eU5hbWUobV92YWx1ZS5wcm9wZXJ0eUlEKSA9PSBw
cm9wZXJ0eU5hbWUob3RoZXIubV92YWx1ZS5wcm9wZXJ0eUlEKTsKKyAgICBjYXNlIENTU19WQUxV
RV9JRDoKKyAgICAgICAgcmV0dXJuIHZhbHVlTmFtZShtX3ZhbHVlLnZhbHVlSUQpID09IHZhbHVl
TmFtZShvdGhlci5tX3ZhbHVlLnZhbHVlSUQpOwogICAgIGNhc2UgQ1NTX1NUUklORzoKICAgICBj
YXNlIENTU19VUkk6CiAgICAgY2FzZSBDU1NfQVRUUjoKQEAgLTEzNDksNyArMTM4OSw3IEBAIGJv
b2wgQ1NTUHJpbWl0aXZlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYgb3Ro
ZXIpIGNvbnN0CiAgICAgfQogI2VuZGlmCiAgICAgY2FzZSBDU1NfUEFSU0VSX09QRVJBVE9SOgot
ICAgICAgICByZXR1cm4gbV92YWx1ZS5pZGVudCA9PSBvdGhlci5tX3ZhbHVlLmlkZW50OworICAg
ICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZUlEID09IG90aGVyLm1fdmFsdWUudmFsdWVJRDsKICAg
ICBjYXNlIENTU19DQUxDOgogICAgICAgICByZXR1cm4gbV92YWx1ZS5jYWxjICYmIG90aGVyLm1f
dmFsdWUuY2FsYyAmJiBtX3ZhbHVlLmNhbGMtPmVxdWFscygqb3RoZXIubV92YWx1ZS5jYWxjKTsK
ICAgICBjYXNlIENTU19TSEFQRToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgK
aW5kZXggMzcyYzFiM2Y0NjgwODFmNTZjN2Q0ZWE4MTQzNzQzNzM3MmI4NjU1OS4uMjhhZTRlODgy
MzAwMDFhZjE1OWNhYmZkYzI0ODM0ZWEyMGE3NTAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlLmgKQEAgLTIyLDcgKzIyLDkgQEAKICNpZm5kZWYgQ1NTUHJpbWl0aXZlVmFs
dWVfaAogI2RlZmluZSBDU1NQcmltaXRpdmVWYWx1ZV9oCiAKKyNpbmNsdWRlICJDU1NQcm9wZXJ0
eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CkBAIC0xMzQsNiArMTM2LDggQEAgcHVibGljOgogI2lm
IEVOQUJMRShDU1NfVkFSSUFCTEVTKQogICAgICAgICBDU1NfVkFSSUFCTEVfTkFNRSA9IDExNiwK
ICNlbmRpZgorICAgICAgICBDU1NfUFJPUEVSVFlfSUQgPSAxMTcsCisgICAgICAgIENTU19WQUxV
RV9JRCA9IDExOAogICAgIH07CiAKICAgICAvLyBUaGlzIGVudW0gZm9sbG93cyB0aGUgQ1NTUGFy
c2VyOjpVbml0cyBlbnVtIGF1Z21lbnRlZCB3aXRoIFVOSVRfRlJFUVVFTkNZIGZvciBmcmVxdWVu
Y2llcy4KQEAgLTE2OCw3ICsxNzIsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICB8fCBtX3ByaW1p
dGl2ZVVuaXRUeXBlID09IENTU19SRU1TCiAgICAgICAgICAgICB8fCBtX3ByaW1pdGl2ZVVuaXRU
eXBlID09IENTU19DSFM7CiAgICAgfQotICAgIGJvb2wgaXNJZGVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX0lERU5UOyB9CiAgICAgYm9vbCBpc0xlbmd0aCgp
IGNvbnN0CiAgICAgewogICAgICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlID0gcHJpbWl0aXZlVHlw
ZSgpOwpAQCAtMTk5LDggKzIwMiwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1ZhcmlhYmxlTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfVkFSSUFCTEVfTkFNRTsg
fQogI2VuZGlmCiAgICAgYm9vbCBpc1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUgPj0gQ1NTX1ZXICYmIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPD0gQ1NTX1ZNQVg7IH0KKyAgICBib29sIGlzVmFsdWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX1ZBTFVFX0lEOyB9CisgICAgCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVJRCB2
YWx1ZUlEKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTUHJpbWl0aXZlVmFsdWUodmFsdWVJRCkp
OyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50
aWZpZXIoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NT
UHJpbWl0aXZlVmFsdWUocHJvcGVydHlJRCkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+IGNyZWF0ZVBhcnNlck9wZXJhdG9yKGludCBwYXJzZXJPcGVyYXRvcikg
eyByZXR1cm4gYWRvcHRSZWYobmV3IENTU1ByaW1pdGl2ZVZhbHVlKHBhcnNlck9wZXJhdG9yKSk7
IH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVu
dGlmaWVyKGludCBpZGVudGlmaWVyKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTUHJpbWl0aXZl
VmFsdWUoaWRlbnRpZmllcikpOyB9CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IGNyZWF0ZUNvbG9yKHVuc2lnbmVkIHJnYlZhbHVlKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgQ1NTUHJpbWl0aXZlVmFsdWUocmdiVmFsdWUpKTsgfQogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGUoZG91YmxlIHZhbHVlLCBVbml0VHlwZXMgdHlwZSkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IENTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlLCB0eXBlKSk7IH0K
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlKGNvbnN0IFN0
cmluZyYgdmFsdWUsIFVuaXRUeXBlcyB0eXBlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTUHJp
bWl0aXZlVmFsdWUodmFsdWUsIHR5cGUpKTsgfQpAQCAtMzA2LDcgKzMxMyw4IEBAIHB1YmxpYzoK
ICAgICAKICAgICBDU1NDYWxjVmFsdWUqIGNzc0NhbGNWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJpbWl0aXZlVW5pdFR5cGUgIT0gQ1NTX0NBTEMgPyAwIDogbV92YWx1ZS5jYWxjOyB9CiAKLSAg
ICBpbnQgZ2V0SWRlbnQoKSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBlID09IENT
U19JREVOVCA/IG1fdmFsdWUuaWRlbnQgOiAwOyB9CisgICAgQ1NTUHJvcGVydHlJRCBnZXRQcm9w
ZXJ0eUlEKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfUFJPUEVS
VFlfSUQgPyBtX3ZhbHVlLnByb3BlcnR5SUQgOiBDU1NQcm9wZXJ0eUludmFsaWQ7IH0KKyAgICBD
U1NWYWx1ZUlEIGdldFZhbHVlSUQoKSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID09IENTU19WQUxVRV9JRCA/IG1fdmFsdWUudmFsdWVJRCA6IENTU1ZhbHVlSW52YWxpZDsgfQog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIG9wZXJhdG9yIFQoKSBjb25zdDsgLy8g
RGVmaW5lZCBpbiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKIApAQCAtMzI4LDggKzMzNiwx
MCBAQCBwdWJsaWM6CiAgICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmKSBj
b25zdDsKIAogcHJpdmF0ZToKLSAgICAvLyBGSVhNRTogaW50IHZzLiB1bnNpZ25lZCBvdmVybG9h
ZGluZyBpcyB0b28gc3VidGxlIHRvIGRpc3Rpbmd1aXNoIHRoZSBjb2xvciBhbmQgaWRlbnRpZmll
ciBjYXNlcy4KLSAgICBDU1NQcmltaXRpdmVWYWx1ZShpbnQgaWRlbnQpOworICAgIENTU1ByaW1p
dGl2ZVZhbHVlKENTU1ZhbHVlSUQpOworICAgIENTU1ByaW1pdGl2ZVZhbHVlKENTU1Byb3BlcnR5
SUQpOworICAgIC8vIEZJWE1FOiBpbnQgdnMuIHVuc2lnbmVkIG92ZXJsb2FkaW5nIGlzIHRvbyBz
dWJ0bGUgdG8gZGlzdGluZ3Vpc2ggdGhlIGNvbG9yIGFuZCBvcGVyYXRvciBjYXNlcy4KKyAgICBD
U1NQcmltaXRpdmVWYWx1ZShpbnQgcGFyc2VyT3BlcmF0b3IpOwogICAgIENTU1ByaW1pdGl2ZVZh
bHVlKHVuc2lnbmVkIGNvbG9yKTsgLy8gUkdCIHZhbHVlCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUo
Y29uc3QgTGVuZ3RoJik7CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoY29uc3QgU3RyaW5nJiwgVW5p
dFR5cGVzKTsKQEAgLTM2Niw3ICszNzYsOSBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBjb21wdXRl
TGVuZ3RoRG91YmxlKGNvbnN0IFJlbmRlclN0eWxlKiBjdXJyZW50U3R5bGUsIGNvbnN0IFJlbmRl
clN0eWxlKiByb290U3R5bGUsIGZsb2F0IG11bHRpcGxpZXIsIGJvb2wgY29tcHV0aW5nRm9udFNp
emUpIGNvbnN0OwogCiAgICAgdW5pb24gewotICAgICAgICBpbnQgaWRlbnQ7CisgICAgICAgIENT
U1Byb3BlcnR5SUQgcHJvcGVydHlJRDsKKyAgICAgICAgQ1NTVmFsdWVJRCB2YWx1ZUlEOworICAg
ICAgICBpbnQgcGFyc2VyT3BlcmF0b3I7CiAgICAgICAgIGRvdWJsZSBudW07CiAgICAgICAgIFN0
cmluZ0ltcGwqIHN0cmluZzsKICAgICAgICAgQ291bnRlciogY291bnRlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IDI4ODJhODNjYmRi
NDZmZjJiMzFjMjQ2ZmZiMjZjZDNjZGZkOTYzOGUuLmIzMzE1MDRkNzIwM2U5MTI3YjJkYWQ0ODcy
MmU2NTdhYWExMzE5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlTWFwcGluZ3MuaApAQCAtMTQ1LDI1ICsxNDUsMjUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVDbGFtcFZhbHVlKCkgY29uc3QKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDU1NSZWZsZWN0
aW9uRGlyZWN0aW9uIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBSZWZsZWN0aW9uQWJv
dmU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFib3ZlOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFib3ZlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJl
ZmxlY3Rpb25CZWxvdzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQmVsb3c7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmVsb3c7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgUmVmbGVjdGlvbkxlZnQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUxlZnQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGVmdDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBSZWZsZWN0aW9uUmlnaHQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVJpZ2h0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZ2h0
OwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIENTU1JlZmxlY3Rpb25EaXJlY3Rpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1
ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZUFib3ZlOgogICAgICAgICByZXR1cm4gUmVmbGVjdGlvbkFib3ZlOwogICAgIGNhc2UgQ1NT
VmFsdWVCZWxvdzoKQEAgLTE3Miw2ICsxNzIsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ1NTUmVmbGVjdGlvbkRpcmVjdGlvbigpIGNvbnN0CiAgICAg
ICAgIHJldHVybiBSZWZsZWN0aW9uTGVmdDsKICAgICBjYXNlIENTU1ZhbHVlUmlnaHQ6CiAgICAg
ICAgIHJldHVybiBSZWZsZWN0aW9uUmlnaHQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xODEsMTMgKzE4MywxMyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ1NTUmVmbGVj
dGlvbkRpcmVjdGlvbigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29sdW1uU3BhbiBjb2x1bW5TcGFuKQogICAgIDogQ1NTVmFs
dWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVO
VDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAo
Y29sdW1uU3BhbikgewogICAgIGNhc2UgQ29sdW1uU3BhbkFsbDoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlQWxsOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFs
bDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2x1bW5TcGFuTm9uZToKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVOb25lOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xOTgsMTEgKzIwMCwxMyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uU3Bh
bigpIGNvbnN0CiAgICAgaWYgKG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX05VTUJFUiAmJiBt
X3ZhbHVlLm51bSA9PSAxKQogICAgICAgICByZXR1cm4gQ29sdW1uU3Bhbk5vbmU7CiAKLSAgICBz
d2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewog
ICAgIGNhc2UgQ1NTVmFsdWVBbGw6CiAgICAgICAgIHJldHVybiBDb2x1bW5TcGFuQWxsOwogICAg
IGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gQ29sdW1uU3Bhbk5vbmU7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkBAIC0yMTMsMjQgKzIxNywyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgQ29sdW1uU3BhbigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoUHJpbnRDb2xvckFkanVzdCB2YWx1ZSkK
ICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsK
ICAgICBzd2l0Y2ggKHZhbHVlKSB7CiAgICAgY2FzZSBQcmludENvbG9yQWRqdXN0RXhhY3Q6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV4YWN0OworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUV4YWN0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFByaW50Q29s
b3JBZGp1c3RFY29ub215OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFY29ub215
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVjb25vbXk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFByaW50Q29sb3JBZGp1c3QoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5p
ZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1
ZUVjb25vbXk6CiAgICAgICAgIHJldHVybiBQcmludENvbG9yQWRqdXN0RWNvbm9teTsKICAgICBj
YXNlIENTU1ZhbHVlRXhhY3Q6CiAgICAgICAgIHJldHVybiBQcmludENvbG9yQWRqdXN0RXhhY3Q7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkBAIC0yNDEsNTEgKzI0Nyw1MSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgUHJpbnRDb2xvckFkanVzdCgpIGNvbnN0CiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJvcmRlclN0eWxl
IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVu
aXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVf
SUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgQk5PTkU6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgQkhJRERFTjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhpZGRl
bjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIElOU0VUOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSW5zZXQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBHUk9PVkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVHcm9v
dmU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSSURHRToKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJpZGdlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgT1VUU0VUOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3V0
c2V0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRE9UVEVEOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRG90dGVkOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgREFTSEVEOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
RGFzaGVkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU09MSUQ6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTb2xpZDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIERPVUJMRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZURvdWJsZTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQk5PTkU6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBC
SElEREVOOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpZGRlbjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBJTlNFVDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVJbnNldDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHUk9PVkU6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlR3Jvb3ZlOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFJJREdFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZGdlOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE9VVFNFVDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVPdXRzZXQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9UVEVEOgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURvdHRlZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBEQVNIRUQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGFzaGVkOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNPTElEOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVNvbGlkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPVUJMRToKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEb3VibGU7CisgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3Jk
ZXJTdHlsZSgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fdmFsdWUuaWRlbnQgPT0gQ1NTVmFsdWVBdXRv
KSAvLyBWYWxpZCBmb3IgQ1NTIG91dGxpbmUtc3R5bGUKKyAgICBpZiAobV92YWx1ZS52YWx1ZUlE
ID09IENTU1ZhbHVlQXV0bykgLy8gVmFsaWQgZm9yIENTUyBvdXRsaW5lLXN0eWxlCiAgICAgICAg
IHJldHVybiBET1RURUQ7Ci0gICAgcmV0dXJuIChFQm9yZGVyU3R5bGUpKG1fdmFsdWUuaWRlbnQg
LSBDU1NWYWx1ZU5vbmUpOworICAgIHJldHVybiAoRUJvcmRlclN0eWxlKShtX3ZhbHVlLnZhbHVl
SUQgLSBDU1NWYWx1ZU5vbmUpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgT3V0bGluZUlzQXV0bygpIGNvbnN0CiB7Ci0gICAgaWYgKG1fdmFsdWUu
aWRlbnQgPT0gQ1NTVmFsdWVBdXRvKQorICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFs
dWVBdXRvKQogICAgICAgICByZXR1cm4gQVVUT19PTjsKICAgICByZXR1cm4gQVVUT19PRkY7CiB9
CkBAIC0yOTMsODIgKzI5OSw4NCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgT3V0bGluZUlzQXV0bygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29tcG9zaXRlT3BlcmF0b3IgZSkKICAg
ICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAg
ICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVDbGVhcjoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNsZWFyOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgQ29tcG9zaXRlQ29weToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUNvcHk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVTb3Vy
Y2VPdmVyOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU291cmNlT3ZlcjsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUluOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU291cmNlSW47Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVTb3VyY2VPdXQ6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVTb3VyY2VPdXQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBDb21wb3NpdGVTb3VyY2VBdG9wOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlU291cmNlQXRvcDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENv
bXBvc2l0ZURlc3RpbmF0aW9uT3ZlcjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZURlc3RpbmF0aW9uT3ZlcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENv
bXBvc2l0ZURlc3RpbmF0aW9uSW46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVEZXN0aW5hdGlvbkluOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9z
aXRlRGVzdGluYXRpb25PdXQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVE
ZXN0aW5hdGlvbk91dDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0
ZURlc3RpbmF0aW9uQXRvcDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURl
c3RpbmF0aW9uQXRvcDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0
ZVhPUjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVhvcjsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVBsdXNEYXJrZXI6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVQbHVzRGFya2VyOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlUGx1c0xpZ2h0ZXI6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVQbHVzTGlnaHRlcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIENvbXBvc2l0ZURpZmZlcmVuY2U6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9zaXRlQ2xlYXI6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2xlYXI7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ29tcG9zaXRlQ29weToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVD
b3B5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU92ZXI6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU291cmNlT3ZlcjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBDb21wb3NpdGVTb3VyY2VJbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTb3VyY2VJbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVTb3Vy
Y2VPdXQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU291cmNlT3V0OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUF0b3A6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlU291cmNlQXRvcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDb21wb3NpdGVEZXN0aW5hdGlvbk92ZXI6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlRGVzdGluYXRpb25PdmVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0
ZURlc3RpbmF0aW9uSW46CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVzdGlu
YXRpb25JbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbk91
dDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZXN0aW5hdGlvbk91dDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbkF0b3A6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVzdGluYXRpb25BdG9wOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENvbXBvc2l0ZVhPUjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVYb3I7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9zaXRlUGx1c0RhcmtlcjoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQbHVzRGFya2VyOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENvbXBvc2l0ZVBsdXNMaWdodGVyOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVBsdXNMaWdodGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENv
bXBvc2l0ZURpZmZlcmVuY2U6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBDb21wb3NpdGVPcGVyYXRvcigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3Zh
bHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVDbGVhcjoKLSAgICAgICAgICAgIHJl
dHVybiBDb21wb3NpdGVDbGVhcjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUNvcHk6Ci0gICAgICAg
ICAgICByZXR1cm4gQ29tcG9zaXRlQ29weTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVNvdXJjZU92
ZXI6Ci0gICAgICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlT3ZlcjsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZVNvdXJjZUluOgotICAgICAgICAgICAgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZUlu
OwotICAgICAgICBjYXNlIENTU1ZhbHVlU291cmNlT3V0OgotICAgICAgICAgICAgcmV0dXJuIENv
bXBvc2l0ZVNvdXJjZU91dDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVNvdXJjZUF0b3A6Ci0gICAg
ICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlQXRvcDsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZURlc3RpbmF0aW9uT3ZlcjoKLSAgICAgICAgICAgIHJldHVybiBDb21wb3NpdGVEZXN0aW5hdGlv
bk92ZXI7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVEZXN0aW5hdGlvbkluOgotICAgICAgICAgICAg
cmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0aW9uSW47Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVEZXN0
aW5hdGlvbk91dDoKLSAgICAgICAgICAgIHJldHVybiBDb21wb3NpdGVEZXN0aW5hdGlvbk91dDsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZURlc3RpbmF0aW9uQXRvcDoKLSAgICAgICAgICAgIHJldHVy
biBDb21wb3NpdGVEZXN0aW5hdGlvbkF0b3A7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVYb3I6Ci0g
ICAgICAgICAgICByZXR1cm4gQ29tcG9zaXRlWE9SOwotICAgICAgICBjYXNlIENTU1ZhbHVlUGx1
c0RhcmtlcjoKLSAgICAgICAgICAgIHJldHVybiBDb21wb3NpdGVQbHVzRGFya2VyOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlUGx1c0xpZ2h0ZXI6Ci0gICAgICAgICAgICByZXR1cm4gQ29tcG9zaXRl
UGx1c0xpZ2h0ZXI7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENT
U1ZhbHVlQ2xlYXI6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVDbGVhcjsKKyAgICBjYXNlIENT
U1ZhbHVlQ29weToKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUNvcHk7CisgICAgY2FzZSBDU1NW
YWx1ZVNvdXJjZU92ZXI6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVTb3VyY2VPdmVyOworICAg
IGNhc2UgQ1NTVmFsdWVTb3VyY2VJbjoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZUlu
OworICAgIGNhc2UgQ1NTVmFsdWVTb3VyY2VPdXQ6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVT
b3VyY2VPdXQ7CisgICAgY2FzZSBDU1NWYWx1ZVNvdXJjZUF0b3A6CisgICAgICAgIHJldHVybiBD
b21wb3NpdGVTb3VyY2VBdG9wOworICAgIGNhc2UgQ1NTVmFsdWVEZXN0aW5hdGlvbk92ZXI6Cisg
ICAgICAgIHJldHVybiBDb21wb3NpdGVEZXN0aW5hdGlvbk92ZXI7CisgICAgY2FzZSBDU1NWYWx1
ZURlc3RpbmF0aW9uSW46CisgICAgICAgIHJldHVybiBDb21wb3NpdGVEZXN0aW5hdGlvbkluOwor
ICAgIGNhc2UgQ1NTVmFsdWVEZXN0aW5hdGlvbk91dDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0
ZURlc3RpbmF0aW9uT3V0OworICAgIGNhc2UgQ1NTVmFsdWVEZXN0aW5hdGlvbkF0b3A6CisgICAg
ICAgIHJldHVybiBDb21wb3NpdGVEZXN0aW5hdGlvbkF0b3A7CisgICAgY2FzZSBDU1NWYWx1ZVhv
cjoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZVhPUjsKKyAgICBjYXNlIENTU1ZhbHVlUGx1c0Rh
cmtlcjoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZVBsdXNEYXJrZXI7CisgICAgY2FzZSBDU1NW
YWx1ZVBsdXNMaWdodGVyOgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlUGx1c0xpZ2h0ZXI7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0zNzgsMjIzICszODYsMjI0IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBDb21wb3NpdGVPcGVyYXRvcigpIGNvbnN0CiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQg
ZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9J
RDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBOb0NvbnRyb2xQYXJ0OgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENoZWNrYm94UGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUNoZWNrYm94OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmFkaW9Q
YXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmFkaW87Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQdXNoQnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVB1c2hCdXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBTcXVhcmVCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlU3F1YXJlQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
QnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJ1dHRvbjsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEJ1dHRvbkJldmVsUGFydDoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJ1dHRvbkJldmVsOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgRGVmYXVsdEJ1dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVEZWZhdWx0QnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgSW5uZXJTcGluQnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUlubmVyU3BpbkJ1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIExpc3Rib3hQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
TGlzdGJveDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExpc3RJdGVtUGFydDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxpc3RpdGVtOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFFbnRlckZ1bGxzY3JlZW5CdXR0b25QYXJ0Ogot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFFbnRlckZ1bGxzY3JlZW5C
dXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYUV4aXRGdWxsc2Ny
ZWVuQnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlh
RXhpdEZ1bGxzY3JlZW5CdXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBN
ZWRpYVBsYXlCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
TWVkaWFQbGF5QnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFP
dmVybGF5UGxheUJ1dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVNZWRpYU92ZXJsYXlQbGF5QnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgTWVkaWFNdXRlQnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZU1lZGlhTXV0ZUJ1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1l
ZGlhU2Vla0JhY2tCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTWVkaWFTZWVrQmFja0J1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IE1lZGlhU2Vla0ZvcndhcmRCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTWVkaWFTZWVrRm9yd2FyZEJ1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIE1lZGlhUmV3aW5kQnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZU1lZGlhUmV3aW5kQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgTWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvbjsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFUb2dnbGVD
bG9zZWRDYXB0aW9uc0J1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1l
ZGlhU2xpZGVyUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlh
U2xpZGVyOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFTbGlkZXJUaHVt
YlBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVNsaWRlcnRo
dW1iOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJD
b250YWluZXJQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFW
b2x1bWVTbGlkZXJDb250YWluZXI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBN
ZWRpYVZvbHVtZVNsaWRlclBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVNZWRpYVZvbHVtZVNsaWRlcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1l
ZGlhVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0b247Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVydGh1bWI7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYUNvbnRyb2xzQmFja2dyb3VuZFBhcnQ6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYUNvbnRyb2xzQmFja2dyb3Vu
ZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhQ29udHJvbHNGdWxsc2Ny
ZWVuQmFja2dyb3VuZFBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVN
ZWRpYUNvbnRyb2xzRnVsbHNjcmVlbkJhY2tncm91bmQ7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJQYXJ0OgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFGdWxsc2NyZWVuVm9sdW1lU2xpZGVyOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVy
VGh1bWJQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFGdWxs
c2NyZWVuVm9sdW1lU2xpZGVyVGh1bWI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBNZWRpYUN1cnJlbnRUaW1lUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZU1lZGlhQ3VycmVudFRpbWVEaXNwbGF5OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgTWVkaWFUaW1lUmVtYWluaW5nUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZU1lZGlhVGltZVJlbWFpbmluZ0Rpc3BsYXk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBNZW51bGlzdFBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVNZW51bGlzdDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lbnVs
aXN0QnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lbnVs
aXN0QnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVudWxpc3RUZXh0
UGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lbnVsaXN0VGV4dDsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lbnVsaXN0VGV4dEZpZWxkUGFydDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lbnVsaXN0VGV4dGZpZWxkOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWV0ZXJQYXJ0OgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWV0ZXI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBSZWxldmFuY3lMZXZlbEluZGljYXRvclBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVSZWxldmFuY3lMZXZlbEluZGljYXRvcjsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIENvbnRpbnVvdXNDYXBhY2l0eUxldmVsSW5kaWNhdG9yUGFydDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbnRpbnVvdXNDYXBhY2l0eUxl
dmVsSW5kaWNhdG9yOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRGlzY3JldGVD
YXBhY2l0eUxldmVsSW5kaWNhdG9yUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZURpc2NyZXRlQ2FwYWNpdHlMZXZlbEluZGljYXRvcjsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFJhdGluZ0xldmVsSW5kaWNhdG9yUGFydDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJhdGluZ0xldmVsSW5kaWNhdG9yOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgorICAgIGNhc2UgTm9Db250cm9s
UGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENoZWNrYm94UGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVDaGVja2JveDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSYWRpb1BhcnQ6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmFkaW87CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUHVzaEJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlUHVzaEJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcXVhcmVCdXR0b25QYXJ0
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNxdWFyZUJ1dHRvbjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCdXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCdXR0b25CZXZlbFBh
cnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQnV0dG9uQmV2ZWw7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRGVmYXVsdEJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlRGVmYXVsdEJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBJbm5lclNwaW5CdXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUlubmVyU3BpbkJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaXN0Ym94UGFydDoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMaXN0Ym94OworICAgICAgICBicmVh
azsKKyAgICBjYXNlIExpc3RJdGVtUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVMaXN0aXRlbTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYUVudGVyRnVsbHNj
cmVlbkJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFF
bnRlckZ1bGxzY3JlZW5CdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFFeGl0
RnVsbHNjcmVlbkJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRp
YVBsYXlCdXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlh
UGxheUJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYU92ZXJsYXlQbGF5QnV0
dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYU92ZXJsYXlQ
bGF5QnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhTXV0ZUJ1dHRvblBhcnQ6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFNdXRlQnV0dG9uOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhU2Vla0JhY2tCdXR0b25QYXJ0OgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhU2Vla0JhY2tCdXR0b247CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTWVkaWFTZWVrRm9yd2FyZEJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFTZWVrRm9yd2FyZEJ1dHRvbjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBNZWRpYVJld2luZEJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTWVkaWFSZXdpbmRCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b247CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvblBhcnQ6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
bjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVNsaWRlclBhcnQ6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFTbGlkZXI7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTWVkaWFTbGlkZXJ0aHVtYjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVZv
bHVtZVNsaWRlckNvbnRhaW5lclBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
TWVkaWFWb2x1bWVTbGlkZXJQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU1lZGlhVm9sdW1lU2xpZGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhVm9sdW1l
U2xpZGVyTXV0ZUJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TWVkaWFWb2x1bWVTbGlkZXJNdXRlQnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1l
ZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZU1lZGlhVm9sdW1lU2xpZGVydGh1bWI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVk
aWFDb250cm9sc0JhY2tncm91bmRQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZU1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1l
ZGlhQ29udHJvbHNGdWxsc2NyZWVuQmFja2dyb3VuZFBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTWVkaWFDb250cm9sc0Z1bGxzY3JlZW5CYWNrZ3JvdW5kOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFGdWxsc2NyZWVuVm9sdW1lU2xpZGVy
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclRo
dW1iUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUZ1bGxzY3Jl
ZW5Wb2x1bWVTbGlkZXJUaHVtYjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYUN1cnJl
bnRUaW1lUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUN1cnJl
bnRUaW1lRGlzcGxheTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVRpbWVSZW1haW5p
bmdQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhVGltZVJlbWFp
bmluZ0Rpc3BsYXk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVudWxpc3RQYXJ0OgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lbnVsaXN0OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIE1lbnVsaXN0QnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVNZW51bGlzdEJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZW51bGlz
dFRleHRQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lbnVsaXN0VGV4
dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZW51bGlzdFRleHRGaWVsZFBhcnQ6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVudWxpc3RUZXh0ZmllbGQ7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTWV0ZXJQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU1ldGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbGV2YW5jeUxldmVsSW5k
aWNhdG9yUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZWxldmFuY3lM
ZXZlbEluZGljYXRvcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250aW51b3VzQ2FwYWNp
dHlMZXZlbEluZGljYXRvclBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Q29udGludW91c0NhcGFjaXR5TGV2ZWxJbmRpY2F0b3I7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRGlzY3JldGVDYXBhY2l0eUxldmVsSW5kaWNhdG9yUGFydDoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVEaXNjcmV0ZUNhcGFjaXR5TGV2ZWxJbmRpY2F0b3I7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUmF0aW5nTGV2ZWxJbmRpY2F0b3JQYXJ0OgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJhdGluZ0xldmVsSW5kaWNhdG9yOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFByb2dyZXNzQmFyUGFydDoKICNpZiBFTkFCTEUoUFJPR1JFU1NfRUxFTUVO
VCkKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVByb2dyZXNzQmFyOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVByb2dyZXNzQmFyOwogI2VuZGlmCi0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQcm9ncmVzc0JhclZhbHVlUGFydDoKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBQcm9ncmVzc0JhclZhbHVlUGFydDoKICNpZiBFTkFCTEUoUFJP
R1JFU1NfRUxFTUVOVCkKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVByb2dy
ZXNzQmFyVmFsdWU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJvZ3Jlc3NC
YXJWYWx1ZTsKICNlbmRpZgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2xpZGVy
SG9yaXpvbnRhbFBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTbGlk
ZXJIb3Jpem9udGFsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2xpZGVyVmVy
dGljYWxQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2xpZGVyVmVy
dGljYWw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTbGlkZXJUaHVtYkhvcml6
b250YWxQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2xpZGVydGh1
bWJIb3Jpem9udGFsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2xpZGVyVGh1
bWJWZXJ0aWNhbFBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTbGlk
ZXJ0aHVtYlZlcnRpY2FsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ2FyZXRQ
YXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2FyZXQ7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZWFyY2hGaWVsZFBhcnQ6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTZWFyY2hmaWVsZDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFNlYXJjaEZpZWxkRGVjb3JhdGlvblBhcnQ6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVTZWFyY2hmaWVsZERlY29yYXRpb247Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uUGFydDoKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNlYXJjaGZpZWxkUmVzdWx0c0RlY29y
YXRpb247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZWFyY2hGaWVsZFJlc3Vs
dHNCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2VhcmNo
ZmllbGRSZXN1bHRzQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2Vh
cmNoRmllbGRDYW5jZWxCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlU2VhcmNoZmllbGRDYW5jZWxCdXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXlQYXJ0OgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlU25hcHNob3R0ZWRQbHVnaW5PdmVybGF5OwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgVGV4dEZpZWxkUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZVRleHRmaWVsZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFRleHRBcmVhUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRl
eHRhcmVhOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ2Fwc0xvY2tJbmRpY2F0
b3JQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2Fwc0xvY2tJbmRp
Y2F0b3I7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBJbnB1dFNwZWVjaEJ1dHRv
blBhcnQ6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2xpZGVySG9yaXpvbnRhbDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTbGlkZXJWZXJ0aWNhbFBhcnQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU2xpZGVyVmVydGljYWw7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTbGlkZXJ0aHVtYkhvcml6b250YWw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlU2xpZGVydGh1bWJWZXJ0aWNhbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDYXJldFBh
cnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2FyZXQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU2VhcmNoRmllbGRQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVNlYXJjaGZpZWxkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlYXJjaEZp
ZWxkRGVjb3JhdGlvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2Vh
cmNoZmllbGREZWNvcmF0aW9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlYXJjaEZpZWxk
UmVzdWx0c0RlY29yYXRpb25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVNlYXJjaGZpZWxkUmVzdWx0c0RlY29yYXRpb247CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTZWFyY2hmaWVsZFJlc3VsdHNCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVNlYXJjaGZpZWxkQ2FuY2VsQnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFNuYXBzaG90dGVkUGx1Z2luT3ZlcmxheVBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU25hcHNob3R0ZWRQbHVnaW5PdmVybGF5OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFRleHRGaWVsZFBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
VGV4dGZpZWxkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRleHRBcmVhUGFydDoKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0YXJlYTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDYXBzTG9ja0luZGljYXRvclBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQ2Fwc0xvY2tJbmRpY2F0b3I7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5w
dXRTcGVlY2hCdXR0b25QYXJ0OgogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCi0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRJbnB1dFNwZWVjaEJ1dHRvbjsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRJbnB1dFNwZWVjaEJ1dHRvbjsKICNl
bmRpZgotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbnRyb2xQYXJ0KCkg
Y29uc3QKIHsKLSAgICBpZiAobV92YWx1ZS5pZGVudCA9PSBDU1NWYWx1ZU5vbmUpCisgICAgaWYg
KG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAgIHJldHVybiBOb0NvbnRy
b2xQYXJ0OwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIENvbnRyb2xQYXJ0KG1fdmFsdWUuaWRl
bnQgLSBDU1NWYWx1ZUNoZWNrYm94ICsgMSk7CisgICAgcmV0dXJuIENvbnRyb2xQYXJ0KG1fdmFs
dWUudmFsdWVJRCAtIENTU1ZhbHVlQ2hlY2tib3ggKyAxKTsKIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCYWNrZmFjZVZpc2liaWxp
dHkgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxV
RV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJhY2tmYWNlVmlzaWJpbGl0eVZpc2li
bGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVZpc2libGU7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmlzaWJsZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBCYWNrZmFjZVZpc2liaWxpdHlIaWRkZW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUhpZGRlbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIaWRkZW47CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVCYWNrZmFjZVZpc2liaWxpdHkoKSBjb25zdAogewotICAgIHN3aXRj
aCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZVZpc2libGU6CiAgICAgICAgIHJldHVybiBCYWNrZmFjZVZpc2liaWxpdHlW
aXNpYmxlOwogICAgIGNhc2UgQ1NTVmFsdWVIaWRkZW46CiAgICAgICAgIHJldHVybiBCYWNrZmFj
ZVZpc2liaWxpdHlIaWRkZW47CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02MDUsMjkgKzYxNCwzMSBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJhY2tmYWNlVmlzaWJpbGl0
eSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoRUZpbGxBdHRhY2htZW50IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFz
cykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0
aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNh
c2UgU2Nyb2xsQmFja2dyb3VuZEF0dGFjaG1lbnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVTY3JvbGw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBMb2Nh
bEJhY2tncm91bmRBdHRhY2htZW50OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTG9jYWw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBGaXhlZEJhY2tncm91
bmRBdHRhY2htZW50OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRml4ZWQ7
Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIFNjcm9sbEJhY2tncm91bmRBdHRhY2htZW50
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNjcm9sbDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBMb2NhbEJhY2tncm91bmRBdHRhY2htZW50OgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUxvY2FsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZpeGVk
QmFja2dyb3VuZEF0dGFjaG1lbnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Rml4ZWQ7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGaWxsQXR0YWNobWVudCgpIGNvbnN0CiB7Ci0gICAg
c3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTY3JvbGw6Ci0g
ICAgICAgICAgICByZXR1cm4gU2Nyb2xsQmFja2dyb3VuZEF0dGFjaG1lbnQ7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVMb2NhbDoKLSAgICAgICAgICAgIHJldHVybiBMb2NhbEJhY2tncm91bmRBdHRh
Y2htZW50OwotICAgICAgICBjYXNlIENTU1ZhbHVlRml4ZWQ6Ci0gICAgICAgICAgICByZXR1cm4g
Rml4ZWRCYWNrZ3JvdW5kQXR0YWNobWVudDsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIGNhc2UgQ1NTVmFsdWVTY3JvbGw6CisgICAgICAgIHJldHVybiBTY3JvbGxCYWNrZ3Jv
dW5kQXR0YWNobWVudDsKKyAgICBjYXNlIENTU1ZhbHVlTG9jYWw6CisgICAgICAgIHJldHVybiBM
b2NhbEJhY2tncm91bmRBdHRhY2htZW50OworICAgIGNhc2UgQ1NTVmFsdWVGaXhlZDoKKyAgICAg
ICAgcmV0dXJuIEZpeGVkQmFja2dyb3VuZEF0dGFjaG1lbnQ7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02MzcsMzgg
KzY0OCw0MCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
RUZpbGxBdHRhY2htZW50KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFRmlsbEJveCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAg
ICAgICBjYXNlIEJvcmRlckZpbGxCb3g6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVCb3JkZXJCb3g7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQYWRkaW5n
RmlsbEJveDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVBhZGRpbmdCb3g7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb250ZW50RmlsbEJveDoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbnRlbnRCb3g7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBUZXh0RmlsbEJveDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZVRleHQ7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIEJvcmRlckZp
bGxCb3g6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm9yZGVyQm94OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBhZGRpbmdGaWxsQm94OgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVBhZGRpbmdCb3g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29u
dGVudEZpbGxCb3g6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29udGVudEJv
eDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUZXh0RmlsbEJveDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0OworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmlsbEJveCgpIGNv
bnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFs
dWVCb3JkZXI6Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVCb3JkZXJCb3g6Ci0gICAgICAgICAgICBy
ZXR1cm4gQm9yZGVyRmlsbEJveDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVBhZGRpbmc6Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVQYWRkaW5nQm94OgotICAgICAgICAgICAgcmV0dXJuIFBhZGRpbmdG
aWxsQm94OwotICAgICAgICBjYXNlIENTU1ZhbHVlQ29udGVudDoKLSAgICAgICAgY2FzZSBDU1NW
YWx1ZUNvbnRlbnRCb3g6Ci0gICAgICAgICAgICByZXR1cm4gQ29udGVudEZpbGxCb3g7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVUZXh0OgotICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0VGV4dDoK
LSAgICAgICAgICAgIHJldHVybiBUZXh0RmlsbEJveDsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVCb3JkZXI6CisgICAgY2FzZSBDU1NWYWx1ZUJvcmRl
ckJveDoKKyAgICAgICAgcmV0dXJuIEJvcmRlckZpbGxCb3g7CisgICAgY2FzZSBDU1NWYWx1ZVBh
ZGRpbmc6CisgICAgY2FzZSBDU1NWYWx1ZVBhZGRpbmdCb3g6CisgICAgICAgIHJldHVybiBQYWRk
aW5nRmlsbEJveDsKKyAgICBjYXNlIENTU1ZhbHVlQ29udGVudDoKKyAgICBjYXNlIENTU1ZhbHVl
Q29udGVudEJveDoKKyAgICAgICAgcmV0dXJuIENvbnRlbnRGaWxsQm94OworICAgIGNhc2UgQ1NT
VmFsdWVUZXh0OgorICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRUZXh0OgorICAgICAgICByZXR1cm4g
VGV4dEZpbGxCb3g7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02NzgsMzQgKzY5MSwzNiBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZpbGxCb3goKSBjb25zdAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVGaWxsUmVw
ZWF0IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2
ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFM
VUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgUmVwZWF0RmlsbDoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJlcGVhdDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIE5vUmVwZWF0RmlsbDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZU5vUmVwZWF0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUm91
bmRGaWxsOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUm91bmQ7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTcGFjZUZpbGw6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVTcGFjZTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UmVwZWF0RmlsbDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZXBlYXQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTm9SZXBlYXRGaWxsOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vUmVwZWF0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJvdW5k
RmlsbDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3VuZDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBTcGFjZUZpbGw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlU3BhY2U7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGaWxsUmVwZWF0KCkgY29uc3QKIHsKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVJlcGVhdDoK
LSAgICAgICAgICAgIHJldHVybiBSZXBlYXRGaWxsOwotICAgICAgICBjYXNlIENTU1ZhbHVlTm9S
ZXBlYXQ6Ci0gICAgICAgICAgICByZXR1cm4gTm9SZXBlYXRGaWxsOwotICAgICAgICBjYXNlIENT
U1ZhbHVlUm91bmQ6Ci0gICAgICAgICAgICByZXR1cm4gUm91bmRGaWxsOwotICAgICAgICBjYXNl
IENTU1ZhbHVlU3BhY2U6Ci0gICAgICAgICAgICByZXR1cm4gU3BhY2VGaWxsOworICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVJlcGVhdDoKKyAgICAgICAg
cmV0dXJuIFJlcGVhdEZpbGw7CisgICAgY2FzZSBDU1NWYWx1ZU5vUmVwZWF0OgorICAgICAgICBy
ZXR1cm4gTm9SZXBlYXRGaWxsOworICAgIGNhc2UgQ1NTVmFsdWVSb3VuZDoKKyAgICAgICAgcmV0
dXJuIFJvdW5kRmlsbDsKKyAgICBjYXNlIENTU1ZhbHVlU3BhY2U6CisgICAgICAgIHJldHVybiBT
cGFjZUZpbGw7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CkBAIC03MTUsMjYgKzczMCwyNiBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZpbGxSZXBlYXQoKSBjb25zdAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCb3hQYWNr
IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVu
aXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVf
SUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBTdGFydDoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlU3RhcnQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
U3RhcnQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2VudGVyOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ2VudGVyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEVuZDoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlRW5kOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUVuZDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBKdXN0aWZ5OgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVKdXN0aWZ5OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUp1c3RpZnk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hQYWNrKCkgY29uc3QKIHsKLSAgICBz
d2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewog
ICAgIGNhc2UgQ1NTVmFsdWVTdGFydDoKICAgICAgICAgcmV0dXJuIFN0YXJ0OwogICAgIGNhc2Ug
Q1NTVmFsdWVFbmQ6CkBAIC03NDMsNiArNzU4LDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hQYWNrKCkgY29uc3QKICAgICAgICAgcmV0dXJuIENl
bnRlcjsKICAgICBjYXNlIENTU1ZhbHVlSnVzdGlmeToKICAgICAgICAgcmV0dXJuIEp1c3RpZnk7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkBAIC03NTIsMzkgKzc2OSw0MSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveFBhY2soKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCb3hBbGlnbm1lbnQgZSkKICAg
ICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAg
ICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBCU1RSRVRDSDoKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVN0cmV0Y2g7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBCU1RBUlQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTdGFydDsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEJDRU5URVI6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDZW50ZXI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBCRU5EOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRW5kOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQkJBU0VMSU5FOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQmFzZWxpbmU7Ci0gICAgICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEJTVFJFVENIOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0cmV0
Y2g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQlNUQVJUOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVN0YXJ0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJDRU5URVI6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudGVyOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEJFTkQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5k
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJCQVNFTElORToKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVCYXNlbGluZTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveEFsaWdubWVu
dCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVTdHJldGNoOgotICAgICAgICAgICAgcmV0dXJuIEJTVFJFVENIOwotICAgICAgICBj
YXNlIENTU1ZhbHVlU3RhcnQ6Ci0gICAgICAgICAgICByZXR1cm4gQlNUQVJUOwotICAgICAgICBj
YXNlIENTU1ZhbHVlRW5kOgotICAgICAgICAgICAgcmV0dXJuIEJFTkQ7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVDZW50ZXI6Ci0gICAgICAgICAgICByZXR1cm4gQkNFTlRFUjsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUJhc2VsaW5lOgotICAgICAgICAgICAgcmV0dXJuIEJCQVNFTElORTsKKyAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVTdHJldGNoOgorICAg
ICAgICByZXR1cm4gQlNUUkVUQ0g7CisgICAgY2FzZSBDU1NWYWx1ZVN0YXJ0OgorICAgICAgICBy
ZXR1cm4gQlNUQVJUOworICAgIGNhc2UgQ1NTVmFsdWVFbmQ6CisgICAgICAgIHJldHVybiBCRU5E
OworICAgIGNhc2UgQ1NTVmFsdWVDZW50ZXI6CisgICAgICAgIHJldHVybiBCQ0VOVEVSOworICAg
IGNhc2UgQ1NTVmFsdWVCYXNlbGluZToKKyAgICAgICAgcmV0dXJuIEJCQVNFTElORTsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTc5NSwyNCArODE0LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBFQm94QWxpZ25tZW50KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQm94RGVjb3JhdGlvbkJyZWFrIGUp
CiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7
CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBEU0xJQ0U6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZVNsaWNlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNs
aWNlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERDTE9ORToKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlQ2xvbmU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Q2xvbmU7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hEZWNvcmF0aW9uQnJlYWsoKSBjb25zdAogewot
ICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNsaWNlOgogICAgICAgICByZXR1cm4gRFNMSUNFOwogICAg
IGNhc2UgQ1NTVmFsdWVDbG9uZToKICAgICAgICAgcmV0dXJuIERDTE9ORTsKKyAgICBkZWZhdWx0
OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTgyMywyNiArODQ0LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFQm94RGVjb3JhdGlvbkJyZWFrKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCYWNrZ3JvdW5kRWRnZU9yaWdpbiBl
KQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lE
OwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVG9wRWRnZToKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlVG9wOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRv
cDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSaWdodEVkZ2U6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZVJpZ2h0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVJpZ2h0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJvdHRvbUVkZ2U6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJvdHRvbTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVCb3R0b207CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGVmdEVkZ2U6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTGVmdDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQmFja2dyb3VuZEVkZ2VPcmlnaW4o
KSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVRvcDoKICAgICAgICAgcmV0dXJuIFRv
cEVkZ2U7CiAgICAgY2FzZSBDU1NWYWx1ZVJpZ2h0OgpAQCAtODUxLDYgKzg3Miw4IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCYWNrZ3JvdW5kRWRnZU9y
aWdpbigpIGNvbnN0CiAgICAgICAgIHJldHVybiBCb3R0b21FZGdlOwogICAgIGNhc2UgQ1NTVmFs
dWVMZWZ0OgogICAgICAgICByZXR1cm4gTGVmdEVkZ2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04NjAsMjQgKzg4
MywyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQmFj
a2dyb3VuZEVkZ2VPcmlnaW4oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCb3hTaXppbmcgZSkKICAgICA6IENTU1ZhbHVlKFBy
aW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Cisg
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIEJPUkRFUl9CT1g6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJv
cmRlckJveDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXJCb3g7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ09OVEVOVF9CT1g6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUNvbnRlbnRCb3g7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ29udGVudEJveDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveFNpemluZygpIGNvbnN0CiB7Ci0g
ICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQp
IHsKICAgICBjYXNlIENTU1ZhbHVlQm9yZGVyQm94OgogICAgICAgICByZXR1cm4gQk9SREVSX0JP
WDsKICAgICBjYXNlIENTU1ZhbHVlQ29udGVudEJveDoKICAgICAgICAgcmV0dXJuIENPTlRFTlRf
Qk9YOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpAQCAtODg3LDI0ICs5MTIsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hTaXppbmcoKSBjb25zdAogdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCb3hEaXJlY3Rpb24g
ZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9J
RDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBCTk9STUFMOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9ybWFsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgQlJFVkVSU0U6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVS
ZXZlcnNlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCTk9STUFMOgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBCUkVWRVJTRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZXZlcnNlOwor
ICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBFQm94RGlyZWN0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1f
dmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKLSAgICAgICAgICAg
IHJldHVybiBCTk9STUFMOwotICAgICAgICBjYXNlIENTU1ZhbHVlUmV2ZXJzZToKLSAgICAgICAg
ICAgIHJldHVybiBCUkVWRVJTRTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAg
IGNhc2UgQ1NTVmFsdWVOb3JtYWw6CisgICAgICAgIHJldHVybiBCTk9STUFMOworICAgIGNhc2Ug
Q1NTVmFsdWVSZXZlcnNlOgorICAgICAgICByZXR1cm4gQlJFVkVSU0U7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC05
MTQsMjQgKzk0MSwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRUJveERpcmVjdGlvbigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJveExpbmVzIGUpCiAgICAgOiBDU1NWYWx1ZShQ
cmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwor
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7
Ci0gICAgICAgIGNhc2UgU0lOR0xFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlU2luZ2xlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTVVMVElQTEU6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNdWx0aXBsZTsKLSAgICAgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU0lOR0xFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVNpbmdsZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNVUxUSVBMRToKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNdWx0aXBsZTsKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJv
eExpbmVzKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZVNpbmdsZToKLSAgICAgICAgICAgIHJldHVybiBTSU5HTEU7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVNdWx0aXBsZToKLSAgICAgICAgICAgIHJldHVybiBNVUxUSVBMRTsKKyAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVTaW5nbGU6Cisg
ICAgICAgIHJldHVybiBTSU5HTEU7CisgICAgY2FzZSBDU1NWYWx1ZU11bHRpcGxlOgorICAgICAg
ICByZXR1cm4gTVVMVElQTEU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC05NDEsMjYgKzk3MCwyOCBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveExpbmVzKCkgY29uc3QK
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShF
Qm94T3JpZW50IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBD
U1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgSE9SSVpPTlRBTDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhvcml6b250YWw7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBWRVJUSUNBTDoKLSAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZVZlcnRpY2FsOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBI
T1JJWk9OVEFMOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhvcml6b250YWw7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVkVSVElDQUw6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlVmVydGljYWw7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hPcmllbnQoKSBj
b25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1Zh
bHVlSG9yaXpvbnRhbDoKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUlubGluZUF4aXM6Ci0gICAgICAg
ICAgICByZXR1cm4gSE9SSVpPTlRBTDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVZlcnRpY2FsOgot
ICAgICAgICBjYXNlIENTU1ZhbHVlQmxvY2tBeGlzOgotICAgICAgICAgICAgcmV0dXJuIFZFUlRJ
Q0FMOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUhv
cml6b250YWw6CisgICAgY2FzZSBDU1NWYWx1ZUlubGluZUF4aXM6CisgICAgICAgIHJldHVybiBI
T1JJWk9OVEFMOworICAgIGNhc2UgQ1NTVmFsdWVWZXJ0aWNhbDoKKyAgICBjYXNlIENTU1ZhbHVl
QmxvY2tBeGlzOgorICAgICAgICByZXR1cm4gVkVSVElDQUw7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC05NzAsMzQg
KzEwMDEsMzYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVCb3hPcmllbnQoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEVDYXB0aW9uU2lkZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAg
ICAgICBjYXNlIENBUExFRlQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVM
ZWZ0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ0FQUklHSFQ6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSaWdodDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENBUFRPUDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVRvcDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENBUEJPVFRPTToKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJvdHRvbTsKLSAgICAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ0FQTEVGVDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVM
ZWZ0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENBUFJJR0hUOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVJpZ2h0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENBUFRP
UDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUb3A7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ0FQQk9UVE9NOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUJvdHRvbTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUNhcHRpb25TaWRlKCkgY29uc3QKIHsKLSAgICBz
d2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6Ci0gICAg
ICAgICAgICByZXR1cm4gQ0FQTEVGVDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVJpZ2h0OgotICAg
ICAgICAgICAgcmV0dXJuIENBUFJJR0hUOwotICAgICAgICBjYXNlIENTU1ZhbHVlVG9wOgotICAg
ICAgICAgICAgcmV0dXJuIENBUFRPUDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJvdHRvbToKLSAg
ICAgICAgICAgIHJldHVybiBDQVBCT1RUT007CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQp
IHsKKyAgICBjYXNlIENTU1ZhbHVlTGVmdDoKKyAgICAgICAgcmV0dXJuIENBUExFRlQ7CisgICAg
Y2FzZSBDU1NWYWx1ZVJpZ2h0OgorICAgICAgICByZXR1cm4gQ0FQUklHSFQ7CisgICAgY2FzZSBD
U1NWYWx1ZVRvcDoKKyAgICAgICAgcmV0dXJuIENBUFRPUDsKKyAgICBjYXNlIENTU1ZhbHVlQm90
dG9tOgorICAgICAgICByZXR1cm4gQ0FQQk9UVE9NOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTAwNywzNCArMTA0
MCwzNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUNh
cHRpb25TaWRlKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShFQ2xlYXIgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNz
KQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2Fz
ZSBDTk9ORToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDTEVGVDoKLSAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUxlZnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBD
UklHSFQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSaWdodDsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENCT1RIOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlQm90aDsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ05PTkU6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBDTEVGVDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENSSUdIVDoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVSaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDQk9USDoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3RoOworICAgICAgICBicmVhazsKICAg
ICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBF
Q2xlYXIoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBj
YXNlIENTU1ZhbHVlTm9uZToKLSAgICAgICAgICAgIHJldHVybiBDTk9ORTsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUxlZnQ6Ci0gICAgICAgICAgICByZXR1cm4gQ0xFRlQ7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVSaWdodDoKLSAgICAgICAgICAgIHJldHVybiBDUklHSFQ7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVCb3RoOgotICAgICAgICAgICAgcmV0dXJuIENCT1RIOworICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAgICAgIHJldHVybiBD
Tk9ORTsKKyAgICBjYXNlIENTU1ZhbHVlTGVmdDoKKyAgICAgICAgcmV0dXJuIENMRUZUOworICAg
IGNhc2UgQ1NTVmFsdWVSaWdodDoKKyAgICAgICAgcmV0dXJuIENSSUdIVDsKKyAgICBjYXNlIENT
U1ZhbHVlQm90aDoKKyAgICAgICAgcmV0dXJuIENCT1RIOworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTA0NCwxMjYg
KzEwNzksMTI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFQ2xlYXIoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKEVDdXJzb3IgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNz
KQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2Fz
ZSBDVVJTT1JfQVVUTzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfQ1JPU1M6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDcm9zc2hhaXI7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBDVVJTT1JfREVGQVVMVDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZURlZmF1bHQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBD
VVJTT1JfUE9JTlRFUjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVBvaW50
ZXI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfTU9WRToKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1vdmU7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBDVVJTT1JfQ0VMTDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUNlbGw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfVkVS
VElDQUxfVEVYVDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVZlcnRpY2Fs
VGV4dDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9DT05URVhUX01F
TlU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDb250ZXh0TWVudTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9BTElBUzoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFsaWFzOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgQ1VSU09SX0NPUFk6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVDb3B5OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX05PTkU6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX1BST0dSRVNTOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlUHJvZ3Jlc3M7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDVVJTT1JfTk9fRFJPUDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5v
RHJvcDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9OT1RfQUxMT1dF
RDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vdEFsbG93ZWQ7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfV0VCS0lUX1pPT01fSU46Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRab29tSW47Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfV0VCS0lUX1pPT01fT1VUOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0Wm9vbU91dDsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9FX1JFU0laRToKLSAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUVSZXNpemU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDVVJTT1JfTkVfUkVTSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
TmVSZXNpemU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfTldfUkVT
SVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTndSZXNpemU7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfTl9SRVNJWkU6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOUmVzaXplOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQ1VSU09SX1NFX1JFU0laRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVNlUmVzaXplOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VS
U09SX1NXX1JFU0laRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN3UmVz
aXplOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX1NfUkVTSVpFOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU1Jlc2l6ZTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9XX1JFU0laRToKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVdSZXNpemU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBDVVJTT1JfRVdfUkVTSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlRXdSZXNpemU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfTlNf
UkVTSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTnNSZXNpemU7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfTkVTV19SRVNJWkU6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOZXN3UmVzaXplOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX05XU0VfUkVTSVpFOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlTndzZVJlc2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENVUlNPUl9DT0xfUkVTSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlQ29sUmVzaXplOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VS
U09SX1JPV19SRVNJWkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSb3dS
ZXNpemU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfVEVYVDoKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRleHQ7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBDVVJTT1JfV0FJVDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVdhaXQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1Jf
SEVMUDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhlbHA7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfQUxMX1NDUk9MTDoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFsbFNjcm9sbDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENVUlNPUl9XRUJLSVRfR1JBQjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZVdlYmtpdEdyYWI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDVVJTT1JfV0VCS0lUX0dSQUJCSU5HOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlV2Via2l0R3JhYmJpbmc7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNP
Ul9BVVRPOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ1VSU09SX0NST1NTOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUNyb3NzaGFpcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfREVG
QVVMVDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZWZhdWx0OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9QT0lOVEVSOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVBvaW50ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX01P
VkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTW92ZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDVVJTT1JfQ0VMTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVDZWxsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9WRVJUSUNBTF9URVhU
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZlcnRpY2FsVGV4dDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfQ09OVEVYVF9NRU5VOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRleHRNZW51OworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENVUlNPUl9BTElBUzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbGlhczsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfQ09QWToKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVDb3B5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9O
T05FOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ1VSU09SX1BST0dSRVNTOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVByb2dyZXNzOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9OT19E
Uk9QOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vRHJvcDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDVVJTT1JfTk9UX0FMTE9XRUQ6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTm90QWxsb3dlZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJT
T1JfV0VCS0lUX1pPT01fSU46CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Vi
a2l0Wm9vbUluOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9XRUJLSVRfWk9PTV9P
VVQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0Wm9vbU91dDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfRV9SRVNJWkU6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlRVJlc2l6ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJT
T1JfTkVfUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5lUmVzaXpl
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9OV19SRVNJWkU6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTndSZXNpemU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1VSU09SX05fUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5S
ZXNpemU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1NFX1JFU0laRToKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZVJlc2l6ZTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDVVJTT1JfU1dfUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVN3UmVzaXplOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9TX1JFU0laRToK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTUmVzaXplOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENVUlNPUl9XX1JFU0laRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVXUmVzaXplOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9FV19SRVNJ
WkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXdSZXNpemU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ1VSU09SX05TX1JFU0laRToKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVOc1Jlc2l6ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1Jf
TkVTV19SRVNJWkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTmVzd1Jlc2l6
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfTldTRV9SRVNJWkU6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTndzZVJlc2l6ZTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDVVJTT1JfQ09MX1JFU0laRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVDb2xSZXNpemU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1JPV19SRVNJ
WkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUm93UmVzaXplOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9URVhUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVRleHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1dBSVQ6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2FpdDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDVVJTT1JfSEVMUDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVI
ZWxwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9BTExfU0NST0xMOgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFsbFNjcm9sbDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDVVJTT1JfV0VCS0lUX0dSQUI6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlV2Via2l0R3JhYjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfV0VCS0lU
X0dSQUJCSU5HOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdEdyYWJi
aW5nOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ3Vyc29yKCkgY29uc3QKIHsKLSAgICBpZiAobV92YWx1
ZS5pZGVudCA9PSBDU1NWYWx1ZUNvcHkpCisgICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NW
YWx1ZUNvcHkpCiAgICAgICAgIHJldHVybiBDVVJTT1JfQ09QWTsKLSAgICBpZiAobV92YWx1ZS5p
ZGVudCA9PSBDU1NWYWx1ZU5vbmUpCisgICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1
ZU5vbmUpCiAgICAgICAgIHJldHVybiBDVVJTT1JfTk9ORTsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8RUN1cnNvcj4obV92YWx1ZS5pZGVudCAtIENTU1ZhbHVlQXV0byk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEVDdXJzb3I+KG1fdmFsdWUudmFsdWVJRCAtIENTU1ZhbHVlQXV0byk7CiB9CiAK
IApAQCAtMTE3MSwyMiArMTIwNiwyMiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgRUN1cnNvcigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ3Vyc29yVmlzaWJpbGl0eSBlKQogICAgIDog
Q1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3
aXRjaCAoZSkgewogICAgIGNhc2UgQ3Vyc29yVmlzaWJpbGl0eUF1dG86Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQXV0bzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JWaXNpYmlsaXR5QXV0b0hp
ZGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG9IaWRlOworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG9IaWRlOwogICAgICAgICBicmVhazsKICAgICB9
CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDdXJz
b3JWaXNpYmlsaXR5KCkgY29uc3QKIHsKLSAgICBpZiAobV92YWx1ZS5pZGVudCA9PSBDU1NWYWx1
ZUF1dG8pCisgICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAg
IHJldHVybiBDdXJzb3JWaXNpYmlsaXR5QXV0bzsKLSAgICBpZiAobV92YWx1ZS5pZGVudCA9PSBD
U1NWYWx1ZUF1dG9IaWRlKQorICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRv
SGlkZSkKICAgICAgICAgcmV0dXJuIEN1cnNvclZpc2liaWxpdHlBdXRvSGlkZTsKIAogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTE5Nyw4NiArMTIzMiw4NiBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ3Vyc29yVmlzaWJpbGl0eSgpIGNvbnN0
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
RURpc3BsYXkgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBJTkxJTkU6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVJbmxpbmU7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBCTE9DSzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUJsb2NrOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTElTVF9JVEVNOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTGlzdEl0ZW07Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBSVU5fSU46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVSdW5JbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENPTVBB
Q1Q6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDb21wYWN0OwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSU5MSU5FX0JMT0NLOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlSW5saW5lQmxvY2s7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBUQUJMRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRh
YmxlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSU5MSU5FX1RBQkxFOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSW5saW5lVGFibGU7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBUQUJMRV9ST1dfR1JPVVA6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVUYWJsZVJvd0dyb3VwOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgVEFCTEVfSEVBREVSX0dST1VQOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlVGFibGVIZWFkZXJHcm91cDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIFRBQkxFX0ZPT1RFUl9HUk9VUDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZVRhYmxlRm9vdGVyR3JvdXA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBUQUJMRV9ST1c6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUYWJsZVJv
dzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRBQkxFX0NPTFVNTl9HUk9VUDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRhYmxlQ29sdW1uR3JvdXA7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUQUJMRV9DT0xVTU46Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUYWJsZUNvbHVtbjsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFRBQkxFX0NFTEw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVUYWJsZUNlbGw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUQUJM
RV9DQVBUSU9OOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGFibGVDYXB0
aW9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQk9YOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0Qm94OwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgSU5MSU5FX0JPWDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZVdlYmtpdElubGluZUJveDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEZM
RVg6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRGbGV4OwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSU5MSU5FX0ZMRVg6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRJbmxpbmVGbGV4OwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgR1JJRDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZVdlYmtpdEdyaWQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBJTkxJTkVf
R1JJRDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdElubGluZUdy
aWQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBOT05FOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNh
c2UgSU5MSU5FOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlubGluZTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBCTE9DSzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVCbG9jazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMSVNUX0lURU06CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGlzdEl0ZW07CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUlVOX0lOOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJ1bklu
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENPTVBBQ1Q6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQ29tcGFjdDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJTkxJTkVf
QkxPQ0s6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5lQmxvY2s7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFCTEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlVGFibGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSU5MSU5FX1RBQkxFOgor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlubGluZVRhYmxlOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFRBQkxFX1JPV19HUk9VUDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVUYWJsZVJvd0dyb3VwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRBQkxF
X0hFQURFUl9HUk9VUDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZUhl
YWRlckdyb3VwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRBQkxFX0ZPT1RFUl9HUk9VUDoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZUZvb3Rlckdyb3VwOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFRBQkxFX1JPVzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVUYWJsZVJvdzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUQUJMRV9DT0xV
TU5fR1JPVVA6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGFibGVDb2x1bW5H
cm91cDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUQUJMRV9DT0xVTU46CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGFibGVDb2x1bW47CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgVEFCTEVfQ0VMTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJs
ZUNlbGw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFCTEVfQ0FQVElPTjoKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZUNhcHRpb247CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQk9YOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdEJv
eDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJTkxJTkVfQk9YOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdElubGluZUJveDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBGTEVYOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdEZsZXg7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSU5MSU5FX0ZMRVg6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0SW5saW5lRmxleDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBHUklEOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdEdyaWQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSU5MSU5FX0dSSUQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0SW5saW5lR3JpZDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBOT05FOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIEVEaXNwbGF5KCkgY29uc3QKIHsKLSAgICBpZiAobV92YWx1ZS5pZGVudCA9
PSBDU1NWYWx1ZU5vbmUpCisgICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUp
CiAgICAgICAgIHJldHVybiBOT05FOwogCi0gICAgRURpc3BsYXkgZGlzcGxheSA9IHN0YXRpY19j
YXN0PEVEaXNwbGF5PihtX3ZhbHVlLmlkZW50IC0gQ1NTVmFsdWVJbmxpbmUpOworICAgIEVEaXNw
bGF5IGRpc3BsYXkgPSBzdGF0aWNfY2FzdDxFRGlzcGxheT4obV92YWx1ZS52YWx1ZUlEIC0gQ1NT
VmFsdWVJbmxpbmUpOwogICAgIEFTU0VSVChkaXNwbGF5ID49IElOTElORSAmJiBkaXNwbGF5IDw9
IE5PTkUpOwogICAgIHJldHVybiBkaXNwbGF5OwogfQpAQCAtMTI4NCwyNCArMTMxOSwyNiBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRURpc3BsYXkoKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEVFbXB0eUNlbGwgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBTSE9XOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2hvdzsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIEhJREU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVIaWRlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTSE9XOgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNob3c7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
SElERToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIaWRlOworICAgICAgICBi
cmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFRW1wdHlDZWxsKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQp
IHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVNob3c6Ci0gICAgICAgICAgICByZXR1cm4gU0hPVzsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZUhpZGU6Ci0gICAgICAgICAgICByZXR1cm4gSElERTsKKyAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVTaG93OgorICAg
ICAgICByZXR1cm4gU0hPVzsKKyAgICBjYXNlIENTU1ZhbHVlSGlkZToKKyAgICAgICAgcmV0dXJu
IEhJREU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC0xMzExLDMyICsxMzQ4LDMyIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRW1wdHlDZWxsKCkgY29uc3QKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQWxpZ25JdGVt
cyBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQWxpZ25BdXRvOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUF1dG87CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25GbGV4U3RhcnQ6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZsZXhTdGFydDsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVGbGV4U3RhcnQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxp
Z25GbGV4RW5kOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGbGV4RW5kOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsZXhFbmQ7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQWxpZ25DZW50ZXI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNl
bnRlcjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50ZXI7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQWxpZ25TdHJldGNoOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVTdHJldGNoOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0cmV0
Y2g7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25CYXNlbGluZToKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlQmFzZWxpbmU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQmFzZWxpbmU7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVBbGlnbkl0ZW1zKCkgY29uc3QK
IHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gQWxpZ25BdXRv
OwogICAgIGNhc2UgQ1NTVmFsdWVGbGV4U3RhcnQ6CkBAIC0xMzQ5LDYgKzEzODYsOCBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWduSXRlbXMoKSBj
b25zdAogICAgICAgICByZXR1cm4gQWxpZ25TdHJldGNoOwogICAgIGNhc2UgQ1NTVmFsdWVCYXNl
bGluZToKICAgICAgICAgcmV0dXJuIEFsaWduQmFzZWxpbmU7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMzU4LDI5
ICsxMzk3LDI5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFQWxpZ25JdGVtcygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUp1c3RpZnlDb250ZW50IGUpCiAgICAgOiBDU1NWYWx1ZShQ
cmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwor
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7
CiAgICAgY2FzZSBKdXN0aWZ5RmxleFN0YXJ0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVGbGV4U3RhcnQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmxleFN0
YXJ0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEp1c3RpZnlGbGV4RW5kOgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGbGV4RW5kOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUZsZXhFbmQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSnVzdGlmeUNlbnRl
cjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2VudGVyOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBK
dXN0aWZ5U3BhY2VCZXR3ZWVuOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcGFj
ZUJldHdlZW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3BhY2VCZXR3ZWVu
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEp1c3RpZnlTcGFjZUFyb3VuZDoKLSAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3BhY2VBcm91bmQ7CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlU3BhY2VBcm91bmQ7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVKdXN0aWZ5Q29u
dGVudCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlRmxleFN0YXJ0OgogICAgICAg
ICByZXR1cm4gSnVzdGlmeUZsZXhTdGFydDsKICAgICBjYXNlIENTU1ZhbHVlRmxleEVuZDoKQEAg
LTEzOTEsNiArMTQzMCw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFSnVzdGlmeUNvbnRlbnQoKSBjb25zdAogICAgICAgICByZXR1cm4gSnVzdGlmeVNw
YWNlQmV0d2VlbjsKICAgICBjYXNlIENTU1ZhbHVlU3BhY2VBcm91bmQ6CiAgICAgICAgIHJldHVy
biBKdXN0aWZ5U3BhY2VBcm91bmQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xNDAwLDI2ICsxNDQxLDI2IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFSnVzdGlmeUNvbnRl
bnQoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKEVGbGV4RGlyZWN0aW9uIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFz
cykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0
aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBG
bG93Um93OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSb3c7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUm93OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZs
b3dSb3dSZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSb3dSZXZlcnNl
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJvd1JldmVyc2U7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRmxvd0NvbHVtbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQ29sdW1uOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbHVtbjsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGbG93Q29sdW1uUmV2ZXJzZToKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sdW1uUmV2ZXJzZTsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVDb2x1bW5SZXZlcnNlOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAK
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxleERpcmVj
dGlvbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlUm93OgogICAgICAgICByZXR1
cm4gRmxvd1JvdzsKICAgICBjYXNlIENTU1ZhbHVlUm93UmV2ZXJzZToKQEAgLTE0MjgsNiArMTQ2
OSw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxl
eERpcmVjdGlvbigpIGNvbnN0CiAgICAgICAgIHJldHVybiBGbG93Q29sdW1uOwogICAgIGNhc2Ug
Q1NTVmFsdWVDb2x1bW5SZXZlcnNlOgogICAgICAgICByZXR1cm4gRmxvd0NvbHVtblJldmVyc2U7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkBAIC0xNDM3LDMyICsxNDgwLDMyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxleERpcmVjdGlvbigpIGNvbnN0CiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUFsaWduQ29udGVu
dCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQWxpZ25Db250ZW50RmxleFN0YXJ0Ogot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGbGV4U3RhcnQ7CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlRmxleFN0YXJ0OwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEFsaWduQ29udGVudEZsZXhFbmQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZs
ZXhFbmQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmxleEVuZDsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkNvbnRlbnRDZW50ZXI6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUNlbnRlcjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVDZW50ZXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25Db250ZW50U3BhY2VCZXR3
ZWVuOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcGFjZUJldHdlZW47CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3BhY2VCZXR3ZWVuOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEFsaWduQ29udGVudFNwYWNlQXJvdW5kOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVTcGFjZUFyb3VuZDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVTcGFjZUFyb3VuZDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkNvbnRlbnRT
dHJldGNoOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTdHJldGNoOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0cmV0Y2g7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVB
bGlnbkNvbnRlbnQoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUZsZXhTdGFydDoK
ICAgICAgICAgcmV0dXJuIEFsaWduQ29udGVudEZsZXhTdGFydDsKICAgICBjYXNlIENTU1ZhbHVl
RmxleEVuZDoKQEAgLTE0NzUsNiArMTUxOCw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFQWxpZ25Db250ZW50KCkgY29uc3QKICAgICAgICAgcmV0dXJu
IEFsaWduQ29udGVudFNwYWNlQXJvdW5kOwogICAgIGNhc2UgQ1NTVmFsdWVTdHJldGNoOgogICAg
ICAgICByZXR1cm4gQWxpZ25Db250ZW50U3RyZXRjaDsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE0ODQsMjkgKzE1
MjksMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVB
bGlnbkNvbnRlbnQoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEVGbGV4V3JhcCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZl
Q2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNh
c2UgRmxleE5vV3JhcDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm93cmFwOwor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vd3JhcDsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBGbGV4V3JhcDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV3Jh
cDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXcmFwOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEZsZXhXcmFwUmV2ZXJzZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlV3JhcFJldmVyc2U7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV3Jh
cFJldmVyc2U7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGbGV4V3JhcCgpIGNvbnN0CiB7Ci0gICAgc3dp
dGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAg
ICBjYXNlIENTU1ZhbHVlTm93cmFwOgogICAgICAgICByZXR1cm4gRmxleE5vV3JhcDsKICAgICBj
YXNlIENTU1ZhbHVlV3JhcDoKICAgICAgICAgcmV0dXJuIEZsZXhXcmFwOwogICAgIGNhc2UgQ1NT
VmFsdWVXcmFwUmV2ZXJzZToKICAgICAgICAgcmV0dXJuIEZsZXhXcmFwUmV2ZXJzZTsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTE1MTYsMzAgKzE1NjMsMzIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVGbGV4V3JhcCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUZsb2F0IGUpCiAgICAgOiBDU1NWYWx1
ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5U
OworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChl
KSB7Ci0gICAgICAgIGNhc2UgTm9GbG9hdDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZU5vbmU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBMZWZ0RmxvYXQ6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMZWZ0OwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgUmlnaHRGbG9hdDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZVJpZ2h0OwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOb0Zsb2F0
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTGVmdEZsb2F0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUxlZnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmlnaHRGbG9hdDoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQog
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZsb2F0KCkg
Y29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NW
YWx1ZUxlZnQ6Ci0gICAgICAgICAgICByZXR1cm4gTGVmdEZsb2F0OwotICAgICAgICBjYXNlIENT
U1ZhbHVlUmlnaHQ6Ci0gICAgICAgICAgICByZXR1cm4gUmlnaHRGbG9hdDsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZU5vbmU6Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVDZW50ZXI6ICAvLyBOb24tc3Rh
bmRhcmQgQ1NTIHZhbHVlCi0gICAgICAgICAgICByZXR1cm4gTm9GbG9hdDsKKyAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVMZWZ0OgorICAgICAgICByZXR1
cm4gTGVmdEZsb2F0OworICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKKyAgICAgICAgcmV0dXJuIFJp
Z2h0RmxvYXQ7CisgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAgY2FzZSBDU1NWYWx1ZUNlbnRl
cjogLy8gTm9uLXN0YW5kYXJkIENTUyB2YWx1ZS4KKyAgICAgICAgcmV0dXJuIE5vRmxvYXQ7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0xNTQ5LDI5ICsxNTk4LDI5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxvYXQoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKExpbmVCcmVhayBlKQogICAgIDogQ1NT
VmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19J
REVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRj
aCAoZSkgewogICAgIGNhc2UgTGluZUJyZWFrQXV0bzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIExpbmVCcmVha0xvb3NlOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVMb29zZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVMb29zZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lQnJlYWtOb3JtYWw6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUJyZWFr
U3RyaWN0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTdHJpY3Q7CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RyaWN0OwogICAgICAgICBicmVhazsKICAgICBj
YXNlIExpbmVCcmVha0FmdGVyV2hpdGVTcGFjZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQWZ0ZXJXaGl0ZVNwYWNlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUFmdGVyV2hpdGVTcGFjZTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUJyZWFrKCkgY29uc3QKIHsK
LSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJ
RCkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gTGluZUJyZWFrQXV0
bzsKICAgICBjYXNlIENTU1ZhbHVlTG9vc2U6CkBAIC0xNTgyLDYgKzE2MzEsOCBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUJyZWFrKCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIExpbmVCcmVha1N0cmljdDsKICAgICBjYXNlIENTU1ZhbHVlQWZ0ZXJX
aGl0ZVNwYWNlOgogICAgICAgICByZXR1cm4gTGluZUJyZWFrQWZ0ZXJXaGl0ZVNwYWNlOworICAg
IGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtMTU5MSwyNCArMTY0MiwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgTGluZUJyZWFrKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFTGlzdFN0eWxlUG9zaXRpb24gZSkK
ICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsK
ICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBPVVRTSURFOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3V0c2lkZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIElOU0lERToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUluc2lk
ZTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgT1VUU0lERToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVPdXRzaWRlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElO
U0lERToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbnNpZGU7CisgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVMaXN0U3R5bGVQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3Zh
bHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENT
U1ZhbHVlT3V0c2lkZToKICAgICAgICAgcmV0dXJuIE9VVFNJREU7CiAgICAgY2FzZSBDU1NWYWx1
ZUluc2lkZToKICAgICAgICAgcmV0dXJuIElOU0lERTsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE2MTgsMjkwICsx
NjcxLDI5MiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
RUxpc3RTdHlsZVBvc2l0aW9uKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFTGlzdFN0eWxlVHlwZSBlKQogICAgIDogQ1NTVmFs
dWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVO
VDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAo
ZSkgewogICAgIGNhc2UgQWZhcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWZh
cjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBZmFyOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEFtaGFyaWM6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFt
aGFyaWM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQW1oYXJpYzsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBBbWhhcmljQWJlZ2VkZToKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQW1oYXJpY0FiZWdlZGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQW1oYXJpY0FiZWdlZGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXJhYmljSW5k
aWM6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFyYWJpY0luZGljOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFyYWJpY0luZGljOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEFybWVuaWFuOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBcm1l
bmlhbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBcm1lbmlhbjsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBBc3Rlcmlza3M6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUFzdGVyaXNrczsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBc3Rl
cmlza3M7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmluYXJ5TGlzdFN0eWxlOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCaW5hcnk7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlQmluYXJ5OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJlbmdhbGk6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJlbmdhbGk7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQmVuZ2FsaTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYW1i
b2RpYW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNhbWJvZGlhbjsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDYW1ib2RpYW47CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ2lyY2xlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDaXJjbGU7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2lyY2xlOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIENqa0VhcnRobHlCcmFuY2g6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUNqa0VhcnRobHlCcmFuY2g7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ2prRWFydGhseUJyYW5jaDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDamtIZWF2ZW5s
eVN0ZW06Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNqa0hlYXZlbmx5U3RlbTsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDamtIZWF2ZW5seVN0ZW07CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ0pLSWRlb2dyYXBoaWM6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUNqa0lkZW9ncmFwaGljOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUNqa0lkZW9ncmFwaGljOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERlY2ltYWxM
ZWFkaW5nWmVybzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGVjaW1hbExlYWRp
bmdaZXJvOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlY2ltYWxMZWFkaW5n
WmVybzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEZWNpbWFsTGlzdFN0eWxlOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEZWNpbWFsOworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZURlY2ltYWw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGV2YW5hZ2Fy
aToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGV2YW5hZ2FyaTsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZXZhbmFnYXJpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIERpc2M6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURpc2M7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGlzYzsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBFdGhpb3BpYzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWM7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWM7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgRXRoaW9waWNBYmVnZWRlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVFdGhpb3BpY0FiZWdlZGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRXRoaW9waWNBYmVnZWRlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGljQWJl
Z2VkZUFtRXQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlvcGljQWJlZ2Vk
ZUFtRXQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNBYmVnZWRl
QW1FdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFdGhpb3BpY0FiZWdlZGVHZXo6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlvcGljQWJlZ2VkZUdlejsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0FiZWdlZGVHZXo7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgRXRoaW9waWNBYmVnZWRlVGlFcjoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlRXRoaW9waWNBYmVnZWRlVGlFcjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVFdGhpb3BpY0FiZWdlZGVUaUVyOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEV0aGlvcGljQWJlZ2VkZVRpRXQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0
aGlvcGljQWJlZ2VkZVRpRXQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRo
aW9waWNBYmVnZWRlVGlFdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFdGhpb3BpY0hhbGVo
YW1lQWFFcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFt
ZUFhRXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFt
ZUFhRXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRoaW9waWNIYWxlaGFtZUFhRXQ6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlvcGljSGFsZWhhbWVBYUV0OworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV0aGlvcGljSGFsZWhhbWVBYUV0OwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGljSGFsZWhhbWVBbUV0OgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lQW1FdDsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lQW1FdDsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBFdGhpb3BpY0hhbGVoYW1lR2V6OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lR2V6OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUV0aGlvcGljSGFsZWhhbWVHZXo7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRo
aW9waWNIYWxlaGFtZU9tRXQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlv
cGljSGFsZWhhbWVPbUV0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV0aGlv
cGljSGFsZWhhbWVPbUV0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGljSGFsZWhh
bWVTaWRFdDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFt
ZVNpZEV0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV0aGlvcGljSGFsZWhh
bWVTaWRFdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFdGhpb3BpY0hhbGVoYW1lU29FdDoK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZVNvRXQ7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZVNvRXQ7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRoaW9waWNIYWxlaGFtZVRpRXI6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlvcGljSGFsZWhhbWVUaUVyOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV0aGlvcGljSGFsZWhhbWVUaUVyOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEV0aGlvcGljSGFsZWhhbWVUaUV0OgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lVGlFdDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lVGlFdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBFdGhpb3BpY0hhbGVoYW1lVGlnOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVF
dGhpb3BpY0hhbGVoYW1lVGlnOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV0
aGlvcGljSGFsZWhhbWVUaWc7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9vdG5vdGVzOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGb290bm90ZXM7CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlRm9vdG5vdGVzOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEdlb3JnaWFuOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVHZW9yZ2lhbjsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVHZW9yZ2lhbjsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBHdWphcmF0aToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlR3Vq
YXJhdGk7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlR3VqYXJhdGk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgR3VybXVraGk6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUd1cm11a2hpOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUd1cm11
a2hpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEhhbmd1bDoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlSGFuZ3VsOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUhhbmd1bDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBIYW5ndWxDb25zb25hbnQ6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhhbmd1bENvbnNvbmFudDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIYW5ndWxDb25zb25hbnQ7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgSGVicmV3OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIZWJyZXc7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGVicmV3OwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEhpcmFnYW5hOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVI
aXJhZ2FuYTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIaXJhZ2FuYTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBIaXJhZ2FuYUlyb2hhOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVIaXJhZ2FuYUlyb2hhOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUhpcmFnYW5hSXJvaGE7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgS2FubmFkYToK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlS2FubmFkYTsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVLYW5uYWRhOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEth
dGFrYW5hOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVLYXRha2FuYTsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVLYXRha2FuYTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBLYXRha2FuYUlyb2hhOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVL
YXRha2FuYUlyb2hhOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUthdGFrYW5h
SXJvaGE7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgS2htZXI6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUtobWVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUtobWVyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExhbzoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlTGFvOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxh
bzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMb3dlckFscGhhOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVMb3dlckFscGhhOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUxvd2VyQWxwaGE7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTG93ZXJBcm1lbmlh
bjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTG93ZXJBcm1lbmlhbjsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMb3dlckFybWVuaWFuOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIExvd2VyR3JlZWs6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUxvd2VyR3JlZWs7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTG93ZXJHcmVl
azsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMb3dlckhleGFkZWNpbWFsOgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb3dlckhleGFkZWNpbWFsOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUxvd2VySGV4YWRlY2ltYWw7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTG93ZXJMYXRpbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTG93ZXJM
YXRpbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMb3dlckxhdGluOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIExvd2VyTm9yd2VnaWFuOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVMb3dlck5vcndlZ2lhbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVMb3dlck5vcndlZ2lhbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMb3dlclJv
bWFuOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb3dlclJvbWFuOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvd2VyUm9tYW47CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTWFsYXlhbGFtOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNYWxh
eWFsYW07CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWFsYXlhbGFtOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIE1vbmdvbGlhbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTW9uZ29saWFuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1v
bmdvbGlhbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNeWFubWFyOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVNeWFubWFyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU15YW5tYXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTm9uZUxpc3RTdHlsZToK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE9jdGFsOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPY3RhbDsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVPY3RhbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPcml5YToK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3JpeWE7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlT3JpeWE7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT3JvbW86
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU9yb21vOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU9yb21vOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBlcnNp
YW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVBlcnNpYW47CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGVyc2lhbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBTaWRhbWE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNpZGFtYTsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTaWRhbWE7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgU29tYWxpOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTb21hbGk7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU29tYWxpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFNxdWFyZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3F1YXJl
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNxdWFyZTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBUZWx1Z3U6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRl
bHVndTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZWx1Z3U7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGhhaToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
VGhhaTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUaGFpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFRpYmV0YW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVRpYmV0YW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGliZXRhbjsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBUaWdyZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlVGlncmU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGlncmU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGlncmlueWFFcjoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlVGlncmlueWFFcjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVUaWdyaW55YUVyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRpZ3JpbnlhRXJBYmVnZWRl
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUaWdyaW55YUVyQWJlZ2VkZTsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUaWdyaW55YUVyQWJlZ2VkZTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBUaWdyaW55YUV0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVUaWdyaW55YUV0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRp
Z3JpbnlhRXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGlncmlueWFFdEFiZWdlZGU6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRpZ3JpbnlhRXRBYmVnZWRlOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRpZ3JpbnlhRXRBYmVnZWRlOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFVwcGVyQWxwaGE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZVVwcGVyQWxwaGE7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXBwZXJB
bHBoYTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVcHBlckFybWVuaWFuOgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVVcHBlckFybWVuaWFuOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVVwcGVyQXJtZW5pYW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
VXBwZXJHcmVlazoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXBwZXJHcmVlazsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVcHBlckdyZWVrOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFVwcGVySGV4YWRlY2ltYWw6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVVwcGVySGV4YWRlY2ltYWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlVXBwZXJIZXhhZGVjaW1hbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVcHBlckxh
dGluOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVVcHBlckxhdGluOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVwcGVyTGF0aW47CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgVXBwZXJOb3J3ZWdpYW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVVwcGVyTm9yd2VnaWFuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVwcGVy
Tm9yd2VnaWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVwcGVyUm9tYW46Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVVwcGVyUm9tYW47CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlVXBwZXJSb21hbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVcmR1
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVVcmR1OworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVVyZHU7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVMaXN0U3R5bGVUeXBl
KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBD
U1NWYWx1ZU5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZUxpc3RTdHlsZTsKLSAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFTGlzdFN0eWxlVHlwZT4o
bV92YWx1ZS5pZGVudCAtIENTU1ZhbHVlRGlzYyk7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVl
SUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIE5vbmVMaXN0U3R5
bGU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVMaXN0U3R5bGVU
eXBlPihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1ZURpc2MpOwogICAgIH0KIH0KIAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVNYXJnaW5D
b2xsYXBzZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NT
X1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIE1DT0xMQVBTRToKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbGxhcHNlOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgTVNFUEFSQVRFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlU2VwYXJhdGU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBN
RElTQ0FSRDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURpc2NhcmQ7Ci0g
ICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIE1DT0xMQVBTRToKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVDb2xsYXBzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNU0VQ
QVJBVEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VwYXJhdGU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTURJU0NBUkQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlRGlzY2FyZDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU1hcmdpbkNvbGxhcHNlKCkgY29u
c3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZUNvbGxhcHNlOgotICAgICAgICAgICAgcmV0dXJuIE1DT0xMQVBTRTsKLSAgICAgICAgY2FzZSBD
U1NWYWx1ZVNlcGFyYXRlOgotICAgICAgICAgICAgcmV0dXJuIE1TRVBBUkFURTsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZURpc2NhcmQ6Ci0gICAgICAgICAgICByZXR1cm4gTURJU0NBUkQ7CisgICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQ29sbGFwc2U6Cisg
ICAgICAgIHJldHVybiBNQ09MTEFQU0U7CisgICAgY2FzZSBDU1NWYWx1ZVNlcGFyYXRlOgorICAg
ICAgICByZXR1cm4gTVNFUEFSQVRFOworICAgIGNhc2UgQ1NTVmFsdWVEaXNjYXJkOgorICAgICAg
ICByZXR1cm4gTURJU0NBUkQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xOTExLDM0ICsxOTY2LDM2IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTWFyZ2luQ29sbGFwc2Uo
KSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKEVNYXJxdWVlQmVoYXZpb3IgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNz
KQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2Fz
ZSBNTk9ORToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNU0NST0xMOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlU2Nyb2xsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgTVNMSURFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2xpZGU7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNQUxURVJOQVRFOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWx0ZXJuYXRlOwotICAgICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBNTk9ORToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE1TQ1JPTEw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU2Nyb2xsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1TTElERToKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbGlkZTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBNQUxURVJOQVRFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFs
dGVybmF0ZTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU1hcnF1ZWVCZWhhdmlvcigpIGNvbnN0CiB7Ci0g
ICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb25lOgot
ICAgICAgICAgICAgcmV0dXJuIE1OT05FOwotICAgICAgICBjYXNlIENTU1ZhbHVlU2Nyb2xsOgot
ICAgICAgICAgICAgcmV0dXJuIE1TQ1JPTEw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTbGlkZToK
LSAgICAgICAgICAgIHJldHVybiBNU0xJREU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBbHRlcm5h
dGU6Ci0gICAgICAgICAgICByZXR1cm4gTUFMVEVSTkFURTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAgICByZXR1cm4gTU5PTkU7
CisgICAgY2FzZSBDU1NWYWx1ZVNjcm9sbDoKKyAgICAgICAgcmV0dXJuIE1TQ1JPTEw7CisgICAg
Y2FzZSBDU1NWYWx1ZVNsaWRlOgorICAgICAgICByZXR1cm4gTVNMSURFOworICAgIGNhc2UgQ1NT
VmFsdWVBbHRlcm5hdGU6CisgICAgICAgIHJldHVybiBNQUxURVJOQVRFOworICAgIGRlZmF1bHQ6
CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
MTk0OCwyNCArMjAwNSwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRU1hcnF1ZWVCZWhhdmlvcigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoUmVnaW9uRnJhZ21lbnQgZSkKICAgICA6
IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBD
U1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBz
d2l0Y2ggKGUpIHsKICAgICBjYXNlIEF1dG9SZWdpb25GcmFnbWVudDoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVBdXRvOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJyZWFrUmVnaW9uRnJhZ21lbnQ6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJyZWFrOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUJyZWFrOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBSZWdpb25GcmFnbWVudCgp
IGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIEF1
dG9SZWdpb25GcmFnbWVudDsKICAgICBjYXNlIENTU1ZhbHVlQnJlYWs6CiAgICAgICAgIHJldHVy
biBCcmVha1JlZ2lvbkZyYWdtZW50OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTk3NSw1MSArMjAzNCw1MyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUmVnaW9uRnJhZ21l
bnQoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKEVNYXJxdWVlRGlyZWN0aW9uIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVD
bGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAg
IGNhc2UgTUZPUldBUkQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGb3J3
YXJkczsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1CQUNLV0FSRDoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJhY2t3YXJkczsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIE1BVVRPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1VUDoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVVwOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgTURPV046Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVE
b3duOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTUxFRlQ6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMZWZ0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgTVJJR0hUOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmln
aHQ7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIE1GT1JXQVJEOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZvcndhcmRzOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IE1CQUNLV0FSRDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCYWNrd2FyZHM7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTUFVVE86CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNVVA6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
TURPV046CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRG93bjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBNTEVGVDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVMZWZ0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1SSUdIVDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU1hcnF1ZWVEaXJl
Y3Rpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBj
YXNlIENTU1ZhbHVlRm9yd2FyZHM6Ci0gICAgICAgICAgICByZXR1cm4gTUZPUldBUkQ7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVCYWNrd2FyZHM6Ci0gICAgICAgICAgICByZXR1cm4gTUJBQ0tXQVJE
OwotICAgICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKLSAgICAgICAgICAgIHJldHVybiBNQVVUTzsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZUFoZWFkOgotICAgICAgICBjYXNlIENTU1ZhbHVlVXA6IC8v
IFdlIGRvbid0IHN1cHBvcnQgdmVydGljYWwgbGFuZ3VhZ2VzLCBzbyBBSEVBRCBqdXN0IG1hcHMg
dG8gVVAuCi0gICAgICAgICAgICByZXR1cm4gTVVQOwotICAgICAgICBjYXNlIENTU1ZhbHVlUmV2
ZXJzZToKLSAgICAgICAgY2FzZSBDU1NWYWx1ZURvd246IC8vIFJFVkVSU0UganVzdCBtYXBzIHRv
IERPV04sIHNpbmNlIHdlIGRvbid0IGRvIHZlcnRpY2FsIHRleHQuCi0gICAgICAgICAgICByZXR1
cm4gTURPV047Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVMZWZ0OgotICAgICAgICAgICAgcmV0dXJu
IE1MRUZUOwotICAgICAgICBjYXNlIENTU1ZhbHVlUmlnaHQ6Ci0gICAgICAgICAgICByZXR1cm4g
TVJJR0hUOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1
ZUZvcndhcmRzOgorICAgICAgICByZXR1cm4gTUZPUldBUkQ7CisgICAgY2FzZSBDU1NWYWx1ZUJh
Y2t3YXJkczoKKyAgICAgICAgcmV0dXJuIE1CQUNLV0FSRDsKKyAgICBjYXNlIENTU1ZhbHVlQXV0
bzoKKyAgICAgICAgcmV0dXJuIE1BVVRPOworICAgIGNhc2UgQ1NTVmFsdWVBaGVhZDoKKyAgICBj
YXNlIENTU1ZhbHVlVXA6IC8vIFdlIGRvbid0IHN1cHBvcnQgdmVydGljYWwgbGFuZ3VhZ2VzLCBz
byBBSEVBRCBqdXN0IG1hcHMgdG8gVVAuCisgICAgICAgIHJldHVybiBNVVA7CisgICAgY2FzZSBD
U1NWYWx1ZVJldmVyc2U6CisgICAgY2FzZSBDU1NWYWx1ZURvd246IC8vIFJFVkVSU0UganVzdCBt
YXBzIHRvIERPV04sIHNpbmNlIHdlIGRvbid0IGRvIHZlcnRpY2FsIHRleHQuCisgICAgICAgIHJl
dHVybiBNRE9XTjsKKyAgICBjYXNlIENTU1ZhbHVlTGVmdDoKKyAgICAgICAgcmV0dXJuIE1MRUZU
OworICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKKyAgICAgICAgcmV0dXJuIE1SSUdIVDsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTIwMjksMjQgKzIwOTAsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVNYXJxdWVlRGlyZWN0aW9uKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFTkJTUE1vZGUgZSkKICAg
ICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAg
ICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBOQk5PUk1BTDoKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFNQQUNFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3BhY2U7Ci0g
ICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIE5CTk9STUFMOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTUEFDRToK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcGFjZTsKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRU5CU1BNb2RlKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZVNwYWNlOgotICAgICAgICAgICAgcmV0dXJuIFNQQUNFOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgotICAgICAgICAgICAgcmV0dXJuIE5CTk9STUFMOwor
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVNwYWNlOgor
ICAgICAgICByZXR1cm4gU1BBQ0U7CisgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKKyAgICAgICAg
cmV0dXJuIE5CTk9STUFMOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjA1Niw1NCArMjExOSw1NiBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU5CU1BNb2RlKCkgY29uc3QK
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShF
T3ZlcmZsb3cgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBPVklTSUJMRToKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVZpc2libGU7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBPSElEREVOOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlSGlkZGVuOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT1NDUk9M
TDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNjcm9sbDsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIE9BVVRPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE9NQVJR
VUVFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0TWFycXVlZTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE9PVkVSTEFZOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3ZlcmxheTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIE9QQUdFRFg6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVX
ZWJraXRQYWdlZFg7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBPUEFHRURZOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0UGFnZWRZOwotICAgICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBPVklTSUJMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVWaXNpYmxlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE9ISURERU46Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGlkZGVuOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIE9TQ1JPTEw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2Ny
b2xsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE9BVVRPOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT01BUlFVRUU6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0TWFycXVlZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBPT1ZFUkxBWToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVPdmVybGF5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE9QQUdFRFg6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0UGFnZWRYOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE9QQUdFRFk6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
V2Via2l0UGFnZWRZOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFT3ZlcmZsb3coKSBjb25zdAogewotICAg
IHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZToK
LSAgICAgICAgICAgIHJldHVybiBPVklTSUJMRTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUhpZGRl
bjoKLSAgICAgICAgICAgIHJldHVybiBPSElEREVOOwotICAgICAgICBjYXNlIENTU1ZhbHVlU2Ny
b2xsOgotICAgICAgICAgICAgcmV0dXJuIE9TQ1JPTEw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVB
dXRvOgotICAgICAgICAgICAgcmV0dXJuIE9BVVRPOwotICAgICAgICBjYXNlIENTU1ZhbHVlV2Vi
a2l0TWFycXVlZToKLSAgICAgICAgICAgIHJldHVybiBPTUFSUVVFRTsKLSAgICAgICAgY2FzZSBD
U1NWYWx1ZU92ZXJsYXk6Ci0gICAgICAgICAgICByZXR1cm4gT09WRVJMQVk7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVXZWJraXRQYWdlZFg6Ci0gICAgICAgICAgICByZXR1cm4gT1BBR0VEWDsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdFBhZ2VkWToKLSAgICAgICAgICAgIHJldHVybiBPUEFH
RURZOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVZp
c2libGU6CisgICAgICAgIHJldHVybiBPVklTSUJMRTsKKyAgICBjYXNlIENTU1ZhbHVlSGlkZGVu
OgorICAgICAgICByZXR1cm4gT0hJRERFTjsKKyAgICBjYXNlIENTU1ZhbHVlU2Nyb2xsOgorICAg
ICAgICByZXR1cm4gT1NDUk9MTDsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0
dXJuIE9BVVRPOworICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRNYXJxdWVlOgorICAgICAgICByZXR1
cm4gT01BUlFVRUU7CisgICAgY2FzZSBDU1NWYWx1ZU92ZXJsYXk6CisgICAgICAgIHJldHVybiBP
T1ZFUkxBWTsKKyAgICBjYXNlIENTU1ZhbHVlV2Via2l0UGFnZWRYOgorICAgICAgICByZXR1cm4g
T1BBR0VEWDsKKyAgICBjYXNlIENTU1ZhbHVlV2Via2l0UGFnZWRZOgorICAgICAgICByZXR1cm4g
T1BBR0VEWTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIxMTMsMzEgKzIxNzgsMzMgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVPdmVyZmxvdygpIGNvbnN0CiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVBhZ2VCcmVh
ayBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIFBCQVVUTzoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBQQkFMV0FZUzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFs
d2F5czsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBCQVZPSUQ6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdm9pZDsKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUEJBVVRPOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUEJBTFdBWVM6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQWx3YXlzOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBCQVZPSUQ6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXZvaWQ7CisgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVQYWdlQnJlYWsoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewot
ICAgICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKLSAgICAgICAgICAgIHJldHVybiBQQkFVVE87Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVMZWZ0OgotICAgICAgICBjYXNlIENTU1ZhbHVlUmlnaHQ6Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVBbHdheXM6Ci0gICAgICAgICAgICByZXR1cm4gUEJBTFdBWVM7
IC8vIENTUzIuMTogIkNvbmZvcm1pbmcgdXNlciBhZ2VudHMgbWF5IG1hcCBsZWZ0L3JpZ2h0IHRv
IGFsd2F5cy4iCi0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdm9pZDoKLSAgICAgICAgICAgIHJldHVy
biBQQkFWT0lEOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NW
YWx1ZUF1dG86CisgICAgICAgIHJldHVybiBQQkFVVE87CisgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6
CisgICAgY2FzZSBDU1NWYWx1ZVJpZ2h0OgorICAgIGNhc2UgQ1NTVmFsdWVBbHdheXM6CisgICAg
ICAgIHJldHVybiBQQkFMV0FZUzsgLy8gQ1NTMi4xOiAiQ29uZm9ybWluZyB1c2VyIGFnZW50cyBt
YXkgbWFwIGxlZnQvcmlnaHQgdG8gYWx3YXlzLiIKKyAgICBjYXNlIENTU1ZhbHVlQXZvaWQ6Cisg
ICAgICAgIHJldHVybiBQQkFWT0lEOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjE0Nyw0MyArMjIxNCw0NSBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVBhZ2VCcmVhaygp
IGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoRVBvc2l0aW9uIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgU3RhdGlj
UG9zaXRpb246Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTdGF0aWM7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSZWxhdGl2ZVBvc2l0aW9uOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmVsYXRpdmU7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBBYnNvbHV0ZVBvc2l0aW9uOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlQWJzb2x1dGU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBGaXhlZFBvc2l0aW9uOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRml4
ZWQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTdGlja3lQb3NpdGlvbjoKKyAg
ICBjYXNlIFN0YXRpY1Bvc2l0aW9uOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVN0YXRpYzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZWxhdGl2ZVBvc2l0aW9uOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlbGF0aXZlOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFic29sdXRlUG9zaXRpb246CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQWJzb2x1dGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRml4ZWRQb3NpdGlvbjoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGaXhlZDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBTdGlja3lQb3NpdGlvbjoKICNpZiBFTkFCTEUoQ1NTX1NUSUNLWV9QT1NJVElP
TikKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdFN0aWNreTsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRTdGlja3k7CiAjZW5kaWYKLSAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUG9zaXRpb24oKSBjb25zdAogewot
ICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlU3RhdGlj
OgotICAgICAgICAgICAgcmV0dXJuIFN0YXRpY1Bvc2l0aW9uOwotICAgICAgICBjYXNlIENTU1Zh
bHVlUmVsYXRpdmU6Ci0gICAgICAgICAgICByZXR1cm4gUmVsYXRpdmVQb3NpdGlvbjsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZUFic29sdXRlOgotICAgICAgICAgICAgcmV0dXJuIEFic29sdXRlUG9z
aXRpb247Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVGaXhlZDoKLSAgICAgICAgICAgIHJldHVybiBG
aXhlZFBvc2l0aW9uOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBD
U1NWYWx1ZVN0YXRpYzoKKyAgICAgICAgcmV0dXJuIFN0YXRpY1Bvc2l0aW9uOworICAgIGNhc2Ug
Q1NTVmFsdWVSZWxhdGl2ZToKKyAgICAgICAgcmV0dXJuIFJlbGF0aXZlUG9zaXRpb247CisgICAg
Y2FzZSBDU1NWYWx1ZUFic29sdXRlOgorICAgICAgICByZXR1cm4gQWJzb2x1dGVQb3NpdGlvbjsK
KyAgICBjYXNlIENTU1ZhbHVlRml4ZWQ6CisgICAgICAgIHJldHVybiBGaXhlZFBvc2l0aW9uOwog
I2lmIEVOQUJMRShDU1NfU1RJQ0tZX1BPU0lUSU9OKQotICAgICAgICBjYXNlIENTU1ZhbHVlV2Vi
a2l0U3RpY2t5OgotICAgICAgICAgICAgcmV0dXJuIFN0aWNreVBvc2l0aW9uOworICAgIGNhc2Ug
Q1NTVmFsdWVXZWJraXRTdGlja3k6CisgICAgICAgIHJldHVybiBTdGlja3lQb3NpdGlvbjsKICNl
bmRpZgorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpAQCAtMjE5MywzNyArMjI2MiwzOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVBvc2l0aW9uKCkgY29uc3QKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFUmVzaXplIGUpCiAg
ICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAg
ICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgUkVTSVpFX0JPVEg6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCb3RoOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgUkVTSVpFX0hPUklaT05UQUw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVIb3Jpem9udGFsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUkVTSVpF
X1ZFUlRJQ0FMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmVydGljYWw7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSRVNJWkVfTk9ORToKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7Ci0gICAgICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFJFU0laRV9CT1RIOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJv
dGg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUkVTSVpFX0hPUklaT05UQUw6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSG9yaXpvbnRhbDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBSRVNJWkVfVkVSVElDQUw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlVmVydGljYWw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUkVTSVpFX05PTkU6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVJl
c2l6ZSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVCb3RoOgotICAgICAgICAgICAgcmV0dXJuIFJFU0laRV9CT1RIOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRhbDoKLSAgICAgICAgICAgIHJldHVybiBSRVNJWkVfSE9S
SVpPTlRBTDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVZlcnRpY2FsOgotICAgICAgICAgICAgcmV0
dXJuIFJFU0laRV9WRVJUSUNBTDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gRGVwZW5kcyBvbiBzZXR0aW5ncywgdGh1cyBz
aG91bGQgYmUgaGFuZGxlZCBieSB0aGUgY2FsbGVyLgotICAgICAgICAgICAgcmV0dXJuIFJFU0la
RV9OT05FOwotICAgICAgICBjYXNlIENTU1ZhbHVlTm9uZToKLSAgICAgICAgICAgIHJldHVybiBS
RVNJWkVfTk9ORTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NT
VmFsdWVCb3RoOgorICAgICAgICByZXR1cm4gUkVTSVpFX0JPVEg7CisgICAgY2FzZSBDU1NWYWx1
ZUhvcml6b250YWw6CisgICAgICAgIHJldHVybiBSRVNJWkVfSE9SSVpPTlRBTDsKKyAgICBjYXNl
IENTU1ZhbHVlVmVydGljYWw6CisgICAgICAgIHJldHVybiBSRVNJWkVfVkVSVElDQUw7CisgICAg
Y2FzZSBDU1NWYWx1ZUF1dG86CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBEZXBl
bmRzIG9uIHNldHRpbmdzLCB0aHVzIHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCisg
ICAgICAgIHJldHVybiBSRVNJWkVfTk9ORTsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAg
ICAgcmV0dXJuIFJFU0laRV9OT05FOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjIzMywyNCArMjMwNCwyNiBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVJlc2l6ZSgpIGNv
bnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoRVRhYmxlTGF5b3V0IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgVEFVVE86
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgVEZJWEVEOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlRml4ZWQ7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIFRBVVRPOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgVEZJWEVEOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZpeGVkOwor
ICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBFVGFibGVMYXlvdXQoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92
YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlRml4ZWQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gVEZJWEVEOwotICAgICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKLSAgICAgICAgICAgIHJl
dHVybiBUQVVUTzsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NT
VmFsdWVGaXhlZDoKKyAgICAgICAgcmV0dXJuIFRGSVhFRDsKKyAgICBjYXNlIENTU1ZhbHVlQXV0
bzoKKyAgICAgICAgcmV0dXJuIFRBVVRPOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwog
ICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjI2MCw0OCArMjMzMyw0OCBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRhYmxlTGF5
b3V0KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShFVGV4dEFsaWduIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykK
IHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUQVNU
QVJUOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTdGFydDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGFydDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBU
QUVORDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRW5kOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVuZDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMRUZU
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMZWZ0OworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUklHSFQ6
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJpZ2h0OworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVJpZ2h0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENFTlRF
UjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2VudGVyOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBK
VVNUSUZZOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVKdXN0aWZ5OworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUp1c3RpZnk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgV0VCS0lUX0xFRlQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtp
dExlZnQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0TGVmdDsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXRUJLSVRfUklHSFQ6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZVdlYmtpdFJpZ2h0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVdlYmtpdFJpZ2h0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdFQktJVF9DRU5URVI6
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdENlbnRlcjsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRDZW50ZXI7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVUZXh0QWxpZ24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdEF1dG86
IC8vIExlZ2FjeSAtd2Via2l0LWF1dG8uIEVxaXV2YWxlbnQgdG8gc3RhcnQuCiAgICAgY2FzZSBD
U1NWYWx1ZVN0YXJ0OgogICAgICAgICByZXR1cm4gVEFTVEFSVDsKICAgICBjYXNlIENTU1ZhbHVl
RW5kOgogICAgICAgICByZXR1cm4gVEFFTkQ7CiAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEVUZXh0QWxpZ24+KG1fdmFsdWUuaWRlbnQgLSBDU1NWYWx1ZUxlZnQpOwor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHRBbGlnbj4obV92YWx1ZS52YWx1ZUlEIC0g
Q1NTVmFsdWVMZWZ0KTsKICAgICB9CiB9CiAKQEAgLTIzMDksMzUgKzIzODIsMzUgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0QWxpZ24oKSBjb25z
dAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KFRleHRBbGlnbkxhc3QgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRleHRBbGlnbkxh
c3RTdGFydDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3RhcnQ7CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RhcnQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVGV4dEFsaWduTGFzdEVuZDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRW5k
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVuZDsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBUZXh0QWxpZ25MYXN0TGVmdDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlTGVmdDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbGlnbkxhc3RSaWdodDoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlUmlnaHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTGFzdENlbnRlcjoK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2VudGVyOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0
QWxpZ25MYXN0SnVzdGlmeToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSnVzdGlm
eTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVKdXN0aWZ5OwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFRleHRBbGlnbkxhc3RBdXRvOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87
CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRBbGlnbkxhc3QoKSBjb25zdAogewotICAgIHN3aXRjaCAo
bV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBUZXh0QWxpZ25MYXN0QXV0bzsKICAgICBj
YXNlIENTU1ZhbHVlU3RhcnQ6CkBAIC0yMzUyLDYgKzI0MjUsOCBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEFsaWduTGFzdCgpIGNvbnN0CiAgICAg
ICAgIHJldHVybiBUZXh0QWxpZ25MYXN0Q2VudGVyOwogICAgIGNhc2UgQ1NTVmFsdWVKdXN0aWZ5
OgogICAgICAgICByZXR1cm4gVGV4dEFsaWduTGFzdEp1c3RpZnk7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yMzYx
LDM1ICsyNDM2LDM1IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBUZXh0QWxpZ25MYXN0KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0SnVzdGlmeSBlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgVGV4dEp1c3RpZnlBdXRvOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVBdXRvOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEp1c3RpZnlOb25lOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5v
bmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEp1c3RpZnlJbnRlcldvcmQ6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUludGVyV29yZDsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVJbnRlcldvcmQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4
dEp1c3RpZnlJbnRlcklkZW9ncmFwaDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
SW50ZXJJZGVvZ3JhcGg7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW50ZXJJ
ZGVvZ3JhcGg7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEp1c3RpZnlJbnRlckNsdXN0
ZXI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUludGVyQ2x1c3RlcjsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbnRlckNsdXN0ZXI7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgVGV4dEp1c3RpZnlEaXN0cmlidXRlOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVEaXN0cmlidXRlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZURpc3RyaWJ1dGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEp1c3RpZnlLYXNoaWRh
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVLYXNoaWRhOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUthc2hpZGE7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
IAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRKdXN0
aWZ5KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1
cm4gVGV4dEp1c3RpZnlBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgpAQCAtMjQwNCw2ICsy
NDc5LDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHRKdXN0aWZ5KCkgY29uc3QKICAgICAgICAgcmV0dXJuIFRleHRKdXN0aWZ5RGlzdHJpYnV0ZTsK
ICAgICBjYXNlIENTU1ZhbHVlS2FzaGlkYToKICAgICAgICAgcmV0dXJuIFRleHRKdXN0aWZ5S2Fz
aGlkYTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKQEAgLTI0MTMsNyArMjQ5MCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0SnVzdGlmeSgpIGNvbnN0CiAKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RGVjb3JhdGlvbigpIGNv
bnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIFRleHRE
ZWNvcmF0aW9uTm9uZTsKICAgICBjYXNlIENTU1ZhbHVlVW5kZXJsaW5lOgpAQCAtMjQyNCw2ICsy
NTAxLDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHREZWNvcmF0aW9uKCkgY29uc3QKICAgICAgICAgcmV0dXJuIFRleHREZWNvcmF0aW9uTGluZVRo
cm91Z2g7CiAgICAgY2FzZSBDU1NWYWx1ZUJsaW5rOgogICAgICAgICByZXR1cm4gVGV4dERlY29y
YXRpb25CbGluazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI0MzMsNyArMjUxMiw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RGVjb3JhdGlvbigpIGNvbnN0CiAj
aWYgRU5BQkxFKENTUzNfVEVYVCkKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBUZXh0RGVjb3JhdGlvblN0eWxlKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1f
dmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2Ug
Q1NTVmFsdWVTb2xpZDoKICAgICAgICAgcmV0dXJuIFRleHREZWNvcmF0aW9uU3R5bGVTb2xpZDsK
ICAgICBjYXNlIENTU1ZhbHVlRG91YmxlOgpAQCAtMjQ0NCw2ICsyNTIzLDggQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHREZWNvcmF0aW9uU3R5bGUo
KSBjb25zdAogICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25TdHlsZURhc2hlZDsKICAgICBj
YXNlIENTU1ZhbHVlV2F2eToKICAgICAgICAgcmV0dXJuIFRleHREZWNvcmF0aW9uU3R5bGVXYXZ5
OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtMjQ1MywxNiArMjUzNCwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERlY29yYXRpb25TdHlsZSgpIGNvbnN0CiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dFVu
ZGVybGluZVBvc2l0aW9uIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0VW5kZXJs
aW5lUG9zaXRpb25BdXRvOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgVGV4dFVuZGVybGluZVBvc2l0aW9uQWxwaGFiZXRpYzoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQWxwaGFiZXRpYzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVBbHBoYWJldGljOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRVbmRlcmxp
bmVQb3NpdGlvblVuZGVyOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVVbmRlcjsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVbmRlcjsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogCkBAIC0yNDcxLDEzICsyNTUyLDE1IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0VW5kZXJsaW5lUG9zaXRpb24gZSkK
IAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRVbmRl
cmxpbmVQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Cisg
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAg
ICAgICAgcmV0dXJuIFRleHRVbmRlcmxpbmVQb3NpdGlvbkF1dG87CiAgICAgY2FzZSBDU1NWYWx1
ZUFscGhhYmV0aWM6CiAgICAgICAgIHJldHVybiBUZXh0VW5kZXJsaW5lUG9zaXRpb25BbHBoYWJl
dGljOwogICAgIGNhc2UgQ1NTVmFsdWVVbmRlcjoKICAgICAgICAgcmV0dXJuIFRleHRVbmRlcmxp
bmVQb3NpdGlvblVuZGVyOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAog
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgJ3VuZGVyIGxlZnQnIGFuZCAndW5k
ZXIgcmlnaHQnIHZhbHVlcy4KQEAgLTI0OTAsMzQgKzI1NzMsMzYgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRVbmRlcmxpbmVQb3NpdGlvbigpIGNv
bnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoRVRleHRTZWN1cml0eSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIFRTTk9O
RToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBUU0RJU0M6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVEaXNjOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVFNDSVJD
TEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDaXJjbGU7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUU1NRVUFSRToKLSAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZVNxdWFyZTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgVFNO
T05FOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgVFNESVNDOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZURpc2M7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVFNDSVJDTEU6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQ2lyY2xlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRT
U1FVQVJFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNxdWFyZTsKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRVRleHRTZWN1cml0eSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb25lOgotICAgICAgICAgICAgcmV0dXJu
IFRTTk9ORTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZURpc2M6Ci0gICAgICAgICAgICByZXR1cm4g
VFNESVNDOwotICAgICAgICBjYXNlIENTU1ZhbHVlQ2lyY2xlOgotICAgICAgICAgICAgcmV0dXJu
IFRTQ0lSQ0xFOwotICAgICAgICBjYXNlIENTU1ZhbHVlU3F1YXJlOgotICAgICAgICAgICAgcmV0
dXJuIFRTU1FVQVJFOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBD
U1NWYWx1ZU5vbmU6CisgICAgICAgIHJldHVybiBUU05PTkU7CisgICAgY2FzZSBDU1NWYWx1ZURp
c2M6CisgICAgICAgIHJldHVybiBUU0RJU0M7CisgICAgY2FzZSBDU1NWYWx1ZUNpcmNsZToKKyAg
ICAgICAgcmV0dXJuIFRTQ0lSQ0xFOworICAgIGNhc2UgQ1NTVmFsdWVTcXVhcmU6CisgICAgICAg
IHJldHVybiBUU1NRVUFSRTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI1MjcsMzQgKzI2MTIsMzYgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0U2VjdXJpdHkoKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEVUZXh0VHJhbnNmb3JtIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsK
LSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgQ0FQ
SVRBTElaRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNhcGl0YWxpemU7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBVUFBFUkNBU0U6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVVcHBlcmNhc2U7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBMT1dFUkNBU0U6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVMb3dlcmNhc2U7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUVE5PTkU6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOwotICAgICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDQVBJVEFMSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUNhcGl0YWxpemU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVVBQRVJDQVNFOgor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVwcGVyY2FzZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBMT1dFUkNBU0U6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlTG93ZXJjYXNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRUTk9ORToKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKICAgICB9CiB9
CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVGV4dFRy
YW5zZm9ybSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVDYXBpdGFsaXplOgotICAgICAgICAgICAgcmV0dXJuIENBUElUQUxJWkU7
Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVVcHBlcmNhc2U6Ci0gICAgICAgICAgICByZXR1cm4gVVBQ
RVJDQVNFOwotICAgICAgICBjYXNlIENTU1ZhbHVlTG93ZXJjYXNlOgotICAgICAgICAgICAgcmV0
dXJuIExPV0VSQ0FTRTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6Ci0gICAgICAgICAgICBy
ZXR1cm4gVFROT05FOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBD
U1NWYWx1ZUNhcGl0YWxpemU6CisgICAgICAgIHJldHVybiBDQVBJVEFMSVpFOworICAgIGNhc2Ug
Q1NTVmFsdWVVcHBlcmNhc2U6CisgICAgICAgIHJldHVybiBVUFBFUkNBU0U7CisgICAgY2FzZSBD
U1NWYWx1ZUxvd2VyY2FzZToKKyAgICAgICAgcmV0dXJuIExPV0VSQ0FTRTsKKyAgICBjYXNlIENT
U1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIFRUTk9ORTsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI1NjQsMzIg
KzI2NTEsMzIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVUZXh0VHJhbnNmb3JtKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVW5pY29kZUJpZGkgZSkKICAgICA6IENTU1ZhbHVlKFBy
aW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Cisg
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIFVCTm9ybWFsOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3Jt
YWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEVtYmVkOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVF
bWJlZDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFbWJlZDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBPdmVycmlkZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlQmlkaU92ZXJyaWRlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJpZGlP
dmVycmlkZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJc29sYXRlOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRJc29sYXRlOworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVdlYmtpdElzb2xhdGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXNv
bGF0ZU92ZXJyaWRlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRJc29s
YXRlT3ZlcnJpZGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0SXNv
bGF0ZU92ZXJyaWRlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBsYWludGV4dDoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0UGxhaW50ZXh0OworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdFBsYWludGV4dDsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
RVVuaWNvZGVCaWRpKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAg
ICAgICAgIHJldHVybiBVQk5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlRW1iZWQ6CkBAIC0yNjAy
LDYgKzI2ODksOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRVVuaWNvZGVCaWRpKCkgY29uc3QKICAgICAgICAgcmV0dXJuIElzb2xhdGVPdmVycmlkZTsK
ICAgICBjYXNlIENTU1ZhbHVlV2Via2l0UGxhaW50ZXh0OgogICAgICAgICByZXR1cm4gUGxhaW50
ZXh0OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpAQCAtMjYxMSwyOSArMjcwMCwzMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVuaWNvZGVCaWRpKCkgY29uc3QKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVXNlckRyYWcg
ZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9J
RDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBEUkFHX0FVVE86Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgRFJBR19OT05FOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
Tm9uZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERSQUdfRUxFTUVOVDoKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUVsZW1lbnQ7Ci0gICAgICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERSQUdfQVVUTzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVBdXRvOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERSQUdfTk9ORToKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERSQUdfRUxFTUVOVDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFbGVtZW50
OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiB9
CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVXNlckRy
YWcoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNl
IENTU1ZhbHVlQXV0bzoKLSAgICAgICAgICAgIHJldHVybiBEUkFHX0FVVE87Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVOb25lOgotICAgICAgICAgICAgcmV0dXJuIERSQUdfTk9ORTsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUVsZW1lbnQ6Ci0gICAgICAgICAgICByZXR1cm4gRFJBR19FTEVNRU5UOwor
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86Cisg
ICAgICAgIHJldHVybiBEUkFHX0FVVE87CisgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAgICAg
IHJldHVybiBEUkFHX05PTkU7CisgICAgY2FzZSBDU1NWYWx1ZUVsZW1lbnQ6CisgICAgICAgIHJl
dHVybiBEUkFHX0VMRU1FTlQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yNjQzLDI5ICsyNzM2LDMxIEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVXNlckRyYWcoKSBjb25z
dAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KEVVc2VyTW9kaWZ5IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgUkVBRF9PTkxZ
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmVhZE9ubHk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSRUFEX1dSSVRFOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlUmVhZFdyaXRlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgUkVBRF9XUklURV9QTEFJTlRFWFRfT05MWToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZVJlYWRXcml0ZVBsYWludGV4dE9ubHk7Ci0gICAgICAgICAgICBicmVhazsK
KyAgICBjYXNlIFJFQURfT05MWToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVS
ZWFkT25seTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSRUFEX1dSSVRFOgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlYWRXcml0ZTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBSRUFEX1dSSVRFX1BMQUlOVEVYVF9PTkxZOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVJlYWRXcml0ZVBsYWludGV4dE9ubHk7CisgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2Vy
TW9kaWZ5KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVSZWFkT25seToKICAgICAg
ICAgcmV0dXJuIFJFQURfT05MWTsKICAgICBjYXNlIENTU1ZhbHVlUmVhZFdyaXRlOgogICAgICAg
ICByZXR1cm4gUkVBRF9XUklURTsKICAgICBjYXNlIENTU1ZhbHVlUmVhZFdyaXRlUGxhaW50ZXh0
T25seToKICAgICAgICAgcmV0dXJuIFJFQURfV1JJVEVfUExBSU5URVhUX09OTFk7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkBAIC0yNjc1LDMxICsyNzcwLDMzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBFVXNlck1vZGlmeSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVVzZXJTZWxlY3QgZSkKICAgICA6IENT
U1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1Nf
SURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0
Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBTRUxFQ1RfTk9ORToKLSAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZU5vbmU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBT
RUxFQ1RfVEVYVDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRleHQ7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTRUxFQ1RfQUxMOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWxsOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBTRUxFQ1RfTk9ORToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNFTEVDVF9URVhUOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVRleHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU0VMRUNUX0FM
TDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbGw7CisgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVVc2VyU2VsZWN0KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAgICAgICByZXR1cm4gU0VMRUNUX1RF
WFQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb25lOgotICAgICAgICAgICAgcmV0dXJuIFNFTEVD
VF9OT05FOwotICAgICAgICBjYXNlIENTU1ZhbHVlVGV4dDoKLSAgICAgICAgICAgIHJldHVybiBT
RUxFQ1RfVEVYVDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFsbDoKLSAgICAgICAgICAgIHJldHVy
biBTRUxFQ1RfQUxMOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBD
U1NWYWx1ZUF1dG86CisgICAgICAgIHJldHVybiBTRUxFQ1RfVEVYVDsKKyAgICBjYXNlIENTU1Zh
bHVlTm9uZToKKyAgICAgICAgcmV0dXJuIFNFTEVDVF9OT05FOworICAgIGNhc2UgQ1NTVmFsdWVU
ZXh0OgorICAgICAgICByZXR1cm4gU0VMRUNUX1RFWFQ7CisgICAgY2FzZSBDU1NWYWx1ZUFsbDoK
KyAgICAgICAgcmV0dXJuIFNFTEVDVF9BTEw7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yNzA5LDQzICsyODA2LDQz
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVXNlclNl
bGVjdCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoRVZlcnRpY2FsQWxpZ24gYSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNs
YXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGEpIHsKICAgICBjYXNl
IFRPUDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVG9wOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRvcDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCT1RU
T006Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJvdHRvbTsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3R0b207CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TUlERExFOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNaWRkbGU7CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWlkZGxlOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEJBU0VMSU5FOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCYXNlbGluZTsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCYXNlbGluZTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBURVhUX0JPVFRPTToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlVGV4dEJvdHRvbTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0Qm90
dG9tOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRFWFRfVE9QOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVUZXh0VG9wOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVRleHRUb3A7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU1VCOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVTdWI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlU3ViOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNVUEVSOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVTdXBlcjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTdXBlcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCQVNFTElORV9NSURETEU6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdEJhc2VsaW5lTWlkZGxlOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdEJhc2VsaW5lTWlkZGxlOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIExFTkdUSDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlSW52YWxpZDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbnZhbGlkOwog
ICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVWZXJ0aWNhbEFsaWduKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsK
KyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVUb3A6CiAg
ICAgICAgIHJldHVybiBUT1A7CiAgICAgY2FzZSBDU1NWYWx1ZUJvdHRvbToKQEAgLTI3NjQsNiAr
Mjg2MSw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBF
VmVydGljYWxBbGlnbigpIGNvbnN0CiAgICAgICAgIHJldHVybiBTVVBFUjsKICAgICBjYXNlIENT
U1ZhbHVlV2Via2l0QmFzZWxpbmVNaWRkbGU6CiAgICAgICAgIHJldHVybiBCQVNFTElORV9NSURE
TEU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0yNzczLDI5ICsyODcyLDMxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVmVydGljYWxBbGlnbigpIGNvbnN0CiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVZpc2liaWxp
dHkgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxV
RV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBWSVNJQkxFOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmlzaWJsZTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIEhJRERFTjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUhpZGRlbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENPTExBUFNFOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sbGFwc2U7Ci0gICAgICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFZJU0lCTEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlVmlzaWJsZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBISURERU46CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGlkZGVuOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENPTExBUFNFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbGxhcHNlOwor
ICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBFVmlzaWJpbGl0eSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3Zh
bHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVIaWRkZW46Ci0gICAgICAgICAgICBy
ZXR1cm4gSElEREVOOwotICAgICAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZToKLSAgICAgICAgICAg
IHJldHVybiBWSVNJQkxFOwotICAgICAgICBjYXNlIENTU1ZhbHVlQ29sbGFwc2U6Ci0gICAgICAg
ICAgICByZXR1cm4gQ09MTEFQU0U7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAg
ICBjYXNlIENTU1ZhbHVlSGlkZGVuOgorICAgICAgICByZXR1cm4gSElEREVOOworICAgIGNhc2Ug
Q1NTVmFsdWVWaXNpYmxlOgorICAgICAgICByZXR1cm4gVklTSUJMRTsKKyAgICBjYXNlIENTU1Zh
bHVlQ29sbGFwc2U6CisgICAgICAgIHJldHVybiBDT0xMQVBTRTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI4MDUs
NDQgKzI5MDYsNDYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVWaXNpYmlsaXR5KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFV2hpdGVTcGFjZSBlKQogICAgIDogQ1NTVmFsdWUoUHJp
bWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewot
ICAgICAgICBjYXNlIE5PUk1BTDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZU5vcm1hbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBSRToKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVByZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFBSRV9XUkFQOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
UHJlV3JhcDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBSRV9MSU5FOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUHJlTGluZTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIE5PV1JBUDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZU5vd3JhcDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEtIVE1MX05P
V1JBUDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdE5vd3JhcDsK
LSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTk9STUFMOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUkU6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFBSRV9XUkFQOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVByZVdy
YXA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJFX0xJTkU6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUHJlTGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOT1dS
QVA6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm93cmFwOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEtIVE1MX05PV1JBUDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVXZWJraXROb3dyYXA7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVXaGl0ZVNwYWNlKCkgY29u
c3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZVdlYmtpdE5vd3JhcDoKLSAgICAgICAgICAgIHJldHVybiBLSFRNTF9OT1dSQVA7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVOb3dyYXA6Ci0gICAgICAgICAgICByZXR1cm4gTk9XUkFQOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlUHJlOgotICAgICAgICAgICAgcmV0dXJuIFBSRTsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZVByZVdyYXA6Ci0gICAgICAgICAgICByZXR1cm4gUFJFX1dSQVA7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVQcmVMaW5lOgotICAgICAgICAgICAgcmV0dXJuIFBSRV9MSU5FOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgotICAgICAgICAgICAgcmV0dXJuIE5PUk1BTDsKKyAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVXZWJraXROb3dy
YXA6CisgICAgICAgIHJldHVybiBLSFRNTF9OT1dSQVA7CisgICAgY2FzZSBDU1NWYWx1ZU5vd3Jh
cDoKKyAgICAgICAgcmV0dXJuIE5PV1JBUDsKKyAgICBjYXNlIENTU1ZhbHVlUHJlOgorICAgICAg
ICByZXR1cm4gUFJFOworICAgIGNhc2UgQ1NTVmFsdWVQcmVXcmFwOgorICAgICAgICByZXR1cm4g
UFJFX1dSQVA7CisgICAgY2FzZSBDU1NWYWx1ZVByZUxpbmU6CisgICAgICAgIHJldHVybiBQUkVf
TElORTsKKyAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgorICAgICAgICByZXR1cm4gTk9STUFMOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpAQCAtMjg1MiwyOSArMjk1NSwzMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVdoaXRlU3BhY2UoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVXb3JkQnJlYWsgZSkKICAg
ICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAg
ICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBOb3JtYWxXb3JkQnJlYWs6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBCcmVha0FsbFdvcmRCcmVhazoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUJyZWFrQWxsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQnJl
YWtXb3JkQnJlYWs6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCcmVha1dv
cmQ7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIE5vcm1hbFdvcmRCcmVhazoKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQnJlYWtBbGxXb3JkQnJlYWs6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQnJlYWtBbGw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtXb3JkQnJlYWs6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQnJlYWtXb3JkOworICAgICAgICBicmVh
azsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFV29yZEJyZWFrKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZUJyZWFrQWxsOgotICAgICAgICAgICAgcmV0dXJuIEJyZWFr
QWxsV29yZEJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlQnJlYWtXb3JkOgotICAgICAgICAg
ICAgcmV0dXJuIEJyZWFrV29yZEJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgot
ICAgICAgICAgICAgcmV0dXJuIE5vcm1hbFdvcmRCcmVhazsKKyAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVCcmVha0FsbDoKKyAgICAgICAgcmV0dXJuIEJy
ZWFrQWxsV29yZEJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVCcmVha1dvcmQ6CisgICAgICAgIHJl
dHVybiBCcmVha1dvcmRCcmVhazsKKyAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgorICAgICAgICBy
ZXR1cm4gTm9ybWFsV29yZEJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjg4NCwyNCArMjk4OSwyNiBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVdvcmRCcmVhaygp
IGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoRU92ZXJmbG93V3JhcCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7
Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVu
aXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIE5v
cm1hbE92ZXJmbG93V3JhcDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5v
cm1hbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEJyZWFrT3ZlcmZsb3dXcmFw
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQnJlYWtXb3JkOwotICAgICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBOb3JtYWxPdmVyZmxvd1dyYXA6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJy
ZWFrT3ZlcmZsb3dXcmFwOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJyZWFr
V29yZDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU92ZXJmbG93V3JhcCgpIGNvbnN0CiB7Ci0gICAgc3dp
dGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVCcmVha1dvcmQ6Ci0g
ICAgICAgICAgICByZXR1cm4gQnJlYWtPdmVyZmxvd1dyYXA7Ci0gICAgICAgIGNhc2UgQ1NTVmFs
dWVOb3JtYWw6Ci0gICAgICAgICAgICByZXR1cm4gTm9ybWFsT3ZlcmZsb3dXcmFwOworICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUJyZWFrV29yZDoKKyAg
ICAgICAgcmV0dXJuIEJyZWFrT3ZlcmZsb3dXcmFwOworICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6
CisgICAgICAgIHJldHVybiBOb3JtYWxPdmVyZmxvd1dyYXA7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yOTExLDI0
ICszMDE4LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFT3ZlcmZsb3dXcmFwKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0RGlyZWN0aW9uIGUpCiAgICAgOiBDU1NWYWx1ZShQ
cmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwor
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7
Ci0gICAgICAgIGNhc2UgTFRSOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
THRyOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUlRMOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUnRsOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBMVFI6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTHRyOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFJUTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVS
dGw7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHREaXJlY3Rpb24oKSBjb25zdAogewotICAgIHN3aXRj
aCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlTHRyOgotICAgICAgICAg
ICAgcmV0dXJuIExUUjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVJ0bDoKLSAgICAgICAgICAgIHJl
dHVybiBSVEw7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1Zh
bHVlTHRyOgorICAgICAgICByZXR1cm4gTFRSOworICAgIGNhc2UgQ1NTVmFsdWVSdGw6CisgICAg
ICAgIHJldHVybiBSVEw7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yOTM4LDI2ICszMDQ3LDI2IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RGlyZWN0aW9uKCkgY29u
c3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShXcml0aW5nTW9kZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAg
bV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVG9wVG9Cb3R0b21X
cml0aW5nTW9kZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSG9yaXpvbnRhbFRi
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhvcml6b250YWxUYjsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVWZXJ0aWNhbFJsOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVZlcnRpY2FsUmw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGVmdFRvUmln
aHRXcml0aW5nTW9kZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmVydGljYWxM
cjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbExyOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEJvdHRvbVRvVG9wV3JpdGluZ01vZGU6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUhvcml6b250YWxCdDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVIb3Jpem9udGFsQnQ7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdyaXRpbmdNb2RlKCkg
Y29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFs
dWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVIb3Jpem9udGFsVGI6CiAgICAgICAgIHJl
dHVybiBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOwogICAgIGNhc2UgQ1NTVmFsdWVWZXJ0aWNhbFJs
OgpAQCAtMjk2Niw2ICszMDc1LDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFdyaXRpbmdNb2RlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIExlZnRUb1Jp
Z2h0V3JpdGluZ01vZGU7CiAgICAgY2FzZSBDU1NWYWx1ZUhvcml6b250YWxCdDoKICAgICAgICAg
cmV0dXJuIEJvdHRvbVRvVG9wV3JpdGluZ01vZGU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yOTc1LDI0ICszMDg2
LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcml0
aW5nTW9kZSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoVGV4dENvbWJpbmUgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNs
YXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNl
IFRleHRDb21iaW5lTm9uZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFRleHRDb21iaW5lSG9yaXpvbnRhbDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlSG9yaXpvbnRhbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVI
b3Jpem9udGFsOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0Q29tYmluZSgpIGNvbnN0CiB7Ci0gICAg
c3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsK
ICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIFRleHRDb21iaW5lTm9uZTsK
ICAgICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRhbDoKICAgICAgICAgcmV0dXJuIFRleHRDb21iaW5l
SG9yaXpvbnRhbDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTMwMDIsMjQgKzMxMTUsMjYgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRDb21iaW5lKCkgY29uc3QKIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShSdWJ5
UG9zaXRpb24gcG9zaXRpb24pCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChwb3NpdGlvbikgewogICAgIGNhc2UgUnVi
eVBvc2l0aW9uQmVmb3JlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCZWZvcmU7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmVmb3JlOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFJ1YnlQb3NpdGlvbkFmdGVyOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVBZnRlcjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBZnRlcjsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgUnVieVBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1f
dmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2Ug
Q1NTVmFsdWVCZWZvcmU6CiAgICAgICAgIHJldHVybiBSdWJ5UG9zaXRpb25CZWZvcmU7CiAgICAg
Y2FzZSBDU1NWYWx1ZUFmdGVyOgogICAgICAgICByZXR1cm4gUnVieVBvc2l0aW9uQWZ0ZXI7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0zMDI5LDI0ICszMTQ0LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBSdWJ5UG9zaXRpb24oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRFbXBoYXNpc1Bvc2l0
aW9uIHBvc2l0aW9uKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAocG9zaXRpb24pIHsKICAgICBjYXNlIFRleHRFbXBo
YXNpc1Bvc2l0aW9uT3ZlcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3ZlcjsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPdmVyOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFRleHRFbXBoYXNpc1Bvc2l0aW9uVW5kZXI6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZVVuZGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVu
ZGVyOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RW1waGFzaXNQb3NpdGlvbigpIGNvbnN0CiB7Ci0g
ICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQp
IHsKICAgICBjYXNlIENTU1ZhbHVlT3ZlcjoKICAgICAgICAgcmV0dXJuIFRleHRFbXBoYXNpc1Bv
c2l0aW9uT3ZlcjsKICAgICBjYXNlIENTU1ZhbHVlVW5kZXI6CiAgICAgICAgIHJldHVybiBUZXh0
RW1waGFzaXNQb3NpdGlvblVuZGVyOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzA1NiwyNCArMzE3MywyNiBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEVtcGhhc2lz
UG9zaXRpb24oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKFRleHRPdmVyZmxvdyBvdmVyZmxvdykKICAgICA6IENTU1ZhbHVlKFBy
aW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Cisg
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKG92ZXJm
bG93KSB7CiAgICAgY2FzZSBUZXh0T3ZlcmZsb3dDbGlwOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVDbGlwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNsaXA7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dE92ZXJmbG93RWxsaXBzaXM6Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUVsbGlwc2lzOworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUVsbGlwc2lzOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0T3ZlcmZsb3coKSBj
b25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUNsaXA6CiAgICAgICAgIHJldHVybiBUZXh0
T3ZlcmZsb3dDbGlwOwogICAgIGNhc2UgQ1NTVmFsdWVFbGxpcHNpczoKICAgICAgICAgcmV0dXJu
IFRleHRPdmVyZmxvd0VsbGlwc2lzOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzA4MywyNCArMzIwMiwyNiBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dE92ZXJmbG93
KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShUZXh0RW1waGFzaXNGaWxsIGZpbGwpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVD
bGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChmaWxsKSB7CiAgICAg
Y2FzZSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVGaWxsZWQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmlsbGVkOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNpc0ZpbGxPcGVuOgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcGVuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU9wZW47CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRFbXBoYXNpc0ZpbGwoKSBjb25zdAog
ewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1
ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUZpbGxlZDoKICAgICAgICAgcmV0dXJuIFRleHRFbXBo
YXNpc0ZpbGxGaWxsZWQ7CiAgICAgY2FzZSBDU1NWYWx1ZU9wZW46CiAgICAgICAgIHJldHVybiBU
ZXh0RW1waGFzaXNGaWxsT3BlbjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTMxMTAsMzUgKzMyMzEsMzUgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRFbXBoYXNpc0Zp
bGwoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKFRleHRFbXBoYXNpc01hcmsgbWFyaykKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2
ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKG1hcmspIHsKICAg
ICBjYXNlIFRleHRFbXBoYXNpc01hcmtEb3Q6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZURvdDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEb3Q7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0NpcmNsZToKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQ2lyY2xlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUNpcmNsZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrRG91
YmxlQ2lyY2xlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEb3VibGVDaXJjbGU7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRG91YmxlQ2lyY2xlOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtUcmlhbmdsZToKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlVHJpYW5nbGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlVHJpYW5nbGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEVtcGhhc2lz
TWFya1Nlc2FtZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2VzYW1lOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNlc2FtZTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrTm9uZToKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtB
dXRvOgogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0N1c3RvbToKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4
dEVtcGhhc2lzTWFyaygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Cisg
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAg
ICAgICAgcmV0dXJuIFRleHRFbXBoYXNpc01hcmtOb25lOwogICAgIGNhc2UgQ1NTVmFsdWVEb3Q6
CkBAIC0zMTUxLDYgKzMyNzIsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgVGV4dEVtcGhhc2lzTWFyaygpIGNvbnN0CiAgICAgICAgIHJldHVybiBUZXh0
RW1waGFzaXNNYXJrVHJpYW5nbGU7CiAgICAgY2FzZSBDU1NWYWx1ZVNlc2FtZToKICAgICAgICAg
cmV0dXJuIFRleHRFbXBoYXNpc01hcmtTZXNhbWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zMTYwLDI2ICszMjgz
LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0
RW1waGFzaXNNYXJrKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0T3JpZW50YXRpb24gZSkKICAgICA6IENTU1ZhbHVlKFBy
aW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Cisg
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIFRleHRPcmllbnRhdGlvblNpZGV3YXlzOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVTaWRld2F5czsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
aWRld2F5czsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0T3JpZW50YXRpb25TaWRld2F5
c1JpZ2h0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTaWRld2F5c1JpZ2h0Owor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNpZGV3YXlzUmlnaHQ7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGV4dE9yaWVudGF0aW9uVmVydGljYWxSaWdodDoKLSAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmVydGljYWxSaWdodDsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbFJpZ2h0OwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFRleHRPcmllbnRhdGlvblVwcmlnaHQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVVwcmlnaHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXByaWdodDsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgVGV4dE9yaWVudGF0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1f
dmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2Ug
Q1NTVmFsdWVTaWRld2F5czoKICAgICAgICAgcmV0dXJuIFRleHRPcmllbnRhdGlvblNpZGV3YXlz
OwogICAgIGNhc2UgQ1NTVmFsdWVTaWRld2F5c1JpZ2h0OgpAQCAtMzE4OCw2ICszMzExLDggQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRPcmllbnRh
dGlvbigpIGNvbnN0CiAgICAgICAgIHJldHVybiBUZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0
OwogICAgIGNhc2UgQ1NTVmFsdWVVcHJpZ2h0OgogICAgICAgICByZXR1cm4gVGV4dE9yaWVudGF0
aW9uVXByaWdodDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTMxOTcsNjQgKzMzMjIsNjYgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRPcmllbnRhdGlvbigpIGNvbnN0
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
RVBvaW50ZXJFdmVudHMgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBQRV9OT05F
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFBFX1NUUk9LRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZVN0cm9rZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBF
X0ZJTEw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGaWxsOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUEVfUEFJTlRFRDoKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVBhaW50ZWQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBQRV9WSVNJQkxFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmlz
aWJsZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBFX1ZJU0lCTEVfU1RST0tF
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmlzaWJsZXN0cm9rZTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBFX1ZJU0lCTEVfRklMTDoKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVZpc2libGVmaWxsOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgUEVfVklTSUJMRV9QQUlOVEVEOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlVmlzaWJsZXBhaW50ZWQ7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBQRV9BVVRPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
QXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBFX0FMTDoKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFsbDsKLSAgICAgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUEVfTk9ORToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFBFX1NUUk9LRToKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVTdHJva2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUEVfRklMTDoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGaWxsOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFBFX1BBSU5URUQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
UGFpbnRlZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQRV9WSVNJQkxFOgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpc2libGU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUEVfVklTSUJMRV9TVFJPS0U6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
VmlzaWJsZXN0cm9rZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQRV9WSVNJQkxFX0ZJTEw6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmlzaWJsZWZpbGw7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUEVfVklTSUJMRV9QQUlOVEVEOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVZpc2libGVwYWludGVkOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBFX0FVVE86CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBQRV9BTEw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQWxsOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUG9pbnRlckV2ZW50cygpIGNvbnN0CiB7Ci0g
ICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBbGw6Ci0g
ICAgICAgICAgICByZXR1cm4gUEVfQUxMOwotICAgICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKLSAg
ICAgICAgICAgIHJldHVybiBQRV9BVVRPOwotICAgICAgICBjYXNlIENTU1ZhbHVlTm9uZToKLSAg
ICAgICAgICAgIHJldHVybiBQRV9OT05FOwotICAgICAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZXBh
aW50ZWQ6Ci0gICAgICAgICAgICByZXR1cm4gUEVfVklTSUJMRV9QQUlOVEVEOwotICAgICAgICBj
YXNlIENTU1ZhbHVlVmlzaWJsZWZpbGw6Ci0gICAgICAgICAgICByZXR1cm4gUEVfVklTSUJMRV9G
SUxMOwotICAgICAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZXN0cm9rZToKLSAgICAgICAgICAgIHJl
dHVybiBQRV9WSVNJQkxFX1NUUk9LRTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVZpc2libGU6Ci0g
ICAgICAgICAgICByZXR1cm4gUEVfVklTSUJMRTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVBhaW50
ZWQ6Ci0gICAgICAgICAgICByZXR1cm4gUEVfUEFJTlRFRDsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZUZpbGw6Ci0gICAgICAgICAgICByZXR1cm4gUEVfRklMTDsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZVN0cm9rZToKLSAgICAgICAgICAgIHJldHVybiBQRV9TVFJPS0U7CisgICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQWxsOgorICAgICAgICByZXR1cm4gUEVf
QUxMOworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4gUEVfQVVUTzsKKyAg
ICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIFBFX05PTkU7CisgICAgY2FzZSBD
U1NWYWx1ZVZpc2libGVwYWludGVkOgorICAgICAgICByZXR1cm4gUEVfVklTSUJMRV9QQUlOVEVE
OworICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlZmlsbDoKKyAgICAgICAgcmV0dXJuIFBFX1ZJU0lC
TEVfRklMTDsKKyAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZXN0cm9rZToKKyAgICAgICAgcmV0dXJu
IFBFX1ZJU0lCTEVfU1RST0tFOworICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlOgorICAgICAgICBy
ZXR1cm4gUEVfVklTSUJMRTsKKyAgICBjYXNlIENTU1ZhbHVlUGFpbnRlZDoKKyAgICAgICAgcmV0
dXJuIFBFX1BBSU5URUQ7CisgICAgY2FzZSBDU1NWYWx1ZUZpbGw6CisgICAgICAgIHJldHVybiBQ
RV9GSUxMOworICAgIGNhc2UgQ1NTVmFsdWVTdHJva2U6CisgICAgICAgIHJldHVybiBQRV9TVFJP
S0U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0zMjY0LDMyICszMzkxLDM0IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUG9pbnRlckV2ZW50cygpIGNvbnN0CiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udERlc2Ny
aXB0aW9uOjpLZXJuaW5nIGtlcm5pbmcpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykK
IHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChrZXJuaW5nKSB7CiAgICAgY2Fz
ZSBGb250RGVzY3JpcHRpb246OkF1dG9LZXJuaW5nOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVBdXRvOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CiAg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6Tm9ybWFsS2VybmluZzoK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9u
dERlc2NyaXB0aW9uOjpOb25lS2VybmluZzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKKyAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1
dG87CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBG
b250RGVzY3JpcHRpb246Oktlcm5pbmcoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5p
ZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1
ZUF1dG86CiAgICAgICAgIHJldHVybiBGb250RGVzY3JpcHRpb246OkF1dG9LZXJuaW5nOwogICAg
IGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBGb250RGVzY3JpcHRpb246Ok5v
cm1hbEtlcm5pbmc7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBGb250
RGVzY3JpcHRpb246Ok5vbmVLZXJuaW5nOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwog
ICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzI5OSwyOSArMzQyOCwyOSBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udERlc2Ny
aXB0aW9uOjpLZXJuaW5nKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmcpCiAgICAg
OiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAg
c3dpdGNoIChzbW9vdGhpbmcpIHsKICAgICBjYXNlIEF1dG9TbW9vdGhpbmc6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQXV0bzsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTm9TbW9vdGhpbmc6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTm9uZTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQW50aWFsaWFzZWQ6
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFudGlhbGlhc2VkOworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFudGlhbGlhc2VkOwogICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBTdWJwaXhlbEFudGlhbGlhc2VkOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVTdWJwaXhlbEFudGlhbGlhc2VkOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVN1YnBpeGVsQW50aWFsaWFzZWQ7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwor
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRTbW9vdGhpbmdNb2RlKCkgY29uc3QK
IHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gQXV0b1Ntb290
aGluZzsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKQEAgLTMzMzAsNiArMzQ1OSw4IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250U21vb3RoaW5nTW9k
ZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBBbnRpYWxpYXNlZDsKICAgICBjYXNlIENTU1ZhbHVl
U3VicGl4ZWxBbnRpYWxpYXNlZDoKICAgICAgICAgcmV0dXJuIFN1YnBpeGVsQW50aWFsaWFzZWQ7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkBAIC0zMzM5LDQ0ICszNDcwLDQ0IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250U21vb3RoaW5nTW9kZSgpIGNvbnN0CiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udFdlaWdo
dCB3ZWlnaHQpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1p
dGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1Nf
VkFMVUVfSUQ7CiAgICAgc3dpdGNoICh3ZWlnaHQpIHsKICAgICBjYXNlIEZvbnRXZWlnaHQ5MDA6
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZTkwMDsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWU5MDA7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEZvbnRXZWln
aHQ4MDA6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZTgwMDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWU4MDA7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEZv
bnRXZWlnaHQ3MDA6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZTcwMDsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWU3MDA7CiAgICAgICAgIHJldHVybjsKICAgICBj
YXNlIEZvbnRXZWlnaHQ2MDA6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZTYwMDsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWU2MDA7CiAgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIEZvbnRXZWlnaHQ1MDA6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZTUwMDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWU1MDA7CiAgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIEZvbnRXZWlnaHQ0MDA6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZTQwMDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWU0MDA7CiAgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIEZvbnRXZWlnaHQzMDA6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZTMwMDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWUzMDA7
CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEZvbnRXZWlnaHQyMDA6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZTIwMDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWUyMDA7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEZvbnRXZWlnaHQxMDA6Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZTEwMDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWUxMDA7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250V2VpZ2h0KCkgY29uc3QKIHsKLSAgICBzd2l0Y2gg
KG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNh
c2UgQ1NTVmFsdWVCb2xkOgogICAgICAgICByZXR1cm4gRm9udFdlaWdodEJvbGQ7CiAgICAgY2Fz
ZSBDU1NWYWx1ZU5vcm1hbDoKQEAgLTMzOTksNiArMzUzMCw4IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250V2VpZ2h0KCkgY29uc3QKICAgICAgICAg
cmV0dXJuIEZvbnRXZWlnaHQyMDA7CiAgICAgY2FzZSBDU1NWYWx1ZTEwMDoKICAgICAgICAgcmV0
dXJuIEZvbnRXZWlnaHQxMDA7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNDA4LDI5ICszNTQxLDMxIEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250V2VpZ2h0KCkgY29u
c3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShGb250SXRhbGljIGl0YWxpYykKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGl0YWxpYykgewogICAgIGNhc2UgRm9u
dEl0YWxpY09mZjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9ybWFsOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKICAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgRm9udEl0YWxpY09uOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVJ
dGFsaWM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSXRhbGljOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlTm9ybWFsOworICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Tm9ybWFsOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRm9udEl0YWxpYygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Cisg
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlT2JsaXF1ZToK
ICAgICAvLyBGSVhNRTogb2JsaXF1ZSBpcyB0aGUgc2FtZSBhcyBpdGFsaWMgZm9yIHRoZSBtb21l
bnQuLi4KICAgICBjYXNlIENTU1ZhbHVlSXRhbGljOgogICAgICAgICByZXR1cm4gRm9udEl0YWxp
Y09uOwogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBGb250SXRhbGlj
T2ZmOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICByZXR1cm4gRm9udEl0YWxpY09mZjsKQEAgLTM0MzksMjcgKzM1NzQs
MjkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRJ
dGFsaWMoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1By
aW1pdGl2ZVZhbHVlKEZvbnRTbWFsbENhcHMgc21hbGxDYXBzKQogICAgIDogQ1NTVmFsdWUoUHJp
bWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoc21hbGxD
YXBzKSB7CiAgICAgY2FzZSBGb250U21hbGxDYXBzT2ZmOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9y
bWFsOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBGb250U21hbGxDYXBzT246Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNtYWxsQ2FwczsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVTbWFsbENhcHM7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7
CisgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CiB9CiAKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250U21hbGxDYXBzKCkgY29uc3QK
IHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVTbWFsbENhcHM6CiAgICAgICAgIHJldHVybiBGb250
U21hbGxDYXBzT247CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIEZv
bnRTbWFsbENhcHNPZmY7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBGb250U21hbGxDYXBzT2ZmOwpAQCAt
MzQ2OCwzNCArMzYwNSwzNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRm9udFNtYWxsQ2FwcygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dFJlbmRlcmluZ01vZGUgZSkKICAgICA6
IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBD
U1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBz
d2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBBdXRvVGV4dFJlbmRlcmluZzoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBPcHRpbWl6ZVNwZWVkOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlT3B0aW1pemVzcGVlZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE9wdGlt
aXplTGVnaWJpbGl0eToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU9wdGlt
aXplbGVnaWJpbGl0eTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEdlb21ldHJp
Y1ByZWNpc2lvbjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUdlb21ldHJp
Y3ByZWNpc2lvbjsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXV0b1RleHRSZW5kZXJp
bmc6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBPcHRpbWl6ZVNwZWVkOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU9wdGltaXplc3BlZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3B0aW1pemVM
ZWdpYmlsaXR5OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplbGVn
aWJpbGl0eTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHZW9tZXRyaWNQcmVjaXNpb246Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlR2VvbWV0cmljcHJlY2lzaW9uOworICAg
ICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBUZXh0UmVuZGVyaW5nTW9kZSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoICht
X3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAgICAg
cmV0dXJuIEF1dG9UZXh0UmVuZGVyaW5nOwotICAgICAgICBjYXNlIENTU1ZhbHVlT3B0aW1pemVz
cGVlZDoKLSAgICAgICAgICAgIHJldHVybiBPcHRpbWl6ZVNwZWVkOwotICAgICAgICBjYXNlIENT
U1ZhbHVlT3B0aW1pemVsZWdpYmlsaXR5OgotICAgICAgICAgICAgcmV0dXJuIE9wdGltaXplTGVn
aWJpbGl0eTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUdlb21ldHJpY3ByZWNpc2lvbjoKLSAgICAg
ICAgICAgIHJldHVybiBHZW9tZXRyaWNQcmVjaXNpb247CisgICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0dXJuIEF1dG9UZXh0
UmVuZGVyaW5nOworICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOgorICAgICAgICByZXR1
cm4gT3B0aW1pemVTcGVlZDsKKyAgICBjYXNlIENTU1ZhbHVlT3B0aW1pemVsZWdpYmlsaXR5Ogor
ICAgICAgICByZXR1cm4gT3B0aW1pemVMZWdpYmlsaXR5OworICAgIGNhc2UgQ1NTVmFsdWVHZW9t
ZXRyaWNwcmVjaXNpb246CisgICAgICAgIHJldHVybiBHZW9tZXRyaWNQcmVjaXNpb247CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkBAIC0zNTA1LDI5ICszNjQ0LDMxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBUZXh0UmVuZGVyaW5nTW9kZSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29sb3JTcGFjZSBzcGFj
ZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9J
RDsKICAgICBzd2l0Y2ggKHNwYWNlKSB7CiAgICAgY2FzZSBDb2xvclNwYWNlRGV2aWNlUkdCOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEZWZhdWx0OworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZURlZmF1bHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29s
b3JTcGFjZVNSR0I6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNyZ2I7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3JnYjsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDb2xvclNwYWNlTGluZWFyUkdCOgogICAgICAgICAvLyBDU1MgY29sb3IgY29ycmVjdGlv
biBkb2VzIG5vdCBzdXBwb3J0IGxpbmVhclJHQiB5ZXQuCiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEZWZhdWx0OworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlZmF1bHQ7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENv
bG9yU3BhY2UoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZURlZmF1bHQ6CiAgICAg
ICAgIHJldHVybiBDb2xvclNwYWNlRGV2aWNlUkdCOwogICAgIGNhc2UgQ1NTVmFsdWVTcmdiOgog
ICAgICAgICByZXR1cm4gQ29sb3JTcGFjZVNSR0I7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNTM3LDI5ICszNjc4
LDMxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2xv
clNwYWNlKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShIeXBoZW5zIGh5cGhlbnMpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVD
bGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChoeXBoZW5zKSB7CiAg
ICAgY2FzZSBIeXBoZW5zTm9uZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9u
ZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEh5cGhlbnNNYW51YWw6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZU1hbnVhbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNYW51YWw7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgSHlwaGVuc0F1dG86Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0
bzsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgSHlwaGVucygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3Zh
bHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENT
U1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIEh5cGhlbnNOb25lOwogICAgIGNhc2UgQ1NTVmFs
dWVNYW51YWw6CiAgICAgICAgIHJldHVybiBIeXBoZW5zTWFudWFsOwogICAgIGNhc2UgQ1NTVmFs
dWVBdXRvOgogICAgICAgICByZXR1cm4gSHlwaGVuc0F1dG87CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNTY5LDI5
ICszNzEyLDMxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBIeXBoZW5zKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShMaW5lU25hcCBncmlkU25hcCkKICAgICA6IENTU1ZhbHVlKFByaW1p
dGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAg
bV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGdyaWRTbmFw
KSB7CiAgICAgY2FzZSBMaW5lU25hcE5vbmU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZU5vbmU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lU25hcEJhc2VsaW5lOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVCYXNlbGluZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVCYXNlbGluZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lU25hcENvbnRhaW46Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbnRhaW47CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQ29udGFpbjsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZVNuYXAoKSBj
b25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBMaW5l
U25hcE5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZUJhc2VsaW5lOgogICAgICAgICByZXR1cm4gTGlu
ZVNuYXBCYXNlbGluZTsKICAgICBjYXNlIENTU1ZhbHVlQ29udGFpbjoKICAgICAgICAgcmV0dXJu
IExpbmVTbmFwQ29udGFpbjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM2MDEsMjQgKzM3NDYsMjYgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVTbmFwKCkgY29uc3QK
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShM
aW5lQWxpZ24gbGluZUFsaWduKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAobGluZUFsaWduKSB7CiAgICAgY2FzZSBM
aW5lQWxpZ25Ob25lOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTGluZUFsaWduRWRnZXM6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUVk
Z2VzOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVkZ2VzOwogICAgICAgICBi
cmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBMaW5lQWxpZ24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkg
eworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6
CiAgICAgICAgIHJldHVybiBMaW5lQWxpZ25Ob25lOwogICAgIGNhc2UgQ1NTVmFsdWVFZGdlczoK
ICAgICAgICAgcmV0dXJuIExpbmVBbGlnbkVkZ2VzOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzYyOCwzNiArMzc3
NSwzOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGlu
ZUFsaWduKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShFU3BlYWsgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQog
ewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFNwZWFr
Tm9uZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNw
ZWFrTm9ybWFsOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFNwZWFrU3BlbGxPdXQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNw
ZWxsT3V0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwZWxsT3V0OwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFNwZWFrRGlnaXRzOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVEaWdpdHM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGln
aXRzOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNwZWFrTGl0ZXJhbFB1bmN0dWF0aW9uOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMaXRlcmFsUHVuY3R1YXRpb247CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGl0ZXJhbFB1bmN0dWF0aW9uOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFNwZWFrTm9QdW5jdHVhdGlvbjoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlTm9QdW5jdHVhdGlvbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVOb1B1bmN0dWF0aW9uOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcmRlcigpIGNvbnN0CiB7
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVl
SUQpIHsKICAgICBjYXNlIENTU1ZhbHVlTG9naWNhbDoKICAgICAgICAgcmV0dXJuIExvZ2ljYWxP
cmRlcjsKICAgICBjYXNlIENTU1ZhbHVlVmlzdWFsOgogICAgICAgICByZXR1cm4gVmlzdWFsT3Jk
ZXI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0zNjY3LDIwICszODE2LDIwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcmRlcigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3JkZXIgZSkKICAgICA6IENT
U1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1Nf
SURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0
Y2ggKGUpIHsKICAgICBjYXNlIExvZ2ljYWxPcmRlcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTG9naWNhbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMb2dp
Y2FsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZpc3VhbE9yZGVyOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVWaXN1YWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlVmlzdWFsOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFU3BlYWsoKSBjb25zdAogewotICAgIHN3
aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAg
ICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBTcGVha05vbmU7CiAgICAgY2Fz
ZSBDU1NWYWx1ZU5vcm1hbDoKQEAgLTM2OTMsNiArMzg0Miw4IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFU3BlYWsoKSBjb25zdAogICAgICAgICByZXR1
cm4gU3BlYWtMaXRlcmFsUHVuY3R1YXRpb247CiAgICAgY2FzZSBDU1NWYWx1ZU5vUHVuY3R1YXRp
b246CiAgICAgICAgIHJldHVybiBTcGVha05vUHVuY3R1YXRpb247CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNzAy
LDYyICszODUzLDYyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFU3BlYWsoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEJsZW5kTW9kZSBibGVuZE1vZGUpCiAgICAgOiBDU1NWYWx1ZShQ
cmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwor
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChibGVu
ZE1vZGUpIHsKICAgICBjYXNlIEJsZW5kTW9kZU5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5v
cm1hbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVNdWx0aXBseToKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTXVsdGlwbHk7CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTXVsdGlwbHk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRN
b2RlU2NyZWVuOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTY3JlZW47CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2NyZWVuOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEJsZW5kTW9kZU92ZXJsYXk6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZU92ZXJsYXk7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3ZlcmxheTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVEYXJrZW46Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZURhcmtlbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVEYXJrZW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlTGlnaHRlbjoKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTGlnaHRlbjsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVMaWdodGVuOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5k
TW9kZUNvbG9yRG9kZ2U6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbG9yRG9k
Z2U7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sb3JEb2RnZTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVDb2xvckJ1cm46Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUNvbG9yQnVybjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVDb2xvckJ1cm47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlSGFyZExp
Z2h0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIYXJkTGlnaHQ7CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGFyZExpZ2h0OwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEJsZW5kTW9kZVNvZnRMaWdodDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlU29mdExpZ2h0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNvZnRMaWdo
dDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVEaWZmZXJlbmNlOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEaWZmZXJlbmNlOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZURpZmZlcmVuY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxl
bmRNb2RlRXhjbHVzaW9uOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFeGNsdXNp
b247CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXhjbHVzaW9uOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZUh1ZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlSHVlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUh1ZTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVTYXR1cmF0aW9uOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVTYXR1cmF0aW9uOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVNhdHVyYXRpb247CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2Rl
Q29sb3I6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbG9yOworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbG9yOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJsZW5kTW9kZUx1bWlub3NpdHk6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUx1
bWlub3NpdHk7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTHVtaW5vc2l0eTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgQmxlbmRNb2RlKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFs
dWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NT
VmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBCbGVuZE1vZGVOb3JtYWw7CiAgICAgY2FzZSBD
U1NWYWx1ZU11bHRpcGx5OgpAQCAtMzc5MCw2ICszOTQxLDggQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJsZW5kTW9kZSgpIGNvbnN0CiAgICAgICAgIHJl
dHVybiBCbGVuZE1vZGVDb2xvcjsKICAgICBjYXNlIENTU1ZhbHVlTHVtaW5vc2l0eToKICAgICAg
ICAgcmV0dXJuIEJsZW5kTW9kZUx1bWlub3NpdHk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zODAxLDI5ICszOTU0
LDMxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCbGVu
ZE1vZGUoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1By
aW1pdGl2ZVZhbHVlKExpbmVDYXAgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQog
ewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBC
dXR0Q2FwOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQnV0dDsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJvdW5kQ2FwOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlUm91bmQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBTcXVhcmVDYXA6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcXVhcmU7
Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIEJ1dHRDYXA6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQnV0dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSb3VuZENh
cDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3VuZDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBTcXVhcmVDYXA6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlU3F1YXJlOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQ2FwKCkgY29uc3QKIHsKLSAgICBzd2l0
Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJ1dHQ6Ci0gICAgICAg
ICAgICByZXR1cm4gQnV0dENhcDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVJvdW5kOgotICAgICAg
ICAgICAgcmV0dXJuIFJvdW5kQ2FwOwotICAgICAgICBjYXNlIENTU1ZhbHVlU3F1YXJlOgotICAg
ICAgICAgICAgcmV0dXJuIFNxdWFyZUNhcDsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIGNhc2UgQ1NTVmFsdWVCdXR0OgorICAgICAgICByZXR1cm4gQnV0dENhcDsKKyAgICBj
YXNlIENTU1ZhbHVlUm91bmQ6CisgICAgICAgIHJldHVybiBSb3VuZENhcDsKKyAgICBjYXNlIENT
U1ZhbHVlU3F1YXJlOgorICAgICAgICByZXR1cm4gU3F1YXJlQ2FwOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzgz
MywyOSArMzk4OCwzMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgTGluZUNhcCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoTGluZUpvaW4gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2
ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAg
ICAgY2FzZSBNaXRlckpvaW46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVN
aXRlcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJvdW5kSm9pbjoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJvdW5kOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQmV2ZWxKb2luOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQmV2ZWw7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIE1pdGVySm9pbjoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaXRlcjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBSb3VuZEpvaW46CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUm91
bmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQmV2ZWxKb2luOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUJldmVsOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lSm9pbigpIGNv
bnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFs
dWVNaXRlcjoKLSAgICAgICAgICAgIHJldHVybiBNaXRlckpvaW47Ci0gICAgICAgIGNhc2UgQ1NT
VmFsdWVSb3VuZDoKLSAgICAgICAgICAgIHJldHVybiBSb3VuZEpvaW47Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVCZXZlbDoKLSAgICAgICAgICAgIHJldHVybiBCZXZlbEpvaW47CisgICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlTWl0ZXI6CisgICAgICAgIHJl
dHVybiBNaXRlckpvaW47CisgICAgY2FzZSBDU1NWYWx1ZVJvdW5kOgorICAgICAgICByZXR1cm4g
Um91bmRKb2luOworICAgIGNhc2UgQ1NTVmFsdWVCZXZlbDoKKyAgICAgICAgcmV0dXJuIEJldmVs
Sm9pbjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKQEAgLTM4NjUsMjQgKzQwMjIsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVKb2luKCkgY29uc3QKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShXaW5kUnVsZSBlKQog
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwog
ICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIFJVTEVfTk9OWkVSTzoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbnplcm87Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBSVUxFX0VWRU5PREQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVFdmVub2RkOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSVUxFX05PTlpFUk86
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uemVybzsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBSVUxFX0VWRU5PREQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlRXZlbm9kZDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV2luZFJ1bGUoKSBjb25zdAogewotICAg
IHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlTm9uemVybzoK
LSAgICAgICAgICAgIHJldHVybiBSVUxFX05PTlpFUk87Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVF
dmVub2RkOgotICAgICAgICAgICAgcmV0dXJuIFJVTEVfRVZFTk9ERDsKKyAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVOb256ZXJvOgorICAgICAgICByZXR1
cm4gUlVMRV9OT05aRVJPOworICAgIGNhc2UgQ1NTVmFsdWVFdmVub2RkOgorICAgICAgICByZXR1
cm4gUlVMRV9FVkVOT0REOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzg5Myw3NCArNDA1Miw3NiBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV2luZFJ1bGUoKSBjb25zdAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVB
bGlnbm1lbnRCYXNlbGluZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIEFCX0FV
VE86Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQUJfQkFTRUxJTkU6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVCYXNlbGluZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIEFCX0JFRk9SRV9FREdFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
QmVmb3JlRWRnZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFCX1RFWFRfQkVG
T1JFX0VER0U6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUZXh0QmVmb3Jl
RWRnZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFCX01JRERMRToKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1pZGRsZTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIEFCX0NFTlRSQUw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVDZW50cmFsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQUJfQUZU
RVJfRURHRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFmdGVyRWRnZTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFCX1RFWFRfQUZURVJfRURHRToKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRleHRBZnRlckVkZ2U7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBQl9JREVPR1JBUEhJQzoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUlkZW9ncmFwaGljOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQUJfQUxQSEFCRVRJQzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUFscGhhYmV0aWM7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBQl9I
QU5HSU5HOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGFuZ2luZzsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFCX01BVEhFTUFUSUNBTDoKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1hdGhlbWF0aWNhbDsKLSAgICAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQUJfQVVUTzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVBdXRvOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFCX0JBU0VMSU5FOgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJhc2VsaW5lOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFCX0JFRk9SRV9FREdFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJl
Zm9yZUVkZ2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQUJfVEVYVF9CRUZPUkVfRURHRToK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0QmVmb3JlRWRnZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBBQl9NSURETEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTWlkZGxlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFCX0NFTlRSQUw6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudHJhbDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBQl9BRlRFUl9FREdFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUFmdGVyRWRnZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBQl9URVhUX0FGVEVSX0VE
R0U6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dEFmdGVyRWRnZTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBQl9JREVPR1JBUEhJQzoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVJZGVvZ3JhcGhpYzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBB
Ql9BTFBIQUJFVElDOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFscGhhYmV0
aWM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQUJfSEFOR0lORzoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVIYW5naW5nOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFC
X01BVEhFTUFUSUNBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNYXRoZW1h
dGljYWw7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVBbGlnbm1lbnRCYXNlbGluZSgpIGNvbnN0CiB7Ci0g
ICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgot
ICAgICAgICAgICAgcmV0dXJuIEFCX0FVVE87Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVCYXNlbGlu
ZToKLSAgICAgICAgICAgIHJldHVybiBBQl9CQVNFTElORTsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZUJlZm9yZUVkZ2U6Ci0gICAgICAgICAgICByZXR1cm4gQUJfQkVGT1JFX0VER0U7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVUZXh0QmVmb3JlRWRnZToKLSAgICAgICAgICAgIHJldHVybiBBQl9URVhU
X0JFRk9SRV9FREdFOwotICAgICAgICBjYXNlIENTU1ZhbHVlTWlkZGxlOgotICAgICAgICAgICAg
cmV0dXJuIEFCX01JRERMRTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUNlbnRyYWw6Ci0gICAgICAg
ICAgICByZXR1cm4gQUJfQ0VOVFJBTDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFmdGVyRWRnZToK
LSAgICAgICAgICAgIHJldHVybiBBQl9BRlRFUl9FREdFOwotICAgICAgICBjYXNlIENTU1ZhbHVl
VGV4dEFmdGVyRWRnZToKLSAgICAgICAgICAgIHJldHVybiBBQl9URVhUX0FGVEVSX0VER0U7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVJZGVvZ3JhcGhpYzoKLSAgICAgICAgICAgIHJldHVybiBBQl9J
REVPR1JBUEhJQzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFscGhhYmV0aWM6Ci0gICAgICAgICAg
ICByZXR1cm4gQUJfQUxQSEFCRVRJQzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUhhbmdpbmc6Ci0g
ICAgICAgICAgICByZXR1cm4gQUJfSEFOR0lORzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU1hdGhl
bWF0aWNhbDoKLSAgICAgICAgICAgIHJldHVybiBBQl9NQVRIRU1BVElDQUw7CisgICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0
dXJuIEFCX0FVVE87CisgICAgY2FzZSBDU1NWYWx1ZUJhc2VsaW5lOgorICAgICAgICByZXR1cm4g
QUJfQkFTRUxJTkU7CisgICAgY2FzZSBDU1NWYWx1ZUJlZm9yZUVkZ2U6CisgICAgICAgIHJldHVy
biBBQl9CRUZPUkVfRURHRTsKKyAgICBjYXNlIENTU1ZhbHVlVGV4dEJlZm9yZUVkZ2U6CisgICAg
ICAgIHJldHVybiBBQl9URVhUX0JFRk9SRV9FREdFOworICAgIGNhc2UgQ1NTVmFsdWVNaWRkbGU6
CisgICAgICAgIHJldHVybiBBQl9NSURETEU7CisgICAgY2FzZSBDU1NWYWx1ZUNlbnRyYWw6Cisg
ICAgICAgIHJldHVybiBBQl9DRU5UUkFMOworICAgIGNhc2UgQ1NTVmFsdWVBZnRlckVkZ2U6Cisg
ICAgICAgIHJldHVybiBBQl9BRlRFUl9FREdFOworICAgIGNhc2UgQ1NTVmFsdWVUZXh0QWZ0ZXJF
ZGdlOgorICAgICAgICByZXR1cm4gQUJfVEVYVF9BRlRFUl9FREdFOworICAgIGNhc2UgQ1NTVmFs
dWVJZGVvZ3JhcGhpYzoKKyAgICAgICAgcmV0dXJuIEFCX0lERU9HUkFQSElDOworICAgIGNhc2Ug
Q1NTVmFsdWVBbHBoYWJldGljOgorICAgICAgICByZXR1cm4gQUJfQUxQSEFCRVRJQzsKKyAgICBj
YXNlIENTU1ZhbHVlSGFuZ2luZzoKKyAgICAgICAgcmV0dXJuIEFCX0hBTkdJTkc7CisgICAgY2Fz
ZSBDU1NWYWx1ZU1hdGhlbWF0aWNhbDoKKyAgICAgICAgcmV0dXJuIEFCX01BVEhFTUFUSUNBTDsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTM5NzIsMjQgKzQxMzMsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVBbGlnbm1lbnRCYXNlbGluZSgpIGNvbnN0CiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJvcmRlckNv
bGxhcHNlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1p
dGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1Nf
VkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBCU0VQQVJBVEU6Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNlcGFyYXRlOworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVNlcGFyYXRlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJDT0xMQVBT
RToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sbGFwc2U7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sbGFwc2U7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3Jk
ZXJDb2xsYXBzZSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlU2VwYXJhdGU6CiAg
ICAgICAgIHJldHVybiBCU0VQQVJBVEU7CiAgICAgY2FzZSBDU1NWYWx1ZUNvbGxhcHNlOgogICAg
ICAgICByZXR1cm4gQkNPTExBUFNFOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzk5OSwyNCArNDE2MiwyNiBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJvcmRlckNvbGxh
cHNlKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShFQm9yZGVyRml0IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykK
IHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBCb3Jk
ZXJGaXRCb3JkZXI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJvcmRlcjsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXI7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQm9yZGVyRml0TGluZXM6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUxpbmVzOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxpbmVzOwogICAgICAg
ICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBFQm9yZGVyRml0KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRl
bnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVC
b3JkZXI6CiAgICAgICAgIHJldHVybiBCb3JkZXJGaXRCb3JkZXI7CiAgICAgY2FzZSBDU1NWYWx1
ZUxpbmVzOgogICAgICAgICByZXR1cm4gQm9yZGVyRml0TGluZXM7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC00MDI2
LDI2ICs0MTkxLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFQm9yZGVyRml0KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFSW1hZ2VSZW5kZXJpbmcgZSkKICAgICA6IENTU1ZhbHVl
KFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7
CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUp
IHsKICAgICBjYXNlIEltYWdlUmVuZGVyaW5nQXV0bzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEltYWdlUmVuZGVyaW5nQ3Jpc3BFZGdlczoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0Q3Jpc3BFZGdlczsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRDcmlzcEVkZ2VzOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEltYWdlUmVuZGVyaW5nT3B0aW1pemVTcGVlZDoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlT3B0aW1pemVzcGVlZDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVPcHRpbWl6ZXNwZWVkOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEltYWdlUmVu
ZGVyaW5nT3B0aW1pemVRdWFsaXR5OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVP
cHRpbWl6ZXF1YWxpdHk7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1p
emVxdWFsaXR5OwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFSW1hZ2VSZW5kZXJpbmcoKSBjb25zdAogewot
ICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBJbWFnZVJlbmRlcmlu
Z0F1dG87CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdE9wdGltaXplQ29udHJhc3Q6CkBAIC00MDU1
LDYgKzQyMjAsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRUltYWdlUmVuZGVyaW5nKCkgY29uc3QKICAgICAgICAgcmV0dXJuIEltYWdlUmVuZGVyaW5n
T3B0aW1pemVTcGVlZDsKICAgICBjYXNlIENTU1ZhbHVlT3B0aW1pemVxdWFsaXR5OgogICAgICAg
ICByZXR1cm4gSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVF1YWxpdHk7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC00MDY0
LDI0ICs0MjMxLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFSW1hZ2VSZW5kZXJpbmcoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVUcmFuc2Zvcm1TdHlsZTNEIGUpCiAgICAgOiBD
U1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NT
X0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dp
dGNoIChlKSB7CiAgICAgY2FzZSBUcmFuc2Zvcm1TdHlsZTNERmxhdDoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlRmxhdDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVGbGF0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRyYW5zZm9ybVN0eWxlM0RQcmVzZXJ2
ZTNEOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVQcmVzZXJ2ZTNkOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVByZXNlcnZlM2Q7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVUcmFuc2Zvcm1TdHlsZTNEKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQp
IHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVGbGF0
OgogICAgICAgICByZXR1cm4gVHJhbnNmb3JtU3R5bGUzREZsYXQ7CiAgICAgY2FzZSBDU1NWYWx1
ZVByZXNlcnZlM2Q6CiAgICAgICAgIHJldHVybiBUcmFuc2Zvcm1TdHlsZTNEUHJlc2VydmUzRDsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTQwOTEsMjkgKzQyNjAsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUcmFuc2Zvcm1TdHlsZTNEKCkgY29uc3QKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2x1bW5BeGlz
IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVu
aXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVf
SUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBIb3Jpem9udGFsQ29sdW1uQXhpczoKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSG9yaXpvbnRhbDsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVIb3Jpem9udGFsOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFZlcnRpY2FsQ29sdW1uQXhpczoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmVy
dGljYWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmVydGljYWw7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQXV0b0NvbHVtbkF4aXM6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0
bzsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uQXhpcygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoICht
X3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNl
IENTU1ZhbHVlSG9yaXpvbnRhbDoKICAgICAgICAgcmV0dXJuIEhvcml6b250YWxDb2x1bW5BeGlz
OwogICAgIGNhc2UgQ1NTVmFsdWVWZXJ0aWNhbDoKICAgICAgICAgcmV0dXJuIFZlcnRpY2FsQ29s
dW1uQXhpczsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIEF1dG9Db2x1
bW5BeGlzOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDEyMywyNCArNDI5NCwyNiBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uQXhpcygpIGNvbnN0CiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29sdW1uUHJv
Z3Jlc3Npb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIE5vcm1hbENvbHVtblByb2dy
ZXNzaW9uOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFJldmVyc2VDb2x1bW5Qcm9ncmVzc2lvbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlUmV2ZXJzZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZXZlcnNl
OwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5Qcm9ncmVzc2lvbigpIGNvbnN0CiB7Ci0gICAgc3dp
dGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAg
ICBjYXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICByZXR1cm4gTm9ybWFsQ29sdW1uUHJvZ3Jl
c3Npb247CiAgICAgY2FzZSBDU1NWYWx1ZVJldmVyc2U6CiAgICAgICAgIHJldHVybiBSZXZlcnNl
Q29sdW1uUHJvZ3Jlc3Npb247CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC00MTUwLDMyICs0MzIzLDMyIEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5Qcm9ncmVzc2lv
bigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoV3JhcEZsb3cgd3JhcEZsb3cpCiA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQog
ewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKHdyYXBGbG93KSB7CiAgICAgY2Fz
ZSBXcmFwRmxvd0F1dG86Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBXcmFwRmxvd0JvdGg6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJv
dGg7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90aDsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBXcmFwRmxvd1N0YXJ0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVTdGFydDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGFydDsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXcmFwRmxvd0VuZDoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlRW5kOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVuZDsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXcmFwRmxvd01heGltdW06Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZU1heGltdW07CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTWF4aW11bTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXcmFwRmxvd0NsZWFyOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDbGVhcjsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVDbGVhcjsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV3JhcEZsb3coKSBjb25z
dAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBXcmFwRmxv
d0F1dG87CiAgICAgY2FzZSBDU1NWYWx1ZUJvdGg6CkBAIC00MTg4LDYgKzQzNjEsOCBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV3JhcEZsb3coKSBjb25z
dAogICAgICAgICByZXR1cm4gV3JhcEZsb3dNYXhpbXVtOwogICAgIGNhc2UgQ1NTVmFsdWVDbGVh
cjoKICAgICAgICAgcmV0dXJuIFdyYXBGbG93Q2xlYXI7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC00MTk3LDI0ICs0
MzcyLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBX
cmFwRmxvdygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoV3JhcFRocm91Z2ggd3JhcFRocm91Z2gpCiA6IENTU1ZhbHVlKFByaW1p
dGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAg
bV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKHdyYXBUaHJv
dWdoKSB7CiAgICAgY2FzZSBXcmFwVGhyb3VnaFdyYXA6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVdyYXA7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV3JhcDsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXcmFwVGhyb3VnaE5vbmU6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlTm9uZTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV3JhcFRocm91Z2goKSBjb25zdAogewotICAgIHN3
aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAg
ICAgY2FzZSBDU1NWYWx1ZVdyYXA6CiAgICAgICAgIHJldHVybiBXcmFwVGhyb3VnaFdyYXA7CiAg
ICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBXcmFwVGhyb3VnaE5vbmU7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC00MjIzLDEzICs0NDAwLDE1IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBXcmFwVGhyb3VnaCgpIGNvbnN0CiAKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBHcmlkQXV0b0Zsb3coKSBjb25zdAogewot
ICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBBdXRvRmxvd05vbmU7
CiAgICAgY2FzZSBDU1NWYWx1ZUNvbHVtbjoKICAgICAgICAgcmV0dXJuIEF1dG9GbG93Q29sdW1u
OwogICAgIGNhc2UgQ1NTVmFsdWVSb3c6CiAgICAgICAgIHJldHVybiBBdXRvRmxvd1JvdzsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTQyNDAsMTYgKzQ0MTksMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEdyaWRBdXRvRmxvdygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoR3JpZEF1dG9GbG93IGZsb3cp
CiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7
CiAgICAgc3dpdGNoIChmbG93KSB7CiAgICAgY2FzZSBBdXRvRmxvd05vbmU6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTm9uZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBdXRvRmxvd0NvbHVtbjoKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sdW1uOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUNvbHVtbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBdXRvRmxv
d1JvdzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUm93OworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJvdzsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAt
NDI4MCw3ICs0NDU5LDcgQEAgdGVtcGxhdGU8aW50IHN1cHBvcnRlZD4gTGVuZ3RoIENTU1ByaW1p
dGl2ZVZhbHVlOjpjb252ZXJ0VG9MZW5ndGgoY29uc3QgUmVuZGVyU3QKICAgICAgICAgcmV0dXJu
IExlbmd0aChnZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKICAgICBpZiAoKHN1cHBvcnRlZCAm
IEZyYWN0aW9uQ29udmVyc2lvbikgJiYgaXNOdW1iZXIoKSkKICAgICAgICAgcmV0dXJuIExlbmd0
aChnZXREb3VibGVWYWx1ZSgpICogMTAwLjAsIFBlcmNlbnQpOwotICAgIGlmICgoc3VwcG9ydGVk
ICYgQXV0b0NvbnZlcnNpb24pICYmIGdldElkZW50KCkgPT0gQ1NTVmFsdWVBdXRvKQorICAgIGlm
ICgoc3VwcG9ydGVkICYgQXV0b0NvbnZlcnNpb24pICYmIGdldFZhbHVlSUQoKSA9PSBDU1NWYWx1
ZUF1dG8pCiAgICAgICAgIHJldHVybiBMZW5ndGgoQXV0byk7CiAgICAgaWYgKChzdXBwb3J0ZWQg
JiBDYWxjdWxhdGVkQ29udmVyc2lvbikgJiYgaXNDYWxjdWxhdGVkKCkpCiAgICAgICAgIHJldHVy
biBMZW5ndGgoY3NzQ2FsY1ZhbHVlKCktPnRvQ2FsY1ZhbHVlKHN0eWxlLCByb290U3R5bGUsIG11
bHRpcGxpZXIpKTsKQEAgLTQyOTQsMjkgKzQ0NzMsMzEgQEAgdGVtcGxhdGU8aW50IHN1cHBvcnRl
ZD4gTGVuZ3RoIENTU1ByaW1pdGl2ZVZhbHVlOjpjb252ZXJ0VG9MZW5ndGgoY29uc3QgUmVuZGVy
U3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShFQnVmZmVyZWRSZW5kZXJpbmcgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQog
ewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJSX0FV
VE86Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCUl9E
WU5BTUlDOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEeW5hbWljOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUR5bmFtaWM7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQlJfU1RBVElDOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTdGF0aWM7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RhdGljOwogICAgICAgICBicmVh
azsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFQnVmZmVyZWRSZW5kZXJpbmcoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5p
ZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1
ZUF1dG86CiAgICAgICAgIHJldHVybiBCUl9BVVRPOwogICAgIGNhc2UgQ1NTVmFsdWVEeW5hbWlj
OgogICAgICAgICByZXR1cm4gQlJfRFlOQU1JQzsKICAgICBjYXNlIENTU1ZhbHVlU3RhdGljOgog
ICAgICAgICByZXR1cm4gQlJfU1RBVElDOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwog
ICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDMyNiwyOSArNDUwNywzMSBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJ1ZmZlcmVk
UmVuZGVyaW5nKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShFQ29sb3JJbnRlcnBvbGF0aW9uIGUpCiAgICAgOiBDU1NWYWx1ZShQ
cmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwor
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7
Ci0gICAgICAgIGNhc2UgQ0lfQVVUTzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUF1dG87Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDSV9TUkdCOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3JnYjsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIENJX0xJTkVBUlJHQjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUxpbmVhcnJnYjsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ0lfQVVU
TzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENJX1NSR0I6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
U3JnYjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDSV9MSU5FQVJSR0I6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGluZWFycmdiOworICAgICAgICBicmVhazsKICAgICB9
CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ29s
b3JJbnRlcnBvbGF0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZVNyZ2I6Ci0gICAgICAgICAgICByZXR1cm4gQ0lfU1JHQjsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZUxpbmVhcnJnYjoKLSAgICAgICAgICAgIHJldHVybiBDSV9M
SU5FQVJSR0I7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAgICAgcmV0dXJu
IENJX0FVVE87CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1Zh
bHVlU3JnYjoKKyAgICAgICAgcmV0dXJuIENJX1NSR0I7CisgICAgY2FzZSBDU1NWYWx1ZUxpbmVh
cnJnYjoKKyAgICAgICAgcmV0dXJuIENJX0xJTkVBUlJHQjsKKyAgICBjYXNlIENTU1ZhbHVlQXV0
bzoKKyAgICAgICAgcmV0dXJuIENJX0FVVE87CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC00MzU4LDI5ICs0NTQxLDMx
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ29sb3JJ
bnRlcnBvbGF0aW9uKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShFQ29sb3JSZW5kZXJpbmcgZSkKICAgICA6IENTU1ZhbHVlKFBy
aW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Cisg
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsK
LSAgICAgICAgY2FzZSBDUl9BVVRPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENSX09QVElNSVpFU1BF
RUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1JfT1BUSU1JWkVRVUFMSVRZOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3B0aW1pemVxdWFsaXR5OwotICAgICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDUl9BVVRPOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1JfT1BUSU1JWkVTUEVF
RDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENSX09QVElNSVpFUVVBTElUWToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk7CisgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVD
b2xvclJlbmRlcmluZygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOgotICAgICAgICAgICAgcmV0dXJuIENS
X09QVElNSVpFU1BFRUQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk6Ci0g
ICAgICAgICAgICByZXR1cm4gQ1JfT1BUSU1JWkVRVUFMSVRZOwotICAgICAgICBjYXNlIENTU1Zh
bHVlQXV0bzoKLSAgICAgICAgICAgIHJldHVybiBDUl9BVVRPOworICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ6CisgICAgICAgIHJl
dHVybiBDUl9PUFRJTUlaRVNQRUVEOworICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk6
CisgICAgICAgIHJldHVybiBDUl9PUFRJTUlaRVFVQUxJVFk7CisgICAgY2FzZSBDU1NWYWx1ZUF1
dG86CisgICAgICAgIHJldHVybiBDUl9BVVRPOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDM5MCw3NCArNDU3NSw3
NiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUNvbG9y
UmVuZGVyaW5nKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShFRG9taW5hbnRCYXNlbGluZSBlKQogICAgIDogQ1NTVmFsdWUoUHJp
bWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewot
ICAgICAgICBjYXNlIERCX0FVVE86Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVBdXRvOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgREJfVVNFX1NDUklQVDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVVzZVNjcmlwdDsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIERCX05PX0NIQU5HRToKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZU5vQ2hhbmdlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgREJfUkVTRVRfU0laRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVJlc2V0U2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERCX0NFTlRSQUw6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDZW50cmFsOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgREJfTUlERExFOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlTWlkZGxlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
REJfVEVYVF9CRUZPUkVfRURHRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVRleHRCZWZvcmVFZGdlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgREJfVEVY
VF9BRlRFUl9FREdFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4dEFm
dGVyRWRnZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERCX0lERU9HUkFQSElD
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSWRlb2dyYXBoaWM7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9BTFBIQUJFVElDOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWxwaGFiZXRpYzsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIERCX0hBTkdJTkc6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVIYW5naW5nOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgREJfTUFUSEVN
QVRJQ0FMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWF0aGVtYXRpY2Fs
OwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEQl9BVVRPOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgREJfVVNF
X1NDUklQVDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVc2VTY3JpcHQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgREJfTk9fQ0hBTkdFOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vQ2hhbmdlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERCX1JF
U0VUX1NJWkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmVzZXRTaXplOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIERCX0NFTlRSQUw6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQ2VudHJhbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEQl9NSURE
TEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWlkZGxlOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERCX1RFWFRfQkVGT1JFX0VER0U6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlVGV4dEJlZm9yZUVkZ2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
REJfVEVYVF9BRlRFUl9FREdFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRl
eHRBZnRlckVkZ2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgREJfSURFT0dSQVBISUM6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSWRlb2dyYXBoaWM7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgREJfQUxQSEFCRVRJQzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVBbHBoYWJldGljOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERCX0hBTkdJTkc6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGFuZ2luZzsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBEQl9NQVRIRU1BVElDQUw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTWF0aGVtYXRpY2FsOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRG9taW5hbnRCYXNlbGlu
ZSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIERCX0FVVE87Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVVc2VTY3JpcHQ6Ci0gICAgICAgICAgICByZXR1cm4gREJfVVNFX1NDUklQVDsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZU5vQ2hhbmdlOgotICAgICAgICAgICAgcmV0dXJuIERCX05PX0NI
QU5HRTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVJlc2V0U2l6ZToKLSAgICAgICAgICAgIHJldHVy
biBEQl9SRVNFVF9TSVpFOwotICAgICAgICBjYXNlIENTU1ZhbHVlSWRlb2dyYXBoaWM6Ci0gICAg
ICAgICAgICByZXR1cm4gREJfSURFT0dSQVBISUM7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBbHBo
YWJldGljOgotICAgICAgICAgICAgcmV0dXJuIERCX0FMUEhBQkVUSUM7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVIYW5naW5nOgotICAgICAgICAgICAgcmV0dXJuIERCX0hBTkdJTkc7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVNYXRoZW1hdGljYWw6Ci0gICAgICAgICAgICByZXR1cm4gREJfTUFUSEVN
QVRJQ0FMOwotICAgICAgICBjYXNlIENTU1ZhbHVlQ2VudHJhbDoKLSAgICAgICAgICAgIHJldHVy
biBEQl9DRU5UUkFMOwotICAgICAgICBjYXNlIENTU1ZhbHVlTWlkZGxlOgotICAgICAgICAgICAg
cmV0dXJuIERCX01JRERMRTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVRleHRBZnRlckVkZ2U6Ci0g
ICAgICAgICAgICByZXR1cm4gREJfVEVYVF9BRlRFUl9FREdFOwotICAgICAgICBjYXNlIENTU1Zh
bHVlVGV4dEJlZm9yZUVkZ2U6Ci0gICAgICAgICAgICByZXR1cm4gREJfVEVYVF9CRUZPUkVfRURH
RTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVBdXRv
OgorICAgICAgICByZXR1cm4gREJfQVVUTzsKKyAgICBjYXNlIENTU1ZhbHVlVXNlU2NyaXB0Ogor
ICAgICAgICByZXR1cm4gREJfVVNFX1NDUklQVDsKKyAgICBjYXNlIENTU1ZhbHVlTm9DaGFuZ2U6
CisgICAgICAgIHJldHVybiBEQl9OT19DSEFOR0U7CisgICAgY2FzZSBDU1NWYWx1ZVJlc2V0U2l6
ZToKKyAgICAgICAgcmV0dXJuIERCX1JFU0VUX1NJWkU7CisgICAgY2FzZSBDU1NWYWx1ZUlkZW9n
cmFwaGljOgorICAgICAgICByZXR1cm4gREJfSURFT0dSQVBISUM7CisgICAgY2FzZSBDU1NWYWx1
ZUFscGhhYmV0aWM6CisgICAgICAgIHJldHVybiBEQl9BTFBIQUJFVElDOworICAgIGNhc2UgQ1NT
VmFsdWVIYW5naW5nOgorICAgICAgICByZXR1cm4gREJfSEFOR0lORzsKKyAgICBjYXNlIENTU1Zh
bHVlTWF0aGVtYXRpY2FsOgorICAgICAgICByZXR1cm4gREJfTUFUSEVNQVRJQ0FMOworICAgIGNh
c2UgQ1NTVmFsdWVDZW50cmFsOgorICAgICAgICByZXR1cm4gREJfQ0VOVFJBTDsKKyAgICBjYXNl
IENTU1ZhbHVlTWlkZGxlOgorICAgICAgICByZXR1cm4gREJfTUlERExFOworICAgIGNhc2UgQ1NT
VmFsdWVUZXh0QWZ0ZXJFZGdlOgorICAgICAgICByZXR1cm4gREJfVEVYVF9BRlRFUl9FREdFOwor
ICAgIGNhc2UgQ1NTVmFsdWVUZXh0QmVmb3JlRWRnZToKKyAgICAgICAgcmV0dXJuIERCX1RFWFRf
QkVGT1JFX0VER0U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC00NDY3LDI2ICs0NjU0LDI2IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRG9taW5hbnRCYXNlbGluZSgpIGNv
bnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoRVNoYXBlUmVuZGVyaW5nIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsK
LSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBTUl9BVVRP
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU1JfT1BU
SU1JWkVTUEVFRDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3B0aW1pemVzcGVl
ZDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFNSX0NSSVNQRURHRVM6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUNyaXNwZWRnZXM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ3Jpc3BlZGdlczsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTUl9HRU9NRVRSSUNQUkVD
SVNJT046Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUdlb21ldHJpY3ByZWNpc2lv
bjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVHZW9tZXRyaWNwcmVjaXNpb247
CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEVTaGFwZVJlbmRlcmluZygpIGNvbnN0CiB7Ci0gICAgc3dpdGNo
IChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBj
YXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFNSX0FVVE87CiAgICAgY2FzZSBDU1NW
YWx1ZU9wdGltaXplc3BlZWQ6CkBAIC00NDk1LDYgKzQ2ODIsOCBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVNoYXBlUmVuZGVyaW5nKCkgY29uc3QKICAg
ICAgICAgcmV0dXJuIFNSX0NSSVNQRURHRVM7CiAgICAgY2FzZSBDU1NWYWx1ZUdlb21ldHJpY3By
ZWNpc2lvbjoKICAgICAgICAgcmV0dXJuIFNSX0dFT01FVFJJQ1BSRUNJU0lPTjsKKyAgICBkZWZh
dWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
QEAgLTQ1MDQsMjkgKzQ2OTMsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIEVTaGFwZVJlbmRlcmluZygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVRleHRBbmNob3IgZSkKICAgICA6
IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBD
U1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBz
d2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBUQV9TVEFSVDoKLSAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZVN0YXJ0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
VEFfTUlERExFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWlkZGxlOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVEFfRU5EOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlRW5kOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBU
QV9TVEFSVDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGFydDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBUQV9NSURETEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTWlkZGxlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRBX0VORDoKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0
QW5jaG9yKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZVN0YXJ0OgotICAgICAgICAgICAgcmV0dXJuIFRBX1NUQVJUOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlTWlkZGxlOgotICAgICAgICAgICAgcmV0dXJuIFRBX01JRERMRTsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZUVuZDoKLSAgICAgICAgICAgIHJldHVybiBUQV9FTkQ7CisgICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CisgICAg
ICAgIHJldHVybiBUQV9TVEFSVDsKKyAgICBjYXNlIENTU1ZhbHVlTWlkZGxlOgorICAgICAgICBy
ZXR1cm4gVEFfTUlERExFOworICAgIGNhc2UgQ1NTVmFsdWVFbmQ6CisgICAgICAgIHJldHVybiBU
QV9FTkQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC00NTM2LDMyICs0NzI3LDMyIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVGV4dEFuY2hvcigpIGNvbnN0CiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU1ZHV3JpdGlu
Z01vZGUgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0
aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19W
QUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBXTV9MUlRCOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTHJUYjsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFdNX0xSOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
THI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXTV9STFRCOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmxUYjsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFdNX1JMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmw7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXTV9UQlJMOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGJSbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIFdNX1RCOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGI7Ci0g
ICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIFdNX0xSVEI6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTHJUYjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXTV9MUjoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMcjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBXTV9STFRCOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJsVGI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV01fUkw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlUmw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV01fVEJSTDoKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYlJsOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdNX1RCOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRiOworICAgICAgICBi
cmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBTVkdXcml0aW5nTW9kZSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlk
ZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVl
THJUYjoKICAgICAgICAgcmV0dXJuIFdNX0xSVEI7CiAgICAgY2FzZSBDU1NWYWx1ZUxyOgpAQCAt
NDU3NCw2ICs0NzY1LDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFNWR1dyaXRpbmdNb2RlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIFdNX1RCUkw7CiAg
ICAgY2FzZSBDU1NWYWx1ZVRiOgogICAgICAgICByZXR1cm4gV01fVEI7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC00
NTgzLDI0ICs0Nzc2LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBTVkdXcml0aW5nTW9kZSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVZlY3RvckVmZmVjdCBlKQogICAgIDogQ1NT
VmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19J
REVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRj
aCAoZSkgewogICAgIGNhc2UgVkVfTk9ORToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFZFX05PTl9TQ0FMSU5HX1NUUk9LRToKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlTm9uU2NhbGluZ1N0cm9rZTsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVOb25TY2FsaW5nU3Ryb2tlOwogICAgICAgICBicmVhazsKICAgICB9CiB9
CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVmVjdG9y
RWZmZWN0KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICBy
ZXR1cm4gVkVfTk9ORTsKICAgICBjYXNlIENTU1ZhbHVlTm9uU2NhbGluZ1N0cm9rZToKICAgICAg
ICAgcmV0dXJuIFZFX05PTl9TQ0FMSU5HX1NUUk9LRTsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQ2MTAsMjQgKzQ4
MDUsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVW
ZWN0b3JFZmZlY3QoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEVNYXNrVHlwZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZl
Q2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNh
c2UgTVRfTFVNSU5BTkNFOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMdW1pbmFu
Y2U7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTHVtaW5hbmNlOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE1UX0FMUEhBOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVBbHBoYTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbHBoYTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgRU1hc2tUeXBlKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
aWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFs
dWVMdW1pbmFuY2U6CiAgICAgICAgIHJldHVybiBNVF9MVU1JTkFOQ0U7CiAgICAgY2FzZSBDU1NW
YWx1ZUFscGhhOgogICAgICAgICByZXR1cm4gTVRfQUxQSEE7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVG9TdHlsZU1hcC5jcHAKaW5kZXggNzIxZmQ4ZTkwMWI1ZWJiZjFjZjZjZDc0OWZhOGY1
M2YxY2ZiYTQ5Yi4uNmIxNGQ0NzY0OGMwZDI2YTQwOTc5M2I5OWZhMWYyNWVlMjBjMTJiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lkIENT
U1RvU3R5bGVNYXA6Om1hcEZpbGxBdHRhY2htZW50KENTU1Byb3BlcnR5SUQsIEZpbGxMYXllciog
bGF5ZXIsIENTU1ZhbHVlKgogICAgICAgICByZXR1cm47CiAKICAgICBDU1NQcmltaXRpdmVWYWx1
ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVl
KTsKLSAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgc3dpdGNo
IChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUZpeGVk
OgogICAgICAgICBsYXllci0+c2V0QXR0YWNobWVudChGaXhlZEJhY2tncm91bmRBdHRhY2htZW50
KTsKICAgICAgICAgYnJlYWs7CkBAIC0xOTAsMTYgKzE5MCwxNiBAQCB2b2lkIENTU1RvU3R5bGVN
YXA6Om1hcEZpbGxTaXplKENTU1Byb3BlcnR5SUQsIEZpbGxMYXllciogbGF5ZXIsIENTU1ZhbHVl
KiB2YWx1ZQogICAgIH0KIAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgIGlmIChwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUNvbnRhaW4pCisgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVDb250YWluKQogICAgICAgICBsYXllci0+
c2V0U2l6ZVR5cGUoQ29udGFpbik7Ci0gICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkgPT0gQ1NTVmFsdWVDb3ZlcikKKyAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlQ292ZXIpCiAgICAgICAgIGxheWVyLT5zZXRTaXplVHlwZShD
b3Zlcik7CiAgICAgZWxzZQogICAgICAgICBsYXllci0+c2V0U2l6ZVR5cGUoU2l6ZUxlbmd0aCk7
CiAKICAgICBMZW5ndGhTaXplIGIgPSBGaWxsTGF5ZXI6OmluaXRpYWxGaWxsU2l6ZUxlbmd0aChs
YXllci0+dHlwZSgpKTsKIAotICAgIGlmICh2YWx1ZS0+aXNJbml0aWFsVmFsdWUoKSB8fCBwcmlt
aXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUNvbnRhaW4gfHwgcHJpbWl0aXZlVmFs
dWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVDb3ZlcikgeworICAgIGlmICh2YWx1ZS0+aXNJbml0
aWFsVmFsdWUoKSB8fCBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQ29u
dGFpbiB8fCBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQ292ZXIpIHsK
ICAgICAgICAgbGF5ZXItPnNldFNpemVMZW5ndGgoYik7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC0zMjQsNyArMzI0LDcgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25EaXJl
Y3Rpb24oQW5pbWF0aW9uKiBsYXllciwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICByZXR1cm47
CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5n
ZXRJZGVudCgpKSB7CisgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7
CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgbGF5ZXItPnNldERpcmVjdGlvbihB
bmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbk5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwpAQCAt
MzM3LDYgKzMzNyw4IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uRGlyZWN0aW9u
KEFuaW1hdGlvbiogbGF5ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICBjYXNlIENTU1ZhbHVlQWx0
ZXJuYXRlUmV2ZXJzZToKICAgICAgICAgbGF5ZXItPnNldERpcmVjdGlvbihBbmltYXRpb246OkFu
aW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZVJldmVyc2UpOwogICAgICAgICBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiB9CiAKQEAgLTM2NSw3ICszNjcsNyBAQCB2
b2lkIENTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvbkZpbGxNb2RlKEFuaW1hdGlvbiogbGF5ZXIs
IENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ1NTUHJpbWl0aXZlVmFs
dWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1
ZSk7Ci0gICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgIHN3aXRj
aCAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb25l
OgogICAgICAgICBsYXllci0+c2V0RmlsbE1vZGUoQW5pbWF0aW9uRmlsbE1vZGVOb25lKTsKICAg
ICAgICAgYnJlYWs7CkBAIC0zNzgsNiArMzgwLDggQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBB
bmltYXRpb25GaWxsTW9kZShBbmltYXRpb24qIGxheWVyLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAg
Y2FzZSBDU1NWYWx1ZUJvdGg6CiAgICAgICAgIGxheWVyLT5zZXRGaWxsTW9kZShBbmltYXRpb25G
aWxsTW9kZUJvdGgpOwogICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKICAgICB9CiB9CiAKQEAgLTM5Miw3ICszOTYsNyBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1h
cEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KEFuaW1hdGlvbiogYW5pbWF0aW9uLCBDU1NWYWx1ZSog
dgogICAgICAgICByZXR1cm47CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFs
dWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICBpZiAocHJp
bWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVJbmZpbml0ZSkKKyAgICBpZiAocHJp
bWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUluZmluaXRlKQogICAgICAgICBh
bmltYXRpb24tPnNldEl0ZXJhdGlvbkNvdW50KEFuaW1hdGlvbjo6SXRlcmF0aW9uQ291bnRJbmZp
bml0ZSk7CiAgICAgZWxzZQogICAgICAgICBhbmltYXRpb24tPnNldEl0ZXJhdGlvbkNvdW50KHBy
aW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkpOwpAQCAtNDA5LDcgKzQxMyw3IEBAIHZvaWQg
Q1NTVG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uTmFtZShBbmltYXRpb24qIGxheWVyLCBDU1NWYWx1
ZSogdmFsdWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmlt
aXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAg
IGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmUpCisgICAgaWYg
KHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25lKQogICAgICAgICBs
YXllci0+c2V0SXNOb25lQW5pbWF0aW9uKHRydWUpOwogICAgIGVsc2UKICAgICAgICAgbGF5ZXIt
PnNldE5hbWUocHJpbWl0aXZlVmFsdWUtPmdldFN0cmluZ1ZhbHVlKCkpOwpAQCAtNDI2LDcgKzQz
MCw3IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uUGxheVN0YXRlKEFuaW1hdGlv
biogbGF5ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ1NTUHJp
bWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWUqPih2YWx1ZSk7Ci0gICAgRUFuaW1QbGF5U3RhdGUgcGxheVN0YXRlID0gKHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlUGF1c2VkKSA/IEFuaW1QbGF5U3RhdGVQYXVzZWQg
OiBBbmltUGxheVN0YXRlUGxheWluZzsKKyAgICBFQW5pbVBsYXlTdGF0ZSBwbGF5U3RhdGUgPSAo
cHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVBhdXNlZCkgPyBBbmltUGxh
eVN0YXRlUGF1c2VkIDogQW5pbVBsYXlTdGF0ZVBsYXlpbmc7CiAgICAgbGF5ZXItPnNldFBsYXlT
dGF0ZShwbGF5U3RhdGUpOwogfQogCkBAIC00NDIsMTUgKzQ0NiwxNSBAQCB2b2lkIENTU1RvU3R5
bGVNYXA6Om1hcEFuaW1hdGlvblByb3BlcnR5KEFuaW1hdGlvbiogYW5pbWF0aW9uLCBDU1NWYWx1
ZSogdmFsdWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmlt
aXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAg
IGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUFsbCkgeworICAgIGlm
IChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQWxsKSB7CiAgICAgICAg
IGFuaW1hdGlvbi0+c2V0QW5pbWF0aW9uTW9kZShBbmltYXRpb246OkFuaW1hdGVBbGwpOwogICAg
ICAgICBhbmltYXRpb24tPnNldFByb3BlcnR5KENTU1Byb3BlcnR5SW52YWxpZCk7Ci0gICAgfSBl
bHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmUpIHsKKyAg
ICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25l
KSB7CiAgICAgICAgIGFuaW1hdGlvbi0+c2V0QW5pbWF0aW9uTW9kZShBbmltYXRpb246OkFuaW1h
dGVOb25lKTsKICAgICAgICAgYW5pbWF0aW9uLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUludmFs
aWQpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGFuaW1hdGlvbi0+c2V0QW5pbWF0aW9uTW9kZShB
bmltYXRpb246OkFuaW1hdGVTaW5nbGVQcm9wZXJ0eSk7Ci0gICAgICAgIGFuaW1hdGlvbi0+c2V0
UHJvcGVydHkoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4ocHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkpKTsKKyAgICAgICAgYW5pbWF0aW9uLT5zZXRQcm9wZXJ0eShzdGF0aWNfY2FzdDxDU1NQ
cm9wZXJ0eUlEPihwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSk7CiAgICAgfQogfQogCkBA
IC00NjMsNyArNDY3LDcgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25UaW1pbmdG
dW5jdGlvbihBbmltYXRpb24qIGFuaW1hdGlvbiwgQ1NTVmFsdWUqIHYKIAogICAgIGlmICh2YWx1
ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmlt
aXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAg
ICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgIHN3aXRj
aCAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkgewogICAgICAgICBjYXNlIENTU1ZhbHVl
TGluZWFyOgogICAgICAgICAgICAgYW5pbWF0aW9uLT5zZXRUaW1pbmdGdW5jdGlvbihMaW5lYXJU
aW1pbmdGdW5jdGlvbjo6Y3JlYXRlKCkpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC00ODUsNiAr
NDg5LDggQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25UaW1pbmdGdW5jdGlvbihB
bmltYXRpb24qIGFuaW1hdGlvbiwgQ1NTVmFsdWUqIHYKICAgICAgICAgY2FzZSBDU1NWYWx1ZVN0
ZXBFbmQ6CiAgICAgICAgICAgICBhbmltYXRpb24tPnNldFRpbWluZ0Z1bmN0aW9uKFN0ZXBzVGlt
aW5nRnVuY3Rpb246OmNyZWF0ZSgxLCBmYWxzZSkpOwogICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtNjEzLDI4ICs2MTksMjggQEAgTGVuZ3RoQm94IENTU1RvU3R5bGVNYXA6
Om1hcE5pbmVQaWVjZUltYWdlUXVhZChDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgIGJveC5tX3Rv
cCA9IExlbmd0aChzbGljZXMtPnRvcCgpLT5nZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7CiAgICAg
ZWxzZSBpZiAoc2xpY2VzLT50b3AoKS0+aXNQZXJjZW50YWdlKCkpCiAgICAgICAgIGJveC5tX3Rv
cCA9IExlbmd0aChzbGljZXMtPnRvcCgpLT5nZXREb3VibGVWYWx1ZShDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1BFUkNFTlRBR0UpLCBQZXJjZW50KTsKLSAgICBlbHNlIGlmIChzbGljZXMtPnRvcCgp
LT5nZXRJZGVudCgpICE9IENTU1ZhbHVlQXV0bykKKyAgICBlbHNlIGlmIChzbGljZXMtPnRvcCgp
LT5nZXRWYWx1ZUlEKCkgIT0gQ1NTVmFsdWVBdXRvKQogICAgICAgICBib3gubV90b3AgPSBzbGlj
ZXMtPnRvcCgpLT5jb21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGUoKSwgcm9vdEVsZW1lbnRTdHls
ZSgpLCB6b29tKTsKIAogICAgIGlmIChzbGljZXMtPnJpZ2h0KCktPmlzTnVtYmVyKCkpCiAgICAg
ICAgIGJveC5tX3JpZ2h0ID0gTGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0SW50VmFsdWUoKSwg
UmVsYXRpdmUpOwogICAgIGVsc2UgaWYgKHNsaWNlcy0+cmlnaHQoKS0+aXNQZXJjZW50YWdlKCkp
CiAgICAgICAgIGJveC5tX3JpZ2h0ID0gTGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0RG91Ymxl
VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKSwgUGVyY2VudCk7Ci0gICAg
ZWxzZSBpZiAoc2xpY2VzLT5yaWdodCgpLT5nZXRJZGVudCgpICE9IENTU1ZhbHVlQXV0bykKKyAg
ICBlbHNlIGlmIChzbGljZXMtPnJpZ2h0KCktPmdldFZhbHVlSUQoKSAhPSBDU1NWYWx1ZUF1dG8p
CiAgICAgICAgIGJveC5tX3JpZ2h0ID0gc2xpY2VzLT5yaWdodCgpLT5jb21wdXRlTGVuZ3RoPExl
bmd0aD4oc3R5bGUoKSwgcm9vdEVsZW1lbnRTdHlsZSgpLCB6b29tKTsKIAogICAgIGlmIChzbGlj
ZXMtPmJvdHRvbSgpLT5pc051bWJlcigpKQogICAgICAgICBib3gubV9ib3R0b20gPSBMZW5ndGgo
c2xpY2VzLT5ib3R0b20oKS0+Z2V0SW50VmFsdWUoKSwgUmVsYXRpdmUpOwogICAgIGVsc2UgaWYg
KHNsaWNlcy0+Ym90dG9tKCktPmlzUGVyY2VudGFnZSgpKQogICAgICAgICBib3gubV9ib3R0b20g
PSBMZW5ndGgoc2xpY2VzLT5ib3R0b20oKS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19QRVJDRU5UQUdFKSwgUGVyY2VudCk7Ci0gICAgZWxzZSBpZiAoc2xpY2VzLT5ib3R0
b20oKS0+Z2V0SWRlbnQoKSAhPSBDU1NWYWx1ZUF1dG8pCisgICAgZWxzZSBpZiAoc2xpY2VzLT5i
b3R0b20oKS0+Z2V0VmFsdWVJRCgpICE9IENTU1ZhbHVlQXV0bykKICAgICAgICAgYm94Lm1fYm90
dG9tID0gc2xpY2VzLT5ib3R0b20oKS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KHN0eWxlKCksIHJv
b3RFbGVtZW50U3R5bGUoKSwgem9vbSk7CiAKICAgICBpZiAoc2xpY2VzLT5sZWZ0KCktPmlzTnVt
YmVyKCkpCiAgICAgICAgIGJveC5tX2xlZnQgPSBMZW5ndGgoc2xpY2VzLT5sZWZ0KCktPmdldElu
dFZhbHVlKCksIFJlbGF0aXZlKTsKICAgICBlbHNlIGlmIChzbGljZXMtPmxlZnQoKS0+aXNQZXJj
ZW50YWdlKCkpCiAgICAgICAgIGJveC5tX2xlZnQgPSBMZW5ndGgoc2xpY2VzLT5sZWZ0KCktPmdl
dERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQp
OwotICAgIGVsc2UgaWYgKHNsaWNlcy0+bGVmdCgpLT5nZXRJZGVudCgpICE9IENTU1ZhbHVlQXV0
bykKKyAgICBlbHNlIGlmIChzbGljZXMtPmxlZnQoKS0+Z2V0VmFsdWVJRCgpICE9IENTU1ZhbHVl
QXV0bykKICAgICAgICAgYm94Lm1fbGVmdCA9IHNsaWNlcy0+bGVmdCgpLT5jb21wdXRlTGVuZ3Ro
PExlbmd0aD4oc3R5bGUoKSwgcm9vdEVsZW1lbnRTdHlsZSgpLCB6b29tKTsKIAogICAgIHJldHVy
biBib3g7CkBAIC02NTAsOCArNjU2LDggQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBOaW5lUGll
Y2VJbWFnZVJlcGVhdChDU1NWYWx1ZSogdmFsdWUsIE5pbmVQaWVjZUltYWdlJiBpbWEKICAgICBp
ZiAoIXBhaXIgfHwgIXBhaXItPmZpcnN0KCkgfHwgIXBhaXItPnNlY29uZCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpbnQgZmlyc3RJZGVudGlmaWVyID0gcGFpci0+Zmlyc3QoKS0+Z2V0SWRl
bnQoKTsKLSAgICBpbnQgc2Vjb25kSWRlbnRpZmllciA9IHBhaXItPnNlY29uZCgpLT5nZXRJZGVu
dCgpOworICAgIENTU1ZhbHVlSUQgZmlyc3RJZGVudGlmaWVyID0gcGFpci0+Zmlyc3QoKS0+Z2V0
VmFsdWVJRCgpOworICAgIENTU1ZhbHVlSUQgc2Vjb25kSWRlbnRpZmllciA9IHBhaXItPnNlY29u
ZCgpLT5nZXRWYWx1ZUlEKCk7CiAKICAgICBFTmluZVBpZWNlSW1hZ2VSdWxlIGhvcml6b250YWxS
dWxlOwogICAgIHN3aXRjaCAoZmlyc3RJZGVudGlmaWVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ291bnRlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvdW50ZXIuaAppbmRl
eCBmYzIyNzlmOWFjYTQ3MjQ3YjcwNGFiYmRjNmUzYjliODU2MTJiOGNjLi4yMDViZjhiYmU1YWRk
ZTUzNTNiYmM1MWM0ZWRmMzI3MWQ3YWJkNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ291bnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmgKQEAgLTM3LDcg
KzM3LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBsaXN0U3R5bGUoKSBjb25zdCB7IHJldHVybiBt
X2xpc3RTdHlsZSA/IG1fbGlzdFN0eWxlLT5nZXRTdHJpbmdWYWx1ZSgpIDogU3RyaW5nKCk7IH0K
ICAgICBTdHJpbmcgc2VwYXJhdG9yKCkgY29uc3QgeyByZXR1cm4gbV9zZXBhcmF0b3IgPyBtX3Nl
cGFyYXRvci0+Z2V0U3RyaW5nVmFsdWUoKSA6IFN0cmluZygpOyB9CiAKLSAgICBpbnQgbGlzdFN0
eWxlSWRlbnQoKSBjb25zdCB7IHJldHVybiBtX2xpc3RTdHlsZSA/IG1fbGlzdFN0eWxlLT5nZXRJ
ZGVudCgpIDogMDsgfQorICAgIENTU1ZhbHVlSUQgbGlzdFN0eWxlSWRlbnQoKSBjb25zdCB7IHJl
dHVybiBtX2xpc3RTdHlsZSA/IG1fbGlzdFN0eWxlLT5nZXRWYWx1ZUlEKCkgOiBDU1NWYWx1ZUlu
dmFsaWQ7IH0KIAogICAgIHZvaWQgc2V0SWRlbnRpZmllcihQYXNzUmVmUHRyPENTU1ByaW1pdGl2
ZVZhbHVlPiBpZGVudGlmaWVyKSB7IG1faWRlbnRpZmllciA9IGlkZW50aWZpZXI7IH0KICAgICB2
b2lkIHNldExpc3RTdHlsZShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBsaXN0U3R5bGUp
IHsgbV9saXN0U3R5bGUgPSBsaXN0U3R5bGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXBy
ZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAppbmRleCBjMzZmZjI0OGZlNWQyZTU3YTQxYWVmYzMxOGIz
NjA2MzJiMzJhZmIwLi4zYmI5MGNjNTljZDg1OWI1NzA4ZmYwMWUwNzMwODk5OWJjNzkyYTQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCkBAIC0x
NjYsNyArMTY2LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIENT
U1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4odmFsdWUpOwotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkg
PT0gaWRNYXBzVG9NaW51c09uZSkKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1
ZUlEKCkgPT0gaWRNYXBzVG9NaW51c09uZSkKICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVz
b2x2ZXItPnN0eWxlKCksIC0xKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc2V0VmFsdWUo
c3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgcHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlPE51bWJlclR5
cGU+KENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSk7CkBAIC0yMTQsNyArMjE0LDcgQEAg
cHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVl
KiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUp
OwotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gYXV0b0lkZW50aXR5
KQorICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBhdXRvSWRlbnRp
dHkpCiAgICAgICAgICAgICBzZXRBdXRvKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCkpOwogICAgICAg
ICBlbHNlIGlmICh2YWx1ZVR5cGUgPT0gTnVtYmVyKQogICAgICAgICAgICAgc2V0VmFsdWUoc3R5
bGVSZXNvbHZlci0+c3R5bGUoKSwgKnByaW1pdGl2ZVZhbHVlKTsKQEAgLTI2MSw3ICsyNjEsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBMZW5ndGggbGVmdCA9IGNvbnZlcnRUb0xlbmd0aChzdHls
ZVJlc29sdmVyLCByZWN0LT5sZWZ0KCkpOwogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5
bGUoKS0+c2V0Q2xpcCh0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpOwogICAgICAgICAgICAgc3R5
bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0SGFzQ2xpcCh0cnVlKTsKLSAgICAgICAgfSBlbHNlIGlm
IChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pIHsKKyAgICAgICAg
fSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQXV0bykg
ewogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0Q2xpcChMZW5ndGgoKSwg
TGVuZ3RoKCksIExlbmd0aCgpLCBMZW5ndGgoKSk7CiAgICAgICAgICAgICBzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLT5zZXRIYXNDbGlwKGZhbHNlKTsKICAgICAgICAgfQpAQCAtMjk5LDcgKzI5OSw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBDU1NQcmltaXRpdmVW
YWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZh
bHVlKTsKLSAgICAgICAgaWYgKGluaGVyaXRDb2xvckZyb21QYXJlbnQgJiYgcHJpbWl0aXZlVmFs
dWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVDdXJyZW50Y29sb3IpCisgICAgICAgIGlmIChpbmhl
cml0Q29sb3JGcm9tUGFyZW50ICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NT
VmFsdWVDdXJyZW50Y29sb3IpCiAgICAgICAgICAgICBhcHBseUluaGVyaXRWYWx1ZShwcm9wZXJ0
eUlELCBzdHlsZVJlc29sdmVyKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBpZiAoc3R5
bGVSZXNvbHZlci0+YXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0eWxlKCkpCkBAIC0zNjAsMzAgKzM2
MCwzMCBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgQ1NTUHJpbWl0
aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUq
Pih2YWx1ZSk7Ci0gICAgICAgIGlmIChub25lRW5hYmxlZCAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0
SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmUpIHsKKyAgICAgICAgaWYgKG5vbmVFbmFibGVkICYmIHBy
aW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25lKSB7CiAgICAgICAgICAg
ICBpZiAobm9uZVVuZGVmaW5lZCkKICAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29s
dmVyLT5zdHlsZSgpLCBMZW5ndGgoVW5kZWZpbmVkKSk7CiAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKCkpOwog
ICAgICAgICB9CiAgICAgICAgIGlmIChsZWdhY3lJbnRyaW5zaWNFbmFibGVkKSB7Ci0gICAgICAg
ICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVJbnRyaW5zaWMp
CisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1
ZUludHJpbnNpYykKICAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHls
ZSgpLCBMZW5ndGgoSW50cmluc2ljKSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVW
YWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU1pbkludHJpbnNpYykKKyAgICAgICAgICAgIGVs
c2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVNaW5JbnRyaW5z
aWMpCiAgICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVu
Z3RoKE1pbkludHJpbnNpYykpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpbnRyaW5zaWNFbmFi
bGVkKSB7Ci0gICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NT
VmFsdWVXZWJraXRNaW5Db250ZW50KQorICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVXZWJraXRNaW5Db250ZW50KQogICAgICAgICAgICAgICAg
IHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChNaW5Db250ZW50KSk7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1
ZVdlYmtpdE1heENvbnRlbnQpCisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+
Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlV2Via2l0TWF4Q29udGVudCkKICAgICAgICAgICAgICAg
ICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBMZW5ndGgoTWF4Q29udGVudCkpOwot
ICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFs
dWVXZWJraXRGaWxsQXZhaWxhYmxlKQorICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFs
dWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVdlYmtpdEZpbGxBdmFpbGFibGUpCiAgICAgICAg
ICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKEZpbGxBdmFp
bGFibGUpKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgp
ID09IENTU1ZhbHVlV2Via2l0Rml0Q29udGVudCkKKyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1p
dGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVXZWJraXRGaXRDb250ZW50KQogICAg
ICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChGaXRD
b250ZW50KSk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoYXV0b0VuYWJsZWQgJiYgcHJpbWl0
aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVBdXRvKQorICAgICAgICBpZiAoYXV0b0Vu
YWJsZWQgJiYgcHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUF1dG8pCiAg
ICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBMZW5ndGgoKSk7CiAg
ICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc0xlbmd0aCgpKSB7CiAgICAgICAgICAg
ICBMZW5ndGggbGVuZ3RoID0gcHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihz
dHlsZVJlc29sdmVyLT5zdHlsZSgpLCBzdHlsZVJlc29sdmVyLT5yb290RWxlbWVudFN0eWxlKCks
IHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSk7CkBAIC00MTQsOCArNDE0
LDggQEAgcHVibGljOgogICAgICAgICBpZiAoIXZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVW
YWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgICAgICBp
ZiAoKGlkZW50QmVoYXZpb3IgPT0gTWFwTm9uZVRvTnVsbCAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0
SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmUpCi0gICAgICAgICAgICB8fCAoaWRlbnRCZWhhdmlvciA9
PSBNYXBBdXRvVG9OdWxsICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVl
QXV0bykpCisgICAgICAgIGlmICgoaWRlbnRCZWhhdmlvciA9PSBNYXBOb25lVG9OdWxsICYmIHBy
aW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25lKQorICAgICAgICAgICAg
fHwgKGlkZW50QmVoYXZpb3IgPT0gTWFwQXV0b1RvTnVsbCAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlQXV0bykpCiAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJl
c29sdmVyLT5zdHlsZSgpLCBudWxsQXRvbSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNl
dFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHByaW1pdGl2ZVZhbHVlLT5nZXRTdHJpbmdW
YWx1ZSgpKTsKQEAgLTU5MSw3ICs1OTEsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgQ1NTUHJpbWl0
aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUq
Pih2YWx1ZSk7CiAKLSAgICAgICAgaW50IGlkZW50ID0gcHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCk7CisgICAgICAgIENTU1ZhbHVlSUQgaWRlbnQgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJ
RCgpOwogICAgICAgICBUIGxlbmd0aDsKICAgICAgICAgaWYgKG5vcm1hbEVuYWJsZWQgJiYgaWRl
bnQgPT0gQ1NTVmFsdWVOb3JtYWwpIHsKICAgICAgICAgICAgIGxlbmd0aCA9IDA7CkBAIC03MDcs
NyArNzA3LDcgQEAgcHVibGljOgogICAgICAgICAgICAgaWYgKGNvbnRlbnRWYWx1ZS0+aXNTdHJp
bmcoKSkKICAgICAgICAgICAgICAgICBmYWNlID0gY29udGVudFZhbHVlLT5nZXRTdHJpbmdWYWx1
ZSgpOwogICAgICAgICAgICAgZWxzZSBpZiAoU2V0dGluZ3MqIHNldHRpbmdzID0gc3R5bGVSZXNv
bHZlci0+ZG9jdW1lbnQoKS0+c2V0dGluZ3MoKSkgewotICAgICAgICAgICAgICAgIHN3aXRjaCAo
Y29udGVudFZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb250
ZW50VmFsdWUtPmdldFZhbHVlSUQoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVX
ZWJraXRCb2R5OgogICAgICAgICAgICAgICAgICAgICBmYWNlID0gc2V0dGluZ3MtPnN0YW5kYXJk
Rm9udEZhbWlseSgpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTczNSw2ICs3MzUs
OCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIGZhY2UgPSBwaWN0b2dyYXBoRmFtaWx5
OwogICAgICAgICAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShG
b250RGVzY3JpcHRpb246OlBpY3RvZ3JhcGhGYW1pbHkpOwogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKQEAgLTgyMyw3ICs4MjUsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBwYXJlbnRJc0Fic29sdXRlU2l6ZSA9IHN0eWxlUmVzb2x2
ZXItPnBhcmVudFN0eWxlKCktPmZvbnREZXNjcmlwdGlvbigpLmlzQWJzb2x1dGVTaXplKCk7CiAg
ICAgICAgIH0KIAotICAgICAgICBpZiAoaW50IGlkZW50ID0gcHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkpIHsKKyAgICAgICAgaWYgKENTU1ZhbHVlSUQgaWRlbnQgPSBwcmltaXRpdmVWYWx1ZS0+
Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAgICAgICAvLyBLZXl3b3JkcyBhcmUgYmVpbmcgdXNlZC4K
ICAgICAgICAgICAgIHN3aXRjaCAoaWRlbnQpIHsKICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVY
eFNtYWxsOgpAQCAtODg2LDcgKzg4OCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CiAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250
RGVzY3JpcHRpb24gPSBzdHlsZVJlc29sdmVyLT5mb250RGVzY3JpcHRpb24oKTsKLSAgICAgICAg
c3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICBzd2l0Y2ggKHBy
aW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAgICAgY2FzZSBDU1NWYWx1ZUludmFs
aWQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtOTQ2LDcgKzk0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBBU1NFUlQoaXRl
bS0+aXNQcmltaXRpdmVWYWx1ZSgpKTsKICAgICAgICAgICAgICAgICBpZiAoaXRlbS0+aXNQcmlt
aXRpdmVWYWx1ZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBw
cmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7Ci0g
ICAgICAgICAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVOb0NvbW1vbkxpZ2F0dXJlczoK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbkxpZ2F0dXJlc1N0YXRlID0gRm9udERlc2Ny
aXB0aW9uOjpEaXNhYmxlZExpZ2F0dXJlc1N0YXRlOwogICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CkBAIC05NzUsNyArOTc3LDcgQEAgcHVibGljOgogI2lmICFBU1NFUlRfRElTQUJMRUQK
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTih2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKTsKLSAgICAgICAgICAgIEFTU0VSVChzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1
ZU5vcm1hbCk7CisgICAgICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWUqPih2YWx1ZSktPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIH0K
ICNlbmRpZgogCkBAIC0xMTIzLDcgKzExMjUsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIHN0YXRp
YyB2b2lkIGFwcGx5VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNv
bHZlciwgQ1NTVmFsdWUqIHZhbHVlKQogICAgIHsKLSAgICAgICAgYm9vbCBzZXRDb3VudGVySW5j
cmVtZW50VG9Ob25lID0gY291bnRlckJlaGF2aW9yID09IEluY3JlbWVudCAmJiB2YWx1ZS0+aXNQ
cmltaXRpdmVWYWx1ZSgpICYmIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUp
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYm9vbCBzZXRDb3VudGVySW5j
cmVtZW50VG9Ob25lID0gY291bnRlckJlaGF2aW9yID09IEluY3JlbWVudCAmJiB2YWx1ZS0+aXNQ
cmltaXRpdmVWYWx1ZSgpICYmIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUp
LT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25lOwogCiAgICAgICAgIGlmICghdmFsdWUtPmlz
VmFsdWVMaXN0KCkgJiYgIXNldENvdW50ZXJJbmNyZW1lbnRUb05vbmUpCiAgICAgICAgICAgICBy
ZXR1cm47CkBAIC0xMTk2LDEzICsxMTk4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAg
ICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+YWRkQ3Vyc29yKHN0eWxlUmVzb2x2ZXItPnN0eWxl
SW1hZ2UoQ1NTUHJvcGVydHlDdXJzb3IsIGltYWdlKSwgaW1hZ2UtPmhvdFNwb3QoKSk7CiAgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGlj
X2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpdGVtKTsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHByaW1pdGl2ZVZhbHVlLT5pc0lkZW50KCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+aXNWYWx1ZUlEKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZVJl
c29sdmVyLT5zdHlsZSgpLT5zZXRDdXJzb3IoKnByaW1pdGl2ZVZhbHVlKTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUtPmlzUHJpbWl0
aXZlVmFsdWUoKSkgewogICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZh
bHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgICAgICAg
ICBpZiAocHJpbWl0aXZlVmFsdWUtPmlzSWRlbnQoKSAmJiBzdHlsZVJlc29sdmVyLT5zdHlsZSgp
LT5jdXJzb3IoKSAhPSBFQ3Vyc29yKCpwcmltaXRpdmVWYWx1ZSkpCisgICAgICAgICAgICBpZiAo
cHJpbWl0aXZlVmFsdWUtPmlzVmFsdWVJRCgpICYmIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPmN1
cnNvcigpICE9IEVDdXJzb3IoKnByaW1pdGl2ZVZhbHVlKSkKICAgICAgICAgICAgICAgICBzdHls
ZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRDdXJzb3IoKnByaW1pdGl2ZVZhbHVlKTsKICAgICAgICAg
fQogICAgIH0KQEAgLTEyMTksNyArMTIyMSw3IEBAIHB1YmxpYzoKIAogICAgICAgICBDU1NQcmlt
aXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZSo+KHZhbHVlKTsKIAotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgIT0g
Q1NTVmFsdWVXZWJraXRNYXRjaFBhcmVudCkKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRWYWx1ZUlEKCkgIT0gQ1NTVmFsdWVXZWJraXRNYXRjaFBhcmVudCkKICAgICAgICAgICAgIHN0
eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRBbGlnbigqcHJpbWl0aXZlVmFsdWUpOwogICAg
ICAgICBlbHNlIGlmIChzdHlsZVJlc29sdmVyLT5wYXJlbnRTdHlsZSgpLT50ZXh0QWxpZ24oKSA9
PSBUQVNUQVJUKQogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEFs
aWduKHN0eWxlUmVzb2x2ZXItPnBhcmVudFN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSA/IExFRlQgOiBSSUdIVCk7CkBAIC0xMjYyLDggKzEyNjQsOCBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVl
ID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgICAgIGlmIChw
cmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgewotICAgICAgICAgICAgc3dpdGNoIChwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZh
bHVlSUQoKSkgeworICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJ
RCgpKSB7CiAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlU21hbGw6CiAgICAgICAgICAgICAgICAg
c3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0TWFycXVlZUluY3JlbWVudChMZW5ndGgoMSwgRml4
ZWQpKTsgLy8gMXB4LgogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTI3Myw2ICsxMjc1LDgg
QEAgcHVibGljOgogICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUxhcmdlOgogICAgICAgICAgICAg
ICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldE1hcnF1ZWVJbmNyZW1lbnQoTGVuZ3RoKDM2
LCBGaXhlZCkpOyAvLyAzNnB4LgogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgIExlbmd0aCBtYXJxdWVlTGVuZ3RoID0gc3R5bGVSZXNvbHZl
ci0+Y29udmVydFRvSW50TGVuZ3RoKHByaW1pdGl2ZVZhbHVlLCBzdHlsZVJlc29sdmVyLT5zdHls
ZSgpLCBzdHlsZVJlc29sdmVyLT5yb290RWxlbWVudFN0eWxlKCkpOwpAQCAtMTI5NSw3ICsxMjk5
LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIENTU1ByaW1pdGl2
ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4o
dmFsdWUpOwotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFs
dWVJbmZpbml0ZSkKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0g
Q1NTVmFsdWVJbmZpbml0ZSkKICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNl
dE1hcnF1ZWVMb29wQ291bnQoLTEpOyAvLyAtMSBtZWFucyByZXBlYXQgZm9yZXZlci4KICAgICAg
ICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzTnVtYmVyKCkpCiAgICAgICAgICAgICBzdHls
ZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRNYXJxdWVlTG9vcENvdW50KHByaW1pdGl2ZVZhbHVlLT5n
ZXRJbnRWYWx1ZSgpKTsKQEAgLTEzMTUsNyArMTMxOSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IHJldHVybjsKIAogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAgICAgaWYgKGludCBp
ZGVudCA9IHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgIGlmIChDU1NWYWx1
ZUlEIGlkZW50ID0gcHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkgewogICAgICAgICAgICAg
c3dpdGNoIChpZGVudCkgewogICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVNsb3c6CiAgICAgICAg
ICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0TWFycXVlZVNwZWVkKDUwMCk7IC8v
IDUwMCBtc2VjLgpAQCAtMTMyNiw2ICsxMzMwLDggQEAgcHVibGljOgogICAgICAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUZhc3Q6CiAgICAgICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+
c2V0TWFycXVlZVNwZWVkKDEwKTsgLy8gMTBtc2VjLiBTdXBlciBmYXN0LgogICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNUaW1l
KCkpCiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRNYXJxdWVlU3BlZWQo
cHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVUaW1lPGludCwgQ1NTUHJpbWl0aXZlVmFsdWU6Ok1pbGxp
c2Vjb25kcz4oKSk7CkBAIC0xMzc4LDcgKzEzODQsNyBAQCBwdWJsaWM6CiAgICAgICAgIENTU1By
aW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlKj4odmFsdWUpOwogICAgICAgICBMZW5ndGggbGluZUhlaWdodDsKIAotICAgICAgICBpZiAo
cHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb3JtYWwpCisgICAgICAgIGlm
IChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9ybWFsKQogICAgICAg
ICAgICAgbGluZUhlaWdodCA9IFJlbmRlclN0eWxlOjppbml0aWFsTGluZUhlaWdodCgpOwogICAg
ICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNMZW5ndGgoKSkgewogICAgICAgICAgICAg
ZG91YmxlIG11bHRpcGxpZXIgPSBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5lZmZlY3RpdmVab29t
KCk7CkBAIC0xNDMwLDcgKzE0MzYsNyBAQCBwcml2YXRlOgogICAgICAgICBpZiAoIXBhZ2VTaXpl
TmFtZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBzd2l0Y2ggKHBhZ2VT
aXplTmFtZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICBzd2l0Y2ggKHBhZ2VTaXplTmFtZS0+Z2V0
VmFsdWVJRCgpKSB7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVBNToKICAgICAgICAgICAgIHdpZHRo
ID0gYTVXaWR0aDsKICAgICAgICAgICAgIGhlaWdodCA9IGE1SGVpZ2h0OwpAQCAtMTQ2OCw3ICsx
NDc0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAgICAgICAgIGlmIChwYWdlT3JpZW50YXRp
b24pIHsKLSAgICAgICAgICAgIHN3aXRjaCAocGFnZU9yaWVudGF0aW9uLT5nZXRJZGVudCgpKSB7
CisgICAgICAgICAgICBzd2l0Y2ggKHBhZ2VPcmllbnRhdGlvbi0+Z2V0VmFsdWVJRCgpKSB7CiAg
ICAgICAgICAgICBjYXNlIENTU1ZhbHVlTGFuZHNjYXBlOgogICAgICAgICAgICAgICAgIHN0ZDo6
c3dhcCh3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE1MjMsNyAr
MTUyOSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBwYWdlU2l6ZVR5cGUgPSBQQUdFX1NJ
WkVfUkVTT0xWRUQ7CiAgICAgICAgICAgICAgICAgd2lkdGggPSBoZWlnaHQgPSBwcmltaXRpdmVW
YWx1ZS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxl
UmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUoKSk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAg
ICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAg
ICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKQEAgLTE1ODIsNyArMTU4OCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgICAgICBDU1NQcmlt
aXRpdmVWYWx1ZSogdmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0p
OwotICAgICAgICAgICAgICAgIGlmICh2YWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUZpbGxl
ZCB8fCB2YWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU9wZW4pCisgICAgICAgICAgICAgICAg
aWYgKHZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVGaWxsZWQgfHwgdmFsdWUtPmdldFZh
bHVlSUQoKSA9PSBDU1NWYWx1ZU9wZW4pCiAgICAgICAgICAgICAgICAgICAgIHN0eWxlUmVzb2x2
ZXItPnN0eWxlKCktPnNldFRleHRFbXBoYXNpc0ZpbGwoKnZhbHVlKTsKICAgICAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRl
eHRFbXBoYXNpc01hcmsoKnZhbHVlKTsKQEAgLTE2MDQsNyArMTYxMCw3IEBAIHB1YmxpYzoKIAog
ICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0RW1waGFzaXNDdXN0b21NYXJr
KG51bGxBdG9tKTsKIAotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0g
Q1NTVmFsdWVGaWxsZWQgfHwgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVP
cGVuKSB7CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1Zh
bHVlRmlsbGVkIHx8IHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVPcGVu
KSB7CiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0RW1waGFzaXNG
aWxsKCpwcmltaXRpdmVWYWx1ZSk7CiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgp
LT5zZXRUZXh0RW1waGFzaXNNYXJrKFRleHRFbXBoYXNpc01hcmtBdXRvKTsKICAgICAgICAgfSBl
bHNlIHsKQEAgLTE3MjUsNyArMTczMSw3IEBAIHB1YmxpYzoKICAgICAgICAgQ1NTUHJpbWl0aXZl
VmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2
YWx1ZSk7CiAKICAgICAgICAgRVJlc2l6ZSByID0gUkVTSVpFX05PTkU7Ci0gICAgICAgIHN3aXRj
aCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgc3dpdGNoIChwcmltaXRp
dmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CkBAIC0xNzU0LDcgKzE3NjAsNyBAQCBw
dWJsaWM6CiAKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CiAKLSAgICAgICAgaWYgKHByaW1p
dGl2ZVZhbHVlLT5nZXRJZGVudCgpKQorICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZh
bHVlSUQoKSkKICAgICAgICAgICAgIHJldHVybiBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRW
ZXJ0aWNhbEFsaWduKCpwcmltaXRpdmVWYWx1ZSk7CiAKICAgICAgICAgc3R5bGVSZXNvbHZlci0+
c3R5bGUoKS0+c2V0VmVydGljYWxBbGlnbkxlbmd0aChwcmltaXRpdmVWYWx1ZS0+Y29udmVydFRv
TGVuZ3RoPEZpeGVkSW50ZWdlckNvbnZlcnNpb24gfCBQZXJjZW50Q29udmVyc2lvbiB8IENhbGN1
bGF0ZWRDb252ZXJzaW9uIHwgVmlld3BvcnRQZXJjZW50YWdlQ29udmVyc2lvbj4oc3R5bGVSZXNv
bHZlci0+c3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBzdHlsZVJl
c29sdmVyLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpKTsKQEAgLTE4MjksMTMgKzE4MzUsMTMg
QEAgcHVibGljOgogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTih2YWx1
ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKTsKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1p
dGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CiAKLSAg
ICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9ybWFsKSB7
CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9y
bWFsKSB7CiAgICAgICAgICAgICByZXNldEVmZmVjdGl2ZVpvb20oc3R5bGVSZXNvbHZlcik7CiAg
ICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zZXRab29tKFJlbmRlclN0eWxlOjppbml0aWFsWm9v
bSgpKTsKLSAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBD
U1NWYWx1ZVJlc2V0KSB7CisgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZh
bHVlSUQoKSA9PSBDU1NWYWx1ZVJlc2V0KSB7CiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5z
ZXRFZmZlY3RpdmVab29tKFJlbmRlclN0eWxlOjppbml0aWFsWm9vbSgpKTsKICAgICAgICAgICAg
IHN0eWxlUmVzb2x2ZXItPnNldFpvb20oUmVuZGVyU3R5bGU6OmluaXRpYWxab29tKCkpOwotICAg
ICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRG9j
dW1lbnQpIHsKKyAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgp
ID09IENTU1ZhbHVlRG9jdW1lbnQpIHsKICAgICAgICAgICAgIGZsb2F0IGRvY1pvb20gPSBzdHls
ZVJlc29sdmVyLT5yb290RWxlbWVudFN0eWxlKCkgPyBzdHlsZVJlc29sdmVyLT5yb290RWxlbWVu
dFN0eWxlKCktPnpvb20oKSA6IFJlbmRlclN0eWxlOjppbml0aWFsWm9vbSgpOwogICAgICAgICAg
ICAgc3R5bGVSZXNvbHZlci0+c2V0RWZmZWN0aXZlWm9vbShkb2Nab29tKTsKICAgICAgICAgICAg
IHN0eWxlUmVzb2x2ZXItPnNldFpvb20oZG9jWm9vbSk7CkBAIC0xOTEwLDcgKzE5MTYsNyBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgewog
ICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgICAgICAgICBpZiAocHJpbWl0aXZl
VmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKQorICAgICAgICAgICAgaWYgKHByaW1p
dGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25lKQogICAgICAgICAgICAgICAg
IHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIDApOwogICAgICAgICAgICAgZWxzZSBp
ZiAocHJpbWl0aXZlVmFsdWUtPmlzU2hhcGUoKSkgewogICAgICAgICAgICAgICAgIHNldFZhbHVl
KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb246OmNyZWF0ZShi
YXNpY1NoYXBlRm9yVmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+
cm9vdEVsZW1lbnRTdHlsZSgpLCBwcmltaXRpdmVWYWx1ZS0+Z2V0U2hhcGVWYWx1ZSgpKSkpOwpA
QCAtMTk0MSwxMCArMTk0NywxMCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBpZiAodmFsdWUt
PmlzUHJpbWl0aXZlVmFsdWUoKSkgewogICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHBy
aW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0g
ICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVBdXRv
KQorICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVBdXRvKQogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCks
IDApOwogICAgICAgICAgICAgLy8gRklYTUUgQnVnIDEwMjU3MTogTGF5b3V0IGZvciB0aGUgdmFs
dWUgJ291dHNpZGUtc2hhcGUnIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQKLSAgICAgICAgICAgIGVs
c2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlT3V0c2lkZVNoYXBl
KQorICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBD
U1NWYWx1ZU91dHNpZGVTaGFwZSkKICAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29s
dmVyLT5zdHlsZSgpLCBTaGFwZVZhbHVlOjpjcmVhdGVPdXRzaWRlVmFsdWUoKSk7CiAgICAgICAg
ICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNTaGFwZSgpKSB7CiAgICAgICAgICAgICAg
ICAgUmVmUHRyPFNoYXBlVmFsdWU+IHNoYXBlID0gU2hhcGVWYWx1ZTo6Y3JlYXRlU2hhcGVWYWx1
ZShiYXNpY1NoYXBlRm9yVmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgc3R5bGVSZXNvbHZl
ci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBwcmltaXRpdmVWYWx1ZS0+Z2V0U2hhcGVWYWx1ZSgpKSk7
CkBAIC0xOTk0LDkgKzIwMDAsOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBpZiAoIWl0ZW0tPmlz
UHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
IENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4oaXRlbSk7Ci0gICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkgPT0gQ1NTVmFsdWVGcm9tSW1hZ2UpCisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFs
dWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUZyb21JbWFnZSkKICAgICAgICAgICAgICAgICBz
b3VyY2UgPSBJbWFnZVJlc29sdXRpb25Gcm9tSW1hZ2U7Ci0gICAgICAgICAgICBlbHNlIGlmIChw
cmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZVNuYXApCisgICAgICAgICAgICBl
bHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlU25hcCkKICAg
ICAgICAgICAgICAgICBzbmFwID0gSW1hZ2VSZXNvbHV0aW9uU25hcFBpeGVsczsKICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICByZXNvbHV0aW9uID0gcHJpbWl0aXZlVmFsdWUtPmdl
dERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCk7CkBAIC0yMDUwLDEyICsy
MDU2LDEyIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAg
ICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWUqPihpdGVtKTsKLSAgICAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUtPmdl
dElkZW50KCkpCisgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkp
CiAgICAgICAgICAgICAgICAgbGVuZ3RoT3JQZXJjZW50YWdlVmFsdWUgPSBwcmltaXRpdmVWYWx1
ZS0+Y29udmVydFRvTGVuZ3RoPEZpeGVkSW50ZWdlckNvbnZlcnNpb24gfCBQZXJjZW50Q29udmVy
c2lvbiB8IENhbGN1bGF0ZWRDb252ZXJzaW9uIHwgVmlld3BvcnRQZXJjZW50YWdlQ29udmVyc2lv
bj4oc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+cm9vdEVsZW1lbnRTdHls
ZSgpLCBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpOwogI2lmIEVOQUJM
RShDU1MzX1RFWFQpCi0gICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRl
bnQoKSA9PSBDU1NWYWx1ZVdlYmtpdEVhY2hMaW5lKQorICAgICAgICAgICAgZWxzZSBpZiAocHJp
bWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVdlYmtpdEVhY2hMaW5lKQogICAg
ICAgICAgICAgICAgIHRleHRJbmRlbnRMaW5lVmFsdWUgPSBUZXh0SW5kZW50RWFjaExpbmU7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1
ZVdlYmtpdEhhbmdpbmcpCisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlV2Via2l0SGFuZ2luZykKICAgICAgICAgICAgICAgICB0ZXh0
SW5kZW50VHlwZVZhbHVlID0gVGV4dEluZGVudEhhbmdpbmc7CiAjZW5kaWYKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGM0NzMzMjU3
M2ExNDJkNmE2MGQ1OWJlMDc4YmJmZjFlMDA5NThjZmYuLjY4ZGUwZjYyZDdkMmNlMWNmYzQzNTJm
N2Y2ZTBkMDg5MzU2YmE3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHAKQEAgLTI0OSw3ICsyNDksNyBAQCBzdGF0aWMgYm9vbCBvcmllbnRhdGlvbk1lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcgogICAg
IGludCB3aWR0aCA9IHZpZXctPmxheW91dFdpZHRoKCk7CiAgICAgaW50IGhlaWdodCA9IHZpZXct
PmxheW91dEhlaWdodCgpOwogICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS0+aXNQcmltaXRpdmVWYWx1
ZSgpKSB7Ci0gICAgICAgIGNvbnN0IGludCBpZCA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlKj4odmFsdWUpLT5nZXRJZGVudCgpOworICAgICAgICBjb25zdCBDU1NWYWx1ZUlEIGlkID0g
c3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldFZhbHVlSUQoKTsKICAg
ICAgICAgaWYgKHdpZHRoID4gaGVpZ2h0KSAvLyBTcXVhcmUgdmlld3BvcnQgaXMgcG9ydHJhaXQu
CiAgICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVMYW5kc2NhcGUgPT0gaWQ7CiAgICAgICAgIHJl
dHVybiBDU1NWYWx1ZVBvcnRyYWl0ID09IGlkOwpAQCAtNjAzLDcgKzYwMyw3IEBAIHN0YXRpYyBi
b29sIHZpZXdfbW9kZU1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHls
ZSosIEZyYW1lKiBmcmFtCiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
LSAgICBjb25zdCBpbnQgdmlld01vZGVDU1NLZXl3b3JkSUQgPSBzdGF0aWNfY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0SWRlbnQoKTsKKyAgICBjb25zdCBpbnQgdmlld01vZGVD
U1NLZXl3b3JkSUQgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0
VmFsdWVJRCgpOwogICAgIGNvbnN0IFBhZ2U6OlZpZXdNb2RlIHZpZXdNb2RlID0gZnJhbWUtPnBh
Z2UoKS0+dmlld01vZGUoKTsKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwogICAgIHN3aXRjaCAo
dmlld01vZGUpIHsKQEAgLTY4NSw3ICs2ODUsNyBAQCBzdGF0aWMgYm9vbCBwb2ludGVyTWVkaWFG
ZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLAog
ICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgY29uc3QgaW50IGlkID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2
YWx1ZSktPmdldElkZW50KCk7CisgICAgY29uc3QgQ1NTVmFsdWVJRCBpZCA9IHN0YXRpY19jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRWYWx1ZUlEKCk7CiAgICAgcmV0dXJuIChw
b2ludGVyID09IE5vUG9pbnRlciAmJiBpZCA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAgIHx8IChw
b2ludGVyID09IFRvdWNoUG9pbnRlciAmJiBpZCA9PSBDU1NWYWx1ZUNvYXJzZSkKICAgICAgICAg
fHwgKHBvaW50ZXIgPT0gTW91c2VQb2ludGVyICYmIGlkID09IENTU1ZhbHVlRmluZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3BwCmluZGV4IDE5NDFiMzJiNDljZDFmNmY1MzUxNDNiMzdl
YzRiMTEwZGIyY2YxYzEuLmRmZGM3NGU4YmEzOTIzMjQyNmQ0NWEyNDNjNGU2M2RkZGMwMDJiNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3BwCkBAIC00Miw3ICs0Miw3IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVNWR1ZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9y
dGFudCkKICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpbnQg
aWQgPSB2YWx1ZS0+aWQ7CisgICAgQ1NTVmFsdWVJRCBpZCA9IHZhbHVlLT5pZDsKIAogICAgIGJv
b2wgdmFsaWRfcHJpbWl0aXZlID0gZmFsc2U7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBwYXJzZWRW
YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCA3
MGQxY2E0ZjljZmRjZGFlODkzNTczZjBhYzg4ZGUwNTJjNzA0NzY4Li42Zjg3MjMxZGY4NTA0YjU1
NjUwYzcyMmNhOGNmNjBlZmIxODUxZTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1N0
eWxlU2VsZWN0b3IuY3BwCkBAIC0xMzcsOCArMTM3LDggQEAgdm9pZCBTdHlsZVJlc29sdmVyOjph
cHBseVNWR1Byb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAg
ICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAg
ICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgewotICAgICAgICAgICAg
ICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgICAgIGlm
IChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CisgICAgICAgICAgICAgICAgc3dpdGNo
IChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBD
U1NWYWx1ZUJhc2VsaW5lOgogICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0QmFzZWxp
bmVTaGlmdChCU19CQVNFTElORSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTM5
LDcgKzUzOSw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlTVkdQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgICAgICAgICAgQVNTRVJUKG9yaWVu
dGF0aW9uICE9IC0xKTsKIAogICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRHbHlwaE9yaWVu
dGF0aW9uVmVydGljYWwoKEVHbHlwaE9yaWVudGF0aW9uKSBvcmllbnRhdGlvbik7Ci0gICAgICAg
ICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQXV0
bykKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9
PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldEdseXBoT3JpZW50
YXRpb25WZXJ0aWNhbChHT19BVVRPKTsKIAogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKaW5kZXggZDZhYTMzMTg0OGE1NmE0N2UyNzBjNmJh
MGVjNGVmNjViYmJjNGE4ZC4uYzBkYmZmYzY2NmJiZjI3OTAyM2JjMjE4MzBmNmI1OTljOGM4NDky
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcApAQCAtNDIwLDggKzQy
MCw4IEBAIFN0cmluZyBTdHlsZVByb3BlcnR5U2V0OjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUo
Y29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYKICAgICAgICAgICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgICAgICAgICAgeVZhbHVlID0gbmV4dFZhbHVlOwogCi0gICAgICAgICAg
ICAgICAgICAgIGludCB4SWQgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVl
LmdldCgpKS0+Z2V0SWRlbnQoKTsKLSAgICAgICAgICAgICAgICAgICAgaW50IHlJZCA9IHN0YXRp
Y19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oeVZhbHVlLmdldCgpKS0+Z2V0SWRlbnQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgQ1NTVmFsdWVJRCB4SWQgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KHZhbHVlLmdldCgpKS0+Z2V0VmFsdWVJRCgpOworICAgICAgICAgICAgICAgICAg
ICBDU1NWYWx1ZUlEIHlJZCA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oeVZhbHVl
LmdldCgpKS0+Z2V0VmFsdWVJRCgpOwogICAgICAgICAgICAgICAgICAgICBpZiAoeElkICE9IHlJ
ZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHhJZCA9PSBDU1NWYWx1ZVJlcGVhdCAm
JiB5SWQgPT0gQ1NTVmFsdWVOb1JlcGVhdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVzZVJlcGVhdFhTaG9ydGhhbmQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
Y3BwCmluZGV4IDVjMzhiZWFjZTMwNzhjYTM5ODhhNWZhYjdiZTI2NzMyY2JkOTg4ODUuLmUyZDhk
OGRlMjQ3YmJmMDg1MTA3NTBkOWM4NDI1MGVlY2U5Yzk0OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKQEAgLTIwNTgsMTIgKzIwNTgsMTIgQEAgYm9vbCBTdHlsZVJlc29sdmVy
Ojp1c2VTVkdab29tUnVsZXMoKQogCiBzdGF0aWMgYm9vbCBjcmVhdGVHcmlkVHJhY2tCcmVhZHRo
KENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSwgY29uc3QgU3R5bGVSZXNvbHZlcjo6
U3RhdGUmIHN0YXRlLCBMZW5ndGgmIHdvcmtpbmdMZW5ndGgpCiB7Ci0gICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlV2Via2l0TWluQ29udGVudCkgeworICAgIGlm
IChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlV2Via2l0TWluQ29udGVu
dCkgewogICAgICAgICB3b3JraW5nTGVuZ3RoID0gTGVuZ3RoKE1pbkNvbnRlbnQpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkgPT0gQ1NTVmFsdWVXZWJraXRNYXhDb250ZW50KSB7CisgICAgaWYgKHByaW1pdGl2ZVZhbHVl
LT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVXZWJraXRNYXhDb250ZW50KSB7CiAgICAgICAgIHdv
cmtpbmdMZW5ndGggPSBMZW5ndGgoTWF4Q29udGVudCk7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KQEAgLTIxMDgsNyArMjEwOCw3IEBAIHN0YXRpYyBib29sIGNyZWF0ZUdyaWRUcmFja0xp
c3QoQ1NTVmFsdWUqIHZhbHVlLCBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4mIHRyYWNrU2l6CiAgICAg
Ly8gSGFuZGxlICdub25lJy4KICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgewog
ICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZh
bHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25lOwogICAgIH0KIAogICAgIGlmICghdmFs
dWUtPmlzVmFsdWVMaXN0KCkpCkBAIC0yMTMzLDcgKzIxMzMsNyBAQCBzdGF0aWMgYm9vbCBjcmVh
dGVHcmlkUG9zaXRpb24oQ1NTVmFsdWUqIHZhbHVlLCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZl
VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICBpZiAo
cHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVBdXRvKQorICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihwcmltaXRpdmVW
YWx1ZS0+aXNOdW1iZXIoKSk7CkBAIC0yMzEwLDE0ICsyMzEwLDE0IEBAIHZvaWQgU3R5bGVSZXNv
bHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAg
ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VmFsdWUtPmlzQ291bnRlcigpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIENvdW50ZXIqIGNvdW50ZXJWYWx1ZSA9IGNvbnRlbnRWYWx1ZS0+
Z2V0Q291bnRlclZhbHVlKCk7CiAgICAgICAgICAgICAgICAgICAgIEVMaXN0U3R5bGVUeXBlIGxp
c3RTdHlsZVR5cGUgPSBOb25lTGlzdFN0eWxlOwotICAgICAgICAgICAgICAgICAgICBpbnQgbGlz
dFN0eWxlSWRlbnQgPSBjb3VudGVyVmFsdWUtPmxpc3RTdHlsZUlkZW50KCk7CisgICAgICAgICAg
ICAgICAgICAgIENTU1ZhbHVlSUQgbGlzdFN0eWxlSWRlbnQgPSBjb3VudGVyVmFsdWUtPmxpc3RT
dHlsZUlkZW50KCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0U3R5bGVJZGVudCAhPSBD
U1NWYWx1ZU5vbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGVUeXBlID0gc3Rh
dGljX2Nhc3Q8RUxpc3RTdHlsZVR5cGU+KGxpc3RTdHlsZUlkZW50IC0gQ1NTVmFsdWVEaXNjKTsK
ICAgICAgICAgICAgICAgICAgICAgT3duUHRyPENvdW50ZXJDb250ZW50PiBjb3VudGVyID0gYWRv
cHRQdHIobmV3IENvdW50ZXJDb250ZW50KGNvdW50ZXJWYWx1ZS0+aWRlbnRpZmllcigpLCBsaXN0
U3R5bGVUeXBlLCBjb3VudGVyVmFsdWUtPnNlcGFyYXRvcigpKSk7CiAgICAgICAgICAgICAgICAg
ICAgIHN0YXRlLnN0eWxlKCktPnNldENvbnRlbnQoY291bnRlci5yZWxlYXNlKCksIGRpZFNldCk7
CiAgICAgICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjb250ZW50VmFsdWUtPmdldElkZW50
KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjb250ZW50VmFsdWUtPmdldFZhbHVl
SUQoKSkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlT3BlblF1b3RlOgogICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0Q29udGVudChPUEVOX1FVT1RF
LCBkaWRTZXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKQEAgLTIz
NzIsNyArMjM3Miw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlKSB7Ci0gICAgICAgICAgICBpZiAocHJpbWl0
aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKQorICAgICAgICAgICAgaWYgKHBy
aW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25lKQogICAgICAgICAgICAg
ICAgIHN0YXRlLnN0eWxlKCktPnNldFF1b3RlcyhRdW90ZXNEYXRhOjpjcmVhdGUoVmVjdG9yPHN0
ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gPigpKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
OwpAQCAtMjM5NCw3ICsyMzk0LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5
KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgICAgIHN0YXRlLnNl
dExpbmVIZWlnaHRWYWx1ZSgwKTsKIAogICAgICAgICAgICAgRm9udERlc2NyaXB0aW9uIGZvbnRE
ZXNjcmlwdGlvbjsKLSAgICAgICAgICAgIFJlbmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS0+c3lz
dGVtRm9udChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSwgZm9udERlc2NyaXB0aW9uKTsKKyAg
ICAgICAgICAgIFJlbmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS0+c3lzdGVtRm9udChwcmltaXRp
dmVWYWx1ZS0+Z2V0VmFsdWVJRCgpLCBmb250RGVzY3JpcHRpb24pOwogCiAgICAgICAgICAgICAv
LyBEb3VibGUtY2hlY2sgYW5kIHNlZSBpZiB0aGUgdGhlbWUgZGlkIGFueXRoaW5nLiBJZiBub3Qs
IGRvbid0IGJvdGhlciB1cGRhdGluZyB0aGUgZm9udC4KICAgICAgICAgICAgIGlmIChmb250RGVz
Y3JpcHRpb24uaXNBYnNvbHV0ZVNpemUoKSkgewpAQCAtMjUwMCw3ICsyNTAwLDcgQEAgdm9pZCBT
dHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2
YWx1ZSkKICAgICAgICAgICAgIGludCB5ID0gaXRlbS0+eS0+Y29tcHV0ZUxlbmd0aDxpbnQ+KHN0
YXRlLnN0eWxlKCksIHN0YXRlLnJvb3RFbGVtZW50U3R5bGUoKSwgem9vbUZhY3Rvcik7CiAgICAg
ICAgICAgICBpbnQgYmx1ciA9IGl0ZW0tPmJsdXIgPyBpdGVtLT5ibHVyLT5jb21wdXRlTGVuZ3Ro
PGludD4oc3RhdGUuc3R5bGUoKSwgc3RhdGUucm9vdEVsZW1lbnRTdHlsZSgpLCB6b29tRmFjdG9y
KSA6IDA7CiAgICAgICAgICAgICBpbnQgc3ByZWFkID0gaXRlbS0+c3ByZWFkID8gaXRlbS0+c3By
ZWFkLT5jb21wdXRlTGVuZ3RoPGludD4oc3RhdGUuc3R5bGUoKSwgc3RhdGUucm9vdEVsZW1lbnRT
dHlsZSgpLCB6b29tRmFjdG9yKSA6IDA7Ci0gICAgICAgICAgICBTaGFkb3dTdHlsZSBzaGFkb3dT
dHlsZSA9IGl0ZW0tPnN0eWxlICYmIGl0ZW0tPnN0eWxlLT5nZXRJZGVudCgpID09IENTU1ZhbHVl
SW5zZXQgPyBJbnNldCA6IE5vcm1hbDsKKyAgICAgICAgICAgIFNoYWRvd1N0eWxlIHNoYWRvd1N0
eWxlID0gaXRlbS0+c3R5bGUgJiYgaXRlbS0+c3R5bGUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1
ZUluc2V0ID8gSW5zZXQgOiBOb3JtYWw7CiAgICAgICAgICAgICBDb2xvciBjb2xvcjsKICAgICAg
ICAgICAgIGlmIChpdGVtLT5jb2xvcikKICAgICAgICAgICAgICAgICBjb2xvciA9IGNvbG9yRnJv
bVByaW1pdGl2ZVZhbHVlKGl0ZW0tPmNvbG9yLmdldCgpKTsKQEAgLTI1NDYsNyArMjU0Niw3IEBA
IHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NW
YWx1ZSogdmFsdWUpCiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGxvY2FsZSwg
TG9jYWxlKTsKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQXV0
bykKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVB
dXRvKQogICAgICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0TG9jYWxlKG51bGxBdG9tKTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0TG9jYWxlKHByaW1pdGl2
ZVZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpKTsKQEAgLTI1NjIsNyArMjU2Miw3IEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFs
dWUpCiAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkg
eworICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5v
bmUpIHsKICAgICAgICAgICAgIHN0YXRlLnN0eWxlKCktPnNldERhc2hib2FyZFJlZ2lvbnMoUmVu
ZGVyU3R5bGU6Om5vbmVEYXNoYm9hcmRSZWdpb25zKCkpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CkBAIC0yNjAxLDkgKzI2MDEsOSBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5
UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogI2VuZGlmCiAjaWYg
RU5BQkxFKERSQUdHQUJMRV9SRUdJT04pCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFwcFJl
Z2lvbjogewotICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlIHx8ICFwcmltaXRpdmVWYWx1ZS0+
Z2V0SWRlbnQoKSkKKyAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSB8fCAhcHJpbWl0aXZlVmFs
dWUtPmdldFZhbHVlSUQoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgc3RhdGUuc3R5
bGUoKS0+c2V0RHJhZ2dhYmxlUmVnaW9uTW9kZShwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9
PSBDU1NWYWx1ZURyYWcgPyBEcmFnZ2FibGVSZWdpb25EcmFnIDogRHJhZ2dhYmxlUmVnaW9uTm9E
cmFnKTsKKyAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0RHJhZ2dhYmxlUmVnaW9uTW9kZShwcmlt
aXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlRHJhZyA/IERyYWdnYWJsZVJlZ2lv
bkRyYWcgOiBEcmFnZ2FibGVSZWdpb25Ob0RyYWcpOwogICAgICAgICBzdGF0ZS5kb2N1bWVudCgp
LT5zZXRIYXNBbm5vdGF0ZWRSZWdpb25zKHRydWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMjYxMSwxNCArMjYxMSwxNCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHko
Q1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRUZXh0U3Ryb2tlV2lkdGg6IHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJ
QUwodGV4dFN0cm9rZVdpZHRoLCBUZXh0U3Ryb2tlV2lkdGgpCiAgICAgICAgIGZsb2F0IHdpZHRo
ID0gMDsKLSAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAg
ICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAgICAgY2Fz
ZSBDU1NWYWx1ZVRoaW46CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVNZWRpdW06CiAgICAgICAgIGNh
c2UgQ1NTVmFsdWVUaGljazogewogICAgICAgICAgICAgZG91YmxlIHJlc3VsdCA9IDEuMCAvIDQ4
OwotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVl
TWVkaXVtKQorICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0g
Q1NTVmFsdWVNZWRpdW0pCiAgICAgICAgICAgICAgICAgcmVzdWx0ICo9IDM7Ci0gICAgICAgICAg
ICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZVRoaWNrKQor
ICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NW
YWx1ZVRoaWNrKQogICAgICAgICAgICAgICAgIHJlc3VsdCAqPSA1OwogICAgICAgICAgICAgd2lk
dGggPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHJlc3VsdCwgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19FTVMpLT5jb21wdXRlTGVuZ3RoPGZsb2F0PihzdGF0ZS5zdHlsZSgpLCBzdGF0ZS5yb290
RWxlbWVudFN0eWxlKCksIHpvb21GYWN0b3IpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNjQz
LDcgKzI2NDMsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVy
dHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRl
bnQoKSA9PSBDU1NWYWx1ZU5vbmUpIHsKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRW
YWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25lKSB7CiAgICAgICAgICAgICBzdGF0ZS5zdHlsZSgpLT5z
ZXRQZXJzcGVjdGl2ZSgwKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMjY3
Nyw3ICsyNjc3LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3Bl
cnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lO
SVRJQUwodXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZywgVXNlVG91Y2hPdmVyZmxvd1Njcm9sbGlu
Zyk7CiAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCiAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0VXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZyhwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZVRvdWNoKTsKKyAgICAgICAgc3RhdGUuc3R5
bGUoKS0+c2V0VXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZyhwcmltaXRpdmVWYWx1ZS0+Z2V0VmFs
dWVJRCgpID09IENTU1ZhbHVlVG91Y2gpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlm
CkBAIC0yNzY0LDcgKzI3NjQsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHko
Q1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogCiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdExpbmVCb3hDb250YWluOiB7CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklU
SUFMKGxpbmVCb3hDb250YWluLCBMaW5lQm94Q29udGFpbikKLSAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkgewor
ICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQo
KSA9PSBDU1NWYWx1ZU5vbmUpIHsKICAgICAgICAgICAgIHN0YXRlLnN0eWxlKCktPnNldExpbmVC
b3hDb250YWluKExpbmVCb3hDb250YWluTm9uZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KQEAgLTI3NzksNyArMjc3OSw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAKICAgICAvLyBDU1MgRm9u
dHMgTW9kdWxlIExldmVsIDMKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udEZlYXR1cmVT
ZXR0aW5nczogewotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZlVmFsdWUt
PmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb3JtYWwpIHsKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZh
bHVlICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb3JtYWwpIHsK
ICAgICAgICAgICAgIHNldEZvbnREZXNjcmlwdGlvbihzdGF0ZS5zdHlsZSgpLT5mb250RGVzY3Jp
cHRpb24oKS5tYWtlTm9ybWFsRmVhdHVyZVNldHRpbmdzKCkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkBAIC0zNDMxLDEwICszNDMxLDEwIEBAIGludCBTdHlsZVJlc29sdmVyOjps
ZWdhY3lGb250U2l6ZShEb2N1bWVudCogZG9jdW1lbnQsIGludCBwaXhlbEZvbnRTaXplLCBib29s
IHNoCiAgICAgcmV0dXJuIGZpbmROZWFyZXN0TGVnYWN5Rm9udFNpemU8ZmxvYXQ+KHBpeGVsRm9u
dFNpemUsIGZvbnRTaXplRmFjdG9ycywgbWVkaXVtU2l6ZSk7CiB9CiAKLXN0YXRpYyBDb2xvciBj
b2xvckZvckNTU1ZhbHVlKGludCBjc3NWYWx1ZUlkKQorc3RhdGljIENvbG9yIGNvbG9yRm9yQ1NT
VmFsdWUoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkKQogewogICAgIHN0cnVjdCBDb2xvclZhbHVlIHsK
LSAgICAgICAgaW50IGNzc1ZhbHVlSWQ7CisgICAgICAgIENTU1ZhbHVlSUQgY3NzVmFsdWVJZDsK
ICAgICAgICAgUkdCQTMyIGNvbG9yOwogICAgIH07CiAKQEAgLTM0NTgsNyArMzQ1OCw3IEBAIHN0
YXRpYyBDb2xvciBjb2xvckZvckNTU1ZhbHVlKGludCBjc3NWYWx1ZUlkKQogICAgICAgICB7IENT
U1ZhbHVlVHJhbnNwYXJlbnQsIDB4MDAwMDAwMDAgfSwKICAgICAgICAgeyBDU1NWYWx1ZVdoaXRl
LCAweEZGRkZGRkZGIH0sCiAgICAgICAgIHsgQ1NTVmFsdWVZZWxsb3csIDB4RkZGRkZGMDAgfSwK
LSAgICAgICAgeyAwLCAwIH0KKyAgICAgICAgeyBDU1NWYWx1ZUludmFsaWQsIENTU1ZhbHVlSW52
YWxpZCB9CiAgICAgfTsKIAogICAgIGZvciAoY29uc3QgQ29sb3JWYWx1ZSogY29sID0gY29sb3JW
YWx1ZXM7IGNvbC0+Y3NzVmFsdWVJZDsgKytjb2wpIHsKQEAgLTM0NzAsNyArMzQ3MCw3IEBAIHN0
YXRpYyBDb2xvciBjb2xvckZvckNTU1ZhbHVlKGludCBjc3NWYWx1ZUlkKQogCiBib29sIFN0eWxl
UmVzb2x2ZXI6OmNvbG9yRnJvbVByaW1pdGl2ZVZhbHVlSXNEZXJpdmVkRnJvbUVsZW1lbnQoQ1NT
UHJpbWl0aXZlVmFsdWUqIHZhbHVlKQogewotICAgIGludCBpZGVudCA9IHZhbHVlLT5nZXRJZGVu
dCgpOworICAgIGludCBpZGVudCA9IHZhbHVlLT5nZXRWYWx1ZUlEKCk7CiAgICAgc3dpdGNoIChp
ZGVudCkgewogICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRUZXh0OgogICAgIGNhc2UgQ1NTVmFsdWVX
ZWJraXRMaW5rOgpAQCAtMzQ4OCw3ICszNDg4LDcgQEAgQ29sb3IgU3R5bGVSZXNvbHZlcjo6Y29s
b3JGcm9tUHJpbWl0aXZlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlLCBib29sIGZvclYK
ICAgICAgICAgcmV0dXJuIENvbG9yKHZhbHVlLT5nZXRSR0JBMzJWYWx1ZSgpKTsKIAogICAgIGNv
bnN0IFN0YXRlJiBzdGF0ZSA9IG1fc3RhdGU7Ci0gICAgaW50IGlkZW50ID0gdmFsdWUtPmdldElk
ZW50KCk7CisgICAgQ1NTVmFsdWVJRCBpZGVudCA9IHZhbHVlLT5nZXRWYWx1ZUlEKCk7CiAgICAg
c3dpdGNoIChpZGVudCkgewogICAgIGNhc2UgMDoKICAgICAgICAgcmV0dXJuIENvbG9yKCk7CkBA
IC0zODI4LDkgKzM4MjgsOSBAQCBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlck9wZXJhdGlvbj4gU3R5
bGVSZXNvbHZlcjo6Y3JlYXRlQ3VzdG9tRmlsdGVyT3BlcmF0aW9uV2l0aAogICAgICAgICAgICAg
QVNTRVJUKG1peEZ1bmN0aW9uLT5sZW5ndGgoKSA8PSAzKTsKICAgICAgICAgICAgIHdoaWxlIChp
dGVyYXRvci5oYXNNb3JlKCkpIHsKICAgICAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSog
cHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZXJhdG9y
LnZhbHVlKCkpOwotICAgICAgICAgICAgICAgIGlmIChDU1NQYXJzZXI6OmlzQmxlbmRNb2RlKHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSkKKyAgICAgICAgICAgICAgICBpZiAoQ1NTUGFyc2Vy
Ojppc0JsZW5kTW9kZShwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSkKICAgICAgICAgICAg
ICAgICAgICAgbWl4U2V0dGluZ3MuYmxlbmRNb2RlID0gKnByaW1pdGl2ZVZhbHVlOwotICAgICAg
ICAgICAgICAgIGVsc2UgaWYgKENTU1BhcnNlcjo6aXNDb21wb3NpdGVPcGVyYXRvcihwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSkpCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoQ1NTUGFyc2Vy
Ojppc0NvbXBvc2l0ZU9wZXJhdG9yKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpKQogICAg
ICAgICAgICAgICAgICAgICBtaXhTZXR0aW5ncy5jb21wb3NpdGVPcGVyYXRvciA9ICpwcmltaXRp
dmVWYWx1ZTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzg3OSw3ICszODc5LDcgQEAgUGFzc1JlZlB0cjxDdXN0b21G
aWx0ZXJPcGVyYXRpb24+IFN0eWxlUmVzb2x2ZXI6OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlv
bldpdGgKICAgICAgICAgCiAgICAgICAgIGlmIChpdGVyYXRvci5oYXNNb3JlKCkgJiYgaXRlcmF0
b3IuaXNQcmltaXRpdmVWYWx1ZSgpKSB7CiAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSog
cHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZXJhdG9y
LnZhbHVlKCkpOwotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09
IENTU1ZhbHVlRGV0YWNoZWQpIHsKKyAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlRGV0YWNoZWQpIHsKICAgICAgICAgICAgICAgICBtZXNoVHlw
ZSA9IE1lc2hUeXBlRGV0YWNoZWQ7CiAgICAgICAgICAgICAgICAgaXRlcmF0b3IuYWR2YW5jZSgp
OwogICAgICAgICAgICAgfQpAQCAtMzkyMiw3ICszOTIyLDcgQEAgYm9vbCBTdHlsZVJlc29sdmVy
OjpjcmVhdGVGaWx0ZXJPcGVyYXRpb25zKENTU1ZhbHVlKiBpblZhbHVlLCBSZW5kZXJTdHlsZSog
c3R5bGUKICAgICAKICAgICBpZiAoaW5WYWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CiAgICAg
ICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1By
aW1pdGl2ZVZhbHVlKj4oaW5WYWx1ZSk7Ci0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0
SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmUpCisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0eWxlUmVz
b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAK
aW5kZXggNDA4NWVmMDU3MTRhZDVhMGRhMzkxZDRlNjM5ZTI1ZTVmZDNlMWE5OC4uNzRhMGIyMGQz
NTc5NTE1ZWI0NzdhODk1YzBhMjM0M2EyOGJmOWJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBmbG9hdCBWaWV3
cG9ydFN0eWxlUmVzb2x2ZXI6OmdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eUlE
IGlkKSBjb25zdAogICAgICAgICB9CiAgICAgfQogCi0gICAgc3dpdGNoIChwcmltaXRpdmVWYWx1
ZS0+Z2V0SWRlbnQoKSkgeworICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQo
KSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVl
OwogICAgIGNhc2UgQ1NTVmFsdWVEZXZpY2VIZWlnaHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NNYXRyaXguY3BwCmluZGV4IGYxY2M2YTQxMzA3YzA2YzdhNjI5NTA4MDMzOWM4Zjc1NGNiYTdk
OGQuLmEzM2I4OTVkODc2OTZlYzMzZTBlY2JhNjllNTc2Zjg0YjA1YzhjNzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgV2ViS2l0
Q1NTTWF0cml4OjpzZXRNYXRyaXhWYWx1ZShjb25zdCBTdHJpbmcmIHN0cmluZywgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBzdHlsZURlY2xhcmF0
aW9uLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtKTsKIAog
ICAgICAgICAvLyBDaGVjayBmb3IgYSAibm9uZSIgb3IgZW1wdHkgdHJhbnNmb3JtLiBJbiB0aGVz
ZSBjYXNlcyB3ZSBjYW4gdXNlIHRoZSBkZWZhdWx0IGlkZW50aXR5IG1hdHJpeC4KLSAgICAgICAg
aWYgKCF2YWx1ZSB8fCAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiAoc3RhdGljX2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZS5nZXQoKSkpLT5nZXRJZGVudCgpID09IENTU1ZhbHVl
Tm9uZSkpCisgICAgICAgIGlmICghdmFsdWUgfHwgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkg
JiYgKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUuZ2V0KCkpKS0+Z2V0VmFs
dWVJRCgpID09IENTU1ZhbHVlTm9uZSkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
VHJhbnNmb3JtT3BlcmF0aW9ucyBvcGVyYXRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCAxYWRlNWRiM2RlNWYzYjhjZmJhZTYzM2I1ZThm
YTJkYTUxMDg5ODZjLi45NzFhNGFkMDA0MTI1NmI0MTYzMDkzMjRiZTRjNDAzNTY5MWQxMTY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtNTgs
NyArNTgsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0aWMgaW50IHRvSWRl
bnRpZmllcihQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSkKIHsKLSAgICByZXR1cm4gKHZhbHVl
ICYmIHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpID8gc3RhdGljX3BvaW50ZXJfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZT4odmFsdWUpLT5nZXRJZGVudCgpIDogMDsKKyAgICByZXR1cm4gKHZhbHVl
ICYmIHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpID8gc3RhdGljX3BvaW50ZXJfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZT4odmFsdWUpLT5nZXRWYWx1ZUlEKCkgOiAwOwogfQogCiBzdGF0aWMgU3Ry
aW5nJiBzdHlsZVNwYW5DbGFzc1N0cmluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdT
dHlsZS5jcHAKaW5kZXggZDVhMzI5N2EzZTMyZmM3ZTA4YWFlYmUwMDFiYmVlOGE4MzE0NzE5Ni4u
NzBlNThmNzI3ZGI3MjNiMDE4MjMxMWQwZTIyYzFhZmE2ZjllNmFkOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIGludCBpZGVudGlm
aWVyRm9yU3R5bGVQcm9wZXJ0eShUKiBzdHlsZSwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQog
ICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBleHRyYWN0UHJvcGVydHlWYWx1ZShzdHlsZSwg
cHJvcGVydHlJRCk7CiAgICAgaWYgKCF2YWx1ZSB8fCAhdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUo
KSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4odmFsdWUuZ2V0KCkpLT5nZXRJZGVudCgpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlLmdldCgpKS0+Z2V0VmFsdWVJRCgpOwogfQogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBQYXNzUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBn
ZXRQcm9wZXJ0aWVzTm90SW4oU3R5bGVQcm9wZXJ0eVNldCogc3R5bGVXaXRoUmVkdW5kYW50UHJv
cGVydGllcywgVCogYmFzZVN0eWxlKTsKQEAgLTE0OSw3ICsxNDksNyBAQCBzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gYmFja2dyb3VuZENvbG9ySW5FZmZlY3QoTm9kZSopOwogY2xhc3MgSFRN
TEVsZW1lbnRFcXVpdmFsZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxIVE1MRWxlbWVudEVxdWl2YWxlbnQ+IGNyZWF0ZShD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGludCBwcmltaXRpdmVWYWx1ZSwgY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxIVE1MRWxlbWVudEVxdWl2
YWxlbnQ+IGNyZWF0ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIENTU1ZhbHVlSUQgcHJpbWl0
aXZlVmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IEhUTUxFbGVtZW50RXF1aXZhbGVudChwcm9wZXJ0eUlELCBwcmlt
aXRpdmVWYWx1ZSwgdGFnTmFtZSkpOwogICAgIH0KQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6
CiBwcm90ZWN0ZWQ6CiAgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50KENTU1Byb3BlcnR5SUQpOwog
ICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudChDU1NQcm9wZXJ0eUlELCBjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lKTsKLSAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnQoQ1NTUHJvcGVydHlJRCwg
aW50IHByaW1pdGl2ZVZhbHVlLCBjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lKTsKKyAgICBI
VE1MRWxlbWVudEVxdWl2YWxlbnQoQ1NTUHJvcGVydHlJRCwgQ1NTVmFsdWVJRCBwcmltaXRpdmVW
YWx1ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSk7CiAgICAgY29uc3QgQ1NTUHJvcGVy
dHlJRCBtX3Byb3BlcnR5SUQ7CiAgICAgY29uc3QgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBt
X3ByaW1pdGl2ZVZhbHVlOwogICAgIGNvbnN0IFF1YWxpZmllZE5hbWUqIG1fdGFnTmFtZTsgLy8g
V2UgY2FuIHN0b3JlIGEgcG9pbnRlciBiZWNhdXNlIEhUTUwgdGFnIG5hbWVzIGFyZSBjb25zdCBn
bG9iYWwuCkBAIC0xODIsNyArMTgyLDcgQEAgSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpIVE1MRWxl
bWVudEVxdWl2YWxlbnQoQ1NTUHJvcGVydHlJRCBpZCwgY29uc3QgUXVhbGlmaWVkTmEKIHsKIH0K
IAotSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpIVE1MRWxlbWVudEVxdWl2YWxlbnQoQ1NTUHJvcGVy
dHlJRCBpZCwgaW50IHByaW1pdGl2ZVZhbHVlLCBjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
KQorSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpIVE1MRWxlbWVudEVxdWl2YWxlbnQoQ1NTUHJvcGVy
dHlJRCBpZCwgQ1NTVmFsdWVJRCBwcmltaXRpdmVWYWx1ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSkKICAgICA6IG1fcHJvcGVydHlJRChpZCkKICAgICAsIG1fcHJpbWl0aXZlVmFsdWUo
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIocHJpbWl0aXZlVmFsdWUpKQogICAg
ICwgbV90YWdOYW1lKCZ0YWdOYW1lKQpAQCAtMTkzLDcgKzE5Myw3IEBAIEhUTUxFbGVtZW50RXF1
aXZhbGVudDo6SFRNTEVsZW1lbnRFcXVpdmFsZW50KENTU1Byb3BlcnR5SUQgaWQsIGludCBwcmlt
aXRpdmVWYWx1CiBib29sIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6dmFsdWVJc1ByZXNlbnRJblN0
eWxlKEVsZW1lbnQqIGVsZW1lbnQsIFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlKSBjb25zdAogewog
ICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBzdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZSht
X3Byb3BlcnR5SUQpOwotICAgIHJldHVybiBtYXRjaGVzKGVsZW1lbnQpICYmIHZhbHVlICYmIHZh
bHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUq
Pih2YWx1ZS5nZXQoKSktPmdldElkZW50KCkgPT0gbV9wcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQo
KTsKKyAgICByZXR1cm4gbWF0Y2hlcyhlbGVtZW50KSAmJiB2YWx1ZSAmJiB2YWx1ZS0+aXNQcmlt
aXRpdmVWYWx1ZSgpICYmIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUuZ2V0
KCkpLT5nZXRWYWx1ZUlEKCkgPT0gbV9wcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpOwogfQog
CiB2b2lkIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6YWRkVG9TdHlsZShFbGVtZW50KiwgRWRpdGlu
Z1N0eWxlKiBzdHlsZSkgY29uc3QKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIEhUTUxFbGVtZW50
RXF1aXZhbGVudDo6YWRkVG9TdHlsZShFbGVtZW50KiwgRWRpdGluZ1N0eWxlKiBzdHlsZSkgY29u
c3QKIAogY2xhc3MgSFRNTFRleHREZWNvcmF0aW9uRXF1aXZhbGVudCA6IHB1YmxpYyBIVE1MRWxl
bWVudEVxdWl2YWxlbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEhUTUxFbGVt
ZW50RXF1aXZhbGVudD4gY3JlYXRlKGludCBwcmltaXRpdmVWYWx1ZSwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxIVE1MRWxlbWVudEVxdWl2YWxl
bnQ+IGNyZWF0ZShDU1NWYWx1ZUlEIHByaW1pdGl2ZVZhbHVlLCBjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBIVE1MVGV4dERl
Y29yYXRpb25FcXVpdmFsZW50KHByaW1pdGl2ZVZhbHVlLCB0YWdOYW1lKSk7CiAgICAgfQpAQCAt
MjExLDEwICsyMTEsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB2YWx1ZUlzUHJlc2Vu
dEluU3R5bGUoRWxlbWVudCosIFN0eWxlUHJvcGVydHlTZXQqKSBjb25zdDsKIAogcHJpdmF0ZToK
LSAgICBIVE1MVGV4dERlY29yYXRpb25FcXVpdmFsZW50KGludCBwcmltaXRpdmVWYWx1ZSwgY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSk7CisgICAgSFRNTFRleHREZWNvcmF0aW9uRXF1aXZh
bGVudChDU1NWYWx1ZUlEIHByaW1pdGl2ZVZhbHVlLCBjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lKTsKIH07CiAKLUhUTUxUZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQ6OkhUTUxUZXh0RGVjb3Jh
dGlvbkVxdWl2YWxlbnQoaW50IHByaW1pdGl2ZVZhbHVlLCBjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lKQorSFRNTFRleHREZWNvcmF0aW9uRXF1aXZhbGVudDo6SFRNTFRleHREZWNvcmF0aW9u
RXF1aXZhbGVudChDU1NWYWx1ZUlEIHByaW1pdGl2ZVZhbHVlLCBjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lKQogICAgIDogSFRNTEVsZW1lbnRFcXVpdmFsZW50KENTU1Byb3BlcnR5VGV4dERl
Y29yYXRpb24sIHByaW1pdGl2ZVZhbHVlLCB0YWdOYW1lKQogICAgIC8vIG1fcHJvcGVydHlJRCBp
cyB1c2VkIGluIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6YWRkVG9TdHlsZQogewpAQCAtNTEyLDEz
ICs1MTIsMTMgQEAgYm9vbCBFZGl0aW5nU3R5bGU6OnRleHREaXJlY3Rpb24oV3JpdGluZ0RpcmVj
dGlvbiYgd3JpdGluZ0RpcmVjdGlvbikgY29uc3QKICAgICBpZiAoIXVuaWNvZGVCaWRpIHx8ICF1
bmljb2RlQmlkaS0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBpbnQgdW5pY29kZUJpZGlWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Kj4odW5pY29kZUJpZGkuZ2V0KCkpLT5nZXRJZGVudCgpOworICAgIENTU1ZhbHVlSUQgdW5pY29k
ZUJpZGlWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odW5pY29kZUJpZGku
Z2V0KCkpLT5nZXRWYWx1ZUlEKCk7CiAgICAgaWYgKHVuaWNvZGVCaWRpVmFsdWUgPT0gQ1NTVmFs
dWVFbWJlZCkgewogICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IGRpcmVjdGlvbiA9IG1fbXV0YWJs
ZVN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5RGlyZWN0aW9uKTsKICAgICAg
ICAgaWYgKCFkaXJlY3Rpb24gfHwgIWRpcmVjdGlvbi0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIHdyaXRpbmdEaXJlY3Rpb24gPSBzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGRpcmVjdGlvbi5nZXQoKSktPmdldElkZW50KCkg
PT0gQ1NTVmFsdWVMdHIgPyBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb24gOiBSaWdodFRvTGVm
dFdyaXRpbmdEaXJlY3Rpb247CisgICAgICAgIHdyaXRpbmdEaXJlY3Rpb24gPSBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KGRpcmVjdGlvbi5nZXQoKSktPmdldFZhbHVlSUQoKSA9PSBD
U1NWYWx1ZUx0ciA/IExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbiA6IFJpZ2h0VG9MZWZ0V3Jp
dGluZ0RpcmVjdGlvbjsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC05MzksOSAr
OTM5LDkgQEAgdm9pZCBFZGl0aW5nU3R5bGU6OnByZXBhcmVUb0FwcGx5QXQoY29uc3QgUG9zaXRp
b24mIHBvc2l0aW9uLCBTaG91bGRQcmVzZXJ2ZVdyaXQKICAgICAgICAgbV9tdXRhYmxlU3R5bGUt
PnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKTsKIAogICAgIGlmICh1
bmljb2RlQmlkaSAmJiB1bmljb2RlQmlkaS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7Ci0gICAgICAg
IG1fbXV0YWJsZVN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpLCBzdGF0
aWNfY2FzdDxDU1NWYWx1ZUlEPihzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHVuaWNv
ZGVCaWRpLmdldCgpKS0+Z2V0SWRlbnQoKSkpOworICAgICAgICBtX211dGFibGVTdHlsZS0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgc3RhdGljX2Nhc3Q8Q1NTVmFsdWVJRD4o
c3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih1bmljb2RlQmlkaS5nZXQoKSktPmdldFZh
bHVlSUQoKSkpOwogICAgICAgICBpZiAoZGlyZWN0aW9uICYmIGRpcmVjdGlvbi0+aXNQcmltaXRp
dmVWYWx1ZSgpKQotICAgICAgICAgICAgbV9tdXRhYmxlU3R5bGUtPnNldFByb3BlcnR5KENTU1By
b3BlcnR5RGlyZWN0aW9uLCBzdGF0aWNfY2FzdDxDU1NWYWx1ZUlEPihzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KGRpcmVjdGlvbi5nZXQoKSktPmdldElkZW50KCkpKTsKKyAgICAgICAg
ICAgIG1fbXV0YWJsZVN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgc3Rh
dGljX2Nhc3Q8Q1NTVmFsdWVJRD4oc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihkaXJl
Y3Rpb24uZ2V0KCkpLT5nZXRWYWx1ZUlEKCkpKTsKICAgICB9CiB9CiAKQEAgLTEyNjEsNyArMTI2
MSw3IEBAIFdyaXRpbmdEaXJlY3Rpb24gRWRpdGluZ1N0eWxlOjp0ZXh0RGlyZWN0aW9uRm9yU2Vs
ZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mCiAgICAgICAgICAgICBpZiAoIXVuaWNvZGVC
aWRpIHx8ICF1bmljb2RlQmlkaS0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogCi0gICAgICAgICAgICBpbnQgdW5pY29kZUJpZGlWYWx1ZSA9IHN0YXRpY19j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odW5pY29kZUJpZGkuZ2V0KCkpLT5nZXRJZGVudCgpOwor
ICAgICAgICAgICAgQ1NTVmFsdWVJRCB1bmljb2RlQmlkaVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih1bmljb2RlQmlkaS5nZXQoKSktPmdldFZhbHVlSUQoKTsKICAgICAg
ICAgICAgIGlmICh1bmljb2RlQmlkaVZhbHVlID09IENTU1ZhbHVlRW1iZWQgfHwgdW5pY29kZUJp
ZGlWYWx1ZSA9PSBDU1NWYWx1ZUJpZGlPdmVycmlkZSkKICAgICAgICAgICAgICAgICByZXR1cm4g
TmF0dXJhbFdyaXRpbmdEaXJlY3Rpb247CiAgICAgICAgIH0KQEAgLTEyOTAsNyArMTI5MCw3IEBA
IFdyaXRpbmdEaXJlY3Rpb24gRWRpdGluZ1N0eWxlOjp0ZXh0RGlyZWN0aW9uRm9yU2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mCiAgICAgICAgIGlmICghdW5pY29kZUJpZGkgfHwgIXVu
aWNvZGVCaWRpLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAot
ICAgICAgICBpbnQgdW5pY29kZUJpZGlWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlKj4odW5pY29kZUJpZGkuZ2V0KCkpLT5nZXRJZGVudCgpOworICAgICAgICBDU1NWYWx1ZUlE
IHVuaWNvZGVCaWRpVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHVuaWNv
ZGVCaWRpLmdldCgpKS0+Z2V0VmFsdWVJRCgpOwogICAgICAgICBpZiAodW5pY29kZUJpZGlWYWx1
ZSA9PSBDU1NWYWx1ZU5vcm1hbCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xMzAyLDcg
KzEzMDIsNyBAQCBXcml0aW5nRGlyZWN0aW9uIEVkaXRpbmdTdHlsZTo6dGV4dERpcmVjdGlvbkZv
clNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJgogICAgICAgICBpZiAoIWRpcmVjdGlv
biB8fCAhZGlyZWN0aW9uLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICBpbnQgZGlyZWN0aW9uVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KGRpcmVjdGlvbi5nZXQoKSktPmdldElkZW50KCk7CisgICAgICAgIENTU1ZhbHVl
SUQgZGlyZWN0aW9uVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGRpcmVj
dGlvbi5nZXQoKSktPmdldFZhbHVlSUQoKTsKICAgICAgICAgaWYgKGRpcmVjdGlvblZhbHVlICE9
IENTU1ZhbHVlTHRyICYmIGRpcmVjdGlvblZhbHVlICE9IENTU1ZhbHVlUnRsKQogICAgICAgICAg
ICAgY29udGludWU7CiAKQEAgLTE0NzQsNyArMTQ3NCw3IEBAIHN0YXRpYyBib29sIGZvbnRXZWln
aHRJc0JvbGQoQ1NTVmFsdWUqIGZvbnRXZWlnaHQpCiAKICAgICAvLyBCZWNhdXNlIGIgdGFnIGNh
biBvbmx5IGJvbGQgdGV4dCwgdGhlcmUgYXJlIG9ubHkgdHdvIHN0YXRlcyBpbiBwbGFpbiBodG1s
OiBib2xkIGFuZCBub3QgYm9sZC4KICAgICAvLyBDb2xsYXBzZSBhbGwgb3RoZXIgdmFsdWVzIHRv
IGVpdGhlciBvbmUgb2YgdGhlc2UgdHdvIHN0YXRlcyBmb3IgZWRpdGluZyBwdXJwb3Nlcy4KLSAg
ICBzd2l0Y2ggKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oZm9udFdlaWdodCktPmdl
dElkZW50KCkpIHsKKyAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4o
Zm9udFdlaWdodCktPmdldFZhbHVlSUQoKSkgewogICAgICAgICBjYXNlIENTU1ZhbHVlMTAwOgog
ICAgICAgICBjYXNlIENTU1ZhbHVlMjAwOgogICAgICAgICBjYXNlIENTU1ZhbHVlMzAwOgpAQCAt
MTQ4OCw2ICsxNDg4LDggQEAgc3RhdGljIGJvb2wgZm9udFdlaWdodElzQm9sZChDU1NWYWx1ZSog
Zm9udFdlaWdodCkKICAgICAgICAgY2FzZSBDU1NWYWx1ZTgwMDoKICAgICAgICAgY2FzZSBDU1NW
YWx1ZTkwMDoKICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIEZv
ciBDU1NWYWx1ZUJvbGRlciBhbmQgQ1NTVmFsdWVMaWdodGVyCkBAIC0xNTUyLDggKzE1NTQsOCBA
QCBpbnQgbGVnYWN5Rm9udFNpemVGcm9tQ1NTVmFsdWUoRG9jdW1lbnQqIGRvY3VtZW50LCBDU1NQ
cmltaXRpdmVWYWx1ZSogdmFsdWUsIGJvbwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAg
ICBpZiAoQ1NTVmFsdWVYU21hbGwgPD0gdmFsdWUtPmdldElkZW50KCkgJiYgdmFsdWUtPmdldElk
ZW50KCkgPD0gQ1NTVmFsdWVXZWJraXRYeHhMYXJnZSkKLSAgICAgICAgcmV0dXJuIHZhbHVlLT5n
ZXRJZGVudCgpIC0gQ1NTVmFsdWVYU21hbGwgKyAxOworICAgIGlmIChDU1NWYWx1ZVhTbWFsbCA8
PSB2YWx1ZS0+Z2V0VmFsdWVJRCgpICYmIHZhbHVlLT5nZXRWYWx1ZUlEKCkgPD0gQ1NTVmFsdWVX
ZWJraXRYeHhMYXJnZSkKKyAgICAgICAgcmV0dXJuIHZhbHVlLT5nZXRWYWx1ZUlEKCkgLSBDU1NW
YWx1ZVhTbWFsbCArIDE7CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTE1NjcsNyArMTU2OSw3IEBA
IGJvb2wgaXNUcmFuc3BhcmVudENvbG9yVmFsdWUoQ1NTVmFsdWUqIGNzc1ZhbHVlKQogICAgIENT
U1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4o
Y3NzVmFsdWUpOyAgICAKICAgICBpZiAodmFsdWUtPmlzUkdCQ29sb3IoKSkKICAgICAgICAgcmV0
dXJuICFhbHBoYUNoYW5uZWwodmFsdWUtPmdldFJHQkEzMlZhbHVlKCkpOyAgICAKLSAgICByZXR1
cm4gdmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVUcmFuc3BhcmVudDsKKyAgICByZXR1cm4g
dmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVRyYW5zcGFyZW50OwogfQogCiBib29sIGhh
c1RyYW5zcGFyZW50QmFja2dyb3VuZENvbG9yKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKaW5kZXggOTQ4Y2NkZjJmNmJjNjVmMGIzZWQ5
NzgwOTNiNGEwZDFkOTlhNDhlNC4uNDVjNGVkMDAzM2ZmZGZkMmMyNzc1YzFkNWZhMmRmMWNmOTFh
MmIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oCkBAIC0zMyw2ICszMyw3
IEBACiAjZGVmaW5lIEVkaXRpbmdTdHlsZV9oCiAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVz
LmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIldyaXRpbmdEaXJl
Y3Rpb24uaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggNTlkMzRmZWM5NjdmYWVhNGZi
ODBmMTMyNTQ2YjY0NDJmMWI5MjcwOS4uMGNjMDBkZmE3MmUyMmY4ZDU4YWU0ZjVhODJhZDBhMWFl
Mjg1MzZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtNDcyLDcgKzQ3Miw3IEBA
IHN0YXRpYyBib29sIHByb3BlcnR5TWlzc2luZ09yRXF1YWxUb05vbmUoU3R5bGVQcm9wZXJ0eVNl
dCogc3R5bGUsIENTU1Byb3BlcnR5SUQKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKCF2
YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUuZ2V0KCkpLT5nZXRJZGVu
dCgpID09IENTU1ZhbHVlTm9uZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPih2YWx1ZS5nZXQoKSktPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmU7CiB9CiAK
IHN0YXRpYyBib29sIG5lZWRJbnRlcmNoYW5nZU5ld2xpbmVBZnRlcihjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVy
VGhlbWVHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3Rr
LmNwcAppbmRleCA2MjlhODRmMWJkYjU4YmE3MWVlNzI2MTAxZDhjNzEzOWQ5MmQzNDMxLi5hYTI3
NTE4NWE3YWZjZDU4YjFhMTdlYTU4NTNlN2QwMTkyYmNiNDFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKQEAgLTQzNyw3ICs0MzcsNyBAQCBk
b3VibGUgUmVuZGVyVGhlbWVHdGs6OmdldFNjcmVlbkRQSSgpCiAgICAgcmV0dXJuIGRwaTsKIH0K
IAotdm9pZCBSZW5kZXJUaGVtZUd0azo6c3lzdGVtRm9udChpbnQsIEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uKSBjb25zdAordm9pZCBSZW5kZXJUaGVtZUd0azo6c3lzdGVtRm9udChD
U1NWYWx1ZUlELCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKIHsKICAg
ICBHdGtTZXR0aW5ncyogc2V0dGluZ3MgPSBndGtfc2V0dGluZ3NfZ2V0X2RlZmF1bHQoKTsKICAg
ICBpZiAoIXNldHRpbmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1JlbmRlclRoZW1lR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhl
bWVHdGsuaAppbmRleCA0YTU4MDgwMTU3OWYxZjI0ZjBjNzZlODRlYTYxZGQzN2QzN2M3OTYyLi5h
OGM5NzM1YzcwNzM1MzZiM2EyMjkyZTg2MDRhNDc2ZTcyYjU3M2QwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaApAQCAtNzksOCArNzksOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCk7CiAKICAgICAv
LyBTeXN0ZW0gZm9udHMgYW5kIGNvbG9ycy4KLSAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChp
bnQgcHJvcElkLCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHN5
c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc3lzdGVt
Rm9udChDU1NWYWx1ZUlELCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKKyAgICB2aXJ0dWFsIENv
bG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHBv
cHNNZW51QnlTcGFjZU9yUmV0dXJuKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwCmlu
ZGV4IDgyM2EwNDg1ZTdjZDE2OGU5YWE3ZTI1MWY1OGM0MTFkNjM3ODViMDcuLjk5M2ZlNDQyZjMy
NzYzNWYyNDNhZTlkNTdmOGU2ODg5M2MwNWRmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwCkBAIC03MTksNyArNzE5LDcgQEAgQ29sb3Ig
UmVuZGVyVGhlbWVHdGs6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigp
IGNvbnN0CiAgICAgcmV0dXJuIGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCktPnRleHRbR1RL
X1NUQVRFX0FDVElWRV07CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lR3RrOjpzeXN0ZW1Db2xvcihp
bnQgY3NzVmFsdWVJZCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lR3RrOjpzeXN0ZW1Db2xvcihD
U1NWYWx1ZUlEIGNzc1ZhbHVlSWQpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChjc3NWYWx1ZUlkKSB7
CiAgICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbnRleHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCmluZGV4IDIyNGFiM2ZhMjVkOTg5MTI5MGQ0OWI2
MDZhN2U4OGQxZWVmM2Y1YzYuLjZkOTUxNTg5MzllMDdmNjAwNTQwOWNmMmZkMzkyODE5YzFmYjkz
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0
azMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMu
Y3BwCkBAIC05ODEsNyArOTgxLDcgQEAgQ29sb3IgUmVuZGVyVGhlbWVHdGs6OmluYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CiAgICAgcmV0dXJuIGdka1JHQkFD
b2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnN5c3RlbUNvbG9yKGludCBjc3NWYWx1
ZUlkKSBjb25zdAorQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQg
Y3NzVmFsdWVJZCkgY29uc3QKIHsKICAgICBHZGtSR0JBIGdka1JHQkFDb2xvcjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAppbmRleCA1NWI3MmIwMDY2
YjUwYTA2MWJlYWU1NzZiMzRkNjAwN2Y0OWIyMGVjLi45YjBlMzQzNzRiZWEzYjcxNjdhNmJlMjdl
ZDg4MmY5Y2U3YWNkY2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJU
aGVtZVF0LmNwcApAQCAtMjU2LDEyICsyNTYsMTIgQEAgQ29sb3IgUmVuZGVyVGhlbWVRdDo6cGxh
dGZvcm1Gb2N1c1JpbmdDb2xvcigpIGNvbnN0CiAgICAgcmV0dXJuIGNvbG9yUGFsZXR0ZSgpLmJy
dXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQpLmNvbG9yKCk7CiB9CiAK
LXZvaWQgUmVuZGVyVGhlbWVRdDo6c3lzdGVtRm9udChpbnQsIEZvbnREZXNjcmlwdGlvbiYpIGNv
bnN0Cit2b2lkIFJlbmRlclRoZW1lUXQ6OnN5c3RlbUZvbnQoQ1NTVmFsdWVJRCwgRm9udERlc2Ny
aXB0aW9uJikgY29uc3QKIHsKICAgICAvLyBuby1vcAogfQogCi1Db2xvciBSZW5kZXJUaGVtZVF0
OjpzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lUXQ6
OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCkgY29uc3QKIHsKICAgICBRUGFsZXR0
ZSBwYWwgPSBjb2xvclBhbGV0dGUoKTsKICAgICBzd2l0Y2ggKGNzc1ZhbHVlSWQpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaAppbmRleCBmMTZiNTBmMzNkMjIy
ZDIyNjkxYWY2MWNlZGY2MTY1YWJhZDI1MzViLi4xYjRiNWIzMjZiZDNmMzhiYWJlMjg3NGI2YWEz
NTRjZDAwMmQ3YTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5k
ZXJUaGVtZVF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVR
dC5oCkBAIC03Niw4ICs3Niw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZv
cm1Gb2N1c1JpbmdDb2xvcigpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQo
aW50IHByb3BJZCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBz
eXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHN5c3Rl
bUZvbnQoQ1NTVmFsdWVJRCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CisgICAgdmlydHVhbCBD
b2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEKSBjb25zdDsKIAogICAgIHZpcnR1YWwgaW50IG1p
bmltdW1NZW51TGlzdFNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggMDJjYTFhNWM1ZTEwYzJiZWY0NWNmZjFiODRk
NjJmMGY5MzA1MmVjYy4uYTY2OWZiZmYxY2NiNDYzMTJiNTM0ZTFkZTY3NTAyMmI5NGFhZTA1ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC0xMTI3LDcgKzEx
MjcsNyBAQCB2b2lkIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpCiAgICAg
UGFnZTo6dXBkYXRlU3R5bGVGb3JBbGxQYWdlc0FmdGVyR2xvYmFsQ2hhbmdlSW5FbnZpcm9ubWVu
dCgpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQp
IGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1
ZUlkKSBjb25zdAogewogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewogICAgIGNhc2UgQ1NTVmFs
dWVBY3RpdmVib3JkZXI6CkBAIC0xMTg4LDYgKzExODgsOCBAQCBDb2xvciBSZW5kZXJUaGVtZTo6
c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0CiAgICAgICAgIHJldHVybiAweEZGQ0ND
Q0NDOwogICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3d0ZXh0OgogICAgICAgICByZXR1cm4gMHhGRjAw
MDAwMDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIENv
bG9yKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IGI2NWYx
MjFlNDczMmNmYzFlMmRlMTFiM2E3MGNiNTQ1Zjc1MmQyY2YuLmQzYjkyYjJiMTUzZGZmNWJmODcx
MDM5NjlmZTQ2MzFlMDk3MzliNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5oCkBAIC0xNjYsOCArMTY2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIGNhcmV0
QmxpbmtJbnRlcnZhbCgpIGNvbnN0IHsgcmV0dXJuIDAuNTsgfQogCiAgICAgLy8gU3lzdGVtIGZv
bnRzIGFuZCBjb2xvcnMgZm9yIENTUy4KLSAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQg
Y3NzVmFsdWVJZCwgRm9udERlc2NyaXB0aW9uJikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgQ29s
b3Igc3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBz
eXN0ZW1Gb250KENTU1ZhbHVlSUQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQpIGNvbnN0OwogCiAgICAgdmlydHVh
bCBpbnQgbWluaW11bU1lbnVMaXN0U2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0IHsgcmV0dXJuIDA7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCBlYTQ4
ZmQ0MTI5NjNlZjg0YjM3NWJkZmY3MDhhY2IzN2NkMWNhNThlLi5hM2NlZmVlN2VhNjljMmE2N2Fh
NGNkNTdlNzY3YzdlYTBkYjVjMDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBs
YXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCk7CiAKICAgICAvLyBTeXN0ZW0gZm9udHMuCi0gICAgdmly
dHVhbCB2b2lkIHN5c3RlbUZvbnQoaW50IGNzc1ZhbHVlSWQsIEZvbnREZXNjcmlwdGlvbiYpIGNv
bnN0OworICAgIHZpcnR1YWwgdm9pZCBzeXN0ZW1Gb250KENTU1ZhbHVlSUQsIEZvbnREZXNjcmlw
dGlvbiYpIGNvbnN0OwogCiAgICAgdmlydHVhbCBpbnQgbWluaW11bU1lbnVMaXN0U2l6ZShSZW5k
ZXJTdHlsZSopIGNvbnN0OwogCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGRvdWJsZSBhbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzKikg
Y29uc3Q7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgQ29sb3Igc3lzdGVtQ29sb3IoaW50IGNzc1Zh
bHVlSWQpIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCkg
Y29uc3Q7CiAgICAgLy8gQ29udHJvbHMgY29sb3IgdmFsdWVzIHJldHVybmVkIGZyb20gcGxhdGZv
cm1Gb2N1c1JpbmdDb2xvcigpLiBzeXN0ZW1Db2xvcigpIHdpbGwgYmUgdXNlZCB3aGVuIGZhbHNl
LgogICAgIHZpcnR1YWwgYm9vbCB1c2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcigpIGNvbnN0Owog
ICAgIC8vIEEgdmlldyBhc3NvY2lhdGVkIHRvIHRoZSBjb250YWluZWQgZG9jdW1lbnQuIFN1YmNs
YXNzZXMgbWF5IG5vdCBoYXZlIHN1Y2ggYSB2aWV3IGFuZCByZXR1cm4gYSBmYWtlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDYwMzNkNGM2OTE5NzA2
MmM2ZTljOTUxNDk1OTEwNmNhNDFmZTc5YjIuLjQxMjkyZTRkYmI2MTllNTVlOTBiOGY3N2NkNjVj
Y2VlMTM3Mzc2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0KQEAgLTU5OCw3ICs1OTgsNyBAQCBzdGF0aWMgRm9udFdlaWdodCB0b0ZvbnRXZWlnaHQoTlNJ
bnRlZ2VyIGFwcEtpdEZvbnRXZWlnaHQpCiAgICAgcmV0dXJuIGZvbnRXZWlnaHRzW2FwcEtpdEZv
bnRXZWlnaHQgLSAxXTsKIH0KIAotdm9pZCBSZW5kZXJUaGVtZU1hYzo6c3lzdGVtRm9udChpbnQg
Y3NzVmFsdWVJZCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit2b2lk
IFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Gb250KENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm9udERl
c2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChGb250RGVzY3JpcHRpb24sIHN5c3RlbUZvbnQsICgpKTsKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEZvbnREZXNjcmlwdGlvbiwgc21hbGxTeXN0ZW1Gb250LCAoKSk7CkBAIC03MzMsNyAr
NzMzLDcgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKQog
ICAgIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpOwogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0CitDb2xvciBS
ZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkKSBjb25zdAog
ewogICAgIHsKICAgICAgICAgSGFzaE1hcDxpbnQsIFJHQkEzMj46Oml0ZXJhdG9yIGl0ID0gbV9z
eXN0ZW1Db2xvckNhY2hlLmZpbmQoY3NzVmFsdWVJZCk7CkBAIC03NDMsMTAxICs3NDMsMTAzIEBA
IENvbG9yIFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3QK
IAogICAgIENvbG9yIGNvbG9yOwogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewotICAgICAgICBj
YXNlIENTU1ZhbHVlQWN0aXZlYm9yZGVyOgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlND
b2xvclRvQ29sb3IoW05TQ29sb3Iga2V5Ym9hcmRGb2N1c0luZGljYXRvckNvbG9yXSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFjdGl2ZWNhcHRpb246Ci0gICAg
ICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciB3aW5kb3dGcmFt
ZVRleHRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVB
cHB3b3Jrc3BhY2U6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihb
TlNDb2xvciBoZWFkZXJDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVCYWNrZ3JvdW5kOgotICAgICAgICAgICAgLy8gVXNlIHRoZW1lIGluZGVwZW5kZW50
IGRlZmF1bHQKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dG9u
ZmFjZToKLSAgICAgICAgICAgIC8vIFdlIHVzZSB0aGlzIHZhbHVlIGluc3RlYWQgb2YgTlNDb2xv
cidzIGNvbnRyb2xDb2xvciB0byBhdm9pZCB3ZWJzaXRlIGluY29tcGF0aWJpbGl0aWVzLgotICAg
ICAgICAgICAgLy8gV2UgbWF5IHdhbnQgdG8gY2hhbmdlIHRoaXMgdG8gdXNlIHRoZSBOU0NvbG9y
IGluIGZ1dHVyZS4KLSAgICAgICAgICAgIGNvbG9yID0gMHhGRkMwQzBDMDsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dG9uaGlnaGxpZ2h0OgotICAgICAgICAg
ICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgY29udHJvbEhpZ2hsaWdo
dENvbG9yXSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJ1dHRv
bnNoYWRvdzoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0Nv
bG9yIGNvbnRyb2xTaGFkb3dDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVCdXR0b250ZXh0OgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xv
clRvQ29sb3IoW05TQ29sb3IgY29udHJvbFRleHRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVDYXB0aW9udGV4dDoKLSAgICAgICAgICAgIGNvbG9yID0g
Y29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHRleHRDb2xvcl0pOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVHcmF5dGV4dDoKLSAgICAgICAgICAgIGNvbG9y
ID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGRpc2FibGVkQ29udHJvbFRleHRDb2xv
cl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVIaWdobGlnaHQ6
Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBzZWxl
Y3RlZFRleHRCYWNrZ3JvdW5kQ29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIENTU1ZhbHVlSGlnaGxpZ2h0dGV4dDoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5T
Q29sb3JUb0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkVGV4dENvbG9yXSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUluYWN0aXZlYm9yZGVyOgotICAgICAgICAgICAg
Y29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgY29udHJvbEJhY2tncm91bmRD
b2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2
ZWNhcHRpb246Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlND
b2xvciBjb250cm9sQmFja2dyb3VuZENvbG9yXSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZUluYWN0aXZlY2FwdGlvbnRleHQ6Ci0gICAgICAgICAgICBjb2xvciA9
IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciB0ZXh0Q29sb3JdKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlSW5mb2JhY2tncm91bmQ6Ci0gICAgICAgICAg
ICAvLyBUaGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIE5TQ29sb3IgZm9yIHRoaXMgc28gd2UgdXNl
IGEgaGFyZCBjb2RlZCB2YWx1ZS4KLSAgICAgICAgICAgIGNvbG9yID0gMHhGRkZCRkNDNTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlSW5mb3RleHQ6Ci0gICAgICAg
ICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciB0ZXh0Q29sb3JdKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlTWVudToKLSAgICAgICAg
ICAgIGNvbG9yID0gbWVudUJhY2tncm91bmRDb2xvcigpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVNZW51dGV4dDoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVy
dE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkTWVudUl0ZW1UZXh0Q29sb3JdKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlU2Nyb2xsYmFyOgotICAgICAg
ICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3Igc2Nyb2xsQmFyQ29s
b3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlVGV4dDoKLSAg
ICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHRleHRDb2xv
cl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRkYXJr
c2hhZG93OgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29s
b3IgY29udHJvbERhcmtTaGFkb3dDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVUaHJlZWRzaGFkb3c6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnRO
U0NvbG9yVG9Db2xvcihbTlNDb2xvciBzaGFkb3dDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRmYWNlOgotICAgICAgICAgICAgLy8gV2UgdXNl
IHRoaXMgdmFsdWUgaW5zdGVhZCBvZiBOU0NvbG9yJ3MgY29udHJvbENvbG9yIHRvIGF2b2lkIHdl
YnNpdGUgaW5jb21wYXRpYmlsaXRpZXMuCi0gICAgICAgICAgICAvLyBXZSBtYXkgd2FudCB0byBj
aGFuZ2UgdGhpcyB0byB1c2UgdGhlIE5TQ29sb3IgaW4gZnV0dXJlLgotICAgICAgICAgICAgY29s
b3IgPSAweEZGQzBDMEMwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFs
dWVUaHJlZWRoaWdobGlnaHQ6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9D
b2xvcihbTlNDb2xvciBoaWdobGlnaHRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRsaWdodHNoYWRvdzoKLSAgICAgICAgICAgIGNvbG9yID0g
Y29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGNvbnRyb2xMaWdodEhpZ2hsaWdodENvbG9y
XSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdEZvY3Vz
UmluZ0NvbG9yOgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05T
Q29sb3Iga2V5Ym9hcmRGb2N1c0luZGljYXRvckNvbG9yXSk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZVdpbmRvdzoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVy
dE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHdpbmRvd0JhY2tncm91bmRDb2xvcl0pOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3dmcmFtZToKLSAgICAgICAg
ICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHdpbmRvd0ZyYW1lQ29s
b3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlV2luZG93dGV4
dDoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHdp
bmRvd0ZyYW1lVGV4dENvbG9yXSk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Zh
bHVlQWN0aXZlYm9yZGVyOgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihb
TlNDb2xvciBrZXlib2FyZEZvY3VzSW5kaWNhdG9yQ29sb3JdKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDU1NWYWx1ZUFjdGl2ZWNhcHRpb246CisgICAgICAgIGNvbG9yID0gY29udmVydE5T
Q29sb3JUb0NvbG9yKFtOU0NvbG9yIHdpbmRvd0ZyYW1lVGV4dENvbG9yXSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ1NTVmFsdWVBcHB3b3Jrc3BhY2U6CisgICAgICAgIGNvbG9yID0gY29u
dmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGhlYWRlckNvbG9yXSk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ1NTVmFsdWVCYWNrZ3JvdW5kOgorICAgICAgICAvLyBVc2UgdGhlbWUgaW5k
ZXBlbmRlbnQgZGVmYXVsdAorICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQnV0dG9u
ZmFjZToKKyAgICAgICAgLy8gV2UgdXNlIHRoaXMgdmFsdWUgaW5zdGVhZCBvZiBOU0NvbG9yJ3Mg
Y29udHJvbENvbG9yIHRvIGF2b2lkIHdlYnNpdGUgaW5jb21wYXRpYmlsaXRpZXMuCisgICAgICAg
IC8vIFdlIG1heSB3YW50IHRvIGNoYW5nZSB0aGlzIHRvIHVzZSB0aGUgTlNDb2xvciBpbiBmdXR1
cmUuCisgICAgICAgIGNvbG9yID0gMHhGRkMwQzBDMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDU1NWYWx1ZUJ1dHRvbmhpZ2hsaWdodDoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xv
clRvQ29sb3IoW05TQ29sb3IgY29udHJvbEhpZ2hsaWdodENvbG9yXSk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ1NTVmFsdWVCdXR0b25zaGFkb3c6CisgICAgICAgIGNvbG9yID0gY29udmVy
dE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGNvbnRyb2xTaGFkb3dDb2xvcl0pOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQnV0dG9udGV4dDoKKyAgICAgICAgY29sb3IgPSBjb252
ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgY29udHJvbFRleHRDb2xvcl0pOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQ2FwdGlvbnRleHQ6CisgICAgICAgIGNvbG9yID0gY29u
dmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHRleHRDb2xvcl0pOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENTU1ZhbHVlR3JheXRleHQ6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29s
b3JUb0NvbG9yKFtOU0NvbG9yIGRpc2FibGVkQ29udHJvbFRleHRDb2xvcl0pOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENTU1ZhbHVlSGlnaGxpZ2h0OgorICAgICAgICBjb2xvciA9IGNvbnZl
cnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBzZWxlY3RlZFRleHRCYWNrZ3JvdW5kQ29sb3JdKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUhpZ2hsaWdodHRleHQ6CisgICAgICAg
IGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkVGV4dENvbG9y
XSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2ZWJvcmRlcjoKKyAg
ICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgY29udHJvbEJhY2tn
cm91bmRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlSW5hY3RpdmVj
YXB0aW9uOgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBj
b250cm9sQmFja2dyb3VuZENvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFs
dWVJbmFjdGl2ZWNhcHRpb250ZXh0OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9D
b2xvcihbTlNDb2xvciB0ZXh0Q29sb3JdKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NW
YWx1ZUluZm9iYWNrZ3JvdW5kOgorICAgICAgICAvLyBUaGVyZSBpcyBubyBjb3JyZXNwb25kaW5n
IE5TQ29sb3IgZm9yIHRoaXMgc28gd2UgdXNlIGEgaGFyZCBjb2RlZCB2YWx1ZS4KKyAgICAgICAg
Y29sb3IgPSAweEZGRkJGQ0M1OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlSW5m
b3RleHQ6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHRl
eHRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlTWVudToKKyAgICAg
ICAgY29sb3IgPSBtZW51QmFja2dyb3VuZENvbG9yKCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1NTVmFsdWVNZW51dGV4dDoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29s
b3IoW05TQ29sb3Igc2VsZWN0ZWRNZW51SXRlbVRleHRDb2xvcl0pOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENTU1ZhbHVlU2Nyb2xsYmFyOgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0Nv
bG9yVG9Db2xvcihbTlNDb2xvciBzY3JvbGxCYXJDb2xvcl0pOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENTU1ZhbHVlVGV4dDoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29s
b3IoW05TQ29sb3IgdGV4dENvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFs
dWVUaHJlZWRkYXJrc2hhZG93OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xv
cihbTlNDb2xvciBjb250cm9sRGFya1NoYWRvd0NvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ1NTVmFsdWVUaHJlZWRzaGFkb3c6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29s
b3JUb0NvbG9yKFtOU0NvbG9yIHNoYWRvd0NvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1NTVmFsdWVUaHJlZWRmYWNlOgorICAgICAgICAvLyBXZSB1c2UgdGhpcyB2YWx1ZSBpbnN0
ZWFkIG9mIE5TQ29sb3IncyBjb250cm9sQ29sb3IgdG8gYXZvaWQgd2Vic2l0ZSBpbmNvbXBhdGli
aWxpdGllcy4KKyAgICAgICAgLy8gV2UgbWF5IHdhbnQgdG8gY2hhbmdlIHRoaXMgdG8gdXNlIHRo
ZSBOU0NvbG9yIGluIGZ1dHVyZS4KKyAgICAgICAgY29sb3IgPSAweEZGQzBDMEMwOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlVGhyZWVkaGlnaGxpZ2h0OgorICAgICAgICBjb2xv
ciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBoaWdobGlnaHRDb2xvcl0pOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlVGhyZWVkbGlnaHRzaGFkb3c6CisgICAgICAg
IGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGNvbnRyb2xMaWdodEhpZ2hs
aWdodENvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRGb2N1
c1JpbmdDb2xvcjoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29s
b3Iga2V5Ym9hcmRGb2N1c0luZGljYXRvckNvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1NTVmFsdWVXaW5kb3c6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9y
KFtOU0NvbG9yIHdpbmRvd0JhY2tncm91bmRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENTU1ZhbHVlV2luZG93ZnJhbWU6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JU
b0NvbG9yKFtOU0NvbG9yIHdpbmRvd0ZyYW1lQ29sb3JdKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDU1NWYWx1ZVdpbmRvd3RleHQ6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JU
b0NvbG9yKFtOU0NvbG9yIHdpbmRvd0ZyYW1lVGV4dENvbG9yXSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGlmICghY29sb3IuaXNW
YWxpZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKaW5k
ZXggMjFhMWE5ZTQwMzU2MDZjYjIwZGJkMGYxODk0YmVkZjQ1YjJkYzkzOS4uZTMzZDlhZGNjYTkw
ZTlhYWViYWFhZWZjN2E5ZDE5NTc1MTlmMzk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVXaW4uY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgc3RhdGljIHZvaWQgZmls
bEZvbnREZXNjcmlwdGlvbihGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgTE9HRk9O
VCYgbG9nRm8KICAgICBmaWxsRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbiwgbG9nRm9u
dCwgYWJzKGxvZ0ZvbnQubGZIZWlnaHQpKTsKIH0KIAotdm9pZCBSZW5kZXJUaGVtZVdpbjo6c3lz
dGVtRm9udChpbnQgcHJvcElkLCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29u
c3QKK3ZvaWQgUmVuZGVyVGhlbWVXaW46OnN5c3RlbUZvbnQoQ1NTVmFsdWVJRCB2YWx1ZUlELCBG
b250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKIHsKICAgICBzdGF0aWMgRm9u
dERlc2NyaXB0aW9uIGNhcHRpb25Gb250OwogICAgIHN0YXRpYyBGb250RGVzY3JpcHRpb24gY29u
dHJvbEZvbnQ7CkBAIC0zNTcsNjUgKzM1Nyw2NSBAQCB2b2lkIFJlbmRlclRoZW1lV2luOjpzeXN0
ZW1Gb250KGludCBwcm9wSWQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjbwog
ICAgICAgICA6OlN5c3RlbVBhcmFtZXRlcnNJbmZvKFNQSV9HRVROT05DTElFTlRNRVRSSUNTLCBz
aXplb2YobmNtKSwgJm5jbSwgMCk7CiAgICAgfQogIAotICAgIHN3aXRjaCAocHJvcElkKSB7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVJY29uOiB7Ci0gICAgICAgICAgICBpZiAoIWljb25Gb250Lmlz
QWJzb2x1dGVTaXplKCkpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1Zh
bHVlSWNvbjogeworICAgICAgICBpZiAoIWljb25Gb250LmlzQWJzb2x1dGVTaXplKCkpIHsKKyAg
ICAgICAgICAgIExPR0ZPTlQgbG9nRm9udDsKKyAgICAgICAgICAgIDo6U3lzdGVtUGFyYW1ldGVy
c0luZm8oU1BJX0dFVElDT05USVRMRUxPR0ZPTlQsIHNpemVvZihsb2dGb250KSwgJmxvZ0ZvbnQs
IDApOworICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihpY29uRm9udCwgbG9nRm9udCk7
CisgICAgICAgIH0KKyAgICAgICAgZm9udERlc2NyaXB0aW9uID0gaWNvbkZvbnQ7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBjYXNlIENTU1ZhbHVlTWVudToKKyAgICAgICAgaWYgKCFtZW51
Rm9udC5pc0Fic29sdXRlU2l6ZSgpKQorICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbiht
ZW51Rm9udCwgbmNtLmxmTWVudUZvbnQpOworICAgICAgICBmb250RGVzY3JpcHRpb24gPSBtZW51
Rm9udDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZU1lc3NhZ2VCb3g6CisgICAg
ICAgIGlmICghbWVzc2FnZUJveEZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKKyAgICAgICAgICAgIGZp
bGxGb250RGVzY3JpcHRpb24obWVzc2FnZUJveEZvbnQsIG5jbS5sZk1lc3NhZ2VGb250KTsKKyAg
ICAgICAgZm9udERlc2NyaXB0aW9uID0gbWVzc2FnZUJveEZvbnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ1NTVmFsdWVTdGF0dXNCYXI6CisgICAgICAgIGlmICghc3RhdHVzQmFyRm9udC5p
c0Fic29sdXRlU2l6ZSgpKQorICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihzdGF0dXNC
YXJGb250LCBuY20ubGZTdGF0dXNGb250KTsKKyAgICAgICAgZm9udERlc2NyaXB0aW9uID0gc3Rh
dHVzQmFyRm9udDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUNhcHRpb246Cisg
ICAgICAgIGlmICghY2FwdGlvbkZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKKyAgICAgICAgICAgIGZp
bGxGb250RGVzY3JpcHRpb24oY2FwdGlvbkZvbnQsIG5jbS5sZkNhcHRpb25Gb250KTsKKyAgICAg
ICAgZm9udERlc2NyaXB0aW9uID0gY2FwdGlvbkZvbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1NTVmFsdWVTbWFsbENhcHRpb246CisgICAgICAgIGlmICghc21hbGxDYXB0aW9uRm9udC5p
c0Fic29sdXRlU2l6ZSgpKQorICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihzbWFsbENh
cHRpb25Gb250LCBuY20ubGZTbUNhcHRpb25Gb250KTsKKyAgICAgICAgZm9udERlc2NyaXB0aW9u
ID0gc21hbGxDYXB0aW9uRm9udDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZVdl
YmtpdFNtYWxsQ29udHJvbDoKKyAgICBjYXNlIENTU1ZhbHVlV2Via2l0TWluaUNvbnRyb2w6IC8v
IEp1c3QgbWFwIHRvIHNtYWxsLgorICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRDb250cm9sOiAvLyBK
dXN0IG1hcCB0byBzbWFsbC4KKyAgICAgICAgaWYgKCFjb250cm9sRm9udC5pc0Fic29sdXRlU2l6
ZSgpKSB7CisgICAgICAgICAgICBIR0RJT0JKIGhHREkgPSA6OkdldFN0b2NrT2JqZWN0KERFRkFV
TFRfR1VJX0ZPTlQpOworICAgICAgICAgICAgaWYgKGhHREkpIHsKICAgICAgICAgICAgICAgICBM
T0dGT05UIGxvZ0ZvbnQ7Ci0gICAgICAgICAgICAgICAgOjpTeXN0ZW1QYXJhbWV0ZXJzSW5mbyhT
UElfR0VUSUNPTlRJVExFTE9HRk9OVCwgc2l6ZW9mKGxvZ0ZvbnQpLCAmbG9nRm9udCwgMCk7Ci0g
ICAgICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihpY29uRm9udCwgbG9nRm9udCk7Cisg
ICAgICAgICAgICAgICAgaWYgKDo6R2V0T2JqZWN0KGhHREksIHNpemVvZihsb2dGb250KSwgJmxv
Z0ZvbnQpID4gMCkKKyAgICAgICAgICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihjb250
cm9sRm9udCwgbG9nRm9udCwgZGVmYXVsdENvbnRyb2xGb250UGl4ZWxTaXplKTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbiA9IGljb25Gb250OwotICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBDU1NWYWx1ZU1lbnU6Ci0gICAgICAg
ICAgICBpZiAoIW1lbnVGb250LmlzQWJzb2x1dGVTaXplKCkpCi0gICAgICAgICAgICAgICAgZmls
bEZvbnREZXNjcmlwdGlvbihtZW51Rm9udCwgbmNtLmxmTWVudUZvbnQpOwotICAgICAgICAgICAg
Zm9udERlc2NyaXB0aW9uID0gbWVudUZvbnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZU1lc3NhZ2VCb3g6Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2VCb3hGb250
LmlzQWJzb2x1dGVTaXplKCkpCi0gICAgICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbiht
ZXNzYWdlQm94Rm9udCwgbmNtLmxmTWVzc2FnZUZvbnQpOwotICAgICAgICAgICAgZm9udERlc2Ny
aXB0aW9uID0gbWVzc2FnZUJveEZvbnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZVN0YXR1c0JhcjoKLSAgICAgICAgICAgIGlmICghc3RhdHVzQmFyRm9udC5pc0Fi
c29sdXRlU2l6ZSgpKQotICAgICAgICAgICAgICAgIGZpbGxGb250RGVzY3JpcHRpb24oc3RhdHVz
QmFyRm9udCwgbmNtLmxmU3RhdHVzRm9udCk7Ci0gICAgICAgICAgICBmb250RGVzY3JpcHRpb24g
PSBzdGF0dXNCYXJGb250OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFs
dWVDYXB0aW9uOgotICAgICAgICAgICAgaWYgKCFjYXB0aW9uRm9udC5pc0Fic29sdXRlU2l6ZSgp
KQotICAgICAgICAgICAgICAgIGZpbGxGb250RGVzY3JpcHRpb24oY2FwdGlvbkZvbnQsIG5jbS5s
ZkNhcHRpb25Gb250KTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbiA9IGNhcHRpb25Gb250
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTbWFsbENhcHRpb246
Ci0gICAgICAgICAgICBpZiAoIXNtYWxsQ2FwdGlvbkZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKLSAg
ICAgICAgICAgICAgICBmaWxsRm9udERlc2NyaXB0aW9uKHNtYWxsQ2FwdGlvbkZvbnQsIG5jbS5s
ZlNtQ2FwdGlvbkZvbnQpOwotICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uID0gc21hbGxDYXB0
aW9uRm9udDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0
U21hbGxDb250cm9sOgotICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0TWluaUNvbnRyb2w6IC8v
IEp1c3QgbWFwIHRvIHNtYWxsLgotICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0Q29udHJvbDog
Ly8gSnVzdCBtYXAgdG8gc21hbGwuCi0gICAgICAgICAgICBpZiAoIWNvbnRyb2xGb250LmlzQWJz
b2x1dGVTaXplKCkpIHsKLSAgICAgICAgICAgICAgICBIR0RJT0JKIGhHREkgPSA6OkdldFN0b2Nr
T2JqZWN0KERFRkFVTFRfR1VJX0ZPTlQpOwotICAgICAgICAgICAgICAgIGlmIChoR0RJKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIExPR0ZPTlQgbG9nRm9udDsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKDo6R2V0T2JqZWN0KGhHREksIHNpemVvZihsb2dGb250KSwgJmxvZ0ZvbnQpID4gMCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGZpbGxGb250RGVzY3JpcHRpb24oY29udHJvbEZvbnQsIGxv
Z0ZvbnQsIGRlZmF1bHRDb250cm9sRm9udFBpeGVsU2l6ZSk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uID0gY29udHJvbEZvbnQ7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDogeyAvLyBFdmVyeXRoaW5nIGVs
c2UgdXNlcyB0aGUgc3RvY2sgR1VJIGZvbnQuCi0gICAgICAgICAgICBpZiAoIXN5c3RlbUZvbnQu
aXNBYnNvbHV0ZVNpemUoKSkgewotICAgICAgICAgICAgICAgIEhHRElPQkogaEdESSA9IDo6R2V0
U3RvY2tPYmplY3QoREVGQVVMVF9HVUlfRk9OVCk7Ci0gICAgICAgICAgICAgICAgaWYgKGhHREkp
IHsKLSAgICAgICAgICAgICAgICAgICAgTE9HRk9OVCBsb2dGb250OwotICAgICAgICAgICAgICAg
ICAgICBpZiAoOjpHZXRPYmplY3QoaEdESSwgc2l6ZW9mKGxvZ0ZvbnQpLCAmbG9nRm9udCkgPiAw
KQotICAgICAgICAgICAgICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihzeXN0ZW1Gb250
LCBsb2dGb250KTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgIGZvbnREZXNjcmlwdGlvbiA9
IGNvbnRyb2xGb250OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OiB7IC8vIEV2ZXJ5dGhp
bmcgZWxzZSB1c2VzIHRoZSBzdG9jayBHVUkgZm9udC4KKyAgICAgICAgaWYgKCFzeXN0ZW1Gb250
LmlzQWJzb2x1dGVTaXplKCkpIHsKKyAgICAgICAgICAgIEhHRElPQkogaEdESSA9IDo6R2V0U3Rv
Y2tPYmplY3QoREVGQVVMVF9HVUlfRk9OVCk7CisgICAgICAgICAgICBpZiAoaEdESSkgeworICAg
ICAgICAgICAgICAgIExPR0ZPTlQgbG9nRm9udDsKKyAgICAgICAgICAgICAgICBpZiAoOjpHZXRP
YmplY3QoaEdESSwgc2l6ZW9mKGxvZ0ZvbnQpLCAmbG9nRm9udCkgPiAwKQorICAgICAgICAgICAg
ICAgICAgICBmaWxsRm9udERlc2NyaXB0aW9uKHN5c3RlbUZvbnQsIGxvZ0ZvbnQpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uID0gc3lzdGVtRm9udDsKICAgICAg
ICAgfQorICAgICAgICBmb250RGVzY3JpcHRpb24gPSBzeXN0ZW1Gb250OworICAgIH0KICAgICB9
CiB9CiAKQEAgLTEwMzQsNDUgKzEwMzQsNDUgQEAgYm9vbCBSZW5kZXJUaGVtZVdpbjo6cGFpbnRT
ZWFyY2hGaWVsZFJlc3VsdHNCdXR0b24oUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEkKIH0K
IAogLy8gTWFwIGEgQ1NTVmFsdWUqIHN5c3RlbSBjb2xvciB0byBhbiBpbmRleCB1bmRlcnN0b29k
IGJ5IEdldFN5c0NvbG9yCi1zdGF0aWMgaW50IGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgoaW50
IGNzc1ZhbHVlSWQpCitzdGF0aWMgQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkVG9TeXNDb2xvckluZGV4
KGludCBjc3NWYWx1ZUlkKQogewogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewotICAgICAgICBj
YXNlIENTU1ZhbHVlQWN0aXZlYm9yZGVyOiByZXR1cm4gQ09MT1JfQUNUSVZFQk9SREVSOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlQWN0aXZlY2FwdGlvbjogcmV0dXJuIENPTE9SX0FDVElWRUNBUFRJ
T047Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBcHB3b3Jrc3BhY2U6IHJldHVybiBDT0xPUl9BUFBX
T1JLU1BBQ0U7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVCYWNrZ3JvdW5kOiByZXR1cm4gQ09MT1Jf
QkFDS0dST1VORDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbmZhY2U6IHJldHVybiBDT0xP
Ul9CVE5GQUNFOwotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dG9uaGlnaGxpZ2h0OiByZXR1cm4g
Q09MT1JfQlROSElHSExJR0hUOwotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dG9uc2hhZG93OiBy
ZXR1cm4gQ09MT1JfQlROU0hBRE9XOwotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dG9udGV4dDog
cmV0dXJuIENPTE9SX0JUTlRFWFQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVDYXB0aW9udGV4dDog
cmV0dXJuIENPTE9SX0NBUFRJT05URVhUOwotICAgICAgICBjYXNlIENTU1ZhbHVlR3JheXRleHQ6
IHJldHVybiBDT0xPUl9HUkFZVEVYVDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUhpZ2hsaWdodDog
cmV0dXJuIENPTE9SX0hJR0hMSUdIVDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUhpZ2hsaWdodHRl
eHQ6IHJldHVybiBDT0xPUl9ISUdITElHSFRURVhUOwotICAgICAgICBjYXNlIENTU1ZhbHVlSW5h
Y3RpdmVib3JkZXI6IHJldHVybiBDT0xPUl9JTkFDVElWRUJPUkRFUjsKLSAgICAgICAgY2FzZSBD
U1NWYWx1ZUluYWN0aXZlY2FwdGlvbjogcmV0dXJuIENPTE9SX0lOQUNUSVZFQ0FQVElPTjsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZUluYWN0aXZlY2FwdGlvbnRleHQ6IHJldHVybiBDT0xPUl9JTkFD
VElWRUNBUFRJT05URVhUOwotICAgICAgICBjYXNlIENTU1ZhbHVlSW5mb2JhY2tncm91bmQ6IHJl
dHVybiBDT0xPUl9JTkZPQks7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVJbmZvdGV4dDogcmV0dXJu
IENPTE9SX0lORk9URVhUOwotICAgICAgICBjYXNlIENTU1ZhbHVlTWVudTogcmV0dXJuIENPTE9S
X01FTlU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVNZW51dGV4dDogcmV0dXJuIENPTE9SX01FTlVU
RVhUOwotICAgICAgICBjYXNlIENTU1ZhbHVlU2Nyb2xsYmFyOiByZXR1cm4gQ09MT1JfU0NST0xM
QkFSOwotICAgICAgICBjYXNlIENTU1ZhbHVlVGhyZWVkZGFya3NoYWRvdzogcmV0dXJuIENPTE9S
XzNEREtTSEFET1c7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRmYWNlOiByZXR1cm4gQ09M
T1JfM0RGQUNFOwotICAgICAgICBjYXNlIENTU1ZhbHVlVGhyZWVkaGlnaGxpZ2h0OiByZXR1cm4g
Q09MT1JfM0RISUdITElHSFQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRsaWdodHNoYWRv
dzogcmV0dXJuIENPTE9SXzNETElHSFQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRzaGFk
b3c6IHJldHVybiBDT0xPUl8zRFNIQURPVzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVdpbmRvdzog
cmV0dXJuIENPTE9SX1dJTkRPVzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVdpbmRvd2ZyYW1lOiBy
ZXR1cm4gQ09MT1JfV0lORE9XRlJBTUU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3d0ZXh0
OiByZXR1cm4gQ09MT1JfV0lORE9XVEVYVDsKLSAgICAgICAgZGVmYXVsdDogcmV0dXJuIC0xOyAv
LyBVbnN1cHBvcnRlZCBDU1NWYWx1ZQorICAgIGNhc2UgQ1NTVmFsdWVBY3RpdmVib3JkZXI6IHJl
dHVybiBDT0xPUl9BQ1RJVkVCT1JERVI7CisgICAgY2FzZSBDU1NWYWx1ZUFjdGl2ZWNhcHRpb246
IHJldHVybiBDT0xPUl9BQ1RJVkVDQVBUSU9OOworICAgIGNhc2UgQ1NTVmFsdWVBcHB3b3Jrc3Bh
Y2U6IHJldHVybiBDT0xPUl9BUFBXT1JLU1BBQ0U7CisgICAgY2FzZSBDU1NWYWx1ZUJhY2tncm91
bmQ6IHJldHVybiBDT0xPUl9CQUNLR1JPVU5EOworICAgIGNhc2UgQ1NTVmFsdWVCdXR0b25mYWNl
OiByZXR1cm4gQ09MT1JfQlRORkFDRTsKKyAgICBjYXNlIENTU1ZhbHVlQnV0dG9uaGlnaGxpZ2h0
OiByZXR1cm4gQ09MT1JfQlROSElHSExJR0hUOworICAgIGNhc2UgQ1NTVmFsdWVCdXR0b25zaGFk
b3c6IHJldHVybiBDT0xPUl9CVE5TSEFET1c7CisgICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbnRleHQ6
IHJldHVybiBDT0xPUl9CVE5URVhUOworICAgIGNhc2UgQ1NTVmFsdWVDYXB0aW9udGV4dDogcmV0
dXJuIENPTE9SX0NBUFRJT05URVhUOworICAgIGNhc2UgQ1NTVmFsdWVHcmF5dGV4dDogcmV0dXJu
IENPTE9SX0dSQVlURVhUOworICAgIGNhc2UgQ1NTVmFsdWVIaWdobGlnaHQ6IHJldHVybiBDT0xP
Ul9ISUdITElHSFQ7CisgICAgY2FzZSBDU1NWYWx1ZUhpZ2hsaWdodHRleHQ6IHJldHVybiBDT0xP
Ul9ISUdITElHSFRURVhUOworICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2ZWJvcmRlcjogcmV0dXJu
IENPTE9SX0lOQUNUSVZFQk9SREVSOworICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2ZWNhcHRpb246
IHJldHVybiBDT0xPUl9JTkFDVElWRUNBUFRJT047CisgICAgY2FzZSBDU1NWYWx1ZUluYWN0aXZl
Y2FwdGlvbnRleHQ6IHJldHVybiBDT0xPUl9JTkFDVElWRUNBUFRJT05URVhUOworICAgIGNhc2Ug
Q1NTVmFsdWVJbmZvYmFja2dyb3VuZDogcmV0dXJuIENPTE9SX0lORk9CSzsKKyAgICBjYXNlIENT
U1ZhbHVlSW5mb3RleHQ6IHJldHVybiBDT0xPUl9JTkZPVEVYVDsKKyAgICBjYXNlIENTU1ZhbHVl
TWVudTogcmV0dXJuIENPTE9SX01FTlU7CisgICAgY2FzZSBDU1NWYWx1ZU1lbnV0ZXh0OiByZXR1
cm4gQ09MT1JfTUVOVVRFWFQ7CisgICAgY2FzZSBDU1NWYWx1ZVNjcm9sbGJhcjogcmV0dXJuIENP
TE9SX1NDUk9MTEJBUjsKKyAgICBjYXNlIENTU1ZhbHVlVGhyZWVkZGFya3NoYWRvdzogcmV0dXJu
IENPTE9SXzNEREtTSEFET1c7CisgICAgY2FzZSBDU1NWYWx1ZVRocmVlZGZhY2U6IHJldHVybiBD
T0xPUl8zREZBQ0U7CisgICAgY2FzZSBDU1NWYWx1ZVRocmVlZGhpZ2hsaWdodDogcmV0dXJuIENP
TE9SXzNESElHSExJR0hUOworICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRsaWdodHNoYWRvdzogcmV0
dXJuIENPTE9SXzNETElHSFQ7CisgICAgY2FzZSBDU1NWYWx1ZVRocmVlZHNoYWRvdzogcmV0dXJu
IENPTE9SXzNEU0hBRE9XOworICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3c6IHJldHVybiBDT0xPUl9X
SU5ET1c7CisgICAgY2FzZSBDU1NWYWx1ZVdpbmRvd2ZyYW1lOiByZXR1cm4gQ09MT1JfV0lORE9X
RlJBTUU7CisgICAgY2FzZSBDU1NWYWx1ZVdpbmRvd3RleHQ6IHJldHVybiBDT0xPUl9XSU5ET1dU
RVhUOworICAgIGRlZmF1bHQ6IHJldHVybiBDU1NWYWx1ZUludmFsaWQ7IC8vIFVuc3VwcG9ydGVk
IENTU1ZhbHVlCiAgICAgfQogfQogCi1Db2xvciBSZW5kZXJUaGVtZVdpbjo6c3lzdGVtQ29sb3Io
aW50IGNzc1ZhbHVlSWQpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6c3lzdGVtQ29sb3Io
Q1NTVmFsdWVJRCBjc3NWYWx1ZUlkKSBjb25zdAogewotICAgIGludCBzeXNDb2xvckluZGV4ID0g
Y3NzVmFsdWVJZFRvU3lzQ29sb3JJbmRleChjc3NWYWx1ZUlkKTsKLSAgICBpZiAoc3lzQ29sb3JJ
bmRleCA9PSAtMSkKKyAgICBDU1NWYWx1ZUlEIHN5c0NvbG9ySW5kZXggPSBjc3NWYWx1ZUlkVG9T
eXNDb2xvckluZGV4KGNzc1ZhbHVlSWQpOworICAgIGlmIChzeXNDb2xvckluZGV4ID09IENTU1Zh
bHVlSW52YWxpZCkKICAgICAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzeXN0ZW1Db2xvcihjc3NW
YWx1ZUlkKTsKIAogICAgIENPTE9SUkVGIGNvbG9yID0gR2V0U3lzQ29sb3Ioc3lzQ29sb3JJbmRl
eCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4u
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oCmluZGV4IDg1YmU4
ZjBmMzhiZjIxZThlYTczOWIwZTdmODBlZjM3NGIyZWM1ZDAuLjk1MTQ1NTRmYzE2YTJmMjAxYzY4
ZTdmZDI4OGExNmVkYjkwMWExZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZVdpbi5oCkBAIC02Myw4ICs2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENvbG9yIHBs
YXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKIAogICAgIC8v
IFN5c3RlbSBmb250cy4KLSAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQgcHJvcElkLCBG
b250RGVzY3JpcHRpb24mKSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKGlu
dCBjc3NWYWx1ZUlkKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChDU1NWYWx1
ZUlELCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNv
bG9yKENTU1ZhbHVlSUQpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHBhaW50Q2hlY2tib3go
UmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IEludFJlY3QmIHIpCiAg
ICAgeyByZXR1cm4gcGFpbnRCdXR0b24obywgaSwgcik7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmNwcAppbmRleCAwNTViZTBjOTRkNGYyOGQ3MDBmNGYz
NmE0MmQ4YjE4OGYxOThiZTMyLi45MDZlNmZjODc5MzY4ZThiYTNiOTdlMmYxYTA3N2Q1ZmRjY2M3
YmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5D
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luQ0UuY3Bw
CkBAIC0yNTcsNyArMjU3LDcgQEAgYm9vbCBSZW5kZXJUaGVtZVdpbkNFOjpwYWludE1lbnVMaXN0
QnV0dG9uKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLAogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIFJlbmRlclRoZW1lV2luQ0U6OnN5c3RlbUZvbnQoaW50IHByb3BJZCwg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1l
V2luQ0U6OnN5c3RlbUZvbnQoQ1NTVmFsdWVJRCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3Jp
cHRpb24pIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTI4NCw3ICsyODQs
NyBAQCBib29sIFJlbmRlclRoZW1lV2luQ0U6OnN1cHBvcnRzSG92ZXIoY29uc3QgUmVuZGVyU3R5
bGUqKSBjb25zdAogfQogCiAvLyBNYXAgYSBDU1NWYWx1ZSogc3lzdGVtIGNvbG9yIHRvIGFuIGlu
ZGV4IHVuZGVyc3Rvb2QgYnkgR2V0U3lzQ29sb3IKLXN0YXRpYyBpbnQgY3NzVmFsdWVJZFRvU3lz
Q29sb3JJbmRleChpbnQgY3NzVmFsdWVJZCkKK3N0YXRpYyBDU1NWYWx1ZUlEIGNzc1ZhbHVlSWRU
b1N5c0NvbG9ySW5kZXgoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkKQogewogICAgIHN3aXRjaCAoY3Nz
VmFsdWVJZCkgewogICAgIGNhc2UgQ1NTVmFsdWVBY3RpdmVib3JkZXI6IHJldHVybiBDT0xPUl9B
Q1RJVkVCT1JERVI7CkBAIC0zMTUsMTQgKzMxNSwxNCBAQCBzdGF0aWMgaW50IGNzc1ZhbHVlSWRU
b1N5c0NvbG9ySW5kZXgoaW50IGNzc1ZhbHVlSWQpCiAgICAgY2FzZSBDU1NWYWx1ZVdpbmRvdzog
cmV0dXJuIENPTE9SX1dJTkRPVzsKICAgICBjYXNlIENTU1ZhbHVlV2luZG93ZnJhbWU6IHJldHVy
biBDT0xPUl9XSU5ET1dGUkFNRTsKICAgICBjYXNlIENTU1ZhbHVlV2luZG93dGV4dDogcmV0dXJu
IENPTE9SX1dJTkRPV1RFWFQ7Ci0gICAgZGVmYXVsdDogcmV0dXJuIC0xOyAvLyBVbnN1cHBvcnRl
ZCBDU1NWYWx1ZQorICAgIGRlZmF1bHQ6IHJldHVybiBDU1NWYWx1ZUludmFsaWQ7IC8vIFVuc3Vw
cG9ydGVkIENTU1ZhbHVlCiAgICAgfQogfQogCi1Db2xvciBSZW5kZXJUaGVtZVdpbkNFOjpzeXN0
ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lV2luQ0U6OnN5
c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCkgY29uc3QKIHsKLSAgICBpbnQgc3lzQ29s
b3JJbmRleCA9IGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgoY3NzVmFsdWVJZCk7Ci0gICAgaWYg
KHN5c0NvbG9ySW5kZXggPT0gLTEpCisgICAgQ1NTVmFsdWVJRCBzeXNDb2xvckluZGV4ID0gY3Nz
VmFsdWVJZFRvU3lzQ29sb3JJbmRleChjc3NWYWx1ZUlkKTsKKyAgICBpZiAoc3lzQ29sb3JJbmRl
eCA9PSBDU1NWYWx1ZUludmFsaWQpCiAgICAgICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c3lzdGVt
Q29sb3IoY3NzVmFsdWVJZCk7CiAKICAgICBDT0xPUlJFRiBjb2xvciA9IEdldFN5c0NvbG9yKHN5
c0NvbG9ySW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lV2luQ0UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNF
LmgKaW5kZXggYmRlODcyYzZjNzZmY2EwYjY3MWE5MzJiZWQwMjMwZDM3NzMxOTkyZi4uYzFhYjdi
ZTgyMjdmOGVkMDVmZjIxYmIxMzhlOWZmNzNkNWQ0ZTJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5oCkBAIC02Miw4ICs2Miw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKCkgY29uc3Q7CiAKICAgICAgICAgLy8gU3lzdGVtIGZvbnRzLgotICAg
ICAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250RGVzY3JpcHRpb24m
KSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBDb2xvciBzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJ
ZCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzeXN0ZW1Gb250KENTU1ZhbHVlSUQsIEZv
bnREZXNjcmlwdGlvbiYpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9y
KENTU1ZhbHVlSUQpIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludENoZWNrYm94
KFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByKQog
ICAgICAgICB7IHJldHVybiBwYWludEJ1dHRvbihvLCBpLCByKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205088</attachid>
            <date>2013-06-20 07:02:02 -0700</date>
            <delta_ts>2013-06-20 09:34:55 -0700</delta_ts>
            <desc>fix build</desc>
            <filename>bug-117829-20130620110009.patch</filename>
            <type>text/plain</type>
            <size>328278</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxNzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFkMmRlYjA4ZDFkMDIz
MGYyNWVjZGZkZDA4NTg5N2QyYTU1NzAwNy4uYTIwNWU0YzdkN2IzNzk5YWUwY2VmM2JlMGJkNzhj
ZTc2YzZmYzdkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwNCBAQAorMjAxMy0wNi0yMCAgQWxl
eGlzIE1lbmFyZCAgPGFsZXhpc0B3ZWJraXQub3JnPgorCisgICAgICAgIENsZWFudXAgdXNhZ2Ug
b2YgQ1NTUHJvcGVydHlJRCBhbmQgQ1NTVmFsdWVJRCBpbnNpZGUgV2ViS2l0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3ODI5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBsb3Qgb2YgY2FsbCBzaXRl
cyB3ZXJlIHVzaW5nIGludGVnZXJzIHRvIHJlcHJlc2VudCB0aGVtLiBXaGlsZSBpdCdzCisgICAg
ICAgIG5vdCBpbmNvcnJlY3QgcGVyIHNheSwgaXQncyBub3QgaWRlYWwgZm9yIHZhcmlvdXMgcmVh
c29uIHN1Y2ggYXMgdHlwZQorICAgICAgICBzYWZldHkgb3IgdG8gcmVtb3ZlIGFtYmlndWl0eS4K
KworICAgICAgICBUaGlzIHBhdGNoIGVyYWRpY2F0ZSB0aGUgd3JvbmcgdXNhZ2UgYnkgbm90IGxl
dHRpbmcgYW55IGludGVnZXIgYmFzZWQKKyAgICAgICAgQVBJIGZvciBnZXR0aW5nIENTU1ZhbHVl
SURzIG9yIENTU1Byb3BlcnR5SURzIGZyb20gQ1NTUHJpbWl0aXZlVmFsdWVzLgorCisgICAgICAg
IEluc3RlYWQgd2UgdXNlIG5ldyBidXQgdHlwZWQgZnVuY3Rpb25zIHRvIGNvbnN0cnVjdCB0aGUg
dmFsdWVzIGFzIHdlbGwKKyAgICAgICAgYXMgZ2V0dGluZyB0aGVtLiBUd28gY3VzdG9tcyBhbmQg
aW50ZXJuYWwgdHlwZXMgd2VyZSBhZGRlZCB0byBDU1NQcmltaXRpdmVWYWx1ZQorICAgICAgICB0
byBoYW5kbGUgY29ycmVjdGx5IHRoZSBuZXcgQVBJcy4KKworICAgICAgICBJdCdzIGdvb2QgdG8g
bm90ZSB0aGF0IGluIG9yZGVyIHRvIHByZXNlcnZlIGNvbXBhdGliaWxpdHkgb24gdGhlCisgICAg
ICAgIENTU1ByaW1pdGl2ZVZhbHVlIHR5cGUgd2hlbmV2ZXIgQ1NTUHJpbWl0aXZlVmFsdWUgaGFu
ZGxlcyBhIENTU1ZhbHVlSUQKKyAgICAgICAgb3IgYSBDU1NQcm9wZXJ0eUlEIHRoZSByZXR1cm4g
dHlwZSBmb3IgdGhlIHB1YmxpYyBBUEkgd2lsbCBiZSBDU1NfSURFTlQKKyAgICAgICAgZGVzcGl0
ZSBpdCBpcyBhIHNlcGFyYXRlIGludGVybmFsIHR5cGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
OiByZWZhY3RvciwgZXhpc3RpbmcgdGVzdHMgc2hvdWxkIGNvdmVyLgorCisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21w
dXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eU1hdGNoZXMpOgorICAgICAgICAqIGNzcy9DU1NG
b250U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjphZGRG
b250RmFjZVJ1bGUpOgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnBvc2l0aW9uRnJvbVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xp
bmVhckdyYWRpZW50VmFsdWU6OmN1c3RvbUNzc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TGluZWFyR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjcmVhdGVHcmFkaWVudCk6CisgICAgICAgICogY3Nz
L0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU3lzdGVt
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6aXNGaWxsUG9zaXRpb25LZXl3b3JkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2U0VmFsdWVzRmlsbFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2UzVmFsdWVzRmlsbFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZpbGxSZXBlYXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZVJhZGlhbEdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6aXNCbGVuZE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjppc0NvbXBvc2l0
ZU9wZXJhdG9yKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NT
U1BhcnNlclZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJWYWx1ZTo6Y3Jl
YXRlQ1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjppc1ZhbGlkQ1NTVW5pdFR5cGVGb3JEb3VibGVDb252ZXJzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpwcmltaXRpdmVUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnByb3BlcnR5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjbGVhbnVwKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpnZXRTdHJpbmdWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y2xvbmVGb3JDU1NPTSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6ZXF1YWxzKToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppc0ZvbnRS
ZWxhdGl2ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNW
YWx1ZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVQYXJz
ZXJPcGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0UHJv
cGVydHlJRCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0VmFsdWVJ
RCk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ1NTUmVmbGVjdGlvbkRpcmVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29s
dW1uU3Bhbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
UHJpbnRDb2xvckFkanVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRUJvcmRlclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBPdXRsaW5lSXNBdXRvKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBDb21wb3NpdGVPcGVyYXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29udHJvbFBhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCYWNrZmFjZVZpc2liaWxpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGaWxsQXR0YWNo
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZp
bGxCb3gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVG
aWxsUmVwZWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFQm94UGFjayk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRUJveEFsaWdubWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRUJveERlY29yYXRpb25CcmVhayk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgQmFja2dyb3VuZEVkZ2VPcmlnaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hTaXppbmcpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hEaXJlY3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hMaW5lcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveE9yaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUNhcHRpb25T
aWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ2xl
YXIpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDdXJz
b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEN1cnNv
clZpc2liaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFRW1wdHlDZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFQWxpZ25JdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRUp1c3RpZnlDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxleERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWduQ29udGVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZsZXhXcmFwKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxvYXQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVCcmVhayk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUxpc3RTdHlsZVBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTGlzdFN0eWxl
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU1h
cmdpbkNvbGxhcHNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFTWFycXVlZUJlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBSZWdpb25GcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU1hcnF1ZWVEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVOQlNQTW9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU92ZXJmbG93KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUGFnZUJyZWFrKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVSZXNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUYWJsZUxheW91dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRBbGlnbik6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEFsaWdu
TGFzdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4
dEp1c3RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFRleHREZWNvcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBUZXh0RGVjb3JhdGlvblN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0VW5kZXJsaW5lUG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0U2VjdXJpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0VHJhbnNmb3JtKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVW5pY29kZUJp
ZGkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2Vy
RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVz
ZXJNb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVVc2VyU2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFVmVydGljYWxBbGlnbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRVZpc2liaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVXaGl0ZVNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFV29yZEJyZWFrKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFT3ZlcmZsb3dXcmFwKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcml0aW5nTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dENvbWJpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJ1YnlQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEVtcGhh
c2lzUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFRleHRPdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgVGV4dEVtcGhhc2lzRmlsbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEVtcGhhc2lzTWFyayk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dE9yaWVudGF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUG9pbnRlckV2ZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udERlc2NyaXB0aW9u
OjpLZXJuaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBGb250U21vb3RoaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRm9udFdlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgRm9udEl0YWxpYyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRm9udFNtYWxsQ2Fwcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFJlbmRlcmluZ01vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbG9yU3BhY2UpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEh5cGhlbnMpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVTbmFwKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQWxpZ24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFU3BlYWspOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJsZW5kTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUNhcCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUpvaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdpbmRSdWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQWxpZ25tZW50QmFzZWxp
bmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3Jk
ZXJDb2xsYXBzZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRUJvcmRlckZpdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRUltYWdlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBFVHJhbnNmb3JtU3R5bGUzRCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uQXhpcyk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uUHJvZ3Jlc3Npb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdyYXBGbG93KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcmFwVGhyb3VnaCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgR3JpZEF1dG9GbG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjb252ZXJ0VG9MZW5ndGgpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCdWZmZXJlZFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
RUNvbG9ySW50ZXJwb2xhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRUNvbG9yUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFRG9taW5hbnRCYXNlbGluZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVNoYXBlUmVuZGVyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVGV4dEFuY2hvcik6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgU1ZHV3JpdGluZ01vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVWZWN0b3JF
ZmZlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVN
YXNrVHlwZSk6CisgICAgICAgICogY3NzL0NTU1RvU3R5bGVNYXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVG9TdHlsZU1hcDo6bWFwRmlsbEF0dGFjaG1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTVG9TdHlsZU1hcDo6bWFwRmlsbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9T
dHlsZU1hcDo6bWFwQW5pbWF0aW9uRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Rv
U3R5bGVNYXA6Om1hcEFuaW1hdGlvbkZpbGxNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Rv
U3R5bGVNYXA6Om1hcEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvbk5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
VG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uUGxheVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvblByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1RvU3R5bGVNYXA6Om1hcE5pbmVQaWVjZUltYWdlUXVhZCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NUb1N0eWxlTWFwOjptYXBOaW5lUGllY2VJbWFnZVJlcGVhdCk6CisgICAgICAgICog
Y3NzL0NvdW50ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvdW50ZXI6Omxpc3RTdHlsZUlkZW50
KToKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVByb3BlcnR5TnVtYmVyOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGx5UHJvcGVydHlBdXRvOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGx5UHJvcGVydHlDbGlwOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJv
cGVydHlDb2xvcjo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5
TGVuZ3RoOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlTdHJp
bmc6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUNvbXB1dGVM
ZW5ndGg6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUZvbnRG
YW1pbHk6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUZvbnRT
aXplOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlGb250V2Vp
Z2h0OjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlGb250VmFy
aWFudExpZ2F0dXJlczo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3Bl
cnR5Q291bnRlcjo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5
Q3Vyc29yOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0
QWxpZ246OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eU1hcnF1
ZWVJbmNyZW1lbnQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eU1hcnF1ZWVSZXBldGl0aW9uOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5
UHJvcGVydHlNYXJxdWVlU3BlZWQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlQcm9wZXJ0eUxpbmVIZWlnaHQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlQcm9wZXJ0eVBhZ2VTaXplOjpnZXRQYWdlU2l6ZUZyb21OYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGx5UHJvcGVydHlQYWdlU2l6ZTo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBseVByb3BlcnR5VGV4dEVtcGhhc2lzU3R5bGU6OmFwcGx5VmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVJlc2l6ZTo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpBcHBseVByb3BlcnR5VmVydGljYWxBbGlnbjo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVByb3BlcnR5Wm9vbTo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBseVByb3BlcnR5Q2xpcFBhdGg6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbHlQcm9wZXJ0eVNoYXBlOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5
UHJvcGVydHlJbWFnZVJlc29sdXRpb246OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAqIGNzcy9NZWRp
YVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9yaWVudGF0aW9uTWVkaWFG
ZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjp2aWV3X21vZGVNZWRpYUZlYXR1cmVFdmFs
KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50ZXJNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAg
KiBjc3MvU1ZHQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VTVkdWYWx1ZSk6CisgICAgICAgICogY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlTVkdQcm9wZXJ0eSk6CisgICAgICAg
ICogY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9w
ZXJ0eVNldDo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKToKKyAgICAgICAgKiBjc3MvU3R5bGVS
ZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVHcmlkVHJhY2tCcmVhZHRoKToK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdyaWRUcmFja0xpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlR3JpZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29sb3JGb3JDU1NWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xvckZyb21QcmltaXRpdmVWYWx1ZUlz
RGVyaXZlZEZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNv
bG9yRnJvbVByaW1pdGl2ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbldpdGhJbmxpbmVTeW50YXgpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y3JlYXRlRmlsdGVyT3BlcmF0aW9ucyk6CisgICAgICAg
ICogY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWV3
cG9ydFN0eWxlUmVzb2x2ZXI6OmdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZSk6CisgICAgICAgICog
Y3NzL1dlYktpdENTU01hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRy
aXg6OnNldE1hdHJpeFZhbHVlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSWRlbnRpZmllcik6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aWRlbnRpZmllckZvclN0eWxl
UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRFcXVpdmFsZW50OjpIVE1MRWxlbWVu
dEVxdWl2YWxlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRFcXVpdmFsZW50Ojp2
YWx1ZUlzUHJlc2VudEluU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHREZWNvcmF0
aW9uRXF1aXZhbGVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0RGVjb3Jh
dGlvbkVxdWl2YWxlbnQ6OkhUTUxUZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdGluZ1N0eWxlOjp0ZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRpbmdTdHlsZTo6cHJlcGFyZVRvQXBwbHlBdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
aW5nU3R5bGU6OnRleHREaXJlY3Rpb25Gb3JTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Zm9udFdlaWdodElzQm9sZCk6CisgICAgICAgIChXZWJDb3JlOjpsZWdhY3lGb250U2l6ZUZyb21D
U1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjppc1RyYW5zcGFyZW50Q29sb3JWYWx1ZSk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuaDoKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1
cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1JlbmRlclRoZW1lQmxhY2tCZXJyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUJsYWNrQmVycnk6OnN5c3RlbUZvbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvUmVuZGVyVGhlbWVCbGFja0JlcnJ5Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUJsYWNrQmVycnk6OnN5c3RlbUZvbnQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OnN5c3RlbUZvbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2JsYWNrYmVycnkvUmVuZGVyVGhlbWVFZmwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lRWZsOjpzeXN0ZW1Gb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVH
dGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnN5c3RlbUZvbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVHdGs6OnN5c3RlbUNvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVH
dGszLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpzeXN0ZW1Db2xvcik6
CisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZVF0OjpzeXN0ZW1Gb250KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lUXQ6OnN5c3RlbUNvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVt
ZVF0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lOjpzeXN0ZW1Db2xvcik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnN5c3RlbUZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVN
YWM6OnN5c3RlbUNvbG9yKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmku
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lU2FmYXJpOjpzeXN0ZW1Gb250KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVTYWZhcmk6OnN5c3RlbUZvbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbjo6c3lz
dGVtRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlkVG9TeXNDb2xvckluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV2luOjpzeXN0ZW1Db2xvcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lV2luQ0UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVXaW5DRTo6c3lz
dGVtRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlkVG9TeXNDb2xvckluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV2luQ0U6OnN5c3RlbUNvbG9yKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5oOgorCiAyMDEzLTA2LTIwICBHcnplZ29y
eiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgogCiAgICAgICAgIGJhY2tn
cm91bmQtY29sb3IgYW5kIHRleHQtZGVjb3JhdGlvbiBhcmUgbm90IHByZXNlcnZlZCB3aGVuIG1l
cmdpbmcgcGFyYWdyYXBocwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBiMmVkMjgyMWFhN2Y0MzU5YWI3NzZkMDNhOWRlNGQw
NWRmMDIxNzkyLi4zZTkzOTBhM2NhNTRhMmFiMTQyNTExM2MwYThhZmI1ZTJkOWZjYWZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cApAQCAtMjk2OSw5ICsyOTY5LDkgQEAgYm9vbCBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9w
ZXJ0eU1hdGNoZXMoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBjb25zdCBDU1MKICAgICAgICAg
bV9ub2RlLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKICAgICAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gbV9ub2RlLT5jb21wdXRlZFN0eWxlKG1f
cHNldWRvRWxlbWVudFNwZWNpZmllcik7CiAgICAgICAgIGlmIChzdHlsZSAmJiBzdHlsZS0+Zm9u
dERlc2NyaXB0aW9uKCkua2V5d29yZFNpemUoKSkgewotICAgICAgICAgICAgaW50IHNpemVWYWx1
ZSA9IGNzc0lkZW50aWZpZXJGb3JGb250U2l6ZUtleXdvcmQoc3R5bGUtPmZvbnREZXNjcmlwdGlv
bigpLmtleXdvcmRTaXplKCkpOworICAgICAgICAgICAgQ1NTVmFsdWVJRCBzaXplVmFsdWUgPSBj
c3NJZGVudGlmaWVyRm9yRm9udFNpemVLZXl3b3JkKHN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5r
ZXl3b3JkU2l6ZSgpKTsKICAgICAgICAgICAgIGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlKiBwcmlt
aXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUp
OwotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc0lkZW50KCkgJiYgcHJpbWl0aXZl
VmFsdWUtPmdldElkZW50KCkgPT0gc2l6ZVZhbHVlKQorICAgICAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5pc1ZhbHVlSUQoKSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IHNp
emVWYWx1ZSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKaW5kZXggYjA0MDJmMjBkOTZjODc1
NTI4YWZiYjEzZjdjMjUzYmYyMzIxNWEyMS4uMzUxZDQ0MzIyMjE0MWViOWZkOTcyZTNiYTIzMDE0
NjNjNDQyYWQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKQEAgLTEx
NSw3ICsxMTUsNyBAQCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNvbnN0
IFN0eWxlUnVsZUZvbnRGYWNlKiBmb250RmFjZVJ1bGUpCiAgICAgICAgIGlmICghZm9udFN0eWxl
LT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgc3dp
dGNoIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGZvbnRTdHlsZS5nZXQoKSktPmdl
dElkZW50KCkpIHsKKyAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZSo+KGZvbnRTdHlsZS5nZXQoKSktPmdldFZhbHVlSUQoKSkgewogICAgICAgICBjYXNlIENTU1Zh
bHVlTm9ybWFsOgogICAgICAgICAgICAgdHJhaXRzTWFzayB8PSBGb250U3R5bGVOb3JtYWxNYXNr
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMzMsNyArMTMzLDcgQEAgdm9pZCBDU1NGb250U2Vs
ZWN0b3I6OmFkZEZvbnRGYWNlUnVsZShjb25zdCBTdHlsZVJ1bGVGb250RmFjZSogZm9udEZhY2VS
dWxlKQogICAgICAgICBpZiAoIWZvbnRXZWlnaHQtPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4oZm9udFdlaWdodC5nZXQoKSktPmdldElkZW50KCkpIHsKKyAgICAgICAgc3dpdGNo
IChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGZvbnRXZWlnaHQuZ2V0KCkpLT5nZXRW
YWx1ZUlEKCkpIHsKICAgICAgICAgY2FzZSBDU1NWYWx1ZUJvbGQ6CiAgICAgICAgIGNhc2UgQ1NT
VmFsdWU3MDA6CiAgICAgICAgICAgICB0cmFpdHNNYXNrIHw9IEZvbnRXZWlnaHQ3MDBNYXNrOwpA
QCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUo
Y29uc3QgU3R5bGVSdWxlRm9udEZhY2UqIGZvbnRGYWNlUnVsZSkKICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtVmFyaWFudHM7ICsraSkg
ewotICAgICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZh
cmlhbnRMaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkpKS0+Z2V0SWRlbnQoKSkgeworICAg
ICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhcmlhbnRM
aXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkpKS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAg
ICAgICAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgICAgICAgICAgICAgdHJhaXRz
TWFzayB8PSBGb250VmFyaWFudE5vcm1hbE1hc2s7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMjY2LDEyICsyNjYsMTIgQEAgdm9pZCBDU1NGb250U2VsZWN0b3I6OmFkZEZvbnRGYWNl
UnVsZShjb25zdCBTdHlsZVJ1bGVGb250RmFjZSogZm9udEZhY2VSdWxlKQogICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgZmFtaWx5TGVuZ3RoOyBpKyspIHsKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFs
dWUqIGl0ZW0gPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGZhbWlseUxpc3QtPml0
ZW1XaXRob3V0Qm91bmRzQ2hlY2soaSkpOwogICAgICAgICBTdHJpbmcgZmFtaWx5TmFtZTsKLSAg
ICAgICAgaWYgKGl0ZW0tPmlzU3RyaW5nKCkpCisgICAgICAgIGlmIChpdGVtLT5pc1N0cmluZygp
KSB7CiAgICAgICAgICAgICBmYW1pbHlOYW1lID0gaXRlbS0+Z2V0U3RyaW5nVmFsdWUoKTsKLSAg
ICAgICAgZWxzZSBpZiAoaXRlbS0+aXNJZGVudCgpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoaXRl
bS0+aXNWYWx1ZUlEKCkpIHsKICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gdXNlIHRoZSByYXcg
dGV4dCBmb3IgYWxsIHRoZSBnZW5lcmljIGZhbWlseSB0eXBlcywgc2luY2UgQGZvbnQtZmFjZSBp
cyBhIHdheSBvZiBhY3R1YWxseQogICAgICAgICAgICAgLy8gZGVmaW5pbmcgd2hhdCBmb250IHRv
IHVzZSBmb3IgdGhvc2UgdHlwZXMuCi0gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0tPmdldElkZW50
KCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoaXRlbS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAg
ICAgICAgICAgY2FzZSBDU1NWYWx1ZVNlcmlmOgogICAgICAgICAgICAgICAgICAgICBmYW1pbHlO
YW1lID0gc2VyaWZGYW1pbHk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCmluZGV4IDY2MDgzN2Y1ZmI4MDFmMzFlOTFlZmIw
Y2QzZjQxMmJlNWE4MmQ3MjQuLjUwMDU5OGJkOTY1NDZlMzI3OTBlNjk2NGY2MDM0ZTA4NzJlNDFj
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTQwOCw3ICs0
MDgsNyBAQCBzdGF0aWMgZmxvYXQgcG9zaXRpb25Gcm9tVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUq
IHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFJlbgogICAgIGlmICh2YWx1ZS0+aXNDYWxjdWxh
dGVkUGVyY2VudGFnZVdpdGhMZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIHZhbHVlLT5jc3NDYWxj
VmFsdWUoKS0+dG9DYWxjVmFsdWUoc3R5bGUsIHJvb3RTdHlsZSwgc3R5bGUtPmVmZmVjdGl2ZVpv
b20oKSktPmV2YWx1YXRlKGVkZ2VEaXN0YW5jZSk7CiAKLSAgICBzd2l0Y2ggKHZhbHVlLT5nZXRJ
ZGVudCgpKSB7CisgICAgc3dpdGNoICh2YWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZVRvcDoKICAgICAgICAgQVNTRVJUKCFpc0hvcml6b250YWwpOwogICAgICAgICByZXR1
cm4gMDsKQEAgLTQyMSw2ICs0MjEsOCBAQCBzdGF0aWMgZmxvYXQgcG9zaXRpb25Gcm9tVmFsdWUo
Q1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFJlbgogICAgIGNh
c2UgQ1NTVmFsdWVSaWdodDoKICAgICAgICAgQVNTRVJUKGlzSG9yaXpvbnRhbCk7CiAgICAgICAg
IHJldHVybiBzaXplLndpZHRoKCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogCiAgICAgcmV0dXJuIHZhbHVlLT5jb21wdXRlTGVuZ3RoPGZsb2F0PihzdHlsZSwgcm9vdFN0
eWxlLCB6b29tRmFjdG9yKTsKQEAgLTU0MCw3ICs1NDIsNyBAQCBTdHJpbmcgQ1NTTGluZWFyR3Jh
ZGllbnRWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiAgICAgICAgIGlmIChtX2FuZ2xlICYm
IG1fYW5nbGUtPmNvbXB1dGVEZWdyZWVzKCkgIT0gMTgwKSB7CiAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKG1fYW5nbGUtPmNzc1RleHQoKSk7CiAgICAgICAgICAgICB3cm90ZVNvbWV0aGluZyA9
IHRydWU7Ci0gICAgICAgIH0gZWxzZSBpZiAoKG1fZmlyc3RYIHx8IG1fZmlyc3RZKSAmJiAhKCFt
X2ZpcnN0WCAmJiBtX2ZpcnN0WSAmJiBtX2ZpcnN0WS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUJv
dHRvbSkpIHsKKyAgICAgICAgfSBlbHNlIGlmICgobV9maXJzdFggfHwgbV9maXJzdFkpICYmICEo
IW1fZmlyc3RYICYmIG1fZmlyc3RZICYmIG1fZmlyc3RZLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVCb3R0b20pKSB7CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgidG8gIik7CiAg
ICAgICAgICAgICBpZiAobV9maXJzdFggJiYgbV9maXJzdFkpIHsKICAgICAgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKG1fZmlyc3RYLT5jc3NUZXh0KCkpOwpAQCAtNjc3LDkgKzY3OSw5IEBAIFBh
c3NSZWZQdHI8R3JhZGllbnQ+IENTU0xpbmVhckdyYWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50
KFJlbmRlck9iamVjdCogcmVuZGVyCiAgICAgICAgICAgICAgICAgLy8gIk1hZ2ljIiBjb3JuZXJz
LCBzbyB0aGUgNTAlIGxpbmUgdG91Y2hlcyB0d28gY29ybmVycy4KICAgICAgICAgICAgICAgICBm
bG9hdCByaXNlID0gc2l6ZS53aWR0aCgpOwogICAgICAgICAgICAgICAgIGZsb2F0IHJ1biA9IHNp
emUuaGVpZ2h0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKG1fZmlyc3RYICYmIG1fZmlyc3RYLT5n
ZXRJZGVudCgpID09IENTU1ZhbHVlTGVmdCkKKyAgICAgICAgICAgICAgICBpZiAobV9maXJzdFgg
JiYgbV9maXJzdFgtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUxlZnQpCiAgICAgICAgICAgICAg
ICAgICAgIHJ1biAqPSAtMTsKLSAgICAgICAgICAgICAgICBpZiAobV9maXJzdFkgJiYgbV9maXJz
dFktPmdldElkZW50KCkgPT0gQ1NTVmFsdWVCb3R0b20pCisgICAgICAgICAgICAgICAgaWYgKG1f
Zmlyc3RZICYmIG1fZmlyc3RZLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVCb3R0b20pCiAgICAg
ICAgICAgICAgICAgICAgIHJpc2UgKj0gLTE7CiAgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSBh
bmdsZSwgYW5kIGZsaXAgaXQgYmFjayB0byAiYmVhcmluZyBhbmdsZSIgZGVncmVlcy4KICAgICAg
ICAgICAgICAgICBmbG9hdCBhbmdsZSA9IDkwIC0gcmFkMmRlZyhhdGFuMihyaXNlLCBydW4pKTsK
QEAgLTgzMywxMiArODM1LDEyIEBAIFN0cmluZyBDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjdXN0
b21Dc3NUZXh0KCkgY29uc3QKIAogICAgICAgICAvLyBUaGUgb25seSBhbWJpZ3VvdXMgY2FzZSB0
aGF0IG5lZWRzIGFuIGV4cGxpY2l0IHNoYXBlIHRvIGJlIHByb3ZpZGVkCiAgICAgICAgIC8vIGlz
IHdoZW4gYSBzaXppbmcga2V5d29yZCBpcyB1c2VkIChvciBhbGwgc2l6aW5nIGlzIG9taXR0ZWQp
LgotICAgICAgICBpZiAobV9zaGFwZSAmJiBtX3NoYXBlLT5nZXRJZGVudCgpICE9IENTU1ZhbHVl
RWxsaXBzZSAmJiAobV9zaXppbmdCZWhhdmlvciB8fCAoIW1fc2l6aW5nQmVoYXZpb3IgJiYgIW1f
ZW5kSG9yaXpvbnRhbFNpemUpKSkgeworICAgICAgICBpZiAobV9zaGFwZSAmJiBtX3NoYXBlLT5n
ZXRWYWx1ZUlEKCkgIT0gQ1NTVmFsdWVFbGxpcHNlICYmIChtX3NpemluZ0JlaGF2aW9yIHx8ICgh
bV9zaXppbmdCZWhhdmlvciAmJiAhbV9lbmRIb3Jpem9udGFsU2l6ZSkpKSB7CiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiY2lyY2xlIik7CiAgICAgICAgICAgICB3cm90ZVNvbWV0
aGluZyA9IHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobV9zaXppbmdCZWhhdmlvciAm
JiBtX3NpemluZ0JlaGF2aW9yLT5nZXRJZGVudCgpICE9IENTU1ZhbHVlRmFydGhlc3RDb3JuZXIp
IHsKKyAgICAgICAgaWYgKG1fc2l6aW5nQmVoYXZpb3IgJiYgbV9zaXppbmdCZWhhdmlvci0+Z2V0
VmFsdWVJRCgpICE9IENTU1ZhbHVlRmFydGhlc3RDb3JuZXIpIHsKICAgICAgICAgICAgIGlmICh3
cm90ZVNvbWV0aGluZykKICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKG1fc2l6aW5nQmVoYXZpb3ItPmNzc1RleHQoKSk7CkBAIC0x
MDE4LDE0ICsxMDIwLDE0IEBAIFBhc3NSZWZQdHI8R3JhZGllbnQ+IENTU1JhZGlhbEdyYWRpZW50
VmFsdWU6OmNyZWF0ZUdyYWRpZW50KFJlbmRlck9iamVjdCogcmVuZGVyCiAgICAgfSBlbHNlIHsK
ICAgICAgICAgZW51bSBHcmFkaWVudFNoYXBlIHsgQ2lyY2xlLCBFbGxpcHNlIH07CiAgICAgICAg
IEdyYWRpZW50U2hhcGUgc2hhcGUgPSBFbGxpcHNlOwotICAgICAgICBpZiAoKG1fc2hhcGUgJiYg
bV9zaGFwZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUNpcmNsZSkKKyAgICAgICAgaWYgKChtX3No
YXBlICYmIG1fc2hhcGUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUNpcmNsZSkKICAgICAgICAg
ICAgIHx8ICghbV9zaGFwZSAmJiAhbV9zaXppbmdCZWhhdmlvciAmJiBtX2VuZEhvcml6b250YWxT
aXplICYmICFtX2VuZFZlcnRpY2FsU2l6ZSkpCiAgICAgICAgICAgICBzaGFwZSA9IENpcmNsZTsK
IAogICAgICAgICBlbnVtIEdyYWRpZW50RmlsbCB7IENsb3Nlc3RTaWRlLCBDbG9zZXN0Q29ybmVy
LCBGYXJ0aGVzdFNpZGUsIEZhcnRoZXN0Q29ybmVyIH07CiAgICAgICAgIEdyYWRpZW50RmlsbCBm
aWxsID0gRmFydGhlc3RDb3JuZXI7CiAKLSAgICAgICAgc3dpdGNoIChtX3NpemluZ0JlaGF2aW9y
ID8gbV9zaXppbmdCZWhhdmlvci0+Z2V0SWRlbnQoKSA6IDApIHsKKyAgICAgICAgc3dpdGNoICht
X3NpemluZ0JlaGF2aW9yID8gbV9zaXppbmdCZWhhdmlvci0+Z2V0VmFsdWVJRCgpIDogMCkgewog
ICAgICAgICBjYXNlIENTU1ZhbHVlQ29udGFpbjoKICAgICAgICAgY2FzZSBDU1NWYWx1ZUNsb3Nl
c3RTaWRlOgogICAgICAgICAgICAgZmlsbCA9IENsb3Nlc3RTaWRlOwpAQCAtMTA0MCw2ICsxMDQy
LDggQEAgUGFzc1JlZlB0cjxHcmFkaWVudD4gQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3JlYXRl
R3JhZGllbnQoUmVuZGVyT2JqZWN0KiByZW5kZXIKICAgICAgICAgY2FzZSBDU1NWYWx1ZUZhcnRo
ZXN0Q29ybmVyOgogICAgICAgICAgICAgZmlsbCA9IEZhcnRoZXN0Q29ybmVyOwogICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogCiAgICAgICAgIC8vIE5vdyBjb21wdXRlIHRoZSBlbmQgcmFkaWkgYmFzZWQgb24gdGhlIHNl
Y29uZCBwb2ludCwgc2hhcGUgYW5kIGZpbGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4
IGYzODYxNzM2NjI4ZTkxNGM4NDBlMTNlZTQ5ZjgzY2ZiN2YzNjFmNzguLmNhODJjNTExYmU5MmVk
MGVhYmY5YWE2MmU5MGYzOGNiMTZhNmQzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBA
IC0xNDAwLDcgKzE0MDAsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VTeXN0ZW1Db2xvcihSR0JB
MzImIGNvbG9yLCBjb25zdCBTdHJpbmcmIHN0cmluZywgRG9jdW1lbnQqCiAKICAgICBDU1NQYXJz
ZXJTdHJpbmcgY3NzQ29sb3I7CiAgICAgY3NzQ29sb3IuaW5pdChzdHJpbmcpOwotICAgIGludCBp
ZCA9IGNzc1ZhbHVlS2V5d29yZElEKGNzc0NvbG9yKTsKKyAgICBDU1NWYWx1ZUlEIGlkID0gY3Nz
VmFsdWVLZXl3b3JkSUQoY3NzQ29sb3IpOwogICAgIGlmIChpZCA8PSAwKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKQEAgLTM5MzMsNyArMzkzMyw3IEBAIHN0YXRpYyBib29sIGlzVmFsdWVDb25m
bGljdGluZ1dpdGhDdXJyZW50RWRnZShpbnQgdmFsdWUxLCBpbnQgdmFsdWUyKQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotc3RhdGljIGJvb2wgaXNGaWxsUG9zaXRpb25LZXl3b3JkKGludCB2YWx1
ZSkKK3N0YXRpYyBib29sIGlzRmlsbFBvc2l0aW9uS2V5d29yZChDU1NWYWx1ZUlEIHZhbHVlKQog
ewogICAgIHJldHVybiB2YWx1ZSA9PSBDU1NWYWx1ZUxlZnQgfHwgdmFsdWUgPT0gQ1NTVmFsdWVU
b3AgfHwgdmFsdWUgPT0gQ1NTVmFsdWVCb3R0b20gfHwgdmFsdWUgPT0gQ1NTVmFsdWVSaWdodCB8
fCB2YWx1ZSA9PSBDU1NWYWx1ZUNlbnRlcjsKIH0KQEAgLTM5NDIsNyArMzk0Miw3IEBAIHZvaWQg
Q1NTUGFyc2VyOjpwYXJzZTRWYWx1ZXNGaWxsUG9zaXRpb24oQ1NTUGFyc2VyVmFsdWVMaXN0KiB2
YWx1ZUxpc3QsIFJlZlB0cjxDCiB7CiAgICAgLy8gWyBsZWZ0IHwgcmlnaHQgXSBbIDxwZXJjZW50
YWdlXSB8IDxsZW5ndGg+IF0gJiYgWyB0b3AgfCBib3R0b20gXSBbIDxwZXJjZW50YWdlPiB8IDxs
ZW5ndGg+IF0KICAgICAvLyBJbiB0aGUgY2FzZSBvZiA0IHZhbHVlcyA8cG9zaXRpb24+IHJlcXVp
cmVzIHRoZSBzZWNvbmQgdmFsdWUgdG8gYmUgYSBsZW5ndGggb3IgYSBwZXJjZW50YWdlLgotICAg
IGlmIChpc0ZpbGxQb3NpdGlvbktleXdvcmQocGFyc2VkVmFsdWUyLT5nZXRJZGVudCgpKSkKKyAg
ICBpZiAoaXNGaWxsUG9zaXRpb25LZXl3b3JkKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJRCgpKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgdW5zaWduZWQgY3VtdWxhdGl2ZUZsYWdzID0gMDsKQEAg
LTM5NTEsOCArMzk1MSw4IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZTRWYWx1ZXNGaWxsUG9zaXRp
b24oQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0cjxDCiAgICAgaWYgKCF2YWx1
ZTMpCiAgICAgICAgIHJldHVybjsKIAotICAgIGludCBpZGVudDEgPSBwYXJzZWRWYWx1ZTEtPmdl
dElkZW50KCk7Ci0gICAgaW50IGlkZW50MyA9IHZhbHVlMy0+Z2V0SWRlbnQoKTsKKyAgICBDU1NW
YWx1ZUlEIGlkZW50MSA9IHBhcnNlZFZhbHVlMS0+Z2V0VmFsdWVJRCgpOworICAgIENTU1ZhbHVl
SUQgaWRlbnQzID0gdmFsdWUzLT5nZXRWYWx1ZUlEKCk7CiAKICAgICBpZiAoaWRlbnQxID09IENT
U1ZhbHVlQ2VudGVyKQogICAgICAgICByZXR1cm47CkBAIC0zOTc1LDcgKzM5NzUsNyBAQCB2b2lk
IENTU1BhcnNlcjo6cGFyc2U0VmFsdWVzRmlsbFBvc2l0aW9uKENTU1BhcnNlclZhbHVlTGlzdCog
dmFsdWVMaXN0LCBSZWZQdHI8QwogICAgICAgICByZXR1cm47CiAKICAgICAvLyA0dGggdmFsdWUg
bXVzdCBiZSBhIGxlbmd0aCBvciBhIHBlcmNlbnRhZ2UuCi0gICAgaWYgKGlzRmlsbFBvc2l0aW9u
S2V5d29yZCh2YWx1ZTQtPmdldElkZW50KCkpKQorICAgIGlmIChpc0ZpbGxQb3NpdGlvbktleXdv
cmQodmFsdWU0LT5nZXRWYWx1ZUlEKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICB2YWx1ZTEg
PSBjcmVhdGVQcmltaXRpdmVWYWx1ZVBhaXIocGFyc2VkVmFsdWUxLCBwYXJzZWRWYWx1ZTIpOwpA
QCAtMzk5OSw5ICszOTk5LDkgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlM1ZhbHVlc0ZpbGxQb3Np
dGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCwgUmVmUHRyPEMKICAgICB2YWx1ZUxp
c3QtPm5leHQoKTsKIAogICAgIGJvb2wgc3dhcE5lZWRlZCA9IGZhbHNlOwotICAgIENTU1ZhbHVl
SUQgaWRlbnQxID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVJRD4ocGFyc2VkVmFsdWUxLT5nZXRJZGVu
dCgpKTsKLSAgICBDU1NWYWx1ZUlEIGlkZW50MiA9IHN0YXRpY19jYXN0PENTU1ZhbHVlSUQ+KHBh
cnNlZFZhbHVlMi0+Z2V0SWRlbnQoKSk7Ci0gICAgQ1NTVmFsdWVJRCBpZGVudDMgPSBzdGF0aWNf
Y2FzdDxDU1NWYWx1ZUlEPih2YWx1ZTMtPmdldElkZW50KCkpOworICAgIENTU1ZhbHVlSUQgaWRl
bnQxID0gcGFyc2VkVmFsdWUxLT5nZXRWYWx1ZUlEKCk7CisgICAgQ1NTVmFsdWVJRCBpZGVudDIg
PSBwYXJzZWRWYWx1ZTItPmdldFZhbHVlSUQoKTsKKyAgICBDU1NWYWx1ZUlEIGlkZW50MyA9IHZh
bHVlMy0+Z2V0VmFsdWVJRCgpOwogCiAgICAgQ1NTVmFsdWVJRCBmaXJzdFBvc2l0aW9uS2V5d29y
ZDsKICAgICBDU1NWYWx1ZUlEIHNlY29uZFBvc2l0aW9uS2V5d29yZDsKQEAgLTQwNzAsOCArNDA3
MCw4IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZTNWYWx1ZXNGaWxsUG9zaXRpb24oQ1NTUGFyc2Vy
VmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0cjxDCiAjaWZuZGVmIE5ERUJVRwogICAgIENTU1By
aW1pdGl2ZVZhbHVlKiBmaXJzdCA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFs
dWUxLmdldCgpKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogc2Vjb25kID0gc3RhdGljX2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZTIuZ2V0KCkpOwotICAgIGlkZW50MSA9IHN0YXRpY19j
YXN0PENTU1ZhbHVlSUQ+KGZpcnN0LT5nZXRQYWlyVmFsdWUoKS0+Zmlyc3QoKS0+Z2V0SWRlbnQo
KSk7Ci0gICAgaWRlbnQyID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVJRD4oc2Vjb25kLT5nZXRQYWly
VmFsdWUoKS0+Zmlyc3QoKS0+Z2V0SWRlbnQoKSk7CisgICAgaWRlbnQxID0gZmlyc3QtPmdldFBh
aXJWYWx1ZSgpLT5maXJzdCgpLT5nZXRWYWx1ZUlEKCk7CisgICAgaWRlbnQyID0gc2Vjb25kLT5n
ZXRQYWlyVmFsdWUoKS0+Zmlyc3QoKS0+Z2V0VmFsdWVJRCgpOwogICAgIEFTU0VSVChpZGVudDEg
PT0gQ1NTVmFsdWVMZWZ0IHx8IGlkZW50MSA9PSBDU1NWYWx1ZVJpZ2h0KTsKICAgICBBU1NFUlQo
aWRlbnQyID09IENTU1ZhbHVlQm90dG9tIHx8IGlkZW50MiA9PSBDU1NWYWx1ZVRvcCk7CiAjZW5k
aWYKQEAgLTQxMzYsNyArNDEzNiw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZUZpbGxQb3NpdGlv
bihDU1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCwgUmVmUHRyPENTU1ZhbHVlCiAgICAgdmFs
dWUyLmNsZWFyKCk7CiAKICAgICAvLyBQZXIgQ1NTMyBzeW50YXgsIDxwb3NpdGlvbj4gY2FuJ3Qg
aGF2ZSAnY2VudGVyJyBhcyBpdHMgc2Vjb25kIGtleXdvcmQgYXMgd2UgaGF2ZSBtb3JlIGFyZ3Vt
ZW50cyB0byBmb2xsb3cuCi0gICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0SWRlbnQoKSA9PSBDU1NW
YWx1ZUNlbnRlcikKKyAgICBpZiAocGFyc2VkVmFsdWUyLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVDZW50ZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChudW1iZXJPZlZhbHVlcyA9PSAz
KQpAQCAtNDIyNyw3ICs0MjI3LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlRmlsbFJlcGVhdChS
ZWZQdHI8Q1NTVmFsdWU+JiB2YWx1ZTEsIFJlZlB0cjxDU1NWYWx1ZT4mIHZhbHUKIAogICAgIC8v
IElmIG9ubHkgb25lIHZhbHVlIHdhcyBzcGVjaWZpZWQsIHZhbHVlMiBpcyB0aGUgc2FtZSBhcyB2
YWx1ZTEuCiAgICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9IHRydWU7Ci0gICAgdmFsdWUyID0gY3Nz
VmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKHN0YXRpY19jYXN0PENTU1ZhbHVlSUQ+
KHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUxLmdldCgpKS0+Z2V0SWRlbnQo
KSkpOworICAgIHZhbHVlMiA9IGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlMS5nZXQoKSktPmdldFZhbHVlSUQo
KSk7CiB9CiAKIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VGaWxsU2l6ZShD
U1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCYgYWxsb3dDb21tYSkKQEAgLTc3ODYsMTAgKzc3ODYs
MTAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlUmFkaWFsR3JhZGllbnQoQ1NTUGFyc2VyVmFsdWVM
aXN0KiB2YWx1ZUxpc3QsIFJlZlB0cjxDU1NWYWwKICAgICBpZiAoc2l6ZVZhbHVlICYmIGhvcml6
b250YWxTaXplKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gQ2lyY2xlcyBtdXN0IGhh
dmUgMCBvciAxIGxlbmd0aHMuCi0gICAgaWYgKHNoYXBlVmFsdWUgJiYgc2hhcGVWYWx1ZS0+Z2V0
SWRlbnQoKSA9PSBDU1NWYWx1ZUNpcmNsZSAmJiB2ZXJ0aWNhbFNpemUpCisgICAgaWYgKHNoYXBl
VmFsdWUgJiYgc2hhcGVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQ2lyY2xlICYmIHZl
cnRpY2FsU2l6ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIC8vIEVsbGlwc2VzIG11c3Qg
aGF2ZSAwIG9yIDIgbGVuZ3RoL3BlcmNlbnRhZ2VzLgotICAgIGlmIChzaGFwZVZhbHVlICYmIHNo
YXBlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVFbGxpcHNlICYmIGhvcml6b250YWxTaXpl
ICYmICF2ZXJ0aWNhbFNpemUpCisgICAgaWYgKHNoYXBlVmFsdWUgJiYgc2hhcGVWYWx1ZS0+Z2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlRWxsaXBzZSAmJiBob3Jpem9udGFsU2l6ZSAmJiAhdmVydGlj
YWxTaXplKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gSWYgdGhlcmUncyBvbmx5IG9u
ZSBzaXplLCBpdCBtdXN0IGJlIGEgbGVuZ3RoLgogICAgIGlmICghdmVydGljYWxTaXplICYmIGhv
cml6b250YWxTaXplICYmIGhvcml6b250YWxTaXplLT5pc1BlcmNlbnRhZ2UoKSkKQEAgLTg0Mjgs
MTcgKzg0MjgsMTcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZVRyYW5z
Zm9ybVZhbHVlKENTU1BhcnNlclZhbHVlICp2YWx1ZSkKICAgICByZXR1cm4gdHJhbnNmb3JtVmFs
dWUucmVsZWFzZSgpOwogfQogCi1ib29sIENTU1BhcnNlcjo6aXNCbGVuZE1vZGUoaW50IGlkZW50
KQorYm9vbCBDU1NQYXJzZXI6OmlzQmxlbmRNb2RlKENTU1ZhbHVlSUQgdmFsdWVJRCkKIHsKLSAg
ICByZXR1cm4gKGlkZW50ID49IENTU1ZhbHVlTXVsdGlwbHkgJiYgaWRlbnQgPD0gQ1NTVmFsdWVM
dW1pbm9zaXR5KQotICAgICAgICB8fCBpZGVudCA9PSBDU1NWYWx1ZU5vcm1hbAotICAgICAgICB8
fCBpZGVudCA9PSBDU1NWYWx1ZU92ZXJsYXk7CisgICAgcmV0dXJuICh2YWx1ZUlEID49IENTU1Zh
bHVlTXVsdGlwbHkgJiYgdmFsdWVJRCA8PSBDU1NWYWx1ZUx1bWlub3NpdHkpCisgICAgICAgIHx8
IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb3JtYWwKKyAgICAgICAgfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZU92ZXJsYXk7CiB9CiAKLWJvb2wgQ1NTUGFyc2VyOjppc0NvbXBvc2l0ZU9wZXJhdG9yKGludCBp
ZGVudCkKK2Jvb2wgQ1NTUGFyc2VyOjppc0NvbXBvc2l0ZU9wZXJhdG9yKENTU1ZhbHVlSUQgdmFs
dWVJRCkKIHsKICAgICAvLyBGSVhNRTogQWRkIENTU1ZhbHVlRGVzdGluYXRpb24gYW5kIENTU1Zh
bHVlTGlnaHRlciB3aGVuIHRoZSBDb21wb3NpdGluZyBzcGVjIHVwZGF0ZXMuCi0gICAgcmV0dXJu
IGlkZW50ID49IENTU1ZhbHVlQ2xlYXIgJiYgaWRlbnQgPD0gQ1NTVmFsdWVYb3I7CisgICAgcmV0
dXJuIHZhbHVlSUQgPj0gQ1NTVmFsdWVDbGVhciAmJiB2YWx1ZUlEIDw9IENTU1ZhbHVlWG9yOwog
fQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDU5
YjBmMDc1NDc3M2NlZTdhMTY4ZTRkNjI4MTgxZDdjMzEyYjAwYmUuLjM1YTk1ZmRkY2YxMzc4YmMx
NTkzYmVlOTk2YWIwYjk4NjU5NWYzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTI2NSw4
ICsyNjUsOCBAQCBwdWJsaWM6CiAjZW5kaWYKICNlbmRpZgogCi0gICAgc3RhdGljIGJvb2wgaXNC
bGVuZE1vZGUoaW50IGlkZW50KTsKLSAgICBzdGF0aWMgYm9vbCBpc0NvbXBvc2l0ZU9wZXJhdG9y
KGludCBpZGVudCk7CisgICAgc3RhdGljIGJvb2wgaXNCbGVuZE1vZGUoQ1NTVmFsdWVJRCk7Cisg
ICAgc3RhdGljIGJvb2wgaXNDb21wb3NpdGVPcGVyYXRvcihDU1NWYWx1ZUlEKTsKIAogICAgIFBh
c3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBwYXJzZVRyYW5zZm9ybSgpOwogICAgIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IHBhcnNlVHJhbnNmb3JtVmFsdWUoQ1NTUGFyc2VyVmFsdWUqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKaW5kZXggMTQ0MTE3ZDEzOTY5ZGJiMDA1MDgxZjk1
YmJhZmIxYTE0ZDA5NmZhYS4uOGVjNmZlOTIyZDBjZmMwNDIwMjQyMjJjOWI4OWQ4ZmM0NzA0ODRi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKQEAgLTcwLDcgKzcwLDcg
QEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyVmFsdWU6OmNyZWF0ZUNTU1ZhbHVlKCkK
ICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKGlkKTsK
ICAgICAKICAgICBpZiAodW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6T3BlcmF0b3IpIHsKLSAgICAg
ICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwcmltaXRpdmVWYWx1ZSA9IENTU1ByaW1pdGl2
ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKGlWYWx1ZSk7CisgICAgICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gcHJpbWl0aXZlVmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlUGFy
c2VyT3BlcmF0b3IoaVZhbHVlKTsKICAgICAgICAgcHJpbWl0aXZlVmFsdWUtPnNldFByaW1pdGl2
ZVR5cGUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QQVJTRVJfT1BFUkFUT1IpOwogICAgICAgICBy
ZXR1cm4gcHJpbWl0aXZlVmFsdWU7CiAgICAgfQpAQCAtODIsNiArODIsOCBAQCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBDU1NQYXJzZXJWYWx1ZTo6Y3JlYXRlQ1NTVmFsdWUoKQogICAgIENTU1ByaW1p
dGl2ZVZhbHVlOjpVbml0VHlwZXMgcHJpbWl0aXZlVW5pdCA9IHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlOjpVbml0VHlwZXM+KHVuaXQpOwogICAgIHN3aXRjaCAocHJpbWl0aXZlVW5pdCkg
ewogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVDoKKyAgICBjYXNlIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfUFJPUEVSVFlfSUQ6CisgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1ZBTFVFX0lEOgogICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZShzdHJpbmcsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEFSU0VSX0lERU5USUZJRVIpOwogICAg
IGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVI6CiAgICAgICAgIHJldHVybiBDU1NQ
cmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGZWYWx1ZSwgaXNJbnQgPyBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1BBUlNFUl9JTlRFR0VSIDogQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKaW5kZXggMmQ0MDI3OTk4MTBlNTk4
ZDI0NDk5MDAyODVkZDhlNWRiYWJjZTI2Yy4uZjM5MDJjN2JlMzRjYTAyNmE4YTQ2YTY4MjcyYWEx
ZTViOGViYjQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCkBA
IC0xMDcsNiArMTA3LDggQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRDU1NVbml0VHlwZUZv
ckRvdWJsZUNvbnZlcnNpb24oQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXQKICAgICBjYXNlIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfRFBDTToKICNlbmRpZgogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19JREVOVDoKKyAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFJPUEVSVFlf
SUQ6CisgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZBTFVFX0lEOgogICAgIGNhc2Ug
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QQUlSOgogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19QQVJTRVJfSEVYQ09MT1I6CiAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BB
UlNFUl9JREVOVElGSUVSOgpAQCAtMTgyLDYgKzE4NCw5IEBAIHN0YXRpYyBDU1NUZXh0Q2FjaGUm
IGNzc1RleHRDYWNoZSgpCiAKIHVuc2lnbmVkIHNob3J0IENTU1ByaW1pdGl2ZVZhbHVlOjpwcmlt
aXRpdmVUeXBlKCkgY29uc3QgCiB7CisgICAgaWYgKG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NT
X1BST1BFUlRZX0lEIHx8IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX1ZBTFVFX0lEKQorICAg
ICAgICByZXR1cm4gQ1NTX0lERU5UOworCiAgICAgaWYgKG1fcHJpbWl0aXZlVW5pdFR5cGUgIT0g
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19DQUxDKQogICAgICAgICByZXR1cm4gbV9wcmltaXRpdmVV
bml0VHlwZTsgCiAgICAgCkBAIC0yMDYsMzAgKzIxMSw1MSBAQCB1bnNpZ25lZCBzaG9ydCBDU1NQ
cmltaXRpdmVWYWx1ZTo6cHJpbWl0aXZlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfVU5LTk9XTjsKIH0KIAotc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWVPclByb3BlcnR5TmFtZShpbnQgdmFsdWVPclByb3BlcnR5SUQpCitzdGF0aWMgY29uc3Qg
QXRvbWljU3RyaW5nJiBwcm9wZXJ0eU5hbWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQogewot
ICAgIEFTU0VSVF9BUkcodmFsdWVPclByb3BlcnR5SUQsIHZhbHVlT3JQcm9wZXJ0eUlEID49IDAp
OwotICAgIEFTU0VSVF9BUkcodmFsdWVPclByb3BlcnR5SUQsIHZhbHVlT3JQcm9wZXJ0eUlEIDwg
bnVtQ1NTVmFsdWVLZXl3b3JkcyB8fCAodmFsdWVPclByb3BlcnR5SUQgPj0gZmlyc3RDU1NQcm9w
ZXJ0eSAmJiB2YWx1ZU9yUHJvcGVydHlJRCA8IGZpcnN0Q1NTUHJvcGVydHkgKyBudW1DU1NQcm9w
ZXJ0aWVzKSk7CisgICAgQVNTRVJUX0FSRyhwcm9wZXJ0eUlELCBwcm9wZXJ0eUlEID49IDApOwor
ICAgIEFTU0VSVF9BUkcocHJvcGVydHlJRCwgKHByb3BlcnR5SUQgPj0gZmlyc3RDU1NQcm9wZXJ0
eSAmJiBwcm9wZXJ0eUlEIDwgZmlyc3RDU1NQcm9wZXJ0eSArIG51bUNTU1Byb3BlcnRpZXMpKTsK
IAotICAgIGlmICh2YWx1ZU9yUHJvcGVydHlJRCA8IDApCisgICAgaWYgKHByb3BlcnR5SUQgPCAw
KQogICAgICAgICByZXR1cm4gbnVsbEF0b207CiAKLSAgICBpZiAodmFsdWVPclByb3BlcnR5SUQg
PCBudW1DU1NWYWx1ZUtleXdvcmRzKSB7Ci0gICAgICAgIHN0YXRpYyBBdG9taWNTdHJpbmcqIGtl
eXdvcmRTdHJpbmdzID0gbmV3IEF0b21pY1N0cmluZ1tudW1DU1NWYWx1ZUtleXdvcmRzXTsgLy8g
TGVha2VkIGludGVudGlvbmFsbHkuCi0gICAgICAgIEF0b21pY1N0cmluZyYga2V5d29yZFN0cmlu
ZyA9IGtleXdvcmRTdHJpbmdzW3ZhbHVlT3JQcm9wZXJ0eUlEXTsKLSAgICAgICAgaWYgKGtleXdv
cmRTdHJpbmcuaXNOdWxsKCkpCi0gICAgICAgICAgICBrZXl3b3JkU3RyaW5nID0gZ2V0VmFsdWVO
YW1lKHZhbHVlT3JQcm9wZXJ0eUlEKTsKLSAgICAgICAgcmV0dXJuIGtleXdvcmRTdHJpbmc7Ci0g
ICAgfQorICAgIHJldHVybiBnZXRQcm9wZXJ0eU5hbWVBdG9taWNTdHJpbmcocHJvcGVydHlJRCk7
Cit9CisKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlTmFtZShDU1NWYWx1ZUlEIHZh
bHVlSUQpCit7CisgICAgQVNTRVJUX0FSRyh2YWx1ZUlELCB2YWx1ZUlEID49IDApOworICAgIEFT
U0VSVF9BUkcodmFsdWVJRCwgdmFsdWVJRCA8IG51bUNTU1ZhbHVlS2V5d29yZHMpOwogCi0gICAg
cmV0dXJuIGdldFByb3BlcnR5TmFtZUF0b21pY1N0cmluZyhzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0
eUlEPih2YWx1ZU9yUHJvcGVydHlJRCkpOworICAgIGlmICh2YWx1ZUlEIDwgMCkKKyAgICAgICAg
cmV0dXJuIG51bGxBdG9tOworCisgICAgc3RhdGljIEF0b21pY1N0cmluZyoga2V5d29yZFN0cmlu
Z3MgPSBuZXcgQXRvbWljU3RyaW5nW251bUNTU1ZhbHVlS2V5d29yZHNdOyAvLyBMZWFrZWQgaW50
ZW50aW9uYWxseS4KKyAgICBBdG9taWNTdHJpbmcmIGtleXdvcmRTdHJpbmcgPSBrZXl3b3JkU3Ry
aW5nc1t2YWx1ZUlEXTsKKyAgICBpZiAoa2V5d29yZFN0cmluZy5pc051bGwoKSkKKyAgICAgICAg
a2V5d29yZFN0cmluZyA9IGdldFZhbHVlTmFtZSh2YWx1ZUlEKTsKKyAgICByZXR1cm4ga2V5d29y
ZFN0cmluZzsKIH0KIAotQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKGludCBp
ZGVudCkKK0NTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDU1NWYWx1ZUlEIHZh
bHVlSUQpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2
ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwotICAgIG1fdmFsdWUuaWRlbnQgPSBpZGVudDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOworICAgIG1fdmFsdWUudmFsdWVJRCA9
IHZhbHVlSUQ7Cit9CisKK0NTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5SUQpCisgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1BST1BFUlRZX0lEOworICAgIG1fdmFsdWUu
cHJvcGVydHlJRCA9IHByb3BlcnR5SUQ7Cit9CisKK0NTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShpbnQgcGFyc2VyT3BlcmF0b3IpCisgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVD
bGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1BBUlNFUl9PUEVSQVRPUjsK
KyAgICBtX3ZhbHVlLnBhcnNlck9wZXJhdG9yID0gcGFyc2VyT3BlcmF0b3I7CiB9CiAKIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShkb3VibGUgbnVtLCBVbml0VHlwZXMgdHlw
ZSkKQEAgLTI2MSwzNiArMjg3LDM2IEBAIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZShjb25zdCBMZW5ndGgmIGxlbmd0aCkKIHsKICAgICBzd2l0Y2ggKGxlbmd0aC50eXBlKCkp
IHsKICAgICAgICAgY2FzZSBBdXRvOgotICAgICAgICAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9
IENTU19JREVOVDsKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Cisg
ICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOworICAgICAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgV2ViQ29yZTo6Rml4ZWQ6CiAgICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1BYOwogICAgICAgICAgICAgbV92YWx1ZS5udW0gPSBsZW5ndGgudmFsdWUoKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEludHJpbnNpYzoKLSAgICAgICAgICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVJbnRyaW5zaWM7CisgICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX1ZBTFVFX0lEOworICAgICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJ
bnRyaW5zaWM7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBNaW5JbnRyaW5zaWM6
Ci0gICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWluSW50cmluc2ljOworICAgICAgICAgICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAgICAgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTWluSW50cmluc2ljOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgTWluQ29udGVudDoKLSAgICAgICAgICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1Nf
SURFTlQ7Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRNaW5Db250
ZW50OworICAgICAgICAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAg
ICAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0TWluQ29udGVudDsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE1heENvbnRlbnQ6Ci0gICAgICAgICAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlV2Via2l0TWF4Q29udGVudDsKKyAgICAgICAgICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfVkFMVUVfSUQ7CisgICAgICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVdlYmtpdE1heENvbnRlbnQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBG
aWxsQXZhaWxhYmxlOgotICAgICAgICAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVO
VDsKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdEZpbGxBdmFpbGFi
bGU7CisgICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOworICAg
ICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRGaWxsQXZhaWxhYmxlOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRml0Q29udGVudDoKLSAgICAgICAgICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVXZWJraXRGaXRDb250ZW50OworICAgICAgICAgICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAgICAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlV2Via2l0Rml0Q29udGVudDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IFBlcmNlbnQ6CiAgICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1BFUkNFTlRB
R0U7CkBAIC00NTQsNiArNDgwLDggQEAgdm9pZCBDU1NQcmltaXRpdmVWYWx1ZTo6Y2xlYW51cCgp
CiAgICAgY2FzZSBDU1NfVU5JQ09ERV9SQU5HRToKICAgICBjYXNlIENTU19QQVJTRVJfT1BFUkFU
T1I6CiAgICAgY2FzZSBDU1NfUEFSU0VSX0lERU5USUZJRVI6CisgICAgY2FzZSBDU1NfUFJPUEVS
VFlfSUQ6CisgICAgY2FzZSBDU1NfVkFMVUVfSUQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gMDsKQEAgLTc2OSw4ICs3OTcsMTAgQEAgU3RyaW5nIENT
U1ByaW1pdGl2ZVZhbHVlOjpnZXRTdHJpbmdWYWx1ZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QK
ICAgICAgICAgY2FzZSBDU1NfVkFSSUFCTEVfTkFNRToKICNlbmRpZgogICAgICAgICAgICAgcmV0
dXJuIG1fdmFsdWUuc3RyaW5nOwotICAgICAgICBjYXNlIENTU19JREVOVDoKLSAgICAgICAgICAg
IHJldHVybiB2YWx1ZU9yUHJvcGVydHlOYW1lKG1fdmFsdWUuaWRlbnQpOworICAgICAgICBjYXNl
IENTU19WQUxVRV9JRDoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZU5hbWUobV92YWx1ZS52YWx1
ZUlEKTsKKyAgICAgICAgY2FzZSBDU1NfUFJPUEVSVFlfSUQ6CisgICAgICAgICAgICByZXR1cm4g
cHJvcGVydHlOYW1lKG1fdmFsdWUucHJvcGVydHlJRCk7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAg
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgICAgIGJyZWFrOwpAQCAt
Nzg5LDggKzgxOSwxMCBAQCBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmdldFN0cmluZ1ZhbHVl
KCkgY29uc3QKICAgICAgICAgY2FzZSBDU1NfVkFSSUFCTEVfTkFNRToKICNlbmRpZgogICAgICAg
ICAgICAgcmV0dXJuIG1fdmFsdWUuc3RyaW5nOwotICAgICAgICBjYXNlIENTU19JREVOVDoKLSAg
ICAgICAgICAgIHJldHVybiB2YWx1ZU9yUHJvcGVydHlOYW1lKG1fdmFsdWUuaWRlbnQpOworICAg
ICAgICBjYXNlIENTU19WQUxVRV9JRDoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZU5hbWUobV92
YWx1ZS52YWx1ZUlEKTsKKyAgICAgICAgY2FzZSBDU1NfUFJPUEVSVFlfSUQ6CisgICAgICAgICAg
ICByZXR1cm4gcHJvcGVydHlOYW1lKG1fdmFsdWUucHJvcGVydHlJRCk7CiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICB9CkBAIC05NzAsOCArMTAwMiwxMSBAQCBTdHJp
bmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmN1c3RvbUNzc1RleHQoKSBjb25zdAogICAgICAgICBjYXNl
IENTU19VUkk6CiAgICAgICAgICAgICB0ZXh0ID0gInVybCgiICsgcXVvdGVDU1NVUkxJZk5lZWRl
ZChtX3ZhbHVlLnN0cmluZykgKyAiKSI7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDU1NfSURFTlQ6Ci0gICAgICAgICAgICB0ZXh0ID0gdmFsdWVPclByb3BlcnR5TmFtZShtX3Zh
bHVlLmlkZW50KTsKKyAgICAgICAgY2FzZSBDU1NfVkFMVUVfSUQ6CisgICAgICAgICAgICB0ZXh0
ID0gdmFsdWVOYW1lKG1fdmFsdWUudmFsdWVJRCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDU1NfUFJPUEVSVFlfSUQ6CisgICAgICAgICAgICB0ZXh0ID0gcHJvcGVydHlOYW1l
KG1fdmFsdWUucHJvcGVydHlJRCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBD
U1NfQVRUUjogewogICAgICAgICAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CkBAIC0xMDY2LDEz
ICsxMTAxLDEzIEBAIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNv
bnN0CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIgcmVjdGFuZ2xl
Iik7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICBpZiAocmVnaW9uLT50b3AoKS0+bV9wcmltaXRpdmVVbml0VHlwZSA9PSBD
U1NfSURFTlQgJiYgcmVnaW9uLT50b3AoKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUludmFsaWQp
IHsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lvbi0+cmlnaHQoKS0+bV9wcmltaXRp
dmVVbml0VHlwZSA9PSBDU1NfSURFTlQpOwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQocmVn
aW9uLT5ib3R0b20oKS0+bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfSURFTlQpOwotICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5sZWZ0KCktPm1fcHJpbWl0aXZlVW5pdFR5cGUg
PT0gQ1NTX0lERU5UKTsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lvbi0+cmlnaHQo
KS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUludmFsaWQpOwotICAgICAgICAgICAgICAgICAgICBB
U1NFUlQocmVnaW9uLT5ib3R0b20oKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUludmFsaWQpOwot
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5sZWZ0KCktPmdldElkZW50KCkgPT0g
Q1NTVmFsdWVJbnZhbGlkKTsKKyAgICAgICAgICAgICAgICBpZiAocmVnaW9uLT50b3AoKS0+bV9w
cmltaXRpdmVVbml0VHlwZSA9PSBDU1NfVkFMVUVfSUQgJiYgcmVnaW9uLT50b3AoKS0+Z2V0VmFs
dWVJRCgpID09IENTU1ZhbHVlSW52YWxpZCkgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
cmVnaW9uLT5yaWdodCgpLT5tX3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19WQUxVRV9JRCk7Cisg
ICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpb24tPmJvdHRvbSgpLT5tX3ByaW1pdGl2ZVVu
aXRUeXBlID09IENTU19WQUxVRV9JRCk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdp
b24tPmxlZnQoKS0+bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfVkFMVUVfSUQpOworICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5yaWdodCgpLT5nZXRWYWx1ZUlEKCkgPT0gQ1NT
VmFsdWVJbnZhbGlkKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lvbi0+Ym90dG9t
KCktPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUludmFsaWQpOworICAgICAgICAgICAgICAgICAg
ICBBU1NFUlQocmVnaW9uLT5sZWZ0KCktPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUludmFsaWQp
OwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyAnKTsKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChyZWdpb24tPnRv
cCgpLT5jc3NUZXh0KCkpOwpAQCAtMTA5MCw3ICsxMTI1LDcgQEAgU3RyaW5nIENTU1ByaW1pdGl2
ZVZhbHVlOjpjdXN0b21Dc3NUZXh0KCkgY29uc3QKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAg
IGNhc2UgQ1NTX1BBUlNFUl9PUEVSQVRPUjogewotICAgICAgICAgICAgY2hhciBjID0gc3RhdGlj
X2Nhc3Q8Y2hhcj4obV92YWx1ZS5pZGVudCk7CisgICAgICAgICAgICBjaGFyIGMgPSBzdGF0aWNf
Y2FzdDxjaGFyPihtX3ZhbHVlLnBhcnNlck9wZXJhdG9yKTsKICAgICAgICAgICAgIHRleHQgPSBT
dHJpbmcoJmMsIDFVKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xMjYxLDgg
KzEyOTYsMTEgQEAgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NTUHJpbWl0aXZlVmFs
dWU6OmNsb25lRm9yQ1NTT00oKSBjb25zdAogI2VuZGlmCiAgICAgICAgIHJlc3VsdCA9IENTU1By
aW1pdGl2ZVZhbHVlOjpjcmVhdGUobV92YWx1ZS5udW0sIHN0YXRpY19jYXN0PFVuaXRUeXBlcz4o
bV9wcmltaXRpdmVVbml0VHlwZSkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU19JREVO
VDoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIo
bV92YWx1ZS5pZGVudCk7CisgICAgY2FzZSBDU1NfUFJPUEVSVFlfSUQ6CisgICAgICAgIHJlc3Vs
dCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKG1fdmFsdWUucHJvcGVydHlJ
RCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTX1ZBTFVFX0lEOgorICAgICAgICByZXN1
bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihtX3ZhbHVlLnZhbHVlSUQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU19SR0JDT0xPUjoKICAgICAgICAgcmVzdWx0
ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUNvbG9yKG1fdmFsdWUucmdiY29sb3IpOwpAQCAt
MTMxOSw4ICsxMzU3LDEwIEBAIGJvb2wgQ1NTUHJpbWl0aXZlVmFsdWU6OmVxdWFscyhjb25zdCBD
U1NQcmltaXRpdmVWYWx1ZSYgb3RoZXIpIGNvbnN0CiAgICAgY2FzZSBDU1NfVk1JTjoKICAgICBj
YXNlIENTU19ESU1FTlNJT046CiAgICAgICAgIHJldHVybiBtX3ZhbHVlLm51bSA9PSBvdGhlci5t
X3ZhbHVlLm51bTsKLSAgICBjYXNlIENTU19JREVOVDoKLSAgICAgICAgcmV0dXJuIHZhbHVlT3JQ
cm9wZXJ0eU5hbWUobV92YWx1ZS5pZGVudCkgPT0gdmFsdWVPclByb3BlcnR5TmFtZShvdGhlci5t
X3ZhbHVlLmlkZW50KTsKKyAgICBjYXNlIENTU19QUk9QRVJUWV9JRDoKKyAgICAgICAgcmV0dXJu
IHByb3BlcnR5TmFtZShtX3ZhbHVlLnByb3BlcnR5SUQpID09IHByb3BlcnR5TmFtZShvdGhlci5t
X3ZhbHVlLnByb3BlcnR5SUQpOworICAgIGNhc2UgQ1NTX1ZBTFVFX0lEOgorICAgICAgICByZXR1
cm4gdmFsdWVOYW1lKG1fdmFsdWUudmFsdWVJRCkgPT0gdmFsdWVOYW1lKG90aGVyLm1fdmFsdWUu
dmFsdWVJRCk7CiAgICAgY2FzZSBDU1NfU1RSSU5HOgogICAgIGNhc2UgQ1NTX1VSSToKICAgICBj
YXNlIENTU19BVFRSOgpAQCAtMTM0OSw3ICsxMzg5LDcgQEAgYm9vbCBDU1NQcmltaXRpdmVWYWx1
ZTo6ZXF1YWxzKGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiBvdGhlcikgY29uc3QKICAgICB9CiAj
ZW5kaWYKICAgICBjYXNlIENTU19QQVJTRVJfT1BFUkFUT1I6Ci0gICAgICAgIHJldHVybiBtX3Zh
bHVlLmlkZW50ID09IG90aGVyLm1fdmFsdWUuaWRlbnQ7CisgICAgICAgIHJldHVybiBtX3ZhbHVl
LnZhbHVlSUQgPT0gb3RoZXIubV92YWx1ZS52YWx1ZUlEOwogICAgIGNhc2UgQ1NTX0NBTEM6CiAg
ICAgICAgIHJldHVybiBtX3ZhbHVlLmNhbGMgJiYgb3RoZXIubV92YWx1ZS5jYWxjICYmIG1fdmFs
dWUuY2FsYy0+ZXF1YWxzKCpvdGhlci5tX3ZhbHVlLmNhbGMpOwogICAgIGNhc2UgQ1NTX1NIQVBF
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAppbmRleCAzNzJjMWIzZjQ2ODA4
MWY1NmM3ZDRlYTgxNDM3NDM3MzcyYjg2NTU5Li4yOGFlNGU4ODIzMDAwMWFmMTU5Y2FiZmRjMjQ4
MzRlYTIwYTc1MDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAt
MjIsNyArMjIsOSBAQAogI2lmbmRlZiBDU1NQcmltaXRpdmVWYWx1ZV9oCiAjZGVmaW5lIENTU1By
aW1pdGl2ZVZhbHVlX2gKIAorI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRl
ICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJD
b2xvci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KQEAgLTEzNCw2ICsxMzYsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19WQVJJQUJM
RVMpCiAgICAgICAgIENTU19WQVJJQUJMRV9OQU1FID0gMTE2LAogI2VuZGlmCisgICAgICAgIENT
U19QUk9QRVJUWV9JRCA9IDExNywKKyAgICAgICAgQ1NTX1ZBTFVFX0lEID0gMTE4CiAgICAgfTsK
IAogICAgIC8vIFRoaXMgZW51bSBmb2xsb3dzIHRoZSBDU1NQYXJzZXI6OlVuaXRzIGVudW0gYXVn
bWVudGVkIHdpdGggVU5JVF9GUkVRVUVOQ1kgZm9yIGZyZXF1ZW5jaWVzLgpAQCAtMTY4LDcgKzE3
Miw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHx8IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NT
X1JFTVMKICAgICAgICAgICAgIHx8IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX0NIUzsKICAg
ICB9Ci0gICAgYm9vbCBpc0lkZW50KCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlw
ZSA9PSBDU1NfSURFTlQ7IH0KICAgICBib29sIGlzTGVuZ3RoKCkgY29uc3QKICAgICB7CiAgICAg
ICAgIHVuc2lnbmVkIHNob3J0IHR5cGUgPSBwcmltaXRpdmVUeXBlKCk7CkBAIC0xOTksOCArMjAy
LDEyIEBAIHB1YmxpYzoKICAgICBib29sIGlzVmFyaWFibGVOYW1lKCkgY29uc3QgeyByZXR1cm4g
cHJpbWl0aXZlVHlwZSgpID09IENTU19WQVJJQUJMRV9OQU1FOyB9CiAjZW5kaWYKICAgICBib29s
IGlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVV
bml0VHlwZSA+PSBDU1NfVlcgJiYgbV9wcmltaXRpdmVVbml0VHlwZSA8PSBDU1NfVk1BWDsgfQor
ICAgIGJvb2wgaXNWYWx1ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSA9
PSBDU1NfVkFMVUVfSUQ7IH0KKyAgICAKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZUlEIHZhbHVlSUQpIHsgcmV0dXJuIGFk
b3B0UmVmKG5ldyBDU1NQcmltaXRpdmVWYWx1ZSh2YWx1ZUlEKSk7IH0KKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllcihDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NQcmltaXRpdmVWYWx1ZShwcm9w
ZXJ0eUlEKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY3Jl
YXRlUGFyc2VyT3BlcmF0b3IoaW50IHBhcnNlck9wZXJhdG9yKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgQ1NTUHJpbWl0aXZlVmFsdWUocGFyc2VyT3BlcmF0b3IpKTsgfQogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXIoaW50IGlkZW50aWZp
ZXIpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NQcmltaXRpdmVWYWx1ZShpZGVudGlmaWVyKSk7
IH0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlQ29sb3Io
dW5zaWduZWQgcmdiVmFsdWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NQcmltaXRpdmVWYWx1
ZShyZ2JWYWx1ZSkpOyB9CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IGNyZWF0ZShkb3VibGUgdmFsdWUsIFVuaXRUeXBlcyB0eXBlKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgQ1NTUHJpbWl0aXZlVmFsdWUodmFsdWUsIHR5cGUpKTsgfQogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgVW5pdFR5
cGVzIHR5cGUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NQcmltaXRpdmVWYWx1ZSh2YWx1ZSwg
dHlwZSkpOyB9CkBAIC0zMDYsNyArMzEzLDggQEAgcHVibGljOgogICAgIAogICAgIENTU0NhbGNW
YWx1ZSogY3NzQ2FsY1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSAh
PSBDU1NfQ0FMQyA/IDAgOiBtX3ZhbHVlLmNhbGM7IH0KIAotICAgIGludCBnZXRJZGVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX0lERU5UID8gbV92YWx1ZS5p
ZGVudCA6IDA7IH0KKyAgICBDU1NQcm9wZXJ0eUlEIGdldFByb3BlcnR5SUQoKSBjb25zdCB7IHJl
dHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19QUk9QRVJUWV9JRCA/IG1fdmFsdWUucHJv
cGVydHlJRCA6IENTU1Byb3BlcnR5SW52YWxpZDsgfQorICAgIENTU1ZhbHVlSUQgZ2V0VmFsdWVJ
RCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX1ZBTFVFX0lEID8g
bV92YWx1ZS52YWx1ZUlEIDogQ1NTVmFsdWVJbnZhbGlkOyB9CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBpbmxpbmUgb3BlcmF0b3IgVCgpIGNvbnN0OyAvLyBEZWZpbmVkIGluIENTU1ByaW1p
dGl2ZVZhbHVlTWFwcGluZ3MuaAogCkBAIC0zMjgsOCArMzM2LDEwIEBAIHB1YmxpYzoKICAgICBi
b29sIGVxdWFscyhjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYpIGNvbnN0OwogCiBwcml2YXRlOgot
ICAgIC8vIEZJWE1FOiBpbnQgdnMuIHVuc2lnbmVkIG92ZXJsb2FkaW5nIGlzIHRvbyBzdWJ0bGUg
dG8gZGlzdGluZ3Vpc2ggdGhlIGNvbG9yIGFuZCBpZGVudGlmaWVyIGNhc2VzLgotICAgIENTU1By
aW1pdGl2ZVZhbHVlKGludCBpZGVudCk7CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTVmFsdWVJ
RCk7CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTUHJvcGVydHlJRCk7CisgICAgLy8gRklYTUU6
IGludCB2cy4gdW5zaWduZWQgb3ZlcmxvYWRpbmcgaXMgdG9vIHN1YnRsZSB0byBkaXN0aW5ndWlz
aCB0aGUgY29sb3IgYW5kIG9wZXJhdG9yIGNhc2VzLgorICAgIENTU1ByaW1pdGl2ZVZhbHVlKGlu
dCBwYXJzZXJPcGVyYXRvcik7CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUodW5zaWduZWQgY29sb3Ip
OyAvLyBSR0IgdmFsdWUKICAgICBDU1NQcmltaXRpdmVWYWx1ZShjb25zdCBMZW5ndGgmKTsKICAg
ICBDU1NQcmltaXRpdmVWYWx1ZShjb25zdCBTdHJpbmcmLCBVbml0VHlwZXMpOwpAQCAtMzY2LDcg
KzM3Niw5IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIGNvbXB1dGVMZW5ndGhEb3VibGUoY29uc3Qg
UmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwg
ZmxvYXQgbXVsdGlwbGllciwgYm9vbCBjb21wdXRpbmdGb250U2l6ZSkgY29uc3Q7CiAKICAgICB1
bmlvbiB7Ci0gICAgICAgIGludCBpZGVudDsKKyAgICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlEOworICAgICAgICBDU1NWYWx1ZUlEIHZhbHVlSUQ7CisgICAgICAgIGludCBwYXJzZXJPcGVy
YXRvcjsKICAgICAgICAgZG91YmxlIG51bTsKICAgICAgICAgU3RyaW5nSW1wbCogc3RyaW5nOwog
ICAgICAgICBDb3VudGVyKiBjb3VudGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggMjg4MmE4M2NiZGI0NmZmMmIzMWMyNDZmZmIyNmNk
M2NkZmQ5NjM4ZS4uYjMzMTUwNGQ3MjAzZTkxMjdiMmRhZDQ4NzIyZTY1N2FhYTEzMTkyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC0x
NDUsMjUgKzE0NSwyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgTGluZUNsYW1wVmFsdWUoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENTU1JlZmxlY3Rpb25EaXJlY3Rpb24gZSkKICAg
ICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAg
ICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFJlZmxlY3Rpb25BYm92ZToKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQWJvdmU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQWJvdmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmVmbGVjdGlvbkJlbG93OgotICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCZWxvdzsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVCZWxvdzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZWZsZWN0aW9u
TGVmdDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJl
ZmxlY3Rpb25SaWdodDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmlnaHQ7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CiAgICAgfQogfQogCiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ1NTUmVmbGVjdGlvbkRp
cmVjdGlvbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dp
dGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQWJvdmU6CiAgICAgICAg
IHJldHVybiBSZWZsZWN0aW9uQWJvdmU7CiAgICAgY2FzZSBDU1NWYWx1ZUJlbG93OgpAQCAtMTcy
LDYgKzE3Miw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBDU1NSZWZsZWN0aW9uRGlyZWN0aW9uKCkgY29uc3QKICAgICAgICAgcmV0dXJuIFJlZmxlY3Rp
b25MZWZ0OwogICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKICAgICAgICAgcmV0dXJuIFJlZmxlY3Rp
b25SaWdodDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE4MSwxMyArMTgzLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDU1NSZWZsZWN0aW9uRGlyZWN0aW9uKCkgY29u
c3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShDb2x1bW5TcGFuIGNvbHVtblNwYW4pCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykK
IHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChjb2x1bW5TcGFuKSB7CiAgICAg
Y2FzZSBDb2x1bW5TcGFuQWxsOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBbGw7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxsOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENvbHVtblNwYW5Ob25lOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVOb25lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KQEAgLTE5OCwxMSArMjAwLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5TcGFuKCkgY29uc3QKICAgICBpZiAo
bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfTlVNQkVSICYmIG1fdmFsdWUubnVtID09IDEpCiAg
ICAgICAgIHJldHVybiBDb2x1bW5TcGFuTm9uZTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVu
dCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUFs
bDoKICAgICAgICAgcmV0dXJuIENvbHVtblNwYW5BbGw7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6
CiAgICAgICAgIHJldHVybiBDb2x1bW5TcGFuTm9uZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIxMywyNCArMjE3
LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1
bW5TcGFuKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShQcmludENvbG9yQWRqdXN0IHZhbHVlKQogICAgIDogQ1NTVmFsdWUoUHJp
bWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAodmFsdWUp
IHsKICAgICBjYXNlIFByaW50Q29sb3JBZGp1c3RFeGFjdDoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlRXhhY3Q7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXhh
Y3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUHJpbnRDb2xvckFkanVzdEVjb25vbXk6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUVjb25vbXk7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlRWNvbm9teTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUHJpbnRDb2xvckFk
anVzdCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlRWNvbm9teToKICAgICAgICAg
cmV0dXJuIFByaW50Q29sb3JBZGp1c3RFY29ub215OwogICAgIGNhc2UgQ1NTVmFsdWVFeGFjdDoK
ICAgICAgICAgcmV0dXJuIFByaW50Q29sb3JBZGp1c3RFeGFjdDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI0MSw1
MSArMjQ3LDUxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBQcmludENvbG9yQWRqdXN0KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQm9yZGVyU3R5bGUgZSkKICAgICA6IENTU1ZhbHVl
KFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7
CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUp
IHsKLSAgICAgICAgY2FzZSBCTk9ORToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZU5vbmU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCSElEREVOOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGlkZGVuOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgSU5TRVQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVJbnNldDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEdST09WRToKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUdyb292ZTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIFJJREdFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlUmlkZ2U7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBPVVRTRVQ6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPdXRzZXQ7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBET1RURUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVEb3R0ZWQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQVNIRUQ6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEYXNoZWQ7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBTT0xJRDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVNvbGlkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRE9VQkxF
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRG91YmxlOwotICAgICAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCTk9ORToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVOb25lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJISURERU46CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGlkZGVuOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IElOU0VUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUluc2V0OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEdST09WRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVHcm9vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUklER0U6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlkZ2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
T1VUU0VUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU91dHNldDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBET1RURUQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlRG90dGVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERBU0hFRDoKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEYXNoZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgU09MSUQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU29saWQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRE9VQkxFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZURvdWJsZTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJvcmRlclN0eWxlKCkgY29uc3QKIHsK
LSAgICBpZiAobV92YWx1ZS5pZGVudCA9PSBDU1NWYWx1ZUF1dG8pIC8vIFZhbGlkIGZvciBDU1Mg
b3V0bGluZS1zdHlsZQorICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvKSAv
LyBWYWxpZCBmb3IgQ1NTIG91dGxpbmUtc3R5bGUKICAgICAgICAgcmV0dXJuIERPVFRFRDsKLSAg
ICByZXR1cm4gKEVCb3JkZXJTdHlsZSkobV92YWx1ZS5pZGVudCAtIENTU1ZhbHVlTm9uZSk7Cisg
ICAgcmV0dXJuIChFQm9yZGVyU3R5bGUpKG1fdmFsdWUudmFsdWVJRCAtIENTU1ZhbHVlTm9uZSk7
CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdXRs
aW5lSXNBdXRvKCkgY29uc3QKIHsKLSAgICBpZiAobV92YWx1ZS5pZGVudCA9PSBDU1NWYWx1ZUF1
dG8pCisgICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIHJl
dHVybiBBVVRPX09OOwogICAgIHJldHVybiBBVVRPX09GRjsKIH0KQEAgLTI5Myw4MiArMjk5LDg0
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdXRsaW5l
SXNBdXRvKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShDb21wb3NpdGVPcGVyYXRvciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAg
ICAgICBjYXNlIENvbXBvc2l0ZUNsZWFyOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQ2xlYXI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVD
b3B5OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29weTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU92ZXI6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTb3VyY2VPdmVyOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlU291cmNlSW46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVTb3VyY2VJbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IENvbXBvc2l0ZVNvdXJjZU91dDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVNvdXJjZU91dDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNv
dXJjZUF0b3A6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTb3VyY2VBdG9w
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRpb25P
dmVyOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGVzdGluYXRpb25PdmVy
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRpb25J
bjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURlc3RpbmF0aW9uSW47Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbk91dDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURlc3RpbmF0aW9uT3V0OwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRpb25BdG9wOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGVzdGluYXRpb25BdG9wOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlWE9SOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlWG9yOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgQ29tcG9zaXRlUGx1c0RhcmtlcjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZVBsdXNEYXJrZXI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb21w
b3NpdGVQbHVzTGlnaHRlcjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVBs
dXNMaWdodGVyOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlRGlm
ZmVyZW5jZToKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVDbGVhcjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDbGVhcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVDb3B5
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvcHk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ29tcG9zaXRlU291cmNlT3ZlcjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTb3VyY2VPdmVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0
ZVNvdXJjZUluOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNvdXJjZUluOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU91dDoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTb3VyY2VPdXQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ29tcG9zaXRlU291cmNlQXRvcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTb3VyY2VBdG9wOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0
aW9uT3ZlcjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZXN0aW5hdGlvbk92
ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRpb25JbjoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZXN0aW5hdGlvbkluOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3V0OgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZURlc3RpbmF0aW9uT3V0OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uQXRvcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVEZXN0aW5hdGlvbkF0b3A7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9z
aXRlWE9SOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVhvcjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVQbHVzRGFya2VyOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVBsdXNEYXJrZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29t
cG9zaXRlUGx1c0xpZ2h0ZXI6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGx1
c0xpZ2h0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9zaXRlRGlmZmVyZW5jZToK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
IAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbXBvc2l0
ZU9wZXJhdG9yKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZUNsZWFyOgotICAgICAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUNsZWFy
OwotICAgICAgICBjYXNlIENTU1ZhbHVlQ29weToKLSAgICAgICAgICAgIHJldHVybiBDb21wb3Np
dGVDb3B5OwotICAgICAgICBjYXNlIENTU1ZhbHVlU291cmNlT3ZlcjoKLSAgICAgICAgICAgIHJl
dHVybiBDb21wb3NpdGVTb3VyY2VPdmVyOwotICAgICAgICBjYXNlIENTU1ZhbHVlU291cmNlSW46
Ci0gICAgICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlSW47Ci0gICAgICAgIGNhc2UgQ1NT
VmFsdWVTb3VyY2VPdXQ6Ci0gICAgICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlT3V0Owot
ICAgICAgICBjYXNlIENTU1ZhbHVlU291cmNlQXRvcDoKLSAgICAgICAgICAgIHJldHVybiBDb21w
b3NpdGVTb3VyY2VBdG9wOwotICAgICAgICBjYXNlIENTU1ZhbHVlRGVzdGluYXRpb25PdmVyOgot
ICAgICAgICAgICAgcmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0aW9uT3ZlcjsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZURlc3RpbmF0aW9uSW46Ci0gICAgICAgICAgICByZXR1cm4gQ29tcG9zaXRlRGVz
dGluYXRpb25JbjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZURlc3RpbmF0aW9uT3V0OgotICAgICAg
ICAgICAgcmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0aW9uT3V0OwotICAgICAgICBjYXNlIENTU1Zh
bHVlRGVzdGluYXRpb25BdG9wOgotICAgICAgICAgICAgcmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0
aW9uQXRvcDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVhvcjoKLSAgICAgICAgICAgIHJldHVybiBD
b21wb3NpdGVYT1I7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVQbHVzRGFya2VyOgotICAgICAgICAg
ICAgcmV0dXJuIENvbXBvc2l0ZVBsdXNEYXJrZXI7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVQbHVz
TGlnaHRlcjoKLSAgICAgICAgICAgIHJldHVybiBDb21wb3NpdGVQbHVzTGlnaHRlcjsKKyAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVDbGVhcjoKKyAgICAg
ICAgcmV0dXJuIENvbXBvc2l0ZUNsZWFyOworICAgIGNhc2UgQ1NTVmFsdWVDb3B5OgorICAgICAg
ICByZXR1cm4gQ29tcG9zaXRlQ29weTsKKyAgICBjYXNlIENTU1ZhbHVlU291cmNlT3ZlcjoKKyAg
ICAgICAgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZU92ZXI7CisgICAgY2FzZSBDU1NWYWx1ZVNvdXJj
ZUluOgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlSW47CisgICAgY2FzZSBDU1NWYWx1
ZVNvdXJjZU91dDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZU91dDsKKyAgICBjYXNl
IENTU1ZhbHVlU291cmNlQXRvcDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZUF0b3A7
CisgICAgY2FzZSBDU1NWYWx1ZURlc3RpbmF0aW9uT3ZlcjoKKyAgICAgICAgcmV0dXJuIENvbXBv
c2l0ZURlc3RpbmF0aW9uT3ZlcjsKKyAgICBjYXNlIENTU1ZhbHVlRGVzdGluYXRpb25JbjoKKyAg
ICAgICAgcmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0aW9uSW47CisgICAgY2FzZSBDU1NWYWx1ZURl
c3RpbmF0aW9uT3V0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRGVzdGluYXRpb25PdXQ7Cisg
ICAgY2FzZSBDU1NWYWx1ZURlc3RpbmF0aW9uQXRvcDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0
ZURlc3RpbmF0aW9uQXRvcDsKKyAgICBjYXNlIENTU1ZhbHVlWG9yOgorICAgICAgICByZXR1cm4g
Q29tcG9zaXRlWE9SOworICAgIGNhc2UgQ1NTVmFsdWVQbHVzRGFya2VyOgorICAgICAgICByZXR1
cm4gQ29tcG9zaXRlUGx1c0RhcmtlcjsKKyAgICBjYXNlIENTU1ZhbHVlUGx1c0xpZ2h0ZXI6Cisg
ICAgICAgIHJldHVybiBDb21wb3NpdGVQbHVzTGlnaHRlcjsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM3OCwyMjMg
KzM4NiwyMjQgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IENvbXBvc2l0ZU9wZXJhdG9yKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb250cm9sUGFydCBlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkg
ewotICAgICAgICBjYXNlIE5vQ29udHJvbFBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVOb25lOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ2hlY2ti
b3hQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2hlY2tib3g7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSYWRpb1BhcnQ6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSYWRpbzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIFB1c2hCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlUHVzaEJ1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNxdWFyZUJ1
dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcXVhcmVCdXR0
b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCdXR0b25QYXJ0OgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQnV0dG9uQmV2ZWxQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQnV0dG9uQmV2ZWw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBEZWZhdWx0QnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZURlZmF1bHRCdXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBJbm5lclNw
aW5CdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSW5uZXJT
cGluQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTGlzdGJveFBhcnQ6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMaXN0Ym94OwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTGlzdEl0ZW1QYXJ0OgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlTGlzdGl0ZW07Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRvbjsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhRXhpdEZ1bGxzY3JlZW5CdXR0b25QYXJ0OgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRv
bjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhUGxheUJ1dHRvblBhcnQ6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVBsYXlCdXR0b247Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uUGFy
dDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhT3ZlcmxheVBsYXlC
dXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYU11dGVCdXR0b25Q
YXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFNdXRlQnV0dG9u
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFTZWVrQmFja0J1dHRvblBh
cnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVNlZWtCYWNrQnV0
dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFTZWVrRm9yd2FyZEJ1
dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVNlZWtG
b3J3YXJkQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFSZXdp
bmRCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFS
ZXdpbmRCdXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYVJldHVy
blRvUmVhbHRpbWVCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvblBhcnQ6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFTbGlkZXJQYXJ0OgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFTbGlkZXI7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYVNsaWRlclRodW1iUGFydDoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhU2xpZGVydGh1bWI7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lclBhcnQ6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
cjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFy
dDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVy
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJNdXRl
QnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhVm9s
dW1lU2xpZGVyTXV0ZUJ1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1l
ZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXJ0aHVtYjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZU1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgTWVkaWFDb250cm9sc0Z1bGxzY3JlZW5CYWNrZ3JvdW5kUGFydDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhQ29udHJvbHNGdWxsc2Ny
ZWVuQmFja2dyb3VuZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhRnVs
bFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVNZWRpYUZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXI7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJUaHVtYlBhcnQ6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYUZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJU
aHVtYjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhQ3VycmVudFRpbWVQ
YXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFDdXJyZW50VGlt
ZURpc3BsYXk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYVRpbWVSZW1h
aW5pbmdQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFUaW1l
UmVtYWluaW5nRGlzcGxheTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lbnVs
aXN0UGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lbnVsaXN0Owot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVudWxpc3RCdXR0b25QYXJ0OgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVudWxpc3RCdXR0b247Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZW51bGlzdFRleHRQYXJ0OgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVudWxpc3RUZXh0OwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgTWVudWxpc3RUZXh0RmllbGRQYXJ0OgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlTWVudWxpc3RUZXh0ZmllbGQ7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBNZXRlclBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVNZXRlcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJlbGV2YW5jeUxl
dmVsSW5kaWNhdG9yUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJl
bGV2YW5jeUxldmVsSW5kaWNhdG9yOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Q29udGludW91c0NhcGFjaXR5TGV2ZWxJbmRpY2F0b3JQYXJ0OgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQ29udGludW91c0NhcGFjaXR5TGV2ZWxJbmRpY2F0b3I7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEaXNjcmV0ZUNhcGFjaXR5TGV2ZWxJbmRpY2F0
b3JQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGlzY3JldGVDYXBh
Y2l0eUxldmVsSW5kaWNhdG9yOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmF0
aW5nTGV2ZWxJbmRpY2F0b3JQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlUmF0aW5nTGV2ZWxJbmRpY2F0b3I7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBQcm9ncmVzc0JhclBhcnQ6CisgICAgY2FzZSBOb0NvbnRyb2xQYXJ0OgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2hl
Y2tib3hQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNoZWNrYm94Owor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVSYWRpbzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQdXNoQnV0dG9u
UGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQdXNoQnV0dG9uOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNxdWFyZUJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlQnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQnV0dG9uOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEJ1dHRvbkJldmVsUGFydDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVCdXR0b25CZXZlbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBEZWZhdWx0QnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVE
ZWZhdWx0QnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElubmVyU3BpbkJ1dHRvblBh
cnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5uZXJTcGluQnV0dG9uOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIExpc3Rib3hQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUxpc3Rib3g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGlzdEl0
ZW1QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxpc3RpdGVtOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uUGFydDoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRv
bjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYUV4aXRGdWxsc2NyZWVuQnV0dG9uUGFy
dDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUV4aXRGdWxsc2NyZWVu
QnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhUGxheUJ1dHRvblBhcnQ6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFQbGF5QnV0dG9uOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE1lZGlhT3ZlcmxheVBsYXlCdXR0b25QYXJ0OgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhT3ZlcmxheVBsYXlCdXR0b247CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTWVkaWFNdXRlQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYU11dGVCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTWVkaWFTZWVrQmFja0J1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTWVkaWFTZWVrQmFja0J1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRp
YVNlZWtGb3J3YXJkQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVNZWRpYVNlZWtGb3J3YXJkQnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlh
UmV3aW5kQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRp
YVJld2luZEJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVJldHVyblRvUmVh
bHRpbWVCdXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlh
UmV0dXJuVG9SZWFsdGltZUJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIE1lZGlhU2xpZGVyUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVNZWRpYVNsaWRlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVNsaWRlclRo
dW1iUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVNsaWRlcnRo
dW1iOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVy
UGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRl
ckNvbnRhaW5lcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBh
cnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXI7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJNdXRlQnV0dG9uUGFy
dDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlck11
dGVCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVt
YlBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlk
ZXJ0aHVtYjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYUNvbnRyb2xzQmFja2dyb3Vu
ZFBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFDb250cm9sc0Jh
Y2tncm91bmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFDb250cm9sc0Z1bGxzY3Jl
ZW5CYWNrZ3JvdW5kUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRp
YUNvbnRyb2xzRnVsbHNjcmVlbkJhY2tncm91bmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
TWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNZWRpYUZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhRnVsbHNjcmVlblZvbHVtZVNsaWRlclRodW1i
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhQ3VycmVudFRpbWVQYXJ0OgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhQ3VycmVudFRpbWVEaXNwbGF5OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhVGltZVJlbWFpbmluZ1BhcnQ6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFUaW1lUmVtYWluaW5nRGlzcGxheTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBNZW51bGlzdFBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTWVudWxpc3Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVudWxpc3RC
dXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lbnVsaXN0QnV0
dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lbnVsaXN0VGV4dFBhcnQ6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVudWxpc3RUZXh0OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIE1lbnVsaXN0VGV4dEZpZWxkUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNZW51bGlzdFRleHRmaWVsZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBN
ZXRlclBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWV0ZXI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUmVsZXZhbmN5TGV2ZWxJbmRpY2F0b3JQYXJ0OgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlbGV2YW5jeUxldmVsSW5kaWNhdG9yOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENvbnRpbnVvdXNDYXBhY2l0eUxldmVsSW5kaWNhdG9yUGFy
dDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250aW51b3VzQ2FwYWNpdHlM
ZXZlbEluZGljYXRvcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXNjcmV0ZUNhcGFjaXR5
TGV2ZWxJbmRpY2F0b3JQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURp
c2NyZXRlQ2FwYWNpdHlMZXZlbEluZGljYXRvcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBS
YXRpbmdMZXZlbEluZGljYXRvclBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlUmF0aW5nTGV2ZWxJbmRpY2F0b3I7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHJvZ3Jl
c3NCYXJQYXJ0OgogI2lmIEVOQUJMRShQUk9HUkVTU19FTEVNRU5UKQotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlUHJvZ3Jlc3NCYXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlUHJvZ3Jlc3NCYXI7CiAjZW5kaWYKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFByb2dyZXNzQmFyVmFsdWVQYXJ0OgorICAgICAgICBicmVhazsKKyAgICBjYXNl
IFByb2dyZXNzQmFyVmFsdWVQYXJ0OgogI2lmIEVOQUJMRShQUk9HUkVTU19FTEVNRU5UKQotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUHJvZ3Jlc3NCYXJWYWx1ZTsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQcm9ncmVzc0JhclZhbHVlOwogI2VuZGlmCi0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTbGlkZXJIb3Jpem9udGFsUGFydDoKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNsaWRlckhvcml6b250YWw7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTbGlkZXJWZXJ0aWNhbFBhcnQ6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTbGlkZXJWZXJ0aWNhbDsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTbGlkZXJ0aHVtYkhvcml6b250YWw7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydDoKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNsaWRlcnRodW1iVmVydGljYWw7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDYXJldFBhcnQ6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDYXJldDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIFNlYXJjaEZpZWxkUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZVNlYXJjaGZpZWxkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2VhcmNo
RmllbGREZWNvcmF0aW9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVNlYXJjaGZpZWxkRGVjb3JhdGlvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlU2VhcmNoZmllbGRSZXN1bHRzRGVjb3JhdGlvbjsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblBhcnQ6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTZWFyY2hmaWVsZFJlc3VsdHNCdXR0b247
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
blBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTZWFyY2hmaWVsZENh
bmNlbEJ1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNuYXBzaG90dGVk
UGx1Z2luT3ZlcmxheVBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVT
bmFwc2hvdHRlZFBsdWdpbk92ZXJsYXk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBUZXh0RmllbGRQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4
dGZpZWxkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFQYXJ0Ogot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4dGFyZWE7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBDYXBzTG9ja0luZGljYXRvclBhcnQ6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDYXBzTG9ja0luZGljYXRvcjsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIElucHV0U3BlZWNoQnV0dG9uUGFydDoKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBTbGlkZXJIb3Jpem9udGFsUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVTbGlkZXJIb3Jpem9udGFsOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFNsaWRlclZlcnRpY2FsUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
bGlkZXJWZXJ0aWNhbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTbGlkZXJUaHVtYkhvcml6
b250YWxQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNsaWRlcnRodW1i
SG9yaXpvbnRhbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTbGlkZXJUaHVtYlZlcnRpY2Fs
UGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbGlkZXJ0aHVtYlZlcnRp
Y2FsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcmV0UGFydDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVDYXJldDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZWFy
Y2hGaWVsZFBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VhcmNoZmll
bGQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VhcmNoRmllbGREZWNvcmF0aW9uUGFydDoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZWFyY2hmaWVsZERlY29yYXRpb247
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvblBh
cnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VhcmNoZmllbGRSZXN1bHRz
RGVjb3JhdGlvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNlYXJjaGZpZWxk
UmVzdWx0c0J1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZWFyY2hGaWVsZENhbmNl
bEJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VhcmNoZmll
bGRDYW5jZWxCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU25hcHNob3R0ZWRQbHVn
aW5PdmVybGF5UGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbmFwc2hv
dHRlZFBsdWdpbk92ZXJsYXk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVGV4dEZpZWxkUGFy
dDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0ZmllbGQ7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVGV4dEFyZWFQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVRleHRhcmVhOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHNMb2NrSW5k
aWNhdG9yUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDYXBzTG9ja0lu
ZGljYXRvcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnB1dFNwZWVjaEJ1dHRvblBhcnQ6
CiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZVdlYmtpdElucHV0U3BlZWNoQnV0dG9uOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVdlYmtpdElucHV0U3BlZWNoQnV0dG9uOwogI2VuZGlmCi0gICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29udHJvbFBhcnQoKSBjb25zdAogewotICAgIGlmICht
X3ZhbHVlLmlkZW50ID09IENTU1ZhbHVlTm9uZSkKKyAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09
IENTU1ZhbHVlTm9uZSkKICAgICAgICAgcmV0dXJuIE5vQ29udHJvbFBhcnQ7Ci0gICAgZWxzZQot
ICAgICAgICByZXR1cm4gQ29udHJvbFBhcnQobV92YWx1ZS5pZGVudCAtIENTU1ZhbHVlQ2hlY2ti
b3ggKyAxKTsKKyAgICByZXR1cm4gQ29udHJvbFBhcnQobV92YWx1ZS52YWx1ZUlEIC0gQ1NTVmFs
dWVDaGVja2JveCArIDEpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJhY2tmYWNlVmlzaWJpbGl0eSBlKQogICAgIDogQ1NTVmFs
dWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVO
VDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAo
ZSkgewogICAgIGNhc2UgQmFja2ZhY2VWaXNpYmlsaXR5VmlzaWJsZToKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlVmlzaWJsZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVWaXNpYmxlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJhY2tmYWNlVmlzaWJpbGl0
eUhpZGRlbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGlkZGVuOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpZGRlbjsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJh
Y2tmYWNlVmlzaWJpbGl0eSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7
CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlVmlzaWJs
ZToKICAgICAgICAgcmV0dXJuIEJhY2tmYWNlVmlzaWJpbGl0eVZpc2libGU7CiAgICAgY2FzZSBD
U1NWYWx1ZUhpZGRlbjoKICAgICAgICAgcmV0dXJuIEJhY2tmYWNlVmlzaWJpbGl0eUhpZGRlbjsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTYwNSwyOSArNjE0LDMxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFQmFja2ZhY2VWaXNpYmlsaXR5KCkgY29uc3QKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFRmlsbEF0dGFj
aG1lbnQgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0
aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19W
QUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBTY3JvbGxCYWNrZ3JvdW5k
QXR0YWNobWVudDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNjcm9sbDsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvY2FsQmFja2dyb3VuZEF0dGFjaG1l
bnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb2NhbDsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIEZpeGVkQmFja2dyb3VuZEF0dGFjaG1lbnQ6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGaXhlZDsKLSAgICAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgU2Nyb2xsQmFja2dyb3VuZEF0dGFjaG1lbnQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU2Nyb2xsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvY2Fs
QmFja2dyb3VuZEF0dGFjaG1lbnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TG9jYWw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRml4ZWRCYWNrZ3JvdW5kQXR0YWNobWVu
dDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGaXhlZDsKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRUZpbGxBdHRhY2htZW50KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRl
bnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVNjcm9sbDoKLSAgICAgICAgICAgIHJldHVybiBT
Y3JvbGxCYWNrZ3JvdW5kQXR0YWNobWVudDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUxvY2FsOgot
ICAgICAgICAgICAgcmV0dXJuIExvY2FsQmFja2dyb3VuZEF0dGFjaG1lbnQ7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVGaXhlZDoKLSAgICAgICAgICAgIHJldHVybiBGaXhlZEJhY2tncm91bmRBdHRh
Y2htZW50OworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1
ZVNjcm9sbDoKKyAgICAgICAgcmV0dXJuIFNjcm9sbEJhY2tncm91bmRBdHRhY2htZW50OworICAg
IGNhc2UgQ1NTVmFsdWVMb2NhbDoKKyAgICAgICAgcmV0dXJuIExvY2FsQmFja2dyb3VuZEF0dGFj
aG1lbnQ7CisgICAgY2FzZSBDU1NWYWx1ZUZpeGVkOgorICAgICAgICByZXR1cm4gRml4ZWRCYWNr
Z3JvdW5kQXR0YWNobWVudDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTYzNywzOCArNjQ4LDQwIEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmlsbEF0dGFjaG1lbnQoKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEVGaWxsQm94IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgQm9yZGVyRmls
bEJveDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJvcmRlckJveDsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBhZGRpbmdGaWxsQm94OgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUGFkZGluZ0JveDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIENvbnRlbnRGaWxsQm94OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQ29udGVudEJveDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IFRleHRGaWxsQm94OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4dDsK
LSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQm9yZGVyRmlsbEJveDoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXJCb3g7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUGFkZGluZ0ZpbGxCb3g6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGFk
ZGluZ0JveDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZW50RmlsbEJveDoKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250ZW50Qm94OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFRleHRGaWxsQm94OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVRleHQ7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGaWxsQm94KCkgY29uc3QKIHsKLSAgICBzd2l0Y2gg
KG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJvcmRlcjoKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUJvcmRlckJveDoKLSAgICAgICAgICAgIHJldHVybiBCb3JkZXJGaWxsQm94
OwotICAgICAgICBjYXNlIENTU1ZhbHVlUGFkZGluZzoKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVBh
ZGRpbmdCb3g6Ci0gICAgICAgICAgICByZXR1cm4gUGFkZGluZ0ZpbGxCb3g7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVDb250ZW50OgotICAgICAgICBjYXNlIENTU1ZhbHVlQ29udGVudEJveDoKLSAg
ICAgICAgICAgIHJldHVybiBDb250ZW50RmlsbEJveDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVRl
eHQ6Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRUZXh0OgotICAgICAgICAgICAgcmV0dXJu
IFRleHRGaWxsQm94OworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBD
U1NWYWx1ZUJvcmRlcjoKKyAgICBjYXNlIENTU1ZhbHVlQm9yZGVyQm94OgorICAgICAgICByZXR1
cm4gQm9yZGVyRmlsbEJveDsKKyAgICBjYXNlIENTU1ZhbHVlUGFkZGluZzoKKyAgICBjYXNlIENT
U1ZhbHVlUGFkZGluZ0JveDoKKyAgICAgICAgcmV0dXJuIFBhZGRpbmdGaWxsQm94OworICAgIGNh
c2UgQ1NTVmFsdWVDb250ZW50OgorICAgIGNhc2UgQ1NTVmFsdWVDb250ZW50Qm94OgorICAgICAg
ICByZXR1cm4gQ29udGVudEZpbGxCb3g7CisgICAgY2FzZSBDU1NWYWx1ZVRleHQ6CisgICAgY2Fz
ZSBDU1NWYWx1ZVdlYmtpdFRleHQ6CisgICAgICAgIHJldHVybiBUZXh0RmlsbEJveDsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTY3OCwzNCArNjkxLDM2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBFRmlsbEJveCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUZpbGxSZXBlYXQgZSkKICAgICA6IENTU1Zh
bHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURF
TlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2gg
KGUpIHsKLSAgICAgICAgY2FzZSBSZXBlYXRGaWxsOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlUmVwZWF0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTm9S
ZXBlYXRGaWxsOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9SZXBlYXQ7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSb3VuZEZpbGw6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSb3VuZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFNwYWNlRmlsbDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVNwYWNlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZXBlYXRGaWxsOgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlcGVhdDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBOb1JlcGVhdEZpbGw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9S
ZXBlYXQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUm91bmRGaWxsOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJvdW5kOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNw
YWNlRmlsbDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcGFjZTsKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRUZpbGxSZXBlYXQoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5p
ZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlUmVwZWF0OgotICAgICAgICAgICAgcmV0dXJu
IFJlcGVhdEZpbGw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb1JlcGVhdDoKLSAgICAgICAgICAg
IHJldHVybiBOb1JlcGVhdEZpbGw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVSb3VuZDoKLSAgICAg
ICAgICAgIHJldHVybiBSb3VuZEZpbGw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTcGFjZToKLSAg
ICAgICAgICAgIHJldHVybiBTcGFjZUZpbGw7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQp
IHsKKyAgICBjYXNlIENTU1ZhbHVlUmVwZWF0OgorICAgICAgICByZXR1cm4gUmVwZWF0RmlsbDsK
KyAgICBjYXNlIENTU1ZhbHVlTm9SZXBlYXQ6CisgICAgICAgIHJldHVybiBOb1JlcGVhdEZpbGw7
CisgICAgY2FzZSBDU1NWYWx1ZVJvdW5kOgorICAgICAgICByZXR1cm4gUm91bmRGaWxsOworICAg
IGNhc2UgQ1NTVmFsdWVTcGFjZToKKyAgICAgICAgcmV0dXJuIFNwYWNlRmlsbDsKKyAgICBkZWZh
dWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
QEAgLTcxNSwyNiArNzMwLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBFRmlsbFJlcGVhdCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJveFBhY2sgZSkKICAgICA6IENTU1ZhbHVl
KFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7
CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUp
IHsKICAgICBjYXNlIFN0YXJ0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTdGFy
dDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGFydDsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDZW50ZXI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNl
bnRlcjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50ZXI7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRW5kOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVF
bmQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEp1c3RpZnk6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUp1
c3RpZnk7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSnVzdGlmeTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRUJveFBhY2soKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVu
dCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVN0
YXJ0OgogICAgICAgICByZXR1cm4gU3RhcnQ7CiAgICAgY2FzZSBDU1NWYWx1ZUVuZDoKQEAgLTc0
Myw2ICs3NTgsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRUJveFBhY2soKSBjb25zdAogICAgICAgICByZXR1cm4gQ2VudGVyOwogICAgIGNhc2UgQ1NT
VmFsdWVKdXN0aWZ5OgogICAgICAgICByZXR1cm4gSnVzdGlmeTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTc1Miwz
OSArNzY5LDQxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFQm94UGFjaygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoRUJveEFsaWdubWVudCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAg
ICAgICBjYXNlIEJTVFJFVENIOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
U3RyZXRjaDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEJTVEFSVDoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXJ0OwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQkNFTlRFUjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUNlbnRlcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEJFTkQ6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFbmQ7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBCQkFTRUxJTkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVCYXNlbGluZTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQlNUUkVUQ0g6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RyZXRjaDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBCU1RBUlQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3Rh
cnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQkNFTlRFUjoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQkVORDoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQkJBU0VMSU5FOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJh
c2VsaW5lOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94QWxpZ25tZW50KCkgY29uc3QKIHsKLSAgICBz
d2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVN0cmV0Y2g6Ci0g
ICAgICAgICAgICByZXR1cm4gQlNUUkVUQ0g7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTdGFydDoK
LSAgICAgICAgICAgIHJldHVybiBCU1RBUlQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVFbmQ6Ci0g
ICAgICAgICAgICByZXR1cm4gQkVORDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUNlbnRlcjoKLSAg
ICAgICAgICAgIHJldHVybiBCQ0VOVEVSOwotICAgICAgICBjYXNlIENTU1ZhbHVlQmFzZWxpbmU6
Ci0gICAgICAgICAgICByZXR1cm4gQkJBU0VMSU5FOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1
ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVN0cmV0Y2g6CisgICAgICAgIHJldHVybiBCU1RSRVRD
SDsKKyAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CisgICAgICAgIHJldHVybiBCU1RBUlQ7CisgICAg
Y2FzZSBDU1NWYWx1ZUVuZDoKKyAgICAgICAgcmV0dXJuIEJFTkQ7CisgICAgY2FzZSBDU1NWYWx1
ZUNlbnRlcjoKKyAgICAgICAgcmV0dXJuIEJDRU5URVI7CisgICAgY2FzZSBDU1NWYWx1ZUJhc2Vs
aW5lOgorICAgICAgICByZXR1cm4gQkJBU0VMSU5FOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNzk1LDI0ICs4MTQs
MjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hB
bGlnbm1lbnQoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKEVCb3hEZWNvcmF0aW9uQnJlYWsgZSkKICAgICA6IENTU1ZhbHVlKFBy
aW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Cisg
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIERTTElDRToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2xpY2U7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2xpY2U7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgRENMT05FOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDbG9u
ZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDbG9uZTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRUJveERlY29yYXRpb25CcmVhaygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1Zh
bHVlU2xpY2U6CiAgICAgICAgIHJldHVybiBEU0xJQ0U7CiAgICAgY2FzZSBDU1NWYWx1ZUNsb25l
OgogICAgICAgICByZXR1cm4gRENMT05FOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwog
ICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODIzLDI2ICs4NDQsMjYgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hEZWNvcmF0
aW9uQnJlYWsoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKEJhY2tncm91bmRFZGdlT3JpZ2luIGUpCiAgICAgOiBDU1NWYWx1ZShQ
cmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwor
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7
CiAgICAgY2FzZSBUb3BFZGdlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUb3A7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVG9wOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFJpZ2h0RWRnZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmln
aHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQm90dG9tRWRnZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlQm90dG9tOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvdHRvbTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBMZWZ0RWRnZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0Owog
ICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBCYWNrZ3JvdW5kRWRnZU9yaWdpbigpIGNvbnN0CiB7Ci0gICAgc3dp
dGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAg
ICBjYXNlIENTU1ZhbHVlVG9wOgogICAgICAgICByZXR1cm4gVG9wRWRnZTsKICAgICBjYXNlIENT
U1ZhbHVlUmlnaHQ6CkBAIC04NTEsNiArODcyLDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJhY2tncm91bmRFZGdlT3JpZ2luKCkgY29uc3QKICAgICAg
ICAgcmV0dXJuIEJvdHRvbUVkZ2U7CiAgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6CiAgICAgICAgIHJl
dHVybiBMZWZ0RWRnZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTg2MCwyNCArODgzLDI2IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCYWNrZ3JvdW5kRWRnZU9yaWdpbigp
IGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoRUJveFNpemluZyBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQk9SREVSX0JP
WDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQm9yZGVyQm94OworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvcmRlckJveDsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDT05URU5UX0JPWDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29udGVu
dEJveDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250ZW50Qm94OwogICAg
ICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBFQm94U2l6aW5nKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
aWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFs
dWVCb3JkZXJCb3g6CiAgICAgICAgIHJldHVybiBCT1JERVJfQk9YOwogICAgIGNhc2UgQ1NTVmFs
dWVDb250ZW50Qm94OgogICAgICAgICByZXR1cm4gQ09OVEVOVF9CT1g7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04
ODcsMjQgKzkxMiwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRUJveFNpemluZygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJveERpcmVjdGlvbiBlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkg
ewotICAgICAgICBjYXNlIEJOT1JNQUw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVOb3JtYWw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCUkVWRVJTRToK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJldmVyc2U7Ci0gICAgICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJOT1JNQUw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTm9ybWFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJSRVZFUlNFOgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJldmVyc2U7CisgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVC
b3hEaXJlY3Rpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAg
ICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgotICAgICAgICAgICAgcmV0dXJuIEJOT1JNQUw7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVSZXZlcnNlOgotICAgICAgICAgICAgcmV0dXJuIEJSRVZFUlNF
OworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZU5vcm1h
bDoKKyAgICAgICAgcmV0dXJuIEJOT1JNQUw7CisgICAgY2FzZSBDU1NWYWx1ZVJldmVyc2U6Cisg
ICAgICAgIHJldHVybiBCUkVWRVJTRTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAg
ICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTkxNCwyNCArOTQxLDI2IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94RGlyZWN0aW9u
KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShFQm94TGluZXMgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBTSU5H
TEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTaW5nbGU7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNVUxUSVBMRToKLSAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZU11bHRpcGxlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBT
SU5HTEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2luZ2xlOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE1VTFRJUExFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU11bHRpcGxlOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94TGluZXMoKSBjb25zdAogewot
ICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlU2luZ2xl
OgotICAgICAgICAgICAgcmV0dXJuIFNJTkdMRTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU11bHRp
cGxlOgotICAgICAgICAgICAgcmV0dXJuIE1VTFRJUExFOworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVNpbmdsZToKKyAgICAgICAgcmV0dXJuIFNJTkdM
RTsKKyAgICBjYXNlIENTU1ZhbHVlTXVsdGlwbGU6CisgICAgICAgIHJldHVybiBNVUxUSVBMRTsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTk0MSwyNiArOTcwLDI4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94TGluZXMoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCb3hPcmllbnQgZSkKICAgICA6
IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBD
U1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBz
d2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBIT1JJWk9OVEFMOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlSG9yaXpvbnRhbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIFZFUlRJQ0FMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmVy
dGljYWw7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIEhPUklaT05UQUw6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSG9yaXpvbnRhbDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBWRVJUSUNBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0
aWNhbDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveE9yaWVudCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNo
IChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVIb3Jpem9udGFsOgotICAg
ICAgICBjYXNlIENTU1ZhbHVlSW5saW5lQXhpczoKLSAgICAgICAgICAgIHJldHVybiBIT1JJWk9O
VEFMOwotICAgICAgICBjYXNlIENTU1ZhbHVlVmVydGljYWw6Ci0gICAgICAgIGNhc2UgQ1NTVmFs
dWVCbG9ja0F4aXM6Ci0gICAgICAgICAgICByZXR1cm4gVkVSVElDQUw7CisgICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRhbDoKKyAgICBjYXNl
IENTU1ZhbHVlSW5saW5lQXhpczoKKyAgICAgICAgcmV0dXJuIEhPUklaT05UQUw7CisgICAgY2Fz
ZSBDU1NWYWx1ZVZlcnRpY2FsOgorICAgIGNhc2UgQ1NTVmFsdWVCbG9ja0F4aXM6CisgICAgICAg
IHJldHVybiBWRVJUSUNBTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTk3MCwzNCArMTAwMSwzNiBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveE9yaWVudCgpIGNvbnN0
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
RUNhcHRpb25TaWRlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgQ0FQTEVGVDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxlZnQ7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBDQVBSSUdIVDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVJpZ2h0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ0FQVE9Q
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVG9wOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ0FQQk9UVE9NOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQm90dG9tOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDQVBMRUZU
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ0FQUklHSFQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
UmlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ0FQVE9QOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVRvcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDQVBCT1RU
T006CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90dG9tOworICAgICAgICBi
cmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFQ2FwdGlvblNpZGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVu
dCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlTGVmdDoKLSAgICAgICAgICAgIHJldHVybiBDQVBM
RUZUOwotICAgICAgICBjYXNlIENTU1ZhbHVlUmlnaHQ6Ci0gICAgICAgICAgICByZXR1cm4gQ0FQ
UklHSFQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUb3A6Ci0gICAgICAgICAgICByZXR1cm4gQ0FQ
VE9QOwotICAgICAgICBjYXNlIENTU1ZhbHVlQm90dG9tOgotICAgICAgICAgICAgcmV0dXJuIENB
UEJPVFRPTTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFs
dWVMZWZ0OgorICAgICAgICByZXR1cm4gQ0FQTEVGVDsKKyAgICBjYXNlIENTU1ZhbHVlUmlnaHQ6
CisgICAgICAgIHJldHVybiBDQVBSSUdIVDsKKyAgICBjYXNlIENTU1ZhbHVlVG9wOgorICAgICAg
ICByZXR1cm4gQ0FQVE9QOworICAgIGNhc2UgQ1NTVmFsdWVCb3R0b206CisgICAgICAgIHJldHVy
biBDQVBCT1RUT007CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDA3LDM0ICsxMDQwLDM2IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ2FwdGlvblNpZGUoKSBjb25zdAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVD
bGVhciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZB
TFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIENOT05FOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENMRUZUOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTGVm
dDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENSSUdIVDoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJpZ2h0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgQ0JPVEg6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCb3Ro
OwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDTk9ORToKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENMRUZUOgor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ1JJR0hUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZ2h0
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENCT1RIOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUJvdGg7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDbGVhcigpIGNvbnN0CiB7Ci0g
ICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb25lOgot
ICAgICAgICAgICAgcmV0dXJuIENOT05FOwotICAgICAgICBjYXNlIENTU1ZhbHVlTGVmdDoKLSAg
ICAgICAgICAgIHJldHVybiBDTEVGVDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVJpZ2h0OgotICAg
ICAgICAgICAgcmV0dXJuIENSSUdIVDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJvdGg6Ci0gICAg
ICAgICAgICByZXR1cm4gQ0JPVEg7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAg
ICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIENOT05FOworICAgIGNhc2UgQ1NT
VmFsdWVMZWZ0OgorICAgICAgICByZXR1cm4gQ0xFRlQ7CisgICAgY2FzZSBDU1NWYWx1ZVJpZ2h0
OgorICAgICAgICByZXR1cm4gQ1JJR0hUOworICAgIGNhc2UgQ1NTVmFsdWVCb3RoOgorICAgICAg
ICByZXR1cm4gQ0JPVEg7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDQ0LDEyNiArMTA3OSwxMjYgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDbGVhcigpIGNvbnN0CiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUN1
cnNvciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZB
TFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIENVUlNPUl9BVVRPOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIENVUlNPUl9DUk9TUzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUNyb3NzaGFpcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENV
UlNPUl9ERUZBVUxUOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGVmYXVs
dDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9QT0lOVEVSOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUG9pbnRlcjsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9NT1ZFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlTW92ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNP
Ul9DRUxMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2VsbDsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9WRVJUSUNBTF9URVhUOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmVydGljYWxUZXh0OwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX0NPTlRFWFRfTUVOVToKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbnRleHRNZW51OwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQ1VSU09SX0FMSUFTOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQWxpYXM7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfQ09Q
WToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvcHk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfTk9ORToKLSAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZU5vbmU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBD
VVJTT1JfUFJPR1JFU1M6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVQcm9n
cmVzczsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9OT19EUk9QOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9Ecm9wOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX05PVF9BTExPV0VEOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm90QWxsb3dlZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENVUlNPUl9XRUJLSVRfWk9PTV9JTjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZVdlYmtpdFpvb21JbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIENVUlNPUl9XRUJLSVRfWk9PTV9PVVQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVXZWJraXRab29tT3V0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Q1VSU09SX0VfUkVTSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRVJl
c2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9ORV9SRVNJWkU6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOZVJlc2l6ZTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9OV19SRVNJWkU6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOd1Jlc2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENVUlNPUl9OX1JFU0laRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZU5SZXNpemU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1Jf
U0VfUkVTSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2VSZXNpemU7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfU1dfUkVTSVpFOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3dSZXNpemU7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfU19SRVNJWkU6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVTUmVzaXplOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgQ1VSU09SX1dfUkVTSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
V1Jlc2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9FV19SRVNJ
WkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFd1Jlc2l6ZTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9OU19SRVNJWkU6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOc1Jlc2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENVUlNPUl9ORVNXX1JFU0laRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZU5lc3dSZXNpemU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDVVJTT1JfTldTRV9SRVNJWkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVOd3NlUmVzaXplOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX0NP
TF9SRVNJWkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDb2xSZXNpemU7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfUk9XX1JFU0laRToKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJvd1Jlc2l6ZTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9URVhUOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlVGV4dDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENV
UlNPUl9XQUlUOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2FpdDsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9IRUxQOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGVscDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIENVUlNPUl9BTExfU0NST0xMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQWxsU2Nyb2xsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09S
X1dFQktJVF9HUkFCOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0
R3JhYjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9XRUJLSVRfR1JB
QkJJTkc6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRHcmFiYmlu
ZzsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX0FVVE86CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
VVJTT1JfQ1JPU1M6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ3Jvc3NoYWly
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9ERUZBVUxUOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlZmF1bHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q1VSU09SX1BPSU5URVI6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUG9pbnRl
cjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfTU9WRToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVNb3ZlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNP
Ul9DRUxMOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbGw7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1ZFUlRJQ0FMX1RFWFQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlVmVydGljYWxUZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENVUlNPUl9DT05URVhUX01FTlU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Q29udGV4dE1lbnU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX0FMSUFTOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFsaWFzOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENVUlNPUl9DT1BZOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNv
cHk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX05PTkU6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJT
T1JfUFJPR1JFU1M6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJvZ3Jlc3M7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX05PX0RST1A6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTm9Ecm9wOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENV
UlNPUl9OT1RfQUxMT1dFRDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3RB
bGxvd2VkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9XRUJLSVRfWk9PTV9JTjoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRab29tSW47CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1dFQktJVF9aT09NX09VVDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRab29tT3V0OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENVUlNPUl9FX1JFU0laRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVF
UmVzaXplOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9ORV9SRVNJWkU6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTmVSZXNpemU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ1VSU09SX05XX1JFU0laRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVOd1Jlc2l6ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfTl9SRVNJWkU6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTlJlc2l6ZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDVVJTT1JfU0VfUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVNlUmVzaXplOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9TV19S
RVNJWkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3dSZXNpemU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1NfUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVNSZXNpemU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09S
X1dfUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdSZXNpemU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX0VXX1JFU0laRToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVFd1Jlc2l6ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
VVJTT1JfTlNfUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5zUmVz
aXplOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9ORVNXX1JFU0laRToKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOZXN3UmVzaXplOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENVUlNPUl9OV1NFX1JFU0laRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVOd3NlUmVzaXplOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9DT0xf
UkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbFJlc2l6ZTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfUk9XX1JFU0laRToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3dSZXNpemU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q1VSU09SX1RFWFQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfV0FJVDoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVXYWl0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9IRUxQ
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhlbHA7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ1VSU09SX0FMTF9TQ1JPTEw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQWxsU2Nyb2xsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9XRUJL
SVRfR1JBQjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRHcmFiOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9XRUJLSVRfR1JBQkJJTkc6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0R3JhYmJpbmc7CisgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVDdXJzb3IoKSBjb25zdAogewotICAgIGlmIChtX3ZhbHVlLmlkZW50ID09IENTU1ZhbHVl
Q29weSkKKyAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlQ29weSkKICAgICAgICAg
cmV0dXJuIENVUlNPUl9DT1BZOwotICAgIGlmIChtX3ZhbHVlLmlkZW50ID09IENTU1ZhbHVlTm9u
ZSkKKyAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAgcmV0
dXJuIENVUlNPUl9OT05FOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxFQ3Vyc29yPihtX3ZhbHVl
LmlkZW50IC0gQ1NTVmFsdWVBdXRvKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RUN1cnNvcj4o
bV92YWx1ZS52YWx1ZUlEIC0gQ1NTVmFsdWVBdXRvKTsKIH0KIAogCkBAIC0xMTcxLDIyICsxMjA2
LDIyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ3Vy
c29yKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShDdXJzb3JWaXNpYmlsaXR5IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVD
bGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2Fz
ZSBDdXJzb3JWaXNpYmlsaXR5QXV0bzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
QXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEN1cnNvclZpc2liaWxpdHlBdXRvSGlkZToKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQXV0b0hpZGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQXV0b0hpZGU7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEN1cnNvclZpc2liaWxpdHkoKSBjb25z
dAogewotICAgIGlmIChtX3ZhbHVlLmlkZW50ID09IENTU1ZhbHVlQXV0bykKKyAgICBpZiAobV92
YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgcmV0dXJuIEN1cnNvclZpc2li
aWxpdHlBdXRvOwotICAgIGlmIChtX3ZhbHVlLmlkZW50ID09IENTU1ZhbHVlQXV0b0hpZGUpCisg
ICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG9IaWRlKQogICAgICAgICByZXR1
cm4gQ3Vyc29yVmlzaWJpbGl0eUF1dG9IaWRlOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkBAIC0xMTk3LDg2ICsxMjMyLDg2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBDdXJzb3JWaXNpYmlsaXR5KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFRGlzcGxheSBlKQogICAgIDog
Q1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3
aXRjaCAoZSkgewotICAgICAgICBjYXNlIElOTElORToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUlubGluZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEJM
T0NLOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQmxvY2s7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBMSVNUX0lURU06Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVMaXN0SXRlbTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFJVTl9JTjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJ1bkluOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ09NUEFDVDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbXBhY3Q7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBJTkxJTkVfQkxPQ0s6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVJbmxpbmVCbG9jazsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRBQkxFOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGFibGU7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBJTkxJTkVfVEFCTEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVJbmxpbmVUYWJsZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFRBQkxFX1JPV19HUk9VUDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVRhYmxlUm93R3JvdXA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUQUJMRV9I
RUFERVJfR1JPVVA6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUYWJsZUhl
YWRlckdyb3VwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVEFCTEVfRk9PVEVS
X0dST1VQOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGFibGVGb290ZXJH
cm91cDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRBQkxFX1JPVzoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRhYmxlUm93OwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgVEFCTEVfQ09MVU1OX0dST1VQOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlVGFibGVDb2x1bW5Hcm91cDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFRBQkxFX0NPTFVNTjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZVRhYmxlQ29sdW1uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVEFC
TEVfQ0VMTDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRhYmxlQ2VsbDsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRBQkxFX0NBUFRJT046Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUYWJsZUNhcHRpb247Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBCT1g6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVXZWJraXRCb3g7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBJTkxJTkVf
Qk9YOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0SW5saW5lQm94
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRkxFWDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdEZsZXg7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBJTkxJTkVfRkxFWDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZVdlYmtpdElubGluZUZsZXg7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBH
UklEOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0R3JpZDsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIElOTElORV9HUklEOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0SW5saW5lR3JpZDsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIE5PTkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVOb25lOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJTkxJTkU6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5lOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEJMT0NLOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJsb2NrOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIExJU1RfSVRFTToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVMaXN0SXRlbTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSVU5fSU46Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUnVuSW47CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ09NUEFDVDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb21w
YWN0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIElOTElORV9CTE9DSzoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmVCbG9jazsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBUQUJMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBJTkxJTkVfVEFCTEU6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSW5saW5lVGFibGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFC
TEVfUk9XX0dST1VQOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlUm93
R3JvdXA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFCTEVfSEVBREVSX0dST1VQOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlSGVhZGVyR3JvdXA7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVEFCTEVfRk9PVEVSX0dST1VQOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVRhYmxlRm9vdGVyR3JvdXA7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgVEFCTEVfUk9XOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlUm93
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRBQkxFX0NPTFVNTl9HUk9VUDoKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZUNvbHVtbkdyb3VwOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFRBQkxFX0NPTFVNTjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVUYWJsZUNvbHVtbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUQUJMRV9DRUxMOgor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlQ2VsbDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBUQUJMRV9DQVBUSU9OOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVRhYmxlQ2FwdGlvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCT1g6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0Qm94OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIElOTElORV9CT1g6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
V2Via2l0SW5saW5lQm94OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZMRVg6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0RmxleDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBJTkxJTkVfRkxFWDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVX
ZWJraXRJbmxpbmVGbGV4OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdSSUQ6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0R3JpZDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBJTkxJTkVfR1JJRDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVX
ZWJraXRJbmxpbmVHcmlkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5PTkU6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQog
fQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRURpc3Bs
YXkoKSBjb25zdAogewotICAgIGlmIChtX3ZhbHVlLmlkZW50ID09IENTU1ZhbHVlTm9uZSkKKyAg
ICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAgcmV0dXJuIE5P
TkU7CiAKLSAgICBFRGlzcGxheSBkaXNwbGF5ID0gc3RhdGljX2Nhc3Q8RURpc3BsYXk+KG1fdmFs
dWUuaWRlbnQgLSBDU1NWYWx1ZUlubGluZSk7CisgICAgRURpc3BsYXkgZGlzcGxheSA9IHN0YXRp
Y19jYXN0PEVEaXNwbGF5PihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1ZUlubGluZSk7CiAgICAg
QVNTRVJUKGRpc3BsYXkgPj0gSU5MSU5FICYmIGRpc3BsYXkgPD0gTk9ORSk7CiAgICAgcmV0dXJu
IGRpc3BsYXk7CiB9CkBAIC0xMjg0LDI0ICsxMzE5LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRGlzcGxheSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUVtcHR5Q2VsbCBlKQog
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwog
ICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIFNIT1c6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVTaG93OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
SElERToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhpZGU7Ci0gICAgICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNIT1c6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlU2hvdzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBISURFOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpZGU7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVFbXB0eUNlbGwo
KSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENT
U1ZhbHVlU2hvdzoKLSAgICAgICAgICAgIHJldHVybiBTSE9XOwotICAgICAgICBjYXNlIENTU1Zh
bHVlSGlkZToKLSAgICAgICAgICAgIHJldHVybiBISURFOworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVNob3c6CisgICAgICAgIHJldHVybiBTSE9XOwor
ICAgIGNhc2UgQ1NTVmFsdWVIaWRlOgorICAgICAgICByZXR1cm4gSElERTsKKyAgICBkZWZhdWx0
OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTEzMTEsMzIgKzEzNDgsMzIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVFbXB0eUNlbGwoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVBbGlnbkl0ZW1zIGUpCiAgICAgOiBDU1NWYWx1
ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5U
OworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChl
KSB7CiAgICAgY2FzZSBBbGlnbkF1dG86Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBBbGlnbkZsZXhTdGFydDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlRmxleFN0YXJ0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZs
ZXhTdGFydDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkZsZXhFbmQ6Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZsZXhFbmQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlRmxleEVuZDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkNlbnRl
cjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2VudGVyOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBB
bGlnblN0cmV0Y2g6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0cmV0Y2g7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RyZXRjaDsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBBbGlnbkJhc2VsaW5lOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVCYXNlbGluZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCYXNlbGluZTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWduSXRlbXMoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92
YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBBbGlnbkF1dG87CiAgICAgY2FzZSBDU1NWYWx1
ZUZsZXhTdGFydDoKQEAgLTEzNDksNiArMTM4Niw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQWxpZ25JdGVtcygpIGNvbnN0CiAgICAgICAgIHJldHVy
biBBbGlnblN0cmV0Y2g7CiAgICAgY2FzZSBDU1NWYWx1ZUJhc2VsaW5lOgogICAgICAgICByZXR1
cm4gQWxpZ25CYXNlbGluZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEzNTgsMjkgKzEzOTcsMjkgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVBbGlnbkl0ZW1zKCkgY29u
c3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShFSnVzdGlmeUNvbnRlbnQgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEp1c3RpZnlG
bGV4U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZsZXhTdGFydDsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbGV4U3RhcnQ7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgSnVzdGlmeUZsZXhFbmQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUZsZXhFbmQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmxleEVuZDsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBKdXN0aWZ5Q2VudGVyOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ2VudGVyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEp1c3RpZnlTcGFjZUJldHdlZW46
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNwYWNlQmV0d2VlbjsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcGFjZUJldHdlZW47CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgSnVzdGlmeVNwYWNlQXJvdW5kOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVTcGFjZUFyb3VuZDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcGFj
ZUFyb3VuZDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUp1c3RpZnlDb250ZW50KCkgY29uc3QKIHsKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
ewogICAgIGNhc2UgQ1NTVmFsdWVGbGV4U3RhcnQ6CiAgICAgICAgIHJldHVybiBKdXN0aWZ5Rmxl
eFN0YXJ0OwogICAgIGNhc2UgQ1NTVmFsdWVGbGV4RW5kOgpAQCAtMTM5MSw2ICsxNDMwLDggQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVKdXN0aWZ5Q29u
dGVudCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBKdXN0aWZ5U3BhY2VCZXR3ZWVuOwogICAgIGNh
c2UgQ1NTVmFsdWVTcGFjZUFyb3VuZDoKICAgICAgICAgcmV0dXJuIEp1c3RpZnlTcGFjZUFyb3Vu
ZDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTE0MDAsMjYgKzE0NDEsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVKdXN0aWZ5Q29udGVudCgpIGNvbnN0CiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUZsZXhEaXJl
Y3Rpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0
aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19W
QUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEZsb3dSb3c6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJvdzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVSb3c7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmxvd1Jvd1JldmVyc2U6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJvd1JldmVyc2U7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUm93UmV2ZXJzZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBG
bG93Q29sdW1uOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDb2x1bW47CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sdW1uOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEZsb3dDb2x1bW5SZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVDb2x1bW5SZXZlcnNlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbHVt
blJldmVyc2U7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGbGV4RGlyZWN0aW9uKCkgY29uc3QKIHsKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
ewogICAgIGNhc2UgQ1NTVmFsdWVSb3c6CiAgICAgICAgIHJldHVybiBGbG93Um93OwogICAgIGNh
c2UgQ1NTVmFsdWVSb3dSZXZlcnNlOgpAQCAtMTQyOCw2ICsxNDY5LDggQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGbGV4RGlyZWN0aW9uKCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIEZsb3dDb2x1bW47CiAgICAgY2FzZSBDU1NWYWx1ZUNvbHVtblJldmVy
c2U6CiAgICAgICAgIHJldHVybiBGbG93Q29sdW1uUmV2ZXJzZTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE0Mzcs
MzIgKzE0ODAsMzIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVGbGV4RGlyZWN0aW9uKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQWxpZ25Db250ZW50IGUpCiAgICAgOiBDU1NWYWx1
ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5U
OworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChl
KSB7CiAgICAgY2FzZSBBbGlnbkNvbnRlbnRGbGV4U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUZsZXhTdGFydDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVGbGV4U3RhcnQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25Db250ZW50RmxleEVu
ZDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRmxleEVuZDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbGV4RW5kOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEFsaWduQ29udGVudENlbnRlcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2Vu
dGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBBbGlnbkNvbnRlbnRTcGFjZUJldHdlZW46Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVNwYWNlQmV0d2VlbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTcGFjZUJldHdlZW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25D
b250ZW50U3BhY2VBcm91bmQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNwYWNl
QXJvdW5kOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlQXJvdW5kOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWduQ29udGVudFN0cmV0Y2g6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0cmV0Y2g7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlU3RyZXRjaDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWduQ29udGVudCgpIGNvbnN0
CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlRmxleFN0YXJ0OgogICAgICAgICByZXR1cm4gQWxp
Z25Db250ZW50RmxleFN0YXJ0OwogICAgIGNhc2UgQ1NTVmFsdWVGbGV4RW5kOgpAQCAtMTQ3NSw2
ICsxNTE4LDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVBbGlnbkNvbnRlbnQoKSBjb25zdAogICAgICAgICByZXR1cm4gQWxpZ25Db250ZW50U3BhY2VB
cm91bmQ7CiAgICAgY2FzZSBDU1NWYWx1ZVN0cmV0Y2g6CiAgICAgICAgIHJldHVybiBBbGlnbkNv
bnRlbnRTdHJldGNoOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTQ4NCwyOSArMTUyOSwzMSBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWduQ29udGVudCgpIGNvbnN0
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
RUZsZXhXcmFwIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBD
U1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBGbGV4Tm9XcmFwOgotICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3dyYXA7CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTm93cmFwOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsZXhXcmFw
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXcmFwOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVdyYXA7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmxleFdy
YXBSZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXcmFwUmV2ZXJzZTsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXcmFwUmV2ZXJzZTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRUZsZXhXcmFwKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQp
IHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3dy
YXA6CiAgICAgICAgIHJldHVybiBGbGV4Tm9XcmFwOwogICAgIGNhc2UgQ1NTVmFsdWVXcmFwOgog
ICAgICAgICByZXR1cm4gRmxleFdyYXA7CiAgICAgY2FzZSBDU1NWYWx1ZVdyYXBSZXZlcnNlOgog
ICAgICAgICByZXR1cm4gRmxleFdyYXBSZXZlcnNlOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTUxNiwzMCArMTU2
MywzMiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZs
ZXhXcmFwKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShFRmxvYXQgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQog
ewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBO
b0Zsb2F0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExlZnRGbG9hdDoKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUxlZnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBSaWdodEZsb2F0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmlnaHQ7
Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIE5vRmxvYXQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMZWZ0Rmxv
YXQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBSaWdodEZsb2F0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVJpZ2h0OworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxvYXQoKSBjb25zdAogewotICAgIHN3aXRj
aCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlTGVmdDoKLSAgICAgICAg
ICAgIHJldHVybiBMZWZ0RmxvYXQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKLSAgICAg
ICAgICAgIHJldHVybiBSaWdodEZsb2F0OwotICAgICAgICBjYXNlIENTU1ZhbHVlTm9uZToKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZUNlbnRlcjogIC8vIE5vbi1zdGFuZGFyZCBDU1MgdmFsdWUKLSAg
ICAgICAgICAgIHJldHVybiBOb0Zsb2F0OworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CisgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6CisgICAgICAgIHJldHVybiBMZWZ0RmxvYXQ7CisgICAg
Y2FzZSBDU1NWYWx1ZVJpZ2h0OgorICAgICAgICByZXR1cm4gUmlnaHRGbG9hdDsKKyAgICBjYXNl
IENTU1ZhbHVlTm9uZToKKyAgICBjYXNlIENTU1ZhbHVlQ2VudGVyOiAvLyBOb24tc3RhbmRhcmQg
Q1NTIHZhbHVlLgorICAgICAgICByZXR1cm4gTm9GbG9hdDsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE1NDksMjkg
KzE1OTgsMjkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVGbG9hdCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoTGluZUJyZWFrIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFz
cykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0
aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBM
aW5lQnJlYWtBdXRvOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTGluZUJyZWFrTG9vc2U6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxv
b3NlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvb3NlOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIExpbmVCcmVha05vcm1hbDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1h
bDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lQnJlYWtTdHJpY3Q6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0cmljdDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTdHJpY3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUJyZWFrQWZ0ZXJX
aGl0ZVNwYWNlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBZnRlcldoaXRlU3Bh
Y2U7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWZ0ZXJXaGl0ZVNwYWNlOwog
ICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBMaW5lQnJlYWsoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1
ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBMaW5lQnJlYWtBdXRvOwogICAgIGNhc2UgQ1NTVmFs
dWVMb29zZToKQEAgLTE1ODIsNiArMTYzMSw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQnJlYWsoKSBjb25zdAogICAgICAgICByZXR1cm4gTGlu
ZUJyZWFrU3RyaWN0OwogICAgIGNhc2UgQ1NTVmFsdWVBZnRlcldoaXRlU3BhY2U6CiAgICAgICAg
IHJldHVybiBMaW5lQnJlYWtBZnRlcldoaXRlU3BhY2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xNTkxLDI0ICsx
NjQyLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBM
aW5lQnJlYWsoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKEVMaXN0U3R5bGVQb3NpdGlvbiBlKQogICAgIDogQ1NTVmFsdWUoUHJp
bWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewot
ICAgICAgICBjYXNlIE9VVFNJREU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVPdXRzaWRlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSU5TSURFOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSW5zaWRlOwotICAgICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBPVVRTSURFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU91dHNpZGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSU5TSURFOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUluc2lkZTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQog
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUxpc3RTdHls
ZVBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVPdXRzaWRlOgogICAg
ICAgICByZXR1cm4gT1VUU0lERTsKICAgICBjYXNlIENTU1ZhbHVlSW5zaWRlOgogICAgICAgICBy
ZXR1cm4gSU5TSURFOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTYxOCwyOTAgKzE2NzEsMjkyIEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTGlzdFN0eWxlUG9zaXRpb24o
KSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKEVMaXN0U3R5bGVUeXBlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykK
IHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBBZmFy
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBZmFyOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUFmYXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW1oYXJp
YzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQW1oYXJpYzsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbWhhcmljOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEFtaGFyaWNBYmVnZWRlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBbWhhcmlj
QWJlZ2VkZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbWhhcmljQWJlZ2Vk
ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcmFiaWNJbmRpYzoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQXJhYmljSW5kaWM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQXJhYmljSW5kaWM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXJtZW5pYW46
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFybWVuaWFuOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFybWVuaWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEFzdGVyaXNrczoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXN0ZXJpc2tzOwor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFzdGVyaXNrczsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBCaW5hcnlMaXN0U3R5bGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUJpbmFyeTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCaW5hcnk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmVuZ2FsaToKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQmVuZ2FsaTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVC
ZW5nYWxpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhbWJvZGlhbjoKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2FtYm9kaWFuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUNhbWJvZGlhbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDaXJjbGU6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNpcmNsZTsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVDaXJjbGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2prRWFy
dGhseUJyYW5jaDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2prRWFydGhseUJy
YW5jaDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDamtFYXJ0aGx5QnJhbmNo
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENqa0hlYXZlbmx5U3RlbToKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2prSGVhdmVubHlTdGVtOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUNqa0hlYXZlbmx5U3RlbTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDSktJZGVvZ3JhcGhpYzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2prSWRl
b2dyYXBoaWM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2prSWRlb2dyYXBo
aWM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGVjaW1hbExlYWRpbmdaZXJvOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEZWNpbWFsTGVhZGluZ1plcm87CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVjaW1hbExlYWRpbmdaZXJvOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIERlY2ltYWxMaXN0U3R5bGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZURlY2ltYWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVjaW1h
bDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEZXZhbmFnYXJpOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVEZXZhbmFnYXJpOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZURldmFuYWdhcmk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzYzoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGlzYzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVEaXNjOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGljOgotICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3BpYzsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpYzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFdGhp
b3BpY0FiZWdlZGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlvcGljQWJl
Z2VkZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0FiZWdlZGU7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRoaW9waWNBYmVnZWRlQW1FdDoKLSAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNBYmVnZWRlQW1FdDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0FiZWdlZGVBbUV0OwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEV0aGlvcGljQWJlZ2VkZUdlejoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlRXRoaW9waWNBYmVnZWRlR2V6OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUV0aGlvcGljQWJlZ2VkZUdlejsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFdGhp
b3BpY0FiZWdlZGVUaUVyOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3Bp
Y0FiZWdlZGVUaUVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV0aGlvcGlj
QWJlZ2VkZVRpRXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRoaW9waWNBYmVnZWRlVGlF
dDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNBYmVnZWRlVGlFdDsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0FiZWdlZGVUaUV0Owog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGljSGFsZWhhbWVBYUVyOgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lQWFFcjsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lQWFFcjsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBFdGhpb3BpY0hhbGVoYW1lQWFFdDoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZUFhRXQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZUFhRXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRXRoaW9waWNIYWxlaGFtZUFtRXQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUV0aGlvcGljSGFsZWhhbWVBbUV0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUV0aGlvcGljSGFsZWhhbWVBbUV0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGlj
SGFsZWhhbWVHZXo6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlvcGljSGFs
ZWhhbWVHZXo7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNIYWxl
aGFtZUdlejsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFdGhpb3BpY0hhbGVoYW1lT21FdDoK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZU9tRXQ7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZU9tRXQ7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRoaW9waWNIYWxlaGFtZVNpZEV0OgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lU2lkRXQ7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZVNpZEV0OwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEV0aGlvcGljSGFsZWhhbWVTb0V0OgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lU29FdDsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lU29FdDsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBFdGhpb3BpY0hhbGVoYW1lVGlFcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlRXRoaW9waWNIYWxlaGFtZVRpRXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRXRoaW9waWNIYWxlaGFtZVRpRXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRoaW9w
aWNIYWxlaGFtZVRpRXQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlvcGlj
SGFsZWhhbWVUaUV0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV0aGlvcGlj
SGFsZWhhbWVUaUV0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGljSGFsZWhhbWVU
aWc6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlvcGljSGFsZWhhbWVUaWc7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZVRpZzsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGb290bm90ZXM6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUZvb3Rub3RlczsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVGb290bm90ZXM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR2VvcmdpYW46Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUdlb3JnaWFuOworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUdlb3JnaWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEd1amFyYXRp
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVHdWphcmF0aTsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVHdWphcmF0aTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBHdXJtdWtoaToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlR3VybXVraGk7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlR3VybXVraGk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgSGFuZ3VsOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIYW5n
dWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGFuZ3VsOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEhhbmd1bENvbnNvbmFudDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlSGFuZ3VsQ29uc29uYW50OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUhhbmd1bENvbnNvbmFudDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBIZWJyZXc6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhlYnJldzsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVIZWJyZXc7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSGlyYWdh
bmE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhpcmFnYW5hOworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpcmFnYW5hOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEhpcmFnYW5hSXJvaGE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhpcmFn
YW5hSXJvaGE7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGlyYWdhbmFJcm9o
YTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBLYW5uYWRhOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVLYW5uYWRhOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUthbm5hZGE7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgS2F0YWthbmE6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUthdGFrYW5hOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUthdGFrYW5hOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEthdGFrYW5hSXJv
aGE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUthdGFrYW5hSXJvaGE7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlS2F0YWthbmFJcm9oYTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBLaG1lcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlS2ht
ZXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlS2htZXI7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgTGFvOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMYW87
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGFvOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIExvd2VyQWxwaGE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxv
d2VyQWxwaGE7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTG93ZXJBbHBoYTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMb3dlckFybWVuaWFuOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVMb3dlckFybWVuaWFuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUxvd2VyQXJtZW5pYW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTG93ZXJH
cmVlazoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTG93ZXJHcmVlazsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMb3dlckdyZWVrOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIExvd2VySGV4YWRlY2ltYWw6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUxvd2VySGV4YWRlY2ltYWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TG93ZXJIZXhhZGVjaW1hbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMb3dlckxhdGluOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb3dlckxhdGluOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvd2VyTGF0aW47CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgTG93ZXJOb3J3ZWdpYW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxvd2Vy
Tm9yd2VnaWFuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvd2VyTm9yd2Vn
aWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExvd2VyUm9tYW46Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUxvd2VyUm9tYW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTG93ZXJSb21hbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNYWxheWFsYW06
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1hbGF5YWxhbTsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNYWxheWFsYW07CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgTW9uZ29saWFuOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNb25nb2xpYW47
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTW9uZ29saWFuOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE15YW5tYXI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZU15YW5tYXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTXlhbm1hcjsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb25lTGlzdFN0eWxlOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5v
bmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT2N0YWw6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZU9jdGFsOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9j
dGFsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE9yaXlhOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVPcml5YTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVP
cml5YTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPcm9tbzoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlT3JvbW87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
T3JvbW87CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGVyc2lhbjoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlUGVyc2lhbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVQZXJzaWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNpZGFtYToKLSAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2lkYW1hOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVNpZGFtYTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTb21hbGk6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNvbWFsaTsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVTb21hbGk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3F1YXJlOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcXVhcmU7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRlbHVn
dToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGVsdWd1OworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRlbHVndTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBU
aGFpOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUaGFpOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRoYWk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGli
ZXRhbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGliZXRhbjsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUaWJldGFuOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFRpZ3JlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUaWdyZTsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUaWdyZTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUaWdyaW55YUVyOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUaWdyaW55
YUVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRpZ3JpbnlhRXI7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgVGlncmlueWFFckFiZWdlZGU6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZVRpZ3JpbnlhRXJBYmVnZWRlOworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVRpZ3JpbnlhRXJBYmVnZWRlOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFRpZ3JpbnlhRXQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRpZ3JpbnlhRXQ7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGlncmlueWFFdDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUaWdyaW55YUV0QWJlZ2VkZToKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlVGlncmlueWFFdEFiZWdlZGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlVGlncmlueWFFdEFiZWdlZGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVXBw
ZXJBbHBoYToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXBwZXJBbHBoYTsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVcHBlckFscGhhOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFVwcGVyQXJtZW5pYW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZVVwcGVyQXJtZW5pYW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXBw
ZXJBcm1lbmlhbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVcHBlckdyZWVrOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVVcHBlckdyZWVrOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVVwcGVyR3JlZWs7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVXBw
ZXJIZXhhZGVjaW1hbDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXBwZXJIZXhh
ZGVjaW1hbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVcHBlckhleGFkZWNp
bWFsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVwcGVyTGF0aW46Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVVwcGVyTGF0aW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlVXBwZXJMYXRpbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVcHBlck5vcndl
Z2lhbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXBwZXJOb3J3ZWdpYW47Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXBwZXJOb3J3ZWdpYW47CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVXBwZXJSb21hbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlVXBwZXJSb21hbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVcHBl
clJvbWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVyZHU6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZVVyZHU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
VXJkdTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUxpc3RTdHlsZVR5cGUoKSBjb25zdAogewotICAgIHN3
aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlTm9uZToKLSAgICAg
ICAgICAgIHJldHVybiBOb25lTGlzdFN0eWxlOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEVMaXN0U3R5bGVUeXBlPihtX3ZhbHVlLmlkZW50IC0gQ1NT
VmFsdWVEaXNjKTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NT
VmFsdWVOb25lOgorICAgICAgICByZXR1cm4gTm9uZUxpc3RTdHlsZTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RUxpc3RTdHlsZVR5cGU+KG1fdmFsdWUudmFsdWVJ
RCAtIENTU1ZhbHVlRGlzYyk7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRU1hcmdpbkNvbGxhcHNlIGUpCiAgICAgOiBD
U1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NT
X0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dp
dGNoIChlKSB7Ci0gICAgICAgIGNhc2UgTUNPTExBUFNFOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlQ29sbGFwc2U7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBNU0VQQVJBVEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTZXBhcmF0
ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1ESVNDQVJEOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGlzY2FyZDsKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTUNPTExBUFNFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNv
bGxhcHNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1TRVBBUkFURToKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZXBhcmF0ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBNRElTQ0FSRDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEaXNjYXJkOwor
ICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBFTWFyZ2luQ29sbGFwc2UoKSBjb25zdAogewotICAgIHN3aXRjaCAo
bV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlQ29sbGFwc2U6Ci0gICAgICAg
ICAgICByZXR1cm4gTUNPTExBUFNFOwotICAgICAgICBjYXNlIENTU1ZhbHVlU2VwYXJhdGU6Ci0g
ICAgICAgICAgICByZXR1cm4gTVNFUEFSQVRFOwotICAgICAgICBjYXNlIENTU1ZhbHVlRGlzY2Fy
ZDoKLSAgICAgICAgICAgIHJldHVybiBNRElTQ0FSRDsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVDb2xsYXBzZToKKyAgICAgICAgcmV0dXJuIE1DT0xM
QVBTRTsKKyAgICBjYXNlIENTU1ZhbHVlU2VwYXJhdGU6CisgICAgICAgIHJldHVybiBNU0VQQVJB
VEU7CisgICAgY2FzZSBDU1NWYWx1ZURpc2NhcmQ6CisgICAgICAgIHJldHVybiBNRElTQ0FSRDsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTE5MTEsMzQgKzE5NjYsMzYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVNYXJnaW5Db2xsYXBzZSgpIGNvbnN0CiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRU1hcnF1ZWVCZWhh
dmlvciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZB
TFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIE1OT05FOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIE1TQ1JPTEw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVT
Y3JvbGw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNU0xJREU6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTbGlkZTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIE1BTFRFUk5BVEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVBbHRlcm5hdGU7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIE1OT05FOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTVNDUk9MTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTY3JvbGw7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTVNMSURFOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVNsaWRlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1BTFRFUk5BVEU6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWx0ZXJuYXRlOworICAgICAgICBi
cmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFTWFycXVlZUJlaGF2aW9yKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
aWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6Ci0gICAgICAgICAgICByZXR1cm4g
TU5PTkU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTY3JvbGw6Ci0gICAgICAgICAgICByZXR1cm4g
TVNDUk9MTDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVNsaWRlOgotICAgICAgICAgICAgcmV0dXJu
IE1TTElERTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFsdGVybmF0ZToKLSAgICAgICAgICAgIHJl
dHVybiBNQUxURVJOQVRFOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2Fz
ZSBDU1NWYWx1ZU5vbmU6CisgICAgICAgIHJldHVybiBNTk9ORTsKKyAgICBjYXNlIENTU1ZhbHVl
U2Nyb2xsOgorICAgICAgICByZXR1cm4gTVNDUk9MTDsKKyAgICBjYXNlIENTU1ZhbHVlU2xpZGU6
CisgICAgICAgIHJldHVybiBNU0xJREU7CisgICAgY2FzZSBDU1NWYWx1ZUFsdGVybmF0ZToKKyAg
ICAgICAgcmV0dXJuIE1BTFRFUk5BVEU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAg
ICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xOTQ4LDI0ICsyMDA1LDI2IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTWFycXVlZUJl
aGF2aW9yKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShSZWdpb25GcmFnbWVudCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZl
Q2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNh
c2UgQXV0b1JlZ2lvbkZyYWdtZW50OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVB
dXRvOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQnJlYWtSZWdpb25GcmFnbWVudDoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQnJlYWs7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQnJl
YWs7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJlZ2lvbkZyYWdtZW50KCkgY29uc3QKIHsKLSAgICBzd2l0
Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAg
IGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gQXV0b1JlZ2lvbkZyYWdtZW50Owog
ICAgIGNhc2UgQ1NTVmFsdWVCcmVhazoKICAgICAgICAgcmV0dXJuIEJyZWFrUmVnaW9uRnJhZ21l
bnQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0xOTc1LDUxICsyMDM0LDUzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBSZWdpb25GcmFnbWVudCgpIGNvbnN0CiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRU1hcnF1ZWVE
aXJlY3Rpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBNRk9SV0FSRDoKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZvcndhcmRzOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgTUJBQ0tXQVJEOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQmFja3dhcmRzOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
TUFVVE86Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTVVQOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlVXA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNRE9XTjoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURvd247Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBNTEVGVDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUxlZnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNUklHSFQ6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSaWdodDsKLSAgICAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTUZPUldBUkQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRm9yd2FyZHM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTUJBQ0tXQVJEOgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJhY2t3YXJkczsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBNQVVUTzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE1VUDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNRE9XTjoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEb3duOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1M
RUZUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTVJJR0hUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVJpZ2h0OworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTWFycXVlZURpcmVjdGlvbigpIGNvbnN0CiB7Ci0g
ICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVGb3J3YXJk
czoKLSAgICAgICAgICAgIHJldHVybiBNRk9SV0FSRDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJh
Y2t3YXJkczoKLSAgICAgICAgICAgIHJldHVybiBNQkFDS1dBUkQ7Ci0gICAgICAgIGNhc2UgQ1NT
VmFsdWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIE1BVVRPOwotICAgICAgICBjYXNlIENTU1Zh
bHVlQWhlYWQ6Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVVcDogLy8gV2UgZG9uJ3Qgc3VwcG9ydCB2
ZXJ0aWNhbCBsYW5ndWFnZXMsIHNvIEFIRUFEIGp1c3QgbWFwcyB0byBVUC4KLSAgICAgICAgICAg
IHJldHVybiBNVVA7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVSZXZlcnNlOgotICAgICAgICBjYXNl
IENTU1ZhbHVlRG93bjogLy8gUkVWRVJTRSBqdXN0IG1hcHMgdG8gRE9XTiwgc2luY2Ugd2UgZG9u
J3QgZG8gdmVydGljYWwgdGV4dC4KLSAgICAgICAgICAgIHJldHVybiBNRE9XTjsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUxlZnQ6Ci0gICAgICAgICAgICByZXR1cm4gTUxFRlQ7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVSaWdodDoKLSAgICAgICAgICAgIHJldHVybiBNUklHSFQ7CisgICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlRm9yd2FyZHM6CisgICAgICAg
IHJldHVybiBNRk9SV0FSRDsKKyAgICBjYXNlIENTU1ZhbHVlQmFja3dhcmRzOgorICAgICAgICBy
ZXR1cm4gTUJBQ0tXQVJEOworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4g
TUFVVE87CisgICAgY2FzZSBDU1NWYWx1ZUFoZWFkOgorICAgIGNhc2UgQ1NTVmFsdWVVcDogLy8g
V2UgZG9uJ3Qgc3VwcG9ydCB2ZXJ0aWNhbCBsYW5ndWFnZXMsIHNvIEFIRUFEIGp1c3QgbWFwcyB0
byBVUC4KKyAgICAgICAgcmV0dXJuIE1VUDsKKyAgICBjYXNlIENTU1ZhbHVlUmV2ZXJzZToKKyAg
ICBjYXNlIENTU1ZhbHVlRG93bjogLy8gUkVWRVJTRSBqdXN0IG1hcHMgdG8gRE9XTiwgc2luY2Ug
d2UgZG9uJ3QgZG8gdmVydGljYWwgdGV4dC4KKyAgICAgICAgcmV0dXJuIE1ET1dOOworICAgIGNh
c2UgQ1NTVmFsdWVMZWZ0OgorICAgICAgICByZXR1cm4gTUxFRlQ7CisgICAgY2FzZSBDU1NWYWx1
ZVJpZ2h0OgorICAgICAgICByZXR1cm4gTVJJR0hUOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjAyOSwyNCArMjA5
MCwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU1h
cnF1ZWVEaXJlY3Rpb24oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVOQlNQTW9kZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAg
ICAgICBjYXNlIE5CTk9STUFMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
Tm9ybWFsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU1BBQ0U6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcGFjZTsKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTkJOT1JNQUw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9y
bWFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNQQUNFOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVNwYWNlOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTkJTUE1vZGUoKSBjb25z
dAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVl
U3BhY2U6Ci0gICAgICAgICAgICByZXR1cm4gU1BBQ0U7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVO
b3JtYWw6Ci0gICAgICAgICAgICByZXR1cm4gTkJOT1JNQUw7CisgICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlU3BhY2U6CisgICAgICAgIHJldHVybiBTUEFD
RTsKKyAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgorICAgICAgICByZXR1cm4gTkJOT1JNQUw7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0yMDU2LDU0ICsyMTE5LDU2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFTkJTUE1vZGUoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVPdmVyZmxvdyBlKQogICAgIDog
Q1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3
aXRjaCAoZSkgewotICAgICAgICBjYXNlIE9WSVNJQkxFOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlVmlzaWJsZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IE9ISURERU46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIaWRkZW47Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBPU0NST0xMOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2Nyb2xsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgT0FVVE86Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT01BUlFVRUU6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRNYXJxdWVlOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgT09WRVJMQVk6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVPdmVybGF5OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT1BBR0VEWDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdFBhZ2VkWDsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE9QQUdFRFk6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVXZWJraXRQYWdlZFk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBj
YXNlIE9WSVNJQkxFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpc2libGU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT0hJRERFTjoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVIaWRkZW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT1NDUk9MTDoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTY3JvbGw7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgT0FVVE86CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0
bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPTUFSUVVFRToKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRNYXJxdWVlOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IE9PVkVSTEFZOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU92ZXJsYXk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgT1BBR0VEWDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVXZWJraXRQYWdlZFg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT1BBR0VE
WToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRQYWdlZFk7CisgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIEVPdmVyZmxvdygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlk
ZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlOgotICAgICAgICAgICAgcmV0dXJu
IE9WSVNJQkxFOwotICAgICAgICBjYXNlIENTU1ZhbHVlSGlkZGVuOgotICAgICAgICAgICAgcmV0
dXJuIE9ISURERU47Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTY3JvbGw6Ci0gICAgICAgICAgICBy
ZXR1cm4gT1NDUk9MTDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAgICAgICBy
ZXR1cm4gT0FVVE87Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRNYXJxdWVlOgotICAgICAg
ICAgICAgcmV0dXJuIE9NQVJRVUVFOwotICAgICAgICBjYXNlIENTU1ZhbHVlT3ZlcmxheToKLSAg
ICAgICAgICAgIHJldHVybiBPT1ZFUkxBWTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdFBh
Z2VkWDoKLSAgICAgICAgICAgIHJldHVybiBPUEFHRURYOwotICAgICAgICBjYXNlIENTU1ZhbHVl
V2Via2l0UGFnZWRZOgotICAgICAgICAgICAgcmV0dXJuIE9QQUdFRFk7CisgICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZToKKyAgICAgICAgcmV0
dXJuIE9WSVNJQkxFOworICAgIGNhc2UgQ1NTVmFsdWVIaWRkZW46CisgICAgICAgIHJldHVybiBP
SElEREVOOworICAgIGNhc2UgQ1NTVmFsdWVTY3JvbGw6CisgICAgICAgIHJldHVybiBPU0NST0xM
OworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4gT0FVVE87CisgICAgY2Fz
ZSBDU1NWYWx1ZVdlYmtpdE1hcnF1ZWU6CisgICAgICAgIHJldHVybiBPTUFSUVVFRTsKKyAgICBj
YXNlIENTU1ZhbHVlT3ZlcmxheToKKyAgICAgICAgcmV0dXJuIE9PVkVSTEFZOworICAgIGNhc2Ug
Q1NTVmFsdWVXZWJraXRQYWdlZFg6CisgICAgICAgIHJldHVybiBPUEFHRURYOworICAgIGNhc2Ug
Q1NTVmFsdWVXZWJraXRQYWdlZFk6CisgICAgICAgIHJldHVybiBPUEFHRURZOworICAgIGRlZmF1
bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtMjExMywzMSArMjE3OCwzMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRU92ZXJmbG93KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFUGFnZUJyZWFrIGUpCiAgICAgOiBDU1NWYWx1
ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5U
OworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChl
KSB7Ci0gICAgICAgIGNhc2UgUEJBVVRPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBCQUxXQVlTOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWx3YXlzOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgUEJBVk9JRDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUF2b2lkOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQQkFVVE86Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQQkFMV0FZUzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbHdh
eXM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUEJBVk9JRDoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVBdm9pZDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVBhZ2VCcmVhaygpIGNv
bnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFs
dWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIFBCQVVUTzsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZUxlZnQ6Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZUFsd2F5czoKLSAgICAgICAgICAgIHJldHVybiBQQkFMV0FZUzsgLy8gQ1NTMi4xOiAiQ29uZm9y
bWluZyB1c2VyIGFnZW50cyBtYXkgbWFwIGxlZnQvcmlnaHQgdG8gYWx3YXlzLiIKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUF2b2lkOgotICAgICAgICAgICAgcmV0dXJuIFBCQVZPSUQ7CisgICAgc3dp
dGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAg
cmV0dXJuIFBCQVVUTzsKKyAgICBjYXNlIENTU1ZhbHVlTGVmdDoKKyAgICBjYXNlIENTU1ZhbHVl
UmlnaHQ6CisgICAgY2FzZSBDU1NWYWx1ZUFsd2F5czoKKyAgICAgICAgcmV0dXJuIFBCQUxXQVlT
OyAvLyBDU1MyLjE6ICJDb25mb3JtaW5nIHVzZXIgYWdlbnRzIG1heSBtYXAgbGVmdC9yaWdodCB0
byBhbHdheXMuIgorICAgIGNhc2UgQ1NTVmFsdWVBdm9pZDoKKyAgICAgICAgcmV0dXJuIFBCQVZP
SUQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0yMTQ3LDQzICsyMjE0LDQ1IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUGFnZUJyZWFrKCkgY29uc3QKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFUG9zaXRpb24gZSkK
ICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsK
ICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBTdGF0aWNQb3NpdGlvbjoKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXRpYzsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFJlbGF0aXZlUG9zaXRpb246Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVSZWxhdGl2ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFi
c29sdXRlUG9zaXRpb246Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBYnNv
bHV0ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEZpeGVkUG9zaXRpb246Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGaXhlZDsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIFN0aWNreVBvc2l0aW9uOgorICAgIGNhc2UgU3RhdGljUG9zaXRp
b246CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RhdGljOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFJlbGF0aXZlUG9zaXRpb246CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlUmVsYXRpdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWJzb2x1dGVQ
b3NpdGlvbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBYnNvbHV0ZTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBGaXhlZFBvc2l0aW9uOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUZpeGVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0aWNreVBv
c2l0aW9uOgogI2lmIEVOQUJMRShDU1NfU1RJQ0tZX1BPU0lUSU9OKQotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0U3RpY2t5OworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVdlYmtpdFN0aWNreTsKICNlbmRpZgotICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTdGF0aWM6Ci0gICAgICAgICAgICByZXR1
cm4gU3RhdGljUG9zaXRpb247Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVSZWxhdGl2ZToKLSAgICAg
ICAgICAgIHJldHVybiBSZWxhdGl2ZVBvc2l0aW9uOwotICAgICAgICBjYXNlIENTU1ZhbHVlQWJz
b2x1dGU6Ci0gICAgICAgICAgICByZXR1cm4gQWJzb2x1dGVQb3NpdGlvbjsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUZpeGVkOgotICAgICAgICAgICAgcmV0dXJuIEZpeGVkUG9zaXRpb247CisgICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlU3RhdGljOgorICAg
ICAgICByZXR1cm4gU3RhdGljUG9zaXRpb247CisgICAgY2FzZSBDU1NWYWx1ZVJlbGF0aXZlOgor
ICAgICAgICByZXR1cm4gUmVsYXRpdmVQb3NpdGlvbjsKKyAgICBjYXNlIENTU1ZhbHVlQWJzb2x1
dGU6CisgICAgICAgIHJldHVybiBBYnNvbHV0ZVBvc2l0aW9uOworICAgIGNhc2UgQ1NTVmFsdWVG
aXhlZDoKKyAgICAgICAgcmV0dXJuIEZpeGVkUG9zaXRpb247CiAjaWYgRU5BQkxFKENTU19TVElD
S1lfUE9TSVRJT04pCi0gICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRTdGlja3k6Ci0gICAgICAg
ICAgICByZXR1cm4gU3RpY2t5UG9zaXRpb247CisgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdFN0aWNr
eToKKyAgICAgICAgcmV0dXJuIFN0aWNreVBvc2l0aW9uOwogI2VuZGlmCisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0y
MTkzLDM3ICsyMjYyLDM5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFUG9zaXRpb24oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVSZXNpemUgZSkKICAgICA6IENTU1ZhbHVlKFByaW1p
dGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAg
bV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAg
ICAgICAgY2FzZSBSRVNJWkVfQk9USDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUJvdGg7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSRVNJWkVfSE9SSVpP
TlRBTDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhvcml6b250YWw7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSRVNJWkVfVkVSVElDQUw6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWZXJ0aWNhbDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFJFU0laRV9OT05FOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUkVTSVpFX0JPVEg6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90aDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBSRVNJWkVfSE9SSVpPTlRBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVIb3Jpem9udGFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJFU0laRV9WRVJU
SUNBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBSRVNJWkVfTk9ORToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUmVzaXplKCkgY29uc3QKIHsKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJvdGg6Ci0g
ICAgICAgICAgICByZXR1cm4gUkVTSVpFX0JPVEg7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVIb3Jp
em9udGFsOgotICAgICAgICAgICAgcmV0dXJuIFJFU0laRV9IT1JJWk9OVEFMOwotICAgICAgICBj
YXNlIENTU1ZhbHVlVmVydGljYWw6Ci0gICAgICAgICAgICByZXR1cm4gUkVTSVpFX1ZFUlRJQ0FM
OwotICAgICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyAvLyBEZXBlbmRzIG9uIHNldHRpbmdzLCB0aHVzIHNob3VsZCBiZSBoYW5kbGVkIGJ5
IHRoZSBjYWxsZXIuCi0gICAgICAgICAgICByZXR1cm4gUkVTSVpFX05PTkU7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVOb25lOgotICAgICAgICAgICAgcmV0dXJuIFJFU0laRV9OT05FOworICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUJvdGg6CisgICAgICAg
IHJldHVybiBSRVNJWkVfQk9USDsKKyAgICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRhbDoKKyAgICAg
ICAgcmV0dXJuIFJFU0laRV9IT1JJWk9OVEFMOworICAgIGNhc2UgQ1NTVmFsdWVWZXJ0aWNhbDoK
KyAgICAgICAgcmV0dXJuIFJFU0laRV9WRVJUSUNBTDsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIERlcGVuZHMgb24gc2V0dGluZ3MsIHRo
dXMgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGNhbGxlci4KKyAgICAgICAgcmV0dXJuIFJFU0la
RV9OT05FOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAgICByZXR1cm4gUkVTSVpFX05P
TkU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0yMjMzLDI0ICsyMzA0LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUmVzaXplKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVGFibGVMYXlvdXQgZSkK
ICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsK
ICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBUQVVUTzoKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBURklYRUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGaXhlZDsKLSAg
ICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFVVE86CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBURklYRUQ6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRml4ZWQ7CisgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVU
YWJsZUxheW91dCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVGaXhlZDoKLSAgICAgICAgICAgIHJldHVybiBURklYRUQ7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIFRBVVRPOworICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUZpeGVkOgorICAgICAg
ICByZXR1cm4gVEZJWEVEOworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4g
VEFVVE87CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC0yMjYwLDQ4ICsyMzMzLDQ4IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVGFibGVMYXlvdXQoKSBjb25zdAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVUZXh0QWxp
Z24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxV
RV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRBU1RBUlQ6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXJ0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVN0YXJ0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRBRU5EOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRW5kOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExFRlQ6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TGVmdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSSUdIVDoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
UmlnaHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ0VOVEVSOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ2VudGVyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEpVU1RJRlk6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUp1c3RpZnk7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlSnVzdGlmeTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXRUJLSVRfTEVGVDoK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0TGVmdDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRMZWZ0OwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFdFQktJVF9SSUdIVDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0
UmlnaHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0UmlnaHQ7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgV0VCS0lUX0NFTlRFUjoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlV2Via2l0Q2VudGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVdlYmtpdENlbnRlcjsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRBbGlnbigpIGNvbnN0
CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0QXV0bzogLy8gTGVnYWN5IC13ZWJraXQt
YXV0by4gRXFpdXZhbGVudCB0byBzdGFydC4KICAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CiAgICAg
ICAgIHJldHVybiBUQVNUQVJUOwogICAgIGNhc2UgQ1NTVmFsdWVFbmQ6CiAgICAgICAgIHJldHVy
biBUQUVORDsKICAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHRB
bGlnbj4obV92YWx1ZS5pZGVudCAtIENTU1ZhbHVlTGVmdCk7CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxFVGV4dEFsaWduPihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1ZUxlZnQpOwogICAg
IH0KIH0KIApAQCAtMjMwOSwzNSArMjM4MiwzNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRBbGlnbigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dEFsaWduTGFzdCBlKQog
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwog
ICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dEFsaWduTGFzdFN0YXJ0OgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTdGFydDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTdGFydDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25MYXN0RW5k
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlRW5kOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbGln
bkxhc3RMZWZ0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMZWZ0OworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVGV4dEFsaWduTGFzdFJpZ2h0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVS
aWdodDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25MYXN0Q2VudGVyOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Q2VudGVyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbGlnbkxhc3RKdXN0aWZ5Ogot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVKdXN0aWZ5OworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUp1c3RpZnk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4
dEFsaWduTGFzdEF1dG86Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
VGV4dEFsaWduTGFzdCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Cisg
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAg
ICAgICAgcmV0dXJuIFRleHRBbGlnbkxhc3RBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVTdGFydDoK
QEAgLTIzNTIsNiArMjQyNSw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBUZXh0QWxpZ25MYXN0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIFRleHRBbGln
bkxhc3RDZW50ZXI7CiAgICAgY2FzZSBDU1NWYWx1ZUp1c3RpZnk6CiAgICAgICAgIHJldHVybiBU
ZXh0QWxpZ25MYXN0SnVzdGlmeTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIzNjEsMzUgKzI0MzYsMzUgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRBbGlnbkxhc3Qo
KSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKFRleHRKdXN0aWZ5IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsK
LSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0SnVz
dGlmeUF1dG86Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBUZXh0SnVzdGlmeU5vbmU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBUZXh0SnVzdGlmeUludGVyV29yZDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlSW50ZXJXb3JkOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlu
dGVyV29yZDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0SnVzdGlmeUludGVySWRlb2dy
YXBoOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVJbnRlcklkZW9ncmFwaDsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbnRlcklkZW9ncmFwaDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUZXh0SnVzdGlmeUludGVyQ2x1c3RlcjoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlSW50ZXJDbHVzdGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUludGVyQ2x1c3RlcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0SnVz
dGlmeURpc3RyaWJ1dGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURpc3RyaWJ1
dGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGlzdHJpYnV0ZTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0SnVzdGlmeUthc2hpZGE6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUthc2hpZGE7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlS2FzaGlkYTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEp1c3RpZnkoKSBjb25zdAogewotICAg
IHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBUZXh0SnVzdGlmeUF1dG87
CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CkBAIC0yNDA0LDYgKzI0NzksOCBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEp1c3RpZnkoKSBjb25zdAog
ICAgICAgICByZXR1cm4gVGV4dEp1c3RpZnlEaXN0cmlidXRlOwogICAgIGNhc2UgQ1NTVmFsdWVL
YXNoaWRhOgogICAgICAgICByZXR1cm4gVGV4dEp1c3RpZnlLYXNoaWRhOworICAgIGRlZmF1bHQ6
CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
MjQxMyw3ICsyNDkwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFRleHRKdXN0aWZ5KCkgY29uc3QKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIFRleHREZWNvcmF0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2gg
KG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNh
c2UgQ1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25Ob25lOwogICAg
IGNhc2UgQ1NTVmFsdWVVbmRlcmxpbmU6CkBAIC0yNDI0LDYgKzI1MDEsOCBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERlY29yYXRpb24oKSBjb25z
dAogICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25MaW5lVGhyb3VnaDsKICAgICBjYXNlIENT
U1ZhbHVlQmxpbms6CiAgICAgICAgIHJldHVybiBUZXh0RGVjb3JhdGlvbkJsaW5rOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpAQCAtMjQzMyw3ICsyNTEyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFRleHREZWNvcmF0aW9uKCkgY29uc3QKICNpZiBFTkFCTEUoQ1NTM19URVhU
KQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHREZWNv
cmF0aW9uU3R5bGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNvbGlkOgogICAg
ICAgICByZXR1cm4gVGV4dERlY29yYXRpb25TdHlsZVNvbGlkOwogICAgIGNhc2UgQ1NTVmFsdWVE
b3VibGU6CkBAIC0yNDQ0LDYgKzI1MjMsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERlY29yYXRpb25TdHlsZSgpIGNvbnN0CiAgICAgICAgIHJl
dHVybiBUZXh0RGVjb3JhdGlvblN0eWxlRGFzaGVkOwogICAgIGNhc2UgQ1NTVmFsdWVXYXZ5Ogog
ICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25TdHlsZVdhdnk7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yNDUz
LDE2ICsyNTM0LDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBUZXh0RGVjb3JhdGlvblN0eWxlKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0VW5kZXJsaW5lUG9zaXRpb24gZSkK
ICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsK
ICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbkF1dG86Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0VW5kZXJs
aW5lUG9zaXRpb25BbHBoYWJldGljOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVB
bHBoYWJldGljOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFscGhhYmV0aWM7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXI6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVVuZGVyOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVVuZGVyOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTI0NzEs
MTMgKzI1NTIsMTUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1By
aW1pdGl2ZVZhbHVlKFRleHRVbmRlcmxpbmVQb3NpdGlvbiBlKQogCiB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFVuZGVybGluZVBvc2l0aW9uKCkgY29u
c3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gVGV4dFVu
ZGVybGluZVBvc2l0aW9uQXV0bzsKICAgICBjYXNlIENTU1ZhbHVlQWxwaGFiZXRpYzoKICAgICAg
ICAgcmV0dXJuIFRleHRVbmRlcmxpbmVQb3NpdGlvbkFscGhhYmV0aWM7CiAgICAgY2FzZSBDU1NW
YWx1ZVVuZGVyOgogICAgICAgICByZXR1cm4gVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXI7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IEltcGxl
bWVudCBzdXBwb3J0IGZvciAndW5kZXIgbGVmdCcgYW5kICd1bmRlciByaWdodCcgdmFsdWVzLgpA
QCAtMjQ5MCwzNCArMjU3MywzNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgVGV4dFVuZGVybGluZVBvc2l0aW9uKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVGV4dFNlY3VyaXR5IGUp
CiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7
CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgVFNOT05FOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFRTRElTQzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURpc2M7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUU0NJUkNMRToKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNpcmNsZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIFRTU1FVQVJFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3F1
YXJlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUU05PTkU6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUU0RJ
U0M6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGlzYzsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBUU0NJUkNMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVDaXJjbGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVFNTUVVBUkU6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlOworICAgICAgICBicmVhazsKICAgICB9CiB9
CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVGV4dFNl
Y3VyaXR5KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZU5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gVFNOT05FOwotICAgICAgICBj
YXNlIENTU1ZhbHVlRGlzYzoKLSAgICAgICAgICAgIHJldHVybiBUU0RJU0M7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVDaXJjbGU6Ci0gICAgICAgICAgICByZXR1cm4gVFNDSVJDTEU7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVTcXVhcmU6Ci0gICAgICAgICAgICByZXR1cm4gVFNTUVVBUkU7CisgICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAg
ICAgcmV0dXJuIFRTTk9ORTsKKyAgICBjYXNlIENTU1ZhbHVlRGlzYzoKKyAgICAgICAgcmV0dXJu
IFRTRElTQzsKKyAgICBjYXNlIENTU1ZhbHVlQ2lyY2xlOgorICAgICAgICByZXR1cm4gVFNDSVJD
TEU7CisgICAgY2FzZSBDU1NWYWx1ZVNxdWFyZToKKyAgICAgICAgcmV0dXJuIFRTU1FVQVJFOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpAQCAtMjUyNywzNCArMjYxMiwzNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRTZWN1cml0eSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVRleHRUcmFuc2Zvcm0g
ZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9J
RDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBDQVBJVEFMSVpFOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2FwaXRhbGl6ZTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFVQUEVSQ0FTRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZVVwcGVyY2FzZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExPV0VS
Q0FTRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxvd2VyY2FzZTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRUTk9ORToKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIENB
UElUQUxJWkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2FwaXRhbGl6ZTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBVUFBFUkNBU0U6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlVXBwZXJjYXNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExPV0VS
Q0FTRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMb3dlcmNhc2U7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgVFROT05FOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0VHJhbnNmb3JtKCkgY29uc3QKIHsK
LSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUNhcGl0
YWxpemU6Ci0gICAgICAgICAgICByZXR1cm4gQ0FQSVRBTElaRTsKLSAgICAgICAgY2FzZSBDU1NW
YWx1ZVVwcGVyY2FzZToKLSAgICAgICAgICAgIHJldHVybiBVUFBFUkNBU0U7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVMb3dlcmNhc2U6Ci0gICAgICAgICAgICByZXR1cm4gTE9XRVJDQVNFOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlTm9uZToKLSAgICAgICAgICAgIHJldHVybiBUVE5PTkU7CisgICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQ2FwaXRhbGl6ZToK
KyAgICAgICAgcmV0dXJuIENBUElUQUxJWkU7CisgICAgY2FzZSBDU1NWYWx1ZVVwcGVyY2FzZToK
KyAgICAgICAgcmV0dXJuIFVQUEVSQ0FTRTsKKyAgICBjYXNlIENTU1ZhbHVlTG93ZXJjYXNlOgor
ICAgICAgICByZXR1cm4gTE9XRVJDQVNFOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAg
ICByZXR1cm4gVFROT05FOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjU2NCwzMiArMjY1MSwzMiBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRUcmFuc2Zvcm0oKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEVVbmljb2RlQmlkaSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVUJOb3JtYWw6
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRW1i
ZWQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUVtYmVkOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVtYmVkOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92
ZXJyaWRlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCaWRpT3ZlcnJpZGU7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmlkaU92ZXJyaWRlOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIElzb2xhdGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVdlYmtpdElzb2xhdGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0
SXNvbGF0ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJc29sYXRlT3ZlcnJpZGU6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdElzb2xhdGVPdmVycmlkZTsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRJc29sYXRlT3ZlcnJpZGU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgUGxhaW50ZXh0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVXZWJraXRQbGFpbnRleHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlV2Via2l0UGxhaW50ZXh0OwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVW5pY29kZUJpZGkoKSBjb25z
dAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIFVCTm9y
bWFsOwogICAgIGNhc2UgQ1NTVmFsdWVFbWJlZDoKQEAgLTI2MDIsNiArMjY4OSw4IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVW5pY29kZUJpZGkoKSBj
b25zdAogICAgICAgICByZXR1cm4gSXNvbGF0ZU92ZXJyaWRlOwogICAgIGNhc2UgQ1NTVmFsdWVX
ZWJraXRQbGFpbnRleHQ6CiAgICAgICAgIHJldHVybiBQbGFpbnRleHQ7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0y
NjExLDI5ICsyNzAwLDMzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFVW5pY29kZUJpZGkoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVVc2VyRHJhZyBlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkg
ewotICAgICAgICBjYXNlIERSQUdfQVVUTzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUF1dG87Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEUkFHX05PTkU6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgRFJBR19FTEVNRU5UOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlRWxlbWVudDsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgRFJB
R19BVVRPOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRFJBR19OT05FOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRFJBR19FTEVNRU5UOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVsZW1lbnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2VyRHJhZygpIGNvbnN0CiB7Ci0gICAg
c3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAg
ICAgICAgICAgcmV0dXJuIERSQUdfQVVUTzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6Ci0g
ICAgICAgICAgICByZXR1cm4gRFJBR19OT05FOwotICAgICAgICBjYXNlIENTU1ZhbHVlRWxlbWVu
dDoKLSAgICAgICAgICAgIHJldHVybiBEUkFHX0VMRU1FTlQ7CisgICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0dXJuIERSQUdf
QVVUTzsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIERSQUdfTk9ORTsK
KyAgICBjYXNlIENTU1ZhbHVlRWxlbWVudDoKKyAgICAgICAgcmV0dXJuIERSQUdfRUxFTUVOVDsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTI2NDMsMjkgKzI3MzYsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2VyRHJhZygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVVzZXJNb2RpZnkgZSkKICAg
ICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAg
ICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBSRUFEX09OTFk6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVSZWFkT25seTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIFJFQURfV1JJVEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVS
ZWFkV3JpdGU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSRUFEX1dSSVRFX1BM
QUlOVEVYVF9PTkxZOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmVhZFdy
aXRlUGxhaW50ZXh0T25seTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUkVBRF9PTkxZ
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlYWRPbmx5OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFJFQURfV1JJVEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlUmVhZFdyaXRlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJFQURfV1JJVEVfUExB
SU5URVhUX09OTFk6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmVhZFdyaXRl
UGxhaW50ZXh0T25seTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVzZXJNb2RpZnkoKSBjb25zdAogewot
ICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZVJlYWRPbmx5OgogICAgICAgICByZXR1cm4gUkVBRF9PTkxZ
OwogICAgIGNhc2UgQ1NTVmFsdWVSZWFkV3JpdGU6CiAgICAgICAgIHJldHVybiBSRUFEX1dSSVRF
OwogICAgIGNhc2UgQ1NTVmFsdWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5OgogICAgICAgICByZXR1
cm4gUkVBRF9XUklURV9QTEFJTlRFWFRfT05MWTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI2NzUsMzEgKzI3NzAs
MzMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2Vy
TW9kaWZ5KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShFVXNlclNlbGVjdCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xh
c3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1p
dGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBj
YXNlIFNFTEVDVF9OT05FOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9u
ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNFTEVDVF9URVhUOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4dDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFNFTEVDVF9BTEw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVBbGw7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIFNFTEVDVF9OT05FOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgU0VMRUNUX1RFWFQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4
dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTRUxFQ1RfQUxMOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUFsbDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVzZXJTZWxlY3QoKSBj
b25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1Zh
bHVlQXV0bzoKLSAgICAgICAgICAgIHJldHVybiBTRUxFQ1RfVEVYVDsKLSAgICAgICAgY2FzZSBD
U1NWYWx1ZU5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gU0VMRUNUX05PTkU7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVUZXh0OgotICAgICAgICAgICAgcmV0dXJuIFNFTEVDVF9URVhUOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlQWxsOgotICAgICAgICAgICAgcmV0dXJuIFNFTEVDVF9BTEw7CisgICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAg
ICAgcmV0dXJuIFNFTEVDVF9URVhUOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAgICBy
ZXR1cm4gU0VMRUNUX05PTkU7CisgICAgY2FzZSBDU1NWYWx1ZVRleHQ6CisgICAgICAgIHJldHVy
biBTRUxFQ1RfVEVYVDsKKyAgICBjYXNlIENTU1ZhbHVlQWxsOgorICAgICAgICByZXR1cm4gU0VM
RUNUX0FMTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI3MDksNDMgKzI4MDYsNDMgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2VyU2VsZWN0KCkgY29uc3QKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVmVydGlj
YWxBbGlnbiBhKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NT
X1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoYSkgewogICAgIGNhc2UgVE9QOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVUb3A7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlVG9wOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJPVFRPTToKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQm90dG9tOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUJvdHRvbTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNSURETEU6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1pZGRsZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVNaWRkbGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQkFTRUxJTkU6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJhc2VsaW5lOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUJhc2VsaW5lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRFWFRf
Qk9UVE9NOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUZXh0Qm90dG9tOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRCb3R0b207CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgVEVYVF9UT1A6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRl
eHRUb3A7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dFRvcDsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBTVUI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVN1YjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdWI7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgU1VQRVI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN1
cGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN1cGVyOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEJBU0VMSU5FX01JRERMRToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlV2Via2l0QmFzZWxpbmVNaWRkbGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlV2Via2l0QmFzZWxpbmVNaWRkbGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TEVOR1RIOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVJbnZhbGlkOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUludmFsaWQ7CiAgICAgfQogfQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVZlcnRpY2FsQWxpZ24oKSBj
b25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVRvcDoKICAgICAgICAgcmV0dXJuIFRPUDsK
ICAgICBjYXNlIENTU1ZhbHVlQm90dG9tOgpAQCAtMjc2NCw2ICsyODYxLDggQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVWZXJ0aWNhbEFsaWduKCkgY29u
c3QKICAgICAgICAgcmV0dXJuIFNVUEVSOwogICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRCYXNlbGlu
ZU1pZGRsZToKICAgICAgICAgcmV0dXJuIEJBU0VMSU5FX01JRERMRTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI3
NzMsMjkgKzI4NzIsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIEVWZXJ0aWNhbEFsaWduKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVmlzaWJpbGl0eSBlKQogICAgIDogQ1NTVmFs
dWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVO
VDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAo
ZSkgewotICAgICAgICBjYXNlIFZJU0lCTEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVWaXNpYmxlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSElEREVO
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGlkZGVuOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ09MTEFQU0U6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVDb2xsYXBzZTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgVklT
SUJMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaXNpYmxlOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEhJRERFTjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVIaWRkZW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ09MTEFQU0U6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sbGFwc2U7CisgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVW
aXNpYmlsaXR5KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZUhpZGRlbjoKLSAgICAgICAgICAgIHJldHVybiBISURERU47Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlOgotICAgICAgICAgICAgcmV0dXJuIFZJU0lCTEU7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVDb2xsYXBzZToKLSAgICAgICAgICAgIHJldHVybiBDT0xMQVBT
RTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVIaWRk
ZW46CisgICAgICAgIHJldHVybiBISURERU47CisgICAgY2FzZSBDU1NWYWx1ZVZpc2libGU6Cisg
ICAgICAgIHJldHVybiBWSVNJQkxFOworICAgIGNhc2UgQ1NTVmFsdWVDb2xsYXBzZToKKyAgICAg
ICAgcmV0dXJuIENPTExBUFNFOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0K
IAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjgwNSw0NCArMjkwNiw0NiBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVZpc2liaWxpdHkoKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEVXaGl0ZVNwYWNlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgTk9STUFM
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9ybWFsOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFJFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlUHJlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFJFX1dSQVA6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVQcmVXcmFwOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFJFX0xJTkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVQcmVMaW5lOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Tk9XUkFQOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm93cmFwOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgS0hUTUxfTk9XUkFQOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0Tm93cmFwOwotICAgICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBOT1JNQUw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9y
bWFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBSRToKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVQcmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJFX1dSQVA6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJlV3JhcDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBQUkVfTElORToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQ
cmVMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5PV1JBUDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3dyYXA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgS0hU
TUxfTk9XUkFQOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdE5vd3Jh
cDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVdoaXRlU3BhY2UoKSBjb25zdAogewotICAgIHN3aXRjaCAo
bV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0Tm93cmFwOgotICAg
ICAgICAgICAgcmV0dXJuIEtIVE1MX05PV1JBUDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU5vd3Jh
cDoKLSAgICAgICAgICAgIHJldHVybiBOT1dSQVA7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVQcmU6
Ci0gICAgICAgICAgICByZXR1cm4gUFJFOwotICAgICAgICBjYXNlIENTU1ZhbHVlUHJlV3JhcDoK
LSAgICAgICAgICAgIHJldHVybiBQUkVfV1JBUDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVByZUxp
bmU6Ci0gICAgICAgICAgICByZXR1cm4gUFJFX0xJTkU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVO
b3JtYWw6Ci0gICAgICAgICAgICByZXR1cm4gTk9STUFMOworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdE5vd3JhcDoKKyAgICAgICAgcmV0dXJu
IEtIVE1MX05PV1JBUDsKKyAgICBjYXNlIENTU1ZhbHVlTm93cmFwOgorICAgICAgICByZXR1cm4g
Tk9XUkFQOworICAgIGNhc2UgQ1NTVmFsdWVQcmU6CisgICAgICAgIHJldHVybiBQUkU7CisgICAg
Y2FzZSBDU1NWYWx1ZVByZVdyYXA6CisgICAgICAgIHJldHVybiBQUkVfV1JBUDsKKyAgICBjYXNl
IENTU1ZhbHVlUHJlTGluZToKKyAgICAgICAgcmV0dXJuIFBSRV9MSU5FOworICAgIGNhc2UgQ1NT
VmFsdWVOb3JtYWw6CisgICAgICAgIHJldHVybiBOT1JNQUw7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yODUyLDI5
ICsyOTU1LDMxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFV2hpdGVTcGFjZSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVdvcmRCcmVhayBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAg
ICAgICBjYXNlIE5vcm1hbFdvcmRCcmVhazoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZU5vcm1hbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEJyZWFrQWxs
V29yZEJyZWFrOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQnJlYWtBbGw7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCcmVha1dvcmRCcmVhazoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJyZWFrV29yZDsKLSAgICAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTm9ybWFsV29yZEJyZWFrOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha0FsbFdvcmRC
cmVhazoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCcmVha0FsbDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCcmVha1dvcmRCcmVhazoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVCcmVha1dvcmQ7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVXb3JkQnJlYWsoKSBj
b25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1Zh
bHVlQnJlYWtBbGw6Ci0gICAgICAgICAgICByZXR1cm4gQnJlYWtBbGxXb3JkQnJlYWs7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVCcmVha1dvcmQ6Ci0gICAgICAgICAgICByZXR1cm4gQnJlYWtXb3Jk
QnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6Ci0gICAgICAgICAgICByZXR1cm4g
Tm9ybWFsV29yZEJyZWFrOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2Fz
ZSBDU1NWYWx1ZUJyZWFrQWxsOgorICAgICAgICByZXR1cm4gQnJlYWtBbGxXb3JkQnJlYWs7Cisg
ICAgY2FzZSBDU1NWYWx1ZUJyZWFrV29yZDoKKyAgICAgICAgcmV0dXJuIEJyZWFrV29yZEJyZWFr
OworICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CisgICAgICAgIHJldHVybiBOb3JtYWxXb3JkQnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0yODg0LDI0ICsyOTg5LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFV29yZEJyZWFrKCkgY29uc3QKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFT3ZlcmZsb3dXcmFw
IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVu
aXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVf
SUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgTm9ybWFsT3ZlcmZsb3dXcmFwOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9ybWFsOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQnJlYWtPdmVyZmxvd1dyYXA6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVCcmVha1dvcmQ7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBj
YXNlIE5vcm1hbE92ZXJmbG93V3JhcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVOb3JtYWw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtPdmVyZmxvd1dyYXA6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQnJlYWtXb3JkOworICAgICAgICBicmVh
azsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFT3ZlcmZsb3dXcmFwKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQp
IHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJyZWFrV29yZDoKLSAgICAgICAgICAgIHJldHVybiBC
cmVha092ZXJmbG93V3JhcDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKLSAgICAgICAg
ICAgIHJldHVybiBOb3JtYWxPdmVyZmxvd1dyYXA7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVl
SUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQnJlYWtXb3JkOgorICAgICAgICByZXR1cm4gQnJlYWtP
dmVyZmxvd1dyYXA7CisgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKKyAgICAgICAgcmV0dXJuIE5v
cm1hbE92ZXJmbG93V3JhcDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI5MTEsMjQgKzMwMTgsMjYgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVPdmVyZmxvd1dyYXAoKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKFRleHREaXJlY3Rpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBMVFI6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMdHI7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBSVEw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVSdGw7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIExUUjoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMdHI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUlRM
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJ0bDsKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgVGV4dERpcmVjdGlvbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7
Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVMdHI6Ci0gICAgICAgICAgICByZXR1cm4gTFRSOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlUnRsOgotICAgICAgICAgICAgcmV0dXJuIFJUTDsKKyAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVMdHI6CisgICAgICAgIHJl
dHVybiBMVFI7CisgICAgY2FzZSBDU1NWYWx1ZVJ0bDoKKyAgICAgICAgcmV0dXJuIFJUTDsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTI5MzgsMjYgKzMwNDcsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIFRleHREaXJlY3Rpb24oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFdyaXRpbmdNb2RlIGUpCiAg
ICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAg
ICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIb3Jpem9udGFsVGI7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlSG9yaXpvbnRhbFRiOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVZlcnRpY2FsUmw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmVydGljYWxS
bDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgotICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWZXJ0aWNhbExyOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVZlcnRpY2FsTHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Qm90dG9tVG9Ub3BXcml0aW5nTW9kZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
SG9yaXpvbnRhbEJ0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhvcml6b250
YWxCdDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV3JpdGluZ01vZGUoKSBjb25zdAogewotICAgIHN3aXRj
aCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZUhvcml6b250YWxUYjoKICAgICAgICAgcmV0dXJuIFRvcFRvQm90dG9tV3Jp
dGluZ01vZGU7CiAgICAgY2FzZSBDU1NWYWx1ZVZlcnRpY2FsUmw6CkBAIC0yOTY2LDYgKzMwNzUs
OCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV3JpdGlu
Z01vZGUoKSBjb25zdAogICAgICAgICByZXR1cm4gTGVmdFRvUmlnaHRXcml0aW5nTW9kZTsKICAg
ICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRhbEJ0OgogICAgICAgICByZXR1cm4gQm90dG9tVG9Ub3BX
cml0aW5nTW9kZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI5NzUsMjQgKzMwODYsMjYgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdyaXRpbmdNb2RlKCkgY29uc3QKIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0
Q29tYmluZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NT
X1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dENvbWJpbmVOb25lOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dENvbWJp
bmVIb3Jpem9udGFsOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIb3Jpem9udGFs
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhvcml6b250YWw7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFRleHRDb21iaW5lKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRl
bnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVO
b25lOgogICAgICAgICByZXR1cm4gVGV4dENvbWJpbmVOb25lOwogICAgIGNhc2UgQ1NTVmFsdWVI
b3Jpem9udGFsOgogICAgICAgICByZXR1cm4gVGV4dENvbWJpbmVIb3Jpem9udGFsOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpAQCAtMzAwMiwyNCArMzExNSwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgVGV4dENvbWJpbmUoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFJ1YnlQb3NpdGlvbiBwb3NpdGlvbikK
ICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsK
ICAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7CiAgICAgY2FzZSBSdWJ5UG9zaXRpb25CZWZvcmU6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJlZm9yZTsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVCZWZvcmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUnVieVBv
c2l0aW9uQWZ0ZXI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFmdGVyOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFmdGVyOwogICAgICAgICBicmVhazsKICAg
ICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBS
dWJ5UG9zaXRpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJlZm9yZToKICAg
ICAgICAgcmV0dXJuIFJ1YnlQb3NpdGlvbkJlZm9yZTsKICAgICBjYXNlIENTU1ZhbHVlQWZ0ZXI6
CiAgICAgICAgIHJldHVybiBSdWJ5UG9zaXRpb25BZnRlcjsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTMwMjksMjQg
KzMxNDQsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFJ1YnlQb3NpdGlvbigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dEVtcGhhc2lzUG9zaXRpb24gcG9zaXRpb24pCiAgICAg
OiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAg
c3dpdGNoIChwb3NpdGlvbikgewogICAgIGNhc2UgVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPdmVyOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU92ZXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEVtcGhh
c2lzUG9zaXRpb25VbmRlcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVW5kZXI7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVW5kZXI7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
aWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFs
dWVPdmVyOgogICAgICAgICByZXR1cm4gVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyOwogICAgIGNh
c2UgQ1NTVmFsdWVVbmRlcjoKICAgICAgICAgcmV0dXJuIFRleHRFbXBoYXNpc1Bvc2l0aW9uVW5k
ZXI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0zMDU2LDI0ICszMTczLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RW1waGFzaXNQb3NpdGlvbigpIGNvbnN0CiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4
dE92ZXJmbG93IG92ZXJmbG93KQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAob3ZlcmZsb3cpIHsKICAgICBjYXNlIFRl
eHRPdmVyZmxvd0NsaXA6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNsaXA7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2xpcDsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBUZXh0T3ZlcmZsb3dFbGxpcHNpczoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlRWxsaXBzaXM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRWxsaXBz
aXM7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRPdmVyZmxvdygpIGNvbnN0CiB7Ci0gICAgc3dpdGNo
IChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBj
YXNlIENTU1ZhbHVlQ2xpcDoKICAgICAgICAgcmV0dXJuIFRleHRPdmVyZmxvd0NsaXA7CiAgICAg
Y2FzZSBDU1NWYWx1ZUVsbGlwc2lzOgogICAgICAgICByZXR1cm4gVGV4dE92ZXJmbG93RWxsaXBz
aXM7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0zMDgzLDI0ICszMjAyLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0T3ZlcmZsb3coKSBjb25zdAogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRFbXBoYXNp
c0ZpbGwgZmlsbCkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGZpbGwpIHsKICAgICBjYXNlIFRleHRFbXBoYXNpc0Zp
bGxGaWxsZWQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZpbGxlZDsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGaWxsZWQ7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgVGV4dEVtcGhhc2lzRmlsbE9wZW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZU9wZW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3BlbjsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgVGV4dEVtcGhhc2lzRmlsbCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3Zh
bHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENT
U1ZhbHVlRmlsbGVkOgogICAgICAgICByZXR1cm4gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZDsKICAg
ICBjYXNlIENTU1ZhbHVlT3BlbjoKICAgICAgICAgcmV0dXJuIFRleHRFbXBoYXNpc0ZpbGxPcGVu
OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtMzExMCwzNSArMzIzMSwzNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEVtcGhhc2lzRmlsbCgpIGNvbnN0CiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dEVtcGhh
c2lzTWFyayBtYXJrKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAobWFyaykgewogICAgIGNhc2UgVGV4dEVtcGhhc2lz
TWFya0RvdDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRG90OworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURvdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBU
ZXh0RW1waGFzaXNNYXJrQ2lyY2xlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVD
aXJjbGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2lyY2xlOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtEb3VibGVDaXJjbGU6Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURvdWJsZUNpcmNsZTsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVEb3VibGVDaXJjbGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
VGV4dEVtcGhhc2lzTWFya1RyaWFuZ2xlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVUcmlhbmdsZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUcmlhbmdsZTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrU2VzYW1lOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTZXNhbWU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU2VzYW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNp
c01hcmtOb25lOgogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0F1dG86CiAgICAgY2FzZSBUZXh0
RW1waGFzaXNNYXJrQ3VzdG9tOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVOb25lOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RW1waGFzaXNNYXJrKCkgY29u
c3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gVGV4dEVt
cGhhc2lzTWFya05vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZURvdDoKQEAgLTMxNTEsNiArMzI3Miw4
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RW1w
aGFzaXNNYXJrKCkgY29uc3QKICAgICAgICAgcmV0dXJuIFRleHRFbXBoYXNpc01hcmtUcmlhbmds
ZTsKICAgICBjYXNlIENTU1ZhbHVlU2VzYW1lOgogICAgICAgICByZXR1cm4gVGV4dEVtcGhhc2lz
TWFya1Nlc2FtZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTMxNjAsMjYgKzMyODMsMjYgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRFbXBoYXNpc01hcmsoKSBjb25z
dAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KFRleHRPcmllbnRhdGlvbiBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dE9yaWVu
dGF0aW9uU2lkZXdheXM6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNpZGV3YXlz
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNpZGV3YXlzOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFRleHRPcmllbnRhdGlvblNpZGV3YXlzUmlnaHQ6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNpZGV3YXlzUmlnaHQ7CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlU2lkZXdheXNSaWdodDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBU
ZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVWZXJ0aWNhbFJpZ2h0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZl
cnRpY2FsUmlnaHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dE9yaWVudGF0aW9uVXBy
aWdodDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXByaWdodDsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVcHJpZ2h0OwogICAgICAgICBicmVhazsKICAgICB9
CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0
T3JpZW50YXRpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNpZGV3YXlzOgog
ICAgICAgICByZXR1cm4gVGV4dE9yaWVudGF0aW9uU2lkZXdheXM7CiAgICAgY2FzZSBDU1NWYWx1
ZVNpZGV3YXlzUmlnaHQ6CkBAIC0zMTg4LDYgKzMzMTEsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dE9yaWVudGF0aW9uKCkgY29uc3QKICAgICAg
ICAgcmV0dXJuIFRleHRPcmllbnRhdGlvblZlcnRpY2FsUmlnaHQ7CiAgICAgY2FzZSBDU1NWYWx1
ZVVwcmlnaHQ6CiAgICAgICAgIHJldHVybiBUZXh0T3JpZW50YXRpb25VcHJpZ2h0OworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpAQCAtMzE5Nyw2NCArMzMyMiw2NiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgVGV4dE9yaWVudGF0aW9uKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFUG9pbnRlckV2ZW50cyBlKQog
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwog
ICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIFBFX05PTkU6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgUEVfU1RST0tFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3Ryb2tl
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUEVfRklMTDoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZpbGw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBQRV9QQUlOVEVEOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
UGFpbnRlZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBFX1ZJU0lCTEU6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWaXNpYmxlOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgUEVfVklTSUJMRV9TVFJPS0U6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVWaXNpYmxlc3Ryb2tlOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgUEVfVklTSUJMRV9GSUxMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlVmlzaWJsZWZpbGw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQ
RV9WSVNJQkxFX1BBSU5URUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVW
aXNpYmxlcGFpbnRlZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBFX0FVVE86
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgUEVfQUxMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlQWxsOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQRV9OT05FOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUEVfU1RST0tFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0cm9r
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQRV9GSUxMOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUZpbGw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUEVfUEFJTlRF
RDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQYWludGVkOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFBFX1ZJU0lCTEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlVmlzaWJsZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQRV9WSVNJQkxFX1NUUk9L
RToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaXNpYmxlc3Ryb2tlOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBFX1ZJU0lCTEVfRklMTDoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVWaXNpYmxlZmlsbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQ
RV9WSVNJQkxFX1BBSU5URUQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmlz
aWJsZXBhaW50ZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUEVfQVVUTzoKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBFX0FMTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbGw7CisgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVQb2ludGVyRXZlbnRzKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
aWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFsbDoKLSAgICAgICAgICAgIHJldHVybiBQ
RV9BTEw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIFBF
X0FVVE87Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb25lOgotICAgICAgICAgICAgcmV0dXJuIFBF
X05PTkU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlcGFpbnRlZDoKLSAgICAgICAgICAg
IHJldHVybiBQRV9WSVNJQkxFX1BBSU5URUQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxl
ZmlsbDoKLSAgICAgICAgICAgIHJldHVybiBQRV9WSVNJQkxFX0ZJTEw7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVWaXNpYmxlc3Ryb2tlOgotICAgICAgICAgICAgcmV0dXJuIFBFX1ZJU0lCTEVfU1RS
T0tFOwotICAgICAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZToKLSAgICAgICAgICAgIHJldHVybiBQ
RV9WSVNJQkxFOwotICAgICAgICBjYXNlIENTU1ZhbHVlUGFpbnRlZDoKLSAgICAgICAgICAgIHJl
dHVybiBQRV9QQUlOVEVEOwotICAgICAgICBjYXNlIENTU1ZhbHVlRmlsbDoKLSAgICAgICAgICAg
IHJldHVybiBQRV9GSUxMOwotICAgICAgICBjYXNlIENTU1ZhbHVlU3Ryb2tlOgotICAgICAgICAg
ICAgcmV0dXJuIFBFX1NUUk9LRTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAg
IGNhc2UgQ1NTVmFsdWVBbGw6CisgICAgICAgIHJldHVybiBQRV9BTEw7CisgICAgY2FzZSBDU1NW
YWx1ZUF1dG86CisgICAgICAgIHJldHVybiBQRV9BVVRPOworICAgIGNhc2UgQ1NTVmFsdWVOb25l
OgorICAgICAgICByZXR1cm4gUEVfTk9ORTsKKyAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZXBhaW50
ZWQ6CisgICAgICAgIHJldHVybiBQRV9WSVNJQkxFX1BBSU5URUQ7CisgICAgY2FzZSBDU1NWYWx1
ZVZpc2libGVmaWxsOgorICAgICAgICByZXR1cm4gUEVfVklTSUJMRV9GSUxMOworICAgIGNhc2Ug
Q1NTVmFsdWVWaXNpYmxlc3Ryb2tlOgorICAgICAgICByZXR1cm4gUEVfVklTSUJMRV9TVFJPS0U7
CisgICAgY2FzZSBDU1NWYWx1ZVZpc2libGU6CisgICAgICAgIHJldHVybiBQRV9WSVNJQkxFOwor
ICAgIGNhc2UgQ1NTVmFsdWVQYWludGVkOgorICAgICAgICByZXR1cm4gUEVfUEFJTlRFRDsKKyAg
ICBjYXNlIENTU1ZhbHVlRmlsbDoKKyAgICAgICAgcmV0dXJuIFBFX0ZJTEw7CisgICAgY2FzZSBD
U1NWYWx1ZVN0cm9rZToKKyAgICAgICAgcmV0dXJuIFBFX1NUUk9LRTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTMy
NjQsMzIgKzMzOTEsMzQgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIEVQb2ludGVyRXZlbnRzKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250RGVzY3JpcHRpb246Oktlcm5pbmcga2Vy
bmluZykKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxV
RV9JRDsKICAgICBzd2l0Y2ggKGtlcm5pbmcpIHsKICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6
QXV0b0tlcm5pbmc6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgRm9udERlc2NyaXB0aW9uOjpOb3JtYWxLZXJuaW5nOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Tm9ybWFsOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBGb250RGVzY3JpcHRpb246Ok5vbmVL
ZXJuaW5nOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVB
dXRvOworICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKIH0KIAogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnREZXNjcmlwdGlvbjo6S2Vy
bmluZygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0
dXJuIEZvbnREZXNjcmlwdGlvbjo6QXV0b0tlcm5pbmc7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1h
bDoKICAgICAgICAgcmV0dXJuIEZvbnREZXNjcmlwdGlvbjo6Tm9ybWFsS2VybmluZzsKICAgICBj
YXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIEZvbnREZXNjcmlwdGlvbjo6Tm9uZUtl
cm5pbmc7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC0zMjk5LDI5ICszNDI4LDI5IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250RGVzY3JpcHRpb246Oktlcm5pbmcoKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZykKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2
ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKHNtb290aGluZykg
ewogICAgIGNhc2UgQXV0b1Ntb290aGluZzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlQXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAg
ICByZXR1cm47CiAgICAgY2FzZSBOb1Ntb290aGluZzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwog
ICAgICAgICByZXR1cm47CiAgICAgY2FzZSBBbnRpYWxpYXNlZDoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlQW50aWFsaWFzZWQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQW50aWFsaWFzZWQ7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1YnBpeGVsQW50
aWFsaWFzZWQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN1YnBpeGVsQW50aWFs
aWFzZWQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3VicGl4ZWxBbnRpYWxp
YXNlZDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVBdXRvOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRm9udFNtb290aGluZ01vZGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92
YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBBdXRvU21vb3RoaW5nOwogICAgIGNhc2UgQ1NT
VmFsdWVOb25lOgpAQCAtMzMzMCw2ICszNDU5LDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRTbW9vdGhpbmdNb2RlKCkgY29uc3QKICAgICAgICAg
cmV0dXJuIEFudGlhbGlhc2VkOwogICAgIGNhc2UgQ1NTVmFsdWVTdWJwaXhlbEFudGlhbGlhc2Vk
OgogICAgICAgICByZXR1cm4gU3VicGl4ZWxBbnRpYWxpYXNlZDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTMzMzks
NDQgKzM0NzAsNDQgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEZvbnRTbW9vdGhpbmdNb2RlKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250V2VpZ2h0IHdlaWdodCkKICAgICA6IENT
U1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1Nf
SURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0
Y2ggKHdlaWdodCkgewogICAgIGNhc2UgRm9udFdlaWdodDkwMDoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlOTAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTkw
MDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFdlaWdodDgwMDoKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlODAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZTgwMDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFdlaWdodDcwMDoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlNzAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZTcwMDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFdlaWdodDYwMDoK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlNjAwOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZTYwMDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFdlaWdo
dDUwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlNTAwOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTUwMDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9u
dFdlaWdodDQwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlNDAwOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTQwMDsKICAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgRm9udFdlaWdodDMwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlMzAwOwor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTMwMDsKICAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgRm9udFdlaWdodDIwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
MjAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTIwMDsKICAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgRm9udFdlaWdodDEwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlMTAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTEwMDsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU5vcm1hbDsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEZvbnRXZWlnaHQoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewor
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJvbGQ6CiAg
ICAgICAgIHJldHVybiBGb250V2VpZ2h0Qm9sZDsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgpA
QCAtMzM5OSw2ICszNTMwLDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEZvbnRXZWlnaHQoKSBjb25zdAogICAgICAgICByZXR1cm4gRm9udFdlaWdodDIw
MDsKICAgICBjYXNlIENTU1ZhbHVlMTAwOgogICAgICAgICByZXR1cm4gRm9udFdlaWdodDEwMDsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTM0MDgsMjkgKzM1NDEsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRXZWlnaHQoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnRJdGFsaWMgaXRhbGlj
KQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lE
OwogICAgIHN3aXRjaCAoaXRhbGljKSB7CiAgICAgY2FzZSBGb250SXRhbGljT2ZmOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTm9ybWFsOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBGb250SXRhbGlj
T246Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUl0YWxpYzsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJdGFsaWM7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVO
b3JtYWw7CisgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CiB9CiAKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250SXRhbGljKCkgY29u
c3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVPYmxpcXVlOgogICAgIC8vIEZJWE1FOiBvYmxp
cXVlIGlzIHRoZSBzYW1lIGFzIGl0YWxpYyBmb3IgdGhlIG1vbWVudC4uLgogICAgIGNhc2UgQ1NT
VmFsdWVJdGFsaWM6CiAgICAgICAgIHJldHVybiBGb250SXRhbGljT247CiAgICAgY2FzZSBDU1NW
YWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIEZvbnRJdGFsaWNPZmY7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJl
dHVybiBGb250SXRhbGljT2ZmOwpAQCAtMzQzOSwyNyArMzU3NCwyOSBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udEl0YWxpYygpIGNvbnN0CiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udFNt
YWxsQ2FwcyBzbWFsbENhcHMpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChzbWFsbENhcHMpIHsKICAgICBjYXNlIEZv
bnRTbWFsbENhcHNPZmY6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CiAgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIEZvbnRTbWFsbENhcHNPbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlU21hbGxDYXBzOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNtYWxs
Q2FwczsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZU5vcm1hbDsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEZvbnRTbWFsbENhcHMoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92
YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZVNtYWxsQ2FwczoKICAgICAgICAgcmV0dXJuIEZvbnRTbWFsbENhcHNPbjsKICAgICBj
YXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICByZXR1cm4gRm9udFNtYWxsQ2Fwc09mZjsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgcmV0dXJuIEZvbnRTbWFsbENhcHNPZmY7CkBAIC0zNDY4LDM0ICszNjA1LDM2IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250U21hbGxD
YXBzKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShUZXh0UmVuZGVyaW5nTW9kZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZl
Q2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAg
ICBjYXNlIEF1dG9UZXh0UmVuZGVyaW5nOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE9wdGltaXplU3Bl
ZWQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT3B0aW1pemVMZWdpYmlsaXR5OgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3B0aW1pemVsZWdpYmlsaXR5OwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgR2VvbWV0cmljUHJlY2lzaW9uOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlR2VvbWV0cmljcHJlY2lzaW9uOwotICAgICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBdXRvVGV4dFJlbmRlcmluZzoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE9wdGlt
aXplU3BlZWQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1pemVzcGVl
ZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPcHRpbWl6ZUxlZ2liaWxpdHk6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1pemVsZWdpYmlsaXR5OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEdlb21ldHJpY1ByZWNpc2lvbjoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVHZW9tZXRyaWNwcmVjaXNpb247CisgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRS
ZW5kZXJpbmdNb2RlKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAgICAgICByZXR1cm4gQXV0b1RleHRSZW5k
ZXJpbmc7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOgotICAgICAgICAgICAg
cmV0dXJuIE9wdGltaXplU3BlZWQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZWxlZ2li
aWxpdHk6Ci0gICAgICAgICAgICByZXR1cm4gT3B0aW1pemVMZWdpYmlsaXR5OwotICAgICAgICBj
YXNlIENTU1ZhbHVlR2VvbWV0cmljcHJlY2lzaW9uOgotICAgICAgICAgICAgcmV0dXJuIEdlb21l
dHJpY1ByZWNpc2lvbjsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2Ug
Q1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4gQXV0b1RleHRSZW5kZXJpbmc7CisgICAgY2Fz
ZSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ6CisgICAgICAgIHJldHVybiBPcHRpbWl6ZVNwZWVkOwor
ICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZWxlZ2liaWxpdHk6CisgICAgICAgIHJldHVybiBPcHRp
bWl6ZUxlZ2liaWxpdHk7CisgICAgY2FzZSBDU1NWYWx1ZUdlb21ldHJpY3ByZWNpc2lvbjoKKyAg
ICAgICAgcmV0dXJuIEdlb21ldHJpY1ByZWNpc2lvbjsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM1MDUsMjkgKzM2
NDQsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHRSZW5kZXJpbmdNb2RlKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2xvclNwYWNlIHNwYWNlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoc3Bh
Y2UpIHsKICAgICBjYXNlIENvbG9yU3BhY2VEZXZpY2VSR0I6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZURlZmF1bHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
RGVmYXVsdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2xvclNwYWNlU1JHQjoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3JnYjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTcmdiOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbG9yU3BhY2VMaW5l
YXJSR0I6CiAgICAgICAgIC8vIENTUyBjb2xvciBjb3JyZWN0aW9uIGRvZXMgbm90IHN1cHBvcnQg
bGluZWFyUkdCIHlldC4KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURlZmF1bHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlRGVmYXVsdDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sb3JTcGFjZSgpIGNvbnN0CiB7
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVl
SUQpIHsKICAgICBjYXNlIENTU1ZhbHVlRGVmYXVsdDoKICAgICAgICAgcmV0dXJuIENvbG9yU3Bh
Y2VEZXZpY2VSR0I7CiAgICAgY2FzZSBDU1NWYWx1ZVNyZ2I6CiAgICAgICAgIHJldHVybiBDb2xv
clNwYWNlU1JHQjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM1MzcsMjkgKzM2NzgsMzEgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbG9yU3BhY2UoKSBjb25zdAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEh5cGhl
bnMgaHlwaGVucykKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGh5cGhlbnMpIHsKICAgICBjYXNlIEh5cGhlbnNOb25l
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSHlwaGVu
c01hbnVhbDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWFudWFsOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1hbnVhbDsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBIeXBoZW5zQXV0bzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAgICBicmVhazsK
ICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBIeXBoZW5zKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAg
ICByZXR1cm4gSHlwaGVuc05vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZU1hbnVhbDoKICAgICAgICAg
cmV0dXJuIEh5cGhlbnNNYW51YWw7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJl
dHVybiBIeXBoZW5zQXV0bzsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM1NjksMjkgKzM3MTIsMzEgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEh5cGhlbnMoKSBjb25zdAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKExp
bmVTbmFwIGdyaWRTbmFwKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAg
bV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZ3JpZFNuYXApIHsKICAgICBjYXNlIExpbmVT
bmFwTm9uZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IExpbmVTbmFwQmFzZWxpbmU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJhc2Vs
aW5lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJhc2VsaW5lOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIExpbmVTbmFwQ29udGFpbjoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQ29udGFpbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVD
b250YWluOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lU25hcCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNo
IChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBj
YXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIExpbmVTbmFwTm9uZTsKICAgICBjYXNl
IENTU1ZhbHVlQmFzZWxpbmU6CiAgICAgICAgIHJldHVybiBMaW5lU25hcEJhc2VsaW5lOwogICAg
IGNhc2UgQ1NTVmFsdWVDb250YWluOgogICAgICAgICByZXR1cm4gTGluZVNuYXBDb250YWluOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpAQCAtMzYwMSwyNCArMzc0NiwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZVNuYXAoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKExpbmVBbGlnbiBsaW5lQWxpZ24p
CiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7
CiAgICAgc3dpdGNoIChsaW5lQWxpZ24pIHsKICAgICBjYXNlIExpbmVBbGlnbk5vbmU6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTm9uZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lQWxpZ25FZGdl
czoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRWRnZXM7CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlRWRnZXM7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVBbGlnbigp
IGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIExp
bmVBbGlnbk5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZUVkZ2VzOgogICAgICAgICByZXR1cm4gTGlu
ZUFsaWduRWRnZXM7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNjI4LDM2ICszNzc1LDM4IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQWxpZ24oKSBjb25zdAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVTcGVh
ayBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgU3BlYWtOb25lOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3BlYWtOb3JtYWw6Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVOb3JtYWw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3BlYWtTcGVsbE91
dDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3BlbGxPdXQ7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3BlbGxPdXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgU3BlYWtEaWdpdHM6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURpZ2l0czsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEaWdpdHM7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU3BlYWtMaXRlcmFsUHVuY3R1YXRpb246Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUxpdGVyYWxQdW5jdHVhdGlvbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVMaXRlcmFsUHVuY3R1YXRpb247CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
U3BlYWtOb1B1bmN0dWF0aW9uOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb1B1
bmN0dWF0aW9uOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vUHVuY3R1YXRp
b247CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9yZGVyKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFs
dWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NT
VmFsdWVMb2dpY2FsOgogICAgICAgICByZXR1cm4gTG9naWNhbE9yZGVyOwogICAgIGNhc2UgQ1NT
VmFsdWVWaXN1YWw6CiAgICAgICAgIHJldHVybiBWaXN1YWxPcmRlcjsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM2
NjcsMjAgKzM4MTYsMjAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIE9yZGVyKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShPcmRlciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xh
c3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1p
dGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2Ug
TG9naWNhbE9yZGVyOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb2dpY2FsOwor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvZ2ljYWw7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgVmlzdWFsT3JkZXI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVZpc3VhbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaXN1YWw7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIEVTcGVhaygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50
KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9u
ZToKICAgICAgICAgcmV0dXJuIFNwZWFrTm9uZTsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgpA
QCAtMzY5Myw2ICszODQyLDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVTcGVhaygpIGNvbnN0CiAgICAgICAgIHJldHVybiBTcGVha0xpdGVyYWxQdW5j
dHVhdGlvbjsKICAgICBjYXNlIENTU1ZhbHVlTm9QdW5jdHVhdGlvbjoKICAgICAgICAgcmV0dXJu
IFNwZWFrTm9QdW5jdHVhdGlvbjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM3MDIsNjIgKzM4NTMsNjIgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVTcGVhaygpIGNvbnN0
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
QmxlbmRNb2RlIGJsZW5kTW9kZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGJsZW5kTW9kZSkgewogICAgIGNhc2Ug
QmxlbmRNb2RlTm9ybWFsOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEJsZW5kTW9kZU11bHRpcGx5OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVNdWx0aXBseTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNdWx0
aXBseTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVTY3JlZW46Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNjcmVlbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTY3JlZW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlT3Zl
cmxheToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3ZlcmxheTsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPdmVybGF5OwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEJsZW5kTW9kZURhcmtlbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGFy
a2VuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURhcmtlbjsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVMaWdodGVuOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVMaWdodGVuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxp
Z2h0ZW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlQ29sb3JEb2RnZToKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sb3JEb2RnZTsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb2xvckRvZGdlOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJsZW5kTW9kZUNvbG9yQnVybjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29s
b3JCdXJuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbG9yQnVybjsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVIYXJkTGlnaHQ6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUhhcmRMaWdodDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVIYXJkTGlnaHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlU29m
dExpZ2h0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTb2Z0TGlnaHQ7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU29mdExpZ2h0OwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEJsZW5kTW9kZURpZmZlcmVuY2U6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZURpZmZlcmVuY2U7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGlm
ZmVyZW5jZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVFeGNsdXNpb246Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV4Y2x1c2lvbjsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVFeGNsdXNpb247CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QmxlbmRNb2RlSHVlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIdWU7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSHVlOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEJsZW5kTW9kZVNhdHVyYXRpb246Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVNhdHVyYXRpb247CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2F0dXJhdGlv
bjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVDb2xvcjoKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sb3I7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQ29sb3I7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlTHVtaW5vc2l0
eToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTHVtaW5vc2l0eTsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMdW1pbm9zaXR5OwogICAgICAgICBicmVhazsKICAg
ICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBC
bGVuZE1vZGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAg
ICAgcmV0dXJuIEJsZW5kTW9kZU5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlTXVsdGlwbHk6CkBA
IC0zNzkwLDYgKzM5NDEsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgQmxlbmRNb2RlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZUNvbG9y
OwogICAgIGNhc2UgQ1NTVmFsdWVMdW1pbm9zaXR5OgogICAgICAgICByZXR1cm4gQmxlbmRNb2Rl
THVtaW5vc2l0eTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM4MDEsMjkgKzM5NTQsMzEgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJsZW5kTW9kZSgpIGNvbnN0CiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoTGluZUNh
cCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIEJ1dHRDYXA6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCdXR0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgUm91bmRDYXA6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVS
b3VuZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNxdWFyZUNhcDoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNxdWFyZTsKLSAgICAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnV0dENhcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVC
dXR0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJvdW5kQ2FwOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVJvdW5kOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNxdWFy
ZUNhcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcXVhcmU7CisgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIExpbmVDYXAoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkg
ewotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dDoKLSAgICAgICAgICAgIHJldHVybiBCdXR0Q2Fw
OwotICAgICAgICBjYXNlIENTU1ZhbHVlUm91bmQ6Ci0gICAgICAgICAgICByZXR1cm4gUm91bmRD
YXA7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTcXVhcmU6Ci0gICAgICAgICAgICByZXR1cm4gU3F1
YXJlQ2FwOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1
ZUJ1dHQ6CisgICAgICAgIHJldHVybiBCdXR0Q2FwOworICAgIGNhc2UgQ1NTVmFsdWVSb3VuZDoK
KyAgICAgICAgcmV0dXJuIFJvdW5kQ2FwOworICAgIGNhc2UgQ1NTVmFsdWVTcXVhcmU6CisgICAg
ICAgIHJldHVybiBTcXVhcmVDYXA7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zODMzLDI5ICszOTg4LDMxIEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQ2FwKCkgY29u
c3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShMaW5lSm9pbiBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIE1pdGVySm9pbjoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1pdGVyOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgUm91bmRKb2luOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlUm91bmQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCZXZl
bEpvaW46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCZXZlbDsKLSAgICAg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTWl0ZXJKb2luOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZU1pdGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJvdW5kSm9pbjoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3VuZDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBCZXZlbEpvaW46CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QmV2ZWw7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVKb2luKCkgY29uc3QKIHsKLSAgICBzd2l0Y2gg
KG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU1pdGVyOgotICAgICAgICAg
ICAgcmV0dXJuIE1pdGVySm9pbjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVJvdW5kOgotICAgICAg
ICAgICAgcmV0dXJuIFJvdW5kSm9pbjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJldmVsOgotICAg
ICAgICAgICAgcmV0dXJuIEJldmVsSm9pbjsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIGNhc2UgQ1NTVmFsdWVNaXRlcjoKKyAgICAgICAgcmV0dXJuIE1pdGVySm9pbjsKKyAg
ICBjYXNlIENTU1ZhbHVlUm91bmQ6CisgICAgICAgIHJldHVybiBSb3VuZEpvaW47CisgICAgY2Fz
ZSBDU1NWYWx1ZUJldmVsOgorICAgICAgICByZXR1cm4gQmV2ZWxKb2luOworICAgIGRlZmF1bHQ6
CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
Mzg2NSwyNCArNDAyMiwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgTGluZUpvaW4oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFdpbmRSdWxlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmlt
aXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0g
ICAgICAgIGNhc2UgUlVMRV9OT05aRVJPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlTm9uemVybzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJVTEVfRVZF
Tk9ERDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV2ZW5vZGQ7Ci0gICAg
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFJVTEVfTk9OWkVSTzoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVOb256ZXJvOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJVTEVf
RVZFTk9ERDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdmVub2RkOworICAg
ICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBXaW5kUnVsZSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlk
ZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb256ZXJvOgotICAgICAgICAgICAgcmV0dXJu
IFJVTEVfTk9OWkVSTzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUV2ZW5vZGQ6Ci0gICAgICAgICAg
ICByZXR1cm4gUlVMRV9FVkVOT0REOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7Cisg
ICAgY2FzZSBDU1NWYWx1ZU5vbnplcm86CisgICAgICAgIHJldHVybiBSVUxFX05PTlpFUk87Cisg
ICAgY2FzZSBDU1NWYWx1ZUV2ZW5vZGQ6CisgICAgICAgIHJldHVybiBSVUxFX0VWRU5PREQ7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0zODkzLDc0ICs0MDUyLDc2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBXaW5kUnVsZSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUFsaWdubWVudEJhc2VsaW5lIGUp
CiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7
CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgQUJfQVVUTzoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBBQl9CQVNFTElORToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJh
c2VsaW5lOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQUJfQkVGT1JFX0VER0U6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCZWZvcmVFZGdlOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQUJfVEVYVF9CRUZPUkVfRURHRToKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRleHRCZWZvcmVFZGdlOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQUJfTUlERExFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlTWlkZGxlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQUJf
Q0VOVFJBTDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNlbnRyYWw7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBQl9BRlRFUl9FREdFOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWZ0ZXJFZGdlOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQUJfVEVYVF9BRlRFUl9FREdFOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlVGV4dEFmdGVyRWRnZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIEFCX0lERU9HUkFQSElDOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlSWRlb2dyYXBoaWM7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBQl9BTFBI
QUJFVElDOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWxwaGFiZXRpYzsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFCX0hBTkdJTkc6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIYW5naW5nOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQUJfTUFUSEVNQVRJQ0FMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTWF0aGVtYXRpY2FsOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBQl9B
VVRPOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQUJfQkFTRUxJTkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQmFzZWxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQUJfQkVGT1JFX0VER0U6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmVmb3JlRWRnZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBBQl9URVhUX0JFRk9SRV9FREdFOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVRleHRCZWZvcmVFZGdlOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFCX01JRERMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRkbGU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQUJfQ0VOVFJBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVDZW50cmFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFCX0FGVEVS
X0VER0U6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWZ0ZXJFZGdlOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFCX1RFWFRfQUZURVJfRURHRToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0QWZ0ZXJFZGdlOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFCX0lERU9HUkFQSElDOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlk
ZW9ncmFwaGljOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFCX0FMUEhBQkVUSUM6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxwaGFiZXRpYzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBQl9IQU5HSU5HOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUhhbmdpbmc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQUJfTUFUSEVNQVRJQ0FMOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1hdGhlbWF0aWNhbDsKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRUFsaWdubWVudEJhc2VsaW5lKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
aWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAgICAgICByZXR1cm4g
QUJfQVVUTzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJhc2VsaW5lOgotICAgICAgICAgICAgcmV0
dXJuIEFCX0JBU0VMSU5FOwotICAgICAgICBjYXNlIENTU1ZhbHVlQmVmb3JlRWRnZToKLSAgICAg
ICAgICAgIHJldHVybiBBQl9CRUZPUkVfRURHRTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVRleHRC
ZWZvcmVFZGdlOgotICAgICAgICAgICAgcmV0dXJuIEFCX1RFWFRfQkVGT1JFX0VER0U7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVNaWRkbGU6Ci0gICAgICAgICAgICByZXR1cm4gQUJfTUlERExFOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlQ2VudHJhbDoKLSAgICAgICAgICAgIHJldHVybiBBQl9DRU5U
UkFMOwotICAgICAgICBjYXNlIENTU1ZhbHVlQWZ0ZXJFZGdlOgotICAgICAgICAgICAgcmV0dXJu
IEFCX0FGVEVSX0VER0U7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUZXh0QWZ0ZXJFZGdlOgotICAg
ICAgICAgICAgcmV0dXJuIEFCX1RFWFRfQUZURVJfRURHRTsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZUlkZW9ncmFwaGljOgotICAgICAgICAgICAgcmV0dXJuIEFCX0lERU9HUkFQSElDOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlQWxwaGFiZXRpYzoKLSAgICAgICAgICAgIHJldHVybiBBQl9BTFBIQUJF
VElDOwotICAgICAgICBjYXNlIENTU1ZhbHVlSGFuZ2luZzoKLSAgICAgICAgICAgIHJldHVybiBB
Ql9IQU5HSU5HOwotICAgICAgICBjYXNlIENTU1ZhbHVlTWF0aGVtYXRpY2FsOgotICAgICAgICAg
ICAgcmV0dXJuIEFCX01BVEhFTUFUSUNBTDsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4gQUJfQVVUTzsKKyAgICBj
YXNlIENTU1ZhbHVlQmFzZWxpbmU6CisgICAgICAgIHJldHVybiBBQl9CQVNFTElORTsKKyAgICBj
YXNlIENTU1ZhbHVlQmVmb3JlRWRnZToKKyAgICAgICAgcmV0dXJuIEFCX0JFRk9SRV9FREdFOwor
ICAgIGNhc2UgQ1NTVmFsdWVUZXh0QmVmb3JlRWRnZToKKyAgICAgICAgcmV0dXJuIEFCX1RFWFRf
QkVGT1JFX0VER0U7CisgICAgY2FzZSBDU1NWYWx1ZU1pZGRsZToKKyAgICAgICAgcmV0dXJuIEFC
X01JRERMRTsKKyAgICBjYXNlIENTU1ZhbHVlQ2VudHJhbDoKKyAgICAgICAgcmV0dXJuIEFCX0NF
TlRSQUw7CisgICAgY2FzZSBDU1NWYWx1ZUFmdGVyRWRnZToKKyAgICAgICAgcmV0dXJuIEFCX0FG
VEVSX0VER0U7CisgICAgY2FzZSBDU1NWYWx1ZVRleHRBZnRlckVkZ2U6CisgICAgICAgIHJldHVy
biBBQl9URVhUX0FGVEVSX0VER0U7CisgICAgY2FzZSBDU1NWYWx1ZUlkZW9ncmFwaGljOgorICAg
ICAgICByZXR1cm4gQUJfSURFT0dSQVBISUM7CisgICAgY2FzZSBDU1NWYWx1ZUFscGhhYmV0aWM6
CisgICAgICAgIHJldHVybiBBQl9BTFBIQUJFVElDOworICAgIGNhc2UgQ1NTVmFsdWVIYW5naW5n
OgorICAgICAgICByZXR1cm4gQUJfSEFOR0lORzsKKyAgICBjYXNlIENTU1ZhbHVlTWF0aGVtYXRp
Y2FsOgorICAgICAgICByZXR1cm4gQUJfTUFUSEVNQVRJQ0FMOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzk3Miwy
NCArNDEzMywyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRUFsaWdubWVudEJhc2VsaW5lKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQm9yZGVyQ29sbGFwc2UgZSkKICAgICA6IENT
U1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1Nf
SURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0
Y2ggKGUpIHsKICAgICBjYXNlIEJTRVBBUkFURToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlU2VwYXJhdGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VwYXJh
dGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQkNPTExBUFNFOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVDb2xsYXBzZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVDb2xsYXBzZTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJvcmRlckNvbGxhcHNlKCkgY29uc3QK
IHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVTZXBhcmF0ZToKICAgICAgICAgcmV0dXJuIEJTRVBB
UkFURTsKICAgICBjYXNlIENTU1ZhbHVlQ29sbGFwc2U6CiAgICAgICAgIHJldHVybiBCQ09MTEFQ
U0U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0zOTk5LDI0ICs0MTYyLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm9yZGVyQ29sbGFwc2UoKSBjb25zdAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCb3JkZXJG
aXQgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxV
RV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJvcmRlckZpdEJvcmRlcjoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQm9yZGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUJvcmRlcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3JkZXJGaXRM
aW5lczoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTGluZXM7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGluZXM7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
IAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3JkZXJG
aXQoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAo
bV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJvcmRlcjoKICAgICAgICAgcmV0
dXJuIEJvcmRlckZpdEJvcmRlcjsKICAgICBjYXNlIENTU1ZhbHVlTGluZXM6CiAgICAgICAgIHJl
dHVybiBCb3JkZXJGaXRMaW5lczsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQwMjYsMjYgKzQxOTEsMjYgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3JkZXJGaXQoKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEVJbWFnZVJlbmRlcmluZyBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7
Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVu
aXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgSW1hZ2VS
ZW5kZXJpbmdBdXRvOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgSW1hZ2VSZW5kZXJpbmdDcmlzcEVkZ2VzOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVXZWJraXRDcmlzcEVkZ2VzOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVdlYmtpdENyaXNwRWRnZXM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW1hZ2VSZW5k
ZXJpbmdPcHRpbWl6ZVNwZWVkOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRp
bWl6ZXNwZWVkOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplc3Bl
ZWQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVF1YWxp
dHk6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0eTsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVJbWFnZVJlbmRlcmluZygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1Zh
bHVlQXV0bzoKICAgICAgICAgcmV0dXJuIEltYWdlUmVuZGVyaW5nQXV0bzsKICAgICBjYXNlIENT
U1ZhbHVlV2Via2l0T3B0aW1pemVDb250cmFzdDoKQEAgLTQwNTUsNiArNDIyMCw4IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFSW1hZ2VSZW5kZXJpbmco
KSBjb25zdAogICAgICAgICByZXR1cm4gSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVNwZWVkOwogICAg
IGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk6CiAgICAgICAgIHJldHVybiBJbWFnZVJlbmRl
cmluZ09wdGltaXplUXVhbGl0eTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQwNjQsMjQgKzQyMzEsMjYgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVJbWFnZVJlbmRlcmlu
ZygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoRVRyYW5zZm9ybVN0eWxlM0QgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNs
YXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNl
IFRyYW5zZm9ybVN0eWxlM0RGbGF0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVG
bGF0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsYXQ7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgVHJhbnNmb3JtU3R5bGUzRFByZXNlcnZlM0Q6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVByZXNlcnZlM2Q7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlUHJlc2VydmUzZDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRyYW5zZm9ybVN0eWxlM0Qo
KSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUZsYXQ6CiAgICAgICAgIHJldHVybiBU
cmFuc2Zvcm1TdHlsZTNERmxhdDsKICAgICBjYXNlIENTU1ZhbHVlUHJlc2VydmUzZDoKICAgICAg
ICAgcmV0dXJuIFRyYW5zZm9ybVN0eWxlM0RQcmVzZXJ2ZTNEOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDA5MSwy
OSArNDI2MCwzMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRVRyYW5zZm9ybVN0eWxlM0QoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbHVtbkF4aXMgZSkKICAgICA6IENTU1ZhbHVl
KFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7
CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUp
IHsKICAgICBjYXNlIEhvcml6b250YWxDb2x1bW5BeGlzOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVIb3Jpem9udGFsOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUhvcml6b250YWw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmVydGljYWxDb2x1bW5BeGlz
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWZXJ0aWNhbDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBBdXRvQ29sdW1uQXhpczoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAgICBicmVhazsK
ICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBDb2x1bW5BeGlzKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVIb3Jpem9udGFs
OgogICAgICAgICByZXR1cm4gSG9yaXpvbnRhbENvbHVtbkF4aXM7CiAgICAgY2FzZSBDU1NWYWx1
ZVZlcnRpY2FsOgogICAgICAgICByZXR1cm4gVmVydGljYWxDb2x1bW5BeGlzOwogICAgIGNhc2Ug
Q1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gQXV0b0NvbHVtbkF4aXM7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBA
IC00MTIzLDI0ICs0Mjk0LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBDb2x1bW5BeGlzKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2x1bW5Qcm9ncmVzc2lvbiBlKQogICAgIDog
Q1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3
aXRjaCAoZSkgewogICAgIGNhc2UgTm9ybWFsQ29sdW1uUHJvZ3Jlc3Npb246Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVOb3JtYWw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmV2ZXJzZUNvbHVtblBy
b2dyZXNzaW9uOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSZXZlcnNlOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJldmVyc2U7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IENvbHVtblByb2dyZXNzaW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQp
IHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3Jt
YWw6CiAgICAgICAgIHJldHVybiBOb3JtYWxDb2x1bW5Qcm9ncmVzc2lvbjsKICAgICBjYXNlIENT
U1ZhbHVlUmV2ZXJzZToKICAgICAgICAgcmV0dXJuIFJldmVyc2VDb2x1bW5Qcm9ncmVzc2lvbjsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTQxNTAsMzIgKzQzMjMsMzIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtblByb2dyZXNzaW9uKCkgY29uc3QKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShXcmFwRmxvdyB3
cmFwRmxvdykKIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAod3JhcEZsb3cpIHsKICAgICBjYXNlIFdyYXBGbG93QXV0bzoKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdyYXBGbG93Qm90
aDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQm90aDsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3RoOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdyYXBG
bG93U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXJ0OworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0YXJ0OwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFdyYXBGbG93RW5kOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFbmQ7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdyYXBGbG93TWF4aW11bToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
TWF4aW11bTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNYXhpbXVtOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFdyYXBGbG93Q2xlYXI6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUNsZWFyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNs
ZWFyOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcmFwRmxvdygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoICht
X3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNl
IENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFdyYXBGbG93QXV0bzsKICAgICBjYXNlIENT
U1ZhbHVlQm90aDoKQEAgLTQxODgsNiArNDM2MSw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcmFwRmxvdygpIGNvbnN0CiAgICAgICAgIHJldHVybiBX
cmFwRmxvd01heGltdW07CiAgICAgY2FzZSBDU1NWYWx1ZUNsZWFyOgogICAgICAgICByZXR1cm4g
V3JhcEZsb3dDbGVhcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQxOTcsMjQgKzQzNzIsMjYgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdyYXBGbG93KCkgY29uc3QKIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShXcmFw
VGhyb3VnaCB3cmFwVGhyb3VnaCkKIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAg
bV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAod3JhcFRocm91Z2gpIHsKICAgICBjYXNlIFdy
YXBUaHJvdWdoV3JhcDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV3JhcDsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXcmFwOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdyYXBUaHJvdWdoTm9uZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
Tm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAgICBi
cmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBXcmFwVGhyb3VnaCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50
KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlV3Jh
cDoKICAgICAgICAgcmV0dXJuIFdyYXBUaHJvdWdoV3JhcDsKICAgICBjYXNlIENTU1ZhbHVlTm9u
ZToKICAgICAgICAgcmV0dXJuIFdyYXBUaHJvdWdoTm9uZTsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQyMjMsMTMg
KzQ0MDAsMTUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFdyYXBUaHJvdWdoKCkgY29uc3QKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIEdyaWRBdXRvRmxvdygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1Zh
bHVlTm9uZToKICAgICAgICAgcmV0dXJuIEF1dG9GbG93Tm9uZTsKICAgICBjYXNlIENTU1ZhbHVl
Q29sdW1uOgogICAgICAgICByZXR1cm4gQXV0b0Zsb3dDb2x1bW47CiAgICAgY2FzZSBDU1NWYWx1
ZVJvdzoKICAgICAgICAgcmV0dXJuIEF1dG9GbG93Um93OworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDI0MCwxNiAr
NDQxOSwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
R3JpZEF1dG9GbG93KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShHcmlkQXV0b0Zsb3cgZmxvdykKICAgICA6IENTU1ZhbHVlKFBy
aW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Cisg
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGZsb3cp
IHsKICAgICBjYXNlIEF1dG9GbG93Tm9uZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEF1dG9GbG93Q29sdW1uOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVDb2x1bW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29s
dW1uOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEF1dG9GbG93Um93OgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVSb3c7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlUm93OwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00MjgwLDcgKzQ0NTksNyBAQCB0
ZW1wbGF0ZTxpbnQgc3VwcG9ydGVkPiBMZW5ndGggQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbnZlcnRU
b0xlbmd0aChjb25zdCBSZW5kZXJTdAogICAgICAgICByZXR1cm4gTGVuZ3RoKGdldERvdWJsZVZh
bHVlKCksIFBlcmNlbnQpOwogICAgIGlmICgoc3VwcG9ydGVkICYgRnJhY3Rpb25Db252ZXJzaW9u
KSAmJiBpc051bWJlcigpKQogICAgICAgICByZXR1cm4gTGVuZ3RoKGdldERvdWJsZVZhbHVlKCkg
KiAxMDAuMCwgUGVyY2VudCk7Ci0gICAgaWYgKChzdXBwb3J0ZWQgJiBBdXRvQ29udmVyc2lvbikg
JiYgZ2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pCisgICAgaWYgKChzdXBwb3J0ZWQgJiBBdXRv
Q29udmVyc2lvbikgJiYgZ2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgcmV0
dXJuIExlbmd0aChBdXRvKTsKICAgICBpZiAoKHN1cHBvcnRlZCAmIENhbGN1bGF0ZWRDb252ZXJz
aW9uKSAmJiBpc0NhbGN1bGF0ZWQoKSkKICAgICAgICAgcmV0dXJuIExlbmd0aChjc3NDYWxjVmFs
dWUoKS0+dG9DYWxjVmFsdWUoc3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllcikpOwpAQCAtNDI5
NCwyOSArNDQ3MywzMSBAQCB0ZW1wbGF0ZTxpbnQgc3VwcG9ydGVkPiBMZW5ndGggQ1NTUHJpbWl0
aXZlVmFsdWU6OmNvbnZlcnRUb0xlbmd0aChjb25zdCBSZW5kZXJTdAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCdWZmZXJlZFJlbmRlcmlu
ZyBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQlJfQVVUTzoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVBdXRvOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJSX0RZTkFNSUM6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUR5bmFtaWM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlRHluYW1pYzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCUl9TVEFUSUM6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXRpYzsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVTdGF0aWM7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCdWZmZXJlZFJlbmRl
cmluZygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0
dXJuIEJSX0FVVE87CiAgICAgY2FzZSBDU1NWYWx1ZUR5bmFtaWM6CiAgICAgICAgIHJldHVybiBC
Ul9EWU5BTUlDOwogICAgIGNhc2UgQ1NTVmFsdWVTdGF0aWM6CiAgICAgICAgIHJldHVybiBCUl9T
VEFUSUM7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC00MzI2LDI5ICs0NTA3LDMxIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQnVmZmVyZWRSZW5kZXJpbmcoKSBjb25zdAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVD
b2xvckludGVycG9sYXRpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBDSV9B
VVRPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENJX1NSR0I6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVTcmdiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ0lf
TElORUFSUkdCOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTGluZWFycmdi
OwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDSV9BVVRPOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ0lfU1JH
QjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcmdiOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENJX0xJTkVBUlJHQjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVMaW5lYXJyZ2I7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDb2xvckludGVycG9sYXRpb24oKSBj
b25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1Zh
bHVlU3JnYjoKLSAgICAgICAgICAgIHJldHVybiBDSV9TUkdCOwotICAgICAgICBjYXNlIENTU1Zh
bHVlTGluZWFycmdiOgotICAgICAgICAgICAgcmV0dXJuIENJX0xJTkVBUlJHQjsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAgICAgICByZXR1cm4gQ0lfQVVUTzsKKyAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVTcmdiOgorICAgICAgICBy
ZXR1cm4gQ0lfU1JHQjsKKyAgICBjYXNlIENTU1ZhbHVlTGluZWFycmdiOgorICAgICAgICByZXR1
cm4gQ0lfTElORUFSUkdCOworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4g
Q0lfQVVUTzsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQzNTgsMjkgKzQ1NDEsMzEgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDb2xvckludGVycG9sYXRpb24oKSBjb25z
dAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KEVDb2xvclJlbmRlcmluZyBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIENSX0FV
VE86Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1JfT1BUSU1JWkVTUEVFRDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBDUl9PUFRJTUlaRVFVQUxJVFk6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBj
YXNlIENSX0FVVE86CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDUl9PUFRJTUlaRVNQRUVEOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1JfT1BUSU1JWkVRVUFMSVRZOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU9wdGltaXplcXVhbGl0eTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUNvbG9yUmVuZGVyaW5nKCkgY29u
c3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZU9wdGltaXplc3BlZWQ6Ci0gICAgICAgICAgICByZXR1cm4gQ1JfT1BUSU1JWkVTUEVFRDsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0eToKLSAgICAgICAgICAgIHJldHVybiBD
Ul9PUFRJTUlaRVFVQUxJVFk7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAg
ICAgcmV0dXJuIENSX0FVVE87CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBj
YXNlIENTU1ZhbHVlT3B0aW1pemVzcGVlZDoKKyAgICAgICAgcmV0dXJuIENSX09QVElNSVpFU1BF
RUQ7CisgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0eToKKyAgICAgICAgcmV0dXJuIENS
X09QVElNSVpFUVVBTElUWTsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0dXJu
IENSX0FVVE87CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CkBAIC00MzkwLDc0ICs0NTc1LDc2IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ29sb3JSZW5kZXJpbmcoKSBjb25zdAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVE
b21pbmFudEJhc2VsaW5lIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgREJfQVVU
TzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9VU0VfU0NSSVBUOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlVXNlU2NyaXB0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgREJfTk9fQ0hBTkdFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
Tm9DaGFuZ2U7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9SRVNFVF9TSVpF
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmVzZXRTaXplOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgREJfQ0VOVFJBTDoKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUNlbnRyYWw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBEQl9NSURETEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNaWRk
bGU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9URVhUX0JFRk9SRV9FREdF
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4dEJlZm9yZUVkZ2U7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9URVhUX0FGVEVSX0VER0U6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUZXh0QWZ0ZXJFZGdlOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgREJfSURFT0dSQVBISUM6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVJZGVvZ3JhcGhpYzsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIERCX0FMUEhBQkVUSUM6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVBbHBoYWJldGljOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgREJfSEFO
R0lORzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhhbmdpbmc7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9NQVRIRU1BVElDQUw6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNYXRoZW1hdGljYWw7Ci0gICAgICAgICAgICBicmVh
azsKKyAgICBjYXNlIERCX0FVVE86CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXV0bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEQl9VU0VfU0NSSVBUOgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVzZVNjcmlwdDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBEQl9OT19DSEFOR0U6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9D
aGFuZ2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgREJfUkVTRVRfU0laRToKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZXNldFNpemU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgREJfQ0VOVFJBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50
cmFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERCX01JRERMRToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRkbGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgREJf
VEVYVF9CRUZPUkVfRURHRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0
QmVmb3JlRWRnZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEQl9URVhUX0FGVEVSX0VER0U6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dEFmdGVyRWRnZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBEQl9JREVPR1JBUEhJQzoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVJZGVvZ3JhcGhpYzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEQl9B
TFBIQUJFVElDOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFscGhhYmV0aWM7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgREJfSEFOR0lORzoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVIYW5naW5nOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERCX01B
VEhFTUFUSUNBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNYXRoZW1hdGlj
YWw7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVEb21pbmFudEJhc2VsaW5lKCkgY29uc3QKIHsKLSAgICBz
d2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAg
ICAgICAgICByZXR1cm4gREJfQVVUTzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVVzZVNjcmlwdDoK
LSAgICAgICAgICAgIHJldHVybiBEQl9VU0VfU0NSSVBUOwotICAgICAgICBjYXNlIENTU1ZhbHVl
Tm9DaGFuZ2U6Ci0gICAgICAgICAgICByZXR1cm4gREJfTk9fQ0hBTkdFOwotICAgICAgICBjYXNl
IENTU1ZhbHVlUmVzZXRTaXplOgotICAgICAgICAgICAgcmV0dXJuIERCX1JFU0VUX1NJWkU7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVJZGVvZ3JhcGhpYzoKLSAgICAgICAgICAgIHJldHVybiBEQl9J
REVPR1JBUEhJQzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFscGhhYmV0aWM6Ci0gICAgICAgICAg
ICByZXR1cm4gREJfQUxQSEFCRVRJQzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUhhbmdpbmc6Ci0g
ICAgICAgICAgICByZXR1cm4gREJfSEFOR0lORzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU1hdGhl
bWF0aWNhbDoKLSAgICAgICAgICAgIHJldHVybiBEQl9NQVRIRU1BVElDQUw7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVDZW50cmFsOgotICAgICAgICAgICAgcmV0dXJuIERCX0NFTlRSQUw7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVNaWRkbGU6Ci0gICAgICAgICAgICByZXR1cm4gREJfTUlERExFOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlVGV4dEFmdGVyRWRnZToKLSAgICAgICAgICAgIHJldHVybiBE
Ql9URVhUX0FGVEVSX0VER0U7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUZXh0QmVmb3JlRWRnZToK
LSAgICAgICAgICAgIHJldHVybiBEQl9URVhUX0JFRk9SRV9FREdFOworICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86CisgICAgICAgIHJldHVybiBE
Ql9BVVRPOworICAgIGNhc2UgQ1NTVmFsdWVVc2VTY3JpcHQ6CisgICAgICAgIHJldHVybiBEQl9V
U0VfU0NSSVBUOworICAgIGNhc2UgQ1NTVmFsdWVOb0NoYW5nZToKKyAgICAgICAgcmV0dXJuIERC
X05PX0NIQU5HRTsKKyAgICBjYXNlIENTU1ZhbHVlUmVzZXRTaXplOgorICAgICAgICByZXR1cm4g
REJfUkVTRVRfU0laRTsKKyAgICBjYXNlIENTU1ZhbHVlSWRlb2dyYXBoaWM6CisgICAgICAgIHJl
dHVybiBEQl9JREVPR1JBUEhJQzsKKyAgICBjYXNlIENTU1ZhbHVlQWxwaGFiZXRpYzoKKyAgICAg
ICAgcmV0dXJuIERCX0FMUEhBQkVUSUM7CisgICAgY2FzZSBDU1NWYWx1ZUhhbmdpbmc6CisgICAg
ICAgIHJldHVybiBEQl9IQU5HSU5HOworICAgIGNhc2UgQ1NTVmFsdWVNYXRoZW1hdGljYWw6Cisg
ICAgICAgIHJldHVybiBEQl9NQVRIRU1BVElDQUw7CisgICAgY2FzZSBDU1NWYWx1ZUNlbnRyYWw6
CisgICAgICAgIHJldHVybiBEQl9DRU5UUkFMOworICAgIGNhc2UgQ1NTVmFsdWVNaWRkbGU6Cisg
ICAgICAgIHJldHVybiBEQl9NSURETEU7CisgICAgY2FzZSBDU1NWYWx1ZVRleHRBZnRlckVkZ2U6
CisgICAgICAgIHJldHVybiBEQl9URVhUX0FGVEVSX0VER0U7CisgICAgY2FzZSBDU1NWYWx1ZVRl
eHRCZWZvcmVFZGdlOgorICAgICAgICByZXR1cm4gREJfVEVYVF9CRUZPUkVfRURHRTsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTQ0NjcsMjYgKzQ2NTQsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVEb21pbmFudEJhc2VsaW5lKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFU2hhcGVSZW5kZXJpbmcg
ZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9J
RDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFNSX0FVVE86Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXV0bzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTUl9PUFRJTUlaRVNQRUVEOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgU1JfQ1JJU1BFREdFUzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ3Jpc3Bl
ZGdlczsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDcmlzcGVkZ2VzOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFNSX0dFT01FVFJJQ1BSRUNJU0lPTjoKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlR2VvbWV0cmljcHJlY2lzaW9uOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUdlb21ldHJpY3ByZWNpc2lvbjsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
RVNoYXBlUmVuZGVyaW5nKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsK
KyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgog
ICAgICAgICByZXR1cm4gU1JfQVVUTzsKICAgICBjYXNlIENTU1ZhbHVlT3B0aW1pemVzcGVlZDoK
QEAgLTQ0OTUsNiArNDY4Miw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBFU2hhcGVSZW5kZXJpbmcoKSBjb25zdAogICAgICAgICByZXR1cm4gU1JfQ1JJ
U1BFREdFUzsKICAgICBjYXNlIENTU1ZhbHVlR2VvbWV0cmljcHJlY2lzaW9uOgogICAgICAgICBy
ZXR1cm4gU1JfR0VPTUVUUklDUFJFQ0lTSU9OOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDUwNCwyOSArNDY5Mywz
MSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVNoYXBl
UmVuZGVyaW5nKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShFVGV4dEFuY2hvciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZl
Q2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAg
ICBjYXNlIFRBX1NUQVJUOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3Rh
cnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUQV9NSURETEU6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNaWRkbGU7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBUQV9FTkQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVFbmQ7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIFRBX1NUQVJUOgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0YXJ0OworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFRBX01JRERMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRkbGU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFfRU5EOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUVuZDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRBbmNob3IoKSBjb25zdAogewot
ICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6
Ci0gICAgICAgICAgICByZXR1cm4gVEFfU1RBUlQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVNaWRk
bGU6Ci0gICAgICAgICAgICByZXR1cm4gVEFfTUlERExFOwotICAgICAgICBjYXNlIENTU1ZhbHVl
RW5kOgotICAgICAgICAgICAgcmV0dXJuIFRBX0VORDsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVTdGFydDoKKyAgICAgICAgcmV0dXJuIFRBX1NUQVJU
OworICAgIGNhc2UgQ1NTVmFsdWVNaWRkbGU6CisgICAgICAgIHJldHVybiBUQV9NSURETEU7Cisg
ICAgY2FzZSBDU1NWYWx1ZUVuZDoKKyAgICAgICAgcmV0dXJuIFRBX0VORDsKKyAgICBkZWZhdWx0
OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTQ1MzYsMzIgKzQ3MjcsMzIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVUZXh0QW5jaG9yKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShTVkdXcml0aW5nTW9kZSBlKQogICAgIDogQ1NT
VmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19J
REVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRj
aCAoZSkgewotICAgICAgICBjYXNlIFdNX0xSVEI6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVMclRiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV01fTFI6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMcjsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIFdNX1JMVEI6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVSbFRiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV01fUkw6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSbDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFdNX1RCUkw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVUYlJsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV01fVEI6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUYjsKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV01fTFJUQjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMclRi
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdNX0xSOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUxyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdNX1JMVEI6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmxUYjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBXTV9STDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSbDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXTV9UQlJMOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVRiUmw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV01fVEI6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGI7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNWR1dyaXRpbmdN
b2RlKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVMclRiOgogICAgICAgICByZXR1
cm4gV01fTFJUQjsKICAgICBjYXNlIENTU1ZhbHVlTHI6CkBAIC00NTc0LDYgKzQ3NjUsOCBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgU1ZHV3JpdGluZ01v
ZGUoKSBjb25zdAogICAgICAgICByZXR1cm4gV01fVEJSTDsKICAgICBjYXNlIENTU1ZhbHVlVGI6
CiAgICAgICAgIHJldHVybiBXTV9UQjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAg
ICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQ1ODMsMjQgKzQ3NzYsMjYgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNWR1dyaXRpbmdN
b2RlKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShFVmVjdG9yRWZmZWN0IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFz
cykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0
aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBW
RV9OT05FOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
VkVfTk9OX1NDQUxJTkdfU1RST0tFOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVO
b25TY2FsaW5nU3Ryb2tlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vblNj
YWxpbmdTdHJva2U7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVWZWN0b3JFZmZlY3QoKSBjb25zdAogewot
ICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBWRV9OT05FOwogICAg
IGNhc2UgQ1NTVmFsdWVOb25TY2FsaW5nU3Ryb2tlOgogICAgICAgICByZXR1cm4gVkVfTk9OX1ND
QUxJTkdfU1RST0tFOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDYxMCwyNCArNDgwNSwyNiBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVZlY3RvckVmZmVjdCgpIGNvbnN0
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
RU1hc2tUeXBlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBD
U1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBNVF9MVU1JTkFOQ0U6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUx1bWluYW5jZTsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVMdW1pbmFuY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TVRfQUxQSEE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFscGhhOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFscGhhOwogICAgICAgICBicmVhazsKICAgICB9
CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTWFz
a1R5cGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUx1bWluYW5jZToKICAgICAg
ICAgcmV0dXJuIE1UX0xVTUlOQU5DRTsKICAgICBjYXNlIENTU1ZhbHVlQWxwaGE6CiAgICAgICAg
IHJldHVybiBNVF9BTFBIQTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NUb1N0eWxlTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNw
cAppbmRleCA3MjFmZDhlOTAxYjVlYmJmMWNmNmNkNzQ5ZmE4ZjUzZjFjZmJhNDliLi42YjE0ZDQ3
NjQ4YzBkMjZhNDA5NzkzYjk5ZmExZjI1ZWUyMGMxMmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Rv
U3R5bGVNYXAuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwRmls
bEF0dGFjaG1lbnQoQ1NTUHJvcGVydHlJRCwgRmlsbExheWVyKiBsYXllciwgQ1NTVmFsdWUqCiAg
ICAgICAgIHJldHVybjsKIAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgIHN3aXRjaCAocHJp
bWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5n
ZXRWYWx1ZUlEKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlRml4ZWQ6CiAgICAgICAgIGxheWVyLT5z
ZXRBdHRhY2htZW50KEZpeGVkQmFja2dyb3VuZEF0dGFjaG1lbnQpOwogICAgICAgICBicmVhazsK
QEAgLTE5MCwxNiArMTkwLDE2IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwRmlsbFNpemUoQ1NT
UHJvcGVydHlJRCwgRmlsbExheWVyKiBsYXllciwgQ1NTVmFsdWUqIHZhbHVlCiAgICAgfQogCiAg
ICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgp
ID09IENTU1ZhbHVlQ29udGFpbikKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQo
KSA9PSBDU1NWYWx1ZUNvbnRhaW4pCiAgICAgICAgIGxheWVyLT5zZXRTaXplVHlwZShDb250YWlu
KTsKLSAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUNv
dmVyKQorICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVDb3ZlcikKICAgICAgICAgbGF5ZXItPnNldFNpemVUeXBlKENvdmVyKTsKICAgICBlbHNlCiAg
ICAgICAgIGxheWVyLT5zZXRTaXplVHlwZShTaXplTGVuZ3RoKTsKIAogICAgIExlbmd0aFNpemUg
YiA9IEZpbGxMYXllcjo6aW5pdGlhbEZpbGxTaXplTGVuZ3RoKGxheWVyLT50eXBlKCkpOwogCi0g
ICAgaWYgKHZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpIHx8IHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVu
dCgpID09IENTU1ZhbHVlQ29udGFpbiB8fCBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBD
U1NWYWx1ZUNvdmVyKSB7CisgICAgaWYgKHZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpIHx8IHByaW1p
dGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVDb250YWluIHx8IHByaW1pdGl2ZVZh
bHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVDb3ZlcikgewogICAgICAgICBsYXllci0+c2V0
U2l6ZUxlbmd0aChiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMyNCw3ICszMjQsNyBA
QCB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvbkRpcmVjdGlvbihBbmltYXRpb24qIGxh
eWVyLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIENTU1ByaW1pdGl2
ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4o
dmFsdWUpOwotICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICBz
d2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICBjYXNlIENTU1ZhbHVl
Tm9ybWFsOgogICAgICAgICBsYXllci0+c2V0RGlyZWN0aW9uKEFuaW1hdGlvbjo6QW5pbWF0aW9u
RGlyZWN0aW9uTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CkBAIC0zMzcsNiArMzM3LDggQEAgdm9p
ZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25EaXJlY3Rpb24oQW5pbWF0aW9uKiBsYXllciwg
Q1NTVmFsdWUqIHZhbHVlKQogICAgIGNhc2UgQ1NTVmFsdWVBbHRlcm5hdGVSZXZlcnNlOgogICAg
ICAgICBsYXllci0+c2V0RGlyZWN0aW9uKEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0
ZXJuYXRlUmV2ZXJzZSk7CiAgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KIApAQCAtMzY1LDcgKzM2Nyw3IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6
bWFwQW5pbWF0aW9uRmlsbE1vZGUoQW5pbWF0aW9uKiBsYXllciwgQ1NTVmFsdWUqIHZhbHVlKQog
ICAgICAgICByZXR1cm47CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUg
PSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICBzd2l0Y2ggKHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+
Z2V0VmFsdWVJRCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIGxheWVyLT5z
ZXRGaWxsTW9kZShBbmltYXRpb25GaWxsTW9kZU5vbmUpOwogICAgICAgICBicmVhazsKQEAgLTM3
OCw2ICszODAsOCBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvbkZpbGxNb2RlKEFu
aW1hdGlvbiogbGF5ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICBjYXNlIENTU1ZhbHVlQm90aDoK
ICAgICAgICAgbGF5ZXItPnNldEZpbGxNb2RlKEFuaW1hdGlvbkZpbGxNb2RlQm90aCk7CiAgICAg
ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApAQCAt
MzkyLDcgKzM5Niw3IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uSXRlcmF0aW9u
Q291bnQoQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVlKiB2CiAgICAgICAgIHJldHVybjsK
IAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRl
bnQoKSA9PSBDU1NWYWx1ZUluZmluaXRlKQorICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFs
dWVJRCgpID09IENTU1ZhbHVlSW5maW5pdGUpCiAgICAgICAgIGFuaW1hdGlvbi0+c2V0SXRlcmF0
aW9uQ291bnQoQW5pbWF0aW9uOjpJdGVyYXRpb25Db3VudEluZmluaXRlKTsKICAgICBlbHNlCiAg
ICAgICAgIGFuaW1hdGlvbi0+c2V0SXRlcmF0aW9uQ291bnQocHJpbWl0aXZlVmFsdWUtPmdldEZs
b2F0VmFsdWUoKSk7CkBAIC00MDksNyArNDEzLDcgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBB
bmltYXRpb25OYW1lKEFuaW1hdGlvbiogbGF5ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGlj
X2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgaWYgKHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdl
dFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAgIGxheWVyLT5zZXRJc05vbmVBbmlt
YXRpb24odHJ1ZSk7CiAgICAgZWxzZQogICAgICAgICBsYXllci0+c2V0TmFtZShwcmltaXRpdmVW
YWx1ZS0+Z2V0U3RyaW5nVmFsdWUoKSk7CkBAIC00MjYsNyArNDMwLDcgQEAgdm9pZCBDU1NUb1N0
eWxlTWFwOjptYXBBbmltYXRpb25QbGF5U3RhdGUoQW5pbWF0aW9uKiBsYXllciwgQ1NTVmFsdWUq
IHZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0
aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICBF
QW5pbVBsYXlTdGF0ZSBwbGF5U3RhdGUgPSAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0g
Q1NTVmFsdWVQYXVzZWQpID8gQW5pbVBsYXlTdGF0ZVBhdXNlZCA6IEFuaW1QbGF5U3RhdGVQbGF5
aW5nOworICAgIEVBbmltUGxheVN0YXRlIHBsYXlTdGF0ZSA9IChwcmltaXRpdmVWYWx1ZS0+Z2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlUGF1c2VkKSA/IEFuaW1QbGF5U3RhdGVQYXVzZWQgOiBBbmlt
UGxheVN0YXRlUGxheWluZzsKICAgICBsYXllci0+c2V0UGxheVN0YXRlKHBsYXlTdGF0ZSk7CiB9
CiAKQEAgLTQ0MiwxNSArNDQ2LDE1IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9u
UHJvcGVydHkoQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGlj
X2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgaWYgKHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlQWxsKSB7CisgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVBbGwpIHsKICAgICAgICAgYW5pbWF0aW9uLT5zZXRBbmlt
YXRpb25Nb2RlKEFuaW1hdGlvbjo6QW5pbWF0ZUFsbCk7CiAgICAgICAgIGFuaW1hdGlvbi0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlJbnZhbGlkKTsKLSAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkgeworICAgIH0gZWxzZSBpZiAocHJpbWl0
aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmUpIHsKICAgICAgICAgYW5pbWF0
aW9uLT5zZXRBbmltYXRpb25Nb2RlKEFuaW1hdGlvbjo6QW5pbWF0ZU5vbmUpOwogICAgICAgICBh
bmltYXRpb24tPnNldFByb3BlcnR5KENTU1Byb3BlcnR5SW52YWxpZCk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgYW5pbWF0aW9uLT5zZXRBbmltYXRpb25Nb2RlKEFuaW1hdGlvbjo6QW5pbWF0ZVNp
bmdsZVByb3BlcnR5KTsKLSAgICAgICAgYW5pbWF0aW9uLT5zZXRQcm9wZXJ0eShzdGF0aWNfY2Fz
dDxDU1NQcm9wZXJ0eUlEPihwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkpOworICAgICAgICBh
bmltYXRpb24tPnNldFByb3BlcnR5KHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KHByaW1pdGl2
ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpKTsKICAgICB9CiB9CiAKQEAgLTQ2Myw3ICs0NjcsNyBAQCB2
b2lkIENTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uKEFuaW1hdGlvbiog
YW5pbWF0aW9uLCBDU1NWYWx1ZSogdgogCiAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVl
KCkpIHsKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGlj
X2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgICAgIHN3aXRjaCAocHJpbWl0
aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+
Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVMaW5lYXI6CiAgICAgICAgICAg
ICBhbmltYXRpb24tPnNldFRpbWluZ0Z1bmN0aW9uKExpbmVhclRpbWluZ0Z1bmN0aW9uOjpjcmVh
dGUoKSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTQ4NSw2ICs0ODksOCBAQCB2b2lkIENTU1Rv
U3R5bGVNYXA6Om1hcEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uKEFuaW1hdGlvbiogYW5pbWF0aW9u
LCBDU1NWYWx1ZSogdgogICAgICAgICBjYXNlIENTU1ZhbHVlU3RlcEVuZDoKICAgICAgICAgICAg
IGFuaW1hdGlvbi0+c2V0VGltaW5nRnVuY3Rpb24oU3RlcHNUaW1pbmdGdW5jdGlvbjo6Y3JlYXRl
KDEsIGZhbHNlKSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC02MTMs
MjggKzYxOSwyOCBAQCBMZW5ndGhCb3ggQ1NTVG9TdHlsZU1hcDo6bWFwTmluZVBpZWNlSW1hZ2VR
dWFkKENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgYm94Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+
dG9wKCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKICAgICBlbHNlIGlmIChzbGljZXMtPnRv
cCgpLT5pc1BlcmNlbnRhZ2UoKSkKICAgICAgICAgYm94Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+
dG9wKCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSks
IFBlcmNlbnQpOwotICAgIGVsc2UgaWYgKHNsaWNlcy0+dG9wKCktPmdldElkZW50KCkgIT0gQ1NT
VmFsdWVBdXRvKQorICAgIGVsc2UgaWYgKHNsaWNlcy0+dG9wKCktPmdldFZhbHVlSUQoKSAhPSBD
U1NWYWx1ZUF1dG8pCiAgICAgICAgIGJveC5tX3RvcCA9IHNsaWNlcy0+dG9wKCktPmNvbXB1dGVM
ZW5ndGg8TGVuZ3RoPihzdHlsZSgpLCByb290RWxlbWVudFN0eWxlKCksIHpvb20pOwogCiAgICAg
aWYgKHNsaWNlcy0+cmlnaHQoKS0+aXNOdW1iZXIoKSkKICAgICAgICAgYm94Lm1fcmlnaHQgPSBM
ZW5ndGgoc2xpY2VzLT5yaWdodCgpLT5nZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7CiAgICAgZWxz
ZSBpZiAoc2xpY2VzLT5yaWdodCgpLT5pc1BlcmNlbnRhZ2UoKSkKICAgICAgICAgYm94Lm1fcmln
aHQgPSBMZW5ndGgoc2xpY2VzLT5yaWdodCgpLT5nZXREb3VibGVWYWx1ZShDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1BFUkNFTlRBR0UpLCBQZXJjZW50KTsKLSAgICBlbHNlIGlmIChzbGljZXMtPnJp
Z2h0KCktPmdldElkZW50KCkgIT0gQ1NTVmFsdWVBdXRvKQorICAgIGVsc2UgaWYgKHNsaWNlcy0+
cmlnaHQoKS0+Z2V0VmFsdWVJRCgpICE9IENTU1ZhbHVlQXV0bykKICAgICAgICAgYm94Lm1fcmln
aHQgPSBzbGljZXMtPnJpZ2h0KCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihzdHlsZSgpLCByb290
RWxlbWVudFN0eWxlKCksIHpvb20pOwogCiAgICAgaWYgKHNsaWNlcy0+Ym90dG9tKCktPmlzTnVt
YmVyKCkpCiAgICAgICAgIGJveC5tX2JvdHRvbSA9IExlbmd0aChzbGljZXMtPmJvdHRvbSgpLT5n
ZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7CiAgICAgZWxzZSBpZiAoc2xpY2VzLT5ib3R0b20oKS0+
aXNQZXJjZW50YWdlKCkpCiAgICAgICAgIGJveC5tX2JvdHRvbSA9IExlbmd0aChzbGljZXMtPmJv
dHRvbSgpLT5nZXREb3VibGVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0Up
LCBQZXJjZW50KTsKLSAgICBlbHNlIGlmIChzbGljZXMtPmJvdHRvbSgpLT5nZXRJZGVudCgpICE9
IENTU1ZhbHVlQXV0bykKKyAgICBlbHNlIGlmIChzbGljZXMtPmJvdHRvbSgpLT5nZXRWYWx1ZUlE
KCkgIT0gQ1NTVmFsdWVBdXRvKQogICAgICAgICBib3gubV9ib3R0b20gPSBzbGljZXMtPmJvdHRv
bSgpLT5jb21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGUoKSwgcm9vdEVsZW1lbnRTdHlsZSgpLCB6
b29tKTsKIAogICAgIGlmIChzbGljZXMtPmxlZnQoKS0+aXNOdW1iZXIoKSkKICAgICAgICAgYm94
Lm1fbGVmdCA9IExlbmd0aChzbGljZXMtPmxlZnQoKS0+Z2V0SW50VmFsdWUoKSwgUmVsYXRpdmUp
OwogICAgIGVsc2UgaWYgKHNsaWNlcy0+bGVmdCgpLT5pc1BlcmNlbnRhZ2UoKSkKICAgICAgICAg
Ym94Lm1fbGVmdCA9IExlbmd0aChzbGljZXMtPmxlZnQoKS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKSwgUGVyY2VudCk7Ci0gICAgZWxzZSBpZiAoc2xp
Y2VzLT5sZWZ0KCktPmdldElkZW50KCkgIT0gQ1NTVmFsdWVBdXRvKQorICAgIGVsc2UgaWYgKHNs
aWNlcy0+bGVmdCgpLT5nZXRWYWx1ZUlEKCkgIT0gQ1NTVmFsdWVBdXRvKQogICAgICAgICBib3gu
bV9sZWZ0ID0gc2xpY2VzLT5sZWZ0KCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihzdHlsZSgpLCBy
b290RWxlbWVudFN0eWxlKCksIHpvb20pOwogCiAgICAgcmV0dXJuIGJveDsKQEAgLTY1MCw4ICs2
NTYsOCBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcE5pbmVQaWVjZUltYWdlUmVwZWF0KENTU1Zh
bHVlKiB2YWx1ZSwgTmluZVBpZWNlSW1hZ2UmIGltYQogICAgIGlmICghcGFpciB8fCAhcGFpci0+
Zmlyc3QoKSB8fCAhcGFpci0+c2Vjb25kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGludCBm
aXJzdElkZW50aWZpZXIgPSBwYWlyLT5maXJzdCgpLT5nZXRJZGVudCgpOwotICAgIGludCBzZWNv
bmRJZGVudGlmaWVyID0gcGFpci0+c2Vjb25kKCktPmdldElkZW50KCk7CisgICAgQ1NTVmFsdWVJ
RCBmaXJzdElkZW50aWZpZXIgPSBwYWlyLT5maXJzdCgpLT5nZXRWYWx1ZUlEKCk7CisgICAgQ1NT
VmFsdWVJRCBzZWNvbmRJZGVudGlmaWVyID0gcGFpci0+c2Vjb25kKCktPmdldFZhbHVlSUQoKTsK
IAogICAgIEVOaW5lUGllY2VJbWFnZVJ1bGUgaG9yaXpvbnRhbFJ1bGU7CiAgICAgc3dpdGNoIChm
aXJzdElkZW50aWZpZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ291bnRlci5oCmluZGV4IGZjMjI3OWY5YWNhNDcyNDdi
NzA0YWJiZGM2ZTNiOWI4NTYxMmI4Y2MuLjIwNWJmOGJiZTVhZGRlNTM1M2JiYzUxYzRlZGYzMjcx
ZDdhYmQ2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NvdW50ZXIuaApAQCAtMzcsNyArMzcsNyBAQCBwdWJsaWM6CiAg
ICAgU3RyaW5nIGxpc3RTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdFN0eWxlID8gbV9saXN0
U3R5bGUtPmdldFN0cmluZ1ZhbHVlKCkgOiBTdHJpbmcoKTsgfQogICAgIFN0cmluZyBzZXBhcmF0
b3IoKSBjb25zdCB7IHJldHVybiBtX3NlcGFyYXRvciA/IG1fc2VwYXJhdG9yLT5nZXRTdHJpbmdW
YWx1ZSgpIDogU3RyaW5nKCk7IH0KIAotICAgIGludCBsaXN0U3R5bGVJZGVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGlzdFN0eWxlID8gbV9saXN0U3R5bGUtPmdldElkZW50KCkgOiAwOyB9CisgICAg
Q1NTVmFsdWVJRCBsaXN0U3R5bGVJZGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdFN0eWxlID8g
bV9saXN0U3R5bGUtPmdldFZhbHVlSUQoKSA6IENTU1ZhbHVlSW52YWxpZDsgfQogCiAgICAgdm9p
ZCBzZXRJZGVudGlmaWVyKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGlkZW50aWZpZXIp
IHsgbV9pZGVudGlmaWVyID0gaWRlbnRpZmllcjsgfQogICAgIHZvaWQgc2V0TGlzdFN0eWxlKFBh
c3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGxpc3RTdHlsZSkgeyBtX2xpc3RTdHlsZSA9IGxp
c3RTdHlsZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHls
ZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIu
Y3BwCmluZGV4IGMzNmZmMjQ4ZmU1ZDJlNTdhNDFhZWZjMzE4YjM2MDYzMmIzMmFmYjAuLjNiYjkw
Y2M1OWNkODU5YjU3MDhmZjAxZTA3MzA4OTk5YmM3OTJhNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKQEAgLTE2Niw3ICsxNjYsNyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHBy
aW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0g
ICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBpZE1hcHNUb01pbnVzT25l
KQorICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBpZE1hcHNUb01p
bnVzT25lKQogICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgLTEp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHls
ZSgpLCBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWU8TnVtYmVyVHlwZT4oQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19OVU1CRVIpKTsKQEAgLTIxNCw3ICsyMTQsNyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0g
c3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBhdXRvSWRlbnRpdHkpCisgICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IGF1dG9JZGVudGl0eSkKICAgICAgICAgICAgIHNl
dEF1dG8oc3R5bGVSZXNvbHZlci0+c3R5bGUoKSk7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlVHlw
ZSA9PSBOdW1iZXIpCiAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgp
LCAqcHJpbWl0aXZlVmFsdWUpOwpAQCAtMjYxLDcgKzI2MSw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIExlbmd0aCBsZWZ0ID0gY29udmVydFRvTGVuZ3RoKHN0eWxlUmVzb2x2ZXIsIHJlY3QtPmxl
ZnQoKSk7CiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRDbGlwKHRvcCwg
cmlnaHQsIGJvdHRvbSwgbGVmdCk7CiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgp
LT5zZXRIYXNDbGlwKHRydWUpOwotICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRJZGVudCgpID09IENTU1ZhbHVlQXV0bykgeworICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVBdXRvKSB7CiAgICAgICAgICAgICBzdHls
ZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRDbGlwKExlbmd0aCgpLCBMZW5ndGgoKSwgTGVuZ3RoKCks
IExlbmd0aCgpKTsKICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldEhhc0Ns
aXAoZmFsc2UpOwogICAgICAgICB9CkBAIC0yOTksNyArMjk5LDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1
ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgICAgICBpZiAo
aW5oZXJpdENvbG9yRnJvbVBhcmVudCAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBD
U1NWYWx1ZUN1cnJlbnRjb2xvcikKKyAgICAgICAgaWYgKGluaGVyaXRDb2xvckZyb21QYXJlbnQg
JiYgcHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUN1cnJlbnRjb2xvcikK
ICAgICAgICAgICAgIGFwcGx5SW5oZXJpdFZhbHVlKHByb3BlcnR5SUQsIHN0eWxlUmVzb2x2ZXIp
OwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGlmIChzdHlsZVJlc29sdmVyLT5hcHBseVBy
b3BlcnR5VG9SZWd1bGFyU3R5bGUoKSkKQEAgLTM2MCwzMCArMzYwLDMwIEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZl
VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAgICAg
aWYgKG5vbmVFbmFibGVkICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVl
Tm9uZSkgeworICAgICAgICBpZiAobm9uZUVuYWJsZWQgJiYgcHJpbWl0aXZlVmFsdWUtPmdldFZh
bHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmUpIHsKICAgICAgICAgICAgIGlmIChub25lVW5kZWZpbmVk
KQogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0
aChVbmRlZmluZWQpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzZXRWYWx1
ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBMZW5ndGgoKSk7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKGxlZ2FjeUludHJpbnNpY0VuYWJsZWQpIHsKLSAgICAgICAgICAgIGlmIChwcmltaXRpdmVW
YWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUludHJpbnNpYykKKyAgICAgICAgICAgIGlmIChw
cmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlSW50cmluc2ljKQogICAgICAg
ICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChJbnRyaW5z
aWMpKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09
IENTU1ZhbHVlTWluSW50cmluc2ljKQorICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFs
dWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU1pbkludHJpbnNpYykKICAgICAgICAgICAgICAg
ICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBMZW5ndGgoTWluSW50cmluc2ljKSk7
CiAgICAgICAgIH0KICAgICAgICAgaWYgKGludHJpbnNpY0VuYWJsZWQpIHsKLSAgICAgICAgICAg
IGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZVdlYmtpdE1pbkNvbnRl
bnQpCisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NW
YWx1ZVdlYmtpdE1pbkNvbnRlbnQpCiAgICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNv
bHZlci0+c3R5bGUoKSwgTGVuZ3RoKE1pbkNvbnRlbnQpKTsKLSAgICAgICAgICAgIGVsc2UgaWYg
KHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlV2Via2l0TWF4Q29udGVudCkK
KyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NT
VmFsdWVXZWJraXRNYXhDb250ZW50KQogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVz
b2x2ZXItPnN0eWxlKCksIExlbmd0aChNYXhDb250ZW50KSk7Ci0gICAgICAgICAgICBlbHNlIGlm
IChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZVdlYmtpdEZpbGxBdmFpbGFi
bGUpCisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09
IENTU1ZhbHVlV2Via2l0RmlsbEF2YWlsYWJsZSkKICAgICAgICAgICAgICAgICBzZXRWYWx1ZShz
dHlsZVJlc29sdmVyLT5zdHlsZSgpLCBMZW5ndGgoRmlsbEF2YWlsYWJsZSkpOwotICAgICAgICAg
ICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVXZWJraXRG
aXRDb250ZW50KQorICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVl
SUQoKSA9PSBDU1NWYWx1ZVdlYmtpdEZpdENvbnRlbnQpCiAgICAgICAgICAgICAgICAgc2V0VmFs
dWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKEZpdENvbnRlbnQpKTsKICAgICAgICAg
fQogCi0gICAgICAgIGlmIChhdXRvRW5hYmxlZCAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQo
KSA9PSBDU1NWYWx1ZUF1dG8pCisgICAgICAgIGlmIChhdXRvRW5hYmxlZCAmJiBwcmltaXRpdmVW
YWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgIHNldFZhbHVl
KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aCgpKTsKICAgICAgICAgZWxzZSBpZiAocHJp
bWl0aXZlVmFsdWUtPmlzTGVuZ3RoKCkpIHsKICAgICAgICAgICAgIExlbmd0aCBsZW5ndGggPSBw
cmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KHN0eWxlUmVzb2x2ZXItPnN0eWxl
KCksIHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+c3R5
bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKQEAgLTQxNCw4ICs0MTQsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgICAgIGlmICgoaWRlbnRCZWhhdmlvciA9
PSBNYXBOb25lVG9OdWxsICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVl
Tm9uZSkKLSAgICAgICAgICAgIHx8IChpZGVudEJlaGF2aW9yID09IE1hcEF1dG9Ub051bGwgJiYg
cHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVBdXRvKSkKKyAgICAgICAgaWYg
KChpZGVudEJlaGF2aW9yID09IE1hcE5vbmVUb051bGwgJiYgcHJpbWl0aXZlVmFsdWUtPmdldFZh
bHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmUpCisgICAgICAgICAgICB8fCAoaWRlbnRCZWhhdmlvciA9
PSBNYXBBdXRvVG9OdWxsICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVBdXRvKSkKICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIG51
bGxBdG9tKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZl
ci0+c3R5bGUoKSwgcHJpbWl0aXZlVmFsdWUtPmdldFN0cmluZ1ZhbHVlKCkpOwpAQCAtNTkxLDcg
KzU5MSw3IEBAIHB1YmxpYzoKIAogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZl
VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKIAotICAgICAg
ICBpbnQgaWRlbnQgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKTsKKyAgICAgICAgQ1NTVmFs
dWVJRCBpZGVudCA9IHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCk7CiAgICAgICAgIFQgbGVu
Z3RoOwogICAgICAgICBpZiAobm9ybWFsRW5hYmxlZCAmJiBpZGVudCA9PSBDU1NWYWx1ZU5vcm1h
bCkgewogICAgICAgICAgICAgbGVuZ3RoID0gMDsKQEAgLTcwNyw3ICs3MDcsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBpZiAoY29udGVudFZhbHVlLT5pc1N0cmluZygpKQogICAgICAgICAgICAg
ICAgIGZhY2UgPSBjb250ZW50VmFsdWUtPmdldFN0cmluZ1ZhbHVlKCk7CiAgICAgICAgICAgICBl
bHNlIGlmIChTZXR0aW5ncyogc2V0dGluZ3MgPSBzdHlsZVJlc29sdmVyLT5kb2N1bWVudCgpLT5z
ZXR0aW5ncygpKSB7Ci0gICAgICAgICAgICAgICAgc3dpdGNoIChjb250ZW50VmFsdWUtPmdldElk
ZW50KCkpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbnRlbnRWYWx1ZS0+Z2V0VmFsdWVJ
RCgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdEJvZHk6CiAgICAgICAg
ICAgICAgICAgICAgIGZhY2UgPSBzZXR0aW5ncy0+c3RhbmRhcmRGb250RmFtaWx5KCk7CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNzM1LDYgKzczNSw4IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgICAgICAgICAgZmFjZSA9IHBpY3RvZ3JhcGhGYW1pbHk7CiAgICAgICAgICAgICAgICAg
ICAgIGZvbnREZXNjcmlwdGlvbi5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlvbjo6UGlj
dG9ncmFwaEZhbWlseSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KIApAQCAtODIzLDcgKzgyNSw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIHBhcmVudElzQWJzb2x1dGVTaXplID0gc3R5bGVSZXNvbHZlci0+cGFyZW50U3R5bGUoKS0+
Zm9udERlc2NyaXB0aW9uKCkuaXNBYnNvbHV0ZVNpemUoKTsKICAgICAgICAgfQogCi0gICAgICAg
IGlmIChpbnQgaWRlbnQgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICBp
ZiAoQ1NTVmFsdWVJRCBpZGVudCA9IHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAg
ICAgICAgICAgIC8vIEtleXdvcmRzIGFyZSBiZWluZyB1c2VkLgogICAgICAgICAgICAgc3dpdGNo
IChpZGVudCkgewogICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVh4U21hbGw6CkBAIC04ODYsNyAr
ODg4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBDU1NQcmltaXRp
dmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KHZhbHVlKTsKICAgICAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbiA9IHN0eWxl
UmVzb2x2ZXItPmZvbnREZXNjcmlwdGlvbigpOwotICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldFZh
bHVlSUQoKSkgewogICAgICAgICBjYXNlIENTU1ZhbHVlSW52YWxpZDoKICAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC05NDYsNyArOTQ4LDcg
QEAgcHVibGljOgogICAgICAgICAgICAgICAgIEFTU0VSVChpdGVtLT5pc1ByaW1pdGl2ZVZhbHVl
KCkpOwogICAgICAgICAgICAgICAgIGlmIChpdGVtLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpdGVtKTsKLSAgICAgICAgICAgICAgICAgICAg
c3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgICAgICAg
ICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZU5vQ29tbW9uTGlnYXR1cmVzOgogICAgICAgICAgICAgICAgICAg
ICAgICAgY29tbW9uTGlnYXR1cmVzU3RhdGUgPSBGb250RGVzY3JpcHRpb246OkRpc2FibGVkTGln
YXR1cmVzU3RhdGU7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTk3NSw3ICs5
NzcsNyBAQCBwdWJsaWM6CiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgICAgICBlbHNlIHsKICAg
ICAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHZhbHVlLT5pc1ByaW1p
dGl2ZVZhbHVlKCkpOwotICAgICAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4odmFsdWUpLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9ybWFsKTsKKyAgICAgICAg
ICAgIEFTU0VSVChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0VmFs
dWVJRCgpID09IENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgfQogI2VuZGlmCiAKQEAgLTExMjMs
NyArMTEyNSw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1ZShD
U1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSogdmFs
dWUpCiAgICAgewotICAgICAgICBib29sIHNldENvdW50ZXJJbmNyZW1lbnRUb05vbmUgPSBjb3Vu
dGVyQmVoYXZpb3IgPT0gSW5jcmVtZW50ICYmIHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYg
c3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldElkZW50KCkgPT0gQ1NT
VmFsdWVOb25lOworICAgICAgICBib29sIHNldENvdW50ZXJJbmNyZW1lbnRUb05vbmUgPSBjb3Vu
dGVyQmVoYXZpb3IgPT0gSW5jcmVtZW50ICYmIHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYg
c3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldFZhbHVlSUQoKSA9PSBD
U1NWYWx1ZU5vbmU7CiAKICAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSAmJiAhc2V0
Q291bnRlckluY3JlbWVudFRvTm9uZSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTExOTYsMTMg
KzExOTgsMTMgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5z
dHlsZSgpLT5hZGRDdXJzb3Ioc3R5bGVSZXNvbHZlci0+c3R5bGVJbWFnZShDU1NQcm9wZXJ0eUN1
cnNvciwgaW1hZ2UpLCBpbWFnZS0+aG90U3BvdCgpKTsKICAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSkgewogICAgICAgICAgICAgICAgICAgICBDU1NQ
cmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZSo+KGl0ZW0pOwotICAgICAgICAgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmlz
SWRlbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1ZhbHVl
SUQoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNl
dEN1cnNvcigqcHJpbWl0aXZlVmFsdWUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CiAgICAg
ICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1
ZS0+aXNJZGVudCgpICYmIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPmN1cnNvcigpICE9IEVDdXJz
b3IoKnByaW1pdGl2ZVZhbHVlKSkKKyAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNW
YWx1ZUlEKCkgJiYgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+Y3Vyc29yKCkgIT0gRUN1cnNvcigq
cHJpbWl0aXZlVmFsdWUpKQogICAgICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCkt
PnNldEN1cnNvcigqcHJpbWl0aXZlVmFsdWUpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTIxOSw3
ICsxMjIxLDcgQEAgcHVibGljOgogCiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRp
dmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwogCi0gICAg
ICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSAhPSBDU1NWYWx1ZVdlYmtpdE1hdGNo
UGFyZW50KQorICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSAhPSBDU1NW
YWx1ZVdlYmtpdE1hdGNoUGFyZW50KQogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUo
KS0+c2V0VGV4dEFsaWduKCpwcmltaXRpdmVWYWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKHN0eWxl
UmVzb2x2ZXItPnBhcmVudFN0eWxlKCktPnRleHRBbGlnbigpID09IFRBU1RBUlQpCiAgICAgICAg
ICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0QWxpZ24oc3R5bGVSZXNvbHZlci0+
cGFyZW50U3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gTEVGVCA6IFJJR0hUKTsK
QEAgLTEyNjIsOCArMTI2NCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJ
ZGVudCgpKSB7Ci0gICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgp
KSB7CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CisgICAgICAg
ICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVTbWFsbDoKICAgICAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHls
ZSgpLT5zZXRNYXJxdWVlSW5jcmVtZW50KExlbmd0aCgxLCBGaXhlZCkpOyAvLyAxcHguCiAgICAg
ICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjczLDYgKzEyNzUsOCBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBjYXNlIENTU1ZhbHVlTGFyZ2U6CiAgICAgICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+
c3R5bGUoKS0+c2V0TWFycXVlZUluY3JlbWVudChMZW5ndGgoMzYsIEZpeGVkKSk7IC8vIDM2cHgu
CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgTGVuZ3RoIG1hcnF1ZWVMZW5ndGggPSBzdHlsZVJlc29sdmVyLT5jb252ZXJ0VG9JbnRMZW5n
dGgocHJpbWl0aXZlVmFsdWUsIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxlUmVzb2x2ZXIt
PnJvb3RFbGVtZW50U3R5bGUoKSk7CkBAIC0xMjk1LDcgKzEyOTksNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZh
bHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgICAgIGlm
IChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUluZmluaXRlKQorICAgICAg
ICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUluZmluaXRlKQog
ICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0TWFycXVlZUxvb3BDb3VudCgt
MSk7IC8vIC0xIG1lYW5zIHJlcGVhdCBmb3JldmVyLgogICAgICAgICBlbHNlIGlmIChwcmltaXRp
dmVWYWx1ZS0+aXNOdW1iZXIoKSkKICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCkt
PnNldE1hcnF1ZWVMb29wQ291bnQocHJpbWl0aXZlVmFsdWUtPmdldEludFZhbHVlKCkpOwpAQCAt
MTMxNSw3ICsxMzE5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4odmFsdWUpOwotICAgICAgICBpZiAoaW50IGlkZW50ID0gcHJpbWl0aXZlVmFs
dWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgaWYgKENTU1ZhbHVlSUQgaWRlbnQgPSBwcmltaXRp
dmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKGlkZW50KSB7CiAg
ICAgICAgICAgICBjYXNlIENTU1ZhbHVlU2xvdzoKICAgICAgICAgICAgICAgICBzdHlsZVJlc29s
dmVyLT5zdHlsZSgpLT5zZXRNYXJxdWVlU3BlZWQoNTAwKTsgLy8gNTAwIG1zZWMuCkBAIC0xMzI2
LDYgKzEzMzAsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlRmFzdDoKICAg
ICAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRNYXJxdWVlU3BlZWQoMTAp
OyAvLyAxMG1zZWMuIFN1cGVyIGZhc3QuCiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAg
ICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1RpbWUoKSkKICAgICAgICAgICAgIHN0
eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldE1hcnF1ZWVTcGVlZChwcmltaXRpdmVWYWx1ZS0+Y29t
cHV0ZVRpbWU8aW50LCBDU1NQcmltaXRpdmVWYWx1ZTo6TWlsbGlzZWNvbmRzPigpKTsKQEAgLTEz
NzgsNyArMTM4NCw3IEBAIHB1YmxpYzoKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1p
dGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CiAgICAg
ICAgIExlbmd0aCBsaW5lSGVpZ2h0OwogCi0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0
SWRlbnQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb3JtYWwpCiAgICAgICAgICAgICBsaW5lSGVpZ2h0ID0g
UmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lSGVpZ2h0KCk7CiAgICAgICAgIGVsc2UgaWYgKHByaW1p
dGl2ZVZhbHVlLT5pc0xlbmd0aCgpKSB7CiAgICAgICAgICAgICBkb3VibGUgbXVsdGlwbGllciA9
IHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKTsKQEAgLTE0MzAsNyArMTQz
Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICghcGFnZVNpemVOYW1lKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgICAgIHN3aXRjaCAocGFnZVNpemVOYW1lLT5nZXRJZGVudCgp
KSB7CisgICAgICAgIHN3aXRjaCAocGFnZVNpemVOYW1lLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAg
ICAgY2FzZSBDU1NWYWx1ZUE1OgogICAgICAgICAgICAgd2lkdGggPSBhNVdpZHRoOwogICAgICAg
ICAgICAgaGVpZ2h0ID0gYTVIZWlnaHQ7CkBAIC0xNDY4LDcgKzE0NzQsNyBAQCBwcml2YXRlOgog
ICAgICAgICB9CiAKICAgICAgICAgaWYgKHBhZ2VPcmllbnRhdGlvbikgewotICAgICAgICAgICAg
c3dpdGNoIChwYWdlT3JpZW50YXRpb24tPmdldElkZW50KCkpIHsKKyAgICAgICAgICAgIHN3aXRj
aCAocGFnZU9yaWVudGF0aW9uLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAgICAgICAgIGNhc2UgQ1NT
VmFsdWVMYW5kc2NhcGU6CiAgICAgICAgICAgICAgICAgc3RkOjpzd2FwKHdpZHRoLCBoZWlnaHQp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTUyMyw3ICsxNTI5LDcgQEAgcHVibGljOgog
ICAgICAgICAgICAgICAgIHBhZ2VTaXplVHlwZSA9IFBBR0VfU0laRV9SRVNPTFZFRDsKICAgICAg
ICAgICAgICAgICB3aWR0aCA9IGhlaWdodCA9IHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3Ro
PExlbmd0aD4oc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+cm9vdEVsZW1l
bnRTdHlsZSgpKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc3dpdGNo
IChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgICAgIHN3aXRjaCAo
cHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgMDoK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFs
dWVBdXRvOgpAQCAtMTU4Miw3ICsxNTg4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKIAogICAgICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7Ci0gICAgICAgICAgICAgICAg
aWYgKHZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRmlsbGVkIHx8IHZhbHVlLT5nZXRJZGVu
dCgpID09IENTU1ZhbHVlT3BlbikKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUtPmdldFZhbHVl
SUQoKSA9PSBDU1NWYWx1ZUZpbGxlZCB8fCB2YWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVl
T3BlbikKICAgICAgICAgICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4
dEVtcGhhc2lzRmlsbCgqdmFsdWUpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEVtcGhhc2lzTWFyaygqdmFs
dWUpOwpAQCAtMTYwNCw3ICsxNjEwLDcgQEAgcHVibGljOgogCiAgICAgICAgIHN0eWxlUmVzb2x2
ZXItPnN0eWxlKCktPnNldFRleHRFbXBoYXNpc0N1c3RvbU1hcmsobnVsbEF0b20pOwogCi0gICAg
ICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUZpbGxlZCB8fCBw
cmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU9wZW4pIHsKKyAgICAgICAgaWYg
KHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVGaWxsZWQgfHwgcHJpbWl0
aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU9wZW4pIHsKICAgICAgICAgICAgIHN0
eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRFbXBoYXNpc0ZpbGwoKnByaW1pdGl2ZVZhbHVl
KTsKICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRFbXBoYXNpc01h
cmsoVGV4dEVtcGhhc2lzTWFya0F1dG8pOwogICAgICAgICB9IGVsc2UgewpAQCAtMTcyNSw3ICsx
NzMxLDcgQEAgcHVibGljOgogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFs
dWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKIAogICAgICAgICBF
UmVzaXplIHIgPSBSRVNJWkVfTk9ORTsKLSAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+
Z2V0SWRlbnQoKSkgeworICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlE
KCkpIHsKICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBjYXNl
IENTU1ZhbHVlQXV0bzoKQEAgLTE3NTQsNyArMTc2MCw3IEBAIHB1YmxpYzoKIAogICAgICAgICBD
U1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KHZhbHVlKTsKIAotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkpCisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKQogICAgICAgICAg
ICAgcmV0dXJuIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFZlcnRpY2FsQWxpZ24oKnByaW1p
dGl2ZVZhbHVlKTsKIAogICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRWZXJ0aWNh
bEFsaWduTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5jb252ZXJ0VG9MZW5ndGg8Rml4ZWRJbnRlZ2Vy
Q29udmVyc2lvbiB8IFBlcmNlbnRDb252ZXJzaW9uIHwgQ2FsY3VsYXRlZENvbnZlcnNpb24gfCBW
aWV3cG9ydFBlcmNlbnRhZ2VDb252ZXJzaW9uPihzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBzdHls
ZVJlc29sdmVyLT5yb290RWxlbWVudFN0eWxlKCksIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPmVm
ZmVjdGl2ZVpvb20oKSkpOwpAQCAtMTgyOSwxMyArMTgzNSwxMyBAQCBwdWJsaWM6CiAgICAgICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVl
KCkpOwogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNf
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKIAotICAgICAgICBpZiAocHJpbWl0aXZl
VmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb3JtYWwpIHsKKyAgICAgICAgaWYgKHByaW1p
dGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb3JtYWwpIHsKICAgICAgICAgICAg
IHJlc2V0RWZmZWN0aXZlWm9vbShzdHlsZVJlc29sdmVyKTsKICAgICAgICAgICAgIHN0eWxlUmVz
b2x2ZXItPnNldFpvb20oUmVuZGVyU3R5bGU6OmluaXRpYWxab29tKCkpOwotICAgICAgICB9IGVs
c2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlUmVzZXQpIHsKKyAg
ICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVl
UmVzZXQpIHsKICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnNldEVmZmVjdGl2ZVpvb20oUmVu
ZGVyU3R5bGU6OmluaXRpYWxab29tKCkpOwogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c2V0
Wm9vbShSZW5kZXJTdHlsZTo6aW5pdGlhbFpvb20oKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAocHJp
bWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVEb2N1bWVudCkgeworICAgICAgICB9
IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVEb2N1bWVu
dCkgewogICAgICAgICAgICAgZmxvYXQgZG9jWm9vbSA9IHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVt
ZW50U3R5bGUoKSA/IHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUoKS0+em9vbSgpIDog
UmVuZGVyU3R5bGU6OmluaXRpYWxab29tKCk7CiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5z
ZXRFZmZlY3RpdmVab29tKGRvY1pvb20pOwogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c2V0
Wm9vbShkb2Nab29tKTsKQEAgLTE5MTAsNyArMTkxNiw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CiAgICAgICAgICAgICBDU1NQcmlt
aXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZSo+KHZhbHVlKTsKLSAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9
PSBDU1NWYWx1ZU5vbmUpCisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVl
SUQoKSA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNv
bHZlci0+c3R5bGUoKSwgMCk7CiAgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+
aXNTaGFwZSgpKSB7CiAgICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5
bGUoKSwgU2hhcGVDbGlwUGF0aE9wZXJhdGlvbjo6Y3JlYXRlKGJhc2ljU2hhcGVGb3JWYWx1ZShz
dHlsZVJlc29sdmVyLT5zdHlsZSgpLCBzdHlsZVJlc29sdmVyLT5yb290RWxlbWVudFN0eWxlKCks
IHByaW1pdGl2ZVZhbHVlLT5nZXRTaGFwZVZhbHVlKCkpKSk7CkBAIC0xOTQxLDEwICsxOTQ3LDEw
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgp
KSB7CiAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAgICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pCisgICAgICAgICAgICBpZiAo
cHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgICAg
ICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgMCk7CiAgICAgICAgICAgICAv
LyBGSVhNRSBCdWcgMTAyNTcxOiBMYXlvdXQgZm9yIHRoZSB2YWx1ZSAnb3V0c2lkZS1zaGFwZScg
aXMgbm90IHlldCBpbXBsZW1lbnRlZAotICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFs
dWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVPdXRzaWRlU2hhcGUpCisgICAgICAgICAgICBlbHNl
IGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlT3V0c2lkZVNoYXBl
KQogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIFNoYXBl
VmFsdWU6OmNyZWF0ZU91dHNpZGVWYWx1ZSgpKTsKICAgICAgICAgICAgIGVsc2UgaWYgKHByaW1p
dGl2ZVZhbHVlLT5pc1NoYXBlKCkpIHsKICAgICAgICAgICAgICAgICBSZWZQdHI8U2hhcGVWYWx1
ZT4gc2hhcGUgPSBTaGFwZVZhbHVlOjpjcmVhdGVTaGFwZVZhbHVlKGJhc2ljU2hhcGVGb3JWYWx1
ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBzdHlsZVJlc29sdmVyLT5yb290RWxlbWVudFN0eWxl
KCksIHByaW1pdGl2ZVZhbHVlLT5nZXRTaGFwZVZhbHVlKCkpKTsKQEAgLTE5OTQsOSArMjAwMCw5
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGlmICghaXRlbS0+aXNQcmltaXRpdmVWYWx1ZSgpKQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUq
IHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpdGVtKTsK
LSAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUZy
b21JbWFnZSkKKyAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09
IENTU1ZhbHVlRnJvbUltYWdlKQogICAgICAgICAgICAgICAgIHNvdXJjZSA9IEltYWdlUmVzb2x1
dGlvbkZyb21JbWFnZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJ
ZGVudCgpID09IENTU1ZhbHVlU25hcCkKKyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZh
bHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVTbmFwKQogICAgICAgICAgICAgICAgIHNuYXAg
PSBJbWFnZVJlc29sdXRpb25TbmFwUGl4ZWxzOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgIHJlc29sdXRpb24gPSBwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19EUFBYKTsKQEAgLTIwNTAsMTIgKzIwNTYsMTIgQEAgcHVibGljOgog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1
ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0p
OwotICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkKKyAgICAgICAg
ICAgIGlmICghcHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkKICAgICAgICAgICAgICAgICBs
ZW5ndGhPclBlcmNlbnRhZ2VWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLT5jb252ZXJ0VG9MZW5ndGg8
Rml4ZWRJbnRlZ2VyQ29udmVyc2lvbiB8IFBlcmNlbnRDb252ZXJzaW9uIHwgQ2FsY3VsYXRlZENv
bnZlcnNpb24gfCBWaWV3cG9ydFBlcmNlbnRhZ2VDb252ZXJzaW9uPihzdHlsZVJlc29sdmVyLT5z
dHlsZSgpLCBzdHlsZVJlc29sdmVyLT5yb290RWxlbWVudFN0eWxlKCksIHN0eWxlUmVzb2x2ZXIt
PnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSk7CiAjaWYgRU5BQkxFKENTUzNfVEVYVCkKLSAgICAg
ICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlV2Vi
a2l0RWFjaExpbmUpCisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFs
dWVJRCgpID09IENTU1ZhbHVlV2Via2l0RWFjaExpbmUpCiAgICAgICAgICAgICAgICAgdGV4dElu
ZGVudExpbmVWYWx1ZSA9IFRleHRJbmRlbnRFYWNoTGluZTsKLSAgICAgICAgICAgIGVsc2UgaWYg
KHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlV2Via2l0SGFuZ2luZykKKyAg
ICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVXZWJraXRIYW5naW5nKQogICAgICAgICAgICAgICAgIHRleHRJbmRlbnRUeXBlVmFsdWUgPSBU
ZXh0SW5kZW50SGFuZ2luZzsKICNlbmRpZgogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKaW5kZXggYzQ3MzMyNTczYTE0MmQ2YTYwZDU5YmUwNzhi
YmZmMWUwMDk1OGNmZi4uNjhkZTBmNjJkN2QyY2UxY2ZjNDM1MmY3ZjZlMGQwODkzNTZiYTc2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtMjQ5LDcg
KzI0OSw3IEBAIHN0YXRpYyBib29sIG9yaWVudGF0aW9uTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1
ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyCiAgICAgaW50IHdpZHRoID0gdmlldy0+
bGF5b3V0V2lkdGgoKTsKICAgICBpbnQgaGVpZ2h0ID0gdmlldy0+bGF5b3V0SGVpZ2h0KCk7CiAg
ICAgaWYgKHZhbHVlICYmIHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKLSAgICAgICAgY29u
c3QgaW50IGlkID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldElk
ZW50KCk7CisgICAgICAgIGNvbnN0IENTU1ZhbHVlSUQgaWQgPSBzdGF0aWNfY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0VmFsdWVJRCgpOwogICAgICAgICBpZiAod2lkdGggPiBo
ZWlnaHQpIC8vIFNxdWFyZSB2aWV3cG9ydCBpcyBwb3J0cmFpdC4KICAgICAgICAgICAgIHJldHVy
biBDU1NWYWx1ZUxhbmRzY2FwZSA9PSBpZDsKICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9ydHJh
aXQgPT0gaWQ7CkBAIC02MDMsNyArNjAzLDcgQEAgc3RhdGljIGJvb2wgdmlld19tb2RlTWVkaWFG
ZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW0KICAg
ICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGNvbnN0IGludCB2aWV3
TW9kZUNTU0tleXdvcmRJRCA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUp
LT5nZXRJZGVudCgpOworICAgIGNvbnN0IGludCB2aWV3TW9kZUNTU0tleXdvcmRJRCA9IHN0YXRp
Y19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRWYWx1ZUlEKCk7CiAgICAgY29u
c3QgUGFnZTo6Vmlld01vZGUgdmlld01vZGUgPSBmcmFtZS0+cGFnZSgpLT52aWV3TW9kZSgpOwog
ICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CiAgICAgc3dpdGNoICh2aWV3TW9kZSkgewpAQCAtNjg1
LDcgKzY4NSw3IEBAIHN0YXRpYyBib29sIHBvaW50ZXJNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVl
KiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsCiAgICAgaWYgKCF2YWx1ZS0+aXNQ
cmltaXRpdmVWYWx1ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjb25zdCBpbnQg
aWQgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0SWRlbnQoKTsK
KyAgICBjb25zdCBDU1NWYWx1ZUlEIGlkID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUq
Pih2YWx1ZSktPmdldFZhbHVlSUQoKTsKICAgICByZXR1cm4gKHBvaW50ZXIgPT0gTm9Qb2ludGVy
ICYmIGlkID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAgfHwgKHBvaW50ZXIgPT0gVG91Y2hQb2lu
dGVyICYmIGlkID09IENTU1ZhbHVlQ29hcnNlKQogICAgICAgICB8fCAocG9pbnRlciA9PSBNb3Vz
ZVBvaW50ZXIgJiYgaWQgPT0gQ1NTVmFsdWVGaW5lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1BhcnNl
ci5jcHAKaW5kZXggMTk0MWIzMmI0OWNkMWY2ZjUzNTE0M2IzN2VjNGIxMTBkYjJjZjFjMS4uZGZk
Yzc0ZThiYTM5MjMyNDI2ZDQ1YTI0M2M0ZTYzZGRkYzAwMmI0MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1NWR0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NW
R0NTU1BhcnNlci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU1ZH
VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGlmICghdmFs
dWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGludCBpZCA9IHZhbHVlLT5pZDsKKyAg
ICBDU1NWYWx1ZUlEIGlkID0gdmFsdWUtPmlkOwogCiAgICAgYm9vbCB2YWxpZF9wcmltaXRpdmUg
PSBmYWxzZTsKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlZFZhbHVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDcwZDFjYTRmOWNmZGNkYWU4OTM1
NzNmMGFjODhkZTA1MmM3MDQ3NjguLjZmODcyMzFkZjg1MDRiNTU2NTBjNzIyY2E4Y2Y2MGVmYjE4
NTFlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAg
LTEzNyw4ICsxMzcsOCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5U1ZHUHJvcGVydHkoQ1NT
UHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICAgICAgaWYgKCFwcmltaXRp
dmVWYWx1ZSkKICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgaWYgKHByaW1p
dGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7Ci0gICAgICAgICAgICAgICAgc3dpdGNoIChwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRWYWx1ZUlEKCkpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5n
ZXRWYWx1ZUlEKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlQmFzZWxpbmU6CiAg
ICAgICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRCYXNlbGluZVNoaWZ0KEJTX0JBU0VMSU5F
KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC01MzksNyArNTM5LDcgQEAgdm9pZCBT
dHlsZVJlc29sdmVyOjphcHBseVNWR1Byb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVl
KiB2YWx1ZSkKICAgICAgICAgICAgICAgICBBU1NFUlQob3JpZW50YXRpb24gIT0gLTEpOwogCiAg
ICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldEdseXBoT3JpZW50YXRpb25WZXJ0aWNhbCgoRUds
eXBoT3JpZW50YXRpb24pIG9yaWVudGF0aW9uKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAocHJp
bWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVBdXRvKQorICAgICAgICAgICAgfSBl
bHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQXV0bykKICAg
ICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0R2x5cGhPcmllbnRhdGlvblZlcnRpY2FsKEdPX0FV
VE8pOwogCiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVByb3BlcnR5U2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5
U2V0LmNwcAppbmRleCBkNmFhMzMxODQ4YTU2YTQ3ZTI3MGM2YmEwZWM0ZWY2NWJiYmM0YThkLi5j
MGRiZmZjNjY2YmJmMjc5MDIzYmMyMTgzMGY2YjU5OWM4Yzg0OTI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCkBAIC00MjAsOCArNDIwLDggQEAgU3RyaW5nIFN0eWxl
UHJvcGVydHlTZXQ6OmdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5
U2hvcnRoYW5kJgogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
ICAgICB5VmFsdWUgPSBuZXh0VmFsdWU7CiAKLSAgICAgICAgICAgICAgICAgICAgaW50IHhJZCA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUuZ2V0KCkpLT5nZXRJZGVudCgp
OwotICAgICAgICAgICAgICAgICAgICBpbnQgeUlkID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPih5VmFsdWUuZ2V0KCkpLT5nZXRJZGVudCgpOworICAgICAgICAgICAgICAgICAgICBD
U1NWYWx1ZUlEIHhJZCA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUuZ2V0
KCkpLT5nZXRWYWx1ZUlEKCk7CisgICAgICAgICAgICAgICAgICAgIENTU1ZhbHVlSUQgeUlkID0g
c3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih5VmFsdWUuZ2V0KCkpLT5nZXRWYWx1ZUlE
KCk7CiAgICAgICAgICAgICAgICAgICAgIGlmICh4SWQgIT0geUlkKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoeElkID09IENTU1ZhbHVlUmVwZWF0ICYmIHlJZCA9PSBDU1NWYWx1ZU5v
UmVwZWF0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlUmVwZWF0WFNob3J0aGFu
ZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNWMzOGJlYWNl
MzA3OGNhMzk4OGE1ZmFiN2JlMjY3MzJjYmQ5ODg4NS4uZTJkOGQ4ZGUyNDdiYmYwODUxMDc1MGQ5
Yzg0MjUwZWVjZTljOTQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAt
MjA1OCwxMiArMjA1OCwxMiBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OnVzZVNWR1pvb21SdWxlcygp
CiAKIHN0YXRpYyBib29sIGNyZWF0ZUdyaWRUcmFja0JyZWFkdGgoQ1NTUHJpbWl0aXZlVmFsdWUq
IHByaW1pdGl2ZVZhbHVlLCBjb25zdCBTdHlsZVJlc29sdmVyOjpTdGF0ZSYgc3RhdGUsIExlbmd0
aCYgd29ya2luZ0xlbmd0aCkKIHsKLSAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkg
PT0gQ1NTVmFsdWVXZWJraXRNaW5Db250ZW50KSB7CisgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVXZWJraXRNaW5Db250ZW50KSB7CiAgICAgICAgIHdvcmtp
bmdMZW5ndGggPSBMZW5ndGgoTWluQ29udGVudCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIAotICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZVdlYmtp
dE1heENvbnRlbnQpIHsKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBD
U1NWYWx1ZVdlYmtpdE1heENvbnRlbnQpIHsKICAgICAgICAgd29ya2luZ0xlbmd0aCA9IExlbmd0
aChNYXhDb250ZW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMjEwOCw3ICsy
MTA4LDcgQEAgc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRyYWNrTGlzdChDU1NWYWx1ZSogdmFsdWUs
IFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgdHJhY2tTaXoKICAgICAvLyBIYW5kbGUgJ25vbmUnLgog
ICAgIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CiAgICAgICAgIENTU1ByaW1pdGl2
ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4o
dmFsdWUpOwotICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NT
VmFsdWVOb25lOworICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9
PSBDU1NWYWx1ZU5vbmU7CiAgICAgfQogCiAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkK
QEAgLTIxMzMsNyArMjEzMyw3IEBAIHN0YXRpYyBib29sIGNyZWF0ZUdyaWRQb3NpdGlvbihDU1NW
YWx1ZSogdmFsdWUsIEdyaWRQb3NpdGlvbiYgcG9zaXRpb24pCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0
SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pCisgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1
ZUlEKCkgPT0gQ1NTVmFsdWVBdXRvKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHByaW1pdGl2ZVZhbHVlLT5pc051bWJlcigpKTsK
QEAgLTIzMTAsMTQgKzIzMTAsMTQgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5
KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgICAgICAgICB9IGVs
c2UgaWYgKGNvbnRlbnRWYWx1ZS0+aXNDb3VudGVyKCkpIHsKICAgICAgICAgICAgICAgICAgICAg
Q291bnRlciogY291bnRlclZhbHVlID0gY29udGVudFZhbHVlLT5nZXRDb3VudGVyVmFsdWUoKTsK
ICAgICAgICAgICAgICAgICAgICAgRUxpc3RTdHlsZVR5cGUgbGlzdFN0eWxlVHlwZSA9IE5vbmVM
aXN0U3R5bGU7Ci0gICAgICAgICAgICAgICAgICAgIGludCBsaXN0U3R5bGVJZGVudCA9IGNvdW50
ZXJWYWx1ZS0+bGlzdFN0eWxlSWRlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgQ1NTVmFsdWVJ
RCBsaXN0U3R5bGVJZGVudCA9IGNvdW50ZXJWYWx1ZS0+bGlzdFN0eWxlSWRlbnQoKTsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKGxpc3RTdHlsZUlkZW50ICE9IENTU1ZhbHVlTm9uZSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZVR5cGUgPSBzdGF0aWNfY2FzdDxFTGlzdFN0eWxl
VHlwZT4obGlzdFN0eWxlSWRlbnQgLSBDU1NWYWx1ZURpc2MpOwogICAgICAgICAgICAgICAgICAg
ICBPd25QdHI8Q291bnRlckNvbnRlbnQ+IGNvdW50ZXIgPSBhZG9wdFB0cihuZXcgQ291bnRlckNv
bnRlbnQoY291bnRlclZhbHVlLT5pZGVudGlmaWVyKCksIGxpc3RTdHlsZVR5cGUsIGNvdW50ZXJW
YWx1ZS0+c2VwYXJhdG9yKCkpKTsKICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc3R5bGUoKS0+
c2V0Q29udGVudChjb3VudGVyLnJlbGVhc2UoKSwgZGlkU2V0KTsKICAgICAgICAgICAgICAgICAg
ICAgZGlkU2V0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICBzd2l0Y2ggKGNvbnRlbnRWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAg
ICAgICAgICBzd2l0Y2ggKGNvbnRlbnRWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGNhc2UgQ1NTVmFsdWVPcGVuUXVvdGU6CiAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0ZS5zdHlsZSgpLT5zZXRDb250ZW50KE9QRU5fUVVPVEUsIGRpZFNldCk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOwpAQCAtMjM3Miw3ICsyMzcyLDcgQEAgdm9p
ZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVl
KiB2YWx1ZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAocHJp
bWl0aXZlVmFsdWUpIHsKLSAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQo
KSA9PSBDU1NWYWx1ZU5vbmUpCisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZh
bHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAgICAgICAgICAgc3RhdGUuc3R5bGUoKS0+
c2V0UXVvdGVzKFF1b3Rlc0RhdGE6OmNyZWF0ZShWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3Ry
aW5nPiA+KCkpKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CkBAIC0yMzk0LDcgKzIzOTQs
NyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwg
Q1NTVmFsdWUqIHZhbHVlKQogICAgICAgICAgICAgc3RhdGUuc2V0TGluZUhlaWdodFZhbHVlKDAp
OwogCiAgICAgICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOwotICAgICAg
ICAgICAgUmVuZGVyVGhlbWU6OmRlZmF1bHRUaGVtZSgpLT5zeXN0ZW1Gb250KHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpLCBmb250RGVzY3JpcHRpb24pOworICAgICAgICAgICAgUmVuZGVyVGhl
bWU6OmRlZmF1bHRUaGVtZSgpLT5zeXN0ZW1Gb250KHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlE
KCksIGZvbnREZXNjcmlwdGlvbik7CiAKICAgICAgICAgICAgIC8vIERvdWJsZS1jaGVjayBhbmQg
c2VlIGlmIHRoZSB0aGVtZSBkaWQgYW55dGhpbmcuIElmIG5vdCwgZG9uJ3QgYm90aGVyIHVwZGF0
aW5nIHRoZSBmb250LgogICAgICAgICAgICAgaWYgKGZvbnREZXNjcmlwdGlvbi5pc0Fic29sdXRl
U2l6ZSgpKSB7CkBAIC0yNTAwLDcgKzI1MDAsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5
UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICAgICAg
aW50IHkgPSBpdGVtLT55LT5jb21wdXRlTGVuZ3RoPGludD4oc3RhdGUuc3R5bGUoKSwgc3RhdGUu
cm9vdEVsZW1lbnRTdHlsZSgpLCB6b29tRmFjdG9yKTsKICAgICAgICAgICAgIGludCBibHVyID0g
aXRlbS0+Ymx1ciA/IGl0ZW0tPmJsdXItPmNvbXB1dGVMZW5ndGg8aW50PihzdGF0ZS5zdHlsZSgp
LCBzdGF0ZS5yb290RWxlbWVudFN0eWxlKCksIHpvb21GYWN0b3IpIDogMDsKICAgICAgICAgICAg
IGludCBzcHJlYWQgPSBpdGVtLT5zcHJlYWQgPyBpdGVtLT5zcHJlYWQtPmNvbXB1dGVMZW5ndGg8
aW50PihzdGF0ZS5zdHlsZSgpLCBzdGF0ZS5yb290RWxlbWVudFN0eWxlKCksIHpvb21GYWN0b3Ip
IDogMDsKLSAgICAgICAgICAgIFNoYWRvd1N0eWxlIHNoYWRvd1N0eWxlID0gaXRlbS0+c3R5bGUg
JiYgaXRlbS0+c3R5bGUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVJbnNldCA/IEluc2V0IDogTm9y
bWFsOworICAgICAgICAgICAgU2hhZG93U3R5bGUgc2hhZG93U3R5bGUgPSBpdGVtLT5zdHlsZSAm
JiBpdGVtLT5zdHlsZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlSW5zZXQgPyBJbnNldCA6IE5v
cm1hbDsKICAgICAgICAgICAgIENvbG9yIGNvbG9yOwogICAgICAgICAgICAgaWYgKGl0ZW0tPmNv
bG9yKQogICAgICAgICAgICAgICAgIGNvbG9yID0gY29sb3JGcm9tUHJpbWl0aXZlVmFsdWUoaXRl
bS0+Y29sb3IuZ2V0KCkpOwpAQCAtMjU0Niw3ICsyNTQ2LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVy
OjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAg
ICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobG9jYWxlLCBMb2NhbGUpOwogICAgICAgICBp
ZiAoIXByaW1pdGl2ZVZhbHVlKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAocHJp
bWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVBdXRvKQorICAgICAgICBpZiAocHJp
bWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgICAgICBz
dGF0ZS5zdHlsZSgpLT5zZXRMb2NhbGUobnVsbEF0b20pOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRMb2NhbGUocHJpbWl0aXZlVmFsdWUtPmdldFN0cmluZ1Zh
bHVlKCkpOwpAQCAtMjU2Miw3ICsyNTYyLDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVBy
b3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgaWYgKCFw
cmltaXRpdmVWYWx1ZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAocHJpbWl0
aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKSB7CisgICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9uZSkgewogICAgICAgICAgICAg
c3RhdGUuc3R5bGUoKS0+c2V0RGFzaGJvYXJkUmVnaW9ucyhSZW5kZXJTdHlsZTo6bm9uZURhc2hi
b2FyZFJlZ2lvbnMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTI2MDEs
OSArMjYwMSw5IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0
eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAjZW5kaWYKICNpZiBFTkFCTEUoRFJBR0dBQkxFX1JF
R0lPTikKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QXBwUmVnaW9uOiB7Ci0gICAgICAgIGlm
ICghcHJpbWl0aXZlVmFsdWUgfHwgIXByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKQorICAgICAg
ICBpZiAoIXByaW1pdGl2ZVZhbHVlIHx8ICFwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKQog
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXREcmFnZ2FibGVS
ZWdpb25Nb2RlKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRHJhZyA/IERy
YWdnYWJsZVJlZ2lvbkRyYWcgOiBEcmFnZ2FibGVSZWdpb25Ob0RyYWcpOworICAgICAgICBzdGF0
ZS5zdHlsZSgpLT5zZXREcmFnZ2FibGVSZWdpb25Nb2RlKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1
ZUlEKCkgPT0gQ1NTVmFsdWVEcmFnID8gRHJhZ2dhYmxlUmVnaW9uRHJhZyA6IERyYWdnYWJsZVJl
Z2lvbk5vRHJhZyk7CiAgICAgICAgIHN0YXRlLmRvY3VtZW50KCktPnNldEhhc0Fubm90YXRlZFJl
Z2lvbnModHJ1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNjExLDE0ICsyNjExLDE0
IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBD
U1NWYWx1ZSogdmFsdWUpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VXaWR0
aDogewogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTCh0ZXh0U3Ryb2tlV2lkdGgs
IFRleHRTdHJva2VXaWR0aCkKICAgICAgICAgZmxvYXQgd2lkdGggPSAwOwotICAgICAgICBzd2l0
Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgIHN3aXRjaCAocHJpbWl0
aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkgewogICAgICAgICBjYXNlIENTU1ZhbHVlVGhpbjoKICAg
ICAgICAgY2FzZSBDU1NWYWx1ZU1lZGl1bToKICAgICAgICAgY2FzZSBDU1NWYWx1ZVRoaWNrOiB7
CiAgICAgICAgICAgICBkb3VibGUgcmVzdWx0ID0gMS4wIC8gNDg7Ci0gICAgICAgICAgICBpZiAo
cHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVNZWRpdW0pCisgICAgICAgICAg
ICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU1lZGl1bSkKICAg
ICAgICAgICAgICAgICByZXN1bHQgKj0gMzsKLSAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlVGhpY2spCisgICAgICAgICAgICBlbHNlIGlm
IChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlVGhpY2spCiAgICAgICAg
ICAgICAgICAgcmVzdWx0ICo9IDU7CiAgICAgICAgICAgICB3aWR0aCA9IENTU1ByaW1pdGl2ZVZh
bHVlOjpjcmVhdGUocmVzdWx0LCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0VNUyktPmNvbXB1dGVM
ZW5ndGg8ZmxvYXQ+KHN0YXRlLnN0eWxlKCksIHN0YXRlLnJvb3RFbGVtZW50U3R5bGUoKSwgem9v
bUZhY3Rvcik7CiAgICAgICAgICAgICBicmVhazsKQEAgLTI2NDMsNyArMjY0Myw3IEBAIHZvaWQg
U3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSog
dmFsdWUpCiAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCiAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9u
ZSkgeworICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1
ZU5vbmUpIHsKICAgICAgICAgICAgIHN0YXRlLnN0eWxlKCktPnNldFBlcnNwZWN0aXZlKDApOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0yNjc3LDcgKzI2NzcsNyBAQCB2b2lk
IFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUq
IHZhbHVlKQogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTCh1c2VUb3VjaE92ZXJm
bG93U2Nyb2xsaW5nLCBVc2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKTsKICAgICAgICAgaWYgKCFw
cmltaXRpdmVWYWx1ZSkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBzdGF0ZS5zdHlsZSgp
LT5zZXRVc2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgp
ID09IENTU1ZhbHVlVG91Y2gpOworICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRVc2VUb3VjaE92
ZXJmbG93U2Nyb2xsaW5nKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVU
b3VjaCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKQEAgLTI3NjQsNyArMjc2NCw3
IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBD
U1NWYWx1ZSogdmFsdWUpCiAKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TGluZUJveENvbnRh
aW46IHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobGluZUJveENvbnRhaW4s
IExpbmVCb3hDb250YWluKQotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZl
VmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKSB7CisgICAgICAgIGlmIChwcmltaXRp
dmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9uZSkg
ewogICAgICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0TGluZUJveENvbnRhaW4oTGluZUJveENv
bnRhaW5Ob25lKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMjc3OSw3ICsy
Nzc5LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQg
aWQsIENTU1ZhbHVlKiB2YWx1ZSkKIAogICAgIC8vIENTUyBGb250cyBNb2R1bGUgTGV2ZWwgMwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGb250RmVhdHVyZVNldHRpbmdzOiB7Ci0gICAgICAg
IGlmIChwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NW
YWx1ZU5vcm1hbCkgeworICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZlVmFs
dWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkgewogICAgICAgICAgICAgc2V0Rm9u
dERlc2NyaXB0aW9uKHN0YXRlLnN0eWxlKCktPmZvbnREZXNjcmlwdGlvbigpLm1ha2VOb3JtYWxG
ZWF0dXJlU2V0dGluZ3MoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTM0
MzEsMTAgKzM0MzEsMTAgQEAgaW50IFN0eWxlUmVzb2x2ZXI6OmxlZ2FjeUZvbnRTaXplKERvY3Vt
ZW50KiBkb2N1bWVudCwgaW50IHBpeGVsRm9udFNpemUsIGJvb2wgc2gKICAgICByZXR1cm4gZmlu
ZE5lYXJlc3RMZWdhY3lGb250U2l6ZTxmbG9hdD4ocGl4ZWxGb250U2l6ZSwgZm9udFNpemVGYWN0
b3JzLCBtZWRpdW1TaXplKTsKIH0KIAotc3RhdGljIENvbG9yIGNvbG9yRm9yQ1NTVmFsdWUoaW50
IGNzc1ZhbHVlSWQpCitzdGF0aWMgQ29sb3IgY29sb3JGb3JDU1NWYWx1ZShDU1NWYWx1ZUlEIGNz
c1ZhbHVlSWQpCiB7CiAgICAgc3RydWN0IENvbG9yVmFsdWUgewotICAgICAgICBpbnQgY3NzVmFs
dWVJZDsKKyAgICAgICAgQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkOwogICAgICAgICBSR0JBMzIgY29s
b3I7CiAgICAgfTsKIApAQCAtMzQ1OCw3ICszNDU4LDcgQEAgc3RhdGljIENvbG9yIGNvbG9yRm9y
Q1NTVmFsdWUoaW50IGNzc1ZhbHVlSWQpCiAgICAgICAgIHsgQ1NTVmFsdWVUcmFuc3BhcmVudCwg
MHgwMDAwMDAwMCB9LAogICAgICAgICB7IENTU1ZhbHVlV2hpdGUsIDB4RkZGRkZGRkYgfSwKICAg
ICAgICAgeyBDU1NWYWx1ZVllbGxvdywgMHhGRkZGRkYwMCB9LAotICAgICAgICB7IDAsIDAgfQor
ICAgICAgICB7IENTU1ZhbHVlSW52YWxpZCwgQ1NTVmFsdWVJbnZhbGlkIH0KICAgICB9OwogCiAg
ICAgZm9yIChjb25zdCBDb2xvclZhbHVlKiBjb2wgPSBjb2xvclZhbHVlczsgY29sLT5jc3NWYWx1
ZUlkOyArK2NvbCkgewpAQCAtMzQ3MCw3ICszNDcwLDcgQEAgc3RhdGljIENvbG9yIGNvbG9yRm9y
Q1NTVmFsdWUoaW50IGNzc1ZhbHVlSWQpCiAKIGJvb2wgU3R5bGVSZXNvbHZlcjo6Y29sb3JGcm9t
UHJpbWl0aXZlVmFsdWVJc0Rlcml2ZWRGcm9tRWxlbWVudChDU1NQcmltaXRpdmVWYWx1ZSogdmFs
dWUpCiB7Ci0gICAgaW50IGlkZW50ID0gdmFsdWUtPmdldElkZW50KCk7CisgICAgaW50IGlkZW50
ID0gdmFsdWUtPmdldFZhbHVlSUQoKTsKICAgICBzd2l0Y2ggKGlkZW50KSB7CiAgICAgY2FzZSBD
U1NWYWx1ZVdlYmtpdFRleHQ6CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdExpbms6CkBAIC0zNDg4
LDcgKzM0ODgsNyBAQCBDb2xvciBTdHlsZVJlc29sdmVyOjpjb2xvckZyb21QcmltaXRpdmVWYWx1
ZShDU1NQcmltaXRpdmVWYWx1ZSogdmFsdWUsIGJvb2wgZm9yVgogICAgICAgICByZXR1cm4gQ29s
b3IodmFsdWUtPmdldFJHQkEzMlZhbHVlKCkpOwogCiAgICAgY29uc3QgU3RhdGUmIHN0YXRlID0g
bV9zdGF0ZTsKLSAgICBpbnQgaWRlbnQgPSB2YWx1ZS0+Z2V0SWRlbnQoKTsKKyAgICBDU1NWYWx1
ZUlEIGlkZW50ID0gdmFsdWUtPmdldFZhbHVlSUQoKTsKICAgICBzd2l0Y2ggKGlkZW50KSB7CiAg
ICAgY2FzZSAwOgogICAgICAgICByZXR1cm4gQ29sb3IoKTsKQEAgLTM4MjgsOSArMzgyOCw5IEBA
IFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBTdHlsZVJlc29sdmVyOjpjcmVhdGVD
dXN0b21GaWx0ZXJPcGVyYXRpb25XaXRoCiAgICAgICAgICAgICBBU1NFUlQobWl4RnVuY3Rpb24t
Pmxlbmd0aCgpIDw9IDMpOwogICAgICAgICAgICAgd2hpbGUgKGl0ZXJhdG9yLmhhc01vcmUoKSkg
ewogICAgICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0
YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlcmF0b3IudmFsdWUoKSk7Ci0gICAgICAg
ICAgICAgICAgaWYgKENTU1BhcnNlcjo6aXNCbGVuZE1vZGUocHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkpKQorICAgICAgICAgICAgICAgIGlmIChDU1NQYXJzZXI6OmlzQmxlbmRNb2RlKHByaW1p
dGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpKQogICAgICAgICAgICAgICAgICAgICBtaXhTZXR0aW5n
cy5ibGVuZE1vZGUgPSAqcHJpbWl0aXZlVmFsdWU7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAo
Q1NTUGFyc2VyOjppc0NvbXBvc2l0ZU9wZXJhdG9yKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgp
KSkKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChDU1NQYXJzZXI6OmlzQ29tcG9zaXRlT3BlcmF0
b3IocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkpCiAgICAgICAgICAgICAgICAgICAgIG1p
eFNldHRpbmdzLmNvbXBvc2l0ZU9wZXJhdG9yID0gKnByaW1pdGl2ZVZhbHVlOwogICAgICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBA
IC0zODc5LDcgKzM4NzksNyBAQCBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlck9wZXJhdGlvbj4gU3R5
bGVSZXNvbHZlcjo6Y3JlYXRlQ3VzdG9tRmlsdGVyT3BlcmF0aW9uV2l0aAogICAgICAgICAKICAg
ICAgICAgaWYgKGl0ZXJhdG9yLmhhc01vcmUoKSAmJiBpdGVyYXRvci5pc1ByaW1pdGl2ZVZhbHVl
KCkpIHsKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0
YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlcmF0b3IudmFsdWUoKSk7Ci0gICAgICAg
ICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVEZXRhY2hlZCkg
eworICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVEZXRhY2hlZCkgewogICAgICAgICAgICAgICAgIG1lc2hUeXBlID0gTWVzaFR5cGVEZXRhY2hl
ZDsKICAgICAgICAgICAgICAgICBpdGVyYXRvci5hZHZhbmNlKCk7CiAgICAgICAgICAgICB9CkBA
IC0zOTIyLDcgKzM5MjIsNyBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OmNyZWF0ZUZpbHRlck9wZXJh
dGlvbnMoQ1NTVmFsdWUqIGluVmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZQogICAgIAogICAgIGlm
IChpblZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFs
dWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpblZh
bHVlKTsKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVl
Tm9uZSkKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVOb25lKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcAppbmRleCA0MDg1ZWYwNTcxNGFk
NWEwZGEzOTFkNGU2MzllMjVlNWZkM2UxYTk4Li43NGEwYjIwZDM1Nzk1MTVlYjQ3N2E4OTVjMGEy
MzQzYTI4YmY5YmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvVmlld3BvcnRTdHls
ZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvVmlld3BvcnRTdHlsZVJlc29s
dmVyLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIGZsb2F0IFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6
Z2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5SUQgaWQpIGNvbnN0CiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7Cisg
ICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CiAgICAgY2FzZSBDU1NWYWx1
ZURldmljZUhlaWdodDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NN
YXRyaXguY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAKaW5kZXgg
ZjFjYzZhNDEzMDdjMDZjN2E2Mjk1MDgwMzM5YzhmNzU0Y2JhN2Q4ZC4uYTMzYjg5NWQ4NzY5NmVj
MzNlMGVjYmE2OWU1NzZmODRiMDVjOGM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU01hdHJpeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01h
dHJpeC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBXZWJLaXRDU1NNYXRyaXg6OnNldE1hdHJp
eFZhbHVlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAg
UmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IHN0eWxlRGVjbGFyYXRpb24tPmdldFByb3BlcnR5Q1NT
VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pOwogCiAgICAgICAgIC8vIENoZWNrIGZv
ciBhICJub25lIiBvciBlbXB0eSB0cmFuc2Zvcm0uIEluIHRoZXNlIGNhc2VzIHdlIGNhbiB1c2Ug
dGhlIGRlZmF1bHQgaWRlbnRpdHkgbWF0cml4LgotICAgICAgICBpZiAoIXZhbHVlIHx8ICh2YWx1
ZS0+aXNQcmltaXRpdmVWYWx1ZSgpICYmIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KHZhbHVlLmdldCgpKSktPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKSkKKyAgICAgICAgaWYg
KCF2YWx1ZSB8fCAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiAoc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih2YWx1ZS5nZXQoKSkpLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVO
b25lKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBUcmFuc2Zvcm1PcGVyYXRpb25z
IG9wZXJhdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5
bGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQu
Y3BwCmluZGV4IDFhZGU1ZGIzZGU1ZjNiOGNmYmFlNjMzYjVlOGZhMmRhNTEwODk4NmMuLjk3MWE0
YWQwMDQxMjU2YjQxNjMwOTMyNGJlNGM0MDM1NjkxZDExNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCkBAIC01OCw3ICs1OCw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBpbnQgdG9JZGVudGlmaWVyKFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IHZhbHVlKQogewotICAgIHJldHVybiAodmFsdWUgJiYgdmFsdWUtPmlzUHJpbWl0
aXZlVmFsdWUoKSkgPyBzdGF0aWNfcG9pbnRlcl9jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1
ZSktPmdldElkZW50KCkgOiAwOworICAgIHJldHVybiAodmFsdWUgJiYgdmFsdWUtPmlzUHJpbWl0
aXZlVmFsdWUoKSkgPyBzdGF0aWNfcG9pbnRlcl9jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1
ZSktPmdldFZhbHVlSUQoKSA6IDA7CiB9CiAKIHN0YXRpYyBTdHJpbmcmIHN0eWxlU3BhbkNsYXNz
U3RyaW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAppbmRleCBkNWEz
Mjk3YTNlMzJmYzdlMDhhYWViZTAwMWJiZWU4YTgzMTQ3MTk2Li43MGU1OGY3MjdkYjcyM2IwMTgy
MzExZDBlMjJjMWFmYTZmOWU2YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5
bGUuY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgaW50IGlkZW50aWZpZXJGb3JTdHlsZVByb3BlcnR5
KFQqIHN0eWxlLCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCiAgICAgUmVmUHRyPENTU1ZhbHVl
PiB2YWx1ZSA9IGV4dHJhY3RQcm9wZXJ0eVZhbHVlKHN0eWxlLCBwcm9wZXJ0eUlEKTsKICAgICBp
ZiAoIXZhbHVlIHx8ICF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICByZXR1cm4g
MDsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZS5nZXQo
KSktPmdldElkZW50KCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Kj4odmFsdWUuZ2V0KCkpLT5nZXRWYWx1ZUlEKCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IFBhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IGdldFByb3BlcnRpZXNOb3RJbihT
dHlsZVByb3BlcnR5U2V0KiBzdHlsZVdpdGhSZWR1bmRhbnRQcm9wZXJ0aWVzLCBUKiBiYXNlU3R5
bGUpOwpAQCAtMTQ5LDcgKzE0OSw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBiYWNr
Z3JvdW5kQ29sb3JJbkVmZmVjdChOb2RlKik7CiBjbGFzcyBIVE1MRWxlbWVudEVxdWl2YWxlbnQg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
T3duUHRyPEhUTUxFbGVtZW50RXF1aXZhbGVudD4gY3JlYXRlKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJRCwgaW50IHByaW1pdGl2ZVZhbHVlLCBjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lKQor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEhUTUxFbGVtZW50RXF1aXZhbGVudD4gY3JlYXRlKENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCwgQ1NTVmFsdWVJRCBwcmltaXRpdmVWYWx1ZSwgY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcg
SFRNTEVsZW1lbnRFcXVpdmFsZW50KHByb3BlcnR5SUQsIHByaW1pdGl2ZVZhbHVlLCB0YWdOYW1l
KSk7CiAgICAgfQpAQCAtMTY0LDcgKzE2NCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBI
VE1MRWxlbWVudEVxdWl2YWxlbnQoQ1NTUHJvcGVydHlJRCk7CiAgICAgSFRNTEVsZW1lbnRFcXVp
dmFsZW50KENTU1Byb3BlcnR5SUQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpOwotICAg
IEhUTUxFbGVtZW50RXF1aXZhbGVudChDU1NQcm9wZXJ0eUlELCBpbnQgcHJpbWl0aXZlVmFsdWUs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpOworICAgIEhUTUxFbGVtZW50RXF1aXZhbGVu
dChDU1NQcm9wZXJ0eUlELCBDU1NWYWx1ZUlEIHByaW1pdGl2ZVZhbHVlLCBjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lKTsKICAgICBjb25zdCBDU1NQcm9wZXJ0eUlEIG1fcHJvcGVydHlJRDsK
ICAgICBjb25zdCBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fcHJpbWl0aXZlVmFsdWU7CiAg
ICAgY29uc3QgUXVhbGlmaWVkTmFtZSogbV90YWdOYW1lOyAvLyBXZSBjYW4gc3RvcmUgYSBwb2lu
dGVyIGJlY2F1c2UgSFRNTCB0YWcgbmFtZXMgYXJlIGNvbnN0IGdsb2JhbC4KQEAgLTE4Miw3ICsx
ODIsNyBAQCBIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OkhUTUxFbGVtZW50RXF1aXZhbGVudChDU1NQ
cm9wZXJ0eUlEIGlkLCBjb25zdCBRdWFsaWZpZWROYQogewogfQogCi1IVE1MRWxlbWVudEVxdWl2
YWxlbnQ6OkhUTUxFbGVtZW50RXF1aXZhbGVudChDU1NQcm9wZXJ0eUlEIGlkLCBpbnQgcHJpbWl0
aXZlVmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCitIVE1MRWxlbWVudEVxdWl2
YWxlbnQ6OkhUTUxFbGVtZW50RXF1aXZhbGVudChDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZUlE
IHByaW1pdGl2ZVZhbHVlLCBjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lKQogICAgIDogbV9w
cm9wZXJ0eUlEKGlkKQogICAgICwgbV9wcmltaXRpdmVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlSWRlbnRpZmllcihwcmltaXRpdmVWYWx1ZSkpCiAgICAgLCBtX3RhZ05hbWUoJnRhZ05h
bWUpCkBAIC0xOTMsNyArMTkzLDcgQEAgSFRNTEVsZW1lbnRFcXVpdmFsZW50OjpIVE1MRWxlbWVu
dEVxdWl2YWxlbnQoQ1NTUHJvcGVydHlJRCBpZCwgaW50IHByaW1pdGl2ZVZhbHUKIGJvb2wgSFRN
TEVsZW1lbnRFcXVpdmFsZW50Ojp2YWx1ZUlzUHJlc2VudEluU3R5bGUoRWxlbWVudCogZWxlbWVu
dCwgU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUpIGNvbnN0CiB7CiAgICAgUmVmUHRyPENTU1ZhbHVl
PiB2YWx1ZSA9IHN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKG1fcHJvcGVydHlJRCk7Ci0gICAg
cmV0dXJuIG1hdGNoZXMoZWxlbWVudCkgJiYgdmFsdWUgJiYgdmFsdWUtPmlzUHJpbWl0aXZlVmFs
dWUoKSAmJiBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlLmdldCgpKS0+Z2V0
SWRlbnQoKSA9PSBtX3ByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpOworICAgIHJldHVybiBtYXRj
aGVzKGVsZW1lbnQpICYmIHZhbHVlICYmIHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYgc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZS5nZXQoKSktPmdldFZhbHVlSUQoKSA9
PSBtX3ByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCk7CiB9CiAKIHZvaWQgSFRNTEVsZW1lbnRF
cXVpdmFsZW50OjphZGRUb1N0eWxlKEVsZW1lbnQqLCBFZGl0aW5nU3R5bGUqIHN0eWxlKSBjb25z
dApAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgSFRNTEVsZW1lbnRFcXVpdmFsZW50OjphZGRUb1N0
eWxlKEVsZW1lbnQqLCBFZGl0aW5nU3R5bGUqIHN0eWxlKSBjb25zdAogCiBjbGFzcyBIVE1MVGV4
dERlY29yYXRpb25FcXVpdmFsZW50IDogcHVibGljIEhUTUxFbGVtZW50RXF1aXZhbGVudCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SFRNTEVsZW1lbnRFcXVpdmFsZW50PiBjcmVh
dGUoaW50IHByaW1pdGl2ZVZhbHVlLCBjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lKQorICAg
IHN0YXRpYyBQYXNzT3duUHRyPEhUTUxFbGVtZW50RXF1aXZhbGVudD4gY3JlYXRlKENTU1ZhbHVl
SUQgcHJpbWl0aXZlVmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEhUTUxUZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQo
cHJpbWl0aXZlVmFsdWUsIHRhZ05hbWUpKTsKICAgICB9CkBAIC0yMTEsMTAgKzIxMSwxMCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHZhbHVlSXNQcmVzZW50SW5TdHlsZShFbGVtZW50Kiwg
U3R5bGVQcm9wZXJ0eVNldCopIGNvbnN0OwogCiBwcml2YXRlOgotICAgIEhUTUxUZXh0RGVjb3Jh
dGlvbkVxdWl2YWxlbnQoaW50IHByaW1pdGl2ZVZhbHVlLCBjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lKTsKKyAgICBIVE1MVGV4dERlY29yYXRpb25FcXVpdmFsZW50KENTU1ZhbHVlSUQgcHJp
bWl0aXZlVmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpOwogfTsKIAotSFRNTFRl
eHREZWNvcmF0aW9uRXF1aXZhbGVudDo6SFRNTFRleHREZWNvcmF0aW9uRXF1aXZhbGVudChpbnQg
cHJpbWl0aXZlVmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCitIVE1MVGV4dERl
Y29yYXRpb25FcXVpdmFsZW50OjpIVE1MVGV4dERlY29yYXRpb25FcXVpdmFsZW50KENTU1ZhbHVl
SUQgcHJpbWl0aXZlVmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCiAgICAgOiBI
VE1MRWxlbWVudEVxdWl2YWxlbnQoQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvbiwgcHJpbWl0aXZl
VmFsdWUsIHRhZ05hbWUpCiAgICAgLy8gbV9wcm9wZXJ0eUlEIGlzIHVzZWQgaW4gSFRNTEVsZW1l
bnRFcXVpdmFsZW50OjphZGRUb1N0eWxlCiB7CkBAIC01MTIsMTMgKzUxMiwxMyBAQCBib29sIEVk
aXRpbmdTdHlsZTo6dGV4dERpcmVjdGlvbihXcml0aW5nRGlyZWN0aW9uJiB3cml0aW5nRGlyZWN0
aW9uKSBjb25zdAogICAgIGlmICghdW5pY29kZUJpZGkgfHwgIXVuaWNvZGVCaWRpLT5pc1ByaW1p
dGl2ZVZhbHVlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGludCB1bmljb2RlQmlk
aVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih1bmljb2RlQmlkaS5nZXQo
KSktPmdldElkZW50KCk7CisgICAgQ1NTVmFsdWVJRCB1bmljb2RlQmlkaVZhbHVlID0gc3RhdGlj
X2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih1bmljb2RlQmlkaS5nZXQoKSktPmdldFZhbHVlSUQo
KTsKICAgICBpZiAodW5pY29kZUJpZGlWYWx1ZSA9PSBDU1NWYWx1ZUVtYmVkKSB7CiAgICAgICAg
IFJlZlB0cjxDU1NWYWx1ZT4gZGlyZWN0aW9uID0gbV9tdXRhYmxlU3R5bGUtPmdldFByb3BlcnR5
Q1NTVmFsdWUoQ1NTUHJvcGVydHlEaXJlY3Rpb24pOwogICAgICAgICBpZiAoIWRpcmVjdGlvbiB8
fCAhZGlyZWN0aW9uLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAgICAgd3JpdGluZ0RpcmVjdGlvbiA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4oZGlyZWN0aW9uLmdldCgpKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUx0ciA/IExl
ZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbiA6IFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbjsK
KyAgICAgICAgd3JpdGluZ0RpcmVjdGlvbiA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Kj4oZGlyZWN0aW9uLmdldCgpKS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTHRyID8gTGVmdFRv
UmlnaHRXcml0aW5nRGlyZWN0aW9uIDogUmlnaHRUb0xlZnRXcml0aW5nRGlyZWN0aW9uOwogCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTkzOSw5ICs5MzksOSBAQCB2b2lkIEVkaXRp
bmdTdHlsZTo6cHJlcGFyZVRvQXBwbHlBdChjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24sIFNob3Vs
ZFByZXNlcnZlV3JpdAogICAgICAgICBtX211dGFibGVTdHlsZS0+cmVtb3ZlUHJvcGVydHkoQ1NT
UHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOwogCiAgICAgaWYgKHVuaWNvZGVCaWRpICYmIHVuaWNv
ZGVCaWRpLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKLSAgICAgICAgbV9tdXRhYmxlU3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5VW5pY29kZUJpZGksIHN0YXRpY19jYXN0PENTU1ZhbHVlSUQ+
KHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odW5pY29kZUJpZGkuZ2V0KCkpLT5nZXRJ
ZGVudCgpKSk7CisgICAgICAgIG1fbXV0YWJsZVN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0
eVVuaWNvZGVCaWRpLCBzdGF0aWNfY2FzdDxDU1NWYWx1ZUlEPihzdGF0aWNfY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZSo+KHVuaWNvZGVCaWRpLmdldCgpKS0+Z2V0VmFsdWVJRCgpKSk7CiAgICAgICAg
IGlmIChkaXJlY3Rpb24gJiYgZGlyZWN0aW9uLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCi0gICAgICAg
ICAgICBtX211dGFibGVTdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24sIHN0
YXRpY19jYXN0PENTU1ZhbHVlSUQ+KHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oZGly
ZWN0aW9uLmdldCgpKS0+Z2V0SWRlbnQoKSkpOworICAgICAgICAgICAgbV9tdXRhYmxlU3R5bGUt
PnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCBzdGF0aWNfY2FzdDxDU1NWYWx1ZUlE
PihzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGRpcmVjdGlvbi5nZXQoKSktPmdldFZh
bHVlSUQoKSkpOwogICAgIH0KIH0KIApAQCAtMTI2MSw3ICsxMjYxLDcgQEAgV3JpdGluZ0RpcmVj
dGlvbiBFZGl0aW5nU3R5bGU6OnRleHREaXJlY3Rpb25Gb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYKICAgICAgICAgICAgIGlmICghdW5pY29kZUJpZGkgfHwgIXVuaWNvZGVCaWRp
LT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgICAgIGludCB1bmljb2RlQmlkaVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWUqPih1bmljb2RlQmlkaS5nZXQoKSktPmdldElkZW50KCk7CisgICAgICAgICAgICBDU1NWYWx1
ZUlEIHVuaWNvZGVCaWRpVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHVu
aWNvZGVCaWRpLmdldCgpKS0+Z2V0VmFsdWVJRCgpOwogICAgICAgICAgICAgaWYgKHVuaWNvZGVC
aWRpVmFsdWUgPT0gQ1NTVmFsdWVFbWJlZCB8fCB1bmljb2RlQmlkaVZhbHVlID09IENTU1ZhbHVl
QmlkaU92ZXJyaWRlKQogICAgICAgICAgICAgICAgIHJldHVybiBOYXR1cmFsV3JpdGluZ0RpcmVj
dGlvbjsKICAgICAgICAgfQpAQCAtMTI5MCw3ICsxMjkwLDcgQEAgV3JpdGluZ0RpcmVjdGlvbiBF
ZGl0aW5nU3R5bGU6OnRleHREaXJlY3Rpb25Gb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYKICAgICAgICAgaWYgKCF1bmljb2RlQmlkaSB8fCAhdW5pY29kZUJpZGktPmlzUHJpbWl0
aXZlVmFsdWUoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGludCB1bmljb2Rl
QmlkaVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih1bmljb2RlQmlkaS5n
ZXQoKSktPmdldElkZW50KCk7CisgICAgICAgIENTU1ZhbHVlSUQgdW5pY29kZUJpZGlWYWx1ZSA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odW5pY29kZUJpZGkuZ2V0KCkpLT5nZXRW
YWx1ZUlEKCk7CiAgICAgICAgIGlmICh1bmljb2RlQmlkaVZhbHVlID09IENTU1ZhbHVlTm9ybWFs
KQogICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTEzMDIsNyArMTMwMiw3IEBAIFdyaXRpbmdE
aXJlY3Rpb24gRWRpdGluZ1N0eWxlOjp0ZXh0RGlyZWN0aW9uRm9yU2VsZWN0aW9uKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mCiAgICAgICAgIGlmICghZGlyZWN0aW9uIHx8ICFkaXJlY3Rpb24tPmlz
UHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGludCBk
aXJlY3Rpb25WYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oZGlyZWN0aW9u
LmdldCgpKS0+Z2V0SWRlbnQoKTsKKyAgICAgICAgQ1NTVmFsdWVJRCBkaXJlY3Rpb25WYWx1ZSA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oZGlyZWN0aW9uLmdldCgpKS0+Z2V0VmFs
dWVJRCgpOwogICAgICAgICBpZiAoZGlyZWN0aW9uVmFsdWUgIT0gQ1NTVmFsdWVMdHIgJiYgZGly
ZWN0aW9uVmFsdWUgIT0gQ1NTVmFsdWVSdGwpCiAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAt
MTQ3NCw3ICsxNDc0LDcgQEAgc3RhdGljIGJvb2wgZm9udFdlaWdodElzQm9sZChDU1NWYWx1ZSog
Zm9udFdlaWdodCkKIAogICAgIC8vIEJlY2F1c2UgYiB0YWcgY2FuIG9ubHkgYm9sZCB0ZXh0LCB0
aGVyZSBhcmUgb25seSB0d28gc3RhdGVzIGluIHBsYWluIGh0bWw6IGJvbGQgYW5kIG5vdCBib2xk
LgogICAgIC8vIENvbGxhcHNlIGFsbCBvdGhlciB2YWx1ZXMgdG8gZWl0aGVyIG9uZSBvZiB0aGVz
ZSB0d28gc3RhdGVzIGZvciBlZGl0aW5nIHB1cnBvc2VzLgotICAgIHN3aXRjaCAoc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihmb250V2VpZ2h0KS0+Z2V0SWRlbnQoKSkgeworICAgIHN3
aXRjaCAoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihmb250V2VpZ2h0KS0+Z2V0VmFs
dWVJRCgpKSB7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWUxMDA6CiAgICAgICAgIGNhc2UgQ1NTVmFs
dWUyMDA6CiAgICAgICAgIGNhc2UgQ1NTVmFsdWUzMDA6CkBAIC0xNDg4LDYgKzE0ODgsOCBAQCBz
dGF0aWMgYm9vbCBmb250V2VpZ2h0SXNCb2xkKENTU1ZhbHVlKiBmb250V2VpZ2h0KQogICAgICAg
ICBjYXNlIENTU1ZhbHVlODAwOgogICAgICAgICBjYXNlIENTU1ZhbHVlOTAwOgogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKICAg
ICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gRm9yIENTU1ZhbHVlQm9sZGVyIGFu
ZCBDU1NWYWx1ZUxpZ2h0ZXIKQEAgLTE1NTIsOCArMTU1NCw4IEBAIGludCBsZWdhY3lGb250U2l6
ZUZyb21DU1NWYWx1ZShEb2N1bWVudCogZG9jdW1lbnQsIENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1
ZSwgYm9vCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmIChDU1NWYWx1ZVhTbWFs
bCA8PSB2YWx1ZS0+Z2V0SWRlbnQoKSAmJiB2YWx1ZS0+Z2V0SWRlbnQoKSA8PSBDU1NWYWx1ZVdl
YmtpdFh4eExhcmdlKQotICAgICAgICByZXR1cm4gdmFsdWUtPmdldElkZW50KCkgLSBDU1NWYWx1
ZVhTbWFsbCArIDE7CisgICAgaWYgKENTU1ZhbHVlWFNtYWxsIDw9IHZhbHVlLT5nZXRWYWx1ZUlE
KCkgJiYgdmFsdWUtPmdldFZhbHVlSUQoKSA8PSBDU1NWYWx1ZVdlYmtpdFh4eExhcmdlKQorICAg
ICAgICByZXR1cm4gdmFsdWUtPmdldFZhbHVlSUQoKSAtIENTU1ZhbHVlWFNtYWxsICsgMTsKIAog
ICAgIHJldHVybiAwOwogfQpAQCAtMTU2Nyw3ICsxNTY5LDcgQEAgYm9vbCBpc1RyYW5zcGFyZW50
Q29sb3JWYWx1ZShDU1NWYWx1ZSogY3NzVmFsdWUpCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHZh
bHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihjc3NWYWx1ZSk7ICAgIAogICAg
IGlmICh2YWx1ZS0+aXNSR0JDb2xvcigpKQogICAgICAgICByZXR1cm4gIWFscGhhQ2hhbm5lbCh2
YWx1ZS0+Z2V0UkdCQTMyVmFsdWUoKSk7ICAgIAotICAgIHJldHVybiB2YWx1ZS0+Z2V0SWRlbnQo
KSA9PSBDU1NWYWx1ZVRyYW5zcGFyZW50OworICAgIHJldHVybiB2YWx1ZS0+Z2V0VmFsdWVJRCgp
ID09IENTU1ZhbHVlVHJhbnNwYXJlbnQ7CiB9CiAKIGJvb2wgaGFzVHJhbnNwYXJlbnRCYWNrZ3Jv
dW5kQ29sb3IoU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nU3R5bGUuaAppbmRleCA5NDhjY2RmMmY2YmM2NWYwYjNlZDk3ODA5M2I0YTBkMWQ5OWE0OGU0
Li40NWM0ZWQwMDMzZmZkZmQyYzI3NzVjMWQ1ZmEyZGYxY2Y5MWEyYjI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNkZWZpbmUgRWRpdGlu
Z1N0eWxlX2gKIAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlICJDU1NW
YWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiV3JpdGluZ0RpcmVjdGlvbi5oIgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFya3VwLmNwcAppbmRleCA1OWQzNGZlYzk2N2ZhZWE0ZmI4MGYxMzI1NDZiNjQ0MmYxYjky
NzA5Li4wY2MwMGRmYTcyZTIyZjhkNThhZTRmNWE4MmFkMGExYWUyODUzNmYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYXJrdXAuY3BwCkBAIC00NzIsNyArNDcyLDcgQEAgc3RhdGljIGJvb2wgcHJvcGVy
dHlNaXNzaW5nT3JFcXVhbFRvTm9uZShTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgQ1NTUHJvcGVy
dHlJRAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoIXZhbHVlLT5pc1ByaW1pdGl2ZVZh
bHVlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih2YWx1ZS5nZXQoKSktPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25l
OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlLmdldCgp
KS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9uZTsKIH0KIAogc3RhdGljIGJvb2wgbmVlZElu
dGVyY2hhbmdlTmV3bGluZUFmdGVyKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgdikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUmVuZGVyVGhlbWVCbGFja0Jl
cnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUmVuZGVyVGhlbWVC
bGFja0JlcnJ5LmNwcAppbmRleCBkNzJjZWZlN2MzYzhkMzEyOGVhNTZiZGQ0ZTE4ZGVhNjYwMmY3
ZWNjLi4xZTFhNTk4YjEwMGJmOGQwYmYzNmMwNDU5ZDJjODBiNTMwMTVkNGQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1JlbmRlclRoZW1lQmxhY2tCZXJy
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9SZW5kZXJUaGVt
ZUJsYWNrQmVycnkuY3BwCkBAIC0yNTksMTIgKzI1OSwxMiBAQCBkb3VibGUgUmVuZGVyVGhlbWVC
bGFja0JlcnJ5OjpjYXJldEJsaW5rSW50ZXJ2YWwoKSBjb25zdAogICAgIHJldHVybiAwOyAvLyBU
dXJuIG9mZiBjYXJldCBibGlua2luZy4KIH0KIAotdm9pZCBSZW5kZXJUaGVtZUJsYWNrQmVycnk6
OnN5c3RlbUZvbnQoaW50IHByb3BJZCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24p
IGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lQmxhY2tCZXJyeTo6c3lzdGVtRm9udChDU1NWYWx1ZUlE
IHZhbHVlSUQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewogICAg
IGZsb2F0IGZvbnRTaXplID0gZGVmYXVsdEZvbnRTaXplOwogCiAgICAgLy8gQm90aCBDU1NWYWx1
ZVdlYmtpdENvbnRyb2wgYW5kIENTU1ZhbHVlV2Via2l0U21hbGxDb250cm9sIHNob3VsZCB1c2Ug
ZGVmYXVsdCBmb250IHNpemUgd2hpY2ggbG9va3MgYmV0dGVyIG9uIHRoZSBjb250cm9scy4KLSAg
ICBpZiAocHJvcElkID09IENTU1ZhbHVlV2Via2l0TWluaUNvbnRyb2wpIHsKKyAgICBpZiAodmFs
dWVJRCA9PSBDU1NWYWx1ZVdlYmtpdE1pbmlDb250cm9sKSB7CiAgICAgICAgIC8vIFdoeSAyIHBv
aW50cyBzbWFsbGVyPyBCZWNhdXNlIHRoYXQncyB3aGF0IEdlY2tvIGRvZXMuIE5vdGUgdGhhdCB3
ZQogICAgICAgICAvLyBhcmUgYXNzdW1pbmcgYSA5NmRwaSBzY3JlZW4sIHdoaWNoIGlzIHRoZSBk
ZWZhdWx0IHZhbHVlIHdlIHVzZSBvbiBXaW5kb3dzLgogICAgICAgICBzdGF0aWMgY29uc3QgZmxv
YXQgcG9pbnRzUGVySW5jaCA9IDcyLjBmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYmxhY2tiZXJyeS9SZW5kZXJUaGVtZUJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2JsYWNrYmVycnkvUmVuZGVyVGhlbWVCbGFja0JlcnJ5LmgKaW5kZXggNmY5YWRi
NzdlMGFiZWE4NWIyMTU5Nzk2ZGI2ZjgyMTQwOGMwZjFkMC4uZmFlYTg5NTYwM2NlOGQ2YzM4NWM3
OGYzMjJkZmExYzg4YmI1NTRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YmxhY2tiZXJyeS9SZW5kZXJUaGVtZUJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ibGFja2JlcnJ5L1JlbmRlclRoZW1lQmxhY2tCZXJyeS5oCkBAIC00MSw3ICs0MSw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgZG91YmxlIGNhcmV0QmxpbmtJbnRlcnZhbCgpIGNv
bnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoaW50IGNzc1ZhbHVlSWQsIEZvbnRE
ZXNjcmlwdGlvbiYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzeXN0ZW1Gb250KENTU1ZhbHVl
SUQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYWludENoZWNr
Ym94KFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q2hlY2tib3hTaXplKFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAg
dmlydHVhbCBib29sIHBhaW50UmFkaW8oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwg
Y29uc3QgSW50UmVjdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1JlbmRlclRoZW1lRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJU
aGVtZUVmbC5jcHAKaW5kZXggZjNiMzE2MmYzYWJkOTlkMDhiNTE5YzI4YWJhMzk1NWFlMTBkMTYz
Mi4uYjIyYmY3Y2YxOWRmMDk2MzVkMGJmNWIxNWZhYWU0OTQ2M2Y2ZTEzYSAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCkBAIC0xMDIyLDcgKzEw
MjIsNyBAQCB2b2lkIFJlbmRlclRoZW1lRWZsOjpzZXREZWZhdWx0Rm9udFNpemUoaW50IHNpemUp
CiAgICAgZGVmYXVsdEZvbnRTaXplID0gc2l6ZTsKIH0KIAotdm9pZCBSZW5kZXJUaGVtZUVmbDo6
c3lzdGVtRm9udChpbnQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAor
dm9pZCBSZW5kZXJUaGVtZUVmbDo6c3lzdGVtRm9udChDU1NWYWx1ZUlELCBGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKIHsKICAgICAvLyBJdCB3YXMgY2FsbGVkIGJ5IFJl
bmRlckVtYmVkZGVkT2JqZWN0OjpwYWludFJlcGxhY2VkIHRvIHJlbmRlciBhbHRlcm5hdGl2ZSBz
dHJpbmcuCiAgICAgLy8gVG8gYXZvaWQgY2Fpcm9fZXJyb3Igd2hpbGUgcmVuZGVyaW5nLCBmb250
RGVzY3JpcHRpb24gc2hvdWxkIGJlIHBhc3NlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL1JlbmRlclRoZW1lRWZsLmgKaW5kZXggZjg4MjY3YzJhNTEzOWJhY2JkZGVmNzBhODA0NTNi
MjEyOGZlNTA4OS4uZmVhMDI2OTM0NDEwMjE1MWE3Njc1ZGEzNTg4OGJjY2FkNzJiMzdjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKQEAgLTExOCw3
ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGp1c3RTaXplQ29uc3RyYWludHMoUmVuZGVy
U3R5bGUqLCBGb3JtVHlwZSkgY29uc3Q7CiAKICAgICAvLyBTeXN0ZW0gZm9udHMuCi0gICAgdmly
dHVhbCB2b2lkIHN5c3RlbUZvbnQoaW50IHByb3BJZCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7
CisgICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoQ1NTVmFsdWVJRCwgRm9udERlc2NyaXB0aW9u
JikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0Q2hlY2tib3hTdHlsZShTdHlsZVJl
c29sdmVyKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBib29s
IHBhaW50Q2hlY2tib3goUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50
UmVjdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5j
cHAKaW5kZXggNjI5YTg0ZjFiZGI1OGJhNzFlZTcyNjEwMWQ4YzcxMzlkOTJkMzQzMS4uYWEyNzUx
ODVhN2FmY2Q1OGIxYTE3ZWE1ODUzZTdkMDE5MmJjYjQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCkBAIC00MzcsNyArNDM3LDcgQEAgZG91
YmxlIFJlbmRlclRoZW1lR3RrOjpnZXRTY3JlZW5EUEkoKQogICAgIHJldHVybiBkcGk7CiB9CiAK
LXZvaWQgUmVuZGVyVGhlbWVHdGs6OnN5c3RlbUZvbnQoaW50LCBGb250RGVzY3JpcHRpb24mIGZv
bnREZXNjcmlwdGlvbikgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVHdGs6OnN5c3RlbUZvbnQoQ1NT
VmFsdWVJRCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7CiAgICAg
R3RrU2V0dGluZ3MqIHNldHRpbmdzID0gZ3RrX3NldHRpbmdzX2dldF9kZWZhdWx0KCk7CiAgICAg
aWYgKCFzZXR0aW5ncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9S
ZW5kZXJUaGVtZUd0ay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1l
R3RrLmgKaW5kZXggNGE1ODA4MDE1NzlmMWYyNGYwYzc2ZTg0ZWE2MWRkMzdkMzdjNzk2Mi4uYThj
OTczNWM3MDczNTM2YjNhMjI5MmU4NjA0YTQ3NmU3MmI1NzNkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmgKQEAgLTc5LDggKzc5LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpOwogCiAgICAgLy8g
U3lzdGVtIGZvbnRzIGFuZCBjb2xvcnMuCi0gICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoaW50
IHByb3BJZCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBzeXN0
ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHN5c3RlbUZv
bnQoQ1NTVmFsdWVJRCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xv
ciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBwb3Bz
TWVudUJ5U3BhY2VPclJldHVybigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcAppbmRl
eCA4MjNhMDQ4NWU3Y2QxNjhlOWFhN2UyNTFmNThjNDExZDYzNzg1YjA3Li45OTNmZTQ0MmYzMjc2
MzVmMjQzYWU5ZDU3ZjhlNjg4OTNjMDVkZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcApAQCAtNzE5LDcgKzcxOSw3IEBAIENvbG9yIFJl
bmRlclRoZW1lR3RrOjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBj
b25zdAogICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9zdHlsZSh3aWRnZXQpLT50ZXh0W0dUS19T
VEFURV9BQ1RJVkVdOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUd0azo6c3lzdGVtQ29sb3IoaW50
IGNzc1ZhbHVlSWQpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUd0azo6c3lzdGVtQ29sb3IoQ1NT
VmFsdWVJRCBjc3NWYWx1ZUlkKSBjb25zdAogewogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewog
ICAgIGNhc2UgQ1NTVmFsdWVCdXR0b250ZXh0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUmVuZGVyVGhlbWVHdGszLmNwcAppbmRleCAyMjRhYjNmYTI1ZDk4OTEyOTBkNDliNjA2
YTdlODhkMWVlZjNmNWM2Li42ZDk1MTU4OTM5ZTA3ZjYwMDU0MDljZjJmZDM5MjgxOWMxZmI5MzRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNw
cApAQCAtOTgxLDcgKzk4MSw3IEBAIENvbG9yIFJlbmRlclRoZW1lR3RrOjppbmFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAogICAgIHJldHVybiBnZGtSR0JBQ29s
b3I7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lR3RrOjpzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJ
ZCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lR3RrOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNz
c1ZhbHVlSWQpIGNvbnN0CiB7CiAgICAgR2RrUkdCQSBnZGtSR0JBQ29sb3I7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAKaW5kZXggNTViNzJiMDA2NmI1
MGEwNjFiZWFlNTc2YjM0ZDYwMDdmNDliMjBlYy4uOWIwZTM0Mzc0YmVhM2I3MTY3YTZiZTI3ZWQ4
ODJmOWNlN2FjZGNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVu
ZGVyVGhlbWVRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhl
bWVRdC5jcHAKQEAgLTI1NiwxMiArMjU2LDEyIEBAIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBsYXRm
b3JtRm9jdXNSaW5nQ29sb3IoKSBjb25zdAogICAgIHJldHVybiBjb2xvclBhbGV0dGUoKS5icnVz
aChRUGFsZXR0ZTo6QWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0KS5jb2xvcigpOwogfQogCi12
b2lkIFJlbmRlclRoZW1lUXQ6OnN5c3RlbUZvbnQoaW50LCBGb250RGVzY3JpcHRpb24mKSBjb25z
dAordm9pZCBSZW5kZXJUaGVtZVF0OjpzeXN0ZW1Gb250KENTU1ZhbHVlSUQsIEZvbnREZXNjcmlw
dGlvbiYpIGNvbnN0CiB7CiAgICAgLy8gbm8tb3AKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVRdDo6
c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVF0Ojpz
eXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQpIGNvbnN0CiB7CiAgICAgUVBhbGV0dGUg
cGFsID0gY29sb3JQYWxldHRlKCk7CiAgICAgc3dpdGNoIChjc3NWYWx1ZUlkKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgKaW5kZXggZjE2YjUwZjMzZDIyMmQy
MjY5MWFmNjFjZWRmNjE2NWFiYWQyNTM1Yi4uMWI0YjViMzI2YmQzZjM4YmFiZTI4NzRiNmFhMzU0
Y2QwMDJkN2EyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVy
VGhlbWVRdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQu
aApAQCAtNzYsOCArNzYsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3Jt
Rm9jdXNSaW5nQ29sb3IoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBzeXN0ZW1Gb250KGlu
dCBwcm9wSWQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3Igc3lz
dGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzeXN0ZW1G
b250KENTU1ZhbHVlSUQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0OworICAgIHZpcnR1YWwgQ29s
b3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGludCBtaW5p
bXVtTWVudUxpc3RTaXplKFJlbmRlclN0eWxlKikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IDAyY2ExYTVjNWUxMGMyYmVmNDVjZmYxYjg0ZDYy
ZjBmOTMwNTJlY2MuLmE2NjlmYmZmMWNjYjQ2MzEyYjUzNGUxZGU2NzUwMjJiOTRhYWUwNWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMTEyNyw3ICsxMTI3
LDcgQEAgdm9pZCBSZW5kZXJUaGVtZTo6cGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKQogICAgIFBh
Z2U6OnVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNBZnRlckdsb2JhbENoYW5nZUluRW52aXJvbm1lbnQo
KTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBj
b25zdAorQ29sb3IgUmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJ
ZCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKGNzc1ZhbHVlSWQpIHsKICAgICBjYXNlIENTU1ZhbHVl
QWN0aXZlYm9yZGVyOgpAQCAtMTE4OCw2ICsxMTg4LDggQEAgQ29sb3IgUmVuZGVyVGhlbWU6OnN5
c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBjb25zdAogICAgICAgICByZXR1cm4gMHhGRkNDQ0ND
QzsKICAgICBjYXNlIENTU1ZhbHVlV2luZG93dGV4dDoKICAgICAgICAgcmV0dXJuIDB4RkYwMDAw
MDA7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBDb2xv
cigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCBiNjVmMTIx
ZTQ3MzJjZmMxZTJkZTExYjNhNzBjYjU0NWY3NTJkMmNmLi5kM2I5MmIyYjE1M2RmZjViZjg3MTAz
OTY5ZmU0NjMxZTA5NzM5YjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
aApAQCAtMTY2LDggKzE2Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGRvdWJsZSBjYXJldEJs
aW5rSW50ZXJ2YWwoKSBjb25zdCB7IHJldHVybiAwLjU7IH0KIAogICAgIC8vIFN5c3RlbSBmb250
cyBhbmQgY29sb3JzIGZvciBDU1MuCi0gICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoaW50IGNz
c1ZhbHVlSWQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIENvbG9y
IHN5c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc3lz
dGVtRm9udChDU1NWYWx1ZUlELCBGb250RGVzY3JpcHRpb24mKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEKSBjb25zdDsKIAogICAgIHZpcnR1YWwg
aW50IG1pbmltdW1NZW51TGlzdFNpemUoUmVuZGVyU3R5bGUqKSBjb25zdCB7IHJldHVybiAwOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKaW5kZXggZWE0OGZk
NDEyOTYzZWY4NGIzNzViZGZmNzA4YWNiMzdjZDFjYTU4ZS4uYTNjZWZlZTdlYTY5YzJhNjdhYTRj
ZDU3ZTc2N2M3ZWEwZGI1YzA0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwbGF0
Zm9ybUNvbG9yc0RpZENoYW5nZSgpOwogCiAgICAgLy8gU3lzdGVtIGZvbnRzLgotICAgIHZpcnR1
YWwgdm9pZCBzeXN0ZW1Gb250KGludCBjc3NWYWx1ZUlkLCBGb250RGVzY3JpcHRpb24mKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChDU1NWYWx1ZUlELCBGb250RGVzY3JpcHRp
b24mKSBjb25zdDsKIAogICAgIHZpcnR1YWwgaW50IG1pbmltdW1NZW51TGlzdFNpemUoUmVuZGVy
U3R5bGUqKSBjb25zdDsKIApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBk
b3VibGUgYW5pbWF0aW9uRHVyYXRpb25Gb3JQcm9ncmVzc0JhcihSZW5kZXJQcm9ncmVzcyopIGNv
bnN0OwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKGludCBjc3NWYWx1
ZUlkKSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQpIGNv
bnN0OwogICAgIC8vIENvbnRyb2xzIGNvbG9yIHZhbHVlcyByZXR1cm5lZCBmcm9tIHBsYXRmb3Jt
Rm9jdXNSaW5nQ29sb3IoKS4gc3lzdGVtQ29sb3IoKSB3aWxsIGJlIHVzZWQgd2hlbiBmYWxzZS4K
ICAgICB2aXJ0dWFsIGJvb2wgdXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3IoKSBjb25zdDsKICAg
ICAvLyBBIHZpZXcgYXNzb2NpYXRlZCB0byB0aGUgY29udGFpbmVkIGRvY3VtZW50LiBTdWJjbGFz
c2VzIG1heSBub3QgaGF2ZSBzdWNoIGEgdmlldyBhbmQgcmV0dXJuIGEgZmFrZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCA2MDMzZDRjNjkxOTcwNjJj
NmU5Yzk1MTQ5NTkxMDZjYTQxZmU3OWIyLi40MTI5MmU0ZGJiNjE5ZTU1ZTkwYjhmNzdjZDY1Y2Nl
ZTEzNzM3NjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1t
CkBAIC01OTgsNyArNTk4LDcgQEAgc3RhdGljIEZvbnRXZWlnaHQgdG9Gb250V2VpZ2h0KE5TSW50
ZWdlciBhcHBLaXRGb250V2VpZ2h0KQogICAgIHJldHVybiBmb250V2VpZ2h0c1thcHBLaXRGb250
V2VpZ2h0IC0gMV07CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWVNYWM6OnN5c3RlbUZvbnQoaW50IGNz
c1ZhbHVlSWQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAordm9pZCBS
ZW5kZXJUaGVtZU1hYzo6c3lzdGVtRm9udChDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIEZvbnREZXNj
cmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoRm9udERlc2NyaXB0aW9uLCBzeXN0ZW1Gb250LCAoKSk7CiAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChGb250RGVzY3JpcHRpb24sIHNtYWxsU3lzdGVtRm9udCwgKCkpOwpAQCAtNzMzLDcgKzcz
Myw3IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCkKICAg
ICBSZW5kZXJUaGVtZTo6cGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKTsKIH0KIAotQ29sb3IgUmVu
ZGVyVGhlbWVNYWM6OnN5c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBjb25zdAorQ29sb3IgUmVu
ZGVyVGhlbWVNYWM6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCkgY29uc3QKIHsK
ICAgICB7CiAgICAgICAgIEhhc2hNYXA8aW50LCBSR0JBMzI+OjppdGVyYXRvciBpdCA9IG1fc3lz
dGVtQ29sb3JDYWNoZS5maW5kKGNzc1ZhbHVlSWQpOwpAQCAtNzQzLDEwMSArNzQzLDEwMyBAQCBD
b2xvciBSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0CiAK
ICAgICBDb2xvciBjb2xvcjsKICAgICBzd2l0Y2ggKGNzc1ZhbHVlSWQpIHsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUFjdGl2ZWJvcmRlcjoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29s
b3JUb0NvbG9yKFtOU0NvbG9yIGtleWJvYXJkRm9jdXNJbmRpY2F0b3JDb2xvcl0pOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBY3RpdmVjYXB0aW9uOgotICAgICAg
ICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3Igd2luZG93RnJhbWVU
ZXh0Q29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlQXBw
d29ya3NwYWNlOgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05T
Q29sb3IgaGVhZGVyQ29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENT
U1ZhbHVlQmFja2dyb3VuZDoKLSAgICAgICAgICAgIC8vIFVzZSB0aGVtZSBpbmRlcGVuZGVudCBk
ZWZhdWx0Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbmZh
Y2U6Ci0gICAgICAgICAgICAvLyBXZSB1c2UgdGhpcyB2YWx1ZSBpbnN0ZWFkIG9mIE5TQ29sb3In
cyBjb250cm9sQ29sb3IgdG8gYXZvaWQgd2Vic2l0ZSBpbmNvbXBhdGliaWxpdGllcy4KLSAgICAg
ICAgICAgIC8vIFdlIG1heSB3YW50IHRvIGNoYW5nZSB0aGlzIHRvIHVzZSB0aGUgTlNDb2xvciBp
biBmdXR1cmUuCi0gICAgICAgICAgICBjb2xvciA9IDB4RkZDMEMwQzA7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbmhpZ2hsaWdodDoKLSAgICAgICAgICAg
IGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGNvbnRyb2xIaWdobGlnaHRD
b2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVCdXR0b25z
aGFkb3c6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xv
ciBjb250cm9sU2hhZG93Q29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IENTU1ZhbHVlQnV0dG9udGV4dDoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JU
b0NvbG9yKFtOU0NvbG9yIGNvbnRyb2xUZXh0Q29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlQ2FwdGlvbnRleHQ6Ci0gICAgICAgICAgICBjb2xvciA9IGNv
bnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciB0ZXh0Q29sb3JdKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlR3JheXRleHQ6Ci0gICAgICAgICAgICBjb2xvciA9
IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBkaXNhYmxlZENvbnRyb2xUZXh0Q29sb3Jd
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlSGlnaGxpZ2h0Ogot
ICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3Igc2VsZWN0
ZWRUZXh0QmFja2dyb3VuZENvbG9yXSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUhpZ2hsaWdodHRleHQ6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0Nv
bG9yVG9Db2xvcihbTlNDb2xvciBzZWxlY3RlZFRleHRDb2xvcl0pOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2ZWJvcmRlcjoKLSAgICAgICAgICAgIGNv
bG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGNvbnRyb2xCYWNrZ3JvdW5kQ29s
b3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlSW5hY3RpdmVj
YXB0aW9uOgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29s
b3IgY29udHJvbEJhY2tncm91bmRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVJbmFjdGl2ZWNhcHRpb250ZXh0OgotICAgICAgICAgICAgY29sb3IgPSBj
b252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgdGV4dENvbG9yXSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUluZm9iYWNrZ3JvdW5kOgotICAgICAgICAgICAg
Ly8gVGhlcmUgaXMgbm8gY29ycmVzcG9uZGluZyBOU0NvbG9yIGZvciB0aGlzIHNvIHdlIHVzZSBh
IGhhcmQgY29kZWQgdmFsdWUuCi0gICAgICAgICAgICBjb2xvciA9IDB4RkZGQkZDQzU7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUluZm90ZXh0OgotICAgICAgICAg
ICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgdGV4dENvbG9yXSk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU1lbnU6Ci0gICAgICAgICAg
ICBjb2xvciA9IG1lbnVCYWNrZ3JvdW5kQ29sb3IoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlTWVudXRleHQ6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnRO
U0NvbG9yVG9Db2xvcihbTlNDb2xvciBzZWxlY3RlZE1lbnVJdGVtVGV4dENvbG9yXSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVNjcm9sbGJhcjoKLSAgICAgICAg
ICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHNjcm9sbEJhckNvbG9y
XSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVRleHQ6Ci0gICAg
ICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciB0ZXh0Q29sb3Jd
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlVGhyZWVkZGFya3No
YWRvdzoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9y
IGNvbnRyb2xEYXJrU2hhZG93Q29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIENTU1ZhbHVlVGhyZWVkc2hhZG93OgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlND
b2xvclRvQ29sb3IoW05TQ29sb3Igc2hhZG93Q29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlVGhyZWVkZmFjZToKLSAgICAgICAgICAgIC8vIFdlIHVzZSB0
aGlzIHZhbHVlIGluc3RlYWQgb2YgTlNDb2xvcidzIGNvbnRyb2xDb2xvciB0byBhdm9pZCB3ZWJz
aXRlIGluY29tcGF0aWJpbGl0aWVzLgotICAgICAgICAgICAgLy8gV2UgbWF5IHdhbnQgdG8gY2hh
bmdlIHRoaXMgdG8gdXNlIHRoZSBOU0NvbG9yIGluIGZ1dHVyZS4KLSAgICAgICAgICAgIGNvbG9y
ID0gMHhGRkMwQzBDMDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVl
VGhyZWVkaGlnaGxpZ2h0OgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29s
b3IoW05TQ29sb3IgaGlnaGxpZ2h0Q29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlVGhyZWVkbGlnaHRzaGFkb3c6Ci0gICAgICAgICAgICBjb2xvciA9IGNv
bnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBjb250cm9sTGlnaHRIaWdobGlnaHRDb2xvcl0p
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRGb2N1c1Jp
bmdDb2xvcjoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0Nv
bG9yIGtleWJvYXJkRm9jdXNJbmRpY2F0b3JDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3c6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnRO
U0NvbG9yVG9Db2xvcihbTlNDb2xvciB3aW5kb3dCYWNrZ3JvdW5kQ29sb3JdKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlV2luZG93ZnJhbWU6Ci0gICAgICAgICAg
ICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciB3aW5kb3dGcmFtZUNvbG9y
XSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVdpbmRvd3RleHQ6
Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciB3aW5k
b3dGcmFtZVRleHRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1
ZUFjdGl2ZWJvcmRlcjoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05T
Q29sb3Iga2V5Ym9hcmRGb2N1c0luZGljYXRvckNvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ1NTVmFsdWVBY3RpdmVjYXB0aW9uOgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0Nv
bG9yVG9Db2xvcihbTlNDb2xvciB3aW5kb3dGcmFtZVRleHRDb2xvcl0pOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENTU1ZhbHVlQXBwd29ya3NwYWNlOgorICAgICAgICBjb2xvciA9IGNvbnZl
cnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBoZWFkZXJDb2xvcl0pOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENTU1ZhbHVlQmFja2dyb3VuZDoKKyAgICAgICAgLy8gVXNlIHRoZW1lIGluZGVw
ZW5kZW50IGRlZmF1bHQKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbmZh
Y2U6CisgICAgICAgIC8vIFdlIHVzZSB0aGlzIHZhbHVlIGluc3RlYWQgb2YgTlNDb2xvcidzIGNv
bnRyb2xDb2xvciB0byBhdm9pZCB3ZWJzaXRlIGluY29tcGF0aWJpbGl0aWVzLgorICAgICAgICAv
LyBXZSBtYXkgd2FudCB0byBjaGFuZ2UgdGhpcyB0byB1c2UgdGhlIE5TQ29sb3IgaW4gZnV0dXJl
LgorICAgICAgICBjb2xvciA9IDB4RkZDMEMwQzA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q1NTVmFsdWVCdXR0b25oaWdobGlnaHQ6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JU
b0NvbG9yKFtOU0NvbG9yIGNvbnRyb2xIaWdobGlnaHRDb2xvcl0pOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENTU1ZhbHVlQnV0dG9uc2hhZG93OgorICAgICAgICBjb2xvciA9IGNvbnZlcnRO
U0NvbG9yVG9Db2xvcihbTlNDb2xvciBjb250cm9sU2hhZG93Q29sb3JdKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbnRleHQ6CisgICAgICAgIGNvbG9yID0gY29udmVy
dE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGNvbnRyb2xUZXh0Q29sb3JdKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDU1NWYWx1ZUNhcHRpb250ZXh0OgorICAgICAgICBjb2xvciA9IGNvbnZl
cnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciB0ZXh0Q29sb3JdKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDU1NWYWx1ZUdyYXl0ZXh0OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9y
VG9Db2xvcihbTlNDb2xvciBkaXNhYmxlZENvbnRyb2xUZXh0Q29sb3JdKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDU1NWYWx1ZUhpZ2hsaWdodDoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0
TlNDb2xvclRvQ29sb3IoW05TQ29sb3Igc2VsZWN0ZWRUZXh0QmFja2dyb3VuZENvbG9yXSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVIaWdobGlnaHR0ZXh0OgorICAgICAgICBj
b2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBzZWxlY3RlZFRleHRDb2xvcl0p
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlSW5hY3RpdmVib3JkZXI6CisgICAg
ICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGNvbnRyb2xCYWNrZ3Jv
dW5kQ29sb3JdKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUluYWN0aXZlY2Fw
dGlvbjoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgY29u
dHJvbEJhY2tncm91bmRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVl
SW5hY3RpdmVjYXB0aW9udGV4dDoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29s
b3IoW05TQ29sb3IgdGV4dENvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFs
dWVJbmZvYmFja2dyb3VuZDoKKyAgICAgICAgLy8gVGhlcmUgaXMgbm8gY29ycmVzcG9uZGluZyBO
U0NvbG9yIGZvciB0aGlzIHNvIHdlIHVzZSBhIGhhcmQgY29kZWQgdmFsdWUuCisgICAgICAgIGNv
bG9yID0gMHhGRkZCRkNDNTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUluZm90
ZXh0OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciB0ZXh0
Q29sb3JdKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZU1lbnU6CisgICAgICAg
IGNvbG9yID0gbWVudUJhY2tncm91bmRDb2xvcigpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENTU1ZhbHVlTWVudXRleHQ6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9y
KFtOU0NvbG9yIHNlbGVjdGVkTWVudUl0ZW1UZXh0Q29sb3JdKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDU1NWYWx1ZVNjcm9sbGJhcjoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xv
clRvQ29sb3IoW05TQ29sb3Igc2Nyb2xsQmFyQ29sb3JdKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDU1NWYWx1ZVRleHQ6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9y
KFtOU0NvbG9yIHRleHRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVl
VGhyZWVkZGFya3NoYWRvdzoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3Io
W05TQ29sb3IgY29udHJvbERhcmtTaGFkb3dDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENTU1ZhbHVlVGhyZWVkc2hhZG93OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9y
VG9Db2xvcihbTlNDb2xvciBzaGFkb3dDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENTU1ZhbHVlVGhyZWVkZmFjZToKKyAgICAgICAgLy8gV2UgdXNlIHRoaXMgdmFsdWUgaW5zdGVh
ZCBvZiBOU0NvbG9yJ3MgY29udHJvbENvbG9yIHRvIGF2b2lkIHdlYnNpdGUgaW5jb21wYXRpYmls
aXRpZXMuCisgICAgICAgIC8vIFdlIG1heSB3YW50IHRvIGNoYW5nZSB0aGlzIHRvIHVzZSB0aGUg
TlNDb2xvciBpbiBmdXR1cmUuCisgICAgICAgIGNvbG9yID0gMHhGRkMwQzBDMDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZVRocmVlZGhpZ2hsaWdodDoKKyAgICAgICAgY29sb3Ig
PSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgaGlnaGxpZ2h0Q29sb3JdKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZVRocmVlZGxpZ2h0c2hhZG93OgorICAgICAgICBj
b2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBjb250cm9sTGlnaHRIaWdobGln
aHRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlV2Via2l0Rm9jdXNS
aW5nQ29sb3I6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9y
IGtleWJvYXJkRm9jdXNJbmRpY2F0b3JDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENTU1ZhbHVlV2luZG93OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihb
TlNDb2xvciB3aW5kb3dCYWNrZ3JvdW5kQ29sb3JdKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDU1NWYWx1ZVdpbmRvd2ZyYW1lOgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9D
b2xvcihbTlNDb2xvciB3aW5kb3dGcmFtZUNvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1NTVmFsdWVXaW5kb3d0ZXh0OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9D
b2xvcihbTlNDb2xvciB3aW5kb3dGcmFtZVRleHRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBpZiAoIWNvbG9yLmlzVmFs
aWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNh
ZmFyaS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuY3Bw
CmluZGV4IGYxMjMzNjc0NWE4YTgzNWIxZDYzNTRjZGM1MWVjOWZiZDdmNjAyMzUuLjJhYjAxNmQ4
NDI5NTE0ZThjMGRmMDdhODE5YWY5YWUzMTE2ZTFiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcApAQCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRp
YyBmbG9hdCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplKE5TQ29udHJvbFNpemUgY29udHJv
bFNpemUpCiAgICAgcmV0dXJuIHNpemVzW2NvbnRyb2xTaXplXTsKIH0KIAotdm9pZCBSZW5kZXJU
aGVtZVNhZmFyaTo6c3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250RGVzY3JpcHRpb24mIGZvbnRE
ZXNjcmlwdGlvbikgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVTYWZhcmk6OnN5c3RlbUZvbnQoQ1NT
VmFsdWVJRCB2YWx1ZUlELCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QK
IHsKICAgICBzdGF0aWMgRm9udERlc2NyaXB0aW9uIHN5c3RlbUZvbnQ7CiAgICAgc3RhdGljIEZv
bnREZXNjcmlwdGlvbiBzbWFsbFN5c3RlbUZvbnQ7CkBAIC0yMDEsNDEgKzIwMSw0MSBAQCB2b2lk
IFJlbmRlclRoZW1lU2FmYXJpOjpzeXN0ZW1Gb250KGludCBwcm9wSWQsIEZvbnREZXNjcmlwdGlv
biYgZm9udERlc2NyaXB0aW9uKQogCiAgICAgRm9udERlc2NyaXB0aW9uKiBjYWNoZWREZXNjOwog
ICAgIGZsb2F0IGZvbnRTaXplID0gMDsKLSAgICBzd2l0Y2ggKHByb3BJZCkgewotICAgICAgICBj
YXNlIENTU1ZhbHVlU21hbGxDYXB0aW9uOgotICAgICAgICAgICAgY2FjaGVkRGVzYyA9ICZzbWFs
bFN5c3RlbUZvbnQ7Ci0gICAgICAgICAgICBpZiAoIXNtYWxsU3lzdGVtRm9udC5pc0Fic29sdXRl
U2l6ZSgpKQotICAgICAgICAgICAgICAgIGZvbnRTaXplID0gc3lzdGVtRm9udFNpemVGb3JDb250
cm9sU2l6ZShOU1NtYWxsQ29udHJvbFNpemUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVNZW51OgotICAgICAgICAgICAgY2FjaGVkRGVzYyA9ICZtZW51Rm9udDsK
LSAgICAgICAgICAgIGlmICghbWVudUZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKLSAgICAgICAgICAg
ICAgICBmb250U2l6ZSA9IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemUoTlNSZWd1bGFyQ29u
dHJvbFNpemUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTdGF0
dXNCYXI6Ci0gICAgICAgICAgICBjYWNoZWREZXNjID0gJmxhYmVsRm9udDsKLSAgICAgICAgICAg
IGlmICghbGFiZWxGb250LmlzQWJzb2x1dGVTaXplKCkpCi0gICAgICAgICAgICAgICAgZm9udFNp
emUgPSAxMC4wZjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlV2Vi
a2l0TWluaUNvbnRyb2w6Ci0gICAgICAgICAgICBjYWNoZWREZXNjID0gJm1pbmlDb250cm9sRm9u
dDsKLSAgICAgICAgICAgIGlmICghbWluaUNvbnRyb2xGb250LmlzQWJzb2x1dGVTaXplKCkpCi0g
ICAgICAgICAgICAgICAgZm9udFNpemUgPSBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplKE5T
TWluaUNvbnRyb2xTaXplKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1Zh
bHVlV2Via2l0U21hbGxDb250cm9sOgotICAgICAgICAgICAgY2FjaGVkRGVzYyA9ICZzbWFsbENv
bnRyb2xGb250OwotICAgICAgICAgICAgaWYgKCFzbWFsbENvbnRyb2xGb250LmlzQWJzb2x1dGVT
aXplKCkpCi0gICAgICAgICAgICAgICAgZm9udFNpemUgPSBzeXN0ZW1Gb250U2l6ZUZvckNvbnRy
b2xTaXplKE5TU21hbGxDb250cm9sU2l6ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZVdlYmtpdENvbnRyb2w6Ci0gICAgICAgICAgICBjYWNoZWREZXNjID0gJmNv
bnRyb2xGb250OwotICAgICAgICAgICAgaWYgKCFjb250cm9sRm9udC5pc0Fic29sdXRlU2l6ZSgp
KQotICAgICAgICAgICAgICAgIGZvbnRTaXplID0gc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6
ZShOU1JlZ3VsYXJDb250cm9sU2l6ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgIGNhY2hlZERlc2MgPSAmc3lzdGVtRm9udDsKLSAgICAgICAgICAg
IGlmICghc3lzdGVtRm9udC5pc0Fic29sdXRlU2l6ZSgpKQotICAgICAgICAgICAgICAgIGZvbnRT
aXplID0gMTMuMGY7CisgICAgc3dpdGNoICh2YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVNt
YWxsQ2FwdGlvbjoKKyAgICAgICAgY2FjaGVkRGVzYyA9ICZzbWFsbFN5c3RlbUZvbnQ7CisgICAg
ICAgIGlmICghc21hbGxTeXN0ZW1Gb250LmlzQWJzb2x1dGVTaXplKCkpCisgICAgICAgICAgICBm
b250U2l6ZSA9IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemUoTlNTbWFsbENvbnRyb2xTaXpl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZU1lbnU6CisgICAgICAgIGNhY2hl
ZERlc2MgPSAmbWVudUZvbnQ7CisgICAgICAgIGlmICghbWVudUZvbnQuaXNBYnNvbHV0ZVNpemUo
KSkKKyAgICAgICAgICAgIGZvbnRTaXplID0gc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZShO
U1JlZ3VsYXJDb250cm9sU2l6ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVT
dGF0dXNCYXI6CisgICAgICAgIGNhY2hlZERlc2MgPSAmbGFiZWxGb250OworICAgICAgICBpZiAo
IWxhYmVsRm9udC5pc0Fic29sdXRlU2l6ZSgpKQorICAgICAgICAgICAgZm9udFNpemUgPSAxMC4w
ZjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdE1pbmlDb250cm9sOgor
ICAgICAgICBjYWNoZWREZXNjID0gJm1pbmlDb250cm9sRm9udDsKKyAgICAgICAgaWYgKCFtaW5p
Q29udHJvbEZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKKyAgICAgICAgICAgIGZvbnRTaXplID0gc3lz
dGVtRm9udFNpemVGb3JDb250cm9sU2l6ZShOU01pbmlDb250cm9sU2l6ZSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRTbWFsbENvbnRyb2w6CisgICAgICAgIGNhY2hl
ZERlc2MgPSAmc21hbGxDb250cm9sRm9udDsKKyAgICAgICAgaWYgKCFzbWFsbENvbnRyb2xGb250
LmlzQWJzb2x1dGVTaXplKCkpCisgICAgICAgICAgICBmb250U2l6ZSA9IHN5c3RlbUZvbnRTaXpl
Rm9yQ29udHJvbFNpemUoTlNTbWFsbENvbnRyb2xTaXplKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDU1NWYWx1ZVdlYmtpdENvbnRyb2w6CisgICAgICAgIGNhY2hlZERlc2MgPSAmY29udHJv
bEZvbnQ7CisgICAgICAgIGlmICghY29udHJvbEZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKKyAgICAg
ICAgICAgIGZvbnRTaXplID0gc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZShOU1JlZ3VsYXJD
b250cm9sU2l6ZSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGNhY2hl
ZERlc2MgPSAmc3lzdGVtRm9udDsKKyAgICAgICAgaWYgKCFzeXN0ZW1Gb250LmlzQWJzb2x1dGVT
aXplKCkpCisgICAgICAgICAgICBmb250U2l6ZSA9IDEzLjBmOwogICAgIH0KIAogICAgIGlmIChm
b250U2l6ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lU2FmYXJpLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmku
aAppbmRleCA4YzYyMDVkZTAxZGFlZTIxMWEwYjU1MzI1Y2NmNWMxMzAwMzg2NmQ5Li40NTdlMGQz
NjU4YTdkMDI2ODQ1ZDIxMGRhODE4MzliYzhhZTJmMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKCkgY29uc3Q7CiAKICAgICAv
LyBTeXN0ZW0gZm9udHMuCi0gICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoaW50IHByb3BJZCwg
Rm9udERlc2NyaXB0aW9uJikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoQ1NT
VmFsdWVJRCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGludCBtaW5p
bXVtTWVudUxpc3RTaXplKFJlbmRlclN0eWxlKikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCmluZGV4IDIxYTFhOWU0MDM1NjA2Y2IyMGRiZDBm
MTg5NGJlZGY0NWIyZGM5MzkuLmUzM2Q5YWRjY2E5MGU5YWFlYmFhYWVmYzdhOWQxOTU3NTE5ZjM5
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcApAQCAt
MzM3LDcgKzMzNyw3IEBAIHN0YXRpYyB2b2lkIGZpbGxGb250RGVzY3JpcHRpb24oRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3JpcHRpb24sIExPR0ZPTlQmIGxvZ0ZvCiAgICAgZmlsbEZvbnREZXNj
cmlwdGlvbihmb250RGVzY3JpcHRpb24sIGxvZ0ZvbnQsIGFicyhsb2dGb250LmxmSGVpZ2h0KSk7
CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWVXaW46OnN5c3RlbUZvbnQoaW50IHByb3BJZCwgRm9udERl
c2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lV2luOjpz
eXN0ZW1Gb250KENTU1ZhbHVlSUQgdmFsdWVJRCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3Jp
cHRpb24pIGNvbnN0CiB7CiAgICAgc3RhdGljIEZvbnREZXNjcmlwdGlvbiBjYXB0aW9uRm9udDsK
ICAgICBzdGF0aWMgRm9udERlc2NyaXB0aW9uIGNvbnRyb2xGb250OwpAQCAtMzU3LDY1ICszNTcs
NjUgQEAgdm9pZCBSZW5kZXJUaGVtZVdpbjo6c3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY28KICAgICAgICAgOjpTeXN0ZW1QYXJhbWV0ZXJz
SW5mbyhTUElfR0VUTk9OQ0xJRU5UTUVUUklDUywgc2l6ZW9mKG5jbSksICZuY20sIDApOwogICAg
IH0KICAKLSAgICBzd2l0Y2ggKHByb3BJZCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlSWNvbjog
ewotICAgICAgICAgICAgaWYgKCFpY29uRm9udC5pc0Fic29sdXRlU2l6ZSgpKSB7CisgICAgc3dp
dGNoICh2YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUljb246IHsKKyAgICAgICAgaWYgKCFp
Y29uRm9udC5pc0Fic29sdXRlU2l6ZSgpKSB7CisgICAgICAgICAgICBMT0dGT05UIGxvZ0ZvbnQ7
CisgICAgICAgICAgICA6OlN5c3RlbVBhcmFtZXRlcnNJbmZvKFNQSV9HRVRJQ09OVElUTEVMT0dG
T05ULCBzaXplb2YobG9nRm9udCksICZsb2dGb250LCAwKTsKKyAgICAgICAgICAgIGZpbGxGb250
RGVzY3JpcHRpb24oaWNvbkZvbnQsIGxvZ0ZvbnQpOworICAgICAgICB9CisgICAgICAgIGZvbnRE
ZXNjcmlwdGlvbiA9IGljb25Gb250OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBD
U1NWYWx1ZU1lbnU6CisgICAgICAgIGlmICghbWVudUZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKKyAg
ICAgICAgICAgIGZpbGxGb250RGVzY3JpcHRpb24obWVudUZvbnQsIG5jbS5sZk1lbnVGb250KTsK
KyAgICAgICAgZm9udERlc2NyaXB0aW9uID0gbWVudUZvbnQ7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ1NTVmFsdWVNZXNzYWdlQm94OgorICAgICAgICBpZiAoIW1lc3NhZ2VCb3hGb250Lmlz
QWJzb2x1dGVTaXplKCkpCisgICAgICAgICAgICBmaWxsRm9udERlc2NyaXB0aW9uKG1lc3NhZ2VC
b3hGb250LCBuY20ubGZNZXNzYWdlRm9udCk7CisgICAgICAgIGZvbnREZXNjcmlwdGlvbiA9IG1l
c3NhZ2VCb3hGb250OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlU3RhdHVzQmFy
OgorICAgICAgICBpZiAoIXN0YXR1c0JhckZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKKyAgICAgICAg
ICAgIGZpbGxGb250RGVzY3JpcHRpb24oc3RhdHVzQmFyRm9udCwgbmNtLmxmU3RhdHVzRm9udCk7
CisgICAgICAgIGZvbnREZXNjcmlwdGlvbiA9IHN0YXR1c0JhckZvbnQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ1NTVmFsdWVDYXB0aW9uOgorICAgICAgICBpZiAoIWNhcHRpb25Gb250Lmlz
QWJzb2x1dGVTaXplKCkpCisgICAgICAgICAgICBmaWxsRm9udERlc2NyaXB0aW9uKGNhcHRpb25G
b250LCBuY20ubGZDYXB0aW9uRm9udCk7CisgICAgICAgIGZvbnREZXNjcmlwdGlvbiA9IGNhcHRp
b25Gb250OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlU21hbGxDYXB0aW9uOgor
ICAgICAgICBpZiAoIXNtYWxsQ2FwdGlvbkZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKKyAgICAgICAg
ICAgIGZpbGxGb250RGVzY3JpcHRpb24oc21hbGxDYXB0aW9uRm9udCwgbmNtLmxmU21DYXB0aW9u
Rm9udCk7CisgICAgICAgIGZvbnREZXNjcmlwdGlvbiA9IHNtYWxsQ2FwdGlvbkZvbnQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRTbWFsbENvbnRyb2w6CisgICAgY2Fz
ZSBDU1NWYWx1ZVdlYmtpdE1pbmlDb250cm9sOiAvLyBKdXN0IG1hcCB0byBzbWFsbC4KKyAgICBj
YXNlIENTU1ZhbHVlV2Via2l0Q29udHJvbDogLy8gSnVzdCBtYXAgdG8gc21hbGwuCisgICAgICAg
IGlmICghY29udHJvbEZvbnQuaXNBYnNvbHV0ZVNpemUoKSkgeworICAgICAgICAgICAgSEdESU9C
SiBoR0RJID0gOjpHZXRTdG9ja09iamVjdChERUZBVUxUX0dVSV9GT05UKTsKKyAgICAgICAgICAg
IGlmIChoR0RJKSB7CiAgICAgICAgICAgICAgICAgTE9HRk9OVCBsb2dGb250OwotICAgICAgICAg
ICAgICAgIDo6U3lzdGVtUGFyYW1ldGVyc0luZm8oU1BJX0dFVElDT05USVRMRUxPR0ZPTlQsIHNp
emVvZihsb2dGb250KSwgJmxvZ0ZvbnQsIDApOwotICAgICAgICAgICAgICAgIGZpbGxGb250RGVz
Y3JpcHRpb24oaWNvbkZvbnQsIGxvZ0ZvbnQpOworICAgICAgICAgICAgICAgIGlmICg6OkdldE9i
amVjdChoR0RJLCBzaXplb2YobG9nRm9udCksICZsb2dGb250KSA+IDApCisgICAgICAgICAgICAg
ICAgICAgIGZpbGxGb250RGVzY3JpcHRpb24oY29udHJvbEZvbnQsIGxvZ0ZvbnQsIGRlZmF1bHRD
b250cm9sRm9udFBpeGVsU2l6ZSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb250RGVz
Y3JpcHRpb24gPSBpY29uRm9udDsKLSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVNZW51OgotICAgICAgICAgICAgaWYgKCFtZW51Rm9udC5pc0Fic29s
dXRlU2l6ZSgpKQotICAgICAgICAgICAgICAgIGZpbGxGb250RGVzY3JpcHRpb24obWVudUZvbnQs
IG5jbS5sZk1lbnVGb250KTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbiA9IG1lbnVGb250
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVNZXNzYWdlQm94Ogot
ICAgICAgICAgICAgaWYgKCFtZXNzYWdlQm94Rm9udC5pc0Fic29sdXRlU2l6ZSgpKQotICAgICAg
ICAgICAgICAgIGZpbGxGb250RGVzY3JpcHRpb24obWVzc2FnZUJveEZvbnQsIG5jbS5sZk1lc3Nh
Z2VGb250KTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbiA9IG1lc3NhZ2VCb3hGb250Owot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTdGF0dXNCYXI6Ci0gICAg
ICAgICAgICBpZiAoIXN0YXR1c0JhckZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKLSAgICAgICAgICAg
ICAgICBmaWxsRm9udERlc2NyaXB0aW9uKHN0YXR1c0JhckZvbnQsIG5jbS5sZlN0YXR1c0ZvbnQp
OwotICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uID0gc3RhdHVzQmFyRm9udDsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlQ2FwdGlvbjoKLSAgICAgICAgICAgIGlm
ICghY2FwdGlvbkZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKLSAgICAgICAgICAgICAgICBmaWxsRm9u
dERlc2NyaXB0aW9uKGNhcHRpb25Gb250LCBuY20ubGZDYXB0aW9uRm9udCk7Ci0gICAgICAgICAg
ICBmb250RGVzY3JpcHRpb24gPSBjYXB0aW9uRm9udDsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlU21hbGxDYXB0aW9uOgotICAgICAgICAgICAgaWYgKCFzbWFsbENh
cHRpb25Gb250LmlzQWJzb2x1dGVTaXplKCkpCi0gICAgICAgICAgICAgICAgZmlsbEZvbnREZXNj
cmlwdGlvbihzbWFsbENhcHRpb25Gb250LCBuY20ubGZTbUNhcHRpb25Gb250KTsKLSAgICAgICAg
ICAgIGZvbnREZXNjcmlwdGlvbiA9IHNtYWxsQ2FwdGlvbkZvbnQ7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdFNtYWxsQ29udHJvbDoKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZVdlYmtpdE1pbmlDb250cm9sOiAvLyBKdXN0IG1hcCB0byBzbWFsbC4KLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZVdlYmtpdENvbnRyb2w6IC8vIEp1c3QgbWFwIHRvIHNtYWxsLgotICAg
ICAgICAgICAgaWYgKCFjb250cm9sRm9udC5pc0Fic29sdXRlU2l6ZSgpKSB7Ci0gICAgICAgICAg
ICAgICAgSEdESU9CSiBoR0RJID0gOjpHZXRTdG9ja09iamVjdChERUZBVUxUX0dVSV9GT05UKTsK
LSAgICAgICAgICAgICAgICBpZiAoaEdESSkgewotICAgICAgICAgICAgICAgICAgICBMT0dGT05U
IGxvZ0ZvbnQ7Ci0gICAgICAgICAgICAgICAgICAgIGlmICg6OkdldE9iamVjdChoR0RJLCBzaXpl
b2YobG9nRm9udCksICZsb2dGb250KSA+IDApCi0gICAgICAgICAgICAgICAgICAgICAgICBmaWxs
Rm9udERlc2NyaXB0aW9uKGNvbnRyb2xGb250LCBsb2dGb250LCBkZWZhdWx0Q29udHJvbEZvbnRQ
aXhlbFNpemUpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGZvbnREZXNjcmlwdGlvbiA9IGNvbnRyb2xGb250OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGRlZmF1bHQ6IHsgLy8gRXZlcnl0aGluZyBlbHNlIHVzZXMgdGhlIHN0b2NrIEdVSSBmb250
LgotICAgICAgICAgICAgaWYgKCFzeXN0ZW1Gb250LmlzQWJzb2x1dGVTaXplKCkpIHsKLSAgICAg
ICAgICAgICAgICBIR0RJT0JKIGhHREkgPSA6OkdldFN0b2NrT2JqZWN0KERFRkFVTFRfR1VJX0ZP
TlQpOwotICAgICAgICAgICAgICAgIGlmIChoR0RJKSB7Ci0gICAgICAgICAgICAgICAgICAgIExP
R0ZPTlQgbG9nRm9udDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKDo6R2V0T2JqZWN0KGhHREks
IHNpemVvZihsb2dGb250KSwgJmxvZ0ZvbnQpID4gMCkKLSAgICAgICAgICAgICAgICAgICAgICAg
IGZpbGxGb250RGVzY3JpcHRpb24oc3lzdGVtRm9udCwgbG9nRm9udCk7Ci0gICAgICAgICAgICAg
ICAgfQorICAgICAgICBmb250RGVzY3JpcHRpb24gPSBjb250cm9sRm9udDsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDogeyAvLyBFdmVyeXRoaW5nIGVsc2UgdXNlcyB0aGUgc3RvY2sgR1VJ
IGZvbnQuCisgICAgICAgIGlmICghc3lzdGVtRm9udC5pc0Fic29sdXRlU2l6ZSgpKSB7CisgICAg
ICAgICAgICBIR0RJT0JKIGhHREkgPSA6OkdldFN0b2NrT2JqZWN0KERFRkFVTFRfR1VJX0ZPTlQp
OworICAgICAgICAgICAgaWYgKGhHREkpIHsKKyAgICAgICAgICAgICAgICBMT0dGT05UIGxvZ0Zv
bnQ7CisgICAgICAgICAgICAgICAgaWYgKDo6R2V0T2JqZWN0KGhHREksIHNpemVvZihsb2dGb250
KSwgJmxvZ0ZvbnQpID4gMCkKKyAgICAgICAgICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlv
bihzeXN0ZW1Gb250LCBsb2dGb250KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvbnRE
ZXNjcmlwdGlvbiA9IHN5c3RlbUZvbnQ7CiAgICAgICAgIH0KKyAgICAgICAgZm9udERlc2NyaXB0
aW9uID0gc3lzdGVtRm9udDsKKyAgICB9CiAgICAgfQogfQogCkBAIC0xMDM0LDQ1ICsxMDM0LDQ1
IEBAIGJvb2wgUmVuZGVyVGhlbWVXaW46OnBhaW50U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uKFJl
bmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJCiB9CiAKIC8vIE1hcCBhIENTU1ZhbHVlKiBzeXN0
ZW0gY29sb3IgdG8gYW4gaW5kZXggdW5kZXJzdG9vZCBieSBHZXRTeXNDb2xvcgotc3RhdGljIGlu
dCBjc3NWYWx1ZUlkVG9TeXNDb2xvckluZGV4KGludCBjc3NWYWx1ZUlkKQorc3RhdGljIENTU1Zh
bHVlSUQgY3NzVmFsdWVJZFRvU3lzQ29sb3JJbmRleChpbnQgY3NzVmFsdWVJZCkKIHsKICAgICBz
d2l0Y2ggKGNzc1ZhbHVlSWQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFjdGl2ZWJvcmRlcjog
cmV0dXJuIENPTE9SX0FDVElWRUJPUkRFUjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFjdGl2ZWNh
cHRpb246IHJldHVybiBDT0xPUl9BQ1RJVkVDQVBUSU9OOwotICAgICAgICBjYXNlIENTU1ZhbHVl
QXBwd29ya3NwYWNlOiByZXR1cm4gQ09MT1JfQVBQV09SS1NQQUNFOwotICAgICAgICBjYXNlIENT
U1ZhbHVlQmFja2dyb3VuZDogcmV0dXJuIENPTE9SX0JBQ0tHUk9VTkQ7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVCdXR0b25mYWNlOiByZXR1cm4gQ09MT1JfQlRORkFDRTsKLSAgICAgICAgY2FzZSBD
U1NWYWx1ZUJ1dHRvbmhpZ2hsaWdodDogcmV0dXJuIENPTE9SX0JUTkhJR0hMSUdIVDsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbnNoYWRvdzogcmV0dXJuIENPTE9SX0JUTlNIQURPVzsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbnRleHQ6IHJldHVybiBDT0xPUl9CVE5URVhUOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlQ2FwdGlvbnRleHQ6IHJldHVybiBDT0xPUl9DQVBUSU9OVEVYVDsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZUdyYXl0ZXh0OiByZXR1cm4gQ09MT1JfR1JBWVRFWFQ7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVIaWdobGlnaHQ6IHJldHVybiBDT0xPUl9ISUdITElHSFQ7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVIaWdobGlnaHR0ZXh0OiByZXR1cm4gQ09MT1JfSElHSExJR0hU
VEVYVDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUluYWN0aXZlYm9yZGVyOiByZXR1cm4gQ09MT1Jf
SU5BQ1RJVkVCT1JERVI7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2ZWNhcHRpb246IHJl
dHVybiBDT0xPUl9JTkFDVElWRUNBUFRJT047Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2
ZWNhcHRpb250ZXh0OiByZXR1cm4gQ09MT1JfSU5BQ1RJVkVDQVBUSU9OVEVYVDsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUluZm9iYWNrZ3JvdW5kOiByZXR1cm4gQ09MT1JfSU5GT0JLOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlSW5mb3RleHQ6IHJldHVybiBDT0xPUl9JTkZPVEVYVDsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZU1lbnU6IHJldHVybiBDT0xPUl9NRU5VOwotICAgICAgICBjYXNlIENTU1Zh
bHVlTWVudXRleHQ6IHJldHVybiBDT0xPUl9NRU5VVEVYVDsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZVNjcm9sbGJhcjogcmV0dXJuIENPTE9SX1NDUk9MTEJBUjsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZVRocmVlZGRhcmtzaGFkb3c6IHJldHVybiBDT0xPUl8zRERLU0hBRE9XOwotICAgICAgICBjYXNl
IENTU1ZhbHVlVGhyZWVkZmFjZTogcmV0dXJuIENPTE9SXzNERkFDRTsKLSAgICAgICAgY2FzZSBD
U1NWYWx1ZVRocmVlZGhpZ2hsaWdodDogcmV0dXJuIENPTE9SXzNESElHSExJR0hUOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlVGhyZWVkbGlnaHRzaGFkb3c6IHJldHVybiBDT0xPUl8zRExJR0hUOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlVGhyZWVkc2hhZG93OiByZXR1cm4gQ09MT1JfM0RTSEFET1c7
Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3c6IHJldHVybiBDT0xPUl9XSU5ET1c7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3dmcmFtZTogcmV0dXJuIENPTE9SX1dJTkRPV0ZSQU1FOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlV2luZG93dGV4dDogcmV0dXJuIENPTE9SX1dJTkRPV1RFWFQ7
Ci0gICAgICAgIGRlZmF1bHQ6IHJldHVybiAtMTsgLy8gVW5zdXBwb3J0ZWQgQ1NTVmFsdWUKKyAg
ICBjYXNlIENTU1ZhbHVlQWN0aXZlYm9yZGVyOiByZXR1cm4gQ09MT1JfQUNUSVZFQk9SREVSOwor
ICAgIGNhc2UgQ1NTVmFsdWVBY3RpdmVjYXB0aW9uOiByZXR1cm4gQ09MT1JfQUNUSVZFQ0FQVElP
TjsKKyAgICBjYXNlIENTU1ZhbHVlQXBwd29ya3NwYWNlOiByZXR1cm4gQ09MT1JfQVBQV09SS1NQ
QUNFOworICAgIGNhc2UgQ1NTVmFsdWVCYWNrZ3JvdW5kOiByZXR1cm4gQ09MT1JfQkFDS0dST1VO
RDsKKyAgICBjYXNlIENTU1ZhbHVlQnV0dG9uZmFjZTogcmV0dXJuIENPTE9SX0JUTkZBQ0U7Cisg
ICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbmhpZ2hsaWdodDogcmV0dXJuIENPTE9SX0JUTkhJR0hMSUdI
VDsKKyAgICBjYXNlIENTU1ZhbHVlQnV0dG9uc2hhZG93OiByZXR1cm4gQ09MT1JfQlROU0hBRE9X
OworICAgIGNhc2UgQ1NTVmFsdWVCdXR0b250ZXh0OiByZXR1cm4gQ09MT1JfQlROVEVYVDsKKyAg
ICBjYXNlIENTU1ZhbHVlQ2FwdGlvbnRleHQ6IHJldHVybiBDT0xPUl9DQVBUSU9OVEVYVDsKKyAg
ICBjYXNlIENTU1ZhbHVlR3JheXRleHQ6IHJldHVybiBDT0xPUl9HUkFZVEVYVDsKKyAgICBjYXNl
IENTU1ZhbHVlSGlnaGxpZ2h0OiByZXR1cm4gQ09MT1JfSElHSExJR0hUOworICAgIGNhc2UgQ1NT
VmFsdWVIaWdobGlnaHR0ZXh0OiByZXR1cm4gQ09MT1JfSElHSExJR0hUVEVYVDsKKyAgICBjYXNl
IENTU1ZhbHVlSW5hY3RpdmVib3JkZXI6IHJldHVybiBDT0xPUl9JTkFDVElWRUJPUkRFUjsKKyAg
ICBjYXNlIENTU1ZhbHVlSW5hY3RpdmVjYXB0aW9uOiByZXR1cm4gQ09MT1JfSU5BQ1RJVkVDQVBU
SU9OOworICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2ZWNhcHRpb250ZXh0OiByZXR1cm4gQ09MT1Jf
SU5BQ1RJVkVDQVBUSU9OVEVYVDsKKyAgICBjYXNlIENTU1ZhbHVlSW5mb2JhY2tncm91bmQ6IHJl
dHVybiBDT0xPUl9JTkZPQks7CisgICAgY2FzZSBDU1NWYWx1ZUluZm90ZXh0OiByZXR1cm4gQ09M
T1JfSU5GT1RFWFQ7CisgICAgY2FzZSBDU1NWYWx1ZU1lbnU6IHJldHVybiBDT0xPUl9NRU5VOwor
ICAgIGNhc2UgQ1NTVmFsdWVNZW51dGV4dDogcmV0dXJuIENPTE9SX01FTlVURVhUOworICAgIGNh
c2UgQ1NTVmFsdWVTY3JvbGxiYXI6IHJldHVybiBDT0xPUl9TQ1JPTExCQVI7CisgICAgY2FzZSBD
U1NWYWx1ZVRocmVlZGRhcmtzaGFkb3c6IHJldHVybiBDT0xPUl8zRERLU0hBRE9XOworICAgIGNh
c2UgQ1NTVmFsdWVUaHJlZWRmYWNlOiByZXR1cm4gQ09MT1JfM0RGQUNFOworICAgIGNhc2UgQ1NT
VmFsdWVUaHJlZWRoaWdobGlnaHQ6IHJldHVybiBDT0xPUl8zREhJR0hMSUdIVDsKKyAgICBjYXNl
IENTU1ZhbHVlVGhyZWVkbGlnaHRzaGFkb3c6IHJldHVybiBDT0xPUl8zRExJR0hUOworICAgIGNh
c2UgQ1NTVmFsdWVUaHJlZWRzaGFkb3c6IHJldHVybiBDT0xPUl8zRFNIQURPVzsKKyAgICBjYXNl
IENTU1ZhbHVlV2luZG93OiByZXR1cm4gQ09MT1JfV0lORE9XOworICAgIGNhc2UgQ1NTVmFsdWVX
aW5kb3dmcmFtZTogcmV0dXJuIENPTE9SX1dJTkRPV0ZSQU1FOworICAgIGNhc2UgQ1NTVmFsdWVX
aW5kb3d0ZXh0OiByZXR1cm4gQ09MT1JfV0lORE9XVEVYVDsKKyAgICBkZWZhdWx0OiByZXR1cm4g
Q1NTVmFsdWVJbnZhbGlkOyAvLyBVbnN1cHBvcnRlZCBDU1NWYWx1ZQogICAgIH0KIH0KIAotQ29s
b3IgUmVuZGVyVGhlbWVXaW46OnN5c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBjb25zdAorQ29s
b3IgUmVuZGVyVGhlbWVXaW46OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCkgY29u
c3QKIHsKLSAgICBpbnQgc3lzQ29sb3JJbmRleCA9IGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgo
Y3NzVmFsdWVJZCk7Ci0gICAgaWYgKHN5c0NvbG9ySW5kZXggPT0gLTEpCisgICAgQ1NTVmFsdWVJ
RCBzeXNDb2xvckluZGV4ID0gY3NzVmFsdWVJZFRvU3lzQ29sb3JJbmRleChjc3NWYWx1ZUlkKTsK
KyAgICBpZiAoc3lzQ29sb3JJbmRleCA9PSBDU1NWYWx1ZUludmFsaWQpCiAgICAgICAgIHJldHVy
biBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoY3NzVmFsdWVJZCk7CiAKICAgICBDT0xPUlJFRiBj
b2xvciA9IEdldFN5c0NvbG9yKHN5c0NvbG9ySW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVXaW4uaAppbmRleCA4NWJlOGYwZjM4YmYyMWU4ZWE3MzliMGU3ZjgwZWYz
NzRiMmVjNWQwLi45NTE0NTU0ZmMxNmEyZjIwMWM2OGU3ZmQyODhhMTZlZGI5MDFhMWZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaApAQCAtNjMsOCArNjMsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKCkgY29uc3Q7CiAKICAgICAvLyBTeXN0ZW0gZm9udHMuCi0gICAgdmlydHVh
bCB2b2lkIHN5c3RlbUZvbnQoaW50IHByb3BJZCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7Ci0g
ICAgdmlydHVhbCBDb2xvciBzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoQ1NTVmFsdWVJRCwgRm9udERlc2NyaXB0aW9uJikgY29u
c3Q7CisgICAgdmlydHVhbCBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEKSBjb25zdDsKIAog
ICAgIHZpcnR1YWwgYm9vbCBwYWludENoZWNrYm94KFJlbmRlck9iamVjdCogbywgY29uc3QgUGFp
bnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByKQogICAgIHsgcmV0dXJuIHBhaW50QnV0dG9uKG8s
IGksIHIpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5j
cHAKaW5kZXggMDU1YmUwYzk0ZDRmMjhkNzAwZjRmMzZhNDJkOGIxODhmMTk4YmUzMi4uOTA2ZTZm
Yzg3OTM2OGU4YmEzYjk3ZTJmMWEwNzdkNWZkY2NjN2JlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIGJvb2wg
UmVuZGVyVGhlbWVXaW5DRTo6cGFpbnRNZW51TGlzdEJ1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNv
bnN0IFBhaW50SW5mbyYgaSwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSZW5kZXJUaGVt
ZVdpbkNFOjpzeXN0ZW1Gb250KGludCBwcm9wSWQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2Ny
aXB0aW9uKSBjb25zdAordm9pZCBSZW5kZXJUaGVtZVdpbkNFOjpzeXN0ZW1Gb250KENTU1ZhbHVl
SUQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CkBAIC0yODQsNyArMjg0LDcgQEAgYm9vbCBSZW5kZXJUaGVtZVdpbkNF
OjpzdXBwb3J0c0hvdmVyKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3QKIH0KIAogLy8gTWFwIGEg
Q1NTVmFsdWUqIHN5c3RlbSBjb2xvciB0byBhbiBpbmRleCB1bmRlcnN0b29kIGJ5IEdldFN5c0Nv
bG9yCi1zdGF0aWMgaW50IGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgoaW50IGNzc1ZhbHVlSWQp
CitzdGF0aWMgQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkVG9TeXNDb2xvckluZGV4KENTU1ZhbHVlSUQg
Y3NzVmFsdWVJZCkKIHsKICAgICBzd2l0Y2ggKGNzc1ZhbHVlSWQpIHsKICAgICBjYXNlIENTU1Zh
bHVlQWN0aXZlYm9yZGVyOiByZXR1cm4gQ09MT1JfQUNUSVZFQk9SREVSOwpAQCAtMzE1LDE0ICsz
MTUsMTQgQEAgc3RhdGljIGludCBjc3NWYWx1ZUlkVG9TeXNDb2xvckluZGV4KGludCBjc3NWYWx1
ZUlkKQogICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3c6IHJldHVybiBDT0xPUl9XSU5ET1c7CiAgICAg
Y2FzZSBDU1NWYWx1ZVdpbmRvd2ZyYW1lOiByZXR1cm4gQ09MT1JfV0lORE9XRlJBTUU7CiAgICAg
Y2FzZSBDU1NWYWx1ZVdpbmRvd3RleHQ6IHJldHVybiBDT0xPUl9XSU5ET1dURVhUOwotICAgIGRl
ZmF1bHQ6IHJldHVybiAtMTsgLy8gVW5zdXBwb3J0ZWQgQ1NTVmFsdWUKKyAgICBkZWZhdWx0OiBy
ZXR1cm4gQ1NTVmFsdWVJbnZhbGlkOyAvLyBVbnN1cHBvcnRlZCBDU1NWYWx1ZQogICAgIH0KIH0K
IAotQ29sb3IgUmVuZGVyVGhlbWVXaW5DRTo6c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNv
bnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbkNFOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1Zh
bHVlSWQpIGNvbnN0CiB7Ci0gICAgaW50IHN5c0NvbG9ySW5kZXggPSBjc3NWYWx1ZUlkVG9TeXND
b2xvckluZGV4KGNzc1ZhbHVlSWQpOwotICAgIGlmIChzeXNDb2xvckluZGV4ID09IC0xKQorICAg
IENTU1ZhbHVlSUQgc3lzQ29sb3JJbmRleCA9IGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgoY3Nz
VmFsdWVJZCk7CisgICAgaWYgKHN5c0NvbG9ySW5kZXggPT0gQ1NTVmFsdWVJbnZhbGlkKQogICAg
ICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKGNzc1ZhbHVlSWQpOwogCiAgICAg
Q09MT1JSRUYgY29sb3IgPSBHZXRTeXNDb2xvcihzeXNDb2xvckluZGV4KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5oCmluZGV4IGJkZTg3MmM2Yzc2ZmNhMGI2
NzFhOTMyYmVkMDIzMGQzNzczMTk5MmYuLmMxYWI3YmU4MjI3ZjhlZDA1ZmYyMWJiMTM4ZTlmZjcz
ZDVkNGUyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZVdpbkNFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luQ0Uu
aApAQCAtNjIsOCArNjIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
Q29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0Owog
CiAgICAgICAgIC8vIFN5c3RlbSBmb250cy4KLSAgICAgICAgdmlydHVhbCB2b2lkIHN5c3RlbUZv
bnQoaW50IHByb3BJZCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwg
Q29sb3Igc3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0OworICAgICAgICB2aXJ0dWFs
IHZvaWQgc3lzdGVtRm9udChDU1NWYWx1ZUlELCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKKyAg
ICAgICAgdmlydHVhbCBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEKSBjb25zdDsKIAogICAg
ICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDaGVja2JveChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBh
aW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcikKICAgICAgICAgeyByZXR1cm4gcGFpbnRCdXR0
b24obywgaSwgcik7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205099</attachid>
            <date>2013-06-20 09:35:10 -0700</date>
            <delta_ts>2013-06-20 10:14:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117829-20130620133316.patch</filename>
            <type>text/plain</type>
            <size>328253</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxNzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFkMmRlYjA4ZDFkMDIz
MGYyNWVjZGZkZDA4NTg5N2QyYTU1NzAwNy4uYTIwNWU0YzdkN2IzNzk5YWUwY2VmM2JlMGJkNzhj
ZTc2YzZmYzdkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwNCBAQAorMjAxMy0wNi0yMCAgQWxl
eGlzIE1lbmFyZCAgPGFsZXhpc0B3ZWJraXQub3JnPgorCisgICAgICAgIENsZWFudXAgdXNhZ2Ug
b2YgQ1NTUHJvcGVydHlJRCBhbmQgQ1NTVmFsdWVJRCBpbnNpZGUgV2ViS2l0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3ODI5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBsb3Qgb2YgY2FsbCBzaXRl
cyB3ZXJlIHVzaW5nIGludGVnZXJzIHRvIHJlcHJlc2VudCB0aGVtLiBXaGlsZSBpdCdzCisgICAg
ICAgIG5vdCBpbmNvcnJlY3QgcGVyIHNheSwgaXQncyBub3QgaWRlYWwgZm9yIHZhcmlvdXMgcmVh
c29uIHN1Y2ggYXMgdHlwZQorICAgICAgICBzYWZldHkgb3IgdG8gcmVtb3ZlIGFtYmlndWl0eS4K
KworICAgICAgICBUaGlzIHBhdGNoIGVyYWRpY2F0ZSB0aGUgd3JvbmcgdXNhZ2UgYnkgbm90IGxl
dHRpbmcgYW55IGludGVnZXIgYmFzZWQKKyAgICAgICAgQVBJIGZvciBnZXR0aW5nIENTU1ZhbHVl
SURzIG9yIENTU1Byb3BlcnR5SURzIGZyb20gQ1NTUHJpbWl0aXZlVmFsdWVzLgorCisgICAgICAg
IEluc3RlYWQgd2UgdXNlIG5ldyBidXQgdHlwZWQgZnVuY3Rpb25zIHRvIGNvbnN0cnVjdCB0aGUg
dmFsdWVzIGFzIHdlbGwKKyAgICAgICAgYXMgZ2V0dGluZyB0aGVtLiBUd28gY3VzdG9tcyBhbmQg
aW50ZXJuYWwgdHlwZXMgd2VyZSBhZGRlZCB0byBDU1NQcmltaXRpdmVWYWx1ZQorICAgICAgICB0
byBoYW5kbGUgY29ycmVjdGx5IHRoZSBuZXcgQVBJcy4KKworICAgICAgICBJdCdzIGdvb2QgdG8g
bm90ZSB0aGF0IGluIG9yZGVyIHRvIHByZXNlcnZlIGNvbXBhdGliaWxpdHkgb24gdGhlCisgICAg
ICAgIENTU1ByaW1pdGl2ZVZhbHVlIHR5cGUgd2hlbmV2ZXIgQ1NTUHJpbWl0aXZlVmFsdWUgaGFu
ZGxlcyBhIENTU1ZhbHVlSUQKKyAgICAgICAgb3IgYSBDU1NQcm9wZXJ0eUlEIHRoZSByZXR1cm4g
dHlwZSBmb3IgdGhlIHB1YmxpYyBBUEkgd2lsbCBiZSBDU1NfSURFTlQKKyAgICAgICAgZGVzcGl0
ZSBpdCBpcyBhIHNlcGFyYXRlIGludGVybmFsIHR5cGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
OiByZWZhY3RvciwgZXhpc3RpbmcgdGVzdHMgc2hvdWxkIGNvdmVyLgorCisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21w
dXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eU1hdGNoZXMpOgorICAgICAgICAqIGNzcy9DU1NG
b250U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjphZGRG
b250RmFjZVJ1bGUpOgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnBvc2l0aW9uRnJvbVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xp
bmVhckdyYWRpZW50VmFsdWU6OmN1c3RvbUNzc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TGluZWFyR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjcmVhdGVHcmFkaWVudCk6CisgICAgICAgICogY3Nz
L0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU3lzdGVt
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6aXNGaWxsUG9zaXRpb25LZXl3b3JkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2U0VmFsdWVzRmlsbFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2UzVmFsdWVzRmlsbFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZpbGxSZXBlYXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZVJhZGlhbEdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6aXNCbGVuZE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjppc0NvbXBvc2l0
ZU9wZXJhdG9yKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NT
U1BhcnNlclZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJWYWx1ZTo6Y3Jl
YXRlQ1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjppc1ZhbGlkQ1NTVW5pdFR5cGVGb3JEb3VibGVDb252ZXJzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpwcmltaXRpdmVUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnByb3BlcnR5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjbGVhbnVwKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpnZXRTdHJpbmdWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y2xvbmVGb3JDU1NPTSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6ZXF1YWxzKToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppc0ZvbnRS
ZWxhdGl2ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNW
YWx1ZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVQYXJz
ZXJPcGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0UHJv
cGVydHlJRCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0VmFsdWVJ
RCk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ1NTUmVmbGVjdGlvbkRpcmVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29s
dW1uU3Bhbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
UHJpbnRDb2xvckFkanVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRUJvcmRlclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBPdXRsaW5lSXNBdXRvKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBDb21wb3NpdGVPcGVyYXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29udHJvbFBhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCYWNrZmFjZVZpc2liaWxpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGaWxsQXR0YWNo
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZp
bGxCb3gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVG
aWxsUmVwZWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFQm94UGFjayk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRUJveEFsaWdubWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRUJveERlY29yYXRpb25CcmVhayk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgQmFja2dyb3VuZEVkZ2VPcmlnaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hTaXppbmcpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hEaXJlY3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hMaW5lcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveE9yaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUNhcHRpb25T
aWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ2xl
YXIpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDdXJz
b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEN1cnNv
clZpc2liaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFRW1wdHlDZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFQWxpZ25JdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRUp1c3RpZnlDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxleERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWduQ29udGVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZsZXhXcmFwKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxvYXQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVCcmVhayk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUxpc3RTdHlsZVBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTGlzdFN0eWxl
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU1h
cmdpbkNvbGxhcHNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFTWFycXVlZUJlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBSZWdpb25GcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU1hcnF1ZWVEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVOQlNQTW9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU92ZXJmbG93KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUGFnZUJyZWFrKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVSZXNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUYWJsZUxheW91dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRBbGlnbik6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEFsaWdu
TGFzdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4
dEp1c3RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFRleHREZWNvcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBUZXh0RGVjb3JhdGlvblN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0VW5kZXJsaW5lUG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0U2VjdXJpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0VHJhbnNmb3JtKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVW5pY29kZUJp
ZGkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2Vy
RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVz
ZXJNb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVVc2VyU2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFVmVydGljYWxBbGlnbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRVZpc2liaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVXaGl0ZVNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFV29yZEJyZWFrKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFT3ZlcmZsb3dXcmFwKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcml0aW5nTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dENvbWJpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJ1YnlQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEVtcGhh
c2lzUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFRleHRPdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgVGV4dEVtcGhhc2lzRmlsbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEVtcGhhc2lzTWFyayk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dE9yaWVudGF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUG9pbnRlckV2ZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udERlc2NyaXB0aW9u
OjpLZXJuaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBGb250U21vb3RoaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRm9udFdlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgRm9udEl0YWxpYyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRm9udFNtYWxsQ2Fwcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFJlbmRlcmluZ01vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbG9yU3BhY2UpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEh5cGhlbnMpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVTbmFwKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQWxpZ24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFU3BlYWspOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJsZW5kTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUNhcCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUpvaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdpbmRSdWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQWxpZ25tZW50QmFzZWxp
bmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3Jk
ZXJDb2xsYXBzZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRUJvcmRlckZpdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRUltYWdlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBFVHJhbnNmb3JtU3R5bGUzRCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uQXhpcyk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uUHJvZ3Jlc3Npb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdyYXBGbG93KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcmFwVGhyb3VnaCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgR3JpZEF1dG9GbG93KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjb252ZXJ0VG9MZW5ndGgpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCdWZmZXJlZFJl
bmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
RUNvbG9ySW50ZXJwb2xhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRUNvbG9yUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFRG9taW5hbnRCYXNlbGluZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVNoYXBlUmVuZGVyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVGV4dEFuY2hvcik6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgU1ZHV3JpdGluZ01vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVWZWN0b3JF
ZmZlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVN
YXNrVHlwZSk6CisgICAgICAgICogY3NzL0NTU1RvU3R5bGVNYXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVG9TdHlsZU1hcDo6bWFwRmlsbEF0dGFjaG1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTVG9TdHlsZU1hcDo6bWFwRmlsbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9T
dHlsZU1hcDo6bWFwQW5pbWF0aW9uRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Rv
U3R5bGVNYXA6Om1hcEFuaW1hdGlvbkZpbGxNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Rv
U3R5bGVNYXA6Om1hcEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvbk5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
VG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uUGxheVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvblByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1RvU3R5bGVNYXA6Om1hcE5pbmVQaWVjZUltYWdlUXVhZCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NUb1N0eWxlTWFwOjptYXBOaW5lUGllY2VJbWFnZVJlcGVhdCk6CisgICAgICAgICog
Y3NzL0NvdW50ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvdW50ZXI6Omxpc3RTdHlsZUlkZW50
KToKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVByb3BlcnR5TnVtYmVyOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGx5UHJvcGVydHlBdXRvOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGx5UHJvcGVydHlDbGlwOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJv
cGVydHlDb2xvcjo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5
TGVuZ3RoOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlTdHJp
bmc6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUNvbXB1dGVM
ZW5ndGg6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUZvbnRG
YW1pbHk6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUZvbnRT
aXplOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlGb250V2Vp
Z2h0OjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlGb250VmFy
aWFudExpZ2F0dXJlczo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3Bl
cnR5Q291bnRlcjo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5
Q3Vyc29yOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0
QWxpZ246OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eU1hcnF1
ZWVJbmNyZW1lbnQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eU1hcnF1ZWVSZXBldGl0aW9uOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5
UHJvcGVydHlNYXJxdWVlU3BlZWQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlQcm9wZXJ0eUxpbmVIZWlnaHQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlQcm9wZXJ0eVBhZ2VTaXplOjpnZXRQYWdlU2l6ZUZyb21OYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGx5UHJvcGVydHlQYWdlU2l6ZTo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBseVByb3BlcnR5VGV4dEVtcGhhc2lzU3R5bGU6OmFwcGx5VmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVJlc2l6ZTo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpBcHBseVByb3BlcnR5VmVydGljYWxBbGlnbjo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVByb3BlcnR5Wm9vbTo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBseVByb3BlcnR5Q2xpcFBhdGg6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbHlQcm9wZXJ0eVNoYXBlOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5
UHJvcGVydHlJbWFnZVJlc29sdXRpb246OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAqIGNzcy9NZWRp
YVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9yaWVudGF0aW9uTWVkaWFG
ZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjp2aWV3X21vZGVNZWRpYUZlYXR1cmVFdmFs
KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50ZXJNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAg
KiBjc3MvU1ZHQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VTVkdWYWx1ZSk6CisgICAgICAgICogY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlTVkdQcm9wZXJ0eSk6CisgICAgICAg
ICogY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9w
ZXJ0eVNldDo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKToKKyAgICAgICAgKiBjc3MvU3R5bGVS
ZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVHcmlkVHJhY2tCcmVhZHRoKToK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdyaWRUcmFja0xpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlR3JpZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29sb3JGb3JDU1NWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xvckZyb21QcmltaXRpdmVWYWx1ZUlz
RGVyaXZlZEZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNv
bG9yRnJvbVByaW1pdGl2ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbldpdGhJbmxpbmVTeW50YXgpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y3JlYXRlRmlsdGVyT3BlcmF0aW9ucyk6CisgICAgICAg
ICogY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWV3
cG9ydFN0eWxlUmVzb2x2ZXI6OmdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZSk6CisgICAgICAgICog
Y3NzL1dlYktpdENTU01hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRy
aXg6OnNldE1hdHJpeFZhbHVlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSWRlbnRpZmllcik6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aWRlbnRpZmllckZvclN0eWxl
UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRFcXVpdmFsZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRFcXVpdmFsZW50OjpIVE1MRWxlbWVu
dEVxdWl2YWxlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRFcXVpdmFsZW50Ojp2
YWx1ZUlzUHJlc2VudEluU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHREZWNvcmF0
aW9uRXF1aXZhbGVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0RGVjb3Jh
dGlvbkVxdWl2YWxlbnQ6OkhUTUxUZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdGluZ1N0eWxlOjp0ZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRpbmdTdHlsZTo6cHJlcGFyZVRvQXBwbHlBdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
aW5nU3R5bGU6OnRleHREaXJlY3Rpb25Gb3JTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Zm9udFdlaWdodElzQm9sZCk6CisgICAgICAgIChXZWJDb3JlOjpsZWdhY3lGb250U2l6ZUZyb21D
U1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjppc1RyYW5zcGFyZW50Q29sb3JWYWx1ZSk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuaDoKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1
cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1JlbmRlclRoZW1lQmxhY2tCZXJyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUJsYWNrQmVycnk6OnN5c3RlbUZvbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvUmVuZGVyVGhlbWVCbGFja0JlcnJ5Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUJsYWNrQmVycnk6OnN5c3RlbUZvbnQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OnN5c3RlbUZvbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2JsYWNrYmVycnkvUmVuZGVyVGhlbWVFZmwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lRWZsOjpzeXN0ZW1Gb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVH
dGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnN5c3RlbUZvbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVHdGs6OnN5c3RlbUNvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVH
dGszLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpzeXN0ZW1Db2xvcik6
CisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZVF0OjpzeXN0ZW1Gb250KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lUXQ6OnN5c3RlbUNvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVt
ZVF0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lOjpzeXN0ZW1Db2xvcik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnN5c3RlbUZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVN
YWM6OnN5c3RlbUNvbG9yKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmku
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lU2FmYXJpOjpzeXN0ZW1Gb250KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVTYWZhcmk6OnN5c3RlbUZvbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbjo6c3lz
dGVtRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlkVG9TeXNDb2xvckluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV2luOjpzeXN0ZW1Db2xvcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lV2luQ0UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVXaW5DRTo6c3lz
dGVtRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlkVG9TeXNDb2xvckluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV2luQ0U6OnN5c3RlbUNvbG9yKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5oOgorCiAyMDEzLTA2LTIwICBHcnplZ29y
eiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgogCiAgICAgICAgIGJhY2tn
cm91bmQtY29sb3IgYW5kIHRleHQtZGVjb3JhdGlvbiBhcmUgbm90IHByZXNlcnZlZCB3aGVuIG1l
cmdpbmcgcGFyYWdyYXBocwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBiMmVkMjgyMWFhN2Y0MzU5YWI3NzZkMDNhOWRlNGQw
NWRmMDIxNzkyLi4zZTkzOTBhM2NhNTRhMmFiMTQyNTExM2MwYThhZmI1ZTJkOWZjYWZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cApAQCAtMjk2OSw5ICsyOTY5LDkgQEAgYm9vbCBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9w
ZXJ0eU1hdGNoZXMoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBjb25zdCBDU1MKICAgICAgICAg
bV9ub2RlLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKICAgICAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gbV9ub2RlLT5jb21wdXRlZFN0eWxlKG1f
cHNldWRvRWxlbWVudFNwZWNpZmllcik7CiAgICAgICAgIGlmIChzdHlsZSAmJiBzdHlsZS0+Zm9u
dERlc2NyaXB0aW9uKCkua2V5d29yZFNpemUoKSkgewotICAgICAgICAgICAgaW50IHNpemVWYWx1
ZSA9IGNzc0lkZW50aWZpZXJGb3JGb250U2l6ZUtleXdvcmQoc3R5bGUtPmZvbnREZXNjcmlwdGlv
bigpLmtleXdvcmRTaXplKCkpOworICAgICAgICAgICAgQ1NTVmFsdWVJRCBzaXplVmFsdWUgPSBj
c3NJZGVudGlmaWVyRm9yRm9udFNpemVLZXl3b3JkKHN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5r
ZXl3b3JkU2l6ZSgpKTsKICAgICAgICAgICAgIGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlKiBwcmlt
aXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUp
OwotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc0lkZW50KCkgJiYgcHJpbWl0aXZl
VmFsdWUtPmdldElkZW50KCkgPT0gc2l6ZVZhbHVlKQorICAgICAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5pc1ZhbHVlSUQoKSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IHNp
emVWYWx1ZSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKaW5kZXggYjA0MDJmMjBkOTZjODc1
NTI4YWZiYjEzZjdjMjUzYmYyMzIxNWEyMS4uMzUxZDQ0MzIyMjE0MWViOWZkOTcyZTNiYTIzMDE0
NjNjNDQyYWQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKQEAgLTEx
NSw3ICsxMTUsNyBAQCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNvbnN0
IFN0eWxlUnVsZUZvbnRGYWNlKiBmb250RmFjZVJ1bGUpCiAgICAgICAgIGlmICghZm9udFN0eWxl
LT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgc3dp
dGNoIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGZvbnRTdHlsZS5nZXQoKSktPmdl
dElkZW50KCkpIHsKKyAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZSo+KGZvbnRTdHlsZS5nZXQoKSktPmdldFZhbHVlSUQoKSkgewogICAgICAgICBjYXNlIENTU1Zh
bHVlTm9ybWFsOgogICAgICAgICAgICAgdHJhaXRzTWFzayB8PSBGb250U3R5bGVOb3JtYWxNYXNr
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMzMsNyArMTMzLDcgQEAgdm9pZCBDU1NGb250U2Vs
ZWN0b3I6OmFkZEZvbnRGYWNlUnVsZShjb25zdCBTdHlsZVJ1bGVGb250RmFjZSogZm9udEZhY2VS
dWxlKQogICAgICAgICBpZiAoIWZvbnRXZWlnaHQtPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4oZm9udFdlaWdodC5nZXQoKSktPmdldElkZW50KCkpIHsKKyAgICAgICAgc3dpdGNo
IChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGZvbnRXZWlnaHQuZ2V0KCkpLT5nZXRW
YWx1ZUlEKCkpIHsKICAgICAgICAgY2FzZSBDU1NWYWx1ZUJvbGQ6CiAgICAgICAgIGNhc2UgQ1NT
VmFsdWU3MDA6CiAgICAgICAgICAgICB0cmFpdHNNYXNrIHw9IEZvbnRXZWlnaHQ3MDBNYXNrOwpA
QCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUo
Y29uc3QgU3R5bGVSdWxlRm9udEZhY2UqIGZvbnRGYWNlUnVsZSkKICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtVmFyaWFudHM7ICsraSkg
ewotICAgICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZh
cmlhbnRMaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkpKS0+Z2V0SWRlbnQoKSkgeworICAg
ICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhcmlhbnRM
aXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkpKS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAg
ICAgICAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgICAgICAgICAgICAgdHJhaXRz
TWFzayB8PSBGb250VmFyaWFudE5vcm1hbE1hc2s7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMjY2LDEyICsyNjYsMTIgQEAgdm9pZCBDU1NGb250U2VsZWN0b3I6OmFkZEZvbnRGYWNl
UnVsZShjb25zdCBTdHlsZVJ1bGVGb250RmFjZSogZm9udEZhY2VSdWxlKQogICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgZmFtaWx5TGVuZ3RoOyBpKyspIHsKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFs
dWUqIGl0ZW0gPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGZhbWlseUxpc3QtPml0
ZW1XaXRob3V0Qm91bmRzQ2hlY2soaSkpOwogICAgICAgICBTdHJpbmcgZmFtaWx5TmFtZTsKLSAg
ICAgICAgaWYgKGl0ZW0tPmlzU3RyaW5nKCkpCisgICAgICAgIGlmIChpdGVtLT5pc1N0cmluZygp
KSB7CiAgICAgICAgICAgICBmYW1pbHlOYW1lID0gaXRlbS0+Z2V0U3RyaW5nVmFsdWUoKTsKLSAg
ICAgICAgZWxzZSBpZiAoaXRlbS0+aXNJZGVudCgpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoaXRl
bS0+aXNWYWx1ZUlEKCkpIHsKICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gdXNlIHRoZSByYXcg
dGV4dCBmb3IgYWxsIHRoZSBnZW5lcmljIGZhbWlseSB0eXBlcywgc2luY2UgQGZvbnQtZmFjZSBp
cyBhIHdheSBvZiBhY3R1YWxseQogICAgICAgICAgICAgLy8gZGVmaW5pbmcgd2hhdCBmb250IHRv
IHVzZSBmb3IgdGhvc2UgdHlwZXMuCi0gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0tPmdldElkZW50
KCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoaXRlbS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAg
ICAgICAgICAgY2FzZSBDU1NWYWx1ZVNlcmlmOgogICAgICAgICAgICAgICAgICAgICBmYW1pbHlO
YW1lID0gc2VyaWZGYW1pbHk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCmluZGV4IDY2MDgzN2Y1ZmI4MDFmMzFlOTFlZmIw
Y2QzZjQxMmJlNWE4MmQ3MjQuLjUwMDU5OGJkOTY1NDZlMzI3OTBlNjk2NGY2MDM0ZTA4NzJlNDFj
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTQwOCw3ICs0
MDgsNyBAQCBzdGF0aWMgZmxvYXQgcG9zaXRpb25Gcm9tVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUq
IHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFJlbgogICAgIGlmICh2YWx1ZS0+aXNDYWxjdWxh
dGVkUGVyY2VudGFnZVdpdGhMZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIHZhbHVlLT5jc3NDYWxj
VmFsdWUoKS0+dG9DYWxjVmFsdWUoc3R5bGUsIHJvb3RTdHlsZSwgc3R5bGUtPmVmZmVjdGl2ZVpv
b20oKSktPmV2YWx1YXRlKGVkZ2VEaXN0YW5jZSk7CiAKLSAgICBzd2l0Y2ggKHZhbHVlLT5nZXRJ
ZGVudCgpKSB7CisgICAgc3dpdGNoICh2YWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZVRvcDoKICAgICAgICAgQVNTRVJUKCFpc0hvcml6b250YWwpOwogICAgICAgICByZXR1
cm4gMDsKQEAgLTQyMSw2ICs0MjEsOCBAQCBzdGF0aWMgZmxvYXQgcG9zaXRpb25Gcm9tVmFsdWUo
Q1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFJlbgogICAgIGNh
c2UgQ1NTVmFsdWVSaWdodDoKICAgICAgICAgQVNTRVJUKGlzSG9yaXpvbnRhbCk7CiAgICAgICAg
IHJldHVybiBzaXplLndpZHRoKCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogCiAgICAgcmV0dXJuIHZhbHVlLT5jb21wdXRlTGVuZ3RoPGZsb2F0PihzdHlsZSwgcm9vdFN0
eWxlLCB6b29tRmFjdG9yKTsKQEAgLTU0MCw3ICs1NDIsNyBAQCBTdHJpbmcgQ1NTTGluZWFyR3Jh
ZGllbnRWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiAgICAgICAgIGlmIChtX2FuZ2xlICYm
IG1fYW5nbGUtPmNvbXB1dGVEZWdyZWVzKCkgIT0gMTgwKSB7CiAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKG1fYW5nbGUtPmNzc1RleHQoKSk7CiAgICAgICAgICAgICB3cm90ZVNvbWV0aGluZyA9
IHRydWU7Ci0gICAgICAgIH0gZWxzZSBpZiAoKG1fZmlyc3RYIHx8IG1fZmlyc3RZKSAmJiAhKCFt
X2ZpcnN0WCAmJiBtX2ZpcnN0WSAmJiBtX2ZpcnN0WS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUJv
dHRvbSkpIHsKKyAgICAgICAgfSBlbHNlIGlmICgobV9maXJzdFggfHwgbV9maXJzdFkpICYmICEo
IW1fZmlyc3RYICYmIG1fZmlyc3RZICYmIG1fZmlyc3RZLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVCb3R0b20pKSB7CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgidG8gIik7CiAg
ICAgICAgICAgICBpZiAobV9maXJzdFggJiYgbV9maXJzdFkpIHsKICAgICAgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKG1fZmlyc3RYLT5jc3NUZXh0KCkpOwpAQCAtNjc3LDkgKzY3OSw5IEBAIFBh
c3NSZWZQdHI8R3JhZGllbnQ+IENTU0xpbmVhckdyYWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50
KFJlbmRlck9iamVjdCogcmVuZGVyCiAgICAgICAgICAgICAgICAgLy8gIk1hZ2ljIiBjb3JuZXJz
LCBzbyB0aGUgNTAlIGxpbmUgdG91Y2hlcyB0d28gY29ybmVycy4KICAgICAgICAgICAgICAgICBm
bG9hdCByaXNlID0gc2l6ZS53aWR0aCgpOwogICAgICAgICAgICAgICAgIGZsb2F0IHJ1biA9IHNp
emUuaGVpZ2h0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKG1fZmlyc3RYICYmIG1fZmlyc3RYLT5n
ZXRJZGVudCgpID09IENTU1ZhbHVlTGVmdCkKKyAgICAgICAgICAgICAgICBpZiAobV9maXJzdFgg
JiYgbV9maXJzdFgtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUxlZnQpCiAgICAgICAgICAgICAg
ICAgICAgIHJ1biAqPSAtMTsKLSAgICAgICAgICAgICAgICBpZiAobV9maXJzdFkgJiYgbV9maXJz
dFktPmdldElkZW50KCkgPT0gQ1NTVmFsdWVCb3R0b20pCisgICAgICAgICAgICAgICAgaWYgKG1f
Zmlyc3RZICYmIG1fZmlyc3RZLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVCb3R0b20pCiAgICAg
ICAgICAgICAgICAgICAgIHJpc2UgKj0gLTE7CiAgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSBh
bmdsZSwgYW5kIGZsaXAgaXQgYmFjayB0byAiYmVhcmluZyBhbmdsZSIgZGVncmVlcy4KICAgICAg
ICAgICAgICAgICBmbG9hdCBhbmdsZSA9IDkwIC0gcmFkMmRlZyhhdGFuMihyaXNlLCBydW4pKTsK
QEAgLTgzMywxMiArODM1LDEyIEBAIFN0cmluZyBDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjdXN0
b21Dc3NUZXh0KCkgY29uc3QKIAogICAgICAgICAvLyBUaGUgb25seSBhbWJpZ3VvdXMgY2FzZSB0
aGF0IG5lZWRzIGFuIGV4cGxpY2l0IHNoYXBlIHRvIGJlIHByb3ZpZGVkCiAgICAgICAgIC8vIGlz
IHdoZW4gYSBzaXppbmcga2V5d29yZCBpcyB1c2VkIChvciBhbGwgc2l6aW5nIGlzIG9taXR0ZWQp
LgotICAgICAgICBpZiAobV9zaGFwZSAmJiBtX3NoYXBlLT5nZXRJZGVudCgpICE9IENTU1ZhbHVl
RWxsaXBzZSAmJiAobV9zaXppbmdCZWhhdmlvciB8fCAoIW1fc2l6aW5nQmVoYXZpb3IgJiYgIW1f
ZW5kSG9yaXpvbnRhbFNpemUpKSkgeworICAgICAgICBpZiAobV9zaGFwZSAmJiBtX3NoYXBlLT5n
ZXRWYWx1ZUlEKCkgIT0gQ1NTVmFsdWVFbGxpcHNlICYmIChtX3NpemluZ0JlaGF2aW9yIHx8ICgh
bV9zaXppbmdCZWhhdmlvciAmJiAhbV9lbmRIb3Jpem9udGFsU2l6ZSkpKSB7CiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiY2lyY2xlIik7CiAgICAgICAgICAgICB3cm90ZVNvbWV0
aGluZyA9IHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobV9zaXppbmdCZWhhdmlvciAm
JiBtX3NpemluZ0JlaGF2aW9yLT5nZXRJZGVudCgpICE9IENTU1ZhbHVlRmFydGhlc3RDb3JuZXIp
IHsKKyAgICAgICAgaWYgKG1fc2l6aW5nQmVoYXZpb3IgJiYgbV9zaXppbmdCZWhhdmlvci0+Z2V0
VmFsdWVJRCgpICE9IENTU1ZhbHVlRmFydGhlc3RDb3JuZXIpIHsKICAgICAgICAgICAgIGlmICh3
cm90ZVNvbWV0aGluZykKICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKG1fc2l6aW5nQmVoYXZpb3ItPmNzc1RleHQoKSk7CkBAIC0x
MDE4LDE0ICsxMDIwLDE0IEBAIFBhc3NSZWZQdHI8R3JhZGllbnQ+IENTU1JhZGlhbEdyYWRpZW50
VmFsdWU6OmNyZWF0ZUdyYWRpZW50KFJlbmRlck9iamVjdCogcmVuZGVyCiAgICAgfSBlbHNlIHsK
ICAgICAgICAgZW51bSBHcmFkaWVudFNoYXBlIHsgQ2lyY2xlLCBFbGxpcHNlIH07CiAgICAgICAg
IEdyYWRpZW50U2hhcGUgc2hhcGUgPSBFbGxpcHNlOwotICAgICAgICBpZiAoKG1fc2hhcGUgJiYg
bV9zaGFwZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUNpcmNsZSkKKyAgICAgICAgaWYgKChtX3No
YXBlICYmIG1fc2hhcGUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUNpcmNsZSkKICAgICAgICAg
ICAgIHx8ICghbV9zaGFwZSAmJiAhbV9zaXppbmdCZWhhdmlvciAmJiBtX2VuZEhvcml6b250YWxT
aXplICYmICFtX2VuZFZlcnRpY2FsU2l6ZSkpCiAgICAgICAgICAgICBzaGFwZSA9IENpcmNsZTsK
IAogICAgICAgICBlbnVtIEdyYWRpZW50RmlsbCB7IENsb3Nlc3RTaWRlLCBDbG9zZXN0Q29ybmVy
LCBGYXJ0aGVzdFNpZGUsIEZhcnRoZXN0Q29ybmVyIH07CiAgICAgICAgIEdyYWRpZW50RmlsbCBm
aWxsID0gRmFydGhlc3RDb3JuZXI7CiAKLSAgICAgICAgc3dpdGNoIChtX3NpemluZ0JlaGF2aW9y
ID8gbV9zaXppbmdCZWhhdmlvci0+Z2V0SWRlbnQoKSA6IDApIHsKKyAgICAgICAgc3dpdGNoICht
X3NpemluZ0JlaGF2aW9yID8gbV9zaXppbmdCZWhhdmlvci0+Z2V0VmFsdWVJRCgpIDogMCkgewog
ICAgICAgICBjYXNlIENTU1ZhbHVlQ29udGFpbjoKICAgICAgICAgY2FzZSBDU1NWYWx1ZUNsb3Nl
c3RTaWRlOgogICAgICAgICAgICAgZmlsbCA9IENsb3Nlc3RTaWRlOwpAQCAtMTA0MCw2ICsxMDQy
LDggQEAgUGFzc1JlZlB0cjxHcmFkaWVudD4gQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3JlYXRl
R3JhZGllbnQoUmVuZGVyT2JqZWN0KiByZW5kZXIKICAgICAgICAgY2FzZSBDU1NWYWx1ZUZhcnRo
ZXN0Q29ybmVyOgogICAgICAgICAgICAgZmlsbCA9IEZhcnRoZXN0Q29ybmVyOwogICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogCiAgICAgICAgIC8vIE5vdyBjb21wdXRlIHRoZSBlbmQgcmFkaWkgYmFzZWQgb24gdGhlIHNl
Y29uZCBwb2ludCwgc2hhcGUgYW5kIGZpbGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4
IGYzODYxNzM2NjI4ZTkxNGM4NDBlMTNlZTQ5ZjgzY2ZiN2YzNjFmNzguLmNhODJjNTExYmU5MmVk
MGVhYmY5YWE2MmU5MGYzOGNiMTZhNmQzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBA
IC0xNDAwLDcgKzE0MDAsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VTeXN0ZW1Db2xvcihSR0JB
MzImIGNvbG9yLCBjb25zdCBTdHJpbmcmIHN0cmluZywgRG9jdW1lbnQqCiAKICAgICBDU1NQYXJz
ZXJTdHJpbmcgY3NzQ29sb3I7CiAgICAgY3NzQ29sb3IuaW5pdChzdHJpbmcpOwotICAgIGludCBp
ZCA9IGNzc1ZhbHVlS2V5d29yZElEKGNzc0NvbG9yKTsKKyAgICBDU1NWYWx1ZUlEIGlkID0gY3Nz
VmFsdWVLZXl3b3JkSUQoY3NzQ29sb3IpOwogICAgIGlmIChpZCA8PSAwKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKQEAgLTM5MzMsNyArMzkzMyw3IEBAIHN0YXRpYyBib29sIGlzVmFsdWVDb25m
bGljdGluZ1dpdGhDdXJyZW50RWRnZShpbnQgdmFsdWUxLCBpbnQgdmFsdWUyKQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotc3RhdGljIGJvb2wgaXNGaWxsUG9zaXRpb25LZXl3b3JkKGludCB2YWx1
ZSkKK3N0YXRpYyBib29sIGlzRmlsbFBvc2l0aW9uS2V5d29yZChDU1NWYWx1ZUlEIHZhbHVlKQog
ewogICAgIHJldHVybiB2YWx1ZSA9PSBDU1NWYWx1ZUxlZnQgfHwgdmFsdWUgPT0gQ1NTVmFsdWVU
b3AgfHwgdmFsdWUgPT0gQ1NTVmFsdWVCb3R0b20gfHwgdmFsdWUgPT0gQ1NTVmFsdWVSaWdodCB8
fCB2YWx1ZSA9PSBDU1NWYWx1ZUNlbnRlcjsKIH0KQEAgLTM5NDIsNyArMzk0Miw3IEBAIHZvaWQg
Q1NTUGFyc2VyOjpwYXJzZTRWYWx1ZXNGaWxsUG9zaXRpb24oQ1NTUGFyc2VyVmFsdWVMaXN0KiB2
YWx1ZUxpc3QsIFJlZlB0cjxDCiB7CiAgICAgLy8gWyBsZWZ0IHwgcmlnaHQgXSBbIDxwZXJjZW50
YWdlXSB8IDxsZW5ndGg+IF0gJiYgWyB0b3AgfCBib3R0b20gXSBbIDxwZXJjZW50YWdlPiB8IDxs
ZW5ndGg+IF0KICAgICAvLyBJbiB0aGUgY2FzZSBvZiA0IHZhbHVlcyA8cG9zaXRpb24+IHJlcXVp
cmVzIHRoZSBzZWNvbmQgdmFsdWUgdG8gYmUgYSBsZW5ndGggb3IgYSBwZXJjZW50YWdlLgotICAg
IGlmIChpc0ZpbGxQb3NpdGlvbktleXdvcmQocGFyc2VkVmFsdWUyLT5nZXRJZGVudCgpKSkKKyAg
ICBpZiAoaXNGaWxsUG9zaXRpb25LZXl3b3JkKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJRCgpKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgdW5zaWduZWQgY3VtdWxhdGl2ZUZsYWdzID0gMDsKQEAg
LTM5NTEsOCArMzk1MSw4IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZTRWYWx1ZXNGaWxsUG9zaXRp
b24oQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0cjxDCiAgICAgaWYgKCF2YWx1
ZTMpCiAgICAgICAgIHJldHVybjsKIAotICAgIGludCBpZGVudDEgPSBwYXJzZWRWYWx1ZTEtPmdl
dElkZW50KCk7Ci0gICAgaW50IGlkZW50MyA9IHZhbHVlMy0+Z2V0SWRlbnQoKTsKKyAgICBDU1NW
YWx1ZUlEIGlkZW50MSA9IHBhcnNlZFZhbHVlMS0+Z2V0VmFsdWVJRCgpOworICAgIENTU1ZhbHVl
SUQgaWRlbnQzID0gdmFsdWUzLT5nZXRWYWx1ZUlEKCk7CiAKICAgICBpZiAoaWRlbnQxID09IENT
U1ZhbHVlQ2VudGVyKQogICAgICAgICByZXR1cm47CkBAIC0zOTc1LDcgKzM5NzUsNyBAQCB2b2lk
IENTU1BhcnNlcjo6cGFyc2U0VmFsdWVzRmlsbFBvc2l0aW9uKENTU1BhcnNlclZhbHVlTGlzdCog
dmFsdWVMaXN0LCBSZWZQdHI8QwogICAgICAgICByZXR1cm47CiAKICAgICAvLyA0dGggdmFsdWUg
bXVzdCBiZSBhIGxlbmd0aCBvciBhIHBlcmNlbnRhZ2UuCi0gICAgaWYgKGlzRmlsbFBvc2l0aW9u
S2V5d29yZCh2YWx1ZTQtPmdldElkZW50KCkpKQorICAgIGlmIChpc0ZpbGxQb3NpdGlvbktleXdv
cmQodmFsdWU0LT5nZXRWYWx1ZUlEKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICB2YWx1ZTEg
PSBjcmVhdGVQcmltaXRpdmVWYWx1ZVBhaXIocGFyc2VkVmFsdWUxLCBwYXJzZWRWYWx1ZTIpOwpA
QCAtMzk5OSw5ICszOTk5LDkgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlM1ZhbHVlc0ZpbGxQb3Np
dGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCwgUmVmUHRyPEMKICAgICB2YWx1ZUxp
c3QtPm5leHQoKTsKIAogICAgIGJvb2wgc3dhcE5lZWRlZCA9IGZhbHNlOwotICAgIENTU1ZhbHVl
SUQgaWRlbnQxID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVJRD4ocGFyc2VkVmFsdWUxLT5nZXRJZGVu
dCgpKTsKLSAgICBDU1NWYWx1ZUlEIGlkZW50MiA9IHN0YXRpY19jYXN0PENTU1ZhbHVlSUQ+KHBh
cnNlZFZhbHVlMi0+Z2V0SWRlbnQoKSk7Ci0gICAgQ1NTVmFsdWVJRCBpZGVudDMgPSBzdGF0aWNf
Y2FzdDxDU1NWYWx1ZUlEPih2YWx1ZTMtPmdldElkZW50KCkpOworICAgIENTU1ZhbHVlSUQgaWRl
bnQxID0gcGFyc2VkVmFsdWUxLT5nZXRWYWx1ZUlEKCk7CisgICAgQ1NTVmFsdWVJRCBpZGVudDIg
PSBwYXJzZWRWYWx1ZTItPmdldFZhbHVlSUQoKTsKKyAgICBDU1NWYWx1ZUlEIGlkZW50MyA9IHZh
bHVlMy0+Z2V0VmFsdWVJRCgpOwogCiAgICAgQ1NTVmFsdWVJRCBmaXJzdFBvc2l0aW9uS2V5d29y
ZDsKICAgICBDU1NWYWx1ZUlEIHNlY29uZFBvc2l0aW9uS2V5d29yZDsKQEAgLTQwNzAsOCArNDA3
MCw4IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZTNWYWx1ZXNGaWxsUG9zaXRpb24oQ1NTUGFyc2Vy
VmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0cjxDCiAjaWZuZGVmIE5ERUJVRwogICAgIENTU1By
aW1pdGl2ZVZhbHVlKiBmaXJzdCA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFs
dWUxLmdldCgpKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogc2Vjb25kID0gc3RhdGljX2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZTIuZ2V0KCkpOwotICAgIGlkZW50MSA9IHN0YXRpY19j
YXN0PENTU1ZhbHVlSUQ+KGZpcnN0LT5nZXRQYWlyVmFsdWUoKS0+Zmlyc3QoKS0+Z2V0SWRlbnQo
KSk7Ci0gICAgaWRlbnQyID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVJRD4oc2Vjb25kLT5nZXRQYWly
VmFsdWUoKS0+Zmlyc3QoKS0+Z2V0SWRlbnQoKSk7CisgICAgaWRlbnQxID0gZmlyc3QtPmdldFBh
aXJWYWx1ZSgpLT5maXJzdCgpLT5nZXRWYWx1ZUlEKCk7CisgICAgaWRlbnQyID0gc2Vjb25kLT5n
ZXRQYWlyVmFsdWUoKS0+Zmlyc3QoKS0+Z2V0VmFsdWVJRCgpOwogICAgIEFTU0VSVChpZGVudDEg
PT0gQ1NTVmFsdWVMZWZ0IHx8IGlkZW50MSA9PSBDU1NWYWx1ZVJpZ2h0KTsKICAgICBBU1NFUlQo
aWRlbnQyID09IENTU1ZhbHVlQm90dG9tIHx8IGlkZW50MiA9PSBDU1NWYWx1ZVRvcCk7CiAjZW5k
aWYKQEAgLTQxMzYsNyArNDEzNiw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZUZpbGxQb3NpdGlv
bihDU1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCwgUmVmUHRyPENTU1ZhbHVlCiAgICAgdmFs
dWUyLmNsZWFyKCk7CiAKICAgICAvLyBQZXIgQ1NTMyBzeW50YXgsIDxwb3NpdGlvbj4gY2FuJ3Qg
aGF2ZSAnY2VudGVyJyBhcyBpdHMgc2Vjb25kIGtleXdvcmQgYXMgd2UgaGF2ZSBtb3JlIGFyZ3Vt
ZW50cyB0byBmb2xsb3cuCi0gICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0SWRlbnQoKSA9PSBDU1NW
YWx1ZUNlbnRlcikKKyAgICBpZiAocGFyc2VkVmFsdWUyLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVDZW50ZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChudW1iZXJPZlZhbHVlcyA9PSAz
KQpAQCAtNDIyNyw3ICs0MjI3LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlRmlsbFJlcGVhdChS
ZWZQdHI8Q1NTVmFsdWU+JiB2YWx1ZTEsIFJlZlB0cjxDU1NWYWx1ZT4mIHZhbHUKIAogICAgIC8v
IElmIG9ubHkgb25lIHZhbHVlIHdhcyBzcGVjaWZpZWQsIHZhbHVlMiBpcyB0aGUgc2FtZSBhcyB2
YWx1ZTEuCiAgICAgbV9pbXBsaWNpdFNob3J0aGFuZCA9IHRydWU7Ci0gICAgdmFsdWUyID0gY3Nz
VmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKHN0YXRpY19jYXN0PENTU1ZhbHVlSUQ+
KHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUxLmdldCgpKS0+Z2V0SWRlbnQo
KSkpOworICAgIHZhbHVlMiA9IGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlMS5nZXQoKSktPmdldFZhbHVlSUQo
KSk7CiB9CiAKIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VGaWxsU2l6ZShD
U1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCYgYWxsb3dDb21tYSkKQEAgLTc3ODYsMTAgKzc3ODYs
MTAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlUmFkaWFsR3JhZGllbnQoQ1NTUGFyc2VyVmFsdWVM
aXN0KiB2YWx1ZUxpc3QsIFJlZlB0cjxDU1NWYWwKICAgICBpZiAoc2l6ZVZhbHVlICYmIGhvcml6
b250YWxTaXplKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gQ2lyY2xlcyBtdXN0IGhh
dmUgMCBvciAxIGxlbmd0aHMuCi0gICAgaWYgKHNoYXBlVmFsdWUgJiYgc2hhcGVWYWx1ZS0+Z2V0
SWRlbnQoKSA9PSBDU1NWYWx1ZUNpcmNsZSAmJiB2ZXJ0aWNhbFNpemUpCisgICAgaWYgKHNoYXBl
VmFsdWUgJiYgc2hhcGVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQ2lyY2xlICYmIHZl
cnRpY2FsU2l6ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIC8vIEVsbGlwc2VzIG11c3Qg
aGF2ZSAwIG9yIDIgbGVuZ3RoL3BlcmNlbnRhZ2VzLgotICAgIGlmIChzaGFwZVZhbHVlICYmIHNo
YXBlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVFbGxpcHNlICYmIGhvcml6b250YWxTaXpl
ICYmICF2ZXJ0aWNhbFNpemUpCisgICAgaWYgKHNoYXBlVmFsdWUgJiYgc2hhcGVWYWx1ZS0+Z2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlRWxsaXBzZSAmJiBob3Jpem9udGFsU2l6ZSAmJiAhdmVydGlj
YWxTaXplKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gSWYgdGhlcmUncyBvbmx5IG9u
ZSBzaXplLCBpdCBtdXN0IGJlIGEgbGVuZ3RoLgogICAgIGlmICghdmVydGljYWxTaXplICYmIGhv
cml6b250YWxTaXplICYmIGhvcml6b250YWxTaXplLT5pc1BlcmNlbnRhZ2UoKSkKQEAgLTg0Mjgs
MTcgKzg0MjgsMTcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZVRyYW5z
Zm9ybVZhbHVlKENTU1BhcnNlclZhbHVlICp2YWx1ZSkKICAgICByZXR1cm4gdHJhbnNmb3JtVmFs
dWUucmVsZWFzZSgpOwogfQogCi1ib29sIENTU1BhcnNlcjo6aXNCbGVuZE1vZGUoaW50IGlkZW50
KQorYm9vbCBDU1NQYXJzZXI6OmlzQmxlbmRNb2RlKENTU1ZhbHVlSUQgdmFsdWVJRCkKIHsKLSAg
ICByZXR1cm4gKGlkZW50ID49IENTU1ZhbHVlTXVsdGlwbHkgJiYgaWRlbnQgPD0gQ1NTVmFsdWVM
dW1pbm9zaXR5KQotICAgICAgICB8fCBpZGVudCA9PSBDU1NWYWx1ZU5vcm1hbAotICAgICAgICB8
fCBpZGVudCA9PSBDU1NWYWx1ZU92ZXJsYXk7CisgICAgcmV0dXJuICh2YWx1ZUlEID49IENTU1Zh
bHVlTXVsdGlwbHkgJiYgdmFsdWVJRCA8PSBDU1NWYWx1ZUx1bWlub3NpdHkpCisgICAgICAgIHx8
IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb3JtYWwKKyAgICAgICAgfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZU92ZXJsYXk7CiB9CiAKLWJvb2wgQ1NTUGFyc2VyOjppc0NvbXBvc2l0ZU9wZXJhdG9yKGludCBp
ZGVudCkKK2Jvb2wgQ1NTUGFyc2VyOjppc0NvbXBvc2l0ZU9wZXJhdG9yKENTU1ZhbHVlSUQgdmFs
dWVJRCkKIHsKICAgICAvLyBGSVhNRTogQWRkIENTU1ZhbHVlRGVzdGluYXRpb24gYW5kIENTU1Zh
bHVlTGlnaHRlciB3aGVuIHRoZSBDb21wb3NpdGluZyBzcGVjIHVwZGF0ZXMuCi0gICAgcmV0dXJu
IGlkZW50ID49IENTU1ZhbHVlQ2xlYXIgJiYgaWRlbnQgPD0gQ1NTVmFsdWVYb3I7CisgICAgcmV0
dXJuIHZhbHVlSUQgPj0gQ1NTVmFsdWVDbGVhciAmJiB2YWx1ZUlEIDw9IENTU1ZhbHVlWG9yOwog
fQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDU5
YjBmMDc1NDc3M2NlZTdhMTY4ZTRkNjI4MTgxZDdjMzEyYjAwYmUuLjM1YTk1ZmRkY2YxMzc4YmMx
NTkzYmVlOTk2YWIwYjk4NjU5NWYzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTI2NSw4
ICsyNjUsOCBAQCBwdWJsaWM6CiAjZW5kaWYKICNlbmRpZgogCi0gICAgc3RhdGljIGJvb2wgaXNC
bGVuZE1vZGUoaW50IGlkZW50KTsKLSAgICBzdGF0aWMgYm9vbCBpc0NvbXBvc2l0ZU9wZXJhdG9y
KGludCBpZGVudCk7CisgICAgc3RhdGljIGJvb2wgaXNCbGVuZE1vZGUoQ1NTVmFsdWVJRCk7Cisg
ICAgc3RhdGljIGJvb2wgaXNDb21wb3NpdGVPcGVyYXRvcihDU1NWYWx1ZUlEKTsKIAogICAgIFBh
c3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBwYXJzZVRyYW5zZm9ybSgpOwogICAgIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IHBhcnNlVHJhbnNmb3JtVmFsdWUoQ1NTUGFyc2VyVmFsdWUqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKaW5kZXggMTQ0MTE3ZDEzOTY5ZGJiMDA1MDgxZjk1
YmJhZmIxYTE0ZDA5NmZhYS4uOGVjNmZlOTIyZDBjZmMwNDIwMjQyMjJjOWI4OWQ4ZmM0NzA0ODRi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKQEAgLTcwLDcgKzcwLDcg
QEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyVmFsdWU6OmNyZWF0ZUNTU1ZhbHVlKCkK
ICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKGlkKTsK
ICAgICAKICAgICBpZiAodW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6T3BlcmF0b3IpIHsKLSAgICAg
ICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwcmltaXRpdmVWYWx1ZSA9IENTU1ByaW1pdGl2
ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKGlWYWx1ZSk7CisgICAgICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gcHJpbWl0aXZlVmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlUGFy
c2VyT3BlcmF0b3IoaVZhbHVlKTsKICAgICAgICAgcHJpbWl0aXZlVmFsdWUtPnNldFByaW1pdGl2
ZVR5cGUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QQVJTRVJfT1BFUkFUT1IpOwogICAgICAgICBy
ZXR1cm4gcHJpbWl0aXZlVmFsdWU7CiAgICAgfQpAQCAtODIsNiArODIsOCBAQCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBDU1NQYXJzZXJWYWx1ZTo6Y3JlYXRlQ1NTVmFsdWUoKQogICAgIENTU1ByaW1p
dGl2ZVZhbHVlOjpVbml0VHlwZXMgcHJpbWl0aXZlVW5pdCA9IHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlOjpVbml0VHlwZXM+KHVuaXQpOwogICAgIHN3aXRjaCAocHJpbWl0aXZlVW5pdCkg
ewogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVDoKKyAgICBjYXNlIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfUFJPUEVSVFlfSUQ6CisgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1ZBTFVFX0lEOgogICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZShzdHJpbmcsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEFSU0VSX0lERU5USUZJRVIpOwogICAg
IGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVI6CiAgICAgICAgIHJldHVybiBDU1NQ
cmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGZWYWx1ZSwgaXNJbnQgPyBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1BBUlNFUl9JTlRFR0VSIDogQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKaW5kZXggMmQ0MDI3OTk4MTBlNTk4
ZDI0NDk5MDAyODVkZDhlNWRiYWJjZTI2Yy4uZjM5MDJjN2JlMzRjYTAyNmE4YTQ2YTY4MjcyYWEx
ZTViOGViYjQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCkBA
IC0xMDcsNiArMTA3LDggQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRDU1NVbml0VHlwZUZv
ckRvdWJsZUNvbnZlcnNpb24oQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXQKICAgICBjYXNlIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfRFBDTToKICNlbmRpZgogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19JREVOVDoKKyAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFJPUEVSVFlf
SUQ6CisgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZBTFVFX0lEOgogICAgIGNhc2Ug
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QQUlSOgogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19QQVJTRVJfSEVYQ09MT1I6CiAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BB
UlNFUl9JREVOVElGSUVSOgpAQCAtMTgyLDYgKzE4NCw5IEBAIHN0YXRpYyBDU1NUZXh0Q2FjaGUm
IGNzc1RleHRDYWNoZSgpCiAKIHVuc2lnbmVkIHNob3J0IENTU1ByaW1pdGl2ZVZhbHVlOjpwcmlt
aXRpdmVUeXBlKCkgY29uc3QgCiB7CisgICAgaWYgKG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NT
X1BST1BFUlRZX0lEIHx8IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX1ZBTFVFX0lEKQorICAg
ICAgICByZXR1cm4gQ1NTX0lERU5UOworCiAgICAgaWYgKG1fcHJpbWl0aXZlVW5pdFR5cGUgIT0g
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19DQUxDKQogICAgICAgICByZXR1cm4gbV9wcmltaXRpdmVV
bml0VHlwZTsgCiAgICAgCkBAIC0yMDYsMzAgKzIxMSw1MSBAQCB1bnNpZ25lZCBzaG9ydCBDU1NQ
cmltaXRpdmVWYWx1ZTo6cHJpbWl0aXZlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfVU5LTk9XTjsKIH0KIAotc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWVPclByb3BlcnR5TmFtZShpbnQgdmFsdWVPclByb3BlcnR5SUQpCitzdGF0aWMgY29uc3Qg
QXRvbWljU3RyaW5nJiBwcm9wZXJ0eU5hbWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQogewot
ICAgIEFTU0VSVF9BUkcodmFsdWVPclByb3BlcnR5SUQsIHZhbHVlT3JQcm9wZXJ0eUlEID49IDAp
OwotICAgIEFTU0VSVF9BUkcodmFsdWVPclByb3BlcnR5SUQsIHZhbHVlT3JQcm9wZXJ0eUlEIDwg
bnVtQ1NTVmFsdWVLZXl3b3JkcyB8fCAodmFsdWVPclByb3BlcnR5SUQgPj0gZmlyc3RDU1NQcm9w
ZXJ0eSAmJiB2YWx1ZU9yUHJvcGVydHlJRCA8IGZpcnN0Q1NTUHJvcGVydHkgKyBudW1DU1NQcm9w
ZXJ0aWVzKSk7CisgICAgQVNTRVJUX0FSRyhwcm9wZXJ0eUlELCBwcm9wZXJ0eUlEID49IDApOwor
ICAgIEFTU0VSVF9BUkcocHJvcGVydHlJRCwgKHByb3BlcnR5SUQgPj0gZmlyc3RDU1NQcm9wZXJ0
eSAmJiBwcm9wZXJ0eUlEIDwgZmlyc3RDU1NQcm9wZXJ0eSArIG51bUNTU1Byb3BlcnRpZXMpKTsK
IAotICAgIGlmICh2YWx1ZU9yUHJvcGVydHlJRCA8IDApCisgICAgaWYgKHByb3BlcnR5SUQgPCAw
KQogICAgICAgICByZXR1cm4gbnVsbEF0b207CiAKLSAgICBpZiAodmFsdWVPclByb3BlcnR5SUQg
PCBudW1DU1NWYWx1ZUtleXdvcmRzKSB7Ci0gICAgICAgIHN0YXRpYyBBdG9taWNTdHJpbmcqIGtl
eXdvcmRTdHJpbmdzID0gbmV3IEF0b21pY1N0cmluZ1tudW1DU1NWYWx1ZUtleXdvcmRzXTsgLy8g
TGVha2VkIGludGVudGlvbmFsbHkuCi0gICAgICAgIEF0b21pY1N0cmluZyYga2V5d29yZFN0cmlu
ZyA9IGtleXdvcmRTdHJpbmdzW3ZhbHVlT3JQcm9wZXJ0eUlEXTsKLSAgICAgICAgaWYgKGtleXdv
cmRTdHJpbmcuaXNOdWxsKCkpCi0gICAgICAgICAgICBrZXl3b3JkU3RyaW5nID0gZ2V0VmFsdWVO
YW1lKHZhbHVlT3JQcm9wZXJ0eUlEKTsKLSAgICAgICAgcmV0dXJuIGtleXdvcmRTdHJpbmc7Ci0g
ICAgfQorICAgIHJldHVybiBnZXRQcm9wZXJ0eU5hbWVBdG9taWNTdHJpbmcocHJvcGVydHlJRCk7
Cit9CisKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlTmFtZShDU1NWYWx1ZUlEIHZh
bHVlSUQpCit7CisgICAgQVNTRVJUX0FSRyh2YWx1ZUlELCB2YWx1ZUlEID49IDApOworICAgIEFT
U0VSVF9BUkcodmFsdWVJRCwgdmFsdWVJRCA8IG51bUNTU1ZhbHVlS2V5d29yZHMpOwogCi0gICAg
cmV0dXJuIGdldFByb3BlcnR5TmFtZUF0b21pY1N0cmluZyhzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0
eUlEPih2YWx1ZU9yUHJvcGVydHlJRCkpOworICAgIGlmICh2YWx1ZUlEIDwgMCkKKyAgICAgICAg
cmV0dXJuIG51bGxBdG9tOworCisgICAgc3RhdGljIEF0b21pY1N0cmluZyoga2V5d29yZFN0cmlu
Z3MgPSBuZXcgQXRvbWljU3RyaW5nW251bUNTU1ZhbHVlS2V5d29yZHNdOyAvLyBMZWFrZWQgaW50
ZW50aW9uYWxseS4KKyAgICBBdG9taWNTdHJpbmcmIGtleXdvcmRTdHJpbmcgPSBrZXl3b3JkU3Ry
aW5nc1t2YWx1ZUlEXTsKKyAgICBpZiAoa2V5d29yZFN0cmluZy5pc051bGwoKSkKKyAgICAgICAg
a2V5d29yZFN0cmluZyA9IGdldFZhbHVlTmFtZSh2YWx1ZUlEKTsKKyAgICByZXR1cm4ga2V5d29y
ZFN0cmluZzsKIH0KIAotQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKGludCBp
ZGVudCkKK0NTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDU1NWYWx1ZUlEIHZh
bHVlSUQpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2
ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwotICAgIG1fdmFsdWUuaWRlbnQgPSBpZGVudDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOworICAgIG1fdmFsdWUudmFsdWVJRCA9
IHZhbHVlSUQ7Cit9CisKK0NTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5SUQpCisgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1BST1BFUlRZX0lEOworICAgIG1fdmFsdWUu
cHJvcGVydHlJRCA9IHByb3BlcnR5SUQ7Cit9CisKK0NTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShpbnQgcGFyc2VyT3BlcmF0b3IpCisgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVD
bGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1BBUlNFUl9PUEVSQVRPUjsK
KyAgICBtX3ZhbHVlLnBhcnNlck9wZXJhdG9yID0gcGFyc2VyT3BlcmF0b3I7CiB9CiAKIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShkb3VibGUgbnVtLCBVbml0VHlwZXMgdHlw
ZSkKQEAgLTI2MSwzNiArMjg3LDM2IEBAIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZShjb25zdCBMZW5ndGgmIGxlbmd0aCkKIHsKICAgICBzd2l0Y2ggKGxlbmd0aC50eXBlKCkp
IHsKICAgICAgICAgY2FzZSBBdXRvOgotICAgICAgICAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9
IENTU19JREVOVDsKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Cisg
ICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOworICAgICAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgV2ViQ29yZTo6Rml4ZWQ6CiAgICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1BYOwogICAgICAgICAgICAgbV92YWx1ZS5udW0gPSBsZW5ndGgudmFsdWUoKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEludHJpbnNpYzoKLSAgICAgICAgICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVJbnRyaW5zaWM7CisgICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX1ZBTFVFX0lEOworICAgICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJ
bnRyaW5zaWM7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBNaW5JbnRyaW5zaWM6
Ci0gICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWluSW50cmluc2ljOworICAgICAgICAgICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAgICAgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTWluSW50cmluc2ljOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgTWluQ29udGVudDoKLSAgICAgICAgICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1Nf
SURFTlQ7Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRNaW5Db250
ZW50OworICAgICAgICAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAg
ICAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0TWluQ29udGVudDsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE1heENvbnRlbnQ6Ci0gICAgICAgICAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlV2Via2l0TWF4Q29udGVudDsKKyAgICAgICAgICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfVkFMVUVfSUQ7CisgICAgICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVdlYmtpdE1heENvbnRlbnQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBG
aWxsQXZhaWxhYmxlOgotICAgICAgICAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVO
VDsKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdEZpbGxBdmFpbGFi
bGU7CisgICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOworICAg
ICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRGaWxsQXZhaWxhYmxlOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRml0Q29udGVudDoKLSAgICAgICAgICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVXZWJraXRGaXRDb250ZW50OworICAgICAgICAgICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAgICAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlV2Via2l0Rml0Q29udGVudDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IFBlcmNlbnQ6CiAgICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1BFUkNFTlRB
R0U7CkBAIC00NTQsNiArNDgwLDggQEAgdm9pZCBDU1NQcmltaXRpdmVWYWx1ZTo6Y2xlYW51cCgp
CiAgICAgY2FzZSBDU1NfVU5JQ09ERV9SQU5HRToKICAgICBjYXNlIENTU19QQVJTRVJfT1BFUkFU
T1I6CiAgICAgY2FzZSBDU1NfUEFSU0VSX0lERU5USUZJRVI6CisgICAgY2FzZSBDU1NfUFJPUEVS
VFlfSUQ6CisgICAgY2FzZSBDU1NfVkFMVUVfSUQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gMDsKQEAgLTc2OSw4ICs3OTcsMTAgQEAgU3RyaW5nIENT
U1ByaW1pdGl2ZVZhbHVlOjpnZXRTdHJpbmdWYWx1ZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QK
ICAgICAgICAgY2FzZSBDU1NfVkFSSUFCTEVfTkFNRToKICNlbmRpZgogICAgICAgICAgICAgcmV0
dXJuIG1fdmFsdWUuc3RyaW5nOwotICAgICAgICBjYXNlIENTU19JREVOVDoKLSAgICAgICAgICAg
IHJldHVybiB2YWx1ZU9yUHJvcGVydHlOYW1lKG1fdmFsdWUuaWRlbnQpOworICAgICAgICBjYXNl
IENTU19WQUxVRV9JRDoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZU5hbWUobV92YWx1ZS52YWx1
ZUlEKTsKKyAgICAgICAgY2FzZSBDU1NfUFJPUEVSVFlfSUQ6CisgICAgICAgICAgICByZXR1cm4g
cHJvcGVydHlOYW1lKG1fdmFsdWUucHJvcGVydHlJRCk7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAg
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgICAgIGJyZWFrOwpAQCAt
Nzg5LDggKzgxOSwxMCBAQCBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmdldFN0cmluZ1ZhbHVl
KCkgY29uc3QKICAgICAgICAgY2FzZSBDU1NfVkFSSUFCTEVfTkFNRToKICNlbmRpZgogICAgICAg
ICAgICAgcmV0dXJuIG1fdmFsdWUuc3RyaW5nOwotICAgICAgICBjYXNlIENTU19JREVOVDoKLSAg
ICAgICAgICAgIHJldHVybiB2YWx1ZU9yUHJvcGVydHlOYW1lKG1fdmFsdWUuaWRlbnQpOworICAg
ICAgICBjYXNlIENTU19WQUxVRV9JRDoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZU5hbWUobV92
YWx1ZS52YWx1ZUlEKTsKKyAgICAgICAgY2FzZSBDU1NfUFJPUEVSVFlfSUQ6CisgICAgICAgICAg
ICByZXR1cm4gcHJvcGVydHlOYW1lKG1fdmFsdWUucHJvcGVydHlJRCk7CiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICB9CkBAIC05NzAsOCArMTAwMiwxMSBAQCBTdHJp
bmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmN1c3RvbUNzc1RleHQoKSBjb25zdAogICAgICAgICBjYXNl
IENTU19VUkk6CiAgICAgICAgICAgICB0ZXh0ID0gInVybCgiICsgcXVvdGVDU1NVUkxJZk5lZWRl
ZChtX3ZhbHVlLnN0cmluZykgKyAiKSI7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDU1NfSURFTlQ6Ci0gICAgICAgICAgICB0ZXh0ID0gdmFsdWVPclByb3BlcnR5TmFtZShtX3Zh
bHVlLmlkZW50KTsKKyAgICAgICAgY2FzZSBDU1NfVkFMVUVfSUQ6CisgICAgICAgICAgICB0ZXh0
ID0gdmFsdWVOYW1lKG1fdmFsdWUudmFsdWVJRCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDU1NfUFJPUEVSVFlfSUQ6CisgICAgICAgICAgICB0ZXh0ID0gcHJvcGVydHlOYW1l
KG1fdmFsdWUucHJvcGVydHlJRCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBD
U1NfQVRUUjogewogICAgICAgICAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CkBAIC0xMDY2LDEz
ICsxMTAxLDEzIEBAIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNv
bnN0CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIgcmVjdGFuZ2xl
Iik7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICBpZiAocmVnaW9uLT50b3AoKS0+bV9wcmltaXRpdmVVbml0VHlwZSA9PSBD
U1NfSURFTlQgJiYgcmVnaW9uLT50b3AoKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUludmFsaWQp
IHsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lvbi0+cmlnaHQoKS0+bV9wcmltaXRp
dmVVbml0VHlwZSA9PSBDU1NfSURFTlQpOwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQocmVn
aW9uLT5ib3R0b20oKS0+bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfSURFTlQpOwotICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5sZWZ0KCktPm1fcHJpbWl0aXZlVW5pdFR5cGUg
PT0gQ1NTX0lERU5UKTsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lvbi0+cmlnaHQo
KS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUludmFsaWQpOwotICAgICAgICAgICAgICAgICAgICBB
U1NFUlQocmVnaW9uLT5ib3R0b20oKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUludmFsaWQpOwot
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5sZWZ0KCktPmdldElkZW50KCkgPT0g
Q1NTVmFsdWVJbnZhbGlkKTsKKyAgICAgICAgICAgICAgICBpZiAocmVnaW9uLT50b3AoKS0+bV9w
cmltaXRpdmVVbml0VHlwZSA9PSBDU1NfVkFMVUVfSUQgJiYgcmVnaW9uLT50b3AoKS0+Z2V0VmFs
dWVJRCgpID09IENTU1ZhbHVlSW52YWxpZCkgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
cmVnaW9uLT5yaWdodCgpLT5tX3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19WQUxVRV9JRCk7Cisg
ICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpb24tPmJvdHRvbSgpLT5tX3ByaW1pdGl2ZVVu
aXRUeXBlID09IENTU19WQUxVRV9JRCk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdp
b24tPmxlZnQoKS0+bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfVkFMVUVfSUQpOworICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5yaWdodCgpLT5nZXRWYWx1ZUlEKCkgPT0gQ1NT
VmFsdWVJbnZhbGlkKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lvbi0+Ym90dG9t
KCktPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUludmFsaWQpOworICAgICAgICAgICAgICAgICAg
ICBBU1NFUlQocmVnaW9uLT5sZWZ0KCktPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUludmFsaWQp
OwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyAnKTsKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChyZWdpb24tPnRv
cCgpLT5jc3NUZXh0KCkpOwpAQCAtMTA5MCw3ICsxMTI1LDcgQEAgU3RyaW5nIENTU1ByaW1pdGl2
ZVZhbHVlOjpjdXN0b21Dc3NUZXh0KCkgY29uc3QKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAg
IGNhc2UgQ1NTX1BBUlNFUl9PUEVSQVRPUjogewotICAgICAgICAgICAgY2hhciBjID0gc3RhdGlj
X2Nhc3Q8Y2hhcj4obV92YWx1ZS5pZGVudCk7CisgICAgICAgICAgICBjaGFyIGMgPSBzdGF0aWNf
Y2FzdDxjaGFyPihtX3ZhbHVlLnBhcnNlck9wZXJhdG9yKTsKICAgICAgICAgICAgIHRleHQgPSBT
dHJpbmcoJmMsIDFVKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xMjYxLDgg
KzEyOTYsMTEgQEAgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NTUHJpbWl0aXZlVmFs
dWU6OmNsb25lRm9yQ1NTT00oKSBjb25zdAogI2VuZGlmCiAgICAgICAgIHJlc3VsdCA9IENTU1By
aW1pdGl2ZVZhbHVlOjpjcmVhdGUobV92YWx1ZS5udW0sIHN0YXRpY19jYXN0PFVuaXRUeXBlcz4o
bV9wcmltaXRpdmVVbml0VHlwZSkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU19JREVO
VDoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIo
bV92YWx1ZS5pZGVudCk7CisgICAgY2FzZSBDU1NfUFJPUEVSVFlfSUQ6CisgICAgICAgIHJlc3Vs
dCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKG1fdmFsdWUucHJvcGVydHlJ
RCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTX1ZBTFVFX0lEOgorICAgICAgICByZXN1
bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihtX3ZhbHVlLnZhbHVlSUQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU19SR0JDT0xPUjoKICAgICAgICAgcmVzdWx0
ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUNvbG9yKG1fdmFsdWUucmdiY29sb3IpOwpAQCAt
MTMxOSw4ICsxMzU3LDEwIEBAIGJvb2wgQ1NTUHJpbWl0aXZlVmFsdWU6OmVxdWFscyhjb25zdCBD
U1NQcmltaXRpdmVWYWx1ZSYgb3RoZXIpIGNvbnN0CiAgICAgY2FzZSBDU1NfVk1JTjoKICAgICBj
YXNlIENTU19ESU1FTlNJT046CiAgICAgICAgIHJldHVybiBtX3ZhbHVlLm51bSA9PSBvdGhlci5t
X3ZhbHVlLm51bTsKLSAgICBjYXNlIENTU19JREVOVDoKLSAgICAgICAgcmV0dXJuIHZhbHVlT3JQ
cm9wZXJ0eU5hbWUobV92YWx1ZS5pZGVudCkgPT0gdmFsdWVPclByb3BlcnR5TmFtZShvdGhlci5t
X3ZhbHVlLmlkZW50KTsKKyAgICBjYXNlIENTU19QUk9QRVJUWV9JRDoKKyAgICAgICAgcmV0dXJu
IHByb3BlcnR5TmFtZShtX3ZhbHVlLnByb3BlcnR5SUQpID09IHByb3BlcnR5TmFtZShvdGhlci5t
X3ZhbHVlLnByb3BlcnR5SUQpOworICAgIGNhc2UgQ1NTX1ZBTFVFX0lEOgorICAgICAgICByZXR1
cm4gdmFsdWVOYW1lKG1fdmFsdWUudmFsdWVJRCkgPT0gdmFsdWVOYW1lKG90aGVyLm1fdmFsdWUu
dmFsdWVJRCk7CiAgICAgY2FzZSBDU1NfU1RSSU5HOgogICAgIGNhc2UgQ1NTX1VSSToKICAgICBj
YXNlIENTU19BVFRSOgpAQCAtMTM0OSw3ICsxMzg5LDcgQEAgYm9vbCBDU1NQcmltaXRpdmVWYWx1
ZTo6ZXF1YWxzKGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiBvdGhlcikgY29uc3QKICAgICB9CiAj
ZW5kaWYKICAgICBjYXNlIENTU19QQVJTRVJfT1BFUkFUT1I6Ci0gICAgICAgIHJldHVybiBtX3Zh
bHVlLmlkZW50ID09IG90aGVyLm1fdmFsdWUuaWRlbnQ7CisgICAgICAgIHJldHVybiBtX3ZhbHVl
LnZhbHVlSUQgPT0gb3RoZXIubV92YWx1ZS52YWx1ZUlEOwogICAgIGNhc2UgQ1NTX0NBTEM6CiAg
ICAgICAgIHJldHVybiBtX3ZhbHVlLmNhbGMgJiYgb3RoZXIubV92YWx1ZS5jYWxjICYmIG1fdmFs
dWUuY2FsYy0+ZXF1YWxzKCpvdGhlci5tX3ZhbHVlLmNhbGMpOwogICAgIGNhc2UgQ1NTX1NIQVBF
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAppbmRleCAzNzJjMWIzZjQ2ODA4
MWY1NmM3ZDRlYTgxNDM3NDM3MzcyYjg2NTU5Li4yOGFlNGU4ODIzMDAwMWFmMTU5Y2FiZmRjMjQ4
MzRlYTIwYTc1MDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAt
MjIsNyArMjIsOSBAQAogI2lmbmRlZiBDU1NQcmltaXRpdmVWYWx1ZV9oCiAjZGVmaW5lIENTU1By
aW1pdGl2ZVZhbHVlX2gKIAorI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRl
ICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJD
b2xvci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KQEAgLTEzNCw2ICsxMzYsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19WQVJJQUJM
RVMpCiAgICAgICAgIENTU19WQVJJQUJMRV9OQU1FID0gMTE2LAogI2VuZGlmCisgICAgICAgIENT
U19QUk9QRVJUWV9JRCA9IDExNywKKyAgICAgICAgQ1NTX1ZBTFVFX0lEID0gMTE4CiAgICAgfTsK
IAogICAgIC8vIFRoaXMgZW51bSBmb2xsb3dzIHRoZSBDU1NQYXJzZXI6OlVuaXRzIGVudW0gYXVn
bWVudGVkIHdpdGggVU5JVF9GUkVRVUVOQ1kgZm9yIGZyZXF1ZW5jaWVzLgpAQCAtMTY4LDcgKzE3
Miw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHx8IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NT
X1JFTVMKICAgICAgICAgICAgIHx8IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX0NIUzsKICAg
ICB9Ci0gICAgYm9vbCBpc0lkZW50KCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlw
ZSA9PSBDU1NfSURFTlQ7IH0KICAgICBib29sIGlzTGVuZ3RoKCkgY29uc3QKICAgICB7CiAgICAg
ICAgIHVuc2lnbmVkIHNob3J0IHR5cGUgPSBwcmltaXRpdmVUeXBlKCk7CkBAIC0xOTksOCArMjAy
LDEyIEBAIHB1YmxpYzoKICAgICBib29sIGlzVmFyaWFibGVOYW1lKCkgY29uc3QgeyByZXR1cm4g
cHJpbWl0aXZlVHlwZSgpID09IENTU19WQVJJQUJMRV9OQU1FOyB9CiAjZW5kaWYKICAgICBib29s
IGlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVV
bml0VHlwZSA+PSBDU1NfVlcgJiYgbV9wcmltaXRpdmVVbml0VHlwZSA8PSBDU1NfVk1BWDsgfQor
ICAgIGJvb2wgaXNWYWx1ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSA9
PSBDU1NfVkFMVUVfSUQ7IH0KKyAgICAKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZUlEIHZhbHVlSUQpIHsgcmV0dXJuIGFk
b3B0UmVmKG5ldyBDU1NQcmltaXRpdmVWYWx1ZSh2YWx1ZUlEKSk7IH0KKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllcihDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NQcmltaXRpdmVWYWx1ZShwcm9w
ZXJ0eUlEKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY3Jl
YXRlUGFyc2VyT3BlcmF0b3IoaW50IHBhcnNlck9wZXJhdG9yKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgQ1NTUHJpbWl0aXZlVmFsdWUocGFyc2VyT3BlcmF0b3IpKTsgfQogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXIoaW50IGlkZW50aWZp
ZXIpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NQcmltaXRpdmVWYWx1ZShpZGVudGlmaWVyKSk7
IH0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlQ29sb3Io
dW5zaWduZWQgcmdiVmFsdWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NQcmltaXRpdmVWYWx1
ZShyZ2JWYWx1ZSkpOyB9CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IGNyZWF0ZShkb3VibGUgdmFsdWUsIFVuaXRUeXBlcyB0eXBlKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgQ1NTUHJpbWl0aXZlVmFsdWUodmFsdWUsIHR5cGUpKTsgfQogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgVW5pdFR5
cGVzIHR5cGUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NQcmltaXRpdmVWYWx1ZSh2YWx1ZSwg
dHlwZSkpOyB9CkBAIC0zMDYsNyArMzEzLDggQEAgcHVibGljOgogICAgIAogICAgIENTU0NhbGNW
YWx1ZSogY3NzQ2FsY1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSAh
PSBDU1NfQ0FMQyA/IDAgOiBtX3ZhbHVlLmNhbGM7IH0KIAotICAgIGludCBnZXRJZGVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX0lERU5UID8gbV92YWx1ZS5p
ZGVudCA6IDA7IH0KKyAgICBDU1NQcm9wZXJ0eUlEIGdldFByb3BlcnR5SUQoKSBjb25zdCB7IHJl
dHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19QUk9QRVJUWV9JRCA/IG1fdmFsdWUucHJv
cGVydHlJRCA6IENTU1Byb3BlcnR5SW52YWxpZDsgfQorICAgIENTU1ZhbHVlSUQgZ2V0VmFsdWVJ
RCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX1ZBTFVFX0lEID8g
bV92YWx1ZS52YWx1ZUlEIDogQ1NTVmFsdWVJbnZhbGlkOyB9CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBpbmxpbmUgb3BlcmF0b3IgVCgpIGNvbnN0OyAvLyBEZWZpbmVkIGluIENTU1ByaW1p
dGl2ZVZhbHVlTWFwcGluZ3MuaAogCkBAIC0zMjgsOCArMzM2LDEwIEBAIHB1YmxpYzoKICAgICBi
b29sIGVxdWFscyhjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYpIGNvbnN0OwogCiBwcml2YXRlOgot
ICAgIC8vIEZJWE1FOiBpbnQgdnMuIHVuc2lnbmVkIG92ZXJsb2FkaW5nIGlzIHRvbyBzdWJ0bGUg
dG8gZGlzdGluZ3Vpc2ggdGhlIGNvbG9yIGFuZCBpZGVudGlmaWVyIGNhc2VzLgotICAgIENTU1By
aW1pdGl2ZVZhbHVlKGludCBpZGVudCk7CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTVmFsdWVJ
RCk7CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTUHJvcGVydHlJRCk7CisgICAgLy8gRklYTUU6
IGludCB2cy4gdW5zaWduZWQgb3ZlcmxvYWRpbmcgaXMgdG9vIHN1YnRsZSB0byBkaXN0aW5ndWlz
aCB0aGUgY29sb3IgYW5kIG9wZXJhdG9yIGNhc2VzLgorICAgIENTU1ByaW1pdGl2ZVZhbHVlKGlu
dCBwYXJzZXJPcGVyYXRvcik7CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUodW5zaWduZWQgY29sb3Ip
OyAvLyBSR0IgdmFsdWUKICAgICBDU1NQcmltaXRpdmVWYWx1ZShjb25zdCBMZW5ndGgmKTsKICAg
ICBDU1NQcmltaXRpdmVWYWx1ZShjb25zdCBTdHJpbmcmLCBVbml0VHlwZXMpOwpAQCAtMzY2LDcg
KzM3Niw5IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIGNvbXB1dGVMZW5ndGhEb3VibGUoY29uc3Qg
UmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwg
ZmxvYXQgbXVsdGlwbGllciwgYm9vbCBjb21wdXRpbmdGb250U2l6ZSkgY29uc3Q7CiAKICAgICB1
bmlvbiB7Ci0gICAgICAgIGludCBpZGVudDsKKyAgICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlEOworICAgICAgICBDU1NWYWx1ZUlEIHZhbHVlSUQ7CisgICAgICAgIGludCBwYXJzZXJPcGVy
YXRvcjsKICAgICAgICAgZG91YmxlIG51bTsKICAgICAgICAgU3RyaW5nSW1wbCogc3RyaW5nOwog
ICAgICAgICBDb3VudGVyKiBjb3VudGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggMjg4MmE4M2NiZGI0NmZmMmIzMWMyNDZmZmIyNmNk
M2NkZmQ5NjM4ZS4uYjMzMTUwNGQ3MjAzZTkxMjdiMmRhZDQ4NzIyZTY1N2FhYTEzMTkyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC0x
NDUsMjUgKzE0NSwyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgTGluZUNsYW1wVmFsdWUoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENTU1JlZmxlY3Rpb25EaXJlY3Rpb24gZSkKICAg
ICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAg
ICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFJlZmxlY3Rpb25BYm92ZToKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQWJvdmU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQWJvdmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmVmbGVjdGlvbkJlbG93OgotICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCZWxvdzsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVCZWxvdzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZWZsZWN0aW9u
TGVmdDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJl
ZmxlY3Rpb25SaWdodDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmlnaHQ7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CiAgICAgfQogfQogCiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ1NTUmVmbGVjdGlvbkRp
cmVjdGlvbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dp
dGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQWJvdmU6CiAgICAgICAg
IHJldHVybiBSZWZsZWN0aW9uQWJvdmU7CiAgICAgY2FzZSBDU1NWYWx1ZUJlbG93OgpAQCAtMTcy
LDYgKzE3Miw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBDU1NSZWZsZWN0aW9uRGlyZWN0aW9uKCkgY29uc3QKICAgICAgICAgcmV0dXJuIFJlZmxlY3Rp
b25MZWZ0OwogICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKICAgICAgICAgcmV0dXJuIFJlZmxlY3Rp
b25SaWdodDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE4MSwxMyArMTgzLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDU1NSZWZsZWN0aW9uRGlyZWN0aW9uKCkgY29u
c3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShDb2x1bW5TcGFuIGNvbHVtblNwYW4pCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykK
IHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChjb2x1bW5TcGFuKSB7CiAgICAg
Y2FzZSBDb2x1bW5TcGFuQWxsOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBbGw7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxsOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENvbHVtblNwYW5Ob25lOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVOb25lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KQEAgLTE5OCwxMSArMjAwLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5TcGFuKCkgY29uc3QKICAgICBpZiAo
bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfTlVNQkVSICYmIG1fdmFsdWUubnVtID09IDEpCiAg
ICAgICAgIHJldHVybiBDb2x1bW5TcGFuTm9uZTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVu
dCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUFs
bDoKICAgICAgICAgcmV0dXJuIENvbHVtblNwYW5BbGw7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6
CiAgICAgICAgIHJldHVybiBDb2x1bW5TcGFuTm9uZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIxMywyNCArMjE3
LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1
bW5TcGFuKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShQcmludENvbG9yQWRqdXN0IHZhbHVlKQogICAgIDogQ1NTVmFsdWUoUHJp
bWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAodmFsdWUp
IHsKICAgICBjYXNlIFByaW50Q29sb3JBZGp1c3RFeGFjdDoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlRXhhY3Q7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXhh
Y3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUHJpbnRDb2xvckFkanVzdEVjb25vbXk6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUVjb25vbXk7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlRWNvbm9teTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUHJpbnRDb2xvckFk
anVzdCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlRWNvbm9teToKICAgICAgICAg
cmV0dXJuIFByaW50Q29sb3JBZGp1c3RFY29ub215OwogICAgIGNhc2UgQ1NTVmFsdWVFeGFjdDoK
ICAgICAgICAgcmV0dXJuIFByaW50Q29sb3JBZGp1c3RFeGFjdDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI0MSw1
MSArMjQ3LDUxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBQcmludENvbG9yQWRqdXN0KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQm9yZGVyU3R5bGUgZSkKICAgICA6IENTU1ZhbHVl
KFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7
CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUp
IHsKLSAgICAgICAgY2FzZSBCTk9ORToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZU5vbmU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCSElEREVOOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGlkZGVuOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgSU5TRVQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVJbnNldDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEdST09WRToKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUdyb292ZTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIFJJREdFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlUmlkZ2U7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBPVVRTRVQ6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPdXRzZXQ7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBET1RURUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVEb3R0ZWQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQVNIRUQ6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEYXNoZWQ7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBTT0xJRDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVNvbGlkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRE9VQkxF
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRG91YmxlOwotICAgICAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCTk9ORToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVOb25lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJISURERU46CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGlkZGVuOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IElOU0VUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUluc2V0OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEdST09WRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVHcm9vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUklER0U6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlkZ2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
T1VUU0VUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU91dHNldDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBET1RURUQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlRG90dGVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERBU0hFRDoKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEYXNoZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgU09MSUQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU29saWQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRE9VQkxFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZURvdWJsZTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJvcmRlclN0eWxlKCkgY29uc3QKIHsK
LSAgICBpZiAobV92YWx1ZS5pZGVudCA9PSBDU1NWYWx1ZUF1dG8pIC8vIFZhbGlkIGZvciBDU1Mg
b3V0bGluZS1zdHlsZQorICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvKSAv
LyBWYWxpZCBmb3IgQ1NTIG91dGxpbmUtc3R5bGUKICAgICAgICAgcmV0dXJuIERPVFRFRDsKLSAg
ICByZXR1cm4gKEVCb3JkZXJTdHlsZSkobV92YWx1ZS5pZGVudCAtIENTU1ZhbHVlTm9uZSk7Cisg
ICAgcmV0dXJuIChFQm9yZGVyU3R5bGUpKG1fdmFsdWUudmFsdWVJRCAtIENTU1ZhbHVlTm9uZSk7
CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdXRs
aW5lSXNBdXRvKCkgY29uc3QKIHsKLSAgICBpZiAobV92YWx1ZS5pZGVudCA9PSBDU1NWYWx1ZUF1
dG8pCisgICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIHJl
dHVybiBBVVRPX09OOwogICAgIHJldHVybiBBVVRPX09GRjsKIH0KQEAgLTI5Myw4MiArMjk5LDg0
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdXRsaW5l
SXNBdXRvKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShDb21wb3NpdGVPcGVyYXRvciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAg
ICAgICBjYXNlIENvbXBvc2l0ZUNsZWFyOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQ2xlYXI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVD
b3B5OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29weTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU92ZXI6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTb3VyY2VPdmVyOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlU291cmNlSW46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVTb3VyY2VJbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IENvbXBvc2l0ZVNvdXJjZU91dDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVNvdXJjZU91dDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNv
dXJjZUF0b3A6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTb3VyY2VBdG9w
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRpb25P
dmVyOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGVzdGluYXRpb25PdmVy
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRpb25J
bjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURlc3RpbmF0aW9uSW47Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbk91dDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURlc3RpbmF0aW9uT3V0OwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRpb25BdG9wOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGVzdGluYXRpb25BdG9wOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlWE9SOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlWG9yOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgQ29tcG9zaXRlUGx1c0RhcmtlcjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZVBsdXNEYXJrZXI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb21w
b3NpdGVQbHVzTGlnaHRlcjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVBs
dXNMaWdodGVyOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlRGlm
ZmVyZW5jZToKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVDbGVhcjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDbGVhcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVDb3B5
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvcHk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ29tcG9zaXRlU291cmNlT3ZlcjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTb3VyY2VPdmVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0
ZVNvdXJjZUluOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNvdXJjZUluOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU91dDoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTb3VyY2VPdXQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ29tcG9zaXRlU291cmNlQXRvcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTb3VyY2VBdG9wOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0
aW9uT3ZlcjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZXN0aW5hdGlvbk92
ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRpb25JbjoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZXN0aW5hdGlvbkluOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3V0OgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZURlc3RpbmF0aW9uT3V0OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uQXRvcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVEZXN0aW5hdGlvbkF0b3A7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9z
aXRlWE9SOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVhvcjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVQbHVzRGFya2VyOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVBsdXNEYXJrZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29t
cG9zaXRlUGx1c0xpZ2h0ZXI6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGx1
c0xpZ2h0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9zaXRlRGlmZmVyZW5jZToK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
IAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbXBvc2l0
ZU9wZXJhdG9yKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZUNsZWFyOgotICAgICAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUNsZWFy
OwotICAgICAgICBjYXNlIENTU1ZhbHVlQ29weToKLSAgICAgICAgICAgIHJldHVybiBDb21wb3Np
dGVDb3B5OwotICAgICAgICBjYXNlIENTU1ZhbHVlU291cmNlT3ZlcjoKLSAgICAgICAgICAgIHJl
dHVybiBDb21wb3NpdGVTb3VyY2VPdmVyOwotICAgICAgICBjYXNlIENTU1ZhbHVlU291cmNlSW46
Ci0gICAgICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlSW47Ci0gICAgICAgIGNhc2UgQ1NT
VmFsdWVTb3VyY2VPdXQ6Ci0gICAgICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlT3V0Owot
ICAgICAgICBjYXNlIENTU1ZhbHVlU291cmNlQXRvcDoKLSAgICAgICAgICAgIHJldHVybiBDb21w
b3NpdGVTb3VyY2VBdG9wOwotICAgICAgICBjYXNlIENTU1ZhbHVlRGVzdGluYXRpb25PdmVyOgot
ICAgICAgICAgICAgcmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0aW9uT3ZlcjsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZURlc3RpbmF0aW9uSW46Ci0gICAgICAgICAgICByZXR1cm4gQ29tcG9zaXRlRGVz
dGluYXRpb25JbjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZURlc3RpbmF0aW9uT3V0OgotICAgICAg
ICAgICAgcmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0aW9uT3V0OwotICAgICAgICBjYXNlIENTU1Zh
bHVlRGVzdGluYXRpb25BdG9wOgotICAgICAgICAgICAgcmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0
aW9uQXRvcDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVhvcjoKLSAgICAgICAgICAgIHJldHVybiBD
b21wb3NpdGVYT1I7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVQbHVzRGFya2VyOgotICAgICAgICAg
ICAgcmV0dXJuIENvbXBvc2l0ZVBsdXNEYXJrZXI7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVQbHVz
TGlnaHRlcjoKLSAgICAgICAgICAgIHJldHVybiBDb21wb3NpdGVQbHVzTGlnaHRlcjsKKyAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVDbGVhcjoKKyAgICAg
ICAgcmV0dXJuIENvbXBvc2l0ZUNsZWFyOworICAgIGNhc2UgQ1NTVmFsdWVDb3B5OgorICAgICAg
ICByZXR1cm4gQ29tcG9zaXRlQ29weTsKKyAgICBjYXNlIENTU1ZhbHVlU291cmNlT3ZlcjoKKyAg
ICAgICAgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZU92ZXI7CisgICAgY2FzZSBDU1NWYWx1ZVNvdXJj
ZUluOgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlSW47CisgICAgY2FzZSBDU1NWYWx1
ZVNvdXJjZU91dDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZU91dDsKKyAgICBjYXNl
IENTU1ZhbHVlU291cmNlQXRvcDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZUF0b3A7
CisgICAgY2FzZSBDU1NWYWx1ZURlc3RpbmF0aW9uT3ZlcjoKKyAgICAgICAgcmV0dXJuIENvbXBv
c2l0ZURlc3RpbmF0aW9uT3ZlcjsKKyAgICBjYXNlIENTU1ZhbHVlRGVzdGluYXRpb25JbjoKKyAg
ICAgICAgcmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0aW9uSW47CisgICAgY2FzZSBDU1NWYWx1ZURl
c3RpbmF0aW9uT3V0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRGVzdGluYXRpb25PdXQ7Cisg
ICAgY2FzZSBDU1NWYWx1ZURlc3RpbmF0aW9uQXRvcDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0
ZURlc3RpbmF0aW9uQXRvcDsKKyAgICBjYXNlIENTU1ZhbHVlWG9yOgorICAgICAgICByZXR1cm4g
Q29tcG9zaXRlWE9SOworICAgIGNhc2UgQ1NTVmFsdWVQbHVzRGFya2VyOgorICAgICAgICByZXR1
cm4gQ29tcG9zaXRlUGx1c0RhcmtlcjsKKyAgICBjYXNlIENTU1ZhbHVlUGx1c0xpZ2h0ZXI6Cisg
ICAgICAgIHJldHVybiBDb21wb3NpdGVQbHVzTGlnaHRlcjsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM3OCwyMjMg
KzM4NiwyMjQgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IENvbXBvc2l0ZU9wZXJhdG9yKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb250cm9sUGFydCBlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkg
ewotICAgICAgICBjYXNlIE5vQ29udHJvbFBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVOb25lOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ2hlY2ti
b3hQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2hlY2tib3g7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSYWRpb1BhcnQ6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSYWRpbzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIFB1c2hCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlUHVzaEJ1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNxdWFyZUJ1
dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcXVhcmVCdXR0
b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCdXR0b25QYXJ0OgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQnV0dG9uQmV2ZWxQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQnV0dG9uQmV2ZWw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBEZWZhdWx0QnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZURlZmF1bHRCdXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBJbm5lclNw
aW5CdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSW5uZXJT
cGluQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTGlzdGJveFBhcnQ6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMaXN0Ym94OwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTGlzdEl0ZW1QYXJ0OgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlTGlzdGl0ZW07Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRvbjsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhRXhpdEZ1bGxzY3JlZW5CdXR0b25QYXJ0OgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRv
bjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhUGxheUJ1dHRvblBhcnQ6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVBsYXlCdXR0b247Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uUGFy
dDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhT3ZlcmxheVBsYXlC
dXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYU11dGVCdXR0b25Q
YXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFNdXRlQnV0dG9u
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFTZWVrQmFja0J1dHRvblBh
cnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVNlZWtCYWNrQnV0
dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFTZWVrRm9yd2FyZEJ1
dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVNlZWtG
b3J3YXJkQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFSZXdp
bmRCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFS
ZXdpbmRCdXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYVJldHVy
blRvUmVhbHRpbWVCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvblBhcnQ6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFTbGlkZXJQYXJ0OgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFTbGlkZXI7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYVNsaWRlclRodW1iUGFydDoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhU2xpZGVydGh1bWI7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lclBhcnQ6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
cjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFy
dDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVy
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJNdXRl
QnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhVm9s
dW1lU2xpZGVyTXV0ZUJ1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1l
ZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXJ0aHVtYjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZU1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgTWVkaWFDb250cm9sc0Z1bGxzY3JlZW5CYWNrZ3JvdW5kUGFydDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhQ29udHJvbHNGdWxsc2Ny
ZWVuQmFja2dyb3VuZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhRnVs
bFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVNZWRpYUZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXI7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJUaHVtYlBhcnQ6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYUZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJU
aHVtYjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhQ3VycmVudFRpbWVQ
YXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFDdXJyZW50VGlt
ZURpc3BsYXk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYVRpbWVSZW1h
aW5pbmdQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFUaW1l
UmVtYWluaW5nRGlzcGxheTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lbnVs
aXN0UGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lbnVsaXN0Owot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVudWxpc3RCdXR0b25QYXJ0OgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVudWxpc3RCdXR0b247Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZW51bGlzdFRleHRQYXJ0OgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVudWxpc3RUZXh0OwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgTWVudWxpc3RUZXh0RmllbGRQYXJ0OgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlTWVudWxpc3RUZXh0ZmllbGQ7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBNZXRlclBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVNZXRlcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJlbGV2YW5jeUxl
dmVsSW5kaWNhdG9yUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJl
bGV2YW5jeUxldmVsSW5kaWNhdG9yOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Q29udGludW91c0NhcGFjaXR5TGV2ZWxJbmRpY2F0b3JQYXJ0OgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQ29udGludW91c0NhcGFjaXR5TGV2ZWxJbmRpY2F0b3I7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEaXNjcmV0ZUNhcGFjaXR5TGV2ZWxJbmRpY2F0
b3JQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGlzY3JldGVDYXBh
Y2l0eUxldmVsSW5kaWNhdG9yOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmF0
aW5nTGV2ZWxJbmRpY2F0b3JQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlUmF0aW5nTGV2ZWxJbmRpY2F0b3I7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBQcm9ncmVzc0JhclBhcnQ6CisgICAgY2FzZSBOb0NvbnRyb2xQYXJ0OgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2hl
Y2tib3hQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNoZWNrYm94Owor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVSYWRpbzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQdXNoQnV0dG9u
UGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQdXNoQnV0dG9uOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNxdWFyZUJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlQnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQnV0dG9uOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEJ1dHRvbkJldmVsUGFydDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVCdXR0b25CZXZlbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBEZWZhdWx0QnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVE
ZWZhdWx0QnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElubmVyU3BpbkJ1dHRvblBh
cnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5uZXJTcGluQnV0dG9uOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIExpc3Rib3hQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUxpc3Rib3g7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGlzdEl0
ZW1QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxpc3RpdGVtOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uUGFydDoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRv
bjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYUV4aXRGdWxsc2NyZWVuQnV0dG9uUGFy
dDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUV4aXRGdWxsc2NyZWVu
QnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhUGxheUJ1dHRvblBhcnQ6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFQbGF5QnV0dG9uOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE1lZGlhT3ZlcmxheVBsYXlCdXR0b25QYXJ0OgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhT3ZlcmxheVBsYXlCdXR0b247CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTWVkaWFNdXRlQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYU11dGVCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTWVkaWFTZWVrQmFja0J1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTWVkaWFTZWVrQmFja0J1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRp
YVNlZWtGb3J3YXJkQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVNZWRpYVNlZWtGb3J3YXJkQnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlh
UmV3aW5kQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRp
YVJld2luZEJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVJldHVyblRvUmVh
bHRpbWVCdXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlh
UmV0dXJuVG9SZWFsdGltZUJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIE1lZGlhU2xpZGVyUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVNZWRpYVNsaWRlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVNsaWRlclRo
dW1iUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVNsaWRlcnRo
dW1iOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVy
UGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRl
ckNvbnRhaW5lcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBh
cnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXI7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJNdXRlQnV0dG9uUGFy
dDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlck11
dGVCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVt
YlBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlk
ZXJ0aHVtYjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYUNvbnRyb2xzQmFja2dyb3Vu
ZFBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFDb250cm9sc0Jh
Y2tncm91bmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFDb250cm9sc0Z1bGxzY3Jl
ZW5CYWNrZ3JvdW5kUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRp
YUNvbnRyb2xzRnVsbHNjcmVlbkJhY2tncm91bmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
TWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNZWRpYUZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhRnVsbHNjcmVlblZvbHVtZVNsaWRlclRodW1i
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhQ3VycmVudFRpbWVQYXJ0OgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhQ3VycmVudFRpbWVEaXNwbGF5OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhVGltZVJlbWFpbmluZ1BhcnQ6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFUaW1lUmVtYWluaW5nRGlzcGxheTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBNZW51bGlzdFBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTWVudWxpc3Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVudWxpc3RC
dXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lbnVsaXN0QnV0
dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lbnVsaXN0VGV4dFBhcnQ6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVudWxpc3RUZXh0OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIE1lbnVsaXN0VGV4dEZpZWxkUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNZW51bGlzdFRleHRmaWVsZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBN
ZXRlclBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWV0ZXI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUmVsZXZhbmN5TGV2ZWxJbmRpY2F0b3JQYXJ0OgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlbGV2YW5jeUxldmVsSW5kaWNhdG9yOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENvbnRpbnVvdXNDYXBhY2l0eUxldmVsSW5kaWNhdG9yUGFy
dDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250aW51b3VzQ2FwYWNpdHlM
ZXZlbEluZGljYXRvcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXNjcmV0ZUNhcGFjaXR5
TGV2ZWxJbmRpY2F0b3JQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURp
c2NyZXRlQ2FwYWNpdHlMZXZlbEluZGljYXRvcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBS
YXRpbmdMZXZlbEluZGljYXRvclBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlUmF0aW5nTGV2ZWxJbmRpY2F0b3I7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHJvZ3Jl
c3NCYXJQYXJ0OgogI2lmIEVOQUJMRShQUk9HUkVTU19FTEVNRU5UKQotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlUHJvZ3Jlc3NCYXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlUHJvZ3Jlc3NCYXI7CiAjZW5kaWYKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFByb2dyZXNzQmFyVmFsdWVQYXJ0OgorICAgICAgICBicmVhazsKKyAgICBjYXNl
IFByb2dyZXNzQmFyVmFsdWVQYXJ0OgogI2lmIEVOQUJMRShQUk9HUkVTU19FTEVNRU5UKQotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUHJvZ3Jlc3NCYXJWYWx1ZTsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQcm9ncmVzc0JhclZhbHVlOwogI2VuZGlmCi0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTbGlkZXJIb3Jpem9udGFsUGFydDoKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNsaWRlckhvcml6b250YWw7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTbGlkZXJWZXJ0aWNhbFBhcnQ6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTbGlkZXJWZXJ0aWNhbDsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTbGlkZXJ0aHVtYkhvcml6b250YWw7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydDoKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNsaWRlcnRodW1iVmVydGljYWw7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDYXJldFBhcnQ6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDYXJldDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIFNlYXJjaEZpZWxkUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZVNlYXJjaGZpZWxkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2VhcmNo
RmllbGREZWNvcmF0aW9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVNlYXJjaGZpZWxkRGVjb3JhdGlvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlU2VhcmNoZmllbGRSZXN1bHRzRGVjb3JhdGlvbjsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblBhcnQ6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTZWFyY2hmaWVsZFJlc3VsdHNCdXR0b247
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
blBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTZWFyY2hmaWVsZENh
bmNlbEJ1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNuYXBzaG90dGVk
UGx1Z2luT3ZlcmxheVBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVT
bmFwc2hvdHRlZFBsdWdpbk92ZXJsYXk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBUZXh0RmllbGRQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4
dGZpZWxkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFQYXJ0Ogot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4dGFyZWE7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBDYXBzTG9ja0luZGljYXRvclBhcnQ6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDYXBzTG9ja0luZGljYXRvcjsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIElucHV0U3BlZWNoQnV0dG9uUGFydDoKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBTbGlkZXJIb3Jpem9udGFsUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVTbGlkZXJIb3Jpem9udGFsOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFNsaWRlclZlcnRpY2FsUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
bGlkZXJWZXJ0aWNhbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTbGlkZXJUaHVtYkhvcml6
b250YWxQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNsaWRlcnRodW1i
SG9yaXpvbnRhbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTbGlkZXJUaHVtYlZlcnRpY2Fs
UGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbGlkZXJ0aHVtYlZlcnRp
Y2FsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcmV0UGFydDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVDYXJldDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZWFy
Y2hGaWVsZFBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VhcmNoZmll
bGQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VhcmNoRmllbGREZWNvcmF0aW9uUGFydDoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZWFyY2hmaWVsZERlY29yYXRpb247
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvblBh
cnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VhcmNoZmllbGRSZXN1bHRz
RGVjb3JhdGlvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNlYXJjaGZpZWxk
UmVzdWx0c0J1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZWFyY2hGaWVsZENhbmNl
bEJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VhcmNoZmll
bGRDYW5jZWxCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU25hcHNob3R0ZWRQbHVn
aW5PdmVybGF5UGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbmFwc2hv
dHRlZFBsdWdpbk92ZXJsYXk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVGV4dEZpZWxkUGFy
dDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0ZmllbGQ7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVGV4dEFyZWFQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVRleHRhcmVhOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcHNMb2NrSW5k
aWNhdG9yUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDYXBzTG9ja0lu
ZGljYXRvcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnB1dFNwZWVjaEJ1dHRvblBhcnQ6
CiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZVdlYmtpdElucHV0U3BlZWNoQnV0dG9uOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVdlYmtpdElucHV0U3BlZWNoQnV0dG9uOwogI2VuZGlmCi0gICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29udHJvbFBhcnQoKSBjb25zdAogewotICAgIGlmICht
X3ZhbHVlLmlkZW50ID09IENTU1ZhbHVlTm9uZSkKKyAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09
IENTU1ZhbHVlTm9uZSkKICAgICAgICAgcmV0dXJuIE5vQ29udHJvbFBhcnQ7Ci0gICAgZWxzZQot
ICAgICAgICByZXR1cm4gQ29udHJvbFBhcnQobV92YWx1ZS5pZGVudCAtIENTU1ZhbHVlQ2hlY2ti
b3ggKyAxKTsKKyAgICByZXR1cm4gQ29udHJvbFBhcnQobV92YWx1ZS52YWx1ZUlEIC0gQ1NTVmFs
dWVDaGVja2JveCArIDEpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJhY2tmYWNlVmlzaWJpbGl0eSBlKQogICAgIDogQ1NTVmFs
dWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVO
VDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAo
ZSkgewogICAgIGNhc2UgQmFja2ZhY2VWaXNpYmlsaXR5VmlzaWJsZToKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlVmlzaWJsZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVWaXNpYmxlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJhY2tmYWNlVmlzaWJpbGl0
eUhpZGRlbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGlkZGVuOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpZGRlbjsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJh
Y2tmYWNlVmlzaWJpbGl0eSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7
CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlVmlzaWJs
ZToKICAgICAgICAgcmV0dXJuIEJhY2tmYWNlVmlzaWJpbGl0eVZpc2libGU7CiAgICAgY2FzZSBD
U1NWYWx1ZUhpZGRlbjoKICAgICAgICAgcmV0dXJuIEJhY2tmYWNlVmlzaWJpbGl0eUhpZGRlbjsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTYwNSwyOSArNjE0LDMxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFQmFja2ZhY2VWaXNpYmlsaXR5KCkgY29uc3QKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFRmlsbEF0dGFj
aG1lbnQgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0
aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19W
QUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBTY3JvbGxCYWNrZ3JvdW5k
QXR0YWNobWVudDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNjcm9sbDsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExvY2FsQmFja2dyb3VuZEF0dGFjaG1l
bnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb2NhbDsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIEZpeGVkQmFja2dyb3VuZEF0dGFjaG1lbnQ6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGaXhlZDsKLSAgICAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgU2Nyb2xsQmFja2dyb3VuZEF0dGFjaG1lbnQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU2Nyb2xsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvY2Fs
QmFja2dyb3VuZEF0dGFjaG1lbnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TG9jYWw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRml4ZWRCYWNrZ3JvdW5kQXR0YWNobWVu
dDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGaXhlZDsKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRUZpbGxBdHRhY2htZW50KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRl
bnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVNjcm9sbDoKLSAgICAgICAgICAgIHJldHVybiBT
Y3JvbGxCYWNrZ3JvdW5kQXR0YWNobWVudDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUxvY2FsOgot
ICAgICAgICAgICAgcmV0dXJuIExvY2FsQmFja2dyb3VuZEF0dGFjaG1lbnQ7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVGaXhlZDoKLSAgICAgICAgICAgIHJldHVybiBGaXhlZEJhY2tncm91bmRBdHRh
Y2htZW50OworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1
ZVNjcm9sbDoKKyAgICAgICAgcmV0dXJuIFNjcm9sbEJhY2tncm91bmRBdHRhY2htZW50OworICAg
IGNhc2UgQ1NTVmFsdWVMb2NhbDoKKyAgICAgICAgcmV0dXJuIExvY2FsQmFja2dyb3VuZEF0dGFj
aG1lbnQ7CisgICAgY2FzZSBDU1NWYWx1ZUZpeGVkOgorICAgICAgICByZXR1cm4gRml4ZWRCYWNr
Z3JvdW5kQXR0YWNobWVudDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTYzNywzOCArNjQ4LDQwIEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmlsbEF0dGFjaG1lbnQoKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEVGaWxsQm94IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgQm9yZGVyRmls
bEJveDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJvcmRlckJveDsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBhZGRpbmdGaWxsQm94OgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUGFkZGluZ0JveDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIENvbnRlbnRGaWxsQm94OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQ29udGVudEJveDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IFRleHRGaWxsQm94OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4dDsK
LSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQm9yZGVyRmlsbEJveDoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXJCb3g7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUGFkZGluZ0ZpbGxCb3g6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGFk
ZGluZ0JveDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZW50RmlsbEJveDoKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250ZW50Qm94OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFRleHRGaWxsQm94OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVRleHQ7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGaWxsQm94KCkgY29uc3QKIHsKLSAgICBzd2l0Y2gg
KG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJvcmRlcjoKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUJvcmRlckJveDoKLSAgICAgICAgICAgIHJldHVybiBCb3JkZXJGaWxsQm94
OwotICAgICAgICBjYXNlIENTU1ZhbHVlUGFkZGluZzoKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVBh
ZGRpbmdCb3g6Ci0gICAgICAgICAgICByZXR1cm4gUGFkZGluZ0ZpbGxCb3g7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVDb250ZW50OgotICAgICAgICBjYXNlIENTU1ZhbHVlQ29udGVudEJveDoKLSAg
ICAgICAgICAgIHJldHVybiBDb250ZW50RmlsbEJveDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVRl
eHQ6Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRUZXh0OgotICAgICAgICAgICAgcmV0dXJu
IFRleHRGaWxsQm94OworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBD
U1NWYWx1ZUJvcmRlcjoKKyAgICBjYXNlIENTU1ZhbHVlQm9yZGVyQm94OgorICAgICAgICByZXR1
cm4gQm9yZGVyRmlsbEJveDsKKyAgICBjYXNlIENTU1ZhbHVlUGFkZGluZzoKKyAgICBjYXNlIENT
U1ZhbHVlUGFkZGluZ0JveDoKKyAgICAgICAgcmV0dXJuIFBhZGRpbmdGaWxsQm94OworICAgIGNh
c2UgQ1NTVmFsdWVDb250ZW50OgorICAgIGNhc2UgQ1NTVmFsdWVDb250ZW50Qm94OgorICAgICAg
ICByZXR1cm4gQ29udGVudEZpbGxCb3g7CisgICAgY2FzZSBDU1NWYWx1ZVRleHQ6CisgICAgY2Fz
ZSBDU1NWYWx1ZVdlYmtpdFRleHQ6CisgICAgICAgIHJldHVybiBUZXh0RmlsbEJveDsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTY3OCwzNCArNjkxLDM2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBFRmlsbEJveCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUZpbGxSZXBlYXQgZSkKICAgICA6IENTU1Zh
bHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURF
TlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2gg
KGUpIHsKLSAgICAgICAgY2FzZSBSZXBlYXRGaWxsOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlUmVwZWF0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTm9S
ZXBlYXRGaWxsOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9SZXBlYXQ7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSb3VuZEZpbGw6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSb3VuZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFNwYWNlRmlsbDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVNwYWNlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZXBlYXRGaWxsOgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlcGVhdDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBOb1JlcGVhdEZpbGw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9S
ZXBlYXQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUm91bmRGaWxsOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJvdW5kOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNw
YWNlRmlsbDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcGFjZTsKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRUZpbGxSZXBlYXQoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5p
ZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlUmVwZWF0OgotICAgICAgICAgICAgcmV0dXJu
IFJlcGVhdEZpbGw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb1JlcGVhdDoKLSAgICAgICAgICAg
IHJldHVybiBOb1JlcGVhdEZpbGw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVSb3VuZDoKLSAgICAg
ICAgICAgIHJldHVybiBSb3VuZEZpbGw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTcGFjZToKLSAg
ICAgICAgICAgIHJldHVybiBTcGFjZUZpbGw7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQp
IHsKKyAgICBjYXNlIENTU1ZhbHVlUmVwZWF0OgorICAgICAgICByZXR1cm4gUmVwZWF0RmlsbDsK
KyAgICBjYXNlIENTU1ZhbHVlTm9SZXBlYXQ6CisgICAgICAgIHJldHVybiBOb1JlcGVhdEZpbGw7
CisgICAgY2FzZSBDU1NWYWx1ZVJvdW5kOgorICAgICAgICByZXR1cm4gUm91bmRGaWxsOworICAg
IGNhc2UgQ1NTVmFsdWVTcGFjZToKKyAgICAgICAgcmV0dXJuIFNwYWNlRmlsbDsKKyAgICBkZWZh
dWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
QEAgLTcxNSwyNiArNzMwLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBFRmlsbFJlcGVhdCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJveFBhY2sgZSkKICAgICA6IENTU1ZhbHVl
KFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7
CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUp
IHsKICAgICBjYXNlIFN0YXJ0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTdGFy
dDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGFydDsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDZW50ZXI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNl
bnRlcjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50ZXI7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRW5kOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVF
bmQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEp1c3RpZnk6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUp1
c3RpZnk7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSnVzdGlmeTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRUJveFBhY2soKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVu
dCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVN0
YXJ0OgogICAgICAgICByZXR1cm4gU3RhcnQ7CiAgICAgY2FzZSBDU1NWYWx1ZUVuZDoKQEAgLTc0
Myw2ICs3NTgsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRUJveFBhY2soKSBjb25zdAogICAgICAgICByZXR1cm4gQ2VudGVyOwogICAgIGNhc2UgQ1NT
VmFsdWVKdXN0aWZ5OgogICAgICAgICByZXR1cm4gSnVzdGlmeTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTc1Miwz
OSArNzY5LDQxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFQm94UGFjaygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoRUJveEFsaWdubWVudCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAg
ICAgICBjYXNlIEJTVFJFVENIOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
U3RyZXRjaDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEJTVEFSVDoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXJ0OwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQkNFTlRFUjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUNlbnRlcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEJFTkQ6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFbmQ7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBCQkFTRUxJTkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVCYXNlbGluZTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQlNUUkVUQ0g6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RyZXRjaDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBCU1RBUlQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3Rh
cnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQkNFTlRFUjoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQkVORDoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQkJBU0VMSU5FOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJh
c2VsaW5lOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94QWxpZ25tZW50KCkgY29uc3QKIHsKLSAgICBz
d2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVN0cmV0Y2g6Ci0g
ICAgICAgICAgICByZXR1cm4gQlNUUkVUQ0g7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTdGFydDoK
LSAgICAgICAgICAgIHJldHVybiBCU1RBUlQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVFbmQ6Ci0g
ICAgICAgICAgICByZXR1cm4gQkVORDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUNlbnRlcjoKLSAg
ICAgICAgICAgIHJldHVybiBCQ0VOVEVSOwotICAgICAgICBjYXNlIENTU1ZhbHVlQmFzZWxpbmU6
Ci0gICAgICAgICAgICByZXR1cm4gQkJBU0VMSU5FOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1
ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVN0cmV0Y2g6CisgICAgICAgIHJldHVybiBCU1RSRVRD
SDsKKyAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CisgICAgICAgIHJldHVybiBCU1RBUlQ7CisgICAg
Y2FzZSBDU1NWYWx1ZUVuZDoKKyAgICAgICAgcmV0dXJuIEJFTkQ7CisgICAgY2FzZSBDU1NWYWx1
ZUNlbnRlcjoKKyAgICAgICAgcmV0dXJuIEJDRU5URVI7CisgICAgY2FzZSBDU1NWYWx1ZUJhc2Vs
aW5lOgorICAgICAgICByZXR1cm4gQkJBU0VMSU5FOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNzk1LDI0ICs4MTQs
MjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hB
bGlnbm1lbnQoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKEVCb3hEZWNvcmF0aW9uQnJlYWsgZSkKICAgICA6IENTU1ZhbHVlKFBy
aW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Cisg
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIERTTElDRToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2xpY2U7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2xpY2U7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgRENMT05FOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDbG9u
ZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDbG9uZTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRUJveERlY29yYXRpb25CcmVhaygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1Zh
bHVlU2xpY2U6CiAgICAgICAgIHJldHVybiBEU0xJQ0U7CiAgICAgY2FzZSBDU1NWYWx1ZUNsb25l
OgogICAgICAgICByZXR1cm4gRENMT05FOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwog
ICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODIzLDI2ICs4NDQsMjYgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hEZWNvcmF0
aW9uQnJlYWsoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKEJhY2tncm91bmRFZGdlT3JpZ2luIGUpCiAgICAgOiBDU1NWYWx1ZShQ
cmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwor
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7
CiAgICAgY2FzZSBUb3BFZGdlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUb3A7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVG9wOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFJpZ2h0RWRnZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmln
aHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQm90dG9tRWRnZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlQm90dG9tOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvdHRvbTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBMZWZ0RWRnZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0Owog
ICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBCYWNrZ3JvdW5kRWRnZU9yaWdpbigpIGNvbnN0CiB7Ci0gICAgc3dp
dGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAg
ICBjYXNlIENTU1ZhbHVlVG9wOgogICAgICAgICByZXR1cm4gVG9wRWRnZTsKICAgICBjYXNlIENT
U1ZhbHVlUmlnaHQ6CkBAIC04NTEsNiArODcyLDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJhY2tncm91bmRFZGdlT3JpZ2luKCkgY29uc3QKICAgICAg
ICAgcmV0dXJuIEJvdHRvbUVkZ2U7CiAgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6CiAgICAgICAgIHJl
dHVybiBMZWZ0RWRnZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTg2MCwyNCArODgzLDI2IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCYWNrZ3JvdW5kRWRnZU9yaWdpbigp
IGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoRUJveFNpemluZyBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQk9SREVSX0JP
WDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQm9yZGVyQm94OworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvcmRlckJveDsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDT05URU5UX0JPWDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29udGVu
dEJveDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250ZW50Qm94OwogICAg
ICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBFQm94U2l6aW5nKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
aWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFs
dWVCb3JkZXJCb3g6CiAgICAgICAgIHJldHVybiBCT1JERVJfQk9YOwogICAgIGNhc2UgQ1NTVmFs
dWVDb250ZW50Qm94OgogICAgICAgICByZXR1cm4gQ09OVEVOVF9CT1g7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04
ODcsMjQgKzkxMiwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRUJveFNpemluZygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJveERpcmVjdGlvbiBlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkg
ewotICAgICAgICBjYXNlIEJOT1JNQUw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVOb3JtYWw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCUkVWRVJTRToK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJldmVyc2U7Ci0gICAgICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJOT1JNQUw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTm9ybWFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJSRVZFUlNFOgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJldmVyc2U7CisgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVC
b3hEaXJlY3Rpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAg
ICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgotICAgICAgICAgICAgcmV0dXJuIEJOT1JNQUw7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVSZXZlcnNlOgotICAgICAgICAgICAgcmV0dXJuIEJSRVZFUlNF
OworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZU5vcm1h
bDoKKyAgICAgICAgcmV0dXJuIEJOT1JNQUw7CisgICAgY2FzZSBDU1NWYWx1ZVJldmVyc2U6Cisg
ICAgICAgIHJldHVybiBCUkVWRVJTRTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAg
ICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTkxNCwyNCArOTQxLDI2IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94RGlyZWN0aW9u
KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShFQm94TGluZXMgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBTSU5H
TEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTaW5nbGU7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNVUxUSVBMRToKLSAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZU11bHRpcGxlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBT
SU5HTEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2luZ2xlOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE1VTFRJUExFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU11bHRpcGxlOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94TGluZXMoKSBjb25zdAogewot
ICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlU2luZ2xl
OgotICAgICAgICAgICAgcmV0dXJuIFNJTkdMRTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU11bHRp
cGxlOgotICAgICAgICAgICAgcmV0dXJuIE1VTFRJUExFOworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVNpbmdsZToKKyAgICAgICAgcmV0dXJuIFNJTkdM
RTsKKyAgICBjYXNlIENTU1ZhbHVlTXVsdGlwbGU6CisgICAgICAgIHJldHVybiBNVUxUSVBMRTsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTk0MSwyNiArOTcwLDI4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94TGluZXMoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCb3hPcmllbnQgZSkKICAgICA6
IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBD
U1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBz
d2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBIT1JJWk9OVEFMOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlSG9yaXpvbnRhbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIFZFUlRJQ0FMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmVy
dGljYWw7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIEhPUklaT05UQUw6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSG9yaXpvbnRhbDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBWRVJUSUNBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0
aWNhbDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveE9yaWVudCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNo
IChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVIb3Jpem9udGFsOgotICAg
ICAgICBjYXNlIENTU1ZhbHVlSW5saW5lQXhpczoKLSAgICAgICAgICAgIHJldHVybiBIT1JJWk9O
VEFMOwotICAgICAgICBjYXNlIENTU1ZhbHVlVmVydGljYWw6Ci0gICAgICAgIGNhc2UgQ1NTVmFs
dWVCbG9ja0F4aXM6Ci0gICAgICAgICAgICByZXR1cm4gVkVSVElDQUw7CisgICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRhbDoKKyAgICBjYXNl
IENTU1ZhbHVlSW5saW5lQXhpczoKKyAgICAgICAgcmV0dXJuIEhPUklaT05UQUw7CisgICAgY2Fz
ZSBDU1NWYWx1ZVZlcnRpY2FsOgorICAgIGNhc2UgQ1NTVmFsdWVCbG9ja0F4aXM6CisgICAgICAg
IHJldHVybiBWRVJUSUNBTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTk3MCwzNCArMTAwMSwzNiBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveE9yaWVudCgpIGNvbnN0
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
RUNhcHRpb25TaWRlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgQ0FQTEVGVDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxlZnQ7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBDQVBSSUdIVDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVJpZ2h0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ0FQVE9Q
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVG9wOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ0FQQk9UVE9NOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQm90dG9tOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDQVBMRUZU
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ0FQUklHSFQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
UmlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ0FQVE9QOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVRvcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDQVBCT1RU
T006CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90dG9tOworICAgICAgICBi
cmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFQ2FwdGlvblNpZGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVu
dCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlTGVmdDoKLSAgICAgICAgICAgIHJldHVybiBDQVBM
RUZUOwotICAgICAgICBjYXNlIENTU1ZhbHVlUmlnaHQ6Ci0gICAgICAgICAgICByZXR1cm4gQ0FQ
UklHSFQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUb3A6Ci0gICAgICAgICAgICByZXR1cm4gQ0FQ
VE9QOwotICAgICAgICBjYXNlIENTU1ZhbHVlQm90dG9tOgotICAgICAgICAgICAgcmV0dXJuIENB
UEJPVFRPTTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFs
dWVMZWZ0OgorICAgICAgICByZXR1cm4gQ0FQTEVGVDsKKyAgICBjYXNlIENTU1ZhbHVlUmlnaHQ6
CisgICAgICAgIHJldHVybiBDQVBSSUdIVDsKKyAgICBjYXNlIENTU1ZhbHVlVG9wOgorICAgICAg
ICByZXR1cm4gQ0FQVE9QOworICAgIGNhc2UgQ1NTVmFsdWVCb3R0b206CisgICAgICAgIHJldHVy
biBDQVBCT1RUT007CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDA3LDM0ICsxMDQwLDM2IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ2FwdGlvblNpZGUoKSBjb25zdAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVD
bGVhciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZB
TFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIENOT05FOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENMRUZUOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTGVm
dDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENSSUdIVDoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJpZ2h0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgQ0JPVEg6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCb3Ro
OwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDTk9ORToKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENMRUZUOgor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ1JJR0hUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZ2h0
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENCT1RIOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUJvdGg7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDbGVhcigpIGNvbnN0CiB7Ci0g
ICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb25lOgot
ICAgICAgICAgICAgcmV0dXJuIENOT05FOwotICAgICAgICBjYXNlIENTU1ZhbHVlTGVmdDoKLSAg
ICAgICAgICAgIHJldHVybiBDTEVGVDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVJpZ2h0OgotICAg
ICAgICAgICAgcmV0dXJuIENSSUdIVDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJvdGg6Ci0gICAg
ICAgICAgICByZXR1cm4gQ0JPVEg7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAg
ICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIENOT05FOworICAgIGNhc2UgQ1NT
VmFsdWVMZWZ0OgorICAgICAgICByZXR1cm4gQ0xFRlQ7CisgICAgY2FzZSBDU1NWYWx1ZVJpZ2h0
OgorICAgICAgICByZXR1cm4gQ1JJR0hUOworICAgIGNhc2UgQ1NTVmFsdWVCb3RoOgorICAgICAg
ICByZXR1cm4gQ0JPVEg7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDQ0LDEyNiArMTA3OSwxMjYgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDbGVhcigpIGNvbnN0CiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUN1
cnNvciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZB
TFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIENVUlNPUl9BVVRPOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIENVUlNPUl9DUk9TUzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUNyb3NzaGFpcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENV
UlNPUl9ERUZBVUxUOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGVmYXVs
dDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9QT0lOVEVSOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUG9pbnRlcjsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9NT1ZFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlTW92ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNP
Ul9DRUxMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2VsbDsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9WRVJUSUNBTF9URVhUOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmVydGljYWxUZXh0OwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX0NPTlRFWFRfTUVOVToKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbnRleHRNZW51OwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQ1VSU09SX0FMSUFTOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQWxpYXM7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfQ09Q
WToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvcHk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfTk9ORToKLSAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZU5vbmU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBD
VVJTT1JfUFJPR1JFU1M6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVQcm9n
cmVzczsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9OT19EUk9QOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9Ecm9wOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX05PVF9BTExPV0VEOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm90QWxsb3dlZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENVUlNPUl9XRUJLSVRfWk9PTV9JTjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZVdlYmtpdFpvb21JbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIENVUlNPUl9XRUJLSVRfWk9PTV9PVVQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVXZWJraXRab29tT3V0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Q1VSU09SX0VfUkVTSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRVJl
c2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9ORV9SRVNJWkU6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOZVJlc2l6ZTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9OV19SRVNJWkU6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOd1Jlc2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENVUlNPUl9OX1JFU0laRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZU5SZXNpemU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1Jf
U0VfUkVTSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2VSZXNpemU7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfU1dfUkVTSVpFOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3dSZXNpemU7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfU19SRVNJWkU6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVTUmVzaXplOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgQ1VSU09SX1dfUkVTSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
V1Jlc2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9FV19SRVNJ
WkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFd1Jlc2l6ZTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9OU19SRVNJWkU6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOc1Jlc2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENVUlNPUl9ORVNXX1JFU0laRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZU5lc3dSZXNpemU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDVVJTT1JfTldTRV9SRVNJWkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVOd3NlUmVzaXplOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX0NP
TF9SRVNJWkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDb2xSZXNpemU7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfUk9XX1JFU0laRToKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJvd1Jlc2l6ZTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9URVhUOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlVGV4dDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENV
UlNPUl9XQUlUOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2FpdDsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9IRUxQOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGVscDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIENVUlNPUl9BTExfU0NST0xMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQWxsU2Nyb2xsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09S
X1dFQktJVF9HUkFCOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0
R3JhYjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9XRUJLSVRfR1JB
QkJJTkc6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRHcmFiYmlu
ZzsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX0FVVE86CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
VVJTT1JfQ1JPU1M6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ3Jvc3NoYWly
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9ERUZBVUxUOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlZmF1bHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q1VSU09SX1BPSU5URVI6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUG9pbnRl
cjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfTU9WRToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVNb3ZlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNP
Ul9DRUxMOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbGw7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1ZFUlRJQ0FMX1RFWFQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlVmVydGljYWxUZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENVUlNPUl9DT05URVhUX01FTlU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Q29udGV4dE1lbnU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX0FMSUFTOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFsaWFzOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENVUlNPUl9DT1BZOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNv
cHk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX05PTkU6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJT
T1JfUFJPR1JFU1M6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJvZ3Jlc3M7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX05PX0RST1A6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTm9Ecm9wOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENV
UlNPUl9OT1RfQUxMT1dFRDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3RB
bGxvd2VkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9XRUJLSVRfWk9PTV9JTjoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRab29tSW47CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1dFQktJVF9aT09NX09VVDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRab29tT3V0OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENVUlNPUl9FX1JFU0laRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVF
UmVzaXplOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9ORV9SRVNJWkU6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTmVSZXNpemU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ1VSU09SX05XX1JFU0laRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVOd1Jlc2l6ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfTl9SRVNJWkU6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTlJlc2l6ZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDVVJTT1JfU0VfUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVNlUmVzaXplOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9TV19S
RVNJWkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3dSZXNpemU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1NfUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVNSZXNpemU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09S
X1dfUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdSZXNpemU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX0VXX1JFU0laRToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVFd1Jlc2l6ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
VVJTT1JfTlNfUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5zUmVz
aXplOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9ORVNXX1JFU0laRToKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOZXN3UmVzaXplOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENVUlNPUl9OV1NFX1JFU0laRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVOd3NlUmVzaXplOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9DT0xf
UkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbFJlc2l6ZTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfUk9XX1JFU0laRToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3dSZXNpemU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q1VSU09SX1RFWFQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfV0FJVDoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVXYWl0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9IRUxQ
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhlbHA7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ1VSU09SX0FMTF9TQ1JPTEw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQWxsU2Nyb2xsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9XRUJL
SVRfR1JBQjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRHcmFiOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9XRUJLSVRfR1JBQkJJTkc6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0R3JhYmJpbmc7CisgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVDdXJzb3IoKSBjb25zdAogewotICAgIGlmIChtX3ZhbHVlLmlkZW50ID09IENTU1ZhbHVl
Q29weSkKKyAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlQ29weSkKICAgICAgICAg
cmV0dXJuIENVUlNPUl9DT1BZOwotICAgIGlmIChtX3ZhbHVlLmlkZW50ID09IENTU1ZhbHVlTm9u
ZSkKKyAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAgcmV0
dXJuIENVUlNPUl9OT05FOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxFQ3Vyc29yPihtX3ZhbHVl
LmlkZW50IC0gQ1NTVmFsdWVBdXRvKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RUN1cnNvcj4o
bV92YWx1ZS52YWx1ZUlEIC0gQ1NTVmFsdWVBdXRvKTsKIH0KIAogCkBAIC0xMTcxLDIyICsxMjA2
LDIyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ3Vy
c29yKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShDdXJzb3JWaXNpYmlsaXR5IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVD
bGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2Fz
ZSBDdXJzb3JWaXNpYmlsaXR5QXV0bzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
QXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEN1cnNvclZpc2liaWxpdHlBdXRvSGlkZToKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQXV0b0hpZGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQXV0b0hpZGU7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEN1cnNvclZpc2liaWxpdHkoKSBjb25z
dAogewotICAgIGlmIChtX3ZhbHVlLmlkZW50ID09IENTU1ZhbHVlQXV0bykKKyAgICBpZiAobV92
YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgcmV0dXJuIEN1cnNvclZpc2li
aWxpdHlBdXRvOwotICAgIGlmIChtX3ZhbHVlLmlkZW50ID09IENTU1ZhbHVlQXV0b0hpZGUpCisg
ICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG9IaWRlKQogICAgICAgICByZXR1
cm4gQ3Vyc29yVmlzaWJpbGl0eUF1dG9IaWRlOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkBAIC0xMTk3LDg2ICsxMjMyLDg2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBDdXJzb3JWaXNpYmlsaXR5KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFRGlzcGxheSBlKQogICAgIDog
Q1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3
aXRjaCAoZSkgewotICAgICAgICBjYXNlIElOTElORToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUlubGluZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEJM
T0NLOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQmxvY2s7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBMSVNUX0lURU06Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVMaXN0SXRlbTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFJVTl9JTjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJ1bkluOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ09NUEFDVDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbXBhY3Q7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBJTkxJTkVfQkxPQ0s6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVJbmxpbmVCbG9jazsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRBQkxFOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGFibGU7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBJTkxJTkVfVEFCTEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVJbmxpbmVUYWJsZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFRBQkxFX1JPV19HUk9VUDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVRhYmxlUm93R3JvdXA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUQUJMRV9I
RUFERVJfR1JPVVA6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUYWJsZUhl
YWRlckdyb3VwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVEFCTEVfRk9PVEVS
X0dST1VQOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGFibGVGb290ZXJH
cm91cDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRBQkxFX1JPVzoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRhYmxlUm93OwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgVEFCTEVfQ09MVU1OX0dST1VQOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlVGFibGVDb2x1bW5Hcm91cDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFRBQkxFX0NPTFVNTjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZVRhYmxlQ29sdW1uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVEFC
TEVfQ0VMTDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRhYmxlQ2VsbDsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRBQkxFX0NBUFRJT046Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUYWJsZUNhcHRpb247Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBCT1g6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVXZWJraXRCb3g7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBJTkxJTkVf
Qk9YOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0SW5saW5lQm94
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRkxFWDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdEZsZXg7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBJTkxJTkVfRkxFWDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZVdlYmtpdElubGluZUZsZXg7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBH
UklEOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0R3JpZDsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIElOTElORV9HUklEOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0SW5saW5lR3JpZDsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIE5PTkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVOb25lOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJTkxJTkU6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5lOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEJMT0NLOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJsb2NrOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIExJU1RfSVRFTToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVMaXN0SXRlbTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSVU5fSU46Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUnVuSW47CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ09NUEFDVDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb21w
YWN0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIElOTElORV9CTE9DSzoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmVCbG9jazsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBUQUJMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBJTkxJTkVfVEFCTEU6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSW5saW5lVGFibGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFC
TEVfUk9XX0dST1VQOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlUm93
R3JvdXA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFCTEVfSEVBREVSX0dST1VQOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlSGVhZGVyR3JvdXA7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVEFCTEVfRk9PVEVSX0dST1VQOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVRhYmxlRm9vdGVyR3JvdXA7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgVEFCTEVfUk9XOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlUm93
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRBQkxFX0NPTFVNTl9HUk9VUDoKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZUNvbHVtbkdyb3VwOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFRBQkxFX0NPTFVNTjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVUYWJsZUNvbHVtbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUQUJMRV9DRUxMOgor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlQ2VsbDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBUQUJMRV9DQVBUSU9OOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVRhYmxlQ2FwdGlvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCT1g6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0Qm94OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIElOTElORV9CT1g6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
V2Via2l0SW5saW5lQm94OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZMRVg6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0RmxleDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBJTkxJTkVfRkxFWDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVX
ZWJraXRJbmxpbmVGbGV4OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdSSUQ6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0R3JpZDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBJTkxJTkVfR1JJRDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVX
ZWJraXRJbmxpbmVHcmlkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5PTkU6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQog
fQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRURpc3Bs
YXkoKSBjb25zdAogewotICAgIGlmIChtX3ZhbHVlLmlkZW50ID09IENTU1ZhbHVlTm9uZSkKKyAg
ICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAgcmV0dXJuIE5P
TkU7CiAKLSAgICBFRGlzcGxheSBkaXNwbGF5ID0gc3RhdGljX2Nhc3Q8RURpc3BsYXk+KG1fdmFs
dWUuaWRlbnQgLSBDU1NWYWx1ZUlubGluZSk7CisgICAgRURpc3BsYXkgZGlzcGxheSA9IHN0YXRp
Y19jYXN0PEVEaXNwbGF5PihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1ZUlubGluZSk7CiAgICAg
QVNTRVJUKGRpc3BsYXkgPj0gSU5MSU5FICYmIGRpc3BsYXkgPD0gTk9ORSk7CiAgICAgcmV0dXJu
IGRpc3BsYXk7CiB9CkBAIC0xMjg0LDI0ICsxMzE5LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRGlzcGxheSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUVtcHR5Q2VsbCBlKQog
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwog
ICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIFNIT1c6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVTaG93OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
SElERToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhpZGU7Ci0gICAgICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNIT1c6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlU2hvdzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBISURFOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpZGU7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVFbXB0eUNlbGwo
KSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENT
U1ZhbHVlU2hvdzoKLSAgICAgICAgICAgIHJldHVybiBTSE9XOwotICAgICAgICBjYXNlIENTU1Zh
bHVlSGlkZToKLSAgICAgICAgICAgIHJldHVybiBISURFOworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVNob3c6CisgICAgICAgIHJldHVybiBTSE9XOwor
ICAgIGNhc2UgQ1NTVmFsdWVIaWRlOgorICAgICAgICByZXR1cm4gSElERTsKKyAgICBkZWZhdWx0
OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTEzMTEsMzIgKzEzNDgsMzIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVFbXB0eUNlbGwoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVBbGlnbkl0ZW1zIGUpCiAgICAgOiBDU1NWYWx1
ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5U
OworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChl
KSB7CiAgICAgY2FzZSBBbGlnbkF1dG86Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBBbGlnbkZsZXhTdGFydDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlRmxleFN0YXJ0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZs
ZXhTdGFydDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkZsZXhFbmQ6Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZsZXhFbmQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlRmxleEVuZDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkNlbnRl
cjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2VudGVyOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBB
bGlnblN0cmV0Y2g6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0cmV0Y2g7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RyZXRjaDsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBBbGlnbkJhc2VsaW5lOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVCYXNlbGluZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCYXNlbGluZTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWduSXRlbXMoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92
YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBBbGlnbkF1dG87CiAgICAgY2FzZSBDU1NWYWx1
ZUZsZXhTdGFydDoKQEAgLTEzNDksNiArMTM4Niw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQWxpZ25JdGVtcygpIGNvbnN0CiAgICAgICAgIHJldHVy
biBBbGlnblN0cmV0Y2g7CiAgICAgY2FzZSBDU1NWYWx1ZUJhc2VsaW5lOgogICAgICAgICByZXR1
cm4gQWxpZ25CYXNlbGluZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEzNTgsMjkgKzEzOTcsMjkgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVBbGlnbkl0ZW1zKCkgY29u
c3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShFSnVzdGlmeUNvbnRlbnQgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEp1c3RpZnlG
bGV4U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZsZXhTdGFydDsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbGV4U3RhcnQ7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgSnVzdGlmeUZsZXhFbmQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUZsZXhFbmQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmxleEVuZDsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBKdXN0aWZ5Q2VudGVyOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ2VudGVyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEp1c3RpZnlTcGFjZUJldHdlZW46
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNwYWNlQmV0d2VlbjsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcGFjZUJldHdlZW47CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgSnVzdGlmeVNwYWNlQXJvdW5kOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVTcGFjZUFyb3VuZDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcGFj
ZUFyb3VuZDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUp1c3RpZnlDb250ZW50KCkgY29uc3QKIHsKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
ewogICAgIGNhc2UgQ1NTVmFsdWVGbGV4U3RhcnQ6CiAgICAgICAgIHJldHVybiBKdXN0aWZ5Rmxl
eFN0YXJ0OwogICAgIGNhc2UgQ1NTVmFsdWVGbGV4RW5kOgpAQCAtMTM5MSw2ICsxNDMwLDggQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVKdXN0aWZ5Q29u
dGVudCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBKdXN0aWZ5U3BhY2VCZXR3ZWVuOwogICAgIGNh
c2UgQ1NTVmFsdWVTcGFjZUFyb3VuZDoKICAgICAgICAgcmV0dXJuIEp1c3RpZnlTcGFjZUFyb3Vu
ZDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTE0MDAsMjYgKzE0NDEsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVKdXN0aWZ5Q29udGVudCgpIGNvbnN0CiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUZsZXhEaXJl
Y3Rpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0
aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19W
QUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEZsb3dSb3c6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJvdzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVSb3c7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmxvd1Jvd1JldmVyc2U6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJvd1JldmVyc2U7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUm93UmV2ZXJzZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBG
bG93Q29sdW1uOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDb2x1bW47CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sdW1uOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEZsb3dDb2x1bW5SZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVDb2x1bW5SZXZlcnNlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbHVt
blJldmVyc2U7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGbGV4RGlyZWN0aW9uKCkgY29uc3QKIHsKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
ewogICAgIGNhc2UgQ1NTVmFsdWVSb3c6CiAgICAgICAgIHJldHVybiBGbG93Um93OwogICAgIGNh
c2UgQ1NTVmFsdWVSb3dSZXZlcnNlOgpAQCAtMTQyOCw2ICsxNDY5LDggQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGbGV4RGlyZWN0aW9uKCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIEZsb3dDb2x1bW47CiAgICAgY2FzZSBDU1NWYWx1ZUNvbHVtblJldmVy
c2U6CiAgICAgICAgIHJldHVybiBGbG93Q29sdW1uUmV2ZXJzZTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE0Mzcs
MzIgKzE0ODAsMzIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVGbGV4RGlyZWN0aW9uKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQWxpZ25Db250ZW50IGUpCiAgICAgOiBDU1NWYWx1
ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5U
OworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChl
KSB7CiAgICAgY2FzZSBBbGlnbkNvbnRlbnRGbGV4U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUZsZXhTdGFydDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVGbGV4U3RhcnQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25Db250ZW50RmxleEVu
ZDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRmxleEVuZDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbGV4RW5kOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEFsaWduQ29udGVudENlbnRlcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2Vu
dGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBBbGlnbkNvbnRlbnRTcGFjZUJldHdlZW46Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVNwYWNlQmV0d2VlbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTcGFjZUJldHdlZW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25D
b250ZW50U3BhY2VBcm91bmQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNwYWNl
QXJvdW5kOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlQXJvdW5kOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWduQ29udGVudFN0cmV0Y2g6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0cmV0Y2g7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlU3RyZXRjaDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWduQ29udGVudCgpIGNvbnN0
CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlRmxleFN0YXJ0OgogICAgICAgICByZXR1cm4gQWxp
Z25Db250ZW50RmxleFN0YXJ0OwogICAgIGNhc2UgQ1NTVmFsdWVGbGV4RW5kOgpAQCAtMTQ3NSw2
ICsxNTE4LDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVBbGlnbkNvbnRlbnQoKSBjb25zdAogICAgICAgICByZXR1cm4gQWxpZ25Db250ZW50U3BhY2VB
cm91bmQ7CiAgICAgY2FzZSBDU1NWYWx1ZVN0cmV0Y2g6CiAgICAgICAgIHJldHVybiBBbGlnbkNv
bnRlbnRTdHJldGNoOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTQ4NCwyOSArMTUyOSwzMSBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWduQ29udGVudCgpIGNvbnN0
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
RUZsZXhXcmFwIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBD
U1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBGbGV4Tm9XcmFwOgotICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3dyYXA7CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTm93cmFwOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsZXhXcmFw
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXcmFwOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVdyYXA7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmxleFdy
YXBSZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXcmFwUmV2ZXJzZTsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXcmFwUmV2ZXJzZTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRUZsZXhXcmFwKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQp
IHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3dy
YXA6CiAgICAgICAgIHJldHVybiBGbGV4Tm9XcmFwOwogICAgIGNhc2UgQ1NTVmFsdWVXcmFwOgog
ICAgICAgICByZXR1cm4gRmxleFdyYXA7CiAgICAgY2FzZSBDU1NWYWx1ZVdyYXBSZXZlcnNlOgog
ICAgICAgICByZXR1cm4gRmxleFdyYXBSZXZlcnNlOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTUxNiwzMCArMTU2
MywzMiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZs
ZXhXcmFwKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShFRmxvYXQgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQog
ewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBO
b0Zsb2F0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExlZnRGbG9hdDoKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUxlZnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBSaWdodEZsb2F0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmlnaHQ7
Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIE5vRmxvYXQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMZWZ0Rmxv
YXQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBSaWdodEZsb2F0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVJpZ2h0OworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxvYXQoKSBjb25zdAogewotICAgIHN3aXRj
aCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlTGVmdDoKLSAgICAgICAg
ICAgIHJldHVybiBMZWZ0RmxvYXQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKLSAgICAg
ICAgICAgIHJldHVybiBSaWdodEZsb2F0OwotICAgICAgICBjYXNlIENTU1ZhbHVlTm9uZToKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZUNlbnRlcjogIC8vIE5vbi1zdGFuZGFyZCBDU1MgdmFsdWUKLSAg
ICAgICAgICAgIHJldHVybiBOb0Zsb2F0OworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CisgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6CisgICAgICAgIHJldHVybiBMZWZ0RmxvYXQ7CisgICAg
Y2FzZSBDU1NWYWx1ZVJpZ2h0OgorICAgICAgICByZXR1cm4gUmlnaHRGbG9hdDsKKyAgICBjYXNl
IENTU1ZhbHVlTm9uZToKKyAgICBjYXNlIENTU1ZhbHVlQ2VudGVyOiAvLyBOb24tc3RhbmRhcmQg
Q1NTIHZhbHVlLgorICAgICAgICByZXR1cm4gTm9GbG9hdDsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE1NDksMjkg
KzE1OTgsMjkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVGbG9hdCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoTGluZUJyZWFrIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFz
cykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0
aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBM
aW5lQnJlYWtBdXRvOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTGluZUJyZWFrTG9vc2U6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxv
b3NlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvb3NlOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIExpbmVCcmVha05vcm1hbDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1h
bDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lQnJlYWtTdHJpY3Q6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0cmljdDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTdHJpY3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUJyZWFrQWZ0ZXJX
aGl0ZVNwYWNlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBZnRlcldoaXRlU3Bh
Y2U7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWZ0ZXJXaGl0ZVNwYWNlOwog
ICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBMaW5lQnJlYWsoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1
ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBMaW5lQnJlYWtBdXRvOwogICAgIGNhc2UgQ1NTVmFs
dWVMb29zZToKQEAgLTE1ODIsNiArMTYzMSw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQnJlYWsoKSBjb25zdAogICAgICAgICByZXR1cm4gTGlu
ZUJyZWFrU3RyaWN0OwogICAgIGNhc2UgQ1NTVmFsdWVBZnRlcldoaXRlU3BhY2U6CiAgICAgICAg
IHJldHVybiBMaW5lQnJlYWtBZnRlcldoaXRlU3BhY2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xNTkxLDI0ICsx
NjQyLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBM
aW5lQnJlYWsoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKEVMaXN0U3R5bGVQb3NpdGlvbiBlKQogICAgIDogQ1NTVmFsdWUoUHJp
bWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewot
ICAgICAgICBjYXNlIE9VVFNJREU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVPdXRzaWRlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSU5TSURFOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSW5zaWRlOwotICAgICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBPVVRTSURFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU91dHNpZGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSU5TSURFOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUluc2lkZTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQog
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUxpc3RTdHls
ZVBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVPdXRzaWRlOgogICAg
ICAgICByZXR1cm4gT1VUU0lERTsKICAgICBjYXNlIENTU1ZhbHVlSW5zaWRlOgogICAgICAgICBy
ZXR1cm4gSU5TSURFOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTYxOCwyOTAgKzE2NzEsMjkyIEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTGlzdFN0eWxlUG9zaXRpb24o
KSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKEVMaXN0U3R5bGVUeXBlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykK
IHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBBZmFy
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBZmFyOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUFmYXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQW1oYXJp
YzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQW1oYXJpYzsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbWhhcmljOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEFtaGFyaWNBYmVnZWRlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBbWhhcmlj
QWJlZ2VkZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbWhhcmljQWJlZ2Vk
ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcmFiaWNJbmRpYzoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQXJhYmljSW5kaWM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQXJhYmljSW5kaWM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXJtZW5pYW46
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFybWVuaWFuOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFybWVuaWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEFzdGVyaXNrczoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXN0ZXJpc2tzOwor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFzdGVyaXNrczsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBCaW5hcnlMaXN0U3R5bGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUJpbmFyeTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCaW5hcnk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmVuZ2FsaToKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQmVuZ2FsaTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVC
ZW5nYWxpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhbWJvZGlhbjoKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2FtYm9kaWFuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUNhbWJvZGlhbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDaXJjbGU6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNpcmNsZTsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVDaXJjbGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2prRWFy
dGhseUJyYW5jaDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2prRWFydGhseUJy
YW5jaDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDamtFYXJ0aGx5QnJhbmNo
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENqa0hlYXZlbmx5U3RlbToKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2prSGVhdmVubHlTdGVtOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUNqa0hlYXZlbmx5U3RlbTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDSktJZGVvZ3JhcGhpYzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2prSWRl
b2dyYXBoaWM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2prSWRlb2dyYXBo
aWM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGVjaW1hbExlYWRpbmdaZXJvOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEZWNpbWFsTGVhZGluZ1plcm87CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVjaW1hbExlYWRpbmdaZXJvOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIERlY2ltYWxMaXN0U3R5bGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZURlY2ltYWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVjaW1h
bDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEZXZhbmFnYXJpOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVEZXZhbmFnYXJpOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZURldmFuYWdhcmk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzYzoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGlzYzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVEaXNjOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGljOgotICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3BpYzsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpYzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFdGhp
b3BpY0FiZWdlZGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlvcGljQWJl
Z2VkZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0FiZWdlZGU7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRoaW9waWNBYmVnZWRlQW1FdDoKLSAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNBYmVnZWRlQW1FdDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0FiZWdlZGVBbUV0OwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEV0aGlvcGljQWJlZ2VkZUdlejoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlRXRoaW9waWNBYmVnZWRlR2V6OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUV0aGlvcGljQWJlZ2VkZUdlejsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFdGhp
b3BpY0FiZWdlZGVUaUVyOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3Bp
Y0FiZWdlZGVUaUVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV0aGlvcGlj
QWJlZ2VkZVRpRXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRoaW9waWNBYmVnZWRlVGlF
dDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNBYmVnZWRlVGlFdDsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0FiZWdlZGVUaUV0Owog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGljSGFsZWhhbWVBYUVyOgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lQWFFcjsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lQWFFcjsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBFdGhpb3BpY0hhbGVoYW1lQWFFdDoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZUFhRXQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZUFhRXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRXRoaW9waWNIYWxlaGFtZUFtRXQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUV0aGlvcGljSGFsZWhhbWVBbUV0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUV0aGlvcGljSGFsZWhhbWVBbUV0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGlj
SGFsZWhhbWVHZXo6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlvcGljSGFs
ZWhhbWVHZXo7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNIYWxl
aGFtZUdlejsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFdGhpb3BpY0hhbGVoYW1lT21FdDoK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZU9tRXQ7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZU9tRXQ7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRoaW9waWNIYWxlaGFtZVNpZEV0OgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lU2lkRXQ7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZVNpZEV0OwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEV0aGlvcGljSGFsZWhhbWVTb0V0OgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lU29FdDsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lU29FdDsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBFdGhpb3BpY0hhbGVoYW1lVGlFcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlRXRoaW9waWNIYWxlaGFtZVRpRXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRXRoaW9waWNIYWxlaGFtZVRpRXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRoaW9w
aWNIYWxlaGFtZVRpRXQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlvcGlj
SGFsZWhhbWVUaUV0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV0aGlvcGlj
SGFsZWhhbWVUaUV0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGljSGFsZWhhbWVU
aWc6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlvcGljSGFsZWhhbWVUaWc7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZVRpZzsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGb290bm90ZXM6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUZvb3Rub3RlczsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVGb290bm90ZXM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR2VvcmdpYW46Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUdlb3JnaWFuOworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUdlb3JnaWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEd1amFyYXRp
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVHdWphcmF0aTsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVHdWphcmF0aTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBHdXJtdWtoaToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlR3VybXVraGk7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlR3VybXVraGk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgSGFuZ3VsOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIYW5n
dWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGFuZ3VsOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEhhbmd1bENvbnNvbmFudDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlSGFuZ3VsQ29uc29uYW50OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUhhbmd1bENvbnNvbmFudDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBIZWJyZXc6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhlYnJldzsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVIZWJyZXc7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSGlyYWdh
bmE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhpcmFnYW5hOworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpcmFnYW5hOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEhpcmFnYW5hSXJvaGE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhpcmFn
YW5hSXJvaGE7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGlyYWdhbmFJcm9o
YTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBLYW5uYWRhOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVLYW5uYWRhOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUthbm5hZGE7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgS2F0YWthbmE6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUthdGFrYW5hOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUthdGFrYW5hOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEthdGFrYW5hSXJv
aGE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUthdGFrYW5hSXJvaGE7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlS2F0YWthbmFJcm9oYTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBLaG1lcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlS2ht
ZXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlS2htZXI7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgTGFvOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMYW87
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGFvOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIExvd2VyQWxwaGE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxv
d2VyQWxwaGE7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTG93ZXJBbHBoYTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMb3dlckFybWVuaWFuOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVMb3dlckFybWVuaWFuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUxvd2VyQXJtZW5pYW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTG93ZXJH
cmVlazoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTG93ZXJHcmVlazsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMb3dlckdyZWVrOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIExvd2VySGV4YWRlY2ltYWw6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUxvd2VySGV4YWRlY2ltYWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TG93ZXJIZXhhZGVjaW1hbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMb3dlckxhdGluOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb3dlckxhdGluOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvd2VyTGF0aW47CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgTG93ZXJOb3J3ZWdpYW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxvd2Vy
Tm9yd2VnaWFuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvd2VyTm9yd2Vn
aWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExvd2VyUm9tYW46Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUxvd2VyUm9tYW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTG93ZXJSb21hbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNYWxheWFsYW06
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1hbGF5YWxhbTsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNYWxheWFsYW07CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgTW9uZ29saWFuOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNb25nb2xpYW47
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTW9uZ29saWFuOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE15YW5tYXI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZU15YW5tYXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTXlhbm1hcjsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb25lTGlzdFN0eWxlOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5v
bmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT2N0YWw6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZU9jdGFsOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9j
dGFsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE9yaXlhOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVPcml5YTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVP
cml5YTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPcm9tbzoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlT3JvbW87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
T3JvbW87CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGVyc2lhbjoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlUGVyc2lhbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVQZXJzaWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNpZGFtYToKLSAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2lkYW1hOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVNpZGFtYTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTb21hbGk6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNvbWFsaTsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVTb21hbGk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3F1YXJlOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcXVhcmU7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRlbHVn
dToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGVsdWd1OworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRlbHVndTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBU
aGFpOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUaGFpOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRoYWk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGli
ZXRhbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGliZXRhbjsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUaWJldGFuOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFRpZ3JlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUaWdyZTsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUaWdyZTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUaWdyaW55YUVyOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUaWdyaW55
YUVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRpZ3JpbnlhRXI7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgVGlncmlueWFFckFiZWdlZGU6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZVRpZ3JpbnlhRXJBYmVnZWRlOworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVRpZ3JpbnlhRXJBYmVnZWRlOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFRpZ3JpbnlhRXQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRpZ3JpbnlhRXQ7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGlncmlueWFFdDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUaWdyaW55YUV0QWJlZ2VkZToKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlVGlncmlueWFFdEFiZWdlZGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlVGlncmlueWFFdEFiZWdlZGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVXBw
ZXJBbHBoYToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXBwZXJBbHBoYTsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVcHBlckFscGhhOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFVwcGVyQXJtZW5pYW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZVVwcGVyQXJtZW5pYW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXBw
ZXJBcm1lbmlhbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVcHBlckdyZWVrOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVVcHBlckdyZWVrOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVVwcGVyR3JlZWs7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVXBw
ZXJIZXhhZGVjaW1hbDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXBwZXJIZXhh
ZGVjaW1hbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVcHBlckhleGFkZWNp
bWFsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVwcGVyTGF0aW46Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVVwcGVyTGF0aW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlVXBwZXJMYXRpbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVcHBlck5vcndl
Z2lhbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXBwZXJOb3J3ZWdpYW47Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXBwZXJOb3J3ZWdpYW47CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVXBwZXJSb21hbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlVXBwZXJSb21hbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVcHBl
clJvbWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVyZHU6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZVVyZHU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
VXJkdTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUxpc3RTdHlsZVR5cGUoKSBjb25zdAogewotICAgIHN3
aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlTm9uZToKLSAgICAg
ICAgICAgIHJldHVybiBOb25lTGlzdFN0eWxlOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEVMaXN0U3R5bGVUeXBlPihtX3ZhbHVlLmlkZW50IC0gQ1NT
VmFsdWVEaXNjKTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NT
VmFsdWVOb25lOgorICAgICAgICByZXR1cm4gTm9uZUxpc3RTdHlsZTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RUxpc3RTdHlsZVR5cGU+KG1fdmFsdWUudmFsdWVJ
RCAtIENTU1ZhbHVlRGlzYyk7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRU1hcmdpbkNvbGxhcHNlIGUpCiAgICAgOiBD
U1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NT
X0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dp
dGNoIChlKSB7Ci0gICAgICAgIGNhc2UgTUNPTExBUFNFOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlQ29sbGFwc2U7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBNU0VQQVJBVEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTZXBhcmF0
ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1ESVNDQVJEOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGlzY2FyZDsKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTUNPTExBUFNFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNv
bGxhcHNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1TRVBBUkFURToKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZXBhcmF0ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBNRElTQ0FSRDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEaXNjYXJkOwor
ICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBFTWFyZ2luQ29sbGFwc2UoKSBjb25zdAogewotICAgIHN3aXRjaCAo
bV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlQ29sbGFwc2U6Ci0gICAgICAg
ICAgICByZXR1cm4gTUNPTExBUFNFOwotICAgICAgICBjYXNlIENTU1ZhbHVlU2VwYXJhdGU6Ci0g
ICAgICAgICAgICByZXR1cm4gTVNFUEFSQVRFOwotICAgICAgICBjYXNlIENTU1ZhbHVlRGlzY2Fy
ZDoKLSAgICAgICAgICAgIHJldHVybiBNRElTQ0FSRDsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVDb2xsYXBzZToKKyAgICAgICAgcmV0dXJuIE1DT0xM
QVBTRTsKKyAgICBjYXNlIENTU1ZhbHVlU2VwYXJhdGU6CisgICAgICAgIHJldHVybiBNU0VQQVJB
VEU7CisgICAgY2FzZSBDU1NWYWx1ZURpc2NhcmQ6CisgICAgICAgIHJldHVybiBNRElTQ0FSRDsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTE5MTEsMzQgKzE5NjYsMzYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVNYXJnaW5Db2xsYXBzZSgpIGNvbnN0CiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRU1hcnF1ZWVCZWhh
dmlvciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZB
TFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIE1OT05FOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIE1TQ1JPTEw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVT
Y3JvbGw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNU0xJREU6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTbGlkZTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIE1BTFRFUk5BVEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVBbHRlcm5hdGU7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIE1OT05FOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTVNDUk9MTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTY3JvbGw7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTVNMSURFOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVNsaWRlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1BTFRFUk5BVEU6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWx0ZXJuYXRlOworICAgICAgICBi
cmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFTWFycXVlZUJlaGF2aW9yKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
aWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6Ci0gICAgICAgICAgICByZXR1cm4g
TU5PTkU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTY3JvbGw6Ci0gICAgICAgICAgICByZXR1cm4g
TVNDUk9MTDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVNsaWRlOgotICAgICAgICAgICAgcmV0dXJu
IE1TTElERTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFsdGVybmF0ZToKLSAgICAgICAgICAgIHJl
dHVybiBNQUxURVJOQVRFOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2Fz
ZSBDU1NWYWx1ZU5vbmU6CisgICAgICAgIHJldHVybiBNTk9ORTsKKyAgICBjYXNlIENTU1ZhbHVl
U2Nyb2xsOgorICAgICAgICByZXR1cm4gTVNDUk9MTDsKKyAgICBjYXNlIENTU1ZhbHVlU2xpZGU6
CisgICAgICAgIHJldHVybiBNU0xJREU7CisgICAgY2FzZSBDU1NWYWx1ZUFsdGVybmF0ZToKKyAg
ICAgICAgcmV0dXJuIE1BTFRFUk5BVEU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAg
ICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xOTQ4LDI0ICsyMDA1LDI2IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTWFycXVlZUJl
aGF2aW9yKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShSZWdpb25GcmFnbWVudCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZl
Q2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNh
c2UgQXV0b1JlZ2lvbkZyYWdtZW50OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVB
dXRvOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQnJlYWtSZWdpb25GcmFnbWVudDoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQnJlYWs7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQnJl
YWs7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJlZ2lvbkZyYWdtZW50KCkgY29uc3QKIHsKLSAgICBzd2l0
Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAg
IGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gQXV0b1JlZ2lvbkZyYWdtZW50Owog
ICAgIGNhc2UgQ1NTVmFsdWVCcmVhazoKICAgICAgICAgcmV0dXJuIEJyZWFrUmVnaW9uRnJhZ21l
bnQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0xOTc1LDUxICsyMDM0LDUzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBSZWdpb25GcmFnbWVudCgpIGNvbnN0CiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRU1hcnF1ZWVE
aXJlY3Rpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBNRk9SV0FSRDoKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZvcndhcmRzOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgTUJBQ0tXQVJEOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQmFja3dhcmRzOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
TUFVVE86Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTVVQOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlVXA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNRE9XTjoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURvd247Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBNTEVGVDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUxlZnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNUklHSFQ6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSaWdodDsKLSAgICAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTUZPUldBUkQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRm9yd2FyZHM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTUJBQ0tXQVJEOgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJhY2t3YXJkczsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBNQVVUTzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE1VUDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNRE9XTjoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEb3duOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1M
RUZUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTVJJR0hUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVJpZ2h0OworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTWFycXVlZURpcmVjdGlvbigpIGNvbnN0CiB7Ci0g
ICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVGb3J3YXJk
czoKLSAgICAgICAgICAgIHJldHVybiBNRk9SV0FSRDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJh
Y2t3YXJkczoKLSAgICAgICAgICAgIHJldHVybiBNQkFDS1dBUkQ7Ci0gICAgICAgIGNhc2UgQ1NT
VmFsdWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIE1BVVRPOwotICAgICAgICBjYXNlIENTU1Zh
bHVlQWhlYWQ6Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVVcDogLy8gV2UgZG9uJ3Qgc3VwcG9ydCB2
ZXJ0aWNhbCBsYW5ndWFnZXMsIHNvIEFIRUFEIGp1c3QgbWFwcyB0byBVUC4KLSAgICAgICAgICAg
IHJldHVybiBNVVA7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVSZXZlcnNlOgotICAgICAgICBjYXNl
IENTU1ZhbHVlRG93bjogLy8gUkVWRVJTRSBqdXN0IG1hcHMgdG8gRE9XTiwgc2luY2Ugd2UgZG9u
J3QgZG8gdmVydGljYWwgdGV4dC4KLSAgICAgICAgICAgIHJldHVybiBNRE9XTjsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUxlZnQ6Ci0gICAgICAgICAgICByZXR1cm4gTUxFRlQ7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVSaWdodDoKLSAgICAgICAgICAgIHJldHVybiBNUklHSFQ7CisgICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlRm9yd2FyZHM6CisgICAgICAg
IHJldHVybiBNRk9SV0FSRDsKKyAgICBjYXNlIENTU1ZhbHVlQmFja3dhcmRzOgorICAgICAgICBy
ZXR1cm4gTUJBQ0tXQVJEOworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4g
TUFVVE87CisgICAgY2FzZSBDU1NWYWx1ZUFoZWFkOgorICAgIGNhc2UgQ1NTVmFsdWVVcDogLy8g
V2UgZG9uJ3Qgc3VwcG9ydCB2ZXJ0aWNhbCBsYW5ndWFnZXMsIHNvIEFIRUFEIGp1c3QgbWFwcyB0
byBVUC4KKyAgICAgICAgcmV0dXJuIE1VUDsKKyAgICBjYXNlIENTU1ZhbHVlUmV2ZXJzZToKKyAg
ICBjYXNlIENTU1ZhbHVlRG93bjogLy8gUkVWRVJTRSBqdXN0IG1hcHMgdG8gRE9XTiwgc2luY2Ug
d2UgZG9uJ3QgZG8gdmVydGljYWwgdGV4dC4KKyAgICAgICAgcmV0dXJuIE1ET1dOOworICAgIGNh
c2UgQ1NTVmFsdWVMZWZ0OgorICAgICAgICByZXR1cm4gTUxFRlQ7CisgICAgY2FzZSBDU1NWYWx1
ZVJpZ2h0OgorICAgICAgICByZXR1cm4gTVJJR0hUOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjAyOSwyNCArMjA5
MCwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU1h
cnF1ZWVEaXJlY3Rpb24oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVOQlNQTW9kZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAg
ICAgICBjYXNlIE5CTk9STUFMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
Tm9ybWFsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU1BBQ0U6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcGFjZTsKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTkJOT1JNQUw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9y
bWFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNQQUNFOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVNwYWNlOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTkJTUE1vZGUoKSBjb25z
dAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVl
U3BhY2U6Ci0gICAgICAgICAgICByZXR1cm4gU1BBQ0U7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVO
b3JtYWw6Ci0gICAgICAgICAgICByZXR1cm4gTkJOT1JNQUw7CisgICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlU3BhY2U6CisgICAgICAgIHJldHVybiBTUEFD
RTsKKyAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgorICAgICAgICByZXR1cm4gTkJOT1JNQUw7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0yMDU2LDU0ICsyMTE5LDU2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFTkJTUE1vZGUoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVPdmVyZmxvdyBlKQogICAgIDog
Q1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3
aXRjaCAoZSkgewotICAgICAgICBjYXNlIE9WSVNJQkxFOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlVmlzaWJsZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IE9ISURERU46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIaWRkZW47Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBPU0NST0xMOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2Nyb2xsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgT0FVVE86Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT01BUlFVRUU6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRNYXJxdWVlOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgT09WRVJMQVk6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVPdmVybGF5OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT1BBR0VEWDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdFBhZ2VkWDsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE9QQUdFRFk6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVXZWJraXRQYWdlZFk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBj
YXNlIE9WSVNJQkxFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpc2libGU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT0hJRERFTjoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVIaWRkZW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT1NDUk9MTDoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTY3JvbGw7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgT0FVVE86CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0
bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPTUFSUVVFRToKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRNYXJxdWVlOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IE9PVkVSTEFZOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU92ZXJsYXk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgT1BBR0VEWDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVXZWJraXRQYWdlZFg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT1BBR0VE
WToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRQYWdlZFk7CisgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIEVPdmVyZmxvdygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlk
ZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlOgotICAgICAgICAgICAgcmV0dXJu
IE9WSVNJQkxFOwotICAgICAgICBjYXNlIENTU1ZhbHVlSGlkZGVuOgotICAgICAgICAgICAgcmV0
dXJuIE9ISURERU47Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTY3JvbGw6Ci0gICAgICAgICAgICBy
ZXR1cm4gT1NDUk9MTDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAgICAgICBy
ZXR1cm4gT0FVVE87Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRNYXJxdWVlOgotICAgICAg
ICAgICAgcmV0dXJuIE9NQVJRVUVFOwotICAgICAgICBjYXNlIENTU1ZhbHVlT3ZlcmxheToKLSAg
ICAgICAgICAgIHJldHVybiBPT1ZFUkxBWTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdFBh
Z2VkWDoKLSAgICAgICAgICAgIHJldHVybiBPUEFHRURYOwotICAgICAgICBjYXNlIENTU1ZhbHVl
V2Via2l0UGFnZWRZOgotICAgICAgICAgICAgcmV0dXJuIE9QQUdFRFk7CisgICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZToKKyAgICAgICAgcmV0
dXJuIE9WSVNJQkxFOworICAgIGNhc2UgQ1NTVmFsdWVIaWRkZW46CisgICAgICAgIHJldHVybiBP
SElEREVOOworICAgIGNhc2UgQ1NTVmFsdWVTY3JvbGw6CisgICAgICAgIHJldHVybiBPU0NST0xM
OworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4gT0FVVE87CisgICAgY2Fz
ZSBDU1NWYWx1ZVdlYmtpdE1hcnF1ZWU6CisgICAgICAgIHJldHVybiBPTUFSUVVFRTsKKyAgICBj
YXNlIENTU1ZhbHVlT3ZlcmxheToKKyAgICAgICAgcmV0dXJuIE9PVkVSTEFZOworICAgIGNhc2Ug
Q1NTVmFsdWVXZWJraXRQYWdlZFg6CisgICAgICAgIHJldHVybiBPUEFHRURYOworICAgIGNhc2Ug
Q1NTVmFsdWVXZWJraXRQYWdlZFk6CisgICAgICAgIHJldHVybiBPUEFHRURZOworICAgIGRlZmF1
bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtMjExMywzMSArMjE3OCwzMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRU92ZXJmbG93KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFUGFnZUJyZWFrIGUpCiAgICAgOiBDU1NWYWx1
ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5U
OworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChl
KSB7Ci0gICAgICAgIGNhc2UgUEJBVVRPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBCQUxXQVlTOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWx3YXlzOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgUEJBVk9JRDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUF2b2lkOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQQkFVVE86Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQQkFMV0FZUzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbHdh
eXM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUEJBVk9JRDoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVBdm9pZDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVBhZ2VCcmVhaygpIGNv
bnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFs
dWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIFBCQVVUTzsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZUxlZnQ6Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZUFsd2F5czoKLSAgICAgICAgICAgIHJldHVybiBQQkFMV0FZUzsgLy8gQ1NTMi4xOiAiQ29uZm9y
bWluZyB1c2VyIGFnZW50cyBtYXkgbWFwIGxlZnQvcmlnaHQgdG8gYWx3YXlzLiIKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUF2b2lkOgotICAgICAgICAgICAgcmV0dXJuIFBCQVZPSUQ7CisgICAgc3dp
dGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAg
cmV0dXJuIFBCQVVUTzsKKyAgICBjYXNlIENTU1ZhbHVlTGVmdDoKKyAgICBjYXNlIENTU1ZhbHVl
UmlnaHQ6CisgICAgY2FzZSBDU1NWYWx1ZUFsd2F5czoKKyAgICAgICAgcmV0dXJuIFBCQUxXQVlT
OyAvLyBDU1MyLjE6ICJDb25mb3JtaW5nIHVzZXIgYWdlbnRzIG1heSBtYXAgbGVmdC9yaWdodCB0
byBhbHdheXMuIgorICAgIGNhc2UgQ1NTVmFsdWVBdm9pZDoKKyAgICAgICAgcmV0dXJuIFBCQVZP
SUQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0yMTQ3LDQzICsyMjE0LDQ1IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUGFnZUJyZWFrKCkgY29uc3QKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFUG9zaXRpb24gZSkK
ICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsK
ICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBTdGF0aWNQb3NpdGlvbjoKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXRpYzsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFJlbGF0aXZlUG9zaXRpb246Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVSZWxhdGl2ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFi
c29sdXRlUG9zaXRpb246Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBYnNv
bHV0ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEZpeGVkUG9zaXRpb246Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGaXhlZDsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIFN0aWNreVBvc2l0aW9uOgorICAgIGNhc2UgU3RhdGljUG9zaXRp
b246CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RhdGljOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFJlbGF0aXZlUG9zaXRpb246CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlUmVsYXRpdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWJzb2x1dGVQ
b3NpdGlvbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBYnNvbHV0ZTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBGaXhlZFBvc2l0aW9uOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUZpeGVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0aWNreVBv
c2l0aW9uOgogI2lmIEVOQUJMRShDU1NfU1RJQ0tZX1BPU0lUSU9OKQotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0U3RpY2t5OworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVdlYmtpdFN0aWNreTsKICNlbmRpZgotICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTdGF0aWM6Ci0gICAgICAgICAgICByZXR1
cm4gU3RhdGljUG9zaXRpb247Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVSZWxhdGl2ZToKLSAgICAg
ICAgICAgIHJldHVybiBSZWxhdGl2ZVBvc2l0aW9uOwotICAgICAgICBjYXNlIENTU1ZhbHVlQWJz
b2x1dGU6Ci0gICAgICAgICAgICByZXR1cm4gQWJzb2x1dGVQb3NpdGlvbjsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUZpeGVkOgotICAgICAgICAgICAgcmV0dXJuIEZpeGVkUG9zaXRpb247CisgICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlU3RhdGljOgorICAg
ICAgICByZXR1cm4gU3RhdGljUG9zaXRpb247CisgICAgY2FzZSBDU1NWYWx1ZVJlbGF0aXZlOgor
ICAgICAgICByZXR1cm4gUmVsYXRpdmVQb3NpdGlvbjsKKyAgICBjYXNlIENTU1ZhbHVlQWJzb2x1
dGU6CisgICAgICAgIHJldHVybiBBYnNvbHV0ZVBvc2l0aW9uOworICAgIGNhc2UgQ1NTVmFsdWVG
aXhlZDoKKyAgICAgICAgcmV0dXJuIEZpeGVkUG9zaXRpb247CiAjaWYgRU5BQkxFKENTU19TVElD
S1lfUE9TSVRJT04pCi0gICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRTdGlja3k6Ci0gICAgICAg
ICAgICByZXR1cm4gU3RpY2t5UG9zaXRpb247CisgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdFN0aWNr
eToKKyAgICAgICAgcmV0dXJuIFN0aWNreVBvc2l0aW9uOwogI2VuZGlmCisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0y
MTkzLDM3ICsyMjYyLDM5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFUG9zaXRpb24oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVSZXNpemUgZSkKICAgICA6IENTU1ZhbHVlKFByaW1p
dGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAg
bV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAg
ICAgICAgY2FzZSBSRVNJWkVfQk9USDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUJvdGg7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSRVNJWkVfSE9SSVpP
TlRBTDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhvcml6b250YWw7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSRVNJWkVfVkVSVElDQUw6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWZXJ0aWNhbDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFJFU0laRV9OT05FOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUkVTSVpFX0JPVEg6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90aDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBSRVNJWkVfSE9SSVpPTlRBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVIb3Jpem9udGFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJFU0laRV9WRVJU
SUNBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBSRVNJWkVfTk9ORToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUmVzaXplKCkgY29uc3QKIHsKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJvdGg6Ci0g
ICAgICAgICAgICByZXR1cm4gUkVTSVpFX0JPVEg7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVIb3Jp
em9udGFsOgotICAgICAgICAgICAgcmV0dXJuIFJFU0laRV9IT1JJWk9OVEFMOwotICAgICAgICBj
YXNlIENTU1ZhbHVlVmVydGljYWw6Ci0gICAgICAgICAgICByZXR1cm4gUkVTSVpFX1ZFUlRJQ0FM
OwotICAgICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyAvLyBEZXBlbmRzIG9uIHNldHRpbmdzLCB0aHVzIHNob3VsZCBiZSBoYW5kbGVkIGJ5
IHRoZSBjYWxsZXIuCi0gICAgICAgICAgICByZXR1cm4gUkVTSVpFX05PTkU7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVOb25lOgotICAgICAgICAgICAgcmV0dXJuIFJFU0laRV9OT05FOworICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUJvdGg6CisgICAgICAg
IHJldHVybiBSRVNJWkVfQk9USDsKKyAgICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRhbDoKKyAgICAg
ICAgcmV0dXJuIFJFU0laRV9IT1JJWk9OVEFMOworICAgIGNhc2UgQ1NTVmFsdWVWZXJ0aWNhbDoK
KyAgICAgICAgcmV0dXJuIFJFU0laRV9WRVJUSUNBTDsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIERlcGVuZHMgb24gc2V0dGluZ3MsIHRo
dXMgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGNhbGxlci4KKyAgICAgICAgcmV0dXJuIFJFU0la
RV9OT05FOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAgICByZXR1cm4gUkVTSVpFX05P
TkU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0yMjMzLDI0ICsyMzA0LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUmVzaXplKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVGFibGVMYXlvdXQgZSkK
ICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsK
ICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBUQVVUTzoKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBURklYRUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGaXhlZDsKLSAg
ICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFVVE86CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBURklYRUQ6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRml4ZWQ7CisgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVU
YWJsZUxheW91dCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVGaXhlZDoKLSAgICAgICAgICAgIHJldHVybiBURklYRUQ7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIFRBVVRPOworICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUZpeGVkOgorICAgICAg
ICByZXR1cm4gVEZJWEVEOworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4g
VEFVVE87CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC0yMjYwLDQ4ICsyMzMzLDQ4IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVGFibGVMYXlvdXQoKSBjb25zdAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVUZXh0QWxp
Z24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxV
RV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRBU1RBUlQ6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXJ0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVN0YXJ0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRBRU5EOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRW5kOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExFRlQ6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TGVmdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSSUdIVDoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
UmlnaHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ0VOVEVSOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ2VudGVyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEpVU1RJRlk6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUp1c3RpZnk7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlSnVzdGlmeTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXRUJLSVRfTEVGVDoK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0TGVmdDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRMZWZ0OwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFdFQktJVF9SSUdIVDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0
UmlnaHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0UmlnaHQ7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgV0VCS0lUX0NFTlRFUjoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlV2Via2l0Q2VudGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVdlYmtpdENlbnRlcjsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRBbGlnbigpIGNvbnN0
CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0QXV0bzogLy8gTGVnYWN5IC13ZWJraXQt
YXV0by4gRXFpdXZhbGVudCB0byBzdGFydC4KICAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CiAgICAg
ICAgIHJldHVybiBUQVNUQVJUOwogICAgIGNhc2UgQ1NTVmFsdWVFbmQ6CiAgICAgICAgIHJldHVy
biBUQUVORDsKICAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHRB
bGlnbj4obV92YWx1ZS5pZGVudCAtIENTU1ZhbHVlTGVmdCk7CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxFVGV4dEFsaWduPihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1ZUxlZnQpOwogICAg
IH0KIH0KIApAQCAtMjMwOSwzNSArMjM4MiwzNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRBbGlnbigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dEFsaWduTGFzdCBlKQog
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwog
ICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dEFsaWduTGFzdFN0YXJ0OgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTdGFydDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTdGFydDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25MYXN0RW5k
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlRW5kOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbGln
bkxhc3RMZWZ0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMZWZ0OworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVGV4dEFsaWduTGFzdFJpZ2h0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVS
aWdodDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25MYXN0Q2VudGVyOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Q2VudGVyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbGlnbkxhc3RKdXN0aWZ5Ogot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVKdXN0aWZ5OworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUp1c3RpZnk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4
dEFsaWduTGFzdEF1dG86Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
VGV4dEFsaWduTGFzdCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Cisg
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAg
ICAgICAgcmV0dXJuIFRleHRBbGlnbkxhc3RBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVTdGFydDoK
QEAgLTIzNTIsNiArMjQyNSw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBUZXh0QWxpZ25MYXN0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIFRleHRBbGln
bkxhc3RDZW50ZXI7CiAgICAgY2FzZSBDU1NWYWx1ZUp1c3RpZnk6CiAgICAgICAgIHJldHVybiBU
ZXh0QWxpZ25MYXN0SnVzdGlmeTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIzNjEsMzUgKzI0MzYsMzUgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRBbGlnbkxhc3Qo
KSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKFRleHRKdXN0aWZ5IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsK
LSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0SnVz
dGlmeUF1dG86Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBUZXh0SnVzdGlmeU5vbmU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBUZXh0SnVzdGlmeUludGVyV29yZDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlSW50ZXJXb3JkOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlu
dGVyV29yZDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0SnVzdGlmeUludGVySWRlb2dy
YXBoOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVJbnRlcklkZW9ncmFwaDsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbnRlcklkZW9ncmFwaDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUZXh0SnVzdGlmeUludGVyQ2x1c3RlcjoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlSW50ZXJDbHVzdGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUludGVyQ2x1c3RlcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0SnVz
dGlmeURpc3RyaWJ1dGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURpc3RyaWJ1
dGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGlzdHJpYnV0ZTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0SnVzdGlmeUthc2hpZGE6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUthc2hpZGE7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlS2FzaGlkYTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEp1c3RpZnkoKSBjb25zdAogewotICAg
IHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBUZXh0SnVzdGlmeUF1dG87
CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CkBAIC0yNDA0LDYgKzI0NzksOCBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEp1c3RpZnkoKSBjb25zdAog
ICAgICAgICByZXR1cm4gVGV4dEp1c3RpZnlEaXN0cmlidXRlOwogICAgIGNhc2UgQ1NTVmFsdWVL
YXNoaWRhOgogICAgICAgICByZXR1cm4gVGV4dEp1c3RpZnlLYXNoaWRhOworICAgIGRlZmF1bHQ6
CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
MjQxMyw3ICsyNDkwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFRleHRKdXN0aWZ5KCkgY29uc3QKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIFRleHREZWNvcmF0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2gg
KG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNh
c2UgQ1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25Ob25lOwogICAg
IGNhc2UgQ1NTVmFsdWVVbmRlcmxpbmU6CkBAIC0yNDI0LDYgKzI1MDEsOCBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERlY29yYXRpb24oKSBjb25z
dAogICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25MaW5lVGhyb3VnaDsKICAgICBjYXNlIENT
U1ZhbHVlQmxpbms6CiAgICAgICAgIHJldHVybiBUZXh0RGVjb3JhdGlvbkJsaW5rOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpAQCAtMjQzMyw3ICsyNTEyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFRleHREZWNvcmF0aW9uKCkgY29uc3QKICNpZiBFTkFCTEUoQ1NTM19URVhU
KQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHREZWNv
cmF0aW9uU3R5bGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNvbGlkOgogICAg
ICAgICByZXR1cm4gVGV4dERlY29yYXRpb25TdHlsZVNvbGlkOwogICAgIGNhc2UgQ1NTVmFsdWVE
b3VibGU6CkBAIC0yNDQ0LDYgKzI1MjMsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERlY29yYXRpb25TdHlsZSgpIGNvbnN0CiAgICAgICAgIHJl
dHVybiBUZXh0RGVjb3JhdGlvblN0eWxlRGFzaGVkOwogICAgIGNhc2UgQ1NTVmFsdWVXYXZ5Ogog
ICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25TdHlsZVdhdnk7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yNDUz
LDE2ICsyNTM0LDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBUZXh0RGVjb3JhdGlvblN0eWxlKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0VW5kZXJsaW5lUG9zaXRpb24gZSkK
ICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsK
ICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbkF1dG86Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0VW5kZXJs
aW5lUG9zaXRpb25BbHBoYWJldGljOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVB
bHBoYWJldGljOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFscGhhYmV0aWM7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXI6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVVuZGVyOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVVuZGVyOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTI0NzEs
MTMgKzI1NTIsMTUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1By
aW1pdGl2ZVZhbHVlKFRleHRVbmRlcmxpbmVQb3NpdGlvbiBlKQogCiB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFVuZGVybGluZVBvc2l0aW9uKCkgY29u
c3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gVGV4dFVu
ZGVybGluZVBvc2l0aW9uQXV0bzsKICAgICBjYXNlIENTU1ZhbHVlQWxwaGFiZXRpYzoKICAgICAg
ICAgcmV0dXJuIFRleHRVbmRlcmxpbmVQb3NpdGlvbkFscGhhYmV0aWM7CiAgICAgY2FzZSBDU1NW
YWx1ZVVuZGVyOgogICAgICAgICByZXR1cm4gVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXI7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IEltcGxl
bWVudCBzdXBwb3J0IGZvciAndW5kZXIgbGVmdCcgYW5kICd1bmRlciByaWdodCcgdmFsdWVzLgpA
QCAtMjQ5MCwzNCArMjU3MywzNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgVGV4dFVuZGVybGluZVBvc2l0aW9uKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVGV4dFNlY3VyaXR5IGUp
CiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7
CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgVFNOT05FOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFRTRElTQzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURpc2M7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUU0NJUkNMRToKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNpcmNsZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIFRTU1FVQVJFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3F1
YXJlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUU05PTkU6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUU0RJ
U0M6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGlzYzsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBUU0NJUkNMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVDaXJjbGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVFNTUVVBUkU6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlOworICAgICAgICBicmVhazsKICAgICB9CiB9
CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVGV4dFNl
Y3VyaXR5KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZU5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gVFNOT05FOwotICAgICAgICBj
YXNlIENTU1ZhbHVlRGlzYzoKLSAgICAgICAgICAgIHJldHVybiBUU0RJU0M7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVDaXJjbGU6Ci0gICAgICAgICAgICByZXR1cm4gVFNDSVJDTEU7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVTcXVhcmU6Ci0gICAgICAgICAgICByZXR1cm4gVFNTUVVBUkU7CisgICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAg
ICAgcmV0dXJuIFRTTk9ORTsKKyAgICBjYXNlIENTU1ZhbHVlRGlzYzoKKyAgICAgICAgcmV0dXJu
IFRTRElTQzsKKyAgICBjYXNlIENTU1ZhbHVlQ2lyY2xlOgorICAgICAgICByZXR1cm4gVFNDSVJD
TEU7CisgICAgY2FzZSBDU1NWYWx1ZVNxdWFyZToKKyAgICAgICAgcmV0dXJuIFRTU1FVQVJFOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpAQCAtMjUyNywzNCArMjYxMiwzNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRTZWN1cml0eSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVRleHRUcmFuc2Zvcm0g
ZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9J
RDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBDQVBJVEFMSVpFOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2FwaXRhbGl6ZTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFVQUEVSQ0FTRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZVVwcGVyY2FzZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExPV0VS
Q0FTRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxvd2VyY2FzZTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRUTk9ORToKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIENB
UElUQUxJWkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2FwaXRhbGl6ZTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBVUFBFUkNBU0U6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlVXBwZXJjYXNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExPV0VS
Q0FTRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMb3dlcmNhc2U7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgVFROT05FOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0VHJhbnNmb3JtKCkgY29uc3QKIHsK
LSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUNhcGl0
YWxpemU6Ci0gICAgICAgICAgICByZXR1cm4gQ0FQSVRBTElaRTsKLSAgICAgICAgY2FzZSBDU1NW
YWx1ZVVwcGVyY2FzZToKLSAgICAgICAgICAgIHJldHVybiBVUFBFUkNBU0U7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVMb3dlcmNhc2U6Ci0gICAgICAgICAgICByZXR1cm4gTE9XRVJDQVNFOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlTm9uZToKLSAgICAgICAgICAgIHJldHVybiBUVE5PTkU7CisgICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQ2FwaXRhbGl6ZToK
KyAgICAgICAgcmV0dXJuIENBUElUQUxJWkU7CisgICAgY2FzZSBDU1NWYWx1ZVVwcGVyY2FzZToK
KyAgICAgICAgcmV0dXJuIFVQUEVSQ0FTRTsKKyAgICBjYXNlIENTU1ZhbHVlTG93ZXJjYXNlOgor
ICAgICAgICByZXR1cm4gTE9XRVJDQVNFOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAg
ICByZXR1cm4gVFROT05FOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjU2NCwzMiArMjY1MSwzMiBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRUcmFuc2Zvcm0oKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEVVbmljb2RlQmlkaSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVUJOb3JtYWw6
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRW1i
ZWQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUVtYmVkOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVtYmVkOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92
ZXJyaWRlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCaWRpT3ZlcnJpZGU7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmlkaU92ZXJyaWRlOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIElzb2xhdGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVdlYmtpdElzb2xhdGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0
SXNvbGF0ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJc29sYXRlT3ZlcnJpZGU6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdElzb2xhdGVPdmVycmlkZTsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRJc29sYXRlT3ZlcnJpZGU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgUGxhaW50ZXh0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVXZWJraXRQbGFpbnRleHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlV2Via2l0UGxhaW50ZXh0OwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVW5pY29kZUJpZGkoKSBjb25z
dAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIFVCTm9y
bWFsOwogICAgIGNhc2UgQ1NTVmFsdWVFbWJlZDoKQEAgLTI2MDIsNiArMjY4OSw4IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVW5pY29kZUJpZGkoKSBj
b25zdAogICAgICAgICByZXR1cm4gSXNvbGF0ZU92ZXJyaWRlOwogICAgIGNhc2UgQ1NTVmFsdWVX
ZWJraXRQbGFpbnRleHQ6CiAgICAgICAgIHJldHVybiBQbGFpbnRleHQ7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0y
NjExLDI5ICsyNzAwLDMzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFVW5pY29kZUJpZGkoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVVc2VyRHJhZyBlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkg
ewotICAgICAgICBjYXNlIERSQUdfQVVUTzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUF1dG87Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEUkFHX05PTkU6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgRFJBR19FTEVNRU5UOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlRWxlbWVudDsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgRFJB
R19BVVRPOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRFJBR19OT05FOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRFJBR19FTEVNRU5UOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVsZW1lbnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2VyRHJhZygpIGNvbnN0CiB7Ci0gICAg
c3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAg
ICAgICAgICAgcmV0dXJuIERSQUdfQVVUTzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6Ci0g
ICAgICAgICAgICByZXR1cm4gRFJBR19OT05FOwotICAgICAgICBjYXNlIENTU1ZhbHVlRWxlbWVu
dDoKLSAgICAgICAgICAgIHJldHVybiBEUkFHX0VMRU1FTlQ7CisgICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0dXJuIERSQUdf
QVVUTzsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIERSQUdfTk9ORTsK
KyAgICBjYXNlIENTU1ZhbHVlRWxlbWVudDoKKyAgICAgICAgcmV0dXJuIERSQUdfRUxFTUVOVDsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTI2NDMsMjkgKzI3MzYsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2VyRHJhZygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVVzZXJNb2RpZnkgZSkKICAg
ICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAg
ICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBSRUFEX09OTFk6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVSZWFkT25seTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIFJFQURfV1JJVEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVS
ZWFkV3JpdGU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSRUFEX1dSSVRFX1BM
QUlOVEVYVF9PTkxZOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmVhZFdy
aXRlUGxhaW50ZXh0T25seTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUkVBRF9PTkxZ
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlYWRPbmx5OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFJFQURfV1JJVEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlUmVhZFdyaXRlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJFQURfV1JJVEVfUExB
SU5URVhUX09OTFk6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmVhZFdyaXRl
UGxhaW50ZXh0T25seTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVzZXJNb2RpZnkoKSBjb25zdAogewot
ICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZVJlYWRPbmx5OgogICAgICAgICByZXR1cm4gUkVBRF9PTkxZ
OwogICAgIGNhc2UgQ1NTVmFsdWVSZWFkV3JpdGU6CiAgICAgICAgIHJldHVybiBSRUFEX1dSSVRF
OwogICAgIGNhc2UgQ1NTVmFsdWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5OgogICAgICAgICByZXR1
cm4gUkVBRF9XUklURV9QTEFJTlRFWFRfT05MWTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI2NzUsMzEgKzI3NzAs
MzMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2Vy
TW9kaWZ5KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShFVXNlclNlbGVjdCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xh
c3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1p
dGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBj
YXNlIFNFTEVDVF9OT05FOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9u
ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNFTEVDVF9URVhUOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4dDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFNFTEVDVF9BTEw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVBbGw7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIFNFTEVDVF9OT05FOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgU0VMRUNUX1RFWFQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4
dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTRUxFQ1RfQUxMOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUFsbDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVzZXJTZWxlY3QoKSBj
b25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1Zh
bHVlQXV0bzoKLSAgICAgICAgICAgIHJldHVybiBTRUxFQ1RfVEVYVDsKLSAgICAgICAgY2FzZSBD
U1NWYWx1ZU5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gU0VMRUNUX05PTkU7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVUZXh0OgotICAgICAgICAgICAgcmV0dXJuIFNFTEVDVF9URVhUOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlQWxsOgotICAgICAgICAgICAgcmV0dXJuIFNFTEVDVF9BTEw7CisgICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAg
ICAgcmV0dXJuIFNFTEVDVF9URVhUOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAgICBy
ZXR1cm4gU0VMRUNUX05PTkU7CisgICAgY2FzZSBDU1NWYWx1ZVRleHQ6CisgICAgICAgIHJldHVy
biBTRUxFQ1RfVEVYVDsKKyAgICBjYXNlIENTU1ZhbHVlQWxsOgorICAgICAgICByZXR1cm4gU0VM
RUNUX0FMTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI3MDksNDMgKzI4MDYsNDMgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2VyU2VsZWN0KCkgY29uc3QKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVmVydGlj
YWxBbGlnbiBhKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NT
X1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoYSkgewogICAgIGNhc2UgVE9QOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVUb3A7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlVG9wOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJPVFRPTToKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQm90dG9tOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUJvdHRvbTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNSURETEU6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1pZGRsZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVNaWRkbGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQkFTRUxJTkU6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJhc2VsaW5lOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUJhc2VsaW5lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRFWFRf
Qk9UVE9NOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUZXh0Qm90dG9tOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRCb3R0b207CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgVEVYVF9UT1A6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRl
eHRUb3A7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dFRvcDsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBTVUI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVN1YjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdWI7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgU1VQRVI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN1
cGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN1cGVyOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEJBU0VMSU5FX01JRERMRToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlV2Via2l0QmFzZWxpbmVNaWRkbGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlV2Via2l0QmFzZWxpbmVNaWRkbGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TEVOR1RIOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVJbnZhbGlkOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUludmFsaWQ7CiAgICAgfQogfQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVZlcnRpY2FsQWxpZ24oKSBj
b25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVRvcDoKICAgICAgICAgcmV0dXJuIFRPUDsK
ICAgICBjYXNlIENTU1ZhbHVlQm90dG9tOgpAQCAtMjc2NCw2ICsyODYxLDggQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVWZXJ0aWNhbEFsaWduKCkgY29u
c3QKICAgICAgICAgcmV0dXJuIFNVUEVSOwogICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRCYXNlbGlu
ZU1pZGRsZToKICAgICAgICAgcmV0dXJuIEJBU0VMSU5FX01JRERMRTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI3
NzMsMjkgKzI4NzIsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIEVWZXJ0aWNhbEFsaWduKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVmlzaWJpbGl0eSBlKQogICAgIDogQ1NTVmFs
dWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVO
VDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAo
ZSkgewotICAgICAgICBjYXNlIFZJU0lCTEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVWaXNpYmxlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSElEREVO
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGlkZGVuOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ09MTEFQU0U6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVDb2xsYXBzZTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgVklT
SUJMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaXNpYmxlOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEhJRERFTjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVIaWRkZW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ09MTEFQU0U6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sbGFwc2U7CisgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVW
aXNpYmlsaXR5KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZUhpZGRlbjoKLSAgICAgICAgICAgIHJldHVybiBISURERU47Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlOgotICAgICAgICAgICAgcmV0dXJuIFZJU0lCTEU7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVDb2xsYXBzZToKLSAgICAgICAgICAgIHJldHVybiBDT0xMQVBT
RTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVIaWRk
ZW46CisgICAgICAgIHJldHVybiBISURERU47CisgICAgY2FzZSBDU1NWYWx1ZVZpc2libGU6Cisg
ICAgICAgIHJldHVybiBWSVNJQkxFOworICAgIGNhc2UgQ1NTVmFsdWVDb2xsYXBzZToKKyAgICAg
ICAgcmV0dXJuIENPTExBUFNFOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0K
IAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjgwNSw0NCArMjkwNiw0NiBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVZpc2liaWxpdHkoKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEVXaGl0ZVNwYWNlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgTk9STUFM
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9ybWFsOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFJFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlUHJlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFJFX1dSQVA6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVQcmVXcmFwOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFJFX0xJTkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVQcmVMaW5lOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Tk9XUkFQOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm93cmFwOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgS0hUTUxfTk9XUkFQOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0Tm93cmFwOwotICAgICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBOT1JNQUw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9y
bWFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBSRToKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVQcmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJFX1dSQVA6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJlV3JhcDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBQUkVfTElORToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQ
cmVMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5PV1JBUDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3dyYXA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgS0hU
TUxfTk9XUkFQOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdE5vd3Jh
cDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVdoaXRlU3BhY2UoKSBjb25zdAogewotICAgIHN3aXRjaCAo
bV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0Tm93cmFwOgotICAg
ICAgICAgICAgcmV0dXJuIEtIVE1MX05PV1JBUDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU5vd3Jh
cDoKLSAgICAgICAgICAgIHJldHVybiBOT1dSQVA7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVQcmU6
Ci0gICAgICAgICAgICByZXR1cm4gUFJFOwotICAgICAgICBjYXNlIENTU1ZhbHVlUHJlV3JhcDoK
LSAgICAgICAgICAgIHJldHVybiBQUkVfV1JBUDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVByZUxp
bmU6Ci0gICAgICAgICAgICByZXR1cm4gUFJFX0xJTkU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVO
b3JtYWw6Ci0gICAgICAgICAgICByZXR1cm4gTk9STUFMOworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdE5vd3JhcDoKKyAgICAgICAgcmV0dXJu
IEtIVE1MX05PV1JBUDsKKyAgICBjYXNlIENTU1ZhbHVlTm93cmFwOgorICAgICAgICByZXR1cm4g
Tk9XUkFQOworICAgIGNhc2UgQ1NTVmFsdWVQcmU6CisgICAgICAgIHJldHVybiBQUkU7CisgICAg
Y2FzZSBDU1NWYWx1ZVByZVdyYXA6CisgICAgICAgIHJldHVybiBQUkVfV1JBUDsKKyAgICBjYXNl
IENTU1ZhbHVlUHJlTGluZToKKyAgICAgICAgcmV0dXJuIFBSRV9MSU5FOworICAgIGNhc2UgQ1NT
VmFsdWVOb3JtYWw6CisgICAgICAgIHJldHVybiBOT1JNQUw7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yODUyLDI5
ICsyOTU1LDMxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFV2hpdGVTcGFjZSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVdvcmRCcmVhayBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAg
ICAgICBjYXNlIE5vcm1hbFdvcmRCcmVhazoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZU5vcm1hbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEJyZWFrQWxs
V29yZEJyZWFrOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQnJlYWtBbGw7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCcmVha1dvcmRCcmVhazoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJyZWFrV29yZDsKLSAgICAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTm9ybWFsV29yZEJyZWFrOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha0FsbFdvcmRC
cmVhazoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCcmVha0FsbDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCcmVha1dvcmRCcmVhazoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVCcmVha1dvcmQ7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVXb3JkQnJlYWsoKSBj
b25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1Zh
bHVlQnJlYWtBbGw6Ci0gICAgICAgICAgICByZXR1cm4gQnJlYWtBbGxXb3JkQnJlYWs7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVCcmVha1dvcmQ6Ci0gICAgICAgICAgICByZXR1cm4gQnJlYWtXb3Jk
QnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6Ci0gICAgICAgICAgICByZXR1cm4g
Tm9ybWFsV29yZEJyZWFrOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2Fz
ZSBDU1NWYWx1ZUJyZWFrQWxsOgorICAgICAgICByZXR1cm4gQnJlYWtBbGxXb3JkQnJlYWs7Cisg
ICAgY2FzZSBDU1NWYWx1ZUJyZWFrV29yZDoKKyAgICAgICAgcmV0dXJuIEJyZWFrV29yZEJyZWFr
OworICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CisgICAgICAgIHJldHVybiBOb3JtYWxXb3JkQnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0yODg0LDI0ICsyOTg5LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFV29yZEJyZWFrKCkgY29uc3QKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFT3ZlcmZsb3dXcmFw
IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVu
aXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVf
SUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgTm9ybWFsT3ZlcmZsb3dXcmFwOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9ybWFsOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQnJlYWtPdmVyZmxvd1dyYXA6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVCcmVha1dvcmQ7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBj
YXNlIE5vcm1hbE92ZXJmbG93V3JhcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVOb3JtYWw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtPdmVyZmxvd1dyYXA6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQnJlYWtXb3JkOworICAgICAgICBicmVh
azsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFT3ZlcmZsb3dXcmFwKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQp
IHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJyZWFrV29yZDoKLSAgICAgICAgICAgIHJldHVybiBC
cmVha092ZXJmbG93V3JhcDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKLSAgICAgICAg
ICAgIHJldHVybiBOb3JtYWxPdmVyZmxvd1dyYXA7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVl
SUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQnJlYWtXb3JkOgorICAgICAgICByZXR1cm4gQnJlYWtP
dmVyZmxvd1dyYXA7CisgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKKyAgICAgICAgcmV0dXJuIE5v
cm1hbE92ZXJmbG93V3JhcDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI5MTEsMjQgKzMwMTgsMjYgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVPdmVyZmxvd1dyYXAoKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKFRleHREaXJlY3Rpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBMVFI6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMdHI7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBSVEw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVSdGw7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIExUUjoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMdHI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUlRM
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJ0bDsKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgVGV4dERpcmVjdGlvbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7
Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVMdHI6Ci0gICAgICAgICAgICByZXR1cm4gTFRSOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlUnRsOgotICAgICAgICAgICAgcmV0dXJuIFJUTDsKKyAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVMdHI6CisgICAgICAgIHJl
dHVybiBMVFI7CisgICAgY2FzZSBDU1NWYWx1ZVJ0bDoKKyAgICAgICAgcmV0dXJuIFJUTDsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTI5MzgsMjYgKzMwNDcsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIFRleHREaXJlY3Rpb24oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFdyaXRpbmdNb2RlIGUpCiAg
ICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAg
ICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIb3Jpem9udGFsVGI7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlSG9yaXpvbnRhbFRiOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVZlcnRpY2FsUmw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmVydGljYWxS
bDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgotICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWZXJ0aWNhbExyOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVZlcnRpY2FsTHI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Qm90dG9tVG9Ub3BXcml0aW5nTW9kZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
SG9yaXpvbnRhbEJ0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhvcml6b250
YWxCdDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV3JpdGluZ01vZGUoKSBjb25zdAogewotICAgIHN3aXRj
aCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZUhvcml6b250YWxUYjoKICAgICAgICAgcmV0dXJuIFRvcFRvQm90dG9tV3Jp
dGluZ01vZGU7CiAgICAgY2FzZSBDU1NWYWx1ZVZlcnRpY2FsUmw6CkBAIC0yOTY2LDYgKzMwNzUs
OCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV3JpdGlu
Z01vZGUoKSBjb25zdAogICAgICAgICByZXR1cm4gTGVmdFRvUmlnaHRXcml0aW5nTW9kZTsKICAg
ICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRhbEJ0OgogICAgICAgICByZXR1cm4gQm90dG9tVG9Ub3BX
cml0aW5nTW9kZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI5NzUsMjQgKzMwODYsMjYgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdyaXRpbmdNb2RlKCkgY29uc3QKIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0
Q29tYmluZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NT
X1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dENvbWJpbmVOb25lOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dENvbWJp
bmVIb3Jpem9udGFsOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIb3Jpem9udGFs
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhvcml6b250YWw7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFRleHRDb21iaW5lKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRl
bnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVO
b25lOgogICAgICAgICByZXR1cm4gVGV4dENvbWJpbmVOb25lOwogICAgIGNhc2UgQ1NTVmFsdWVI
b3Jpem9udGFsOgogICAgICAgICByZXR1cm4gVGV4dENvbWJpbmVIb3Jpem9udGFsOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpAQCAtMzAwMiwyNCArMzExNSwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgVGV4dENvbWJpbmUoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFJ1YnlQb3NpdGlvbiBwb3NpdGlvbikK
ICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsK
ICAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7CiAgICAgY2FzZSBSdWJ5UG9zaXRpb25CZWZvcmU6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJlZm9yZTsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVCZWZvcmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUnVieVBv
c2l0aW9uQWZ0ZXI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFmdGVyOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFmdGVyOwogICAgICAgICBicmVhazsKICAg
ICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBS
dWJ5UG9zaXRpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJlZm9yZToKICAg
ICAgICAgcmV0dXJuIFJ1YnlQb3NpdGlvbkJlZm9yZTsKICAgICBjYXNlIENTU1ZhbHVlQWZ0ZXI6
CiAgICAgICAgIHJldHVybiBSdWJ5UG9zaXRpb25BZnRlcjsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTMwMjksMjQg
KzMxNDQsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFJ1YnlQb3NpdGlvbigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dEVtcGhhc2lzUG9zaXRpb24gcG9zaXRpb24pCiAgICAg
OiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAg
c3dpdGNoIChwb3NpdGlvbikgewogICAgIGNhc2UgVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPdmVyOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU92ZXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEVtcGhh
c2lzUG9zaXRpb25VbmRlcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVW5kZXI7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVW5kZXI7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
aWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFs
dWVPdmVyOgogICAgICAgICByZXR1cm4gVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyOwogICAgIGNh
c2UgQ1NTVmFsdWVVbmRlcjoKICAgICAgICAgcmV0dXJuIFRleHRFbXBoYXNpc1Bvc2l0aW9uVW5k
ZXI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0zMDU2LDI0ICszMTczLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RW1waGFzaXNQb3NpdGlvbigpIGNvbnN0CiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4
dE92ZXJmbG93IG92ZXJmbG93KQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAob3ZlcmZsb3cpIHsKICAgICBjYXNlIFRl
eHRPdmVyZmxvd0NsaXA6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNsaXA7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2xpcDsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBUZXh0T3ZlcmZsb3dFbGxpcHNpczoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlRWxsaXBzaXM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRWxsaXBz
aXM7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRPdmVyZmxvdygpIGNvbnN0CiB7Ci0gICAgc3dpdGNo
IChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBj
YXNlIENTU1ZhbHVlQ2xpcDoKICAgICAgICAgcmV0dXJuIFRleHRPdmVyZmxvd0NsaXA7CiAgICAg
Y2FzZSBDU1NWYWx1ZUVsbGlwc2lzOgogICAgICAgICByZXR1cm4gVGV4dE92ZXJmbG93RWxsaXBz
aXM7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0zMDgzLDI0ICszMjAyLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0T3ZlcmZsb3coKSBjb25zdAogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRFbXBoYXNp
c0ZpbGwgZmlsbCkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGZpbGwpIHsKICAgICBjYXNlIFRleHRFbXBoYXNpc0Zp
bGxGaWxsZWQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZpbGxlZDsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGaWxsZWQ7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgVGV4dEVtcGhhc2lzRmlsbE9wZW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZU9wZW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3BlbjsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgVGV4dEVtcGhhc2lzRmlsbCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3Zh
bHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENT
U1ZhbHVlRmlsbGVkOgogICAgICAgICByZXR1cm4gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZDsKICAg
ICBjYXNlIENTU1ZhbHVlT3BlbjoKICAgICAgICAgcmV0dXJuIFRleHRFbXBoYXNpc0ZpbGxPcGVu
OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtMzExMCwzNSArMzIzMSwzNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEVtcGhhc2lzRmlsbCgpIGNvbnN0CiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dEVtcGhh
c2lzTWFyayBtYXJrKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAobWFyaykgewogICAgIGNhc2UgVGV4dEVtcGhhc2lz
TWFya0RvdDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRG90OworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURvdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBU
ZXh0RW1waGFzaXNNYXJrQ2lyY2xlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVD
aXJjbGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2lyY2xlOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtEb3VibGVDaXJjbGU6Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURvdWJsZUNpcmNsZTsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVEb3VibGVDaXJjbGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
VGV4dEVtcGhhc2lzTWFya1RyaWFuZ2xlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVUcmlhbmdsZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUcmlhbmdsZTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrU2VzYW1lOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTZXNhbWU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU2VzYW1lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNp
c01hcmtOb25lOgogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0F1dG86CiAgICAgY2FzZSBUZXh0
RW1waGFzaXNNYXJrQ3VzdG9tOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVOb25lOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RW1waGFzaXNNYXJrKCkgY29u
c3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gVGV4dEVt
cGhhc2lzTWFya05vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZURvdDoKQEAgLTMxNTEsNiArMzI3Miw4
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RW1w
aGFzaXNNYXJrKCkgY29uc3QKICAgICAgICAgcmV0dXJuIFRleHRFbXBoYXNpc01hcmtUcmlhbmds
ZTsKICAgICBjYXNlIENTU1ZhbHVlU2VzYW1lOgogICAgICAgICByZXR1cm4gVGV4dEVtcGhhc2lz
TWFya1Nlc2FtZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTMxNjAsMjYgKzMyODMsMjYgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRFbXBoYXNpc01hcmsoKSBjb25z
dAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KFRleHRPcmllbnRhdGlvbiBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dE9yaWVu
dGF0aW9uU2lkZXdheXM6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNpZGV3YXlz
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNpZGV3YXlzOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFRleHRPcmllbnRhdGlvblNpZGV3YXlzUmlnaHQ6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNpZGV3YXlzUmlnaHQ7CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlU2lkZXdheXNSaWdodDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBU
ZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVWZXJ0aWNhbFJpZ2h0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZl
cnRpY2FsUmlnaHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dE9yaWVudGF0aW9uVXBy
aWdodDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXByaWdodDsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVcHJpZ2h0OwogICAgICAgICBicmVhazsKICAgICB9
CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0
T3JpZW50YXRpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNpZGV3YXlzOgog
ICAgICAgICByZXR1cm4gVGV4dE9yaWVudGF0aW9uU2lkZXdheXM7CiAgICAgY2FzZSBDU1NWYWx1
ZVNpZGV3YXlzUmlnaHQ6CkBAIC0zMTg4LDYgKzMzMTEsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dE9yaWVudGF0aW9uKCkgY29uc3QKICAgICAg
ICAgcmV0dXJuIFRleHRPcmllbnRhdGlvblZlcnRpY2FsUmlnaHQ7CiAgICAgY2FzZSBDU1NWYWx1
ZVVwcmlnaHQ6CiAgICAgICAgIHJldHVybiBUZXh0T3JpZW50YXRpb25VcHJpZ2h0OworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpAQCAtMzE5Nyw2NCArMzMyMiw2NiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgVGV4dE9yaWVudGF0aW9uKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFUG9pbnRlckV2ZW50cyBlKQog
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwog
ICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIFBFX05PTkU6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgUEVfU1RST0tFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3Ryb2tl
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUEVfRklMTDoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZpbGw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBQRV9QQUlOVEVEOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
UGFpbnRlZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBFX1ZJU0lCTEU6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWaXNpYmxlOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgUEVfVklTSUJMRV9TVFJPS0U6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVWaXNpYmxlc3Ryb2tlOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgUEVfVklTSUJMRV9GSUxMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlVmlzaWJsZWZpbGw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQ
RV9WSVNJQkxFX1BBSU5URUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVW
aXNpYmxlcGFpbnRlZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBFX0FVVE86
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgUEVfQUxMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlQWxsOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQRV9OT05FOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUEVfU1RST0tFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0cm9r
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQRV9GSUxMOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUZpbGw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUEVfUEFJTlRF
RDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQYWludGVkOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFBFX1ZJU0lCTEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlVmlzaWJsZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQRV9WSVNJQkxFX1NUUk9L
RToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaXNpYmxlc3Ryb2tlOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBFX1ZJU0lCTEVfRklMTDoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVWaXNpYmxlZmlsbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQ
RV9WSVNJQkxFX1BBSU5URUQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmlz
aWJsZXBhaW50ZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUEVfQVVUTzoKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBFX0FMTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbGw7CisgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVQb2ludGVyRXZlbnRzKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
aWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFsbDoKLSAgICAgICAgICAgIHJldHVybiBQ
RV9BTEw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIFBF
X0FVVE87Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb25lOgotICAgICAgICAgICAgcmV0dXJuIFBF
X05PTkU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlcGFpbnRlZDoKLSAgICAgICAgICAg
IHJldHVybiBQRV9WSVNJQkxFX1BBSU5URUQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxl
ZmlsbDoKLSAgICAgICAgICAgIHJldHVybiBQRV9WSVNJQkxFX0ZJTEw7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVWaXNpYmxlc3Ryb2tlOgotICAgICAgICAgICAgcmV0dXJuIFBFX1ZJU0lCTEVfU1RS
T0tFOwotICAgICAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZToKLSAgICAgICAgICAgIHJldHVybiBQ
RV9WSVNJQkxFOwotICAgICAgICBjYXNlIENTU1ZhbHVlUGFpbnRlZDoKLSAgICAgICAgICAgIHJl
dHVybiBQRV9QQUlOVEVEOwotICAgICAgICBjYXNlIENTU1ZhbHVlRmlsbDoKLSAgICAgICAgICAg
IHJldHVybiBQRV9GSUxMOwotICAgICAgICBjYXNlIENTU1ZhbHVlU3Ryb2tlOgotICAgICAgICAg
ICAgcmV0dXJuIFBFX1NUUk9LRTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAg
IGNhc2UgQ1NTVmFsdWVBbGw6CisgICAgICAgIHJldHVybiBQRV9BTEw7CisgICAgY2FzZSBDU1NW
YWx1ZUF1dG86CisgICAgICAgIHJldHVybiBQRV9BVVRPOworICAgIGNhc2UgQ1NTVmFsdWVOb25l
OgorICAgICAgICByZXR1cm4gUEVfTk9ORTsKKyAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZXBhaW50
ZWQ6CisgICAgICAgIHJldHVybiBQRV9WSVNJQkxFX1BBSU5URUQ7CisgICAgY2FzZSBDU1NWYWx1
ZVZpc2libGVmaWxsOgorICAgICAgICByZXR1cm4gUEVfVklTSUJMRV9GSUxMOworICAgIGNhc2Ug
Q1NTVmFsdWVWaXNpYmxlc3Ryb2tlOgorICAgICAgICByZXR1cm4gUEVfVklTSUJMRV9TVFJPS0U7
CisgICAgY2FzZSBDU1NWYWx1ZVZpc2libGU6CisgICAgICAgIHJldHVybiBQRV9WSVNJQkxFOwor
ICAgIGNhc2UgQ1NTVmFsdWVQYWludGVkOgorICAgICAgICByZXR1cm4gUEVfUEFJTlRFRDsKKyAg
ICBjYXNlIENTU1ZhbHVlRmlsbDoKKyAgICAgICAgcmV0dXJuIFBFX0ZJTEw7CisgICAgY2FzZSBD
U1NWYWx1ZVN0cm9rZToKKyAgICAgICAgcmV0dXJuIFBFX1NUUk9LRTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTMy
NjQsMzIgKzMzOTEsMzQgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIEVQb2ludGVyRXZlbnRzKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250RGVzY3JpcHRpb246Oktlcm5pbmcga2Vy
bmluZykKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxV
RV9JRDsKICAgICBzd2l0Y2ggKGtlcm5pbmcpIHsKICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6
QXV0b0tlcm5pbmc6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgRm9udERlc2NyaXB0aW9uOjpOb3JtYWxLZXJuaW5nOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Tm9ybWFsOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBGb250RGVzY3JpcHRpb246Ok5vbmVL
ZXJuaW5nOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVB
dXRvOworICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKIH0KIAogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnREZXNjcmlwdGlvbjo6S2Vy
bmluZygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0
dXJuIEZvbnREZXNjcmlwdGlvbjo6QXV0b0tlcm5pbmc7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1h
bDoKICAgICAgICAgcmV0dXJuIEZvbnREZXNjcmlwdGlvbjo6Tm9ybWFsS2VybmluZzsKICAgICBj
YXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIEZvbnREZXNjcmlwdGlvbjo6Tm9uZUtl
cm5pbmc7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC0zMjk5LDI5ICszNDI4LDI5IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250RGVzY3JpcHRpb246Oktlcm5pbmcoKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZykKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2
ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKHNtb290aGluZykg
ewogICAgIGNhc2UgQXV0b1Ntb290aGluZzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlQXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAg
ICByZXR1cm47CiAgICAgY2FzZSBOb1Ntb290aGluZzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwog
ICAgICAgICByZXR1cm47CiAgICAgY2FzZSBBbnRpYWxpYXNlZDoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlQW50aWFsaWFzZWQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQW50aWFsaWFzZWQ7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN1YnBpeGVsQW50
aWFsaWFzZWQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN1YnBpeGVsQW50aWFs
aWFzZWQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3VicGl4ZWxBbnRpYWxp
YXNlZDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVBdXRvOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRm9udFNtb290aGluZ01vZGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92
YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBBdXRvU21vb3RoaW5nOwogICAgIGNhc2UgQ1NT
VmFsdWVOb25lOgpAQCAtMzMzMCw2ICszNDU5LDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRTbW9vdGhpbmdNb2RlKCkgY29uc3QKICAgICAgICAg
cmV0dXJuIEFudGlhbGlhc2VkOwogICAgIGNhc2UgQ1NTVmFsdWVTdWJwaXhlbEFudGlhbGlhc2Vk
OgogICAgICAgICByZXR1cm4gU3VicGl4ZWxBbnRpYWxpYXNlZDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTMzMzks
NDQgKzM0NzAsNDQgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEZvbnRTbW9vdGhpbmdNb2RlKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250V2VpZ2h0IHdlaWdodCkKICAgICA6IENT
U1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1Nf
SURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0
Y2ggKHdlaWdodCkgewogICAgIGNhc2UgRm9udFdlaWdodDkwMDoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlOTAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTkw
MDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFdlaWdodDgwMDoKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlODAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZTgwMDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFdlaWdodDcwMDoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlNzAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZTcwMDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFdlaWdodDYwMDoK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlNjAwOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZTYwMDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFdlaWdo
dDUwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlNTAwOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTUwMDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9u
dFdlaWdodDQwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlNDAwOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTQwMDsKICAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgRm9udFdlaWdodDMwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlMzAwOwor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTMwMDsKICAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgRm9udFdlaWdodDIwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
MjAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTIwMDsKICAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgRm9udFdlaWdodDEwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlMTAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTEwMDsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU5vcm1hbDsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEZvbnRXZWlnaHQoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewor
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJvbGQ6CiAg
ICAgICAgIHJldHVybiBGb250V2VpZ2h0Qm9sZDsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgpA
QCAtMzM5OSw2ICszNTMwLDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEZvbnRXZWlnaHQoKSBjb25zdAogICAgICAgICByZXR1cm4gRm9udFdlaWdodDIw
MDsKICAgICBjYXNlIENTU1ZhbHVlMTAwOgogICAgICAgICByZXR1cm4gRm9udFdlaWdodDEwMDsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTM0MDgsMjkgKzM1NDEsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRXZWlnaHQoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnRJdGFsaWMgaXRhbGlj
KQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lE
OwogICAgIHN3aXRjaCAoaXRhbGljKSB7CiAgICAgY2FzZSBGb250SXRhbGljT2ZmOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTm9ybWFsOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBGb250SXRhbGlj
T246Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUl0YWxpYzsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJdGFsaWM7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVO
b3JtYWw7CisgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CiB9CiAKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250SXRhbGljKCkgY29u
c3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVPYmxpcXVlOgogICAgIC8vIEZJWE1FOiBvYmxp
cXVlIGlzIHRoZSBzYW1lIGFzIGl0YWxpYyBmb3IgdGhlIG1vbWVudC4uLgogICAgIGNhc2UgQ1NT
VmFsdWVJdGFsaWM6CiAgICAgICAgIHJldHVybiBGb250SXRhbGljT247CiAgICAgY2FzZSBDU1NW
YWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIEZvbnRJdGFsaWNPZmY7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJl
dHVybiBGb250SXRhbGljT2ZmOwpAQCAtMzQzOSwyNyArMzU3NCwyOSBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udEl0YWxpYygpIGNvbnN0CiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udFNt
YWxsQ2FwcyBzbWFsbENhcHMpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChzbWFsbENhcHMpIHsKICAgICBjYXNlIEZv
bnRTbWFsbENhcHNPZmY6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CiAgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIEZvbnRTbWFsbENhcHNPbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlU21hbGxDYXBzOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNtYWxs
Q2FwczsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZU5vcm1hbDsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEZvbnRTbWFsbENhcHMoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92
YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZVNtYWxsQ2FwczoKICAgICAgICAgcmV0dXJuIEZvbnRTbWFsbENhcHNPbjsKICAgICBj
YXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICByZXR1cm4gRm9udFNtYWxsQ2Fwc09mZjsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgcmV0dXJuIEZvbnRTbWFsbENhcHNPZmY7CkBAIC0zNDY4LDM0ICszNjA1LDM2IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250U21hbGxD
YXBzKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShUZXh0UmVuZGVyaW5nTW9kZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZl
Q2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAg
ICBjYXNlIEF1dG9UZXh0UmVuZGVyaW5nOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE9wdGltaXplU3Bl
ZWQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT3B0aW1pemVMZWdpYmlsaXR5OgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3B0aW1pemVsZWdpYmlsaXR5OwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgR2VvbWV0cmljUHJlY2lzaW9uOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlR2VvbWV0cmljcHJlY2lzaW9uOwotICAgICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBdXRvVGV4dFJlbmRlcmluZzoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE9wdGlt
aXplU3BlZWQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1pemVzcGVl
ZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPcHRpbWl6ZUxlZ2liaWxpdHk6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1pemVsZWdpYmlsaXR5OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEdlb21ldHJpY1ByZWNpc2lvbjoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVHZW9tZXRyaWNwcmVjaXNpb247CisgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRS
ZW5kZXJpbmdNb2RlKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAgICAgICByZXR1cm4gQXV0b1RleHRSZW5k
ZXJpbmc7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOgotICAgICAgICAgICAg
cmV0dXJuIE9wdGltaXplU3BlZWQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZWxlZ2li
aWxpdHk6Ci0gICAgICAgICAgICByZXR1cm4gT3B0aW1pemVMZWdpYmlsaXR5OwotICAgICAgICBj
YXNlIENTU1ZhbHVlR2VvbWV0cmljcHJlY2lzaW9uOgotICAgICAgICAgICAgcmV0dXJuIEdlb21l
dHJpY1ByZWNpc2lvbjsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2Ug
Q1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4gQXV0b1RleHRSZW5kZXJpbmc7CisgICAgY2Fz
ZSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ6CisgICAgICAgIHJldHVybiBPcHRpbWl6ZVNwZWVkOwor
ICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZWxlZ2liaWxpdHk6CisgICAgICAgIHJldHVybiBPcHRp
bWl6ZUxlZ2liaWxpdHk7CisgICAgY2FzZSBDU1NWYWx1ZUdlb21ldHJpY3ByZWNpc2lvbjoKKyAg
ICAgICAgcmV0dXJuIEdlb21ldHJpY1ByZWNpc2lvbjsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM1MDUsMjkgKzM2
NDQsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHRSZW5kZXJpbmdNb2RlKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2xvclNwYWNlIHNwYWNlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoc3Bh
Y2UpIHsKICAgICBjYXNlIENvbG9yU3BhY2VEZXZpY2VSR0I6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZURlZmF1bHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
RGVmYXVsdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2xvclNwYWNlU1JHQjoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3JnYjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTcmdiOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbG9yU3BhY2VMaW5l
YXJSR0I6CiAgICAgICAgIC8vIENTUyBjb2xvciBjb3JyZWN0aW9uIGRvZXMgbm90IHN1cHBvcnQg
bGluZWFyUkdCIHlldC4KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURlZmF1bHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlRGVmYXVsdDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sb3JTcGFjZSgpIGNvbnN0CiB7
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVl
SUQpIHsKICAgICBjYXNlIENTU1ZhbHVlRGVmYXVsdDoKICAgICAgICAgcmV0dXJuIENvbG9yU3Bh
Y2VEZXZpY2VSR0I7CiAgICAgY2FzZSBDU1NWYWx1ZVNyZ2I6CiAgICAgICAgIHJldHVybiBDb2xv
clNwYWNlU1JHQjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM1MzcsMjkgKzM2NzgsMzEgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbG9yU3BhY2UoKSBjb25zdAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEh5cGhl
bnMgaHlwaGVucykKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGh5cGhlbnMpIHsKICAgICBjYXNlIEh5cGhlbnNOb25l
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSHlwaGVu
c01hbnVhbDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWFudWFsOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1hbnVhbDsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBIeXBoZW5zQXV0bzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAgICBicmVhazsK
ICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBIeXBoZW5zKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAg
ICByZXR1cm4gSHlwaGVuc05vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZU1hbnVhbDoKICAgICAgICAg
cmV0dXJuIEh5cGhlbnNNYW51YWw7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJl
dHVybiBIeXBoZW5zQXV0bzsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM1NjksMjkgKzM3MTIsMzEgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEh5cGhlbnMoKSBjb25zdAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKExp
bmVTbmFwIGdyaWRTbmFwKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAg
bV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZ3JpZFNuYXApIHsKICAgICBjYXNlIExpbmVT
bmFwTm9uZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IExpbmVTbmFwQmFzZWxpbmU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJhc2Vs
aW5lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJhc2VsaW5lOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIExpbmVTbmFwQ29udGFpbjoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQ29udGFpbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVD
b250YWluOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lU25hcCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNo
IChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBj
YXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIExpbmVTbmFwTm9uZTsKICAgICBjYXNl
IENTU1ZhbHVlQmFzZWxpbmU6CiAgICAgICAgIHJldHVybiBMaW5lU25hcEJhc2VsaW5lOwogICAg
IGNhc2UgQ1NTVmFsdWVDb250YWluOgogICAgICAgICByZXR1cm4gTGluZVNuYXBDb250YWluOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpAQCAtMzYwMSwyNCArMzc0NiwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZVNuYXAoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKExpbmVBbGlnbiBsaW5lQWxpZ24p
CiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7
CiAgICAgc3dpdGNoIChsaW5lQWxpZ24pIHsKICAgICBjYXNlIExpbmVBbGlnbk5vbmU6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTm9uZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lQWxpZ25FZGdl
czoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRWRnZXM7CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlRWRnZXM7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVBbGlnbigp
IGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIExp
bmVBbGlnbk5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZUVkZ2VzOgogICAgICAgICByZXR1cm4gTGlu
ZUFsaWduRWRnZXM7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNjI4LDM2ICszNzc1LDM4IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQWxpZ24oKSBjb25zdAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVTcGVh
ayBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgU3BlYWtOb25lOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3BlYWtOb3JtYWw6Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVOb3JtYWw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3BlYWtTcGVsbE91
dDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3BlbGxPdXQ7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3BlbGxPdXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgU3BlYWtEaWdpdHM6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURpZ2l0czsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEaWdpdHM7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU3BlYWtMaXRlcmFsUHVuY3R1YXRpb246Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUxpdGVyYWxQdW5jdHVhdGlvbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVMaXRlcmFsUHVuY3R1YXRpb247CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
U3BlYWtOb1B1bmN0dWF0aW9uOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb1B1
bmN0dWF0aW9uOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vUHVuY3R1YXRp
b247CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9yZGVyKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFs
dWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NT
VmFsdWVMb2dpY2FsOgogICAgICAgICByZXR1cm4gTG9naWNhbE9yZGVyOwogICAgIGNhc2UgQ1NT
VmFsdWVWaXN1YWw6CiAgICAgICAgIHJldHVybiBWaXN1YWxPcmRlcjsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM2
NjcsMjAgKzM4MTYsMjAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIE9yZGVyKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShPcmRlciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xh
c3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1p
dGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2Ug
TG9naWNhbE9yZGVyOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb2dpY2FsOwor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvZ2ljYWw7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgVmlzdWFsT3JkZXI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVZpc3VhbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaXN1YWw7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIEVTcGVhaygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50
KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9u
ZToKICAgICAgICAgcmV0dXJuIFNwZWFrTm9uZTsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgpA
QCAtMzY5Myw2ICszODQyLDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVTcGVhaygpIGNvbnN0CiAgICAgICAgIHJldHVybiBTcGVha0xpdGVyYWxQdW5j
dHVhdGlvbjsKICAgICBjYXNlIENTU1ZhbHVlTm9QdW5jdHVhdGlvbjoKICAgICAgICAgcmV0dXJu
IFNwZWFrTm9QdW5jdHVhdGlvbjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM3MDIsNjIgKzM4NTMsNjIgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVTcGVhaygpIGNvbnN0
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
QmxlbmRNb2RlIGJsZW5kTW9kZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGJsZW5kTW9kZSkgewogICAgIGNhc2Ug
QmxlbmRNb2RlTm9ybWFsOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEJsZW5kTW9kZU11bHRpcGx5OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVNdWx0aXBseTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNdWx0
aXBseTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVTY3JlZW46Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNjcmVlbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTY3JlZW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlT3Zl
cmxheToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3ZlcmxheTsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPdmVybGF5OwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEJsZW5kTW9kZURhcmtlbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGFy
a2VuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURhcmtlbjsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVMaWdodGVuOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVMaWdodGVuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxp
Z2h0ZW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlQ29sb3JEb2RnZToKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sb3JEb2RnZTsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb2xvckRvZGdlOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJsZW5kTW9kZUNvbG9yQnVybjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29s
b3JCdXJuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbG9yQnVybjsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVIYXJkTGlnaHQ6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUhhcmRMaWdodDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVIYXJkTGlnaHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlU29m
dExpZ2h0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTb2Z0TGlnaHQ7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU29mdExpZ2h0OwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEJsZW5kTW9kZURpZmZlcmVuY2U6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZURpZmZlcmVuY2U7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGlm
ZmVyZW5jZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVFeGNsdXNpb246Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV4Y2x1c2lvbjsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVFeGNsdXNpb247CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QmxlbmRNb2RlSHVlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIdWU7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSHVlOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEJsZW5kTW9kZVNhdHVyYXRpb246Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVNhdHVyYXRpb247CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2F0dXJhdGlv
bjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVDb2xvcjoKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sb3I7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQ29sb3I7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlTHVtaW5vc2l0
eToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTHVtaW5vc2l0eTsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMdW1pbm9zaXR5OwogICAgICAgICBicmVhazsKICAg
ICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBC
bGVuZE1vZGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAg
ICAgcmV0dXJuIEJsZW5kTW9kZU5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlTXVsdGlwbHk6CkBA
IC0zNzkwLDYgKzM5NDEsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgQmxlbmRNb2RlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZUNvbG9y
OwogICAgIGNhc2UgQ1NTVmFsdWVMdW1pbm9zaXR5OgogICAgICAgICByZXR1cm4gQmxlbmRNb2Rl
THVtaW5vc2l0eTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM4MDEsMjkgKzM5NTQsMzEgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJsZW5kTW9kZSgpIGNvbnN0CiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoTGluZUNh
cCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIEJ1dHRDYXA6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCdXR0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgUm91bmRDYXA6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVS
b3VuZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNxdWFyZUNhcDoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNxdWFyZTsKLSAgICAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnV0dENhcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVC
dXR0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJvdW5kQ2FwOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVJvdW5kOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNxdWFy
ZUNhcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcXVhcmU7CisgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIExpbmVDYXAoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkg
ewotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dDoKLSAgICAgICAgICAgIHJldHVybiBCdXR0Q2Fw
OwotICAgICAgICBjYXNlIENTU1ZhbHVlUm91bmQ6Ci0gICAgICAgICAgICByZXR1cm4gUm91bmRD
YXA7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTcXVhcmU6Ci0gICAgICAgICAgICByZXR1cm4gU3F1
YXJlQ2FwOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1
ZUJ1dHQ6CisgICAgICAgIHJldHVybiBCdXR0Q2FwOworICAgIGNhc2UgQ1NTVmFsdWVSb3VuZDoK
KyAgICAgICAgcmV0dXJuIFJvdW5kQ2FwOworICAgIGNhc2UgQ1NTVmFsdWVTcXVhcmU6CisgICAg
ICAgIHJldHVybiBTcXVhcmVDYXA7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zODMzLDI5ICszOTg4LDMxIEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQ2FwKCkgY29u
c3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShMaW5lSm9pbiBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIE1pdGVySm9pbjoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1pdGVyOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgUm91bmRKb2luOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlUm91bmQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCZXZl
bEpvaW46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCZXZlbDsKLSAgICAg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTWl0ZXJKb2luOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZU1pdGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJvdW5kSm9pbjoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3VuZDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBCZXZlbEpvaW46CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QmV2ZWw7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVKb2luKCkgY29uc3QKIHsKLSAgICBzd2l0Y2gg
KG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU1pdGVyOgotICAgICAgICAg
ICAgcmV0dXJuIE1pdGVySm9pbjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVJvdW5kOgotICAgICAg
ICAgICAgcmV0dXJuIFJvdW5kSm9pbjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJldmVsOgotICAg
ICAgICAgICAgcmV0dXJuIEJldmVsSm9pbjsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIGNhc2UgQ1NTVmFsdWVNaXRlcjoKKyAgICAgICAgcmV0dXJuIE1pdGVySm9pbjsKKyAg
ICBjYXNlIENTU1ZhbHVlUm91bmQ6CisgICAgICAgIHJldHVybiBSb3VuZEpvaW47CisgICAgY2Fz
ZSBDU1NWYWx1ZUJldmVsOgorICAgICAgICByZXR1cm4gQmV2ZWxKb2luOworICAgIGRlZmF1bHQ6
CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
Mzg2NSwyNCArNDAyMiwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgTGluZUpvaW4oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFdpbmRSdWxlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmlt
aXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0g
ICAgICAgIGNhc2UgUlVMRV9OT05aRVJPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlTm9uemVybzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJVTEVfRVZF
Tk9ERDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV2ZW5vZGQ7Ci0gICAg
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFJVTEVfTk9OWkVSTzoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVOb256ZXJvOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJVTEVf
RVZFTk9ERDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdmVub2RkOworICAg
ICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBXaW5kUnVsZSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlk
ZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb256ZXJvOgotICAgICAgICAgICAgcmV0dXJu
IFJVTEVfTk9OWkVSTzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUV2ZW5vZGQ6Ci0gICAgICAgICAg
ICByZXR1cm4gUlVMRV9FVkVOT0REOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7Cisg
ICAgY2FzZSBDU1NWYWx1ZU5vbnplcm86CisgICAgICAgIHJldHVybiBSVUxFX05PTlpFUk87Cisg
ICAgY2FzZSBDU1NWYWx1ZUV2ZW5vZGQ6CisgICAgICAgIHJldHVybiBSVUxFX0VWRU5PREQ7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0zODkzLDc0ICs0MDUyLDc2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBXaW5kUnVsZSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUFsaWdubWVudEJhc2VsaW5lIGUp
CiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7
CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgQUJfQVVUTzoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBBQl9CQVNFTElORToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJh
c2VsaW5lOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQUJfQkVGT1JFX0VER0U6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCZWZvcmVFZGdlOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQUJfVEVYVF9CRUZPUkVfRURHRToKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRleHRCZWZvcmVFZGdlOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQUJfTUlERExFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlTWlkZGxlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQUJf
Q0VOVFJBTDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNlbnRyYWw7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBQl9BRlRFUl9FREdFOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWZ0ZXJFZGdlOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQUJfVEVYVF9BRlRFUl9FREdFOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlVGV4dEFmdGVyRWRnZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIEFCX0lERU9HUkFQSElDOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlSWRlb2dyYXBoaWM7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBQl9BTFBI
QUJFVElDOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWxwaGFiZXRpYzsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFCX0hBTkdJTkc6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIYW5naW5nOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQUJfTUFUSEVNQVRJQ0FMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTWF0aGVtYXRpY2FsOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBQl9B
VVRPOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQUJfQkFTRUxJTkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQmFzZWxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQUJfQkVGT1JFX0VER0U6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmVmb3JlRWRnZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBBQl9URVhUX0JFRk9SRV9FREdFOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVRleHRCZWZvcmVFZGdlOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFCX01JRERMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRkbGU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQUJfQ0VOVFJBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVDZW50cmFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFCX0FGVEVS
X0VER0U6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWZ0ZXJFZGdlOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFCX1RFWFRfQUZURVJfRURHRToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0QWZ0ZXJFZGdlOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFCX0lERU9HUkFQSElDOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlk
ZW9ncmFwaGljOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFCX0FMUEhBQkVUSUM6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxwaGFiZXRpYzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBQl9IQU5HSU5HOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUhhbmdpbmc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQUJfTUFUSEVNQVRJQ0FMOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1hdGhlbWF0aWNhbDsKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRUFsaWdubWVudEJhc2VsaW5lKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
aWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAgICAgICByZXR1cm4g
QUJfQVVUTzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJhc2VsaW5lOgotICAgICAgICAgICAgcmV0
dXJuIEFCX0JBU0VMSU5FOwotICAgICAgICBjYXNlIENTU1ZhbHVlQmVmb3JlRWRnZToKLSAgICAg
ICAgICAgIHJldHVybiBBQl9CRUZPUkVfRURHRTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVRleHRC
ZWZvcmVFZGdlOgotICAgICAgICAgICAgcmV0dXJuIEFCX1RFWFRfQkVGT1JFX0VER0U7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVNaWRkbGU6Ci0gICAgICAgICAgICByZXR1cm4gQUJfTUlERExFOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlQ2VudHJhbDoKLSAgICAgICAgICAgIHJldHVybiBBQl9DRU5U
UkFMOwotICAgICAgICBjYXNlIENTU1ZhbHVlQWZ0ZXJFZGdlOgotICAgICAgICAgICAgcmV0dXJu
IEFCX0FGVEVSX0VER0U7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUZXh0QWZ0ZXJFZGdlOgotICAg
ICAgICAgICAgcmV0dXJuIEFCX1RFWFRfQUZURVJfRURHRTsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZUlkZW9ncmFwaGljOgotICAgICAgICAgICAgcmV0dXJuIEFCX0lERU9HUkFQSElDOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlQWxwaGFiZXRpYzoKLSAgICAgICAgICAgIHJldHVybiBBQl9BTFBIQUJF
VElDOwotICAgICAgICBjYXNlIENTU1ZhbHVlSGFuZ2luZzoKLSAgICAgICAgICAgIHJldHVybiBB
Ql9IQU5HSU5HOwotICAgICAgICBjYXNlIENTU1ZhbHVlTWF0aGVtYXRpY2FsOgotICAgICAgICAg
ICAgcmV0dXJuIEFCX01BVEhFTUFUSUNBTDsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4gQUJfQVVUTzsKKyAgICBj
YXNlIENTU1ZhbHVlQmFzZWxpbmU6CisgICAgICAgIHJldHVybiBBQl9CQVNFTElORTsKKyAgICBj
YXNlIENTU1ZhbHVlQmVmb3JlRWRnZToKKyAgICAgICAgcmV0dXJuIEFCX0JFRk9SRV9FREdFOwor
ICAgIGNhc2UgQ1NTVmFsdWVUZXh0QmVmb3JlRWRnZToKKyAgICAgICAgcmV0dXJuIEFCX1RFWFRf
QkVGT1JFX0VER0U7CisgICAgY2FzZSBDU1NWYWx1ZU1pZGRsZToKKyAgICAgICAgcmV0dXJuIEFC
X01JRERMRTsKKyAgICBjYXNlIENTU1ZhbHVlQ2VudHJhbDoKKyAgICAgICAgcmV0dXJuIEFCX0NF
TlRSQUw7CisgICAgY2FzZSBDU1NWYWx1ZUFmdGVyRWRnZToKKyAgICAgICAgcmV0dXJuIEFCX0FG
VEVSX0VER0U7CisgICAgY2FzZSBDU1NWYWx1ZVRleHRBZnRlckVkZ2U6CisgICAgICAgIHJldHVy
biBBQl9URVhUX0FGVEVSX0VER0U7CisgICAgY2FzZSBDU1NWYWx1ZUlkZW9ncmFwaGljOgorICAg
ICAgICByZXR1cm4gQUJfSURFT0dSQVBISUM7CisgICAgY2FzZSBDU1NWYWx1ZUFscGhhYmV0aWM6
CisgICAgICAgIHJldHVybiBBQl9BTFBIQUJFVElDOworICAgIGNhc2UgQ1NTVmFsdWVIYW5naW5n
OgorICAgICAgICByZXR1cm4gQUJfSEFOR0lORzsKKyAgICBjYXNlIENTU1ZhbHVlTWF0aGVtYXRp
Y2FsOgorICAgICAgICByZXR1cm4gQUJfTUFUSEVNQVRJQ0FMOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzk3Miwy
NCArNDEzMywyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRUFsaWdubWVudEJhc2VsaW5lKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQm9yZGVyQ29sbGFwc2UgZSkKICAgICA6IENT
U1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1Nf
SURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0
Y2ggKGUpIHsKICAgICBjYXNlIEJTRVBBUkFURToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlU2VwYXJhdGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VwYXJh
dGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQkNPTExBUFNFOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVDb2xsYXBzZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVDb2xsYXBzZTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJvcmRlckNvbGxhcHNlKCkgY29uc3QK
IHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVTZXBhcmF0ZToKICAgICAgICAgcmV0dXJuIEJTRVBB
UkFURTsKICAgICBjYXNlIENTU1ZhbHVlQ29sbGFwc2U6CiAgICAgICAgIHJldHVybiBCQ09MTEFQ
U0U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0zOTk5LDI0ICs0MTYyLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm9yZGVyQ29sbGFwc2UoKSBjb25zdAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCb3JkZXJG
aXQgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxV
RV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJvcmRlckZpdEJvcmRlcjoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQm9yZGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUJvcmRlcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3JkZXJGaXRM
aW5lczoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTGluZXM7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGluZXM7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
IAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3JkZXJG
aXQoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAo
bV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJvcmRlcjoKICAgICAgICAgcmV0
dXJuIEJvcmRlckZpdEJvcmRlcjsKICAgICBjYXNlIENTU1ZhbHVlTGluZXM6CiAgICAgICAgIHJl
dHVybiBCb3JkZXJGaXRMaW5lczsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQwMjYsMjYgKzQxOTEsMjYgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3JkZXJGaXQoKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEVJbWFnZVJlbmRlcmluZyBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7
Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVu
aXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgSW1hZ2VS
ZW5kZXJpbmdBdXRvOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgSW1hZ2VSZW5kZXJpbmdDcmlzcEVkZ2VzOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVXZWJraXRDcmlzcEVkZ2VzOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVdlYmtpdENyaXNwRWRnZXM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW1hZ2VSZW5k
ZXJpbmdPcHRpbWl6ZVNwZWVkOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRp
bWl6ZXNwZWVkOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplc3Bl
ZWQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVF1YWxp
dHk6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0eTsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVJbWFnZVJlbmRlcmluZygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1Zh
bHVlQXV0bzoKICAgICAgICAgcmV0dXJuIEltYWdlUmVuZGVyaW5nQXV0bzsKICAgICBjYXNlIENT
U1ZhbHVlV2Via2l0T3B0aW1pemVDb250cmFzdDoKQEAgLTQwNTUsNiArNDIyMCw4IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFSW1hZ2VSZW5kZXJpbmco
KSBjb25zdAogICAgICAgICByZXR1cm4gSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVNwZWVkOwogICAg
IGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk6CiAgICAgICAgIHJldHVybiBJbWFnZVJlbmRl
cmluZ09wdGltaXplUXVhbGl0eTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQwNjQsMjQgKzQyMzEsMjYgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVJbWFnZVJlbmRlcmlu
ZygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoRVRyYW5zZm9ybVN0eWxlM0QgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNs
YXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNl
IFRyYW5zZm9ybVN0eWxlM0RGbGF0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVG
bGF0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsYXQ7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgVHJhbnNmb3JtU3R5bGUzRFByZXNlcnZlM0Q6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVByZXNlcnZlM2Q7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlUHJlc2VydmUzZDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRyYW5zZm9ybVN0eWxlM0Qo
KSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUZsYXQ6CiAgICAgICAgIHJldHVybiBU
cmFuc2Zvcm1TdHlsZTNERmxhdDsKICAgICBjYXNlIENTU1ZhbHVlUHJlc2VydmUzZDoKICAgICAg
ICAgcmV0dXJuIFRyYW5zZm9ybVN0eWxlM0RQcmVzZXJ2ZTNEOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDA5MSwy
OSArNDI2MCwzMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRVRyYW5zZm9ybVN0eWxlM0QoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbHVtbkF4aXMgZSkKICAgICA6IENTU1ZhbHVl
KFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7
CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUp
IHsKICAgICBjYXNlIEhvcml6b250YWxDb2x1bW5BeGlzOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVIb3Jpem9udGFsOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUhvcml6b250YWw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmVydGljYWxDb2x1bW5BeGlz
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWZXJ0aWNhbDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBBdXRvQ29sdW1uQXhpczoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAgICBicmVhazsK
ICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBDb2x1bW5BeGlzKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVIb3Jpem9udGFs
OgogICAgICAgICByZXR1cm4gSG9yaXpvbnRhbENvbHVtbkF4aXM7CiAgICAgY2FzZSBDU1NWYWx1
ZVZlcnRpY2FsOgogICAgICAgICByZXR1cm4gVmVydGljYWxDb2x1bW5BeGlzOwogICAgIGNhc2Ug
Q1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gQXV0b0NvbHVtbkF4aXM7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBA
IC00MTIzLDI0ICs0Mjk0LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBDb2x1bW5BeGlzKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2x1bW5Qcm9ncmVzc2lvbiBlKQogICAgIDog
Q1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3
aXRjaCAoZSkgewogICAgIGNhc2UgTm9ybWFsQ29sdW1uUHJvZ3Jlc3Npb246Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVOb3JtYWw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmV2ZXJzZUNvbHVtblBy
b2dyZXNzaW9uOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSZXZlcnNlOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJldmVyc2U7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IENvbHVtblByb2dyZXNzaW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQp
IHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3Jt
YWw6CiAgICAgICAgIHJldHVybiBOb3JtYWxDb2x1bW5Qcm9ncmVzc2lvbjsKICAgICBjYXNlIENT
U1ZhbHVlUmV2ZXJzZToKICAgICAgICAgcmV0dXJuIFJldmVyc2VDb2x1bW5Qcm9ncmVzc2lvbjsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTQxNTAsMzIgKzQzMjMsMzIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtblByb2dyZXNzaW9uKCkgY29uc3QKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShXcmFwRmxvdyB3
cmFwRmxvdykKIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAod3JhcEZsb3cpIHsKICAgICBjYXNlIFdyYXBGbG93QXV0bzoKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdyYXBGbG93Qm90
aDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQm90aDsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3RoOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdyYXBG
bG93U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXJ0OworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0YXJ0OwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFdyYXBGbG93RW5kOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFbmQ7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdyYXBGbG93TWF4aW11bToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
TWF4aW11bTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNYXhpbXVtOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFdyYXBGbG93Q2xlYXI6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUNsZWFyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNs
ZWFyOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcmFwRmxvdygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoICht
X3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNl
IENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFdyYXBGbG93QXV0bzsKICAgICBjYXNlIENT
U1ZhbHVlQm90aDoKQEAgLTQxODgsNiArNDM2MSw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcmFwRmxvdygpIGNvbnN0CiAgICAgICAgIHJldHVybiBX
cmFwRmxvd01heGltdW07CiAgICAgY2FzZSBDU1NWYWx1ZUNsZWFyOgogICAgICAgICByZXR1cm4g
V3JhcEZsb3dDbGVhcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQxOTcsMjQgKzQzNzIsMjYgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdyYXBGbG93KCkgY29uc3QKIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShXcmFw
VGhyb3VnaCB3cmFwVGhyb3VnaCkKIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAg
bV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAod3JhcFRocm91Z2gpIHsKICAgICBjYXNlIFdy
YXBUaHJvdWdoV3JhcDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV3JhcDsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXcmFwOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdyYXBUaHJvdWdoTm9uZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
Tm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAgICBi
cmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBXcmFwVGhyb3VnaCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50
KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlV3Jh
cDoKICAgICAgICAgcmV0dXJuIFdyYXBUaHJvdWdoV3JhcDsKICAgICBjYXNlIENTU1ZhbHVlTm9u
ZToKICAgICAgICAgcmV0dXJuIFdyYXBUaHJvdWdoTm9uZTsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQyMjMsMTMg
KzQ0MDAsMTUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFdyYXBUaHJvdWdoKCkgY29uc3QKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIEdyaWRBdXRvRmxvdygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1Zh
bHVlTm9uZToKICAgICAgICAgcmV0dXJuIEF1dG9GbG93Tm9uZTsKICAgICBjYXNlIENTU1ZhbHVl
Q29sdW1uOgogICAgICAgICByZXR1cm4gQXV0b0Zsb3dDb2x1bW47CiAgICAgY2FzZSBDU1NWYWx1
ZVJvdzoKICAgICAgICAgcmV0dXJuIEF1dG9GbG93Um93OworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDI0MCwxNiAr
NDQxOSwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
R3JpZEF1dG9GbG93KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShHcmlkQXV0b0Zsb3cgZmxvdykKICAgICA6IENTU1ZhbHVlKFBy
aW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Cisg
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGZsb3cp
IHsKICAgICBjYXNlIEF1dG9GbG93Tm9uZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEF1dG9GbG93Q29sdW1uOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVDb2x1bW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29s
dW1uOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEF1dG9GbG93Um93OgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVSb3c7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlUm93OwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00MjgwLDcgKzQ0NTksNyBAQCB0
ZW1wbGF0ZTxpbnQgc3VwcG9ydGVkPiBMZW5ndGggQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbnZlcnRU
b0xlbmd0aChjb25zdCBSZW5kZXJTdAogICAgICAgICByZXR1cm4gTGVuZ3RoKGdldERvdWJsZVZh
bHVlKCksIFBlcmNlbnQpOwogICAgIGlmICgoc3VwcG9ydGVkICYgRnJhY3Rpb25Db252ZXJzaW9u
KSAmJiBpc051bWJlcigpKQogICAgICAgICByZXR1cm4gTGVuZ3RoKGdldERvdWJsZVZhbHVlKCkg
KiAxMDAuMCwgUGVyY2VudCk7Ci0gICAgaWYgKChzdXBwb3J0ZWQgJiBBdXRvQ29udmVyc2lvbikg
JiYgZ2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pCisgICAgaWYgKChzdXBwb3J0ZWQgJiBBdXRv
Q29udmVyc2lvbikgJiYgZ2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgcmV0
dXJuIExlbmd0aChBdXRvKTsKICAgICBpZiAoKHN1cHBvcnRlZCAmIENhbGN1bGF0ZWRDb252ZXJz
aW9uKSAmJiBpc0NhbGN1bGF0ZWQoKSkKICAgICAgICAgcmV0dXJuIExlbmd0aChjc3NDYWxjVmFs
dWUoKS0+dG9DYWxjVmFsdWUoc3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllcikpOwpAQCAtNDI5
NCwyOSArNDQ3MywzMSBAQCB0ZW1wbGF0ZTxpbnQgc3VwcG9ydGVkPiBMZW5ndGggQ1NTUHJpbWl0
aXZlVmFsdWU6OmNvbnZlcnRUb0xlbmd0aChjb25zdCBSZW5kZXJTdAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCdWZmZXJlZFJlbmRlcmlu
ZyBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQlJfQVVUTzoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVBdXRvOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJSX0RZTkFNSUM6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUR5bmFtaWM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlRHluYW1pYzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCUl9TVEFUSUM6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXRpYzsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVTdGF0aWM7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCdWZmZXJlZFJlbmRl
cmluZygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0
dXJuIEJSX0FVVE87CiAgICAgY2FzZSBDU1NWYWx1ZUR5bmFtaWM6CiAgICAgICAgIHJldHVybiBC
Ul9EWU5BTUlDOwogICAgIGNhc2UgQ1NTVmFsdWVTdGF0aWM6CiAgICAgICAgIHJldHVybiBCUl9T
VEFUSUM7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC00MzI2LDI5ICs0NTA3LDMxIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQnVmZmVyZWRSZW5kZXJpbmcoKSBjb25zdAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVD
b2xvckludGVycG9sYXRpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBDSV9B
VVRPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENJX1NSR0I6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVTcmdiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ0lf
TElORUFSUkdCOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTGluZWFycmdi
OwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDSV9BVVRPOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ0lfU1JH
QjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcmdiOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENJX0xJTkVBUlJHQjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVMaW5lYXJyZ2I7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDb2xvckludGVycG9sYXRpb24oKSBj
b25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1Zh
bHVlU3JnYjoKLSAgICAgICAgICAgIHJldHVybiBDSV9TUkdCOwotICAgICAgICBjYXNlIENTU1Zh
bHVlTGluZWFycmdiOgotICAgICAgICAgICAgcmV0dXJuIENJX0xJTkVBUlJHQjsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAgICAgICByZXR1cm4gQ0lfQVVUTzsKKyAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVTcmdiOgorICAgICAgICBy
ZXR1cm4gQ0lfU1JHQjsKKyAgICBjYXNlIENTU1ZhbHVlTGluZWFycmdiOgorICAgICAgICByZXR1
cm4gQ0lfTElORUFSUkdCOworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4g
Q0lfQVVUTzsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQzNTgsMjkgKzQ1NDEsMzEgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDb2xvckludGVycG9sYXRpb24oKSBjb25z
dAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KEVDb2xvclJlbmRlcmluZyBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIENSX0FV
VE86Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1JfT1BUSU1JWkVTUEVFRDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBDUl9PUFRJTUlaRVFVQUxJVFk6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBj
YXNlIENSX0FVVE86CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDUl9PUFRJTUlaRVNQRUVEOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1JfT1BUSU1JWkVRVUFMSVRZOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU9wdGltaXplcXVhbGl0eTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUNvbG9yUmVuZGVyaW5nKCkgY29u
c3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZU9wdGltaXplc3BlZWQ6Ci0gICAgICAgICAgICByZXR1cm4gQ1JfT1BUSU1JWkVTUEVFRDsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0eToKLSAgICAgICAgICAgIHJldHVybiBD
Ul9PUFRJTUlaRVFVQUxJVFk7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAg
ICAgcmV0dXJuIENSX0FVVE87CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBj
YXNlIENTU1ZhbHVlT3B0aW1pemVzcGVlZDoKKyAgICAgICAgcmV0dXJuIENSX09QVElNSVpFU1BF
RUQ7CisgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0eToKKyAgICAgICAgcmV0dXJuIENS
X09QVElNSVpFUVVBTElUWTsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0dXJu
IENSX0FVVE87CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CkBAIC00MzkwLDc0ICs0NTc1LDc2IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ29sb3JSZW5kZXJpbmcoKSBjb25zdAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVE
b21pbmFudEJhc2VsaW5lIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgREJfQVVU
TzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9VU0VfU0NSSVBUOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlVXNlU2NyaXB0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgREJfTk9fQ0hBTkdFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
Tm9DaGFuZ2U7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9SRVNFVF9TSVpF
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmVzZXRTaXplOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgREJfQ0VOVFJBTDoKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUNlbnRyYWw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBEQl9NSURETEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNaWRk
bGU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9URVhUX0JFRk9SRV9FREdF
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4dEJlZm9yZUVkZ2U7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9URVhUX0FGVEVSX0VER0U6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUZXh0QWZ0ZXJFZGdlOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgREJfSURFT0dSQVBISUM6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVJZGVvZ3JhcGhpYzsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIERCX0FMUEhBQkVUSUM6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVBbHBoYWJldGljOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgREJfSEFO
R0lORzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhhbmdpbmc7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9NQVRIRU1BVElDQUw6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNYXRoZW1hdGljYWw7Ci0gICAgICAgICAgICBicmVh
azsKKyAgICBjYXNlIERCX0FVVE86CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXV0bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEQl9VU0VfU0NSSVBUOgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVzZVNjcmlwdDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBEQl9OT19DSEFOR0U6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9D
aGFuZ2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgREJfUkVTRVRfU0laRToKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZXNldFNpemU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgREJfQ0VOVFJBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50
cmFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERCX01JRERMRToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRkbGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgREJf
VEVYVF9CRUZPUkVfRURHRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0
QmVmb3JlRWRnZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEQl9URVhUX0FGVEVSX0VER0U6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dEFmdGVyRWRnZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBEQl9JREVPR1JBUEhJQzoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVJZGVvZ3JhcGhpYzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEQl9B
TFBIQUJFVElDOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFscGhhYmV0aWM7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgREJfSEFOR0lORzoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVIYW5naW5nOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERCX01B
VEhFTUFUSUNBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNYXRoZW1hdGlj
YWw7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVEb21pbmFudEJhc2VsaW5lKCkgY29uc3QKIHsKLSAgICBz
d2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAg
ICAgICAgICByZXR1cm4gREJfQVVUTzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVVzZVNjcmlwdDoK
LSAgICAgICAgICAgIHJldHVybiBEQl9VU0VfU0NSSVBUOwotICAgICAgICBjYXNlIENTU1ZhbHVl
Tm9DaGFuZ2U6Ci0gICAgICAgICAgICByZXR1cm4gREJfTk9fQ0hBTkdFOwotICAgICAgICBjYXNl
IENTU1ZhbHVlUmVzZXRTaXplOgotICAgICAgICAgICAgcmV0dXJuIERCX1JFU0VUX1NJWkU7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVJZGVvZ3JhcGhpYzoKLSAgICAgICAgICAgIHJldHVybiBEQl9J
REVPR1JBUEhJQzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFscGhhYmV0aWM6Ci0gICAgICAgICAg
ICByZXR1cm4gREJfQUxQSEFCRVRJQzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUhhbmdpbmc6Ci0g
ICAgICAgICAgICByZXR1cm4gREJfSEFOR0lORzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU1hdGhl
bWF0aWNhbDoKLSAgICAgICAgICAgIHJldHVybiBEQl9NQVRIRU1BVElDQUw7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVDZW50cmFsOgotICAgICAgICAgICAgcmV0dXJuIERCX0NFTlRSQUw7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVNaWRkbGU6Ci0gICAgICAgICAgICByZXR1cm4gREJfTUlERExFOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlVGV4dEFmdGVyRWRnZToKLSAgICAgICAgICAgIHJldHVybiBE
Ql9URVhUX0FGVEVSX0VER0U7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUZXh0QmVmb3JlRWRnZToK
LSAgICAgICAgICAgIHJldHVybiBEQl9URVhUX0JFRk9SRV9FREdFOworICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86CisgICAgICAgIHJldHVybiBE
Ql9BVVRPOworICAgIGNhc2UgQ1NTVmFsdWVVc2VTY3JpcHQ6CisgICAgICAgIHJldHVybiBEQl9V
U0VfU0NSSVBUOworICAgIGNhc2UgQ1NTVmFsdWVOb0NoYW5nZToKKyAgICAgICAgcmV0dXJuIERC
X05PX0NIQU5HRTsKKyAgICBjYXNlIENTU1ZhbHVlUmVzZXRTaXplOgorICAgICAgICByZXR1cm4g
REJfUkVTRVRfU0laRTsKKyAgICBjYXNlIENTU1ZhbHVlSWRlb2dyYXBoaWM6CisgICAgICAgIHJl
dHVybiBEQl9JREVPR1JBUEhJQzsKKyAgICBjYXNlIENTU1ZhbHVlQWxwaGFiZXRpYzoKKyAgICAg
ICAgcmV0dXJuIERCX0FMUEhBQkVUSUM7CisgICAgY2FzZSBDU1NWYWx1ZUhhbmdpbmc6CisgICAg
ICAgIHJldHVybiBEQl9IQU5HSU5HOworICAgIGNhc2UgQ1NTVmFsdWVNYXRoZW1hdGljYWw6Cisg
ICAgICAgIHJldHVybiBEQl9NQVRIRU1BVElDQUw7CisgICAgY2FzZSBDU1NWYWx1ZUNlbnRyYWw6
CisgICAgICAgIHJldHVybiBEQl9DRU5UUkFMOworICAgIGNhc2UgQ1NTVmFsdWVNaWRkbGU6Cisg
ICAgICAgIHJldHVybiBEQl9NSURETEU7CisgICAgY2FzZSBDU1NWYWx1ZVRleHRBZnRlckVkZ2U6
CisgICAgICAgIHJldHVybiBEQl9URVhUX0FGVEVSX0VER0U7CisgICAgY2FzZSBDU1NWYWx1ZVRl
eHRCZWZvcmVFZGdlOgorICAgICAgICByZXR1cm4gREJfVEVYVF9CRUZPUkVfRURHRTsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTQ0NjcsMjYgKzQ2NTQsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVEb21pbmFudEJhc2VsaW5lKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFU2hhcGVSZW5kZXJpbmcg
ZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9J
RDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFNSX0FVVE86Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXV0bzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTUl9PUFRJTUlaRVNQRUVEOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgU1JfQ1JJU1BFREdFUzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ3Jpc3Bl
ZGdlczsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDcmlzcGVkZ2VzOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFNSX0dFT01FVFJJQ1BSRUNJU0lPTjoKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlR2VvbWV0cmljcHJlY2lzaW9uOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUdlb21ldHJpY3ByZWNpc2lvbjsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
RVNoYXBlUmVuZGVyaW5nKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsK
KyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgog
ICAgICAgICByZXR1cm4gU1JfQVVUTzsKICAgICBjYXNlIENTU1ZhbHVlT3B0aW1pemVzcGVlZDoK
QEAgLTQ0OTUsNiArNDY4Miw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBFU2hhcGVSZW5kZXJpbmcoKSBjb25zdAogICAgICAgICByZXR1cm4gU1JfQ1JJ
U1BFREdFUzsKICAgICBjYXNlIENTU1ZhbHVlR2VvbWV0cmljcHJlY2lzaW9uOgogICAgICAgICBy
ZXR1cm4gU1JfR0VPTUVUUklDUFJFQ0lTSU9OOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDUwNCwyOSArNDY5Mywz
MSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVNoYXBl
UmVuZGVyaW5nKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShFVGV4dEFuY2hvciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZl
Q2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAg
ICBjYXNlIFRBX1NUQVJUOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3Rh
cnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUQV9NSURETEU6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNaWRkbGU7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBUQV9FTkQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVFbmQ7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIFRBX1NUQVJUOgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0YXJ0OworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFRBX01JRERMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRkbGU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFfRU5EOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUVuZDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRBbmNob3IoKSBjb25zdAogewot
ICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6
Ci0gICAgICAgICAgICByZXR1cm4gVEFfU1RBUlQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVNaWRk
bGU6Ci0gICAgICAgICAgICByZXR1cm4gVEFfTUlERExFOwotICAgICAgICBjYXNlIENTU1ZhbHVl
RW5kOgotICAgICAgICAgICAgcmV0dXJuIFRBX0VORDsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVTdGFydDoKKyAgICAgICAgcmV0dXJuIFRBX1NUQVJU
OworICAgIGNhc2UgQ1NTVmFsdWVNaWRkbGU6CisgICAgICAgIHJldHVybiBUQV9NSURETEU7Cisg
ICAgY2FzZSBDU1NWYWx1ZUVuZDoKKyAgICAgICAgcmV0dXJuIFRBX0VORDsKKyAgICBkZWZhdWx0
OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTQ1MzYsMzIgKzQ3MjcsMzIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVUZXh0QW5jaG9yKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShTVkdXcml0aW5nTW9kZSBlKQogICAgIDogQ1NT
VmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19J
REVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRj
aCAoZSkgewotICAgICAgICBjYXNlIFdNX0xSVEI6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVMclRiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV01fTFI6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMcjsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIFdNX1JMVEI6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVSbFRiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV01fUkw6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSbDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFdNX1RCUkw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVUYlJsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV01fVEI6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUYjsKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV01fTFJUQjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMclRi
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdNX0xSOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUxyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdNX1JMVEI6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmxUYjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBXTV9STDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSbDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXTV9UQlJMOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVRiUmw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV01fVEI6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGI7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNWR1dyaXRpbmdN
b2RlKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVMclRiOgogICAgICAgICByZXR1
cm4gV01fTFJUQjsKICAgICBjYXNlIENTU1ZhbHVlTHI6CkBAIC00NTc0LDYgKzQ3NjUsOCBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgU1ZHV3JpdGluZ01v
ZGUoKSBjb25zdAogICAgICAgICByZXR1cm4gV01fVEJSTDsKICAgICBjYXNlIENTU1ZhbHVlVGI6
CiAgICAgICAgIHJldHVybiBXTV9UQjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAg
ICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQ1ODMsMjQgKzQ3NzYsMjYgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNWR1dyaXRpbmdN
b2RlKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShFVmVjdG9yRWZmZWN0IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFz
cykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0
aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBW
RV9OT05FOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
VkVfTk9OX1NDQUxJTkdfU1RST0tFOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVO
b25TY2FsaW5nU3Ryb2tlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vblNj
YWxpbmdTdHJva2U7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVWZWN0b3JFZmZlY3QoKSBjb25zdAogewot
ICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBWRV9OT05FOwogICAg
IGNhc2UgQ1NTVmFsdWVOb25TY2FsaW5nU3Ryb2tlOgogICAgICAgICByZXR1cm4gVkVfTk9OX1ND
QUxJTkdfU1RST0tFOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDYxMCwyNCArNDgwNSwyNiBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVZlY3RvckVmZmVjdCgpIGNvbnN0
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
RU1hc2tUeXBlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBD
U1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBNVF9MVU1JTkFOQ0U6Ci0g
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUx1bWluYW5jZTsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVMdW1pbmFuY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TVRfQUxQSEE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFscGhhOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFscGhhOwogICAgICAgICBicmVhazsKICAgICB9
CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTWFz
a1R5cGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUx1bWluYW5jZToKICAgICAg
ICAgcmV0dXJuIE1UX0xVTUlOQU5DRTsKICAgICBjYXNlIENTU1ZhbHVlQWxwaGE6CiAgICAgICAg
IHJldHVybiBNVF9BTFBIQTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NUb1N0eWxlTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNw
cAppbmRleCA3MjFmZDhlOTAxYjVlYmJmMWNmNmNkNzQ5ZmE4ZjUzZjFjZmJhNDliLi4xN2E3OWZk
ZDU0NjBkYWQ3NDQ4YzRhMjc0YTEyOGVhYWJkNTIxZTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Rv
U3R5bGVNYXAuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwRmls
bEF0dGFjaG1lbnQoQ1NTUHJvcGVydHlJRCwgRmlsbExheWVyKiBsYXllciwgQ1NTVmFsdWUqCiAg
ICAgICAgIHJldHVybjsKIAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgIHN3aXRjaCAocHJp
bWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5n
ZXRWYWx1ZUlEKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlRml4ZWQ6CiAgICAgICAgIGxheWVyLT5z
ZXRBdHRhY2htZW50KEZpeGVkQmFja2dyb3VuZEF0dGFjaG1lbnQpOwogICAgICAgICBicmVhazsK
QEAgLTE5MCwxNiArMTkwLDE2IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwRmlsbFNpemUoQ1NT
UHJvcGVydHlJRCwgRmlsbExheWVyKiBsYXllciwgQ1NTVmFsdWUqIHZhbHVlCiAgICAgfQogCiAg
ICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgp
ID09IENTU1ZhbHVlQ29udGFpbikKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQo
KSA9PSBDU1NWYWx1ZUNvbnRhaW4pCiAgICAgICAgIGxheWVyLT5zZXRTaXplVHlwZShDb250YWlu
KTsKLSAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUNv
dmVyKQorICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVDb3ZlcikKICAgICAgICAgbGF5ZXItPnNldFNpemVUeXBlKENvdmVyKTsKICAgICBlbHNlCiAg
ICAgICAgIGxheWVyLT5zZXRTaXplVHlwZShTaXplTGVuZ3RoKTsKIAogICAgIExlbmd0aFNpemUg
YiA9IEZpbGxMYXllcjo6aW5pdGlhbEZpbGxTaXplTGVuZ3RoKGxheWVyLT50eXBlKCkpOwogCi0g
ICAgaWYgKHZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpIHx8IHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVu
dCgpID09IENTU1ZhbHVlQ29udGFpbiB8fCBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBD
U1NWYWx1ZUNvdmVyKSB7CisgICAgaWYgKHZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpIHx8IHByaW1p
dGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVDb250YWluIHx8IHByaW1pdGl2ZVZh
bHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVDb3ZlcikgewogICAgICAgICBsYXllci0+c2V0
U2l6ZUxlbmd0aChiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMyNCw3ICszMjQsNyBA
QCB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvbkRpcmVjdGlvbihBbmltYXRpb24qIGxh
eWVyLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIENTU1ByaW1pdGl2
ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4o
dmFsdWUpOwotICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICBz
d2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICBjYXNlIENTU1ZhbHVl
Tm9ybWFsOgogICAgICAgICBsYXllci0+c2V0RGlyZWN0aW9uKEFuaW1hdGlvbjo6QW5pbWF0aW9u
RGlyZWN0aW9uTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CkBAIC0zMzcsNiArMzM3LDggQEAgdm9p
ZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25EaXJlY3Rpb24oQW5pbWF0aW9uKiBsYXllciwg
Q1NTVmFsdWUqIHZhbHVlKQogICAgIGNhc2UgQ1NTVmFsdWVBbHRlcm5hdGVSZXZlcnNlOgogICAg
ICAgICBsYXllci0+c2V0RGlyZWN0aW9uKEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0
ZXJuYXRlUmV2ZXJzZSk7CiAgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KIApAQCAtMzY1LDcgKzM2Nyw3IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6
bWFwQW5pbWF0aW9uRmlsbE1vZGUoQW5pbWF0aW9uKiBsYXllciwgQ1NTVmFsdWUqIHZhbHVlKQog
ICAgICAgICByZXR1cm47CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUg
PSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICBzd2l0Y2ggKHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+
Z2V0VmFsdWVJRCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIGxheWVyLT5z
ZXRGaWxsTW9kZShBbmltYXRpb25GaWxsTW9kZU5vbmUpOwogICAgICAgICBicmVhazsKQEAgLTM3
OCw2ICszODAsOCBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvbkZpbGxNb2RlKEFu
aW1hdGlvbiogbGF5ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICBjYXNlIENTU1ZhbHVlQm90aDoK
ICAgICAgICAgbGF5ZXItPnNldEZpbGxNb2RlKEFuaW1hdGlvbkZpbGxNb2RlQm90aCk7CiAgICAg
ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApAQCAt
MzkyLDcgKzM5Niw3IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uSXRlcmF0aW9u
Q291bnQoQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVlKiB2CiAgICAgICAgIHJldHVybjsK
IAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRl
bnQoKSA9PSBDU1NWYWx1ZUluZmluaXRlKQorICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFs
dWVJRCgpID09IENTU1ZhbHVlSW5maW5pdGUpCiAgICAgICAgIGFuaW1hdGlvbi0+c2V0SXRlcmF0
aW9uQ291bnQoQW5pbWF0aW9uOjpJdGVyYXRpb25Db3VudEluZmluaXRlKTsKICAgICBlbHNlCiAg
ICAgICAgIGFuaW1hdGlvbi0+c2V0SXRlcmF0aW9uQ291bnQocHJpbWl0aXZlVmFsdWUtPmdldEZs
b2F0VmFsdWUoKSk7CkBAIC00MDksNyArNDEzLDcgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBB
bmltYXRpb25OYW1lKEFuaW1hdGlvbiogbGF5ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGlj
X2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgaWYgKHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdl
dFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAgIGxheWVyLT5zZXRJc05vbmVBbmlt
YXRpb24odHJ1ZSk7CiAgICAgZWxzZQogICAgICAgICBsYXllci0+c2V0TmFtZShwcmltaXRpdmVW
YWx1ZS0+Z2V0U3RyaW5nVmFsdWUoKSk7CkBAIC00MjYsNyArNDMwLDcgQEAgdm9pZCBDU1NUb1N0
eWxlTWFwOjptYXBBbmltYXRpb25QbGF5U3RhdGUoQW5pbWF0aW9uKiBsYXllciwgQ1NTVmFsdWUq
IHZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0
aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICBF
QW5pbVBsYXlTdGF0ZSBwbGF5U3RhdGUgPSAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0g
Q1NTVmFsdWVQYXVzZWQpID8gQW5pbVBsYXlTdGF0ZVBhdXNlZCA6IEFuaW1QbGF5U3RhdGVQbGF5
aW5nOworICAgIEVBbmltUGxheVN0YXRlIHBsYXlTdGF0ZSA9IChwcmltaXRpdmVWYWx1ZS0+Z2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlUGF1c2VkKSA/IEFuaW1QbGF5U3RhdGVQYXVzZWQgOiBBbmlt
UGxheVN0YXRlUGxheWluZzsKICAgICBsYXllci0+c2V0UGxheVN0YXRlKHBsYXlTdGF0ZSk7CiB9
CiAKQEAgLTQ0MiwxNSArNDQ2LDE1IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9u
UHJvcGVydHkoQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGlj
X2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgaWYgKHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlQWxsKSB7CisgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVBbGwpIHsKICAgICAgICAgYW5pbWF0aW9uLT5zZXRBbmlt
YXRpb25Nb2RlKEFuaW1hdGlvbjo6QW5pbWF0ZUFsbCk7CiAgICAgICAgIGFuaW1hdGlvbi0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlJbnZhbGlkKTsKLSAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkgeworICAgIH0gZWxzZSBpZiAocHJpbWl0
aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmUpIHsKICAgICAgICAgYW5pbWF0
aW9uLT5zZXRBbmltYXRpb25Nb2RlKEFuaW1hdGlvbjo6QW5pbWF0ZU5vbmUpOwogICAgICAgICBh
bmltYXRpb24tPnNldFByb3BlcnR5KENTU1Byb3BlcnR5SW52YWxpZCk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgYW5pbWF0aW9uLT5zZXRBbmltYXRpb25Nb2RlKEFuaW1hdGlvbjo6QW5pbWF0ZVNp
bmdsZVByb3BlcnR5KTsKLSAgICAgICAgYW5pbWF0aW9uLT5zZXRQcm9wZXJ0eShzdGF0aWNfY2Fz
dDxDU1NQcm9wZXJ0eUlEPihwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkpOworICAgICAgICBh
bmltYXRpb24tPnNldFByb3BlcnR5KHByaW1pdGl2ZVZhbHVlLT5nZXRQcm9wZXJ0eUlEKCkpOwog
ICAgIH0KIH0KIApAQCAtNDYzLDcgKzQ2Nyw3IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwQW5p
bWF0aW9uVGltaW5nRnVuY3Rpb24oQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVlKiB2CiAK
ICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgewogICAgICAgICBDU1NQcmltaXRp
dmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KHZhbHVlKTsKLSAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgewor
ICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAgICAg
Y2FzZSBDU1NWYWx1ZUxpbmVhcjoKICAgICAgICAgICAgIGFuaW1hdGlvbi0+c2V0VGltaW5nRnVu
Y3Rpb24oTGluZWFyVGltaW5nRnVuY3Rpb246OmNyZWF0ZSgpKTsKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtNDg1LDYgKzQ4OSw4IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uVGlt
aW5nRnVuY3Rpb24oQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVlKiB2CiAgICAgICAgIGNh
c2UgQ1NTVmFsdWVTdGVwRW5kOgogICAgICAgICAgICAgYW5pbWF0aW9uLT5zZXRUaW1pbmdGdW5j
dGlvbihTdGVwc1RpbWluZ0Z1bmN0aW9uOjpjcmVhdGUoMSwgZmFsc2UpKTsKICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTYxMywyOCArNjE5LDI4IEBAIExlbmd0aEJveCBD
U1NUb1N0eWxlTWFwOjptYXBOaW5lUGllY2VJbWFnZVF1YWQoQ1NTVmFsdWUqIHZhbHVlKQogICAg
ICAgICBib3gubV90b3AgPSBMZW5ndGgoc2xpY2VzLT50b3AoKS0+Z2V0SW50VmFsdWUoKSwgUmVs
YXRpdmUpOwogICAgIGVsc2UgaWYgKHNsaWNlcy0+dG9wKCktPmlzUGVyY2VudGFnZSgpKQogICAg
ICAgICBib3gubV90b3AgPSBMZW5ndGgoc2xpY2VzLT50b3AoKS0+Z2V0RG91YmxlVmFsdWUoQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKSwgUGVyY2VudCk7Ci0gICAgZWxzZSBpZiAo
c2xpY2VzLT50b3AoKS0+Z2V0SWRlbnQoKSAhPSBDU1NWYWx1ZUF1dG8pCisgICAgZWxzZSBpZiAo
c2xpY2VzLT50b3AoKS0+Z2V0VmFsdWVJRCgpICE9IENTU1ZhbHVlQXV0bykKICAgICAgICAgYm94
Lm1fdG9wID0gc2xpY2VzLT50b3AoKS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KHN0eWxlKCksIHJv
b3RFbGVtZW50U3R5bGUoKSwgem9vbSk7CiAKICAgICBpZiAoc2xpY2VzLT5yaWdodCgpLT5pc051
bWJlcigpKQogICAgICAgICBib3gubV9yaWdodCA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdl
dEludFZhbHVlKCksIFJlbGF0aXZlKTsKICAgICBlbHNlIGlmIChzbGljZXMtPnJpZ2h0KCktPmlz
UGVyY2VudGFnZSgpKQogICAgICAgICBib3gubV9yaWdodCA9IExlbmd0aChzbGljZXMtPnJpZ2h0
KCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBl
cmNlbnQpOwotICAgIGVsc2UgaWYgKHNsaWNlcy0+cmlnaHQoKS0+Z2V0SWRlbnQoKSAhPSBDU1NW
YWx1ZUF1dG8pCisgICAgZWxzZSBpZiAoc2xpY2VzLT5yaWdodCgpLT5nZXRWYWx1ZUlEKCkgIT0g
Q1NTVmFsdWVBdXRvKQogICAgICAgICBib3gubV9yaWdodCA9IHNsaWNlcy0+cmlnaHQoKS0+Y29t
cHV0ZUxlbmd0aDxMZW5ndGg+KHN0eWxlKCksIHJvb3RFbGVtZW50U3R5bGUoKSwgem9vbSk7CiAK
ICAgICBpZiAoc2xpY2VzLT5ib3R0b20oKS0+aXNOdW1iZXIoKSkKICAgICAgICAgYm94Lm1fYm90
dG9tID0gTGVuZ3RoKHNsaWNlcy0+Ym90dG9tKCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsK
ICAgICBlbHNlIGlmIChzbGljZXMtPmJvdHRvbSgpLT5pc1BlcmNlbnRhZ2UoKSkKICAgICAgICAg
Ym94Lm1fYm90dG9tID0gTGVuZ3RoKHNsaWNlcy0+Ym90dG9tKCktPmdldERvdWJsZVZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOwotICAgIGVsc2UgaWYg
KHNsaWNlcy0+Ym90dG9tKCktPmdldElkZW50KCkgIT0gQ1NTVmFsdWVBdXRvKQorICAgIGVsc2Ug
aWYgKHNsaWNlcy0+Ym90dG9tKCktPmdldFZhbHVlSUQoKSAhPSBDU1NWYWx1ZUF1dG8pCiAgICAg
ICAgIGJveC5tX2JvdHRvbSA9IHNsaWNlcy0+Ym90dG9tKCktPmNvbXB1dGVMZW5ndGg8TGVuZ3Ro
PihzdHlsZSgpLCByb290RWxlbWVudFN0eWxlKCksIHpvb20pOwogCiAgICAgaWYgKHNsaWNlcy0+
bGVmdCgpLT5pc051bWJlcigpKQogICAgICAgICBib3gubV9sZWZ0ID0gTGVuZ3RoKHNsaWNlcy0+
bGVmdCgpLT5nZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7CiAgICAgZWxzZSBpZiAoc2xpY2VzLT5s
ZWZ0KCktPmlzUGVyY2VudGFnZSgpKQogICAgICAgICBib3gubV9sZWZ0ID0gTGVuZ3RoKHNsaWNl
cy0+bGVmdCgpLT5nZXREb3VibGVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRB
R0UpLCBQZXJjZW50KTsKLSAgICBlbHNlIGlmIChzbGljZXMtPmxlZnQoKS0+Z2V0SWRlbnQoKSAh
PSBDU1NWYWx1ZUF1dG8pCisgICAgZWxzZSBpZiAoc2xpY2VzLT5sZWZ0KCktPmdldFZhbHVlSUQo
KSAhPSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIGJveC5tX2xlZnQgPSBzbGljZXMtPmxlZnQoKS0+
Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KHN0eWxlKCksIHJvb3RFbGVtZW50U3R5bGUoKSwgem9vbSk7
CiAKICAgICByZXR1cm4gYm94OwpAQCAtNjUwLDggKzY1Niw4IEBAIHZvaWQgQ1NTVG9TdHlsZU1h
cDo6bWFwTmluZVBpZWNlSW1hZ2VSZXBlYXQoQ1NTVmFsdWUqIHZhbHVlLCBOaW5lUGllY2VJbWFn
ZSYgaW1hCiAgICAgaWYgKCFwYWlyIHx8ICFwYWlyLT5maXJzdCgpIHx8ICFwYWlyLT5zZWNvbmQo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW50IGZpcnN0SWRlbnRpZmllciA9IHBhaXItPmZp
cnN0KCktPmdldElkZW50KCk7Ci0gICAgaW50IHNlY29uZElkZW50aWZpZXIgPSBwYWlyLT5zZWNv
bmQoKS0+Z2V0SWRlbnQoKTsKKyAgICBDU1NWYWx1ZUlEIGZpcnN0SWRlbnRpZmllciA9IHBhaXIt
PmZpcnN0KCktPmdldFZhbHVlSUQoKTsKKyAgICBDU1NWYWx1ZUlEIHNlY29uZElkZW50aWZpZXIg
PSBwYWlyLT5zZWNvbmQoKS0+Z2V0VmFsdWVJRCgpOwogCiAgICAgRU5pbmVQaWVjZUltYWdlUnVs
ZSBob3Jpem9udGFsUnVsZTsKICAgICBzd2l0Y2ggKGZpcnN0SWRlbnRpZmllcikgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NvdW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
b3VudGVyLmgKaW5kZXggZmMyMjc5ZjlhY2E0NzI0N2I3MDRhYmJkYzZlM2I5Yjg1NjEyYjhjYy4u
MjA1YmY4YmJlNWFkZGU1MzUzYmJjNTFjNGVkZjMyNzFkN2FiZDY3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NvdW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ291bnRl
ci5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgbGlzdFN0eWxlKCkgY29u
c3QgeyByZXR1cm4gbV9saXN0U3R5bGUgPyBtX2xpc3RTdHlsZS0+Z2V0U3RyaW5nVmFsdWUoKSA6
IFN0cmluZygpOyB9CiAgICAgU3RyaW5nIHNlcGFyYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Vw
YXJhdG9yID8gbV9zZXBhcmF0b3ItPmdldFN0cmluZ1ZhbHVlKCkgOiBTdHJpbmcoKTsgfQogCi0g
ICAgaW50IGxpc3RTdHlsZUlkZW50KCkgY29uc3QgeyByZXR1cm4gbV9saXN0U3R5bGUgPyBtX2xp
c3RTdHlsZS0+Z2V0SWRlbnQoKSA6IDA7IH0KKyAgICBDU1NWYWx1ZUlEIGxpc3RTdHlsZUlkZW50
KCkgY29uc3QgeyByZXR1cm4gbV9saXN0U3R5bGUgPyBtX2xpc3RTdHlsZS0+Z2V0VmFsdWVJRCgp
IDogQ1NTVmFsdWVJbnZhbGlkOyB9CiAKICAgICB2b2lkIHNldElkZW50aWZpZXIoUGFzc1JlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gaWRlbnRpZmllcikgeyBtX2lkZW50aWZpZXIgPSBpZGVudGlm
aWVyOyB9CiAgICAgdm9pZCBzZXRMaXN0U3R5bGUoUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gbGlzdFN0eWxlKSB7IG1fbGlzdFN0eWxlID0gbGlzdFN0eWxlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKaW5kZXggYzM2ZmYyNDhmZTVkMmU1
N2E0MWFlZmMzMThiMzYwNjMyYjMyYWZiMC4uM2JiOTBjYzU5Y2Q4NTliNTcwOGZmMDFlMDczMDg5
OTliYzc5MmE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHls
ZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWls
ZGVyLmNwcApAQCAtMTY2LDcgKzE2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpID09IGlkTWFwc1RvTWludXNPbmUpCisgICAgICAgIGlmIChwcmltaXRpdmVW
YWx1ZS0+Z2V0VmFsdWVJRCgpID09IGlkTWFwc1RvTWludXNPbmUpCiAgICAgICAgICAgICBzZXRW
YWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCAtMSk7CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHByaW1pdGl2ZVZhbHVlLT5nZXRW
YWx1ZTxOdW1iZXJUeXBlPihDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikpOwpAQCAtMjE0
LDcgKzIxNCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBDU1NQ
cmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZSo+KHZhbHVlKTsKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09
IGF1dG9JZGVudGl0eSkKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkg
PT0gYXV0b0lkZW50aXR5KQogICAgICAgICAgICAgc2V0QXV0byhzdHlsZVJlc29sdmVyLT5zdHls
ZSgpKTsKICAgICAgICAgZWxzZSBpZiAodmFsdWVUeXBlID09IE51bWJlcikKICAgICAgICAgICAg
IHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksICpwcmltaXRpdmVWYWx1ZSk7CkBAIC0y
NjEsNyArMjYxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgTGVuZ3RoIGxlZnQgPSBjb252ZXJ0
VG9MZW5ndGgoc3R5bGVSZXNvbHZlciwgcmVjdC0+bGVmdCgpKTsKICAgICAgICAgICAgIHN0eWxl
UmVzb2x2ZXItPnN0eWxlKCktPnNldENsaXAodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0KTsKICAg
ICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldEhhc0NsaXAodHJ1ZSk7Ci0gICAg
ICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVBdXRv
KSB7CisgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBD
U1NWYWx1ZUF1dG8pIHsKICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldENs
aXAoTGVuZ3RoKCksIExlbmd0aCgpLCBMZW5ndGgoKSwgTGVuZ3RoKCkpOwogICAgICAgICAgICAg
c3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0SGFzQ2xpcChmYWxzZSk7CiAgICAgICAgIH0KQEAg
LTI5OSw3ICsyOTksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
Q1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0
aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgICAgIGlmIChpbmhlcml0Q29sb3JGcm9tUGFyZW50ICYm
IHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQ3VycmVudGNvbG9yKQorICAg
ICAgICBpZiAoaW5oZXJpdENvbG9yRnJvbVBhcmVudCAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFs
dWVJRCgpID09IENTU1ZhbHVlQ3VycmVudGNvbG9yKQogICAgICAgICAgICAgYXBwbHlJbmhlcml0
VmFsdWUocHJvcGVydHlJRCwgc3R5bGVSZXNvbHZlcik7CiAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgaWYgKHN0eWxlUmVzb2x2ZXItPmFwcGx5UHJvcGVydHlUb1JlZ3VsYXJTdHlsZSgpKQpA
QCAtMzYwLDMwICszNjAsMzAgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1By
aW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgICAgICBpZiAobm9uZUVuYWJsZWQgJiYgcHJpbWl0
aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKSB7CisgICAgICAgIGlmIChub25l
RW5hYmxlZCAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9uZSkg
ewogICAgICAgICAgICAgaWYgKG5vbmVVbmRlZmluZWQpCiAgICAgICAgICAgICAgICAgc2V0VmFs
dWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKFVuZGVmaW5lZCkpOwogICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCks
IExlbmd0aCgpKTsKICAgICAgICAgfQogICAgICAgICBpZiAobGVnYWN5SW50cmluc2ljRW5hYmxl
ZCkgewotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1Zh
bHVlSW50cmluc2ljKQorICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlE
KCkgPT0gQ1NTVmFsdWVJbnRyaW5zaWMpCiAgICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVS
ZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKEludHJpbnNpYykpOwotICAgICAgICAgICAgZWxzZSBp
ZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVNaW5JbnRyaW5zaWMpCisg
ICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1Zh
bHVlTWluSW50cmluc2ljKQogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXIt
PnN0eWxlKCksIExlbmd0aChNaW5JbnRyaW5zaWMpKTsKICAgICAgICAgfQogICAgICAgICBpZiAo
aW50cmluc2ljRW5hYmxlZCkgewotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJ
ZGVudCgpID09IENTU1ZhbHVlV2Via2l0TWluQ29udGVudCkKKyAgICAgICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlV2Via2l0TWluQ29udGVudCkKICAg
ICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBMZW5ndGgoTWlu
Q29udGVudCkpOwotICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkgPT0gQ1NTVmFsdWVXZWJraXRNYXhDb250ZW50KQorICAgICAgICAgICAgZWxzZSBpZiAocHJp
bWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVdlYmtpdE1heENvbnRlbnQpCiAg
ICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKE1h
eENvbnRlbnQpKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVu
dCgpID09IENTU1ZhbHVlV2Via2l0RmlsbEF2YWlsYWJsZSkKKyAgICAgICAgICAgIGVsc2UgaWYg
KHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVXZWJraXRGaWxsQXZhaWxh
YmxlKQogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExl
bmd0aChGaWxsQXZhaWxhYmxlKSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1
ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZVdlYmtpdEZpdENvbnRlbnQpCisgICAgICAgICAgICBl
bHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlV2Via2l0Rml0
Q29udGVudCkKICAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgp
LCBMZW5ndGgoRml0Q29udGVudCkpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGF1dG9FbmFi
bGVkICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQXV0bykKKyAgICAg
ICAgaWYgKGF1dG9FbmFibGVkICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NT
VmFsdWVBdXRvKQogICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwg
TGVuZ3RoKCkpOwogICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNMZW5ndGgoKSkg
ewogICAgICAgICAgICAgTGVuZ3RoIGxlbmd0aCA9IHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVu
Z3RoPExlbmd0aD4oc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+cm9vdEVs
ZW1lbnRTdHlsZSgpLCBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpOwpA
QCAtNDE0LDggKzQxNCw4IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRp
dmVWYWx1ZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBDU1NQcmltaXRpdmVWYWx1
ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVl
KTsKLSAgICAgICAgaWYgKChpZGVudEJlaGF2aW9yID09IE1hcE5vbmVUb051bGwgJiYgcHJpbWl0
aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKQotICAgICAgICAgICAgfHwgKGlk
ZW50QmVoYXZpb3IgPT0gTWFwQXV0b1RvTnVsbCAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQo
KSA9PSBDU1NWYWx1ZUF1dG8pKQorICAgICAgICBpZiAoKGlkZW50QmVoYXZpb3IgPT0gTWFwTm9u
ZVRvTnVsbCAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9uZSkK
KyAgICAgICAgICAgIHx8IChpZGVudEJlaGF2aW9yID09IE1hcEF1dG9Ub051bGwgJiYgcHJpbWl0
aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUF1dG8pKQogICAgICAgICAgICAgc2V0
VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgbnVsbEF0b20pOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBwcmltaXRpdmVWYWx1
ZS0+Z2V0U3RyaW5nVmFsdWUoKSk7CkBAIC01OTEsNyArNTkxLDcgQEAgcHVibGljOgogCiAgICAg
ICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1By
aW1pdGl2ZVZhbHVlKj4odmFsdWUpOwogCi0gICAgICAgIGludCBpZGVudCA9IHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpOworICAgICAgICBDU1NWYWx1ZUlEIGlkZW50ID0gcHJpbWl0aXZlVmFs
dWUtPmdldFZhbHVlSUQoKTsKICAgICAgICAgVCBsZW5ndGg7CiAgICAgICAgIGlmIChub3JtYWxF
bmFibGVkICYmIGlkZW50ID09IENTU1ZhbHVlTm9ybWFsKSB7CiAgICAgICAgICAgICBsZW5ndGgg
PSAwOwpAQCAtNzA3LDcgKzcwNyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGlmIChjb250ZW50
VmFsdWUtPmlzU3RyaW5nKCkpCiAgICAgICAgICAgICAgICAgZmFjZSA9IGNvbnRlbnRWYWx1ZS0+
Z2V0U3RyaW5nVmFsdWUoKTsKICAgICAgICAgICAgIGVsc2UgaWYgKFNldHRpbmdzKiBzZXR0aW5n
cyA9IHN0eWxlUmVzb2x2ZXItPmRvY3VtZW50KCktPnNldHRpbmdzKCkpIHsKLSAgICAgICAgICAg
ICAgICBzd2l0Y2ggKGNvbnRlbnRWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgICAg
IHN3aXRjaCAoY29udGVudFZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAgICAgICAgICAgICBj
YXNlIENTU1ZhbHVlV2Via2l0Qm9keToKICAgICAgICAgICAgICAgICAgICAgZmFjZSA9IHNldHRp
bmdzLT5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBA
IC03MzUsNiArNzM1LDggQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICBmYWNlID0gcGlj
dG9ncmFwaEZhbWlseTsKICAgICAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldEdl
bmVyaWNGYW1pbHkoRm9udERlc2NyaXB0aW9uOjpQaWN0b2dyYXBoRmFtaWx5KTsKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCkBAIC04
MjMsNyArODI1LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcGFyZW50SXNBYnNvbHV0ZVNpemUg
PSBzdHlsZVJlc29sdmVyLT5wYXJlbnRTdHlsZSgpLT5mb250RGVzY3JpcHRpb24oKS5pc0Fic29s
dXRlU2l6ZSgpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGludCBpZGVudCA9IHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgIGlmIChDU1NWYWx1ZUlEIGlkZW50ID0gcHJp
bWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkgewogICAgICAgICAgICAgLy8gS2V5d29yZHMgYXJl
IGJlaW5nIHVzZWQuCiAgICAgICAgICAgICBzd2l0Y2ggKGlkZW50KSB7CiAgICAgICAgICAgICBj
YXNlIENTU1ZhbHVlWHhTbWFsbDoKQEAgLTg4Niw3ICs4ODgsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwogICAgICAgICBGb250RGVz
Y3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0gc3R5bGVSZXNvbHZlci0+Zm9udERlc2NyaXB0aW9u
KCk7Ci0gICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAg
ICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAgIGNhc2Ug
Q1NTVmFsdWVJbnZhbGlkOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgICAgICBicmVhazsKQEAgLTk0Niw3ICs5NDgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgQVNTRVJUKGl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgaWYg
KGl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSkgewogICAgICAgICAgICAgICAgICAgICBDU1NQcmlt
aXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZSo+KGl0ZW0pOwotICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5n
ZXRJZGVudCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUt
PmdldFZhbHVlSUQoKSkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlTm9Db21t
b25MaWdhdHVyZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb25MaWdhdHVyZXNTdGF0
ZSA9IEZvbnREZXNjcmlwdGlvbjo6RGlzYWJsZWRMaWdhdHVyZXNTdGF0ZTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTc1LDcgKzk3Nyw3IEBAIHB1YmxpYzoKICNpZiAhQVNT
RVJUX0RJU0FCTEVECiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04odmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSk7Ci0gICAgICAgICAg
ICBBU1NFUlQoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldElkZW50
KCkgPT0gQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb3JtYWwp
OwogICAgICAgICB9CiAjZW5kaWYKIApAQCAtMTEyMyw3ICsxMTI1LDcgQEAgcHVibGljOgogICAg
IH0KICAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2
ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGJvb2wg
c2V0Q291bnRlckluY3JlbWVudFRvTm9uZSA9IGNvdW50ZXJCZWhhdmlvciA9PSBJbmNyZW1lbnQg
JiYgdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZSo+KHZhbHVlKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJvb2wg
c2V0Q291bnRlckluY3JlbWVudFRvTm9uZSA9IGNvdW50ZXJCZWhhdmlvciA9PSBJbmNyZW1lbnQg
JiYgdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZSo+KHZhbHVlKS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9uZTsKIAogICAgICAgICBp
ZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpICYmICFzZXRDb3VudGVySW5jcmVtZW50VG9Ob25lKQog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTE5NiwxMyArMTE5OCwxMyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPmFkZEN1cnNvcihzdHlsZVJl
c29sdmVyLT5zdHlsZUltYWdlKENTU1Byb3BlcnR5Q3Vyc29yLCBpbWFnZSksIGltYWdlLT5ob3RT
cG90KCkpOwogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS0+aXNQcmltaXRpdmVWYWx1
ZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVW
YWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNJZGVudCgpKQorICAgICAgICAgICAgICAg
ICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmlzVmFsdWVJRCgpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0Q3Vyc29yKCpwcmltaXRpdmVWYWx1ZSk7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKHZh
bHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVl
KiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUp
OwotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc0lkZW50KCkgJiYgc3R5bGVSZXNv
bHZlci0+c3R5bGUoKS0+Y3Vyc29yKCkgIT0gRUN1cnNvcigqcHJpbWl0aXZlVmFsdWUpKQorICAg
ICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1ZhbHVlSUQoKSAmJiBzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLT5jdXJzb3IoKSAhPSBFQ3Vyc29yKCpwcmltaXRpdmVWYWx1ZSkpCiAgICAgICAg
ICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0Q3Vyc29yKCpwcmltaXRpdmVWYWx1
ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjE5LDcgKzEyMjEsNyBAQCBwdWJsaWM6CiAKICAg
ICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CiAKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRJZGVudCgpICE9IENTU1ZhbHVlV2Via2l0TWF0Y2hQYXJlbnQpCisgICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpICE9IENTU1ZhbHVlV2Via2l0TWF0Y2hQYXJlbnQpCiAg
ICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0QWxpZ24oKnByaW1pdGl2
ZVZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoc3R5bGVSZXNvbHZlci0+cGFyZW50U3R5bGUoKS0+
dGV4dEFsaWduKCkgPT0gVEFTVEFSVCkKICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxl
KCktPnNldFRleHRBbGlnbihzdHlsZVJlc29sdmVyLT5wYXJlbnRTdHlsZSgpLT5pc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKCkgPyBMRUZUIDogUklHSFQpOwpAQCAtMTI2Miw4ICsxMjY0LDggQEAgcHVi
bGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBw
cmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwot
ICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKLSAgICAgICAgICAgIHN3
aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFs
dWUtPmdldFZhbHVlSUQoKSkgewogICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVNtYWxsOgogICAg
ICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldE1hcnF1ZWVJbmNyZW1lbnQo
TGVuZ3RoKDEsIEZpeGVkKSk7IC8vIDFweC4KICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTEy
NzMsNiArMTI3NSw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVMYXJnZToK
ICAgICAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRNYXJxdWVlSW5jcmVt
ZW50KExlbmd0aCgzNiwgRml4ZWQpKTsgLy8gMzZweC4KICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBMZW5ndGggbWFycXVlZUxlbmd0aCA9
IHN0eWxlUmVzb2x2ZXItPmNvbnZlcnRUb0ludExlbmd0aChwcmltaXRpdmVWYWx1ZSwgc3R5bGVS
ZXNvbHZlci0+c3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+cm9vdEVsZW1lbnRTdHlsZSgpKTsKQEAg
LTEyOTUsNyArMTI5OSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVu
dCgpID09IENTU1ZhbHVlSW5maW5pdGUpCisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlSW5maW5pdGUpCiAgICAgICAgICAgICBzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLT5zZXRNYXJxdWVlTG9vcENvdW50KC0xKTsgLy8gLTEgbWVhbnMgcmVwZWF0IGZv
cmV2ZXIuCiAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc051bWJlcigpKQogICAg
ICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0TWFycXVlZUxvb3BDb3VudChwcmlt
aXRpdmVWYWx1ZS0+Z2V0SW50VmFsdWUoKSk7CkBAIC0xMzE1LDcgKzEzMTksNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1p
dGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAg
ICAgIGlmIChpbnQgaWRlbnQgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAg
ICBpZiAoQ1NTVmFsdWVJRCBpZGVudCA9IHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsK
ICAgICAgICAgICAgIHN3aXRjaCAoaWRlbnQpIHsKICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVT
bG93OgogICAgICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldE1hcnF1ZWVT
cGVlZCg1MDApOyAvLyA1MDAgbXNlYy4KQEAgLTEzMjYsNiArMTMzMCw4IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIGNhc2UgQ1NTVmFsdWVGYXN0OgogICAgICAgICAgICAgICAgIHN0eWxlUmVzb2x2
ZXItPnN0eWxlKCktPnNldE1hcnF1ZWVTcGVlZCgxMCk7IC8vIDEwbXNlYy4gU3VwZXIgZmFzdC4K
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZl
VmFsdWUtPmlzVGltZSgpKQogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0
TWFycXVlZVNwZWVkKHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlVGltZTxpbnQsIENTU1ByaW1pdGl2
ZVZhbHVlOjpNaWxsaXNlY29uZHM+KCkpOwpAQCAtMTM3OCw3ICsxMzg0LDcgQEAgcHVibGljOgog
ICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKICAgICAgICAgTGVuZ3RoIGxpbmVIZWlnaHQ7CiAK
LSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9ybWFs
KQorICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5v
cm1hbCkKICAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVI
ZWlnaHQoKTsKICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzTGVuZ3RoKCkpIHsK
ICAgICAgICAgICAgIGRvdWJsZSBtdWx0aXBsaWVyID0gc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+
ZWZmZWN0aXZlWm9vbSgpOwpAQCAtMTQzMCw3ICsxNDM2LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
aWYgKCFwYWdlU2l6ZU5hbWUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAg
c3dpdGNoIChwYWdlU2l6ZU5hbWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgc3dpdGNoIChwYWdl
U2l6ZU5hbWUtPmdldFZhbHVlSUQoKSkgewogICAgICAgICBjYXNlIENTU1ZhbHVlQTU6CiAgICAg
ICAgICAgICB3aWR0aCA9IGE1V2lkdGg7CiAgICAgICAgICAgICBoZWlnaHQgPSBhNUhlaWdodDsK
QEAgLTE0NjgsNyArMTQ3NCw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KIAogICAgICAgICBpZiAo
cGFnZU9yaWVudGF0aW9uKSB7Ci0gICAgICAgICAgICBzd2l0Y2ggKHBhZ2VPcmllbnRhdGlvbi0+
Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgc3dpdGNoIChwYWdlT3JpZW50YXRpb24tPmdldFZh
bHVlSUQoKSkgewogICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUxhbmRzY2FwZToKICAgICAgICAg
ICAgICAgICBzdGQ6OnN3YXAod2lkdGgsIGhlaWdodCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CkBAIC0xNTIzLDcgKzE1MjksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgcGFnZVNpemVU
eXBlID0gUEFHRV9TSVpFX1JFU09MVkVEOwogICAgICAgICAgICAgICAgIHdpZHRoID0gaGVpZ2h0
ID0gcHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihzdHlsZVJlc29sdmVyLT5z
dHlsZSgpLCBzdHlsZVJlc29sdmVyLT5yb290RWxlbWVudFN0eWxlKCkpOwogICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVu
dCgpKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJ
RCgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CkBAIC0xNTgyLDcgKzE1ODgs
NyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAg
ICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPihpdGVtKTsKLSAgICAgICAgICAgICAgICBpZiAodmFsdWUtPmdldElkZW50KCkgPT0g
Q1NTVmFsdWVGaWxsZWQgfHwgdmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVPcGVuKQorICAg
ICAgICAgICAgICAgIGlmICh2YWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlRmlsbGVkIHx8
IHZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVPcGVuKQogICAgICAgICAgICAgICAgICAg
ICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0RW1waGFzaXNGaWxsKCp2YWx1ZSk7CiAg
ICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5z
dHlsZSgpLT5zZXRUZXh0RW1waGFzaXNNYXJrKCp2YWx1ZSk7CkBAIC0xNjA0LDcgKzE2MTAsNyBA
QCBwdWJsaWM6CiAKICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEVtcGhh
c2lzQ3VzdG9tTWFyayhudWxsQXRvbSk7CiAKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRJZGVudCgpID09IENTU1ZhbHVlRmlsbGVkIHx8IHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgp
ID09IENTU1ZhbHVlT3BlbikgeworICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVl
SUQoKSA9PSBDU1NWYWx1ZUZpbGxlZCB8fCBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09
IENTU1ZhbHVlT3BlbikgewogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0
VGV4dEVtcGhhc2lzRmlsbCgqcHJpbWl0aXZlVmFsdWUpOwogICAgICAgICAgICAgc3R5bGVSZXNv
bHZlci0+c3R5bGUoKS0+c2V0VGV4dEVtcGhhc2lzTWFyayhUZXh0RW1waGFzaXNNYXJrQXV0byk7
CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xNzI1LDcgKzE3MzEsNyBAQCBwdWJsaWM6CiAgICAgICAg
IENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4odmFsdWUpOwogCiAgICAgICAgIEVSZXNpemUgciA9IFJFU0laRV9OT05FOwot
ICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgIHN3
aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkgewogICAgICAgICBjYXNlIDA6CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgpAQCAtMTc1NCw3
ICsxNzYwLDcgQEAgcHVibGljOgogCiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRp
dmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwogCi0gICAg
ICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkKKyAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpCiAgICAgICAgICAgICByZXR1cm4gc3R5bGVSZXNvbHZlci0+
c3R5bGUoKS0+c2V0VmVydGljYWxBbGlnbigqcHJpbWl0aXZlVmFsdWUpOwogCiAgICAgICAgIHN0
eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFZlcnRpY2FsQWxpZ25MZW5ndGgocHJpbWl0aXZlVmFs
dWUtPmNvbnZlcnRUb0xlbmd0aDxGaXhlZEludGVnZXJDb252ZXJzaW9uIHwgUGVyY2VudENvbnZl
cnNpb24gfCBDYWxjdWxhdGVkQ29udmVyc2lvbiB8IFZpZXdwb3J0UGVyY2VudGFnZUNvbnZlcnNp
b24+KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5
bGUoKSwgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKSk7CkBAIC0xODI5
LDEzICsxODM1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04odmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSk7CiAgICAgICAgIENTU1ByaW1pdGl2
ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4o
dmFsdWUpOwogCi0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NW
YWx1ZU5vcm1hbCkgeworICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9
PSBDU1NWYWx1ZU5vcm1hbCkgewogICAgICAgICAgICAgcmVzZXRFZmZlY3RpdmVab29tKHN0eWxl
UmVzb2x2ZXIpOwogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c2V0Wm9vbShSZW5kZXJTdHls
ZTo6aW5pdGlhbFpvb20oKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdl
dElkZW50KCkgPT0gQ1NTVmFsdWVSZXNldCkgeworICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVSZXNldCkgewogICAgICAgICAgICAgc3R5
bGVSZXNvbHZlci0+c2V0RWZmZWN0aXZlWm9vbShSZW5kZXJTdHlsZTo6aW5pdGlhbFpvb20oKSk7
CiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zZXRab29tKFJlbmRlclN0eWxlOjppbml0aWFs
Wm9vbSgpKTsKLSAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9
PSBDU1NWYWx1ZURvY3VtZW50KSB7CisgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUt
PmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZURvY3VtZW50KSB7CiAgICAgICAgICAgICBmbG9hdCBk
b2Nab29tID0gc3R5bGVSZXNvbHZlci0+cm9vdEVsZW1lbnRTdHlsZSgpID8gc3R5bGVSZXNvbHZl
ci0+cm9vdEVsZW1lbnRTdHlsZSgpLT56b29tKCkgOiBSZW5kZXJTdHlsZTo6aW5pdGlhbFpvb20o
KTsKICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnNldEVmZmVjdGl2ZVpvb20oZG9jWm9vbSk7
CiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zZXRab29tKGRvY1pvb20pOwpAQCAtMTkxMCw3
ICsxOTE2LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2
ZVZhbHVlKCkpIHsKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1
ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgICAgICAgICAg
aWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAg
ICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9uZSkKICAg
ICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCAwKTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1NoYXBlKCkpIHsKICAgICAgICAgICAg
ICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBTaGFwZUNsaXBQYXRoT3BlcmF0
aW9uOjpjcmVhdGUoYmFzaWNTaGFwZUZvclZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0
eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUoKSwgcHJpbWl0aXZlVmFsdWUtPmdldFNoYXBl
VmFsdWUoKSkpKTsKQEAgLTE5NDEsMTAgKzE5NDcsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKICAgICAgICAgICAgIENTU1ByaW1p
dGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Kj4odmFsdWUpOwotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09
IENTU1ZhbHVlQXV0bykKKyAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJ
RCgpID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29s
dmVyLT5zdHlsZSgpLCAwKTsKICAgICAgICAgICAgIC8vIEZJWE1FIEJ1ZyAxMDI1NzE6IExheW91
dCBmb3IgdGhlIHZhbHVlICdvdXRzaWRlLXNoYXBlJyBpcyBub3QgeWV0IGltcGxlbWVudGVkCi0g
ICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1
ZU91dHNpZGVTaGFwZSkKKyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRW
YWx1ZUlEKCkgPT0gQ1NTVmFsdWVPdXRzaWRlU2hhcGUpCiAgICAgICAgICAgICAgICAgc2V0VmFs
dWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgU2hhcGVWYWx1ZTo6Y3JlYXRlT3V0c2lkZVZhbHVl
KCkpOwogICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzU2hhcGUoKSkgewog
ICAgICAgICAgICAgICAgIFJlZlB0cjxTaGFwZVZhbHVlPiBzaGFwZSA9IFNoYXBlVmFsdWU6OmNy
ZWF0ZVNoYXBlVmFsdWUoYmFzaWNTaGFwZUZvclZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCks
IHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUoKSwgcHJpbWl0aXZlVmFsdWUtPmdldFNo
YXBlVmFsdWUoKSkpOwpAQCAtMTk5NCw5ICsyMDAwLDkgQEAgcHVibGljOgogICAgICAgICAgICAg
aWYgKCFpdGVtLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNf
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0pOwotICAgICAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRnJvbUltYWdlKQorICAgICAgICAgICAgaWYg
KHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVGcm9tSW1hZ2UpCiAgICAg
ICAgICAgICAgICAgc291cmNlID0gSW1hZ2VSZXNvbHV0aW9uRnJvbUltYWdlOwotICAgICAgICAg
ICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVTbmFwKQor
ICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NW
YWx1ZVNuYXApCiAgICAgICAgICAgICAgICAgc25hcCA9IEltYWdlUmVzb2x1dGlvblNuYXBQaXhl
bHM7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmVzb2x1dGlvbiA9IHByaW1p
dGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFgpOwpA
QCAtMjA1MCwxMiArMjA1NiwxMiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRp
Y19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7Ci0gICAgICAgICAgICBpZiAoIXByaW1p
dGl2ZVZhbHVlLT5nZXRJZGVudCgpKQorICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZS0+
Z2V0VmFsdWVJRCgpKQogICAgICAgICAgICAgICAgIGxlbmd0aE9yUGVyY2VudGFnZVZhbHVlID0g
cHJpbWl0aXZlVmFsdWUtPmNvbnZlcnRUb0xlbmd0aDxGaXhlZEludGVnZXJDb252ZXJzaW9uIHwg
UGVyY2VudENvbnZlcnNpb24gfCBDYWxjdWxhdGVkQ29udmVyc2lvbiB8IFZpZXdwb3J0UGVyY2Vu
dGFnZUNvbnZlcnNpb24+KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxlUmVzb2x2ZXItPnJv
b3RFbGVtZW50U3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgp
KTsKICNpZiBFTkFCTEUoQ1NTM19URVhUKQotICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZl
VmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVXZWJraXRFYWNoTGluZSkKKyAgICAgICAgICAg
IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVXZWJraXRF
YWNoTGluZSkKICAgICAgICAgICAgICAgICB0ZXh0SW5kZW50TGluZVZhbHVlID0gVGV4dEluZGVu
dEVhY2hMaW5lOwotICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkgPT0gQ1NTVmFsdWVXZWJraXRIYW5naW5nKQorICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0
aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVdlYmtpdEhhbmdpbmcpCiAgICAgICAg
ICAgICAgICAgdGV4dEluZGVudFR5cGVWYWx1ZSA9IFRleHRJbmRlbnRIYW5naW5nOwogI2VuZGlm
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZh
bHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApp
bmRleCBjNDczMzI1NzNhMTQyZDZhNjBkNTliZTA3OGJiZmYxZTAwOTU4Y2ZmLi42OGRlMGY2MmQ3
ZDJjZTFjZmM0MzUyZjdmNmUwZDA4OTM1NmJhNzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0yNDksNyArMjQ5LDcgQEAgc3RhdGljIGJvb2wgb3Jp
ZW50YXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBG
cmFtZSogZnIKICAgICBpbnQgd2lkdGggPSB2aWV3LT5sYXlvdXRXaWR0aCgpOwogICAgIGludCBo
ZWlnaHQgPSB2aWV3LT5sYXlvdXRIZWlnaHQoKTsKICAgICBpZiAodmFsdWUgJiYgdmFsdWUtPmlz
UHJpbWl0aXZlVmFsdWUoKSkgewotICAgICAgICBjb25zdCBpbnQgaWQgPSBzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0SWRlbnQoKTsKKyAgICAgICAgY29uc3QgQ1NT
VmFsdWVJRCBpZCA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRW
YWx1ZUlEKCk7CiAgICAgICAgIGlmICh3aWR0aCA+IGhlaWdodCkgLy8gU3F1YXJlIHZpZXdwb3J0
IGlzIHBvcnRyYWl0LgogICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlTGFuZHNjYXBlID09IGlk
OwogICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb3J0cmFpdCA9PSBpZDsKQEAgLTYwMyw3ICs2MDMs
NyBAQCBzdGF0aWMgYm9vbCB2aWV3X21vZGVNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1
ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbQogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgY29uc3QgaW50IHZpZXdNb2RlQ1NTS2V5d29yZElEID0gc3RhdGlj
X2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldElkZW50KCk7CisgICAgY29uc3Qg
aW50IHZpZXdNb2RlQ1NTS2V5d29yZElEID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUq
Pih2YWx1ZSktPmdldFZhbHVlSUQoKTsKICAgICBjb25zdCBQYWdlOjpWaWV3TW9kZSB2aWV3TW9k
ZSA9IGZyYW1lLT5wYWdlKCktPnZpZXdNb2RlKCk7CiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsK
ICAgICBzd2l0Y2ggKHZpZXdNb2RlKSB7CkBAIC02ODUsNyArNjg1LDcgQEAgc3RhdGljIGJvb2wg
cG9pbnRlck1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZy
YW1lKiBmcmFtZSwKICAgICBpZiAoIXZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIGNvbnN0IGludCBpZCA9IHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRJZGVudCgpOworICAgIGNvbnN0IENTU1ZhbHVlSUQgaWQg
PSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0VmFsdWVJRCgpOwog
ICAgIHJldHVybiAocG9pbnRlciA9PSBOb1BvaW50ZXIgJiYgaWQgPT0gQ1NTVmFsdWVOb25lKQog
ICAgICAgICB8fCAocG9pbnRlciA9PSBUb3VjaFBvaW50ZXIgJiYgaWQgPT0gQ1NTVmFsdWVDb2Fy
c2UpCiAgICAgICAgIHx8IChwb2ludGVyID09IE1vdXNlUG9pbnRlciAmJiBpZCA9PSBDU1NWYWx1
ZUZpbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1BhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAppbmRleCAxOTQxYjMyYjQ5Y2Qx
ZjZmNTM1MTQzYjM3ZWM0YjExMGRiMmNmMWMxLi5kZmRjNzRlOGJhMzkyMzI0MjZkNDVhMjQzYzRl
NjNkZGRjMDAyYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcApAQCAtNDIsNyAr
NDIsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VTVkdWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJ
ZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaW50IGlkID0gdmFsdWUtPmlkOworICAgIENTU1ZhbHVlSUQgaWQgPSB2YWx1ZS0+
aWQ7CiAKICAgICBib29sIHZhbGlkX3ByaW1pdGl2ZSA9IGZhbHNlOwogICAgIFJlZlB0cjxDU1NW
YWx1ZT4gcGFyc2VkVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NT
U3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAKaW5kZXggNzBkMWNhNGY5Y2ZkY2RhZTg5MzU3M2YwYWM4OGRlMDUyYzcwNDc2OC4uNmY4
NzIzMWRmODUwNGI1NTY1MGM3MjJjYThjZjYwZWZiMTg1MWU2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMTM3LDggKzEzNyw4IEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6YXBwbHlTVkdQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSog
dmFsdWUpCiAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQogICAgICAgICAgICAgICAg
IGJyZWFrOwogCi0gICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsK
LSAgICAgICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7Cisg
ICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkgeworICAgICAgICAg
ICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkgewogICAgICAgICAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVCYXNlbGluZToKICAgICAgICAgICAgICAgICAgICAgc3Znc3R5
bGUtPnNldEJhc2VsaW5lU2hpZnQoQlNfQkFTRUxJTkUpOwogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKQEAgLTUzOSw3ICs1MzksNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5U1ZHUHJv
cGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICAgICAgICAg
IEFTU0VSVChvcmllbnRhdGlvbiAhPSAtMSk7CiAKICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+
c2V0R2x5cGhPcmllbnRhdGlvblZlcnRpY2FsKChFR2x5cGhPcmllbnRhdGlvbikgb3JpZW50YXRp
b24pOwotICAgICAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9
PSBDU1NWYWx1ZUF1dG8pCisgICAgICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVBdXRvKQogICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5z
ZXRHbHlwaE9yaWVudGF0aW9uVmVydGljYWwoR09fQVVUTyk7CiAKICAgICAgICAgICAgIGJyZWFr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCmluZGV4IGQ2YWEzMzE4NDhh
NTZhNDdlMjcwYzZiYTBlYzRlZjY1YmJiYzRhOGQuLmMwZGJmZmM2NjZiYmYyNzkwMjNiYzIxODMw
ZjZiNTk5YzhjODQ5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3Bl
cnR5U2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAK
QEAgLTQyMCw4ICs0MjAsOCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0eVNldDo6Z2V0TGF5ZXJlZFNo
b3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmCiAgICAgICAgICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIHlWYWx1ZSA9IG5leHRWYWx1ZTsK
IAotICAgICAgICAgICAgICAgICAgICBpbnQgeElkID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPih2YWx1ZS5nZXQoKSktPmdldElkZW50KCk7Ci0gICAgICAgICAgICAgICAgICAgIGlu
dCB5SWQgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHlWYWx1ZS5nZXQoKSktPmdl
dElkZW50KCk7CisgICAgICAgICAgICAgICAgICAgIENTU1ZhbHVlSUQgeElkID0gc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZS5nZXQoKSktPmdldFZhbHVlSUQoKTsKKyAgICAg
ICAgICAgICAgICAgICAgQ1NTVmFsdWVJRCB5SWQgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZSo+KHlWYWx1ZS5nZXQoKSktPmdldFZhbHVlSUQoKTsKICAgICAgICAgICAgICAgICAgICAg
aWYgKHhJZCAhPSB5SWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4SWQgPT0gQ1NT
VmFsdWVSZXBlYXQgJiYgeUlkID09IENTU1ZhbHVlTm9SZXBlYXQpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1c2VSZXBlYXRYU2hvcnRoYW5kID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcAppbmRleCA1YzM4YmVhY2UzMDc4Y2EzOTg4YTVmYWI3YmUyNjczMmNi
ZDk4ODg1Li5lMmQ4ZDhkZTI0N2JiZjA4NTEwNzUwZDljODQyNTBlZWNlOWM5NDkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yMDU4LDEyICsyMDU4LDEyIEBAIGJvb2wg
U3R5bGVSZXNvbHZlcjo6dXNlU1ZHWm9vbVJ1bGVzKCkKIAogc3RhdGljIGJvb2wgY3JlYXRlR3Jp
ZFRyYWNrQnJlYWR0aChDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUsIGNvbnN0IFN0
eWxlUmVzb2x2ZXI6OlN0YXRlJiBzdGF0ZSwgTGVuZ3RoJiB3b3JraW5nTGVuZ3RoKQogewotICAg
IGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZVdlYmtpdE1pbkNvbnRl
bnQpIHsKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVdl
YmtpdE1pbkNvbnRlbnQpIHsKICAgICAgICAgd29ya2luZ0xlbmd0aCA9IExlbmd0aChNaW5Db250
ZW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgaWYgKHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlV2Via2l0TWF4Q29udGVudCkgeworICAgIGlmIChw
cmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlV2Via2l0TWF4Q29udGVudCkg
ewogICAgICAgICB3b3JraW5nTGVuZ3RoID0gTGVuZ3RoKE1heENvbnRlbnQpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0yMTA4LDcgKzIxMDgsNyBAQCBzdGF0aWMgYm9vbCBjcmVh
dGVHcmlkVHJhY2tMaXN0KENTU1ZhbHVlKiB2YWx1ZSwgVmVjdG9yPEdyaWRUcmFja1NpemU+JiB0
cmFja1NpegogICAgIC8vIEhhbmRsZSAnbm9uZScuCiAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2
ZVZhbHVlKCkpIHsKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0g
c3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBw
cmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHJldHVy
biBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9uZTsKICAgICB9CiAK
ICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKQpAQCAtMjEzMyw3ICsyMTMzLDcgQEAgc3Rh
dGljIGJvb2wgY3JlYXRlR3JpZFBvc2l0aW9uKENTU1ZhbHVlKiB2YWx1ZSwgR3JpZFBvc2l0aW9u
JiBwb3NpdGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQ1NTUHJpbWl0aXZlVmFs
dWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1
ZSk7Ci0gICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQXV0bykK
KyAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUF1dG8pCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04ocHJpbWl0aXZlVmFsdWUtPmlzTnVtYmVyKCkpOwpAQCAtMjMxMCwxNCArMjMxMCwxNCBAQCB2
b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFs
dWUqIHZhbHVlKQogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udGVudFZhbHVlLT5pc0Nv
dW50ZXIoKSkgewogICAgICAgICAgICAgICAgICAgICBDb3VudGVyKiBjb3VudGVyVmFsdWUgPSBj
b250ZW50VmFsdWUtPmdldENvdW50ZXJWYWx1ZSgpOwogICAgICAgICAgICAgICAgICAgICBFTGlz
dFN0eWxlVHlwZSBsaXN0U3R5bGVUeXBlID0gTm9uZUxpc3RTdHlsZTsKLSAgICAgICAgICAgICAg
ICAgICAgaW50IGxpc3RTdHlsZUlkZW50ID0gY291bnRlclZhbHVlLT5saXN0U3R5bGVJZGVudCgp
OworICAgICAgICAgICAgICAgICAgICBDU1NWYWx1ZUlEIGxpc3RTdHlsZUlkZW50ID0gY291bnRl
clZhbHVlLT5saXN0U3R5bGVJZGVudCgpOwogICAgICAgICAgICAgICAgICAgICBpZiAobGlzdFN0
eWxlSWRlbnQgIT0gQ1NTVmFsdWVOb25lKQogICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFN0
eWxlVHlwZSA9IHN0YXRpY19jYXN0PEVMaXN0U3R5bGVUeXBlPihsaXN0U3R5bGVJZGVudCAtIENT
U1ZhbHVlRGlzYyk7CiAgICAgICAgICAgICAgICAgICAgIE93blB0cjxDb3VudGVyQ29udGVudD4g
Y291bnRlciA9IGFkb3B0UHRyKG5ldyBDb3VudGVyQ29udGVudChjb3VudGVyVmFsdWUtPmlkZW50
aWZpZXIoKSwgbGlzdFN0eWxlVHlwZSwgY291bnRlclZhbHVlLT5zZXBhcmF0b3IoKSkpOwogICAg
ICAgICAgICAgICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRDb250ZW50KGNvdW50ZXIucmVsZWFz
ZSgpLCBkaWRTZXQpOwogICAgICAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOwogICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY29udGVudFZh
bHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY29udGVudFZh
bHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZU9w
ZW5RdW90ZToKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnN0eWxlKCktPnNldENvbnRl
bnQoT1BFTl9RVU9URSwgZGlkU2V0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFNldCA9
IHRydWU7CkBAIC0yMzcyLDcgKzIzNzIsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJv
cGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSkgewotICAgICAgICAg
ICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkKKyAgICAg
ICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9uZSkK
ICAgICAgICAgICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRRdW90ZXMoUXVvdGVzRGF0YTo6Y3Jl
YXRlKFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+ID4oKSkpOwogICAgICAgICB9CiAg
ICAgICAgIHJldHVybjsKQEAgLTIzOTQsNyArMjM5NCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6
YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAg
ICAgICBzdGF0ZS5zZXRMaW5lSGVpZ2h0VmFsdWUoMCk7CiAKICAgICAgICAgICAgIEZvbnREZXNj
cmlwdGlvbiBmb250RGVzY3JpcHRpb247Ci0gICAgICAgICAgICBSZW5kZXJUaGVtZTo6ZGVmYXVs
dFRoZW1lKCktPnN5c3RlbUZvbnQocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCksIGZvbnREZXNj
cmlwdGlvbik7CisgICAgICAgICAgICBSZW5kZXJUaGVtZTo6ZGVmYXVsdFRoZW1lKCktPnN5c3Rl
bUZvbnQocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSwgZm9udERlc2NyaXB0aW9uKTsKIAog
ICAgICAgICAgICAgLy8gRG91YmxlLWNoZWNrIGFuZCBzZWUgaWYgdGhlIHRoZW1lIGRpZCBhbnl0
aGluZy4gSWYgbm90LCBkb24ndCBib3RoZXIgdXBkYXRpbmcgdGhlIGZvbnQuCiAgICAgICAgICAg
ICBpZiAoZm9udERlc2NyaXB0aW9uLmlzQWJzb2x1dGVTaXplKCkpIHsKQEAgLTI1MDAsNyArMjUw
MCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlk
LCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgICAgICBpbnQgeSA9IGl0ZW0tPnktPmNvbXB1dGVM
ZW5ndGg8aW50PihzdGF0ZS5zdHlsZSgpLCBzdGF0ZS5yb290RWxlbWVudFN0eWxlKCksIHpvb21G
YWN0b3IpOwogICAgICAgICAgICAgaW50IGJsdXIgPSBpdGVtLT5ibHVyID8gaXRlbS0+Ymx1ci0+
Y29tcHV0ZUxlbmd0aDxpbnQ+KHN0YXRlLnN0eWxlKCksIHN0YXRlLnJvb3RFbGVtZW50U3R5bGUo
KSwgem9vbUZhY3RvcikgOiAwOwogICAgICAgICAgICAgaW50IHNwcmVhZCA9IGl0ZW0tPnNwcmVh
ZCA/IGl0ZW0tPnNwcmVhZC0+Y29tcHV0ZUxlbmd0aDxpbnQ+KHN0YXRlLnN0eWxlKCksIHN0YXRl
LnJvb3RFbGVtZW50U3R5bGUoKSwgem9vbUZhY3RvcikgOiAwOwotICAgICAgICAgICAgU2hhZG93
U3R5bGUgc2hhZG93U3R5bGUgPSBpdGVtLT5zdHlsZSAmJiBpdGVtLT5zdHlsZS0+Z2V0SWRlbnQo
KSA9PSBDU1NWYWx1ZUluc2V0ID8gSW5zZXQgOiBOb3JtYWw7CisgICAgICAgICAgICBTaGFkb3dT
dHlsZSBzaGFkb3dTdHlsZSA9IGl0ZW0tPnN0eWxlICYmIGl0ZW0tPnN0eWxlLT5nZXRWYWx1ZUlE
KCkgPT0gQ1NTVmFsdWVJbnNldCA/IEluc2V0IDogTm9ybWFsOwogICAgICAgICAgICAgQ29sb3Ig
Y29sb3I7CiAgICAgICAgICAgICBpZiAoaXRlbS0+Y29sb3IpCiAgICAgICAgICAgICAgICAgY29s
b3IgPSBjb2xvckZyb21QcmltaXRpdmVWYWx1ZShpdGVtLT5jb2xvci5nZXQoKSk7CkBAIC0yNTQ2
LDcgKzI1NDYsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVy
dHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5J
VElBTChsb2NhbGUsIExvY2FsZSk7CiAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCiAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9
PSBDU1NWYWx1ZUF1dG8pCisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgp
ID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgIHN0YXRlLnN0eWxlKCktPnNldExvY2FsZShu
dWxsQXRvbSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHN0YXRlLnN0eWxlKCktPnNldExv
Y2FsZShwcmltaXRpdmVWYWx1ZS0+Z2V0U3RyaW5nVmFsdWUoKSk7CkBAIC0yNTYyLDcgKzI1NjIs
NyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwg
Q1NTVmFsdWUqIHZhbHVlKQogICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQogICAgICAgICAg
ICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBD
U1NWYWx1ZU5vbmUpIHsKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkg
PT0gQ1NTVmFsdWVOb25lKSB7CiAgICAgICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXREYXNoYm9h
cmRSZWdpb25zKFJlbmRlclN0eWxlOjpub25lRGFzaGJvYXJkUmVnaW9ucygpKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMjYwMSw5ICsyNjAxLDkgQEAgdm9pZCBTdHlsZVJl
c29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkK
ICNlbmRpZgogI2lmIEVOQUJMRShEUkFHR0FCTEVfUkVHSU9OKQogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRBcHBSZWdpb246IHsKLSAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSB8fCAhcHJp
bWl0aXZlVmFsdWUtPmdldElkZW50KCkpCisgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUgfHwg
IXByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIHN0YXRlLnN0eWxlKCktPnNldERyYWdnYWJsZVJlZ2lvbk1vZGUocHJpbWl0aXZlVmFsdWUt
PmdldElkZW50KCkgPT0gQ1NTVmFsdWVEcmFnID8gRHJhZ2dhYmxlUmVnaW9uRHJhZyA6IERyYWdn
YWJsZVJlZ2lvbk5vRHJhZyk7CisgICAgICAgIHN0YXRlLnN0eWxlKCktPnNldERyYWdnYWJsZVJl
Z2lvbk1vZGUocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZURyYWcgPyBE
cmFnZ2FibGVSZWdpb25EcmFnIDogRHJhZ2dhYmxlUmVnaW9uTm9EcmFnKTsKICAgICAgICAgc3Rh
dGUuZG9jdW1lbnQoKS0+c2V0SGFzQW5ub3RhdGVkUmVnaW9ucyh0cnVlKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTI2MTEsMTQgKzI2MTEsMTQgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjph
cHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9rZVdpZHRoOiB7CiAgICAgICAgIEhBTkRMRV9JTkhF
UklUX0FORF9JTklUSUFMKHRleHRTdHJva2VXaWR0aCwgVGV4dFN0cm9rZVdpZHRoKQogICAgICAg
ICBmbG9hdCB3aWR0aCA9IDA7Ci0gICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkpIHsKKyAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7
CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVUaGluOgogICAgICAgICBjYXNlIENTU1ZhbHVlTWVkaXVt
OgogICAgICAgICBjYXNlIENTU1ZhbHVlVGhpY2s6IHsKICAgICAgICAgICAgIGRvdWJsZSByZXN1
bHQgPSAxLjAgLyA0ODsKLSAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQo
KSA9PSBDU1NWYWx1ZU1lZGl1bSkKKyAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlTWVkaXVtKQogICAgICAgICAgICAgICAgIHJlc3VsdCAqPSAz
OwotICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NT
VmFsdWVUaGljaykKKyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1
ZUlEKCkgPT0gQ1NTVmFsdWVUaGljaykKICAgICAgICAgICAgICAgICByZXN1bHQgKj0gNTsKICAg
ICAgICAgICAgIHdpZHRoID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShyZXN1bHQsIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfRU1TKS0+Y29tcHV0ZUxlbmd0aDxmbG9hdD4oc3RhdGUuc3R5bGUo
KSwgc3RhdGUucm9vdEVsZW1lbnRTdHlsZSgpLCB6b29tRmFjdG9yKTsKICAgICAgICAgICAgIGJy
ZWFrOwpAQCAtMjY0Myw3ICsyNjQzLDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3Bl
cnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgaWYgKCFwcmlt
aXRpdmVWYWx1ZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAocHJpbWl0aXZl
VmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKSB7CisgICAgICAgIGlmIChwcmltaXRp
dmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9uZSkgewogICAgICAgICAgICAgc3Rh
dGUuc3R5bGUoKS0+c2V0UGVyc3BlY3RpdmUoMCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KQEAgLTI2NzcsNyArMjY3Nyw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgIEhBTkRMRV9J
TkhFUklUX0FORF9JTklUSUFMKHVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcsIFVzZVRvdWNoT3Zl
cmZsb3dTY3JvbGxpbmcpOwogICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIHN0YXRlLnN0eWxlKCktPnNldFVzZVRvdWNoT3ZlcmZsb3dTY3Jv
bGxpbmcocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVUb3VjaCk7CisgICAg
ICAgIHN0YXRlLnN0eWxlKCktPnNldFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcocHJpbWl0aXZl
VmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVRvdWNoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICNlbmRpZgpAQCAtMjc2NCw3ICsyNzY0LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjph
cHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKIAogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRMaW5lQm94Q29udGFpbjogewogICAgICAgICBIQU5ETEVfSU5I
RVJJVF9BTkRfSU5JVElBTChsaW5lQm94Q29udGFpbiwgTGluZUJveENvbnRhaW4pCi0gICAgICAg
IGlmIChwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NW
YWx1ZU5vbmUpIHsKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVl
LT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25lKSB7CiAgICAgICAgICAgICBzdGF0ZS5zdHls
ZSgpLT5zZXRMaW5lQm94Q29udGFpbihMaW5lQm94Q29udGFpbk5vbmUpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CkBAIC0yNzc5LDcgKzI3NzksNyBAQCB2b2lkIFN0eWxlUmVzb2x2
ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogCiAg
ICAgLy8gQ1NTIEZvbnRzIE1vZHVsZSBMZXZlbCAzCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dEZvbnRGZWF0dXJlU2V0dGluZ3M6IHsKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlICYmIHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9ybWFsKSB7CisgICAgICAgIGlm
IChwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1Zh
bHVlTm9ybWFsKSB7CiAgICAgICAgICAgICBzZXRGb250RGVzY3JpcHRpb24oc3RhdGUuc3R5bGUo
KS0+Zm9udERlc2NyaXB0aW9uKCkubWFrZU5vcm1hbEZlYXR1cmVTZXR0aW5ncygpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzQzMSwxMCArMzQzMSwxMCBAQCBpbnQgU3R5
bGVSZXNvbHZlcjo6bGVnYWN5Rm9udFNpemUoRG9jdW1lbnQqIGRvY3VtZW50LCBpbnQgcGl4ZWxG
b250U2l6ZSwgYm9vbCBzaAogICAgIHJldHVybiBmaW5kTmVhcmVzdExlZ2FjeUZvbnRTaXplPGZs
b2F0PihwaXhlbEZvbnRTaXplLCBmb250U2l6ZUZhY3RvcnMsIG1lZGl1bVNpemUpOwogfQogCi1z
dGF0aWMgQ29sb3IgY29sb3JGb3JDU1NWYWx1ZShpbnQgY3NzVmFsdWVJZCkKK3N0YXRpYyBDb2xv
ciBjb2xvckZvckNTU1ZhbHVlKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCkKIHsKICAgICBzdHJ1Y3Qg
Q29sb3JWYWx1ZSB7Ci0gICAgICAgIGludCBjc3NWYWx1ZUlkOworICAgICAgICBDU1NWYWx1ZUlE
IGNzc1ZhbHVlSWQ7CiAgICAgICAgIFJHQkEzMiBjb2xvcjsKICAgICB9OwogCkBAIC0zNDU4LDcg
KzM0NTgsNyBAQCBzdGF0aWMgQ29sb3IgY29sb3JGb3JDU1NWYWx1ZShpbnQgY3NzVmFsdWVJZCkK
ICAgICAgICAgeyBDU1NWYWx1ZVRyYW5zcGFyZW50LCAweDAwMDAwMDAwIH0sCiAgICAgICAgIHsg
Q1NTVmFsdWVXaGl0ZSwgMHhGRkZGRkZGRiB9LAogICAgICAgICB7IENTU1ZhbHVlWWVsbG93LCAw
eEZGRkZGRjAwIH0sCi0gICAgICAgIHsgMCwgMCB9CisgICAgICAgIHsgQ1NTVmFsdWVJbnZhbGlk
LCBDU1NWYWx1ZUludmFsaWQgfQogICAgIH07CiAKICAgICBmb3IgKGNvbnN0IENvbG9yVmFsdWUq
IGNvbCA9IGNvbG9yVmFsdWVzOyBjb2wtPmNzc1ZhbHVlSWQ7ICsrY29sKSB7CkBAIC0zNDcwLDcg
KzM0NzAsNyBAQCBzdGF0aWMgQ29sb3IgY29sb3JGb3JDU1NWYWx1ZShpbnQgY3NzVmFsdWVJZCkK
IAogYm9vbCBTdHlsZVJlc29sdmVyOjpjb2xvckZyb21QcmltaXRpdmVWYWx1ZUlzRGVyaXZlZEZy
b21FbGVtZW50KENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSkKIHsKLSAgICBpbnQgaWRlbnQgPSB2
YWx1ZS0+Z2V0SWRlbnQoKTsKKyAgICBpbnQgaWRlbnQgPSB2YWx1ZS0+Z2V0VmFsdWVJRCgpOwog
ICAgIHN3aXRjaCAoaWRlbnQpIHsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0VGV4dDoKICAgICBj
YXNlIENTU1ZhbHVlV2Via2l0TGluazoKQEAgLTM0ODgsNyArMzQ4OCw3IEBAIENvbG9yIFN0eWxl
UmVzb2x2ZXI6OmNvbG9yRnJvbVByaW1pdGl2ZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1
ZSwgYm9vbCBmb3JWCiAgICAgICAgIHJldHVybiBDb2xvcih2YWx1ZS0+Z2V0UkdCQTMyVmFsdWUo
KSk7CiAKICAgICBjb25zdCBTdGF0ZSYgc3RhdGUgPSBtX3N0YXRlOwotICAgIGludCBpZGVudCA9
IHZhbHVlLT5nZXRJZGVudCgpOworICAgIENTU1ZhbHVlSUQgaWRlbnQgPSB2YWx1ZS0+Z2V0VmFs
dWVJRCgpOwogICAgIHN3aXRjaCAoaWRlbnQpIHsKICAgICBjYXNlIDA6CiAgICAgICAgIHJldHVy
biBDb2xvcigpOwpAQCAtMzgyOCw5ICszODI4LDkgQEAgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJP
cGVyYXRpb24+IFN0eWxlUmVzb2x2ZXI6OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbldpdGgK
ICAgICAgICAgICAgIEFTU0VSVChtaXhGdW5jdGlvbi0+bGVuZ3RoKCkgPD0gMyk7CiAgICAgICAg
ICAgICB3aGlsZSAoaXRlcmF0b3IuaGFzTW9yZSgpKSB7CiAgICAgICAgICAgICAgICAgQ1NTUHJp
bWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWUqPihpdGVyYXRvci52YWx1ZSgpKTsKLSAgICAgICAgICAgICAgICBpZiAoQ1NTUGFyc2VyOjpp
c0JsZW5kTW9kZShwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkpCisgICAgICAgICAgICAgICAg
aWYgKENTU1BhcnNlcjo6aXNCbGVuZE1vZGUocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkp
CiAgICAgICAgICAgICAgICAgICAgIG1peFNldHRpbmdzLmJsZW5kTW9kZSA9ICpwcmltaXRpdmVW
YWx1ZTsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChDU1NQYXJzZXI6OmlzQ29tcG9zaXRlT3Bl
cmF0b3IocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpKQorICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKENTU1BhcnNlcjo6aXNDb21wb3NpdGVPcGVyYXRvcihwcmltaXRpdmVWYWx1ZS0+Z2V0VmFs
dWVJRCgpKSkKICAgICAgICAgICAgICAgICAgICAgbWl4U2V0dGluZ3MuY29tcG9zaXRlT3BlcmF0
b3IgPSAqcHJpbWl0aXZlVmFsdWU7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM4NzksNyArMzg3OSw3IEBAIFBhc3NS
ZWZQdHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBTdHlsZVJlc29sdmVyOjpjcmVhdGVDdXN0b21G
aWx0ZXJPcGVyYXRpb25XaXRoCiAgICAgICAgIAogICAgICAgICBpZiAoaXRlcmF0b3IuaGFzTW9y
ZSgpICYmIGl0ZXJhdG9yLmlzUHJpbWl0aXZlVmFsdWUoKSkgewogICAgICAgICAgICAgQ1NTUHJp
bWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWUqPihpdGVyYXRvci52YWx1ZSgpKTsKLSAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+
Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZURldGFjaGVkKSB7CisgICAgICAgICAgICBpZiAocHJpbWl0
aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZURldGFjaGVkKSB7CiAgICAgICAgICAg
ICAgICAgbWVzaFR5cGUgPSBNZXNoVHlwZURldGFjaGVkOwogICAgICAgICAgICAgICAgIGl0ZXJh
dG9yLmFkdmFuY2UoKTsKICAgICAgICAgICAgIH0KQEAgLTM5MjIsNyArMzkyMiw3IEBAIGJvb2wg
U3R5bGVSZXNvbHZlcjo6Y3JlYXRlRmlsdGVyT3BlcmF0aW9ucyhDU1NWYWx1ZSogaW5WYWx1ZSwg
UmVuZGVyU3R5bGUqIHN0eWxlCiAgICAgCiAgICAgaWYgKGluVmFsdWUtPmlzUHJpbWl0aXZlVmFs
dWUoKSkgewogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGluVmFsdWUpOwotICAgICAgICBpZiAocHJpbWl0
aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKQorICAgICAgICBpZiAocHJpbWl0
aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvVmll
d3BvcnRTdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0eWxl
UmVzb2x2ZXIuY3BwCmluZGV4IDQwODVlZjA1NzE0YWQ1YTBkYTM5MWQ0ZTYzOWUyNWU1ZmQzZTFh
OTguLjc0YTBiMjBkMzU3OTUxNWViNDc3YTg5NWMwYTIzNDNhMjhiZjliYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xMzksNyArMTM5LDcg
QEAgZmxvYXQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjpnZXRWaWV3cG9ydEFyZ3VtZW50VmFsdWUo
Q1NTUHJvcGVydHlJRCBpZCkgY29uc3QKICAgICAgICAgfQogICAgIH0KIAotICAgIHN3aXRjaCAo
cHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVl
LT5nZXRWYWx1ZUlEKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJu
IGRlZmF1bHRWYWx1ZTsKICAgICBjYXNlIENTU1ZhbHVlRGV2aWNlSGVpZ2h0OgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcAppbmRleCBmMWNjNmE0MTMwN2MwNmM3YTYyOTUwODAz
MzljOGY3NTRjYmE3ZDhkLi5hMzNiODk1ZDg3Njk2ZWMzM2UwZWNiYTY5ZTU3NmY4NGIwNWM4Yzc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcApAQCAtNjIsNyArNjIsNyBA
QCB2b2lkIFdlYktpdENTU01hdHJpeDo6c2V0TWF0cml4VmFsdWUoY29uc3QgU3RyaW5nJiBzdHJp
bmcsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0g
c3R5bGVEZWNsYXJhdGlvbi0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFRy
YW5zZm9ybSk7CiAKICAgICAgICAgLy8gQ2hlY2sgZm9yIGEgIm5vbmUiIG9yIGVtcHR5IHRyYW5z
Zm9ybS4gSW4gdGhlc2UgY2FzZXMgd2UgY2FuIHVzZSB0aGUgZGVmYXVsdCBpZGVudGl0eSBtYXRy
aXguCi0gICAgICAgIGlmICghdmFsdWUgfHwgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYg
KHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUuZ2V0KCkpKS0+Z2V0SWRlbnQo
KSA9PSBDU1NWYWx1ZU5vbmUpKQorICAgICAgICBpZiAoIXZhbHVlIHx8ICh2YWx1ZS0+aXNQcmlt
aXRpdmVWYWx1ZSgpICYmIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlLmdl
dCgpKSktPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmUpKQogICAgICAgICAgICAgcmV0dXJu
OwogCiAgICAgICAgIFRyYW5zZm9ybU9wZXJhdGlvbnMgb3BlcmF0aW9uczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggMWFkZTVkYjNkZTVmM2I4
Y2ZiYWU2MzNiNWU4ZmEyZGE1MTA4OTg2Yy4uOTcxYTRhZDAwNDEyNTZiNDE2MzA5MzI0YmU0YzQw
MzU2OTFkMTE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxl
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogc3Rh
dGljIGludCB0b0lkZW50aWZpZXIoUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWUpCiB7Ci0gICAg
cmV0dXJuICh2YWx1ZSAmJiB2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSA/IHN0YXRpY19wb2lu
dGVyX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKS0+Z2V0SWRlbnQoKSA6IDA7CisgICAg
cmV0dXJuICh2YWx1ZSAmJiB2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSA/IHN0YXRpY19wb2lu
dGVyX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKS0+Z2V0VmFsdWVJRCgpIDogMDsKIH0K
IAogc3RhdGljIFN0cmluZyYgc3R5bGVTcGFuQ2xhc3NTdHJpbmcoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IGQ1YTMyOTdhM2UzMmZjN2UwOGFhZWJlMDAxYmJl
ZThhODMxNDcxOTYuLjcwZTU4ZjcyN2RiNzIzYjAxODIzMTFkMGUyMmMxYWZhNmY5ZTZhZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKQEAgLTEzNiw3ICsxMzYsNyBA
QCBpbnQgaWRlbnRpZmllckZvclN0eWxlUHJvcGVydHkoVCogc3R5bGUsIENTU1Byb3BlcnR5SUQg
cHJvcGVydHlJRCkKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gZXh0cmFjdFByb3BlcnR5
VmFsdWUoc3R5bGUsIHByb3BlcnR5SUQpOwogICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLT5pc1By
aW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlLmdldCgpKS0+Z2V0SWRlbnQoKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZS5nZXQoKSktPmdldFZhbHVl
SUQoKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gUGFzc1JlZlB0cjxNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldD4gZ2V0UHJvcGVydGllc05vdEluKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlV2l0
aFJlZHVuZGFudFByb3BlcnRpZXMsIFQqIGJhc2VTdHlsZSk7CkBAIC0xNDksNyArMTQ5LDcgQEAg
c3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGJhY2tncm91bmRDb2xvckluRWZmZWN0KE5vZGUq
KTsKIGNsYXNzIEhUTUxFbGVtZW50RXF1aXZhbGVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SFRNTEVsZW1lbnRFcXVpdmFs
ZW50PiBjcmVhdGUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBpbnQgcHJpbWl0aXZlVmFsdWUs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SFRN
TEVsZW1lbnRFcXVpdmFsZW50PiBjcmVhdGUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBDU1NW
YWx1ZUlEIHByaW1pdGl2ZVZhbHVlLCBjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBIVE1MRWxlbWVudEVxdWl2YWxlbnQocHJv
cGVydHlJRCwgcHJpbWl0aXZlVmFsdWUsIHRhZ05hbWUpKTsKICAgICB9CkBAIC0xNjQsNyArMTY0
LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudChDU1NQ
cm9wZXJ0eUlEKTsKICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnQoQ1NTUHJvcGVydHlJRCwgY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSk7Ci0gICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50KENT
U1Byb3BlcnR5SUQsIGludCBwcmltaXRpdmVWYWx1ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSk7CisgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50KENTU1Byb3BlcnR5SUQsIENTU1ZhbHVl
SUQgcHJpbWl0aXZlVmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpOwogICAgIGNv
bnN0IENTU1Byb3BlcnR5SUQgbV9wcm9wZXJ0eUlEOwogICAgIGNvbnN0IFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gbV9wcmltaXRpdmVWYWx1ZTsKICAgICBjb25zdCBRdWFsaWZpZWROYW1lKiBt
X3RhZ05hbWU7IC8vIFdlIGNhbiBzdG9yZSBhIHBvaW50ZXIgYmVjYXVzZSBIVE1MIHRhZyBuYW1l
cyBhcmUgY29uc3QgZ2xvYmFsLgpAQCAtMTgyLDcgKzE4Miw3IEBAIEhUTUxFbGVtZW50RXF1aXZh
bGVudDo6SFRNTEVsZW1lbnRFcXVpdmFsZW50KENTU1Byb3BlcnR5SUQgaWQsIGNvbnN0IFF1YWxp
ZmllZE5hCiB7CiB9CiAKLUhUTUxFbGVtZW50RXF1aXZhbGVudDo6SFRNTEVsZW1lbnRFcXVpdmFs
ZW50KENTU1Byb3BlcnR5SUQgaWQsIGludCBwcmltaXRpdmVWYWx1ZSwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSkKK0hUTUxFbGVtZW50RXF1aXZhbGVudDo6SFRNTEVsZW1lbnRFcXVpdmFs
ZW50KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlSUQgcHJpbWl0aXZlVmFsdWUsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUpCiAgICAgOiBtX3Byb3BlcnR5SUQoaWQpCiAgICAgLCBtX3By
aW1pdGl2ZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKHByaW1pdGl2
ZVZhbHVlKSkKICAgICAsIG1fdGFnTmFtZSgmdGFnTmFtZSkKQEAgLTE5Myw3ICsxOTMsNyBAQCBI
VE1MRWxlbWVudEVxdWl2YWxlbnQ6OkhUTUxFbGVtZW50RXF1aXZhbGVudChDU1NQcm9wZXJ0eUlE
IGlkLCBpbnQgcHJpbWl0aXZlVmFsdQogYm9vbCBIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OnZhbHVl
SXNQcmVzZW50SW5TdHlsZShFbGVtZW50KiBlbGVtZW50LCBTdHlsZVByb3BlcnR5U2V0KiBzdHls
ZSkgY29uc3QKIHsKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gc3R5bGUtPmdldFByb3Bl
cnR5Q1NTVmFsdWUobV9wcm9wZXJ0eUlEKTsKLSAgICByZXR1cm4gbWF0Y2hlcyhlbGVtZW50KSAm
JiB2YWx1ZSAmJiB2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpICYmIHN0YXRpY19jYXN0PENTU1By
aW1pdGl2ZVZhbHVlKj4odmFsdWUuZ2V0KCkpLT5nZXRJZGVudCgpID09IG1fcHJpbWl0aXZlVmFs
dWUtPmdldElkZW50KCk7CisgICAgcmV0dXJuIG1hdGNoZXMoZWxlbWVudCkgJiYgdmFsdWUgJiYg
dmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZSo+KHZhbHVlLmdldCgpKS0+Z2V0VmFsdWVJRCgpID09IG1fcHJpbWl0aXZlVmFsdWUtPmdldFZh
bHVlSUQoKTsKIH0KIAogdm9pZCBIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OmFkZFRvU3R5bGUoRWxl
bWVudCosIEVkaXRpbmdTdHlsZSogc3R5bGUpIGNvbnN0CkBAIC0yMDMsNyArMjAzLDcgQEAgdm9p
ZCBIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OmFkZFRvU3R5bGUoRWxlbWVudCosIEVkaXRpbmdTdHls
ZSogc3R5bGUpIGNvbnN0CiAKIGNsYXNzIEhUTUxUZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQgOiBw
dWJsaWMgSFRNTEVsZW1lbnRFcXVpdmFsZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093
blB0cjxIVE1MRWxlbWVudEVxdWl2YWxlbnQ+IGNyZWF0ZShpbnQgcHJpbWl0aXZlVmFsdWUsIGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SFRNTEVs
ZW1lbnRFcXVpdmFsZW50PiBjcmVhdGUoQ1NTVmFsdWVJRCBwcmltaXRpdmVWYWx1ZSwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgSFRNTFRleHREZWNvcmF0aW9uRXF1aXZhbGVudChwcmltaXRpdmVWYWx1ZSwgdGFnTmFtZSkp
OwogICAgIH0KQEAgLTIxMSwxMCArMjExLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
dmFsdWVJc1ByZXNlbnRJblN0eWxlKEVsZW1lbnQqLCBTdHlsZVByb3BlcnR5U2V0KikgY29uc3Q7
CiAKIHByaXZhdGU6Ci0gICAgSFRNTFRleHREZWNvcmF0aW9uRXF1aXZhbGVudChpbnQgcHJpbWl0
aXZlVmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpOworICAgIEhUTUxUZXh0RGVj
b3JhdGlvbkVxdWl2YWxlbnQoQ1NTVmFsdWVJRCBwcmltaXRpdmVWYWx1ZSwgY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSk7CiB9OwogCi1IVE1MVGV4dERlY29yYXRpb25FcXVpdmFsZW50OjpI
VE1MVGV4dERlY29yYXRpb25FcXVpdmFsZW50KGludCBwcmltaXRpdmVWYWx1ZSwgY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSkKK0hUTUxUZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQ6OkhUTUxU
ZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQoQ1NTVmFsdWVJRCBwcmltaXRpdmVWYWx1ZSwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSkKICAgICA6IEhUTUxFbGVtZW50RXF1aXZhbGVudChDU1NQ
cm9wZXJ0eVRleHREZWNvcmF0aW9uLCBwcmltaXRpdmVWYWx1ZSwgdGFnTmFtZSkKICAgICAvLyBt
X3Byb3BlcnR5SUQgaXMgdXNlZCBpbiBIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OmFkZFRvU3R5bGUK
IHsKQEAgLTUxMiwxMyArNTEyLDEzIEBAIGJvb2wgRWRpdGluZ1N0eWxlOjp0ZXh0RGlyZWN0aW9u
KFdyaXRpbmdEaXJlY3Rpb24mIHdyaXRpbmdEaXJlY3Rpb24pIGNvbnN0CiAgICAgaWYgKCF1bmlj
b2RlQmlkaSB8fCAhdW5pY29kZUJpZGktPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgaW50IHVuaWNvZGVCaWRpVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KHVuaWNvZGVCaWRpLmdldCgpKS0+Z2V0SWRlbnQoKTsKKyAgICBDU1NW
YWx1ZUlEIHVuaWNvZGVCaWRpVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KHVuaWNvZGVCaWRpLmdldCgpKS0+Z2V0VmFsdWVJRCgpOwogICAgIGlmICh1bmljb2RlQmlkaVZh
bHVlID09IENTU1ZhbHVlRW1iZWQpIHsKICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiBkaXJlY3Rp
b24gPSBtX211dGFibGVTdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eURpcmVj
dGlvbik7CiAgICAgICAgIGlmICghZGlyZWN0aW9uIHx8ICFkaXJlY3Rpb24tPmlzUHJpbWl0aXZl
VmFsdWUoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICB3cml0aW5nRGly
ZWN0aW9uID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihkaXJlY3Rpb24uZ2V0KCkp
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlTHRyID8gTGVmdFRvUmlnaHRXcml0aW5nRGlyZWN0aW9u
IDogUmlnaHRUb0xlZnRXcml0aW5nRGlyZWN0aW9uOworICAgICAgICB3cml0aW5nRGlyZWN0aW9u
ID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihkaXJlY3Rpb24uZ2V0KCkpLT5nZXRW
YWx1ZUlEKCkgPT0gQ1NTVmFsdWVMdHIgPyBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rpb24gOiBS
aWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb247CiAKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQpAQCAtOTM5LDkgKzkzOSw5IEBAIHZvaWQgRWRpdGluZ1N0eWxlOjpwcmVwYXJlVG9BcHBseUF0
KGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbiwgU2hvdWxkUHJlc2VydmVXcml0CiAgICAgICAgIG1f
bXV0YWJsZVN0eWxlLT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcik7
CiAKICAgICBpZiAodW5pY29kZUJpZGkgJiYgdW5pY29kZUJpZGktPmlzUHJpbWl0aXZlVmFsdWUo
KSkgewotICAgICAgICBtX211dGFibGVTdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlVbmlj
b2RlQmlkaSwgc3RhdGljX2Nhc3Q8Q1NTVmFsdWVJRD4oc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPih1bmljb2RlQmlkaS5nZXQoKSktPmdldElkZW50KCkpKTsKKyAgICAgICAgbV9tdXRh
YmxlU3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5VW5pY29kZUJpZGksIHN0YXRpY19jYXN0
PENTU1ZhbHVlSUQ+KHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odW5pY29kZUJpZGku
Z2V0KCkpLT5nZXRWYWx1ZUlEKCkpKTsKICAgICAgICAgaWYgKGRpcmVjdGlvbiAmJiBkaXJlY3Rp
b24tPmlzUHJpbWl0aXZlVmFsdWUoKSkKLSAgICAgICAgICAgIG1fbXV0YWJsZVN0eWxlLT5zZXRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgc3RhdGljX2Nhc3Q8Q1NTVmFsdWVJRD4oc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihkaXJlY3Rpb24uZ2V0KCkpLT5nZXRJZGVudCgp
KSk7CisgICAgICAgICAgICBtX211dGFibGVTdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlE
aXJlY3Rpb24sIHN0YXRpY19jYXN0PENTU1ZhbHVlSUQ+KHN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4oZGlyZWN0aW9uLmdldCgpKS0+Z2V0VmFsdWVJRCgpKSk7CiAgICAgfQogfQogCkBA
IC0xMjYxLDcgKzEyNjEsNyBAQCBXcml0aW5nRGlyZWN0aW9uIEVkaXRpbmdTdHlsZTo6dGV4dERp
cmVjdGlvbkZvclNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJgogICAgICAgICAgICAg
aWYgKCF1bmljb2RlQmlkaSB8fCAhdW5pY29kZUJpZGktPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgaW50IHVuaWNvZGVCaWRpVmFs
dWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHVuaWNvZGVCaWRpLmdldCgpKS0+
Z2V0SWRlbnQoKTsKKyAgICAgICAgICAgIENTU1ZhbHVlSUQgdW5pY29kZUJpZGlWYWx1ZSA9IHN0
YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odW5pY29kZUJpZGkuZ2V0KCkpLT5nZXRWYWx1
ZUlEKCk7CiAgICAgICAgICAgICBpZiAodW5pY29kZUJpZGlWYWx1ZSA9PSBDU1NWYWx1ZUVtYmVk
IHx8IHVuaWNvZGVCaWRpVmFsdWUgPT0gQ1NTVmFsdWVCaWRpT3ZlcnJpZGUpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE5hdHVyYWxXcml0aW5nRGlyZWN0aW9uOwogICAgICAgICB9CkBAIC0xMjkw
LDcgKzEyOTAsNyBAQCBXcml0aW5nRGlyZWN0aW9uIEVkaXRpbmdTdHlsZTo6dGV4dERpcmVjdGlv
bkZvclNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJgogICAgICAgICBpZiAoIXVuaWNv
ZGVCaWRpIHx8ICF1bmljb2RlQmlkaS0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgaW50IHVuaWNvZGVCaWRpVmFsdWUgPSBzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KHVuaWNvZGVCaWRpLmdldCgpKS0+Z2V0SWRlbnQoKTsKKyAgICAg
ICAgQ1NTVmFsdWVJRCB1bmljb2RlQmlkaVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPih1bmljb2RlQmlkaS5nZXQoKSktPmdldFZhbHVlSUQoKTsKICAgICAgICAgaWYgKHVu
aWNvZGVCaWRpVmFsdWUgPT0gQ1NTVmFsdWVOb3JtYWwpCiAgICAgICAgICAgICBjb250aW51ZTsK
IApAQCAtMTMwMiw3ICsxMzAyLDcgQEAgV3JpdGluZ0RpcmVjdGlvbiBFZGl0aW5nU3R5bGU6OnRl
eHREaXJlY3Rpb25Gb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYKICAgICAgICAg
aWYgKCFkaXJlY3Rpb24gfHwgIWRpcmVjdGlvbi0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAg
ICAgICAgY29udGludWU7CiAKLSAgICAgICAgaW50IGRpcmVjdGlvblZhbHVlID0gc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihkaXJlY3Rpb24uZ2V0KCkpLT5nZXRJZGVudCgpOworICAg
ICAgICBDU1NWYWx1ZUlEIGRpcmVjdGlvblZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPihkaXJlY3Rpb24uZ2V0KCkpLT5nZXRWYWx1ZUlEKCk7CiAgICAgICAgIGlmIChkaXJl
Y3Rpb25WYWx1ZSAhPSBDU1NWYWx1ZUx0ciAmJiBkaXJlY3Rpb25WYWx1ZSAhPSBDU1NWYWx1ZVJ0
bCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xNDc0LDcgKzE0NzQsNyBAQCBzdGF0aWMg
Ym9vbCBmb250V2VpZ2h0SXNCb2xkKENTU1ZhbHVlKiBmb250V2VpZ2h0KQogCiAgICAgLy8gQmVj
YXVzZSBiIHRhZyBjYW4gb25seSBib2xkIHRleHQsIHRoZXJlIGFyZSBvbmx5IHR3byBzdGF0ZXMg
aW4gcGxhaW4gaHRtbDogYm9sZCBhbmQgbm90IGJvbGQuCiAgICAgLy8gQ29sbGFwc2UgYWxsIG90
aGVyIHZhbHVlcyB0byBlaXRoZXIgb25lIG9mIHRoZXNlIHR3byBzdGF0ZXMgZm9yIGVkaXRpbmcg
cHVycG9zZXMuCi0gICAgc3dpdGNoIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGZv
bnRXZWlnaHQpLT5nZXRJZGVudCgpKSB7CisgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZSo+KGZvbnRXZWlnaHQpLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAgICAgY2FzZSBD
U1NWYWx1ZTEwMDoKICAgICAgICAgY2FzZSBDU1NWYWx1ZTIwMDoKICAgICAgICAgY2FzZSBDU1NW
YWx1ZTMwMDoKQEAgLTE0ODgsNiArMTQ4OCw4IEBAIHN0YXRpYyBib29sIGZvbnRXZWlnaHRJc0Jv
bGQoQ1NTVmFsdWUqIGZvbnRXZWlnaHQpCiAgICAgICAgIGNhc2UgQ1NTVmFsdWU4MDA6CiAgICAg
ICAgIGNhc2UgQ1NTVmFsdWU5MDA6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyAvLyBGb3IgQ1NTVmFsdWVCb2xkZXIgYW5kIENTU1ZhbHVlTGlnaHRlcgpAQCAtMTU1
Miw4ICsxNTU0LDggQEAgaW50IGxlZ2FjeUZvbnRTaXplRnJvbUNTU1ZhbHVlKERvY3VtZW50KiBk
b2N1bWVudCwgQ1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlLCBib28KICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQogCi0gICAgaWYgKENTU1ZhbHVlWFNtYWxsIDw9IHZhbHVlLT5nZXRJZGVudCgpICYm
IHZhbHVlLT5nZXRJZGVudCgpIDw9IENTU1ZhbHVlV2Via2l0WHh4TGFyZ2UpCi0gICAgICAgIHJl
dHVybiB2YWx1ZS0+Z2V0SWRlbnQoKSAtIENTU1ZhbHVlWFNtYWxsICsgMTsKKyAgICBpZiAoQ1NT
VmFsdWVYU21hbGwgPD0gdmFsdWUtPmdldFZhbHVlSUQoKSAmJiB2YWx1ZS0+Z2V0VmFsdWVJRCgp
IDw9IENTU1ZhbHVlV2Via2l0WHh4TGFyZ2UpCisgICAgICAgIHJldHVybiB2YWx1ZS0+Z2V0VmFs
dWVJRCgpIC0gQ1NTVmFsdWVYU21hbGwgKyAxOwogCiAgICAgcmV0dXJuIDA7CiB9CkBAIC0xNTY3
LDcgKzE1NjksNyBAQCBib29sIGlzVHJhbnNwYXJlbnRDb2xvclZhbHVlKENTU1ZhbHVlKiBjc3NW
YWx1ZSkKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogdmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZSo+KGNzc1ZhbHVlKTsgICAgCiAgICAgaWYgKHZhbHVlLT5pc1JHQkNvbG9yKCkp
CiAgICAgICAgIHJldHVybiAhYWxwaGFDaGFubmVsKHZhbHVlLT5nZXRSR0JBMzJWYWx1ZSgpKTsg
ICAgCi0gICAgcmV0dXJuIHZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlVHJhbnNwYXJlbnQ7
CisgICAgcmV0dXJuIHZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVUcmFuc3BhcmVudDsK
IH0KIAogYm9vbCBoYXNUcmFuc3BhcmVudEJhY2tncm91bmRDb2xvcihTdHlsZVByb3BlcnR5U2V0
KiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oCmluZGV4IDk0OGNjZGYy
ZjZiYzY1ZjBiM2VkOTc4MDkzYjRhMGQxZDk5YTQ4ZTQuLjQ1YzRlZDAwMzNmZmRmZDJjMjc3NWMx
ZDVmYTJkZjFjZjkxYTJiMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dGluZ1N0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaApA
QCAtMzMsNiArMzMsNyBAQAogI2RlZmluZSBFZGl0aW5nU3R5bGVfaAogCiAjaW5jbHVkZSAiQ1NT
UHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRl
ICJXcml0aW5nRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDU5ZDM0
ZmVjOTY3ZmFlYTRmYjgwZjEzMjU0NmI2NDQyZjFiOTI3MDkuLjBjYzAwZGZhNzJlMjJmOGQ1OGFl
NGY1YTgyYWQwYTFhZTI4NTM2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTQ3
Miw3ICs0NzIsNyBAQCBzdGF0aWMgYm9vbCBwcm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lKFN0
eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBDU1NQcm9wZXJ0eUlECiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlLmdl
dCgpKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmU7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUuZ2V0KCkpLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFs
dWVOb25lOwogfQogCiBzdGF0aWMgYm9vbCBuZWVkSW50ZXJjaGFuZ2VOZXdsaW5lQWZ0ZXIoY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiB2KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYmxhY2tiZXJyeS9SZW5kZXJUaGVtZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYmxhY2tiZXJyeS9SZW5kZXJUaGVtZUJsYWNrQmVycnkuY3BwCmluZGV4IGQ3MmNl
ZmU3YzNjOGQzMTI4ZWE1NmJkZDRlMThkZWE2NjAyZjdlY2MuLjFlMWE1OThiMTAwYmY4ZDBiZjM2
YzA0NTlkMmM4MGI1MzAxNWQ0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2JsYWNrYmVycnkvUmVuZGVyVGhlbWVCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1JlbmRlclRoZW1lQmxhY2tCZXJyeS5jcHAKQEAgLTI1OSwx
MiArMjU5LDEyIEBAIGRvdWJsZSBSZW5kZXJUaGVtZUJsYWNrQmVycnk6OmNhcmV0QmxpbmtJbnRl
cnZhbCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7IC8vIFR1cm4gb2ZmIGNhcmV0IGJsaW5raW5nLgog
fQogCi12b2lkIFJlbmRlclRoZW1lQmxhY2tCZXJyeTo6c3lzdGVtRm9udChpbnQgcHJvcElkLCBG
b250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVC
bGFja0JlcnJ5OjpzeXN0ZW1Gb250KENTU1ZhbHVlSUQgdmFsdWVJRCwgRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7CiAgICAgZmxvYXQgZm9udFNpemUgPSBkZWZhdWx0
Rm9udFNpemU7CiAKICAgICAvLyBCb3RoIENTU1ZhbHVlV2Via2l0Q29udHJvbCBhbmQgQ1NTVmFs
dWVXZWJraXRTbWFsbENvbnRyb2wgc2hvdWxkIHVzZSBkZWZhdWx0IGZvbnQgc2l6ZSB3aGljaCBs
b29rcyBiZXR0ZXIgb24gdGhlIGNvbnRyb2xzLgotICAgIGlmIChwcm9wSWQgPT0gQ1NTVmFsdWVX
ZWJraXRNaW5pQ29udHJvbCkgeworICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0TWlu
aUNvbnRyb2wpIHsKICAgICAgICAgLy8gV2h5IDIgcG9pbnRzIHNtYWxsZXI/IEJlY2F1c2UgdGhh
dCdzIHdoYXQgR2Vja28gZG9lcy4gTm90ZSB0aGF0IHdlCiAgICAgICAgIC8vIGFyZSBhc3N1bWlu
ZyBhIDk2ZHBpIHNjcmVlbiwgd2hpY2ggaXMgdGhlIGRlZmF1bHQgdmFsdWUgd2UgdXNlIG9uIFdp
bmRvd3MuCiAgICAgICAgIHN0YXRpYyBjb25zdCBmbG9hdCBwb2ludHNQZXJJbmNoID0gNzIuMGY7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1JlbmRlclRo
ZW1lQmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9SZW5k
ZXJUaGVtZUJsYWNrQmVycnkuaAppbmRleCA2ZjlhZGI3N2UwYWJlYTg1YjIxNTk3OTZkYjZmODIx
NDA4YzBmMWQwLi5mYWVhODk1NjAzY2U4ZDZjMzg1Yzc4ZjMyMmRmYTFjODhiYjU1NGI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1JlbmRlclRoZW1lQmxh
Y2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUmVuZGVy
VGhlbWVCbGFja0JlcnJ5LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBkb3VibGUgY2FyZXRCbGlua0ludGVydmFsKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c3lzdGVtRm9udChpbnQgY3NzVmFsdWVJZCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoQ1NTVmFsdWVJRCwgRm9udERlc2NyaXB0aW9uJikgY29u
c3Q7CiAgICAgdmlydHVhbCBib29sIHBhaW50Q2hlY2tib3goUmVuZGVyT2JqZWN0KiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDaGVja2Jv
eFNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRSYWRpbyhS
ZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAppbmRleCBmM2IzMTYy
ZjNhYmQ5OWQwOGI1MTljMjhhYmEzOTU1YWUxMGQxNjMyLi5iMjJiZjdjZjE5ZGYwOTYzNWQwYmY1
YjE1ZmFhZTQ5NDYzZjZlMTNhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvUmVuZGVyVGhlbWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9S
ZW5kZXJUaGVtZUVmbC5jcHAKQEAgLTEwMjIsNyArMTAyMiw3IEBAIHZvaWQgUmVuZGVyVGhlbWVF
Zmw6OnNldERlZmF1bHRGb250U2l6ZShpbnQgc2l6ZSkKICAgICBkZWZhdWx0Rm9udFNpemUgPSBz
aXplOwogfQogCi12b2lkIFJlbmRlclRoZW1lRWZsOjpzeXN0ZW1Gb250KGludCwgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lRWZsOjpzeXN0
ZW1Gb250KENTU1ZhbHVlSUQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25z
dAogewogICAgIC8vIEl0IHdhcyBjYWxsZWQgYnkgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50
UmVwbGFjZWQgdG8gcmVuZGVyIGFsdGVybmF0aXZlIHN0cmluZy4KICAgICAvLyBUbyBhdm9pZCBj
YWlyb19lcnJvciB3aGlsZSByZW5kZXJpbmcsIGZvbnREZXNjcmlwdGlvbiBzaG91bGQgYmUgcGFz
c2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1l
RWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAppbmRl
eCBmODgyNjdjMmE1MTM5YmFjYmRkZWY3MGE4MDQ1M2IyMTI4ZmU1MDg5Li5mZWEwMjY5MzQ0MTAy
MTUxYTc2NzVkYTM1ODg4YmNjYWQ3MmIzN2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvUmVuZGVyVGhlbWVFZmwuaApAQCAtMTE4LDcgKzExOCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFkanVzdFNpemVDb25zdHJhaW50cyhSZW5kZXJTdHlsZSosIEZvcm1UeXBlKSBjb25zdDsK
IAogICAgIC8vIFN5c3RlbSBmb250cy4KLSAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQg
cHJvcElkLCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc3lzdGVt
Rm9udChDU1NWYWx1ZUlELCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKIAogICAgIHZpcnR1YWwg
dm9pZCBhZGp1c3RDaGVja2JveFN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVs
ZW1lbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDaGVja2JveChSZW5kZXJPYmpl
Y3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcAppbmRleCA2MjlhODRmMWJkYjU4YmE3
MWVlNzI2MTAxZDhjNzEzOWQ5MmQzNDMxLi5hYTI3NTE4NWE3YWZjZDU4YjFhMTdlYTU4NTNlN2Qw
MTkyYmNiNDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVy
VGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVt
ZUd0ay5jcHAKQEAgLTQzNyw3ICs0MzcsNyBAQCBkb3VibGUgUmVuZGVyVGhlbWVHdGs6OmdldFNj
cmVlbkRQSSgpCiAgICAgcmV0dXJuIGRwaTsKIH0KIAotdm9pZCBSZW5kZXJUaGVtZUd0azo6c3lz
dGVtRm9udChpbnQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAordm9p
ZCBSZW5kZXJUaGVtZUd0azo6c3lzdGVtRm9udChDU1NWYWx1ZUlELCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbikgY29uc3QKIHsKICAgICBHdGtTZXR0aW5ncyogc2V0dGluZ3MgPSBn
dGtfc2V0dGluZ3NfZ2V0X2RlZmF1bHQoKTsKICAgICBpZiAoIXNldHRpbmdzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaAppbmRleCA0YTU4MDgwMTU3OWYx
ZjI0ZjBjNzZlODRlYTYxZGQzN2QzN2M3OTYyLi5hOGM5NzM1YzcwNzM1MzZiM2EyMjkyZTg2MDRh
NDc2ZTcyYjU3M2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhl
bWVHdGsuaApAQCAtNzksOCArNzksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBsYXRm
b3JtQ29sb3JzRGlkQ2hhbmdlKCk7CiAKICAgICAvLyBTeXN0ZW0gZm9udHMgYW5kIGNvbG9ycy4K
LSAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250RGVzY3JpcHRpb24m
KSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBj
b25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChDU1NWYWx1ZUlELCBGb250RGVzY3Jp
cHRpb24mKSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQp
IGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHBvcHNNZW51QnlTcGFjZU9yUmV0dXJuKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwCmluZGV4IDgyM2EwNDg1ZTdjZDE2OGU5YWE3ZTI1
MWY1OGM0MTFkNjM3ODViMDcuLjk5M2ZlNDQyZjMyNzYzNWYyNDNhZTlkNTdmOGU2ODg5M2MwNWRm
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0
azIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIu
Y3BwCkBAIC03MTksNyArNzE5LDcgQEAgQ29sb3IgUmVuZGVyVGhlbWVHdGs6OmluYWN0aXZlTGlz
dEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CiAgICAgcmV0dXJuIGd0a193aWRn
ZXRfZ2V0X3N0eWxlKHdpZGdldCktPnRleHRbR1RLX1NUQVRFX0FDVElWRV07CiB9CiAKLUNvbG9y
IFJlbmRlclRoZW1lR3RrOjpzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3QKK0NvbG9y
IFJlbmRlclRoZW1lR3RrOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQpIGNvbnN0
CiB7CiAgICAgc3dpdGNoIChjc3NWYWx1ZUlkKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbnRl
eHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVH
dGszLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3Bw
CmluZGV4IDIyNGFiM2ZhMjVkOTg5MTI5MGQ0OWI2MDZhN2U4OGQxZWVmM2Y1YzYuLjZkOTUxNTg5
MzllMDdmNjAwNTQwOWNmMmZkMzkyODE5YzFmYjkzNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCkBAIC05ODEsNyArOTgxLDcgQEAgQ29s
b3IgUmVuZGVyVGhlbWVHdGs6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cigpIGNvbnN0CiAgICAgcmV0dXJuIGdka1JHQkFDb2xvcjsKIH0KIAotQ29sb3IgUmVuZGVyVGhl
bWVHdGs6OnN5c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBjb25zdAorQ29sb3IgUmVuZGVyVGhl
bWVHdGs6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCkgY29uc3QKIHsKICAgICBH
ZGtSR0JBIGdka1JHQkFDb2xvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5k
ZXJUaGVtZVF0LmNwcAppbmRleCA1NWI3MmIwMDY2YjUwYTA2MWJlYWU1NzZiMzRkNjAwN2Y0OWIy
MGVjLi45YjBlMzQzNzRiZWEzYjcxNjdhNmJlMjdlZDg4MmY5Y2U3YWNkY2EwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcApAQCAtMjU2LDEyICsyNTYs
MTIgQEAgQ29sb3IgUmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigpIGNvbnN0
CiAgICAgcmV0dXJuIGNvbG9yUGFsZXR0ZSgpLmJydXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxl
dHRlOjpIaWdobGlnaHQpLmNvbG9yKCk7CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWVRdDo6c3lzdGVt
Rm9udChpbnQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lUXQ6OnN5
c3RlbUZvbnQoQ1NTVmFsdWVJRCwgRm9udERlc2NyaXB0aW9uJikgY29uc3QKIHsKICAgICAvLyBu
by1vcAogfQogCi1Db2xvciBSZW5kZXJUaGVtZVF0OjpzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJ
ZCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lUXQ6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3Nz
VmFsdWVJZCkgY29uc3QKIHsKICAgICBRUGFsZXR0ZSBwYWwgPSBjb2xvclBhbGV0dGUoKTsKICAg
ICBzd2l0Y2ggKGNzc1ZhbHVlSWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L1JlbmRlclRoZW1lUXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRl
clRoZW1lUXQuaAppbmRleCBmMTZiNTBmMzNkMjIyZDIyNjkxYWY2MWNlZGY2MTY1YWJhZDI1MzVi
Li4xYjRiNWIzMjZiZDNmMzhiYWJlMjg3NGI2YWEzNTRjZDAwMmQ3YTJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oCkBAIC03Niw4ICs3Niw4IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigpIGNvbnN0Owog
Ci0gICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoaW50IHByb3BJZCwgRm9udERlc2NyaXB0aW9u
JikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkg
Y29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoQ1NTVmFsdWVJRCwgRm9udERlc2Ny
aXB0aW9uJikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlE
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgaW50IG1pbmltdW1NZW51TGlzdFNpemUoUmVuZGVyU3R5
bGUqKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5k
ZXggMDJjYTFhNWM1ZTEwYzJiZWY0NWNmZjFiODRkNjJmMGY5MzA1MmVjYy4uYTY2OWZiZmYxY2Ni
NDYzMTJiNTM0ZTFkZTY3NTAyMmI5NGFhZTA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuY3BwCkBAIC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIFJlbmRlclRoZW1lOjpw
bGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpCiAgICAgUGFnZTo6dXBkYXRlU3R5bGVGb3JBbGxQYWdl
c0FmdGVyR2xvYmFsQ2hhbmdlSW5FbnZpcm9ubWVudCgpOwogfQogCi1Db2xvciBSZW5kZXJUaGVt
ZTo6c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6
c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkKSBjb25zdAogewogICAgIHN3aXRjaCAo
Y3NzVmFsdWVJZCkgewogICAgIGNhc2UgQ1NTVmFsdWVBY3RpdmVib3JkZXI6CkBAIC0xMTg4LDYg
KzExODgsOCBAQCBDb2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQp
IGNvbnN0CiAgICAgICAgIHJldHVybiAweEZGQ0NDQ0NDOwogICAgIGNhc2UgQ1NTVmFsdWVXaW5k
b3d0ZXh0OgogICAgICAgICByZXR1cm4gMHhGRjAwMDAwMDsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIENvbG9yKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IGI2NWYxMjFlNDczMmNmYzFlMmRlMTFiM2E3MGNiNTQ1
Zjc1MmQyY2YuLmQzYjkyYjJiMTUzZGZmNWJmODcxMDM5NjlmZTQ2MzFlMDk3MzliNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC0xNjYsOCArMTY2LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgZG91YmxlIGNhcmV0QmxpbmtJbnRlcnZhbCgpIGNvbnN0IHsgcmV0
dXJuIDAuNTsgfQogCiAgICAgLy8gU3lzdGVtIGZvbnRzIGFuZCBjb2xvcnMgZm9yIENTUy4KLSAg
ICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQgY3NzVmFsdWVJZCwgRm9udERlc2NyaXB0aW9u
JikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgQ29sb3Igc3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVl
SWQpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzeXN0ZW1Gb250KENTU1ZhbHVlSUQsIEZvbnRE
ZXNjcmlwdGlvbiYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKENT
U1ZhbHVlSUQpIGNvbnN0OwogCiAgICAgdmlydHVhbCBpbnQgbWluaW11bU1lbnVMaXN0U2l6ZShS
ZW5kZXJTdHlsZSopIGNvbnN0IHsgcmV0dXJuIDA7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCBlYTQ4ZmQ0MTI5NjNlZjg0YjM3NWJkZmY3MDhhY2Iz
N2NkMWNhNThlLi5hM2NlZmVlN2VhNjljMmE2N2FhNGNkNTdlNzY3YzdlYTBkYjVjMDQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtNjEsNyArNjEsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCk7CiAK
ICAgICAvLyBTeXN0ZW0gZm9udHMuCi0gICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoaW50IGNz
c1ZhbHVlSWQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzeXN0
ZW1Gb250KENTU1ZhbHVlSUQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0OwogCiAgICAgdmlydHVh
bCBpbnQgbWluaW11bU1lbnVMaXN0U2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0OwogCkBAIC05NCw3
ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGRvdWJsZSBhbmltYXRpb25EdXJhdGlvbkZv
clByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzKikgY29uc3Q7CiAjZW5kaWYKIAotICAgIHZpcnR1
YWwgQ29sb3Igc3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0OworICAgIHZpcnR1YWwg
Q29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCkgY29uc3Q7CiAgICAgLy8gQ29udHJvbHMgY29s
b3IgdmFsdWVzIHJldHVybmVkIGZyb20gcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigpLiBzeXN0ZW1D
b2xvcigpIHdpbGwgYmUgdXNlZCB3aGVuIGZhbHNlLgogICAgIHZpcnR1YWwgYm9vbCB1c2VzVGVz
dE1vZGVGb2N1c1JpbmdDb2xvcigpIGNvbnN0OwogICAgIC8vIEEgdmlldyBhc3NvY2lhdGVkIHRv
IHRoZSBjb250YWluZWQgZG9jdW1lbnQuIFN1YmNsYXNzZXMgbWF5IG5vdCBoYXZlIHN1Y2ggYSB2
aWV3IGFuZCByZXR1cm4gYSBmYWtlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLm1tCmluZGV4IDYwMzNkNGM2OTE5NzA2MmM2ZTljOTUxNDk1OTEwNmNhNDFmZTc5YjIu
LjQxMjkyZTRkYmI2MTllNTVlOTBiOGY3N2NkNjVjY2VlMTM3Mzc2MzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTU5OCw3ICs1OTgsNyBAQCBzdGF0
aWMgRm9udFdlaWdodCB0b0ZvbnRXZWlnaHQoTlNJbnRlZ2VyIGFwcEtpdEZvbnRXZWlnaHQpCiAg
ICAgcmV0dXJuIGZvbnRXZWlnaHRzW2FwcEtpdEZvbnRXZWlnaHQgLSAxXTsKIH0KIAotdm9pZCBS
ZW5kZXJUaGVtZU1hYzo6c3lzdGVtRm9udChpbnQgY3NzVmFsdWVJZCwgRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Gb250
KENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24p
IGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIHN5c3Rl
bUZvbnQsICgpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnREZXNjcmlwdGlvbiwgc21h
bGxTeXN0ZW1Gb250LCAoKSk7CkBAIC03MzMsNyArNzMzLDcgQEAgdm9pZCBSZW5kZXJUaGVtZU1h
Yzo6cGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKQogICAgIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUNv
bG9yc0RpZENoYW5nZSgpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3Io
aW50IGNzc1ZhbHVlSWQpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3Io
Q1NTVmFsdWVJRCBjc3NWYWx1ZUlkKSBjb25zdAogewogICAgIHsKICAgICAgICAgSGFzaE1hcDxp
bnQsIFJHQkEzMj46Oml0ZXJhdG9yIGl0ID0gbV9zeXN0ZW1Db2xvckNhY2hlLmZpbmQoY3NzVmFs
dWVJZCk7CkBAIC03NDMsMTAxICs3NDMsMTAzIEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpzeXN0
ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3QKIAogICAgIENvbG9yIGNvbG9yOwogICAgIHN3
aXRjaCAoY3NzVmFsdWVJZCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlQWN0aXZlYm9yZGVyOgot
ICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3Iga2V5Ym9h
cmRGb2N1c0luZGljYXRvckNvbG9yXSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUFjdGl2ZWNhcHRpb246Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0Nv
bG9yVG9Db2xvcihbTlNDb2xvciB3aW5kb3dGcmFtZVRleHRDb2xvcl0pOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBcHB3b3Jrc3BhY2U6Ci0gICAgICAgICAgICBj
b2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBoZWFkZXJDb2xvcl0pOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVCYWNrZ3JvdW5kOgotICAgICAg
ICAgICAgLy8gVXNlIHRoZW1lIGluZGVwZW5kZW50IGRlZmF1bHQKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dG9uZmFjZToKLSAgICAgICAgICAgIC8vIFdlIHVz
ZSB0aGlzIHZhbHVlIGluc3RlYWQgb2YgTlNDb2xvcidzIGNvbnRyb2xDb2xvciB0byBhdm9pZCB3
ZWJzaXRlIGluY29tcGF0aWJpbGl0aWVzLgotICAgICAgICAgICAgLy8gV2UgbWF5IHdhbnQgdG8g
Y2hhbmdlIHRoaXMgdG8gdXNlIHRoZSBOU0NvbG9yIGluIGZ1dHVyZS4KLSAgICAgICAgICAgIGNv
bG9yID0gMHhGRkMwQzBDMDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1Zh
bHVlQnV0dG9uaGlnaGxpZ2h0OgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRv
Q29sb3IoW05TQ29sb3IgY29udHJvbEhpZ2hsaWdodENvbG9yXSk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbnNoYWRvdzoKLSAgICAgICAgICAgIGNvbG9y
ID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGNvbnRyb2xTaGFkb3dDb2xvcl0pOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVCdXR0b250ZXh0OgotICAg
ICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgY29udHJvbFRl
eHRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVDYXB0
aW9udGV4dDoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0Nv
bG9yIHRleHRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFs
dWVHcmF5dGV4dDoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtO
U0NvbG9yIGRpc2FibGVkQ29udHJvbFRleHRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVIaWdobGlnaHQ6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZl
cnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBzZWxlY3RlZFRleHRCYWNrZ3JvdW5kQ29sb3JdKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlSGlnaGxpZ2h0dGV4dDoK
LSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHNlbGVj
dGVkVGV4dENvbG9yXSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZUluYWN0aXZlYm9yZGVyOgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29s
b3IoW05TQ29sb3IgY29udHJvbEJhY2tncm91bmRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2ZWNhcHRpb246Ci0gICAgICAgICAgICBjb2xv
ciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBjb250cm9sQmFja2dyb3VuZENvbG9y
XSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUluYWN0aXZlY2Fw
dGlvbnRleHQ6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlND
b2xvciB0ZXh0Q29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1Zh
bHVlSW5mb2JhY2tncm91bmQ6Ci0gICAgICAgICAgICAvLyBUaGVyZSBpcyBubyBjb3JyZXNwb25k
aW5nIE5TQ29sb3IgZm9yIHRoaXMgc28gd2UgdXNlIGEgaGFyZCBjb2RlZCB2YWx1ZS4KLSAgICAg
ICAgICAgIGNvbG9yID0gMHhGRkZCRkNDNTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIENTU1ZhbHVlSW5mb3RleHQ6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9y
VG9Db2xvcihbTlNDb2xvciB0ZXh0Q29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlTWVudToKLSAgICAgICAgICAgIGNvbG9yID0gbWVudUJhY2tncm91bmRD
b2xvcigpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVNZW51dGV4
dDoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHNl
bGVjdGVkTWVudUl0ZW1UZXh0Q29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIENTU1ZhbHVlU2Nyb2xsYmFyOgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xv
clRvQ29sb3IoW05TQ29sb3Igc2Nyb2xsQmFyQ29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlVGV4dDoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5T
Q29sb3JUb0NvbG9yKFtOU0NvbG9yIHRleHRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRkYXJrc2hhZG93OgotICAgICAgICAgICAgY29sb3Ig
PSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgY29udHJvbERhcmtTaGFkb3dDb2xvcl0p
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRzaGFkb3c6
Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBzaGFk
b3dDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJl
ZWRmYWNlOgotICAgICAgICAgICAgLy8gV2UgdXNlIHRoaXMgdmFsdWUgaW5zdGVhZCBvZiBOU0Nv
bG9yJ3MgY29udHJvbENvbG9yIHRvIGF2b2lkIHdlYnNpdGUgaW5jb21wYXRpYmlsaXRpZXMuCi0g
ICAgICAgICAgICAvLyBXZSBtYXkgd2FudCB0byBjaGFuZ2UgdGhpcyB0byB1c2UgdGhlIE5TQ29s
b3IgaW4gZnV0dXJlLgotICAgICAgICAgICAgY29sb3IgPSAweEZGQzBDMEMwOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRoaWdobGlnaHQ6Ci0gICAgICAg
ICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBoaWdobGlnaHRDb2xv
cl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRsaWdo
dHNoYWRvdzoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0Nv
bG9yIGNvbnRyb2xMaWdodEhpZ2hsaWdodENvbG9yXSk7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdEZvY3VzUmluZ0NvbG9yOgotICAgICAgICAgICAgY29s
b3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3Iga2V5Ym9hcmRGb2N1c0luZGljYXRv
ckNvbG9yXSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVdpbmRv
dzoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHdp
bmRvd0JhY2tncm91bmRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVXaW5kb3dmcmFtZToKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JU
b0NvbG9yKFtOU0NvbG9yIHdpbmRvd0ZyYW1lQ29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlV2luZG93dGV4dDoKLSAgICAgICAgICAgIGNvbG9yID0gY29u
dmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHdpbmRvd0ZyYW1lVGV4dENvbG9yXSk7Ci0gICAg
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQWN0aXZlYm9yZGVyOgorICAgICAgICBj
b2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBrZXlib2FyZEZvY3VzSW5kaWNh
dG9yQ29sb3JdKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUFjdGl2ZWNhcHRp
b246CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHdpbmRv
d0ZyYW1lVGV4dENvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVBcHB3
b3Jrc3BhY2U6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9y
IGhlYWRlckNvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVCYWNrZ3Jv
dW5kOgorICAgICAgICAvLyBVc2UgdGhlbWUgaW5kZXBlbmRlbnQgZGVmYXVsdAorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQnV0dG9uZmFjZToKKyAgICAgICAgLy8gV2UgdXNlIHRo
aXMgdmFsdWUgaW5zdGVhZCBvZiBOU0NvbG9yJ3MgY29udHJvbENvbG9yIHRvIGF2b2lkIHdlYnNp
dGUgaW5jb21wYXRpYmlsaXRpZXMuCisgICAgICAgIC8vIFdlIG1heSB3YW50IHRvIGNoYW5nZSB0
aGlzIHRvIHVzZSB0aGUgTlNDb2xvciBpbiBmdXR1cmUuCisgICAgICAgIGNvbG9yID0gMHhGRkMw
QzBDMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbmhpZ2hsaWdodDoK
KyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgY29udHJvbEhp
Z2hsaWdodENvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVCdXR0b25z
aGFkb3c6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGNv
bnRyb2xTaGFkb3dDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQnV0
dG9udGV4dDoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3Ig
Y29udHJvbFRleHRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQ2Fw
dGlvbnRleHQ6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9y
IHRleHRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlR3JheXRleHQ6
CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGRpc2FibGVk
Q29udHJvbFRleHRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlSGln
aGxpZ2h0OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBz
ZWxlY3RlZFRleHRCYWNrZ3JvdW5kQ29sb3JdKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
U1NWYWx1ZUhpZ2hsaWdodHRleHQ6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0Nv
bG9yKFtOU0NvbG9yIHNlbGVjdGVkVGV4dENvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1NTVmFsdWVJbmFjdGl2ZWJvcmRlcjoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xv
clRvQ29sb3IoW05TQ29sb3IgY29udHJvbEJhY2tncm91bmRDb2xvcl0pOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENTU1ZhbHVlSW5hY3RpdmVjYXB0aW9uOgorICAgICAgICBjb2xvciA9IGNv
bnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBjb250cm9sQmFja2dyb3VuZENvbG9yXSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2ZWNhcHRpb250ZXh0OgorICAg
ICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciB0ZXh0Q29sb3JdKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUluZm9iYWNrZ3JvdW5kOgorICAgICAg
ICAvLyBUaGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIE5TQ29sb3IgZm9yIHRoaXMgc28gd2UgdXNl
IGEgaGFyZCBjb2RlZCB2YWx1ZS4KKyAgICAgICAgY29sb3IgPSAweEZGRkJGQ0M1OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlSW5mb3RleHQ6CisgICAgICAgIGNvbG9yID0gY29u
dmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHRleHRDb2xvcl0pOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENTU1ZhbHVlTWVudToKKyAgICAgICAgY29sb3IgPSBtZW51QmFja2dyb3VuZENv
bG9yKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVNZW51dGV4dDoKKyAgICAg
ICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3Igc2VsZWN0ZWRNZW51SXRl
bVRleHRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlU2Nyb2xsYmFy
OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBzY3JvbGxC
YXJDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlVGV4dDoKKyAgICAg
ICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgdGV4dENvbG9yXSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRkYXJrc2hhZG93OgorICAgICAg
ICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBjb250cm9sRGFya1NoYWRv
d0NvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRzaGFkb3c6
CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHNoYWRvd0Nv
bG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRmYWNlOgorICAg
ICAgICAvLyBXZSB1c2UgdGhpcyB2YWx1ZSBpbnN0ZWFkIG9mIE5TQ29sb3IncyBjb250cm9sQ29s
b3IgdG8gYXZvaWQgd2Vic2l0ZSBpbmNvbXBhdGliaWxpdGllcy4KKyAgICAgICAgLy8gV2UgbWF5
IHdhbnQgdG8gY2hhbmdlIHRoaXMgdG8gdXNlIHRoZSBOU0NvbG9yIGluIGZ1dHVyZS4KKyAgICAg
ICAgY29sb3IgPSAweEZGQzBDMEMwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVl
VGhyZWVkaGlnaGxpZ2h0OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihb
TlNDb2xvciBoaWdobGlnaHRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Zh
bHVlVGhyZWVkbGlnaHRzaGFkb3c6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0Nv
bG9yKFtOU0NvbG9yIGNvbnRyb2xMaWdodEhpZ2hsaWdodENvbG9yXSk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRGb2N1c1JpbmdDb2xvcjoKKyAgICAgICAgY29sb3Ig
PSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3Iga2V5Ym9hcmRGb2N1c0luZGljYXRvckNv
bG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3c6CisgICAgICAg
IGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHdpbmRvd0JhY2tncm91bmRD
b2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlV2luZG93ZnJhbWU6Cisg
ICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHdpbmRvd0ZyYW1l
Q29sb3JdKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZVdpbmRvd3RleHQ6Cisg
ICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHdpbmRvd0ZyYW1l
VGV4dENvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIGlmICghY29sb3IuaXNWYWxpZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5jcHAKaW5kZXggZjEyMzM2NzQ1YThhODM1YjFk
NjM1NGNkYzUxZWM5ZmJkN2Y2MDIzNS4uMmFiMDE2ZDg0Mjk1MTRlOGMwZGYwN2E4MTlhZjlhZTMx
MTZlMWIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
U2FmYXJpLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZh
cmkuY3BwCkBAIC0xODksNyArMTg5LDcgQEAgc3RhdGljIGZsb2F0IHN5c3RlbUZvbnRTaXplRm9y
Q29udHJvbFNpemUoTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZSkKICAgICByZXR1cm4gc2l6ZXNb
Y29udHJvbFNpemVdOwogfQogCi12b2lkIFJlbmRlclRoZW1lU2FmYXJpOjpzeXN0ZW1Gb250KGlu
dCBwcm9wSWQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAordm9pZCBS
ZW5kZXJUaGVtZVNhZmFyaTo6c3lzdGVtRm9udChDU1NWYWx1ZUlEIHZhbHVlSUQsIEZvbnREZXNj
cmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewogICAgIHN0YXRpYyBGb250RGVzY3Jp
cHRpb24gc3lzdGVtRm9udDsKICAgICBzdGF0aWMgRm9udERlc2NyaXB0aW9uIHNtYWxsU3lzdGVt
Rm9udDsKQEAgLTIwMSw0MSArMjAxLDQxIEBAIHZvaWQgUmVuZGVyVGhlbWVTYWZhcmk6OnN5c3Rl
bUZvbnQoaW50IHByb3BJZCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pCiAKICAg
ICBGb250RGVzY3JpcHRpb24qIGNhY2hlZERlc2M7CiAgICAgZmxvYXQgZm9udFNpemUgPSAwOwot
ICAgIHN3aXRjaCAocHJvcElkKSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTbWFsbENhcHRpb246
Ci0gICAgICAgICAgICBjYWNoZWREZXNjID0gJnNtYWxsU3lzdGVtRm9udDsKLSAgICAgICAgICAg
IGlmICghc21hbGxTeXN0ZW1Gb250LmlzQWJzb2x1dGVTaXplKCkpCi0gICAgICAgICAgICAgICAg
Zm9udFNpemUgPSBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplKE5TU21hbGxDb250cm9sU2l6
ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU1lbnU6Ci0gICAg
ICAgICAgICBjYWNoZWREZXNjID0gJm1lbnVGb250OwotICAgICAgICAgICAgaWYgKCFtZW51Rm9u
dC5pc0Fic29sdXRlU2l6ZSgpKQotICAgICAgICAgICAgICAgIGZvbnRTaXplID0gc3lzdGVtRm9u
dFNpemVGb3JDb250cm9sU2l6ZShOU1JlZ3VsYXJDb250cm9sU2l6ZSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVN0YXR1c0JhcjoKLSAgICAgICAgICAgIGNhY2hl
ZERlc2MgPSAmbGFiZWxGb250OwotICAgICAgICAgICAgaWYgKCFsYWJlbEZvbnQuaXNBYnNvbHV0
ZVNpemUoKSkKLSAgICAgICAgICAgICAgICBmb250U2l6ZSA9IDEwLjBmOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRNaW5pQ29udHJvbDoKLSAgICAgICAg
ICAgIGNhY2hlZERlc2MgPSAmbWluaUNvbnRyb2xGb250OwotICAgICAgICAgICAgaWYgKCFtaW5p
Q29udHJvbEZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKLSAgICAgICAgICAgICAgICBmb250U2l6ZSA9
IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemUoTlNNaW5pQ29udHJvbFNpemUpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRTbWFsbENvbnRyb2w6Ci0g
ICAgICAgICAgICBjYWNoZWREZXNjID0gJnNtYWxsQ29udHJvbEZvbnQ7Ci0gICAgICAgICAgICBp
ZiAoIXNtYWxsQ29udHJvbEZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKLSAgICAgICAgICAgICAgICBm
b250U2l6ZSA9IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemUoTlNTbWFsbENvbnRyb2xTaXpl
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0Q29udHJv
bDoKLSAgICAgICAgICAgIGNhY2hlZERlc2MgPSAmY29udHJvbEZvbnQ7Ci0gICAgICAgICAgICBp
ZiAoIWNvbnRyb2xGb250LmlzQWJzb2x1dGVTaXplKCkpCi0gICAgICAgICAgICAgICAgZm9udFNp
emUgPSBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplKE5TUmVndWxhckNvbnRyb2xTaXplKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgY2FjaGVk
RGVzYyA9ICZzeXN0ZW1Gb250OwotICAgICAgICAgICAgaWYgKCFzeXN0ZW1Gb250LmlzQWJzb2x1
dGVTaXplKCkpCi0gICAgICAgICAgICAgICAgZm9udFNpemUgPSAxMy4wZjsKKyAgICBzd2l0Y2gg
KHZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlU21hbGxDYXB0aW9uOgorICAgICAgICBjYWNo
ZWREZXNjID0gJnNtYWxsU3lzdGVtRm9udDsKKyAgICAgICAgaWYgKCFzbWFsbFN5c3RlbUZvbnQu
aXNBYnNvbHV0ZVNpemUoKSkKKyAgICAgICAgICAgIGZvbnRTaXplID0gc3lzdGVtRm9udFNpemVG
b3JDb250cm9sU2l6ZShOU1NtYWxsQ29udHJvbFNpemUpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENTU1ZhbHVlTWVudToKKyAgICAgICAgY2FjaGVkRGVzYyA9ICZtZW51Rm9udDsKKyAgICAg
ICAgaWYgKCFtZW51Rm9udC5pc0Fic29sdXRlU2l6ZSgpKQorICAgICAgICAgICAgZm9udFNpemUg
PSBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplKE5TUmVndWxhckNvbnRyb2xTaXplKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZVN0YXR1c0JhcjoKKyAgICAgICAgY2FjaGVk
RGVzYyA9ICZsYWJlbEZvbnQ7CisgICAgICAgIGlmICghbGFiZWxGb250LmlzQWJzb2x1dGVTaXpl
KCkpCisgICAgICAgICAgICBmb250U2l6ZSA9IDEwLjBmOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENTU1ZhbHVlV2Via2l0TWluaUNvbnRyb2w6CisgICAgICAgIGNhY2hlZERlc2MgPSAmbWlu
aUNvbnRyb2xGb250OworICAgICAgICBpZiAoIW1pbmlDb250cm9sRm9udC5pc0Fic29sdXRlU2l6
ZSgpKQorICAgICAgICAgICAgZm9udFNpemUgPSBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXpl
KE5TTWluaUNvbnRyb2xTaXplKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZVdl
YmtpdFNtYWxsQ29udHJvbDoKKyAgICAgICAgY2FjaGVkRGVzYyA9ICZzbWFsbENvbnRyb2xGb250
OworICAgICAgICBpZiAoIXNtYWxsQ29udHJvbEZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKKyAgICAg
ICAgICAgIGZvbnRTaXplID0gc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZShOU1NtYWxsQ29u
dHJvbFNpemUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlV2Via2l0Q29udHJv
bDoKKyAgICAgICAgY2FjaGVkRGVzYyA9ICZjb250cm9sRm9udDsKKyAgICAgICAgaWYgKCFjb250
cm9sRm9udC5pc0Fic29sdXRlU2l6ZSgpKQorICAgICAgICAgICAgZm9udFNpemUgPSBzeXN0ZW1G
b250U2l6ZUZvckNvbnRyb2xTaXplKE5TUmVndWxhckNvbnRyb2xTaXplKTsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgY2FjaGVkRGVzYyA9ICZzeXN0ZW1Gb250OworICAg
ICAgICBpZiAoIXN5c3RlbUZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKKyAgICAgICAgICAgIGZvbnRT
aXplID0gMTMuMGY7CiAgICAgfQogCiAgICAgaWYgKGZvbnRTaXplKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5oCmluZGV4IDhjNjIwNWRlMDFkYWVlMjEx
YTBiNTUzMjVjY2Y1YzEzMDAzODY2ZDkuLjQ1N2UwZDM2NThhN2QwMjY4NDVkMjEwZGE4MTgzOWJj
OGFlMmYwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZVNhZmFyaS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFy
aS5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3Jt
Rm9jdXNSaW5nQ29sb3IoKSBjb25zdDsKIAogICAgIC8vIFN5c3RlbSBmb250cy4KLSAgICB2aXJ0
dWFsIHZvaWQgc3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsK
KyAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChDU1NWYWx1ZUlELCBGb250RGVzY3JpcHRpb24m
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgaW50IG1pbmltdW1NZW51TGlzdFNpemUoUmVuZGVyU3R5
bGUqKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5j
cHAKaW5kZXggMjFhMWE5ZTQwMzU2MDZjYjIwZGJkMGYxODk0YmVkZjQ1YjJkYzkzOS4uZTMzZDlh
ZGNjYTkwZTlhYWViYWFhZWZjN2E5ZDE5NTc1MTlmMzk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgc3RhdGljIHZv
aWQgZmlsbEZvbnREZXNjcmlwdGlvbihGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwg
TE9HRk9OVCYgbG9nRm8KICAgICBmaWxsRm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbiwg
bG9nRm9udCwgYWJzKGxvZ0ZvbnQubGZIZWlnaHQpKTsKIH0KIAotdm9pZCBSZW5kZXJUaGVtZVdp
bjo6c3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlv
bikgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVXaW46OnN5c3RlbUZvbnQoQ1NTVmFsdWVJRCB2YWx1
ZUlELCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKIHsKICAgICBzdGF0
aWMgRm9udERlc2NyaXB0aW9uIGNhcHRpb25Gb250OwogICAgIHN0YXRpYyBGb250RGVzY3JpcHRp
b24gY29udHJvbEZvbnQ7CkBAIC0zNTcsNjUgKzM1Nyw2NSBAQCB2b2lkIFJlbmRlclRoZW1lV2lu
OjpzeXN0ZW1Gb250KGludCBwcm9wSWQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
KSBjbwogICAgICAgICA6OlN5c3RlbVBhcmFtZXRlcnNJbmZvKFNQSV9HRVROT05DTElFTlRNRVRS
SUNTLCBzaXplb2YobmNtKSwgJm5jbSwgMCk7CiAgICAgfQogIAotICAgIHN3aXRjaCAocHJvcElk
KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVJY29uOiB7Ci0gICAgICAgICAgICBpZiAoIWljb25G
b250LmlzQWJzb2x1dGVTaXplKCkpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSUQpIHsKKyAgICBjYXNl
IENTU1ZhbHVlSWNvbjogeworICAgICAgICBpZiAoIWljb25Gb250LmlzQWJzb2x1dGVTaXplKCkp
IHsKKyAgICAgICAgICAgIExPR0ZPTlQgbG9nRm9udDsKKyAgICAgICAgICAgIDo6U3lzdGVtUGFy
YW1ldGVyc0luZm8oU1BJX0dFVElDT05USVRMRUxPR0ZPTlQsIHNpemVvZihsb2dGb250KSwgJmxv
Z0ZvbnQsIDApOworICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihpY29uRm9udCwgbG9n
Rm9udCk7CisgICAgICAgIH0KKyAgICAgICAgZm9udERlc2NyaXB0aW9uID0gaWNvbkZvbnQ7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIENTU1ZhbHVlTWVudToKKyAgICAgICAgaWYg
KCFtZW51Rm9udC5pc0Fic29sdXRlU2l6ZSgpKQorICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlw
dGlvbihtZW51Rm9udCwgbmNtLmxmTWVudUZvbnQpOworICAgICAgICBmb250RGVzY3JpcHRpb24g
PSBtZW51Rm9udDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZU1lc3NhZ2VCb3g6
CisgICAgICAgIGlmICghbWVzc2FnZUJveEZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKKyAgICAgICAg
ICAgIGZpbGxGb250RGVzY3JpcHRpb24obWVzc2FnZUJveEZvbnQsIG5jbS5sZk1lc3NhZ2VGb250
KTsKKyAgICAgICAgZm9udERlc2NyaXB0aW9uID0gbWVzc2FnZUJveEZvbnQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ1NTVmFsdWVTdGF0dXNCYXI6CisgICAgICAgIGlmICghc3RhdHVzQmFy
Rm9udC5pc0Fic29sdXRlU2l6ZSgpKQorICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihz
dGF0dXNCYXJGb250LCBuY20ubGZTdGF0dXNGb250KTsKKyAgICAgICAgZm9udERlc2NyaXB0aW9u
ID0gc3RhdHVzQmFyRm9udDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUNhcHRp
b246CisgICAgICAgIGlmICghY2FwdGlvbkZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKKyAgICAgICAg
ICAgIGZpbGxGb250RGVzY3JpcHRpb24oY2FwdGlvbkZvbnQsIG5jbS5sZkNhcHRpb25Gb250KTsK
KyAgICAgICAgZm9udERlc2NyaXB0aW9uID0gY2FwdGlvbkZvbnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ1NTVmFsdWVTbWFsbENhcHRpb246CisgICAgICAgIGlmICghc21hbGxDYXB0aW9u
Rm9udC5pc0Fic29sdXRlU2l6ZSgpKQorICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihz
bWFsbENhcHRpb25Gb250LCBuY20ubGZTbUNhcHRpb25Gb250KTsKKyAgICAgICAgZm9udERlc2Ny
aXB0aW9uID0gc21hbGxDYXB0aW9uRm9udDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NW
YWx1ZVdlYmtpdFNtYWxsQ29udHJvbDoKKyAgICBjYXNlIENTU1ZhbHVlV2Via2l0TWluaUNvbnRy
b2w6IC8vIEp1c3QgbWFwIHRvIHNtYWxsLgorICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRDb250cm9s
OiAvLyBKdXN0IG1hcCB0byBzbWFsbC4KKyAgICAgICAgaWYgKCFjb250cm9sRm9udC5pc0Fic29s
dXRlU2l6ZSgpKSB7CisgICAgICAgICAgICBIR0RJT0JKIGhHREkgPSA6OkdldFN0b2NrT2JqZWN0
KERFRkFVTFRfR1VJX0ZPTlQpOworICAgICAgICAgICAgaWYgKGhHREkpIHsKICAgICAgICAgICAg
ICAgICBMT0dGT05UIGxvZ0ZvbnQ7Ci0gICAgICAgICAgICAgICAgOjpTeXN0ZW1QYXJhbWV0ZXJz
SW5mbyhTUElfR0VUSUNPTlRJVExFTE9HRk9OVCwgc2l6ZW9mKGxvZ0ZvbnQpLCAmbG9nRm9udCwg
MCk7Ci0gICAgICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihpY29uRm9udCwgbG9nRm9u
dCk7CisgICAgICAgICAgICAgICAgaWYgKDo6R2V0T2JqZWN0KGhHREksIHNpemVvZihsb2dGb250
KSwgJmxvZ0ZvbnQpID4gMCkKKyAgICAgICAgICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlv
bihjb250cm9sRm9udCwgbG9nRm9udCwgZGVmYXVsdENvbnRyb2xGb250UGl4ZWxTaXplKTsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbiA9IGljb25Gb250OwotICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBDU1NWYWx1ZU1lbnU6Ci0g
ICAgICAgICAgICBpZiAoIW1lbnVGb250LmlzQWJzb2x1dGVTaXplKCkpCi0gICAgICAgICAgICAg
ICAgZmlsbEZvbnREZXNjcmlwdGlvbihtZW51Rm9udCwgbmNtLmxmTWVudUZvbnQpOwotICAgICAg
ICAgICAgZm9udERlc2NyaXB0aW9uID0gbWVudUZvbnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZU1lc3NhZ2VCb3g6Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2VC
b3hGb250LmlzQWJzb2x1dGVTaXplKCkpCi0gICAgICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlw
dGlvbihtZXNzYWdlQm94Rm9udCwgbmNtLmxmTWVzc2FnZUZvbnQpOwotICAgICAgICAgICAgZm9u
dERlc2NyaXB0aW9uID0gbWVzc2FnZUJveEZvbnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZVN0YXR1c0JhcjoKLSAgICAgICAgICAgIGlmICghc3RhdHVzQmFyRm9u
dC5pc0Fic29sdXRlU2l6ZSgpKQotICAgICAgICAgICAgICAgIGZpbGxGb250RGVzY3JpcHRpb24o
c3RhdHVzQmFyRm9udCwgbmNtLmxmU3RhdHVzRm9udCk7Ci0gICAgICAgICAgICBmb250RGVzY3Jp
cHRpb24gPSBzdGF0dXNCYXJGb250OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVDYXB0aW9uOgotICAgICAgICAgICAgaWYgKCFjYXB0aW9uRm9udC5pc0Fic29sdXRl
U2l6ZSgpKQotICAgICAgICAgICAgICAgIGZpbGxGb250RGVzY3JpcHRpb24oY2FwdGlvbkZvbnQs
IG5jbS5sZkNhcHRpb25Gb250KTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbiA9IGNhcHRp
b25Gb250OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTbWFsbENh
cHRpb246Ci0gICAgICAgICAgICBpZiAoIXNtYWxsQ2FwdGlvbkZvbnQuaXNBYnNvbHV0ZVNpemUo
KSkKLSAgICAgICAgICAgICAgICBmaWxsRm9udERlc2NyaXB0aW9uKHNtYWxsQ2FwdGlvbkZvbnQs
IG5jbS5sZlNtQ2FwdGlvbkZvbnQpOwotICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uID0gc21h
bGxDYXB0aW9uRm9udDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVl
V2Via2l0U21hbGxDb250cm9sOgotICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0TWluaUNvbnRy
b2w6IC8vIEp1c3QgbWFwIHRvIHNtYWxsLgotICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0Q29u
dHJvbDogLy8gSnVzdCBtYXAgdG8gc21hbGwuCi0gICAgICAgICAgICBpZiAoIWNvbnRyb2xGb250
LmlzQWJzb2x1dGVTaXplKCkpIHsKLSAgICAgICAgICAgICAgICBIR0RJT0JKIGhHREkgPSA6Okdl
dFN0b2NrT2JqZWN0KERFRkFVTFRfR1VJX0ZPTlQpOwotICAgICAgICAgICAgICAgIGlmIChoR0RJ
KSB7Ci0gICAgICAgICAgICAgICAgICAgIExPR0ZPTlQgbG9nRm9udDsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKDo6R2V0T2JqZWN0KGhHREksIHNpemVvZihsb2dGb250KSwgJmxvZ0ZvbnQpID4g
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxGb250RGVzY3JpcHRpb24oY29udHJvbEZv
bnQsIGxvZ0ZvbnQsIGRlZmF1bHRDb250cm9sRm9udFBpeGVsU2l6ZSk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uID0gY29udHJv
bEZvbnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDogeyAvLyBFdmVyeXRo
aW5nIGVsc2UgdXNlcyB0aGUgc3RvY2sgR1VJIGZvbnQuCi0gICAgICAgICAgICBpZiAoIXN5c3Rl
bUZvbnQuaXNBYnNvbHV0ZVNpemUoKSkgewotICAgICAgICAgICAgICAgIEhHRElPQkogaEdESSA9
IDo6R2V0U3RvY2tPYmplY3QoREVGQVVMVF9HVUlfRk9OVCk7Ci0gICAgICAgICAgICAgICAgaWYg
KGhHREkpIHsKLSAgICAgICAgICAgICAgICAgICAgTE9HRk9OVCBsb2dGb250OwotICAgICAgICAg
ICAgICAgICAgICBpZiAoOjpHZXRPYmplY3QoaEdESSwgc2l6ZW9mKGxvZ0ZvbnQpLCAmbG9nRm9u
dCkgPiAwKQotICAgICAgICAgICAgICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihzeXN0
ZW1Gb250LCBsb2dGb250KTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgIGZvbnREZXNjcmlw
dGlvbiA9IGNvbnRyb2xGb250OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OiB7IC8vIEV2
ZXJ5dGhpbmcgZWxzZSB1c2VzIHRoZSBzdG9jayBHVUkgZm9udC4KKyAgICAgICAgaWYgKCFzeXN0
ZW1Gb250LmlzQWJzb2x1dGVTaXplKCkpIHsKKyAgICAgICAgICAgIEhHRElPQkogaEdESSA9IDo6
R2V0U3RvY2tPYmplY3QoREVGQVVMVF9HVUlfRk9OVCk7CisgICAgICAgICAgICBpZiAoaEdESSkg
eworICAgICAgICAgICAgICAgIExPR0ZPTlQgbG9nRm9udDsKKyAgICAgICAgICAgICAgICBpZiAo
OjpHZXRPYmplY3QoaEdESSwgc2l6ZW9mKGxvZ0ZvbnQpLCAmbG9nRm9udCkgPiAwKQorICAgICAg
ICAgICAgICAgICAgICBmaWxsRm9udERlc2NyaXB0aW9uKHN5c3RlbUZvbnQsIGxvZ0ZvbnQpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uID0gc3lzdGVtRm9udDsK
ICAgICAgICAgfQorICAgICAgICBmb250RGVzY3JpcHRpb24gPSBzeXN0ZW1Gb250OworICAgIH0K
ICAgICB9CiB9CiAKQEAgLTEwMzQsNDUgKzEwMzQsNDUgQEAgYm9vbCBSZW5kZXJUaGVtZVdpbjo6
cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b24oUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWlu
dEkKIH0KIAogLy8gTWFwIGEgQ1NTVmFsdWUqIHN5c3RlbSBjb2xvciB0byBhbiBpbmRleCB1bmRl
cnN0b29kIGJ5IEdldFN5c0NvbG9yCi1zdGF0aWMgaW50IGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5k
ZXgoaW50IGNzc1ZhbHVlSWQpCitzdGF0aWMgQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkVG9TeXNDb2xv
ckluZGV4KGludCBjc3NWYWx1ZUlkKQogewogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewotICAg
ICAgICBjYXNlIENTU1ZhbHVlQWN0aXZlYm9yZGVyOiByZXR1cm4gQ09MT1JfQUNUSVZFQk9SREVS
OwotICAgICAgICBjYXNlIENTU1ZhbHVlQWN0aXZlY2FwdGlvbjogcmV0dXJuIENPTE9SX0FDVElW
RUNBUFRJT047Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBcHB3b3Jrc3BhY2U6IHJldHVybiBDT0xP
Ul9BUFBXT1JLU1BBQ0U7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVCYWNrZ3JvdW5kOiByZXR1cm4g
Q09MT1JfQkFDS0dST1VORDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbmZhY2U6IHJldHVy
biBDT0xPUl9CVE5GQUNFOwotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dG9uaGlnaGxpZ2h0OiBy
ZXR1cm4gQ09MT1JfQlROSElHSExJR0hUOwotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dG9uc2hh
ZG93OiByZXR1cm4gQ09MT1JfQlROU0hBRE9XOwotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dG9u
dGV4dDogcmV0dXJuIENPTE9SX0JUTlRFWFQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVDYXB0aW9u
dGV4dDogcmV0dXJuIENPTE9SX0NBUFRJT05URVhUOwotICAgICAgICBjYXNlIENTU1ZhbHVlR3Jh
eXRleHQ6IHJldHVybiBDT0xPUl9HUkFZVEVYVDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUhpZ2hs
aWdodDogcmV0dXJuIENPTE9SX0hJR0hMSUdIVDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUhpZ2hs
aWdodHRleHQ6IHJldHVybiBDT0xPUl9ISUdITElHSFRURVhUOwotICAgICAgICBjYXNlIENTU1Zh
bHVlSW5hY3RpdmVib3JkZXI6IHJldHVybiBDT0xPUl9JTkFDVElWRUJPUkRFUjsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUluYWN0aXZlY2FwdGlvbjogcmV0dXJuIENPTE9SX0lOQUNUSVZFQ0FQVElP
TjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUluYWN0aXZlY2FwdGlvbnRleHQ6IHJldHVybiBDT0xP
Ul9JTkFDVElWRUNBUFRJT05URVhUOwotICAgICAgICBjYXNlIENTU1ZhbHVlSW5mb2JhY2tncm91
bmQ6IHJldHVybiBDT0xPUl9JTkZPQks7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVJbmZvdGV4dDog
cmV0dXJuIENPTE9SX0lORk9URVhUOwotICAgICAgICBjYXNlIENTU1ZhbHVlTWVudTogcmV0dXJu
IENPTE9SX01FTlU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVNZW51dGV4dDogcmV0dXJuIENPTE9S
X01FTlVURVhUOwotICAgICAgICBjYXNlIENTU1ZhbHVlU2Nyb2xsYmFyOiByZXR1cm4gQ09MT1Jf
U0NST0xMQkFSOwotICAgICAgICBjYXNlIENTU1ZhbHVlVGhyZWVkZGFya3NoYWRvdzogcmV0dXJu
IENPTE9SXzNEREtTSEFET1c7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRmYWNlOiByZXR1
cm4gQ09MT1JfM0RGQUNFOwotICAgICAgICBjYXNlIENTU1ZhbHVlVGhyZWVkaGlnaGxpZ2h0OiBy
ZXR1cm4gQ09MT1JfM0RISUdITElHSFQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRsaWdo
dHNoYWRvdzogcmV0dXJuIENPTE9SXzNETElHSFQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJl
ZWRzaGFkb3c6IHJldHVybiBDT0xPUl8zRFNIQURPVzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVdp
bmRvdzogcmV0dXJuIENPTE9SX1dJTkRPVzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVdpbmRvd2Zy
YW1lOiByZXR1cm4gQ09MT1JfV0lORE9XRlJBTUU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXaW5k
b3d0ZXh0OiByZXR1cm4gQ09MT1JfV0lORE9XVEVYVDsKLSAgICAgICAgZGVmYXVsdDogcmV0dXJu
IC0xOyAvLyBVbnN1cHBvcnRlZCBDU1NWYWx1ZQorICAgIGNhc2UgQ1NTVmFsdWVBY3RpdmVib3Jk
ZXI6IHJldHVybiBDT0xPUl9BQ1RJVkVCT1JERVI7CisgICAgY2FzZSBDU1NWYWx1ZUFjdGl2ZWNh
cHRpb246IHJldHVybiBDT0xPUl9BQ1RJVkVDQVBUSU9OOworICAgIGNhc2UgQ1NTVmFsdWVBcHB3
b3Jrc3BhY2U6IHJldHVybiBDT0xPUl9BUFBXT1JLU1BBQ0U7CisgICAgY2FzZSBDU1NWYWx1ZUJh
Y2tncm91bmQ6IHJldHVybiBDT0xPUl9CQUNLR1JPVU5EOworICAgIGNhc2UgQ1NTVmFsdWVCdXR0
b25mYWNlOiByZXR1cm4gQ09MT1JfQlRORkFDRTsKKyAgICBjYXNlIENTU1ZhbHVlQnV0dG9uaGln
aGxpZ2h0OiByZXR1cm4gQ09MT1JfQlROSElHSExJR0hUOworICAgIGNhc2UgQ1NTVmFsdWVCdXR0
b25zaGFkb3c6IHJldHVybiBDT0xPUl9CVE5TSEFET1c7CisgICAgY2FzZSBDU1NWYWx1ZUJ1dHRv
bnRleHQ6IHJldHVybiBDT0xPUl9CVE5URVhUOworICAgIGNhc2UgQ1NTVmFsdWVDYXB0aW9udGV4
dDogcmV0dXJuIENPTE9SX0NBUFRJT05URVhUOworICAgIGNhc2UgQ1NTVmFsdWVHcmF5dGV4dDog
cmV0dXJuIENPTE9SX0dSQVlURVhUOworICAgIGNhc2UgQ1NTVmFsdWVIaWdobGlnaHQ6IHJldHVy
biBDT0xPUl9ISUdITElHSFQ7CisgICAgY2FzZSBDU1NWYWx1ZUhpZ2hsaWdodHRleHQ6IHJldHVy
biBDT0xPUl9ISUdITElHSFRURVhUOworICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2ZWJvcmRlcjog
cmV0dXJuIENPTE9SX0lOQUNUSVZFQk9SREVSOworICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2ZWNh
cHRpb246IHJldHVybiBDT0xPUl9JTkFDVElWRUNBUFRJT047CisgICAgY2FzZSBDU1NWYWx1ZUlu
YWN0aXZlY2FwdGlvbnRleHQ6IHJldHVybiBDT0xPUl9JTkFDVElWRUNBUFRJT05URVhUOworICAg
IGNhc2UgQ1NTVmFsdWVJbmZvYmFja2dyb3VuZDogcmV0dXJuIENPTE9SX0lORk9CSzsKKyAgICBj
YXNlIENTU1ZhbHVlSW5mb3RleHQ6IHJldHVybiBDT0xPUl9JTkZPVEVYVDsKKyAgICBjYXNlIENT
U1ZhbHVlTWVudTogcmV0dXJuIENPTE9SX01FTlU7CisgICAgY2FzZSBDU1NWYWx1ZU1lbnV0ZXh0
OiByZXR1cm4gQ09MT1JfTUVOVVRFWFQ7CisgICAgY2FzZSBDU1NWYWx1ZVNjcm9sbGJhcjogcmV0
dXJuIENPTE9SX1NDUk9MTEJBUjsKKyAgICBjYXNlIENTU1ZhbHVlVGhyZWVkZGFya3NoYWRvdzog
cmV0dXJuIENPTE9SXzNEREtTSEFET1c7CisgICAgY2FzZSBDU1NWYWx1ZVRocmVlZGZhY2U6IHJl
dHVybiBDT0xPUl8zREZBQ0U7CisgICAgY2FzZSBDU1NWYWx1ZVRocmVlZGhpZ2hsaWdodDogcmV0
dXJuIENPTE9SXzNESElHSExJR0hUOworICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRsaWdodHNoYWRv
dzogcmV0dXJuIENPTE9SXzNETElHSFQ7CisgICAgY2FzZSBDU1NWYWx1ZVRocmVlZHNoYWRvdzog
cmV0dXJuIENPTE9SXzNEU0hBRE9XOworICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3c6IHJldHVybiBD
T0xPUl9XSU5ET1c7CisgICAgY2FzZSBDU1NWYWx1ZVdpbmRvd2ZyYW1lOiByZXR1cm4gQ09MT1Jf
V0lORE9XRlJBTUU7CisgICAgY2FzZSBDU1NWYWx1ZVdpbmRvd3RleHQ6IHJldHVybiBDT0xPUl9X
SU5ET1dURVhUOworICAgIGRlZmF1bHQ6IHJldHVybiBDU1NWYWx1ZUludmFsaWQ7IC8vIFVuc3Vw
cG9ydGVkIENTU1ZhbHVlCiAgICAgfQogfQogCi1Db2xvciBSZW5kZXJUaGVtZVdpbjo6c3lzdGVt
Q29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZVdpbjo6c3lzdGVt
Q29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkKSBjb25zdAogewotICAgIGludCBzeXNDb2xvcklu
ZGV4ID0gY3NzVmFsdWVJZFRvU3lzQ29sb3JJbmRleChjc3NWYWx1ZUlkKTsKLSAgICBpZiAoc3lz
Q29sb3JJbmRleCA9PSAtMSkKKyAgICBDU1NWYWx1ZUlEIHN5c0NvbG9ySW5kZXggPSBjc3NWYWx1
ZUlkVG9TeXNDb2xvckluZGV4KGNzc1ZhbHVlSWQpOworICAgIGlmIChzeXNDb2xvckluZGV4ID09
IENTU1ZhbHVlSW52YWxpZCkKICAgICAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzeXN0ZW1Db2xv
cihjc3NWYWx1ZUlkKTsKIAogICAgIENPTE9SUkVGIGNvbG9yID0gR2V0U3lzQ29sb3Ioc3lzQ29s
b3JJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oCmluZGV4
IDg1YmU4ZjBmMzhiZjIxZThlYTczOWIwZTdmODBlZjM3NGIyZWM1ZDAuLjk1MTQ1NTRmYzE2YTJm
MjAxYzY4ZTdmZDI4OGExNmVkYjkwMWExZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZVdpbi5oCkBAIC02Myw4ICs2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKIAog
ICAgIC8vIFN5c3RlbSBmb250cy4KLSAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQgcHJv
cElkLCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNv
bG9yKGludCBjc3NWYWx1ZUlkKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChD
U1NWYWx1ZUlELCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHN5
c3RlbUNvbG9yKENTU1ZhbHVlSUQpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHBhaW50Q2hl
Y2tib3goUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IEludFJlY3Qm
IHIpCiAgICAgeyByZXR1cm4gcGFpbnRCdXR0b24obywgaSwgcik7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmNwcAppbmRleCAwNTViZTBjOTRkNGYyOGQ3
MDBmNGYzNmE0MmQ4YjE4OGYxOThiZTMyLi45MDZlNmZjODc5MzY4ZThiYTNiOTdlMmYxYTA3N2Q1
ZmRjY2M3YmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2lu
Q0UuY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAgYm9vbCBSZW5kZXJUaGVtZVdpbkNFOjpwYWludE1l
bnVMaXN0QnV0dG9uKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLAogICAgIHJl
dHVybiB0cnVlOwogfQogCi12b2lkIFJlbmRlclRoZW1lV2luQ0U6OnN5c3RlbUZvbnQoaW50IHBy
b3BJZCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit2b2lkIFJlbmRl
clRoZW1lV2luQ0U6OnN5c3RlbUZvbnQoQ1NTVmFsdWVJRCwgRm9udERlc2NyaXB0aW9uJiBmb250
RGVzY3JpcHRpb24pIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTI4NCw3
ICsyODQsNyBAQCBib29sIFJlbmRlclRoZW1lV2luQ0U6OnN1cHBvcnRzSG92ZXIoY29uc3QgUmVu
ZGVyU3R5bGUqKSBjb25zdAogfQogCiAvLyBNYXAgYSBDU1NWYWx1ZSogc3lzdGVtIGNvbG9yIHRv
IGFuIGluZGV4IHVuZGVyc3Rvb2QgYnkgR2V0U3lzQ29sb3IKLXN0YXRpYyBpbnQgY3NzVmFsdWVJ
ZFRvU3lzQ29sb3JJbmRleChpbnQgY3NzVmFsdWVJZCkKK3N0YXRpYyBDU1NWYWx1ZUlEIGNzc1Zh
bHVlSWRUb1N5c0NvbG9ySW5kZXgoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkKQogewogICAgIHN3aXRj
aCAoY3NzVmFsdWVJZCkgewogICAgIGNhc2UgQ1NTVmFsdWVBY3RpdmVib3JkZXI6IHJldHVybiBD
T0xPUl9BQ1RJVkVCT1JERVI7CkBAIC0zMTUsMTQgKzMxNSwxNCBAQCBzdGF0aWMgaW50IGNzc1Zh
bHVlSWRUb1N5c0NvbG9ySW5kZXgoaW50IGNzc1ZhbHVlSWQpCiAgICAgY2FzZSBDU1NWYWx1ZVdp
bmRvdzogcmV0dXJuIENPTE9SX1dJTkRPVzsKICAgICBjYXNlIENTU1ZhbHVlV2luZG93ZnJhbWU6
IHJldHVybiBDT0xPUl9XSU5ET1dGUkFNRTsKICAgICBjYXNlIENTU1ZhbHVlV2luZG93dGV4dDog
cmV0dXJuIENPTE9SX1dJTkRPV1RFWFQ7Ci0gICAgZGVmYXVsdDogcmV0dXJuIC0xOyAvLyBVbnN1
cHBvcnRlZCBDU1NWYWx1ZQorICAgIGRlZmF1bHQ6IHJldHVybiBDU1NWYWx1ZUludmFsaWQ7IC8v
IFVuc3VwcG9ydGVkIENTU1ZhbHVlCiAgICAgfQogfQogCi1Db2xvciBSZW5kZXJUaGVtZVdpbkNF
OjpzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lV2lu
Q0U6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCkgY29uc3QKIHsKLSAgICBpbnQg
c3lzQ29sb3JJbmRleCA9IGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgoY3NzVmFsdWVJZCk7Ci0g
ICAgaWYgKHN5c0NvbG9ySW5kZXggPT0gLTEpCisgICAgQ1NTVmFsdWVJRCBzeXNDb2xvckluZGV4
ID0gY3NzVmFsdWVJZFRvU3lzQ29sb3JJbmRleChjc3NWYWx1ZUlkKTsKKyAgICBpZiAoc3lzQ29s
b3JJbmRleCA9PSBDU1NWYWx1ZUludmFsaWQpCiAgICAgICAgIHJldHVybiBSZW5kZXJUaGVtZTo6
c3lzdGVtQ29sb3IoY3NzVmFsdWVJZCk7CiAKICAgICBDT0xPUlJFRiBjb2xvciA9IEdldFN5c0Nv
bG9yKHN5c0NvbG9ySW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lV2luQ0UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZVdpbkNFLmgKaW5kZXggYmRlODcyYzZjNzZmY2EwYjY3MWE5MzJiZWQwMjMwZDM3NzMxOTkyZi4u
YzFhYjdiZTgyMjdmOGVkMDVmZjIxYmIxMzhlOWZmNzNkNWQ0ZTJiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luQ0UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5oCkBAIC02Miw4ICs2Miw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3Q7CiAKICAgICAgICAgLy8gU3lzdGVtIGZvbnRz
LgotICAgICAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250RGVzY3Jp
cHRpb24mKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBDb2xvciBzeXN0ZW1Db2xvcihpbnQgY3Nz
VmFsdWVJZCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzeXN0ZW1Gb250KENTU1ZhbHVl
SUQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIENvbG9yIHN5c3Rl
bUNvbG9yKENTU1ZhbHVlSUQpIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludENo
ZWNrYm94KFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0
JiByKQogICAgICAgICB7IHJldHVybiBwYWludEJ1dHRvbihvLCBpLCByKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205102</attachid>
            <date>2013-06-20 10:15:04 -0700</date>
            <delta_ts>2013-06-20 11:05:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-117829-20130620141309.patch</filename>
            <type>text/plain</type>
            <size>328388</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxNzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFkMmRlYjA4ZDFkMDIz
MGYyNWVjZGZkZDA4NTg5N2QyYTU1NzAwNy4uMGUzZDNiYjUyZGNmNTExNjY4MWFjN2QzOTk4ZTlm
ODdmNjY3YTJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwNCBAQAorMjAxMy0wNi0yMCAgQWxl
eGlzIE1lbmFyZCAgPGFsZXhpc0B3ZWJraXQub3JnPgorCisgICAgICAgIENsZWFudXAgdXNhZ2Ug
b2YgQ1NTUHJvcGVydHlJRCBhbmQgQ1NTVmFsdWVJRCBpbnNpZGUgV2ViS2l0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3ODI5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KKworICAgICAgICBBIGxvdCBvZiBjYWxsIHNpdGVz
IHdlcmUgdXNpbmcgaW50ZWdlcnMgdG8gcmVwcmVzZW50IHRoZW0uIFdoaWxlIGl0J3MKKyAgICAg
ICAgbm90IGluY29ycmVjdCBwZXIgc2UsIGl0J3Mgbm90IGlkZWFsIGZvciB2YXJpb3VzIHJlYXNv
biBzdWNoIGFzIHR5cGUKKyAgICAgICAgc2FmZXR5IG9yIHRvIHJlbW92ZSBhbWJpZ3VpdHkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBlcmFkaWNhdGUgdGhlIHdyb25nIHVzYWdlIGJ5IG5vdCBsZXR0
aW5nIGFueSBpbnRlZ2VyIGJhc2VkCisgICAgICAgIEFQSSBmb3IgZ2V0dGluZyBDU1NWYWx1ZUlE
cyBvciBDU1NQcm9wZXJ0eUlEcyBmcm9tIENTU1ByaW1pdGl2ZVZhbHVlcy4KKworICAgICAgICBJ
bnN0ZWFkIHdlIHVzZSBuZXcgYnV0IHR5cGVkIGZ1bmN0aW9ucyB0byBjb25zdHJ1Y3QgdGhlIHZh
bHVlcyBhcyB3ZWxsCisgICAgICAgIGFzIGdldHRpbmcgdGhlbS4gVHdvIGN1c3RvbXMgYW5kIGlu
dGVybmFsIHR5cGVzIHdlcmUgYWRkZWQgdG8gQ1NTUHJpbWl0aXZlVmFsdWUKKyAgICAgICAgdG8g
aGFuZGxlIGNvcnJlY3RseSB0aGUgbmV3IEFQSXMuCisKKyAgICAgICAgSXQncyBnb29kIHRvIG5v
dGUgdGhhdCBpbiBvcmRlciB0byBwcmVzZXJ2ZSBjb21wYXRpYmlsaXR5IG9uIHRoZQorICAgICAg
ICBDU1NQcmltaXRpdmVWYWx1ZSB0eXBlIHdoZW5ldmVyIENTU1ByaW1pdGl2ZVZhbHVlIGhhbmRs
ZXMgYSBDU1NWYWx1ZUlECisgICAgICAgIG9yIGEgQ1NTUHJvcGVydHlJRCB0aGUgcmV0dXJuIHR5
cGUgZm9yIHRoZSBwdWJsaWMgQVBJIHdpbGwgYmUgQ1NTX0lERU5UCisgICAgICAgIGRlc3BpdGUg
aXQgaXMgYSBzZXBhcmF0ZSBpbnRlcm5hbCB0eXBlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czog
cmVmYWN0b3IsIGV4aXN0aW5nIHRlc3RzIHNob3VsZCBjb3Zlci4KKworICAgICAgICAqIGNzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0
ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlNYXRjaGVzKToKKyAgICAgICAgKiBjc3MvQ1NTRm9u
dFNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9u
dEZhY2VSdWxlKToKKyAgICAgICAgKiBjc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpwb3NpdGlvbkZyb21WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NMaW5l
YXJHcmFkaWVudFZhbHVlOjpjdXN0b21Dc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xp
bmVhckdyYWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1JhZGlhbEdyYWRpZW50VmFsdWU6OmN1c3RvbUNzc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAqIGNzcy9D
U1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVN5c3RlbUNv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmlzRmlsbFBvc2l0aW9uS2V5d29yZCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlNFZhbHVlc0ZpbGxQb3NpdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlM1ZhbHVlc0ZpbGxQb3NpdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlRmlsbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUmVwZWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6cGFyc2VSYWRpYWxHcmFkaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6
OmlzQmxlbmRNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6aXNDb21wb3NpdGVP
cGVyYXRvcik6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NQ
YXJzZXJWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyVmFsdWU6OmNyZWF0
ZUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aXNWYWxpZENTU1VuaXRUeXBlRm9yRG91YmxlQ29udmVyc2lvbik6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6cHJpbWl0aXZlVHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpwcm9wZXJ0eU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVOYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y2xlYW51cCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0U3RyaW5nVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmN1c3RvbUNzc1RleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNsb25lRm9yQ1NTT00pOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmVxdWFscyk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNGb250UmVs
YXRpdmVMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmlzVmFs
dWVJRCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRp
Zmllcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlUGFyc2Vy
T3BlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmdldFByb3Bl
cnR5SUQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmdldFZhbHVlSUQp
OgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENTU1JlZmxlY3Rpb25EaXJlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVt
blNwYW4pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFBy
aW50Q29sb3JBZGp1c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIEVCb3JkZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgT3V0bGluZUlzQXV0byk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgQ29tcG9zaXRlT3BlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbnRyb2xQYXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQmFja2ZhY2VWaXNpYmlsaXR5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmlsbEF0dGFjaG1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGaWxs
Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmls
bFJlcGVhdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
RUJveFBhY2spOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVCb3hBbGlnbm1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIEVCb3hEZWNvcmF0aW9uQnJlYWspOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEJhY2tncm91bmRFZGdlT3JpZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94U2l6aW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94RGlyZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94TGluZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hPcmllbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDYXB0aW9uU2lk
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ3Vyc29y
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDdXJzb3JW
aXNpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRUVtcHR5Q2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRUFsaWduSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVKdXN0aWZ5Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRUZsZXhEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVBbGlnbkNvbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGbGV4V3JhcCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZsb2F0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQnJlYWspOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVMaXN0U3R5bGVQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUxpc3RTdHlsZVR5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVNYXJn
aW5Db2xsYXBzZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRU1hcnF1ZWVCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgUmVnaW9uRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEVNYXJxdWVlRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTkJTUE1vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVPdmVyZmxvdyk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVBhZ2VCcmVhayk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUmVzaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVGFibGVMYXlvdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0QWxpZ24pOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRBbGlnbkxh
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRK
dXN0aWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBU
ZXh0RGVjb3JhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgVGV4dERlY29yYXRpb25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFVuZGVybGluZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVGV4dFNlY3VyaXR5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVGV4dFRyYW5zZm9ybSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVuaWNvZGVCaWRp
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVXNlckRy
YWcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2Vy
TW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBF
VXNlclNlbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRVZlcnRpY2FsQWxpZ24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVWaXNpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBFV2hpdGVTcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRVdvcmRCcmVhayk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU92ZXJmbG93V3JhcCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERpcmVjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV3JpdGluZ01vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRDb21iaW5lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBSdWJ5UG9zaXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRFbXBoYXNp
c1Bvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBUZXh0T3ZlcmZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFRleHRFbXBoYXNpc0ZpbGwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIFRleHRFbXBoYXNpc01hcmspOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVBvaW50ZXJFdmVudHMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnREZXNjcmlwdGlvbjo6
S2VybmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
Rm9udFNtb290aGluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEZvbnRXZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIEZvbnRJdGFsaWMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEZvbnRTbWFsbENhcHMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRSZW5kZXJpbmdNb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2xvclNwYWNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBIeXBoZW5zKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lU25hcCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUFsaWduKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcmRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVNwZWFrKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCbGVuZE1vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVDYXApOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVKb2luKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXaW5kUnVsZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWdubWVudEJhc2VsaW5l
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm9yZGVy
Q29sbGFwc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVCb3JkZXJGaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVJbWFnZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRVRyYW5zZm9ybVN0eWxlM0QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtbkF4aXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtblByb2dyZXNzaW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcmFwRmxvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV3JhcFRocm91Z2gpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEdyaWRBdXRvRmxvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y29udmVydFRvTGVuZ3RoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQnVmZmVyZWRSZW5k
ZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVD
b2xvckludGVycG9sYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVDb2xvclJlbmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRURvbWluYW50QmFzZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVTaGFwZVJlbmRlcmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRBbmNob3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNWR1dyaXRpbmdNb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVmVjdG9yRWZm
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTWFz
a1R5cGUpOgorICAgICAgICAqIGNzcy9DU1NUb1N0eWxlTWFwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1RvU3R5bGVNYXA6Om1hcEZpbGxBdHRhY2htZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1RvU3R5bGVNYXA6Om1hcEZpbGxTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvU3R5
bGVNYXA6Om1hcEFuaW1hdGlvbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb1N0
eWxlTWFwOjptYXBBbmltYXRpb25GaWxsTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb1N0
eWxlTWFwOjptYXBBbmltYXRpb25JdGVyYXRpb25Db3VudCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25OYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Rv
U3R5bGVNYXA6Om1hcEFuaW1hdGlvblBsYXlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NU
b1N0eWxlTWFwOjptYXBBbmltYXRpb25Qcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NU
b1N0eWxlTWFwOjptYXBBbmltYXRpb25UaW1pbmdGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NUb1N0eWxlTWFwOjptYXBOaW5lUGllY2VJbWFnZVF1YWQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTVG9TdHlsZU1hcDo6bWFwTmluZVBpZWNlSW1hZ2VSZXBlYXQpOgorICAgICAgICAqIGNz
cy9Db3VudGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDb3VudGVyOjpsaXN0U3R5bGVJZGVudCk6
CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbHlQcm9wZXJ0eU51bWJlcjo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBseVByb3BlcnR5QXV0bzo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
eVByb3BlcnR5Q2xpcDo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3Bl
cnR5Q29sb3I6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUxl
bmd0aDo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5U3RyaW5n
OjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlDb21wdXRlTGVu
Z3RoOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlGb250RmFt
aWx5OjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlGb250U2l6
ZTo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Rm9udFdlaWdo
dDo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Rm9udFZhcmlh
bnRMaWdhdHVyZXM6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eUNvdW50ZXI6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUN1
cnNvcjo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEFs
aWduOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlNYXJxdWVl
SW5jcmVtZW50OjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlN
YXJxdWVlUmVwZXRpdGlvbjo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVBy
b3BlcnR5TWFycXVlZVNwZWVkOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5
UHJvcGVydHlMaW5lSGVpZ2h0OjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5
UHJvcGVydHlQYWdlU2l6ZTo6Z2V0UGFnZVNpemVGcm9tTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBseVByb3BlcnR5UGFnZVNpemU6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbHlQcm9wZXJ0eVRleHRFbXBoYXNpc1N0eWxlOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGx5UHJvcGVydHlSZXNpemU6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbHlQcm9wZXJ0eVZlcnRpY2FsQWxpZ246OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbHlQcm9wZXJ0eVpvb206OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbHlQcm9wZXJ0eUNsaXBQYXRoOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGx5UHJvcGVydHlTaGFwZTo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVBy
b3BlcnR5SW1hZ2VSZXNvbHV0aW9uOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGx5UHJvcGVydHlUZXh0SW5kZW50OjphcHBseVZhbHVlKToKKyAgICAgICAgKiBjc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcmllbnRhdGlvbk1lZGlhRmVh
dHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6dmlld19tb2RlTWVkaWFGZWF0dXJlRXZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpwb2ludGVyTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgICog
Y3NzL1NWR0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNl
U1ZHVmFsdWUpOgorICAgICAgICAqIGNzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFwcGx5U1ZHUHJvcGVydHkpOgorICAgICAgICAq
IGNzcy9TdHlsZVByb3BlcnR5U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVy
dHlTZXQ6OmdldExheWVyZWRTaG9ydGhhbmRWYWx1ZSk6CisgICAgICAgICogY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR3JpZFRyYWNrQnJlYWR0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVHcmlkVHJhY2tMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUdyaWRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjph
cHBseVByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbG9yRm9yQ1NTVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sb3JGcm9tUHJpbWl0aXZlVmFsdWVJc0Rl
cml2ZWRGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xv
ckZyb21QcmltaXRpdmVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpj
cmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb25XaXRoSW5saW5lU3ludGF4KToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNyZWF0ZUZpbHRlck9wZXJhdGlvbnMpOgorICAgICAgICAq
IGNzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Vmlld3Bv
cnRTdHlsZVJlc29sdmVyOjpnZXRWaWV3cG9ydEFyZ3VtZW50VmFsdWUpOgorICAgICAgICAqIGNz
cy9XZWJLaXRDU1NNYXRyaXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTTWF0cml4
OjpzZXRNYXRyaXhWYWx1ZSk6CisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b0lkZW50aWZpZXIpOgorICAgICAgICAqIGVkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlkZW50aWZpZXJGb3JTdHlsZVBy
b3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50RXF1aXZhbGVudDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50RXF1aXZhbGVudDo6SFRNTEVsZW1lbnRF
cXVpdmFsZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50RXF1aXZhbGVudDo6dmFs
dWVJc1ByZXNlbnRJblN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0RGVjb3JhdGlv
bkVxdWl2YWxlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dERlY29yYXRp
b25FcXVpdmFsZW50OjpIVE1MVGV4dERlY29yYXRpb25FcXVpdmFsZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRpbmdTdHlsZTo6dGV4dERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0aW5nU3R5bGU6OnByZXBhcmVUb0FwcGx5QXQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGlu
Z1N0eWxlOjp0ZXh0RGlyZWN0aW9uRm9yU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmZv
bnRXZWlnaHRJc0JvbGQpOgorICAgICAgICAoV2ViQ29yZTo6bGVnYWN5Rm9udFNpemVGcm9tQ1NT
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6aXNUcmFuc3BhcmVudENvbG9yVmFsdWUpOgorICAg
ICAgICAqIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmg6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJvcGVydHlNaXNzaW5nT3JFcXVhbFRvTm9uZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vYmxhY2tiZXJyeS9SZW5kZXJUaGVtZUJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVCbGFja0JlcnJ5OjpzeXN0ZW1Gb250KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1JlbmRlclRoZW1lQmxhY2tCZXJyeS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVCbGFja0JlcnJ5OjpzeXN0ZW1Gb250KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1JlbmRlclRoZW1lRWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lRWZsOjpzeXN0ZW1Gb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9i
bGFja2JlcnJ5L1JlbmRlclRoZW1lRWZsLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUVmbDo6c3lzdGVtRm9udCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3Rr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpzeXN0ZW1Gb250KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
R3RrOjpzeXN0ZW1Db2xvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3Rr
My5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6c3lzdGVtQ29sb3IpOgor
ICAgICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVRdDo6c3lzdGVtRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZVF0OjpzeXN0ZW1Db2xvcik6CisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVR
dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUaGVtZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lTWFjOjpzeXN0ZW1Gb250KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFj
OjpzeXN0ZW1Db2xvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmg6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVNhZmFyaTo6c3lzdGVtRm9udCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lU2FmYXJpOjpzeXN0ZW1Gb250KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVXaW46OnN5c3Rl
bUZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y3NzVmFsdWVJZFRvU3lzQ29sb3JJbmRleCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbjo6c3lzdGVtQ29sb3IpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZVdpbkNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV2luQ0U6OnN5c3Rl
bUZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y3NzVmFsdWVJZFRvU3lzQ29sb3JJbmRleCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbkNFOjpzeXN0ZW1Db2xvcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luQ0UuaDoKKwogMjAxMy0wNi0yMCAgR3J6ZWdvcnog
Q3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yIGFuZCB0ZXh0LWRlY29yYXRpb24gYXJlIG5vdCBwcmVzZXJ2ZWQgd2hlbiBtZXJn
aW5nIHBhcmFncmFwaHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggYjJlZDI4MjFhYTdmNDM1OWFiNzc2ZDAzYTlkZTRkMDVk
ZjAyMTc5Mi4uM2U5MzkwYTNjYTU0YTJhYjE0MjUxMTNjMGE4YWZiNWUyZDlmY2FmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
QEAgLTI5NjksOSArMjk2OSw5IEBAIGJvb2wgQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVy
dHlNYXRjaGVzKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY29uc3QgQ1NTCiAgICAgICAgIG1f
bm9kZS0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
CiAgICAgICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG1fbm9kZS0+Y29tcHV0ZWRTdHlsZShtX3Bz
ZXVkb0VsZW1lbnRTcGVjaWZpZXIpOwogICAgICAgICBpZiAoc3R5bGUgJiYgc3R5bGUtPmZvbnRE
ZXNjcmlwdGlvbigpLmtleXdvcmRTaXplKCkpIHsKLSAgICAgICAgICAgIGludCBzaXplVmFsdWUg
PSBjc3NJZGVudGlmaWVyRm9yRm9udFNpemVLZXl3b3JkKHN0eWxlLT5mb250RGVzY3JpcHRpb24o
KS5rZXl3b3JkU2l6ZSgpKTsKKyAgICAgICAgICAgIENTU1ZhbHVlSUQgc2l6ZVZhbHVlID0gY3Nz
SWRlbnRpZmllckZvckZvbnRTaXplS2V5d29yZChzdHlsZS0+Zm9udERlc2NyaXB0aW9uKCkua2V5
d29yZFNpemUoKSk7CiAgICAgICAgICAgICBjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0
aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsK
LSAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNJZGVudCgpICYmIHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpID09IHNpemVWYWx1ZSkKKyAgICAgICAgICAgIGlmIChwcmltaXRpdmVW
YWx1ZS0+aXNWYWx1ZUlEKCkgJiYgcHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBzaXpl
VmFsdWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCmluZGV4IGIwNDAyZjIwZDk2Yzg3NTUy
OGFmYmIxM2Y3YzI1M2JmMjMyMTVhMjEuLjM1MWQ0NDMyMjIxNDFlYjlmZDk3MmUzYmEyMzAxNDYz
YzQ0MmFkNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCkBAIC0xMTUs
NyArMTE1LDcgQEAgdm9pZCBDU1NGb250U2VsZWN0b3I6OmFkZEZvbnRGYWNlUnVsZShjb25zdCBT
dHlsZVJ1bGVGb250RmFjZSogZm9udEZhY2VSdWxlKQogICAgICAgICBpZiAoIWZvbnRTdHlsZS0+
aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHN3aXRj
aCAoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihmb250U3R5bGUuZ2V0KCkpLT5nZXRJ
ZGVudCgpKSB7CisgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUq
Pihmb250U3R5bGUuZ2V0KCkpLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAgICAgY2FzZSBDU1NWYWx1
ZU5vcm1hbDoKICAgICAgICAgICAgIHRyYWl0c01hc2sgfD0gRm9udFN0eWxlTm9ybWFsTWFzazsK
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTMzLDcgKzEzMyw3IEBAIHZvaWQgQ1NTRm9udFNlbGVj
dG9yOjphZGRGb250RmFjZVJ1bGUoY29uc3QgU3R5bGVSdWxlRm9udEZhY2UqIGZvbnRGYWNlUnVs
ZSkKICAgICAgICAgaWYgKCFmb250V2VpZ2h0LT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZSo+KGZvbnRXZWlnaHQuZ2V0KCkpLT5nZXRJZGVudCgpKSB7CisgICAgICAgIHN3aXRjaCAo
c3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihmb250V2VpZ2h0LmdldCgpKS0+Z2V0VmFs
dWVJRCgpKSB7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVCb2xkOgogICAgICAgICBjYXNlIENTU1Zh
bHVlNzAwOgogICAgICAgICAgICAgdHJhaXRzTWFzayB8PSBGb250V2VpZ2h0NzAwTWFzazsKQEAg
LTE4NCw3ICsxODQsNyBAQCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNv
bnN0IFN0eWxlUnVsZUZvbnRGYWNlKiBmb250RmFjZVJ1bGUpCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bVZhcmlhbnRzOyArK2kpIHsK
LSAgICAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YXJp
YW50TGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKSktPmdldElkZW50KCkpIHsKKyAgICAg
ICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YXJpYW50TGlz
dC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKSktPmdldFZhbHVlSUQoKSkgewogICAgICAgICAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgICAgICAgICAgICAgIHRyYWl0c01h
c2sgfD0gRm9udFZhcmlhbnROb3JtYWxNYXNrOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
QEAgLTI2NiwxMiArMjY2LDEyIEBAIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1
bGUoY29uc3QgU3R5bGVSdWxlRm9udEZhY2UqIGZvbnRGYWNlUnVsZSkKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IGZhbWlseUxlbmd0aDsgaSsrKSB7CiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVl
KiBpdGVtID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihmYW1pbHlMaXN0LT5pdGVt
V2l0aG91dEJvdW5kc0NoZWNrKGkpKTsKICAgICAgICAgU3RyaW5nIGZhbWlseU5hbWU7Ci0gICAg
ICAgIGlmIChpdGVtLT5pc1N0cmluZygpKQorICAgICAgICBpZiAoaXRlbS0+aXNTdHJpbmcoKSkg
ewogICAgICAgICAgICAgZmFtaWx5TmFtZSA9IGl0ZW0tPmdldFN0cmluZ1ZhbHVlKCk7Ci0gICAg
ICAgIGVsc2UgaWYgKGl0ZW0tPmlzSWRlbnQoKSkgeworICAgICAgICB9IGVsc2UgaWYgKGl0ZW0t
PmlzVmFsdWVJRCgpKSB7CiAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHVzZSB0aGUgcmF3IHRl
eHQgZm9yIGFsbCB0aGUgZ2VuZXJpYyBmYW1pbHkgdHlwZXMsIHNpbmNlIEBmb250LWZhY2UgaXMg
YSB3YXkgb2YgYWN0dWFsbHkKICAgICAgICAgICAgIC8vIGRlZmluaW5nIHdoYXQgZm9udCB0byB1
c2UgZm9yIHRob3NlIHR5cGVzLgotICAgICAgICAgICAgc3dpdGNoIChpdGVtLT5nZXRJZGVudCgp
KSB7CisgICAgICAgICAgICBzd2l0Y2ggKGl0ZW0tPmdldFZhbHVlSUQoKSkgewogICAgICAgICAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVTZXJpZjoKICAgICAgICAgICAgICAgICAgICAgZmFtaWx5TmFt
ZSA9IHNlcmlmRmFtaWx5OwogICAgICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRleCA2NjA4MzdmNWZiODAxZjMxZTkxZWZiMGNk
M2Y0MTJiZTVhODJkNzI0Li41MDA1OThiZDk2NTQ2ZTMyNzkwZTY5NjRmNjAzNGUwODcyZTQxYzE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCkBAIC00MDgsNyArNDA4
LDcgQEAgc3RhdGljIGZsb2F0IHBvc2l0aW9uRnJvbVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlKiB2
YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBSZW4KICAgICBpZiAodmFsdWUtPmlzQ2FsY3VsYXRl
ZFBlcmNlbnRhZ2VXaXRoTGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiB2YWx1ZS0+Y3NzQ2FsY1Zh
bHVlKCktPnRvQ2FsY1ZhbHVlKHN0eWxlLCByb290U3R5bGUsIHN0eWxlLT5lZmZlY3RpdmVab29t
KCkpLT5ldmFsdWF0ZShlZGdlRGlzdGFuY2UpOwogCi0gICAgc3dpdGNoICh2YWx1ZS0+Z2V0SWRl
bnQoKSkgeworICAgIHN3aXRjaCAodmFsdWUtPmdldFZhbHVlSUQoKSkgewogICAgIGNhc2UgQ1NT
VmFsdWVUb3A6CiAgICAgICAgIEFTU0VSVCghaXNIb3Jpem9udGFsKTsKICAgICAgICAgcmV0dXJu
IDA7CkBAIC00MjEsNiArNDIxLDggQEAgc3RhdGljIGZsb2F0IHBvc2l0aW9uRnJvbVZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBSZW4KICAgICBjYXNl
IENTU1ZhbHVlUmlnaHQ6CiAgICAgICAgIEFTU0VSVChpc0hvcml6b250YWwpOwogICAgICAgICBy
ZXR1cm4gc2l6ZS53aWR0aCgpOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0K
IAogICAgIHJldHVybiB2YWx1ZS0+Y29tcHV0ZUxlbmd0aDxmbG9hdD4oc3R5bGUsIHJvb3RTdHls
ZSwgem9vbUZhY3Rvcik7CkBAIC01NDAsNyArNTQyLDcgQEAgU3RyaW5nIENTU0xpbmVhckdyYWRp
ZW50VmFsdWU6OmN1c3RvbUNzc1RleHQoKSBjb25zdAogICAgICAgICBpZiAobV9hbmdsZSAmJiBt
X2FuZ2xlLT5jb21wdXRlRGVncmVlcygpICE9IDE4MCkgewogICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZChtX2FuZ2xlLT5jc3NUZXh0KCkpOwogICAgICAgICAgICAgd3JvdGVTb21ldGhpbmcgPSB0
cnVlOwotICAgICAgICB9IGVsc2UgaWYgKChtX2ZpcnN0WCB8fCBtX2ZpcnN0WSkgJiYgISghbV9m
aXJzdFggJiYgbV9maXJzdFkgJiYgbV9maXJzdFktPmdldElkZW50KCkgPT0gQ1NTVmFsdWVCb3R0
b20pKSB7CisgICAgICAgIH0gZWxzZSBpZiAoKG1fZmlyc3RYIHx8IG1fZmlyc3RZKSAmJiAhKCFt
X2ZpcnN0WCAmJiBtX2ZpcnN0WSAmJiBtX2ZpcnN0WS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVl
Qm90dG9tKSkgewogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoInRvICIpOwogICAg
ICAgICAgICAgaWYgKG1fZmlyc3RYICYmIG1fZmlyc3RZKSB7CiAgICAgICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZChtX2ZpcnN0WC0+Y3NzVGV4dCgpKTsKQEAgLTY3Nyw5ICs2NzksOSBAQCBQYXNz
UmVmUHRyPEdyYWRpZW50PiBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpjcmVhdGVHcmFkaWVudChS
ZW5kZXJPYmplY3QqIHJlbmRlcgogICAgICAgICAgICAgICAgIC8vICJNYWdpYyIgY29ybmVycywg
c28gdGhlIDUwJSBsaW5lIHRvdWNoZXMgdHdvIGNvcm5lcnMuCiAgICAgICAgICAgICAgICAgZmxv
YXQgcmlzZSA9IHNpemUud2lkdGgoKTsKICAgICAgICAgICAgICAgICBmbG9hdCBydW4gPSBzaXpl
LmhlaWdodCgpOwotICAgICAgICAgICAgICAgIGlmIChtX2ZpcnN0WCAmJiBtX2ZpcnN0WC0+Z2V0
SWRlbnQoKSA9PSBDU1NWYWx1ZUxlZnQpCisgICAgICAgICAgICAgICAgaWYgKG1fZmlyc3RYICYm
IG1fZmlyc3RYLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVMZWZ0KQogICAgICAgICAgICAgICAg
ICAgICBydW4gKj0gLTE7Ci0gICAgICAgICAgICAgICAgaWYgKG1fZmlyc3RZICYmIG1fZmlyc3RZ
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlQm90dG9tKQorICAgICAgICAgICAgICAgIGlmIChtX2Zp
cnN0WSAmJiBtX2ZpcnN0WS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQm90dG9tKQogICAgICAg
ICAgICAgICAgICAgICByaXNlICo9IC0xOwogICAgICAgICAgICAgICAgIC8vIENvbXB1dGUgYW5n
bGUsIGFuZCBmbGlwIGl0IGJhY2sgdG8gImJlYXJpbmcgYW5nbGUiIGRlZ3JlZXMuCiAgICAgICAg
ICAgICAgICAgZmxvYXQgYW5nbGUgPSA5MCAtIHJhZDJkZWcoYXRhbjIocmlzZSwgcnVuKSk7CkBA
IC04MzMsMTIgKzgzNSwxMiBAQCBTdHJpbmcgQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3VzdG9t
Q3NzVGV4dCgpIGNvbnN0CiAKICAgICAgICAgLy8gVGhlIG9ubHkgYW1iaWd1b3VzIGNhc2UgdGhh
dCBuZWVkcyBhbiBleHBsaWNpdCBzaGFwZSB0byBiZSBwcm92aWRlZAogICAgICAgICAvLyBpcyB3
aGVuIGEgc2l6aW5nIGtleXdvcmQgaXMgdXNlZCAob3IgYWxsIHNpemluZyBpcyBvbWl0dGVkKS4K
LSAgICAgICAgaWYgKG1fc2hhcGUgJiYgbV9zaGFwZS0+Z2V0SWRlbnQoKSAhPSBDU1NWYWx1ZUVs
bGlwc2UgJiYgKG1fc2l6aW5nQmVoYXZpb3IgfHwgKCFtX3NpemluZ0JlaGF2aW9yICYmICFtX2Vu
ZEhvcml6b250YWxTaXplKSkpIHsKKyAgICAgICAgaWYgKG1fc2hhcGUgJiYgbV9zaGFwZS0+Z2V0
VmFsdWVJRCgpICE9IENTU1ZhbHVlRWxsaXBzZSAmJiAobV9zaXppbmdCZWhhdmlvciB8fCAoIW1f
c2l6aW5nQmVoYXZpb3IgJiYgIW1fZW5kSG9yaXpvbnRhbFNpemUpKSkgewogICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZExpdGVyYWwoImNpcmNsZSIpOwogICAgICAgICAgICAgd3JvdGVTb21ldGhp
bmcgPSB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fc2l6aW5nQmVoYXZpb3IgJiYg
bV9zaXppbmdCZWhhdmlvci0+Z2V0SWRlbnQoKSAhPSBDU1NWYWx1ZUZhcnRoZXN0Q29ybmVyKSB7
CisgICAgICAgIGlmIChtX3NpemluZ0JlaGF2aW9yICYmIG1fc2l6aW5nQmVoYXZpb3ItPmdldFZh
bHVlSUQoKSAhPSBDU1NWYWx1ZUZhcnRoZXN0Q29ybmVyKSB7CiAgICAgICAgICAgICBpZiAod3Jv
dGVTb21ldGhpbmcpCiAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZChtX3NpemluZ0JlaGF2aW9yLT5jc3NUZXh0KCkpOwpAQCAtMTAx
OCwxNCArMTAyMCwxNCBAQCBQYXNzUmVmUHRyPEdyYWRpZW50PiBDU1NSYWRpYWxHcmFkaWVudFZh
bHVlOjpjcmVhdGVHcmFkaWVudChSZW5kZXJPYmplY3QqIHJlbmRlcgogICAgIH0gZWxzZSB7CiAg
ICAgICAgIGVudW0gR3JhZGllbnRTaGFwZSB7IENpcmNsZSwgRWxsaXBzZSB9OwogICAgICAgICBH
cmFkaWVudFNoYXBlIHNoYXBlID0gRWxsaXBzZTsKLSAgICAgICAgaWYgKChtX3NoYXBlICYmIG1f
c2hhcGUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVDaXJjbGUpCisgICAgICAgIGlmICgobV9zaGFw
ZSAmJiBtX3NoYXBlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVDaXJjbGUpCiAgICAgICAgICAg
ICB8fCAoIW1fc2hhcGUgJiYgIW1fc2l6aW5nQmVoYXZpb3IgJiYgbV9lbmRIb3Jpem9udGFsU2l6
ZSAmJiAhbV9lbmRWZXJ0aWNhbFNpemUpKQogICAgICAgICAgICAgc2hhcGUgPSBDaXJjbGU7CiAK
ICAgICAgICAgZW51bSBHcmFkaWVudEZpbGwgeyBDbG9zZXN0U2lkZSwgQ2xvc2VzdENvcm5lciwg
RmFydGhlc3RTaWRlLCBGYXJ0aGVzdENvcm5lciB9OwogICAgICAgICBHcmFkaWVudEZpbGwgZmls
bCA9IEZhcnRoZXN0Q29ybmVyOwogCi0gICAgICAgIHN3aXRjaCAobV9zaXppbmdCZWhhdmlvciA/
IG1fc2l6aW5nQmVoYXZpb3ItPmdldElkZW50KCkgOiAwKSB7CisgICAgICAgIHN3aXRjaCAobV9z
aXppbmdCZWhhdmlvciA/IG1fc2l6aW5nQmVoYXZpb3ItPmdldFZhbHVlSUQoKSA6IDApIHsKICAg
ICAgICAgY2FzZSBDU1NWYWx1ZUNvbnRhaW46CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVDbG9zZXN0
U2lkZToKICAgICAgICAgICAgIGZpbGwgPSBDbG9zZXN0U2lkZTsKQEAgLTEwNDAsNiArMTA0Miw4
IEBAIFBhc3NSZWZQdHI8R3JhZGllbnQ+IENTU1JhZGlhbEdyYWRpZW50VmFsdWU6OmNyZWF0ZUdy
YWRpZW50KFJlbmRlck9iamVjdCogcmVuZGVyCiAgICAgICAgIGNhc2UgQ1NTVmFsdWVGYXJ0aGVz
dENvcm5lcjoKICAgICAgICAgICAgIGZpbGwgPSBGYXJ0aGVzdENvcm5lcjsKICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
IAogICAgICAgICAvLyBOb3cgY29tcHV0ZSB0aGUgZW5kIHJhZGlpIGJhc2VkIG9uIHRoZSBzZWNv
bmQgcG9pbnQsIHNoYXBlIGFuZCBmaWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBm
Mzg2MTczNjYyOGU5MTRjODQwZTEzZWU0OWY4M2NmYjdmMzYxZjc4Li5jYTgyYzUxMWJlOTJlZDBl
YWJmOWFhNjJlOTBmMzhjYjE2YTZkMzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAt
MTQwMCw3ICsxNDAwLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IoUkdCQTMy
JiBjb2xvciwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIERvY3VtZW50KgogCiAgICAgQ1NTUGFyc2Vy
U3RyaW5nIGNzc0NvbG9yOwogICAgIGNzc0NvbG9yLmluaXQoc3RyaW5nKTsKLSAgICBpbnQgaWQg
PSBjc3NWYWx1ZUtleXdvcmRJRChjc3NDb2xvcik7CisgICAgQ1NTVmFsdWVJRCBpZCA9IGNzc1Zh
bHVlS2V5d29yZElEKGNzc0NvbG9yKTsKICAgICBpZiAoaWQgPD0gMCkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCkBAIC0zOTMzLDcgKzM5MzMsNyBAQCBzdGF0aWMgYm9vbCBpc1ZhbHVlQ29uZmxp
Y3RpbmdXaXRoQ3VycmVudEVkZ2UoaW50IHZhbHVlMSwgaW50IHZhbHVlMikKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIGlzRmlsbFBvc2l0aW9uS2V5d29yZChpbnQgdmFsdWUp
CitzdGF0aWMgYm9vbCBpc0ZpbGxQb3NpdGlvbktleXdvcmQoQ1NTVmFsdWVJRCB2YWx1ZSkKIHsK
ICAgICByZXR1cm4gdmFsdWUgPT0gQ1NTVmFsdWVMZWZ0IHx8IHZhbHVlID09IENTU1ZhbHVlVG9w
IHx8IHZhbHVlID09IENTU1ZhbHVlQm90dG9tIHx8IHZhbHVlID09IENTU1ZhbHVlUmlnaHQgfHwg
dmFsdWUgPT0gQ1NTVmFsdWVDZW50ZXI7CiB9CkBAIC0zOTQyLDcgKzM5NDIsNyBAQCB2b2lkIENT
U1BhcnNlcjo6cGFyc2U0VmFsdWVzRmlsbFBvc2l0aW9uKENTU1BhcnNlclZhbHVlTGlzdCogdmFs
dWVMaXN0LCBSZWZQdHI8QwogewogICAgIC8vIFsgbGVmdCB8IHJpZ2h0IF0gWyA8cGVyY2VudGFn
ZV0gfCA8bGVuZ3RoPiBdICYmIFsgdG9wIHwgYm90dG9tIF0gWyA8cGVyY2VudGFnZT4gfCA8bGVu
Z3RoPiBdCiAgICAgLy8gSW4gdGhlIGNhc2Ugb2YgNCB2YWx1ZXMgPHBvc2l0aW9uPiByZXF1aXJl
cyB0aGUgc2Vjb25kIHZhbHVlIHRvIGJlIGEgbGVuZ3RoIG9yIGEgcGVyY2VudGFnZS4KLSAgICBp
ZiAoaXNGaWxsUG9zaXRpb25LZXl3b3JkKHBhcnNlZFZhbHVlMi0+Z2V0SWRlbnQoKSkpCisgICAg
aWYgKGlzRmlsbFBvc2l0aW9uS2V5d29yZChwYXJzZWRWYWx1ZTItPmdldFZhbHVlSUQoKSkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIHVuc2lnbmVkIGN1bXVsYXRpdmVGbGFncyA9IDA7CkBAIC0z
OTUxLDggKzM5NTEsOCBAQCB2b2lkIENTU1BhcnNlcjo6cGFyc2U0VmFsdWVzRmlsbFBvc2l0aW9u
KENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0LCBSZWZQdHI8QwogICAgIGlmICghdmFsdWUz
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnQgaWRlbnQxID0gcGFyc2VkVmFsdWUxLT5nZXRJ
ZGVudCgpOwotICAgIGludCBpZGVudDMgPSB2YWx1ZTMtPmdldElkZW50KCk7CisgICAgQ1NTVmFs
dWVJRCBpZGVudDEgPSBwYXJzZWRWYWx1ZTEtPmdldFZhbHVlSUQoKTsKKyAgICBDU1NWYWx1ZUlE
IGlkZW50MyA9IHZhbHVlMy0+Z2V0VmFsdWVJRCgpOwogCiAgICAgaWYgKGlkZW50MSA9PSBDU1NW
YWx1ZUNlbnRlcikKICAgICAgICAgcmV0dXJuOwpAQCAtMzk3NSw3ICszOTc1LDcgQEAgdm9pZCBD
U1NQYXJzZXI6OnBhcnNlNFZhbHVlc0ZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QqIHZh
bHVlTGlzdCwgUmVmUHRyPEMKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gNHRoIHZhbHVlIG11
c3QgYmUgYSBsZW5ndGggb3IgYSBwZXJjZW50YWdlLgotICAgIGlmIChpc0ZpbGxQb3NpdGlvbktl
eXdvcmQodmFsdWU0LT5nZXRJZGVudCgpKSkKKyAgICBpZiAoaXNGaWxsUG9zaXRpb25LZXl3b3Jk
KHZhbHVlNC0+Z2V0VmFsdWVJRCgpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdmFsdWUxID0g
Y3JlYXRlUHJpbWl0aXZlVmFsdWVQYWlyKHBhcnNlZFZhbHVlMSwgcGFyc2VkVmFsdWUyKTsKQEAg
LTM5OTksOSArMzk5OSw5IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZTNWYWx1ZXNGaWxsUG9zaXRp
b24oQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0cjxDCiAgICAgdmFsdWVMaXN0
LT5uZXh0KCk7CiAKICAgICBib29sIHN3YXBOZWVkZWQgPSBmYWxzZTsKLSAgICBDU1NWYWx1ZUlE
IGlkZW50MSA9IHN0YXRpY19jYXN0PENTU1ZhbHVlSUQ+KHBhcnNlZFZhbHVlMS0+Z2V0SWRlbnQo
KSk7Ci0gICAgQ1NTVmFsdWVJRCBpZGVudDIgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUlEPihwYXJz
ZWRWYWx1ZTItPmdldElkZW50KCkpOwotICAgIENTU1ZhbHVlSUQgaWRlbnQzID0gc3RhdGljX2Nh
c3Q8Q1NTVmFsdWVJRD4odmFsdWUzLT5nZXRJZGVudCgpKTsKKyAgICBDU1NWYWx1ZUlEIGlkZW50
MSA9IHBhcnNlZFZhbHVlMS0+Z2V0VmFsdWVJRCgpOworICAgIENTU1ZhbHVlSUQgaWRlbnQyID0g
cGFyc2VkVmFsdWUyLT5nZXRWYWx1ZUlEKCk7CisgICAgQ1NTVmFsdWVJRCBpZGVudDMgPSB2YWx1
ZTMtPmdldFZhbHVlSUQoKTsKIAogICAgIENTU1ZhbHVlSUQgZmlyc3RQb3NpdGlvbktleXdvcmQ7
CiAgICAgQ1NTVmFsdWVJRCBzZWNvbmRQb3NpdGlvbktleXdvcmQ7CkBAIC00MDcwLDggKzQwNzAs
OCBAQCB2b2lkIENTU1BhcnNlcjo6cGFyc2UzVmFsdWVzRmlsbFBvc2l0aW9uKENTU1BhcnNlclZh
bHVlTGlzdCogdmFsdWVMaXN0LCBSZWZQdHI8QwogI2lmbmRlZiBOREVCVUcKICAgICBDU1NQcmlt
aXRpdmVWYWx1ZSogZmlyc3QgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVl
MS5nZXQoKSk7CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHNlY29uZCA9IHN0YXRpY19jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUyLmdldCgpKTsKLSAgICBpZGVudDEgPSBzdGF0aWNfY2Fz
dDxDU1NWYWx1ZUlEPihmaXJzdC0+Z2V0UGFpclZhbHVlKCktPmZpcnN0KCktPmdldElkZW50KCkp
OwotICAgIGlkZW50MiA9IHN0YXRpY19jYXN0PENTU1ZhbHVlSUQ+KHNlY29uZC0+Z2V0UGFpclZh
bHVlKCktPmZpcnN0KCktPmdldElkZW50KCkpOworICAgIGlkZW50MSA9IGZpcnN0LT5nZXRQYWly
VmFsdWUoKS0+Zmlyc3QoKS0+Z2V0VmFsdWVJRCgpOworICAgIGlkZW50MiA9IHNlY29uZC0+Z2V0
UGFpclZhbHVlKCktPmZpcnN0KCktPmdldFZhbHVlSUQoKTsKICAgICBBU1NFUlQoaWRlbnQxID09
IENTU1ZhbHVlTGVmdCB8fCBpZGVudDEgPT0gQ1NTVmFsdWVSaWdodCk7CiAgICAgQVNTRVJUKGlk
ZW50MiA9PSBDU1NWYWx1ZUJvdHRvbSB8fCBpZGVudDIgPT0gQ1NTVmFsdWVUb3ApOwogI2VuZGlm
CkBAIC00MTM2LDcgKzQxMzYsNyBAQCB2b2lkIENTU1BhcnNlcjo6cGFyc2VGaWxsUG9zaXRpb24o
Q1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3QsIFJlZlB0cjxDU1NWYWx1ZQogICAgIHZhbHVl
Mi5jbGVhcigpOwogCiAgICAgLy8gUGVyIENTUzMgc3ludGF4LCA8cG9zaXRpb24+IGNhbid0IGhh
dmUgJ2NlbnRlcicgYXMgaXRzIHNlY29uZCBrZXl3b3JkIGFzIHdlIGhhdmUgbW9yZSBhcmd1bWVu
dHMgdG8gZm9sbG93LgotICAgIGlmIChwYXJzZWRWYWx1ZTItPmdldElkZW50KCkgPT0gQ1NTVmFs
dWVDZW50ZXIpCisgICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVl
Q2VudGVyKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobnVtYmVyT2ZWYWx1ZXMgPT0gMykK
QEAgLTQyMjcsNyArNDIyNyw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZUZpbGxSZXBlYXQoUmVm
UHRyPENTU1ZhbHVlPiYgdmFsdWUxLCBSZWZQdHI8Q1NTVmFsdWU+JiB2YWx1CiAKICAgICAvLyBJ
ZiBvbmx5IG9uZSB2YWx1ZSB3YXMgc3BlY2lmaWVkLCB2YWx1ZTIgaXMgdGhlIHNhbWUgYXMgdmFs
dWUxLgogICAgIG1faW1wbGljaXRTaG9ydGhhbmQgPSB0cnVlOwotICAgIHZhbHVlMiA9IGNzc1Zh
bHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShzdGF0aWNfY2FzdDxDU1NWYWx1ZUlEPihz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlMS5nZXQoKSktPmdldElkZW50KCkp
KTsKKyAgICB2YWx1ZTIgPSBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZTEuZ2V0KCkpLT5nZXRWYWx1ZUlEKCkp
OwogfQogCiBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlRmlsbFNpemUoQ1NT
UHJvcGVydHlJRCBwcm9wSWQsIGJvb2wmIGFsbG93Q29tbWEpCkBAIC03Nzg2LDEwICs3Nzg2LDEw
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVJhZGlhbEdyYWRpZW50KENTU1BhcnNlclZhbHVlTGlz
dCogdmFsdWVMaXN0LCBSZWZQdHI8Q1NTVmFsCiAgICAgaWYgKHNpemVWYWx1ZSAmJiBob3Jpem9u
dGFsU2l6ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIC8vIENpcmNsZXMgbXVzdCBoYXZl
IDAgb3IgMSBsZW5ndGhzLgotICAgIGlmIChzaGFwZVZhbHVlICYmIHNoYXBlVmFsdWUtPmdldElk
ZW50KCkgPT0gQ1NTVmFsdWVDaXJjbGUgJiYgdmVydGljYWxTaXplKQorICAgIGlmIChzaGFwZVZh
bHVlICYmIHNoYXBlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUNpcmNsZSAmJiB2ZXJ0
aWNhbFNpemUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAvLyBFbGxpcHNlcyBtdXN0IGhh
dmUgMCBvciAyIGxlbmd0aC9wZXJjZW50YWdlcy4KLSAgICBpZiAoc2hhcGVWYWx1ZSAmJiBzaGFw
ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRWxsaXBzZSAmJiBob3Jpem9udGFsU2l6ZSAm
JiAhdmVydGljYWxTaXplKQorICAgIGlmIChzaGFwZVZhbHVlICYmIHNoYXBlVmFsdWUtPmdldFZh
bHVlSUQoKSA9PSBDU1NWYWx1ZUVsbGlwc2UgJiYgaG9yaXpvbnRhbFNpemUgJiYgIXZlcnRpY2Fs
U2l6ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIC8vIElmIHRoZXJlJ3Mgb25seSBvbmUg
c2l6ZSwgaXQgbXVzdCBiZSBhIGxlbmd0aC4KICAgICBpZiAoIXZlcnRpY2FsU2l6ZSAmJiBob3Jp
em9udGFsU2l6ZSAmJiBob3Jpem9udGFsU2l6ZS0+aXNQZXJjZW50YWdlKCkpCkBAIC04NDI4LDE3
ICs4NDI4LDE3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VUcmFuc2Zv
cm1WYWx1ZShDU1NQYXJzZXJWYWx1ZSAqdmFsdWUpCiAgICAgcmV0dXJuIHRyYW5zZm9ybVZhbHVl
LnJlbGVhc2UoKTsKIH0KIAotYm9vbCBDU1NQYXJzZXI6OmlzQmxlbmRNb2RlKGludCBpZGVudCkK
K2Jvb2wgQ1NTUGFyc2VyOjppc0JsZW5kTW9kZShDU1NWYWx1ZUlEIHZhbHVlSUQpCiB7Ci0gICAg
cmV0dXJuIChpZGVudCA+PSBDU1NWYWx1ZU11bHRpcGx5ICYmIGlkZW50IDw9IENTU1ZhbHVlTHVt
aW5vc2l0eSkKLSAgICAgICAgfHwgaWRlbnQgPT0gQ1NTVmFsdWVOb3JtYWwKLSAgICAgICAgfHwg
aWRlbnQgPT0gQ1NTVmFsdWVPdmVybGF5OworICAgIHJldHVybiAodmFsdWVJRCA+PSBDU1NWYWx1
ZU11bHRpcGx5ICYmIHZhbHVlSUQgPD0gQ1NTVmFsdWVMdW1pbm9zaXR5KQorICAgICAgICB8fCB2
YWx1ZUlEID09IENTU1ZhbHVlTm9ybWFsCisgICAgICAgIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVP
dmVybGF5OwogfQogCi1ib29sIENTU1BhcnNlcjo6aXNDb21wb3NpdGVPcGVyYXRvcihpbnQgaWRl
bnQpCitib29sIENTU1BhcnNlcjo6aXNDb21wb3NpdGVPcGVyYXRvcihDU1NWYWx1ZUlEIHZhbHVl
SUQpCiB7CiAgICAgLy8gRklYTUU6IEFkZCBDU1NWYWx1ZURlc3RpbmF0aW9uIGFuZCBDU1NWYWx1
ZUxpZ2h0ZXIgd2hlbiB0aGUgQ29tcG9zaXRpbmcgc3BlYyB1cGRhdGVzLgotICAgIHJldHVybiBp
ZGVudCA+PSBDU1NWYWx1ZUNsZWFyICYmIGlkZW50IDw9IENTU1ZhbHVlWG9yOworICAgIHJldHVy
biB2YWx1ZUlEID49IENTU1ZhbHVlQ2xlYXIgJiYgdmFsdWVJRCA8PSBDU1NWYWx1ZVhvcjsKIH0K
IAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCA1OWIw
ZjA3NTQ3NzNjZWU3YTE2OGU0ZDYyODE4MWQ3YzMxMmIwMGJlLi4zNWE5NWZkZGNmMTM3OGJjMTU5
M2JlZTk5NmFiMGI5ODY1OTVmMzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0yNjUsOCAr
MjY1LDggQEAgcHVibGljOgogI2VuZGlmCiAjZW5kaWYKIAotICAgIHN0YXRpYyBib29sIGlzQmxl
bmRNb2RlKGludCBpZGVudCk7Ci0gICAgc3RhdGljIGJvb2wgaXNDb21wb3NpdGVPcGVyYXRvcihp
bnQgaWRlbnQpOworICAgIHN0YXRpYyBib29sIGlzQmxlbmRNb2RlKENTU1ZhbHVlSUQpOworICAg
IHN0YXRpYyBib29sIGlzQ29tcG9zaXRlT3BlcmF0b3IoQ1NTVmFsdWVJRCk7CiAKICAgICBQYXNz
UmVmUHRyPENTU1ZhbHVlTGlzdD4gcGFyc2VUcmFuc2Zvcm0oKTsKICAgICBQYXNzUmVmUHRyPENT
U1ZhbHVlPiBwYXJzZVRyYW5zZm9ybVZhbHVlKENTU1BhcnNlclZhbHVlKik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCmluZGV4IDE0NDExN2QxMzk2OWRiYjAwNTA4MWY5NWJi
YWZiMWExNGQwOTZmYWEuLjdkNWZjODUzZGVhMDhlMTVmMWEyMDIyNzZiNmMwZTJkNTdkZjFmN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCkBAIC03MCw5ICs3MCw5IEBA
IFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlclZhbHVlOjpjcmVhdGVDU1NWYWx1ZSgpCiAg
ICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihpZCk7CiAg
ICAgCiAgICAgaWYgKHVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6Ok9wZXJhdG9yKSB7Ci0gICAgICAg
IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcHJpbWl0aXZlVmFsdWUgPSBDU1NQcmltaXRpdmVW
YWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihpVmFsdWUpOworICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0
aXZlVmFsdWU+IHByaW1pdGl2ZVZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZVBhcnNl
ck9wZXJhdG9yKGlWYWx1ZSk7CiAgICAgICAgIHByaW1pdGl2ZVZhbHVlLT5zZXRQcmltaXRpdmVU
eXBlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEFSU0VSX09QRVJBVE9SKTsKLSAgICAgICAgcmV0
dXJuIHByaW1pdGl2ZVZhbHVlOworICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWUucmVsZWFz
ZSgpOwogICAgIH0KICAgICBpZiAodW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24pCiAg
ICAgICAgIHJldHVybiBDU1NGdW5jdGlvblZhbHVlOjpjcmVhdGUoZnVuY3Rpb24pOwpAQCAtODIs
NiArODIsOCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXJWYWx1ZTo6Y3JlYXRlQ1NT
VmFsdWUoKQogICAgIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMgcHJpbWl0aXZlVW5pdCA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM+KHVuaXQpOwogICAgIHN3
aXRjaCAocHJpbWl0aXZlVW5pdCkgewogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19J
REVOVDoKKyAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFJPUEVSVFlfSUQ6CisgICAg
Y2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZBTFVFX0lEOgogICAgICAgICByZXR1cm4gQ1NT
UHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdHJpbmcsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEFS
U0VSX0lERU5USUZJRVIpOwogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVI6
CiAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGZWYWx1ZSwgaXNJbnQg
PyBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BBUlNFUl9JTlRFR0VSIDogQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19OVU1CRVIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAK
aW5kZXggMmQ0MDI3OTk4MTBlNTk4ZDI0NDk5MDAyODVkZDhlNWRiYWJjZTI2Yy4uZjM5MDJjN2Jl
MzRjYTAyNmE4YTQ2YTY4MjcyYWExZTViOGViYjQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuY3BwCkBAIC0xMDcsNiArMTA3LDggQEAgc3RhdGljIGlubGluZSBib29s
IGlzVmFsaWRDU1NVbml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24oQ1NTUHJpbWl0aXZlVmFsdWU6
OlVuaXQKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBDTToKICNlbmRpZgogICAg
IGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVDoKKyAgICBjYXNlIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfUFJPUEVSVFlfSUQ6CisgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1ZBTFVFX0lEOgogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QQUlSOgogICAgIGNh
c2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QQVJTRVJfSEVYQ09MT1I6CiAgICAgY2FzZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BBUlNFUl9JREVOVElGSUVSOgpAQCAtMTgyLDYgKzE4NCw5IEBA
IHN0YXRpYyBDU1NUZXh0Q2FjaGUmIGNzc1RleHRDYWNoZSgpCiAKIHVuc2lnbmVkIHNob3J0IENT
U1ByaW1pdGl2ZVZhbHVlOjpwcmltaXRpdmVUeXBlKCkgY29uc3QgCiB7CisgICAgaWYgKG1fcHJp
bWl0aXZlVW5pdFR5cGUgPT0gQ1NTX1BST1BFUlRZX0lEIHx8IG1fcHJpbWl0aXZlVW5pdFR5cGUg
PT0gQ1NTX1ZBTFVFX0lEKQorICAgICAgICByZXR1cm4gQ1NTX0lERU5UOworCiAgICAgaWYgKG1f
cHJpbWl0aXZlVW5pdFR5cGUgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19DQUxDKQogICAgICAg
ICByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZTsgCiAgICAgCkBAIC0yMDYsMzAgKzIxMSw1MSBA
QCB1bnNpZ25lZCBzaG9ydCBDU1NQcmltaXRpdmVWYWx1ZTo6cHJpbWl0aXZlVHlwZSgpIGNvbnN0
CiAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVU5LTk9XTjsKIH0KIAotc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWVPclByb3BlcnR5TmFtZShpbnQgdmFsdWVPclByb3Bl
cnR5SUQpCitzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBwcm9wZXJ0eU5hbWUoQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eUlEKQogewotICAgIEFTU0VSVF9BUkcodmFsdWVPclByb3BlcnR5SUQsIHZh
bHVlT3JQcm9wZXJ0eUlEID49IDApOwotICAgIEFTU0VSVF9BUkcodmFsdWVPclByb3BlcnR5SUQs
IHZhbHVlT3JQcm9wZXJ0eUlEIDwgbnVtQ1NTVmFsdWVLZXl3b3JkcyB8fCAodmFsdWVPclByb3Bl
cnR5SUQgPj0gZmlyc3RDU1NQcm9wZXJ0eSAmJiB2YWx1ZU9yUHJvcGVydHlJRCA8IGZpcnN0Q1NT
UHJvcGVydHkgKyBudW1DU1NQcm9wZXJ0aWVzKSk7CisgICAgQVNTRVJUX0FSRyhwcm9wZXJ0eUlE
LCBwcm9wZXJ0eUlEID49IDApOworICAgIEFTU0VSVF9BUkcocHJvcGVydHlJRCwgKHByb3BlcnR5
SUQgPj0gZmlyc3RDU1NQcm9wZXJ0eSAmJiBwcm9wZXJ0eUlEIDwgZmlyc3RDU1NQcm9wZXJ0eSAr
IG51bUNTU1Byb3BlcnRpZXMpKTsKIAotICAgIGlmICh2YWx1ZU9yUHJvcGVydHlJRCA8IDApCisg
ICAgaWYgKHByb3BlcnR5SUQgPCAwKQogICAgICAgICByZXR1cm4gbnVsbEF0b207CiAKLSAgICBp
ZiAodmFsdWVPclByb3BlcnR5SUQgPCBudW1DU1NWYWx1ZUtleXdvcmRzKSB7Ci0gICAgICAgIHN0
YXRpYyBBdG9taWNTdHJpbmcqIGtleXdvcmRTdHJpbmdzID0gbmV3IEF0b21pY1N0cmluZ1tudW1D
U1NWYWx1ZUtleXdvcmRzXTsgLy8gTGVha2VkIGludGVudGlvbmFsbHkuCi0gICAgICAgIEF0b21p
Y1N0cmluZyYga2V5d29yZFN0cmluZyA9IGtleXdvcmRTdHJpbmdzW3ZhbHVlT3JQcm9wZXJ0eUlE
XTsKLSAgICAgICAgaWYgKGtleXdvcmRTdHJpbmcuaXNOdWxsKCkpCi0gICAgICAgICAgICBrZXl3
b3JkU3RyaW5nID0gZ2V0VmFsdWVOYW1lKHZhbHVlT3JQcm9wZXJ0eUlEKTsKLSAgICAgICAgcmV0
dXJuIGtleXdvcmRTdHJpbmc7Ci0gICAgfQorICAgIHJldHVybiBnZXRQcm9wZXJ0eU5hbWVBdG9t
aWNTdHJpbmcocHJvcGVydHlJRCk7Cit9CisKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHZh
bHVlTmFtZShDU1NWYWx1ZUlEIHZhbHVlSUQpCit7CisgICAgQVNTRVJUX0FSRyh2YWx1ZUlELCB2
YWx1ZUlEID49IDApOworICAgIEFTU0VSVF9BUkcodmFsdWVJRCwgdmFsdWVJRCA8IG51bUNTU1Zh
bHVlS2V5d29yZHMpOwogCi0gICAgcmV0dXJuIGdldFByb3BlcnR5TmFtZUF0b21pY1N0cmluZyhz
dGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPih2YWx1ZU9yUHJvcGVydHlJRCkpOworICAgIGlmICh2
YWx1ZUlEIDwgMCkKKyAgICAgICAgcmV0dXJuIG51bGxBdG9tOworCisgICAgc3RhdGljIEF0b21p
Y1N0cmluZyoga2V5d29yZFN0cmluZ3MgPSBuZXcgQXRvbWljU3RyaW5nW251bUNTU1ZhbHVlS2V5
d29yZHNdOyAvLyBMZWFrZWQgaW50ZW50aW9uYWxseS4KKyAgICBBdG9taWNTdHJpbmcmIGtleXdv
cmRTdHJpbmcgPSBrZXl3b3JkU3RyaW5nc1t2YWx1ZUlEXTsKKyAgICBpZiAoa2V5d29yZFN0cmlu
Zy5pc051bGwoKSkKKyAgICAgICAga2V5d29yZFN0cmluZyA9IGdldFZhbHVlTmFtZSh2YWx1ZUlE
KTsKKyAgICByZXR1cm4ga2V5d29yZFN0cmluZzsKIH0KIAotQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKGludCBpZGVudCkKK0NTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShDU1NWYWx1ZUlEIHZhbHVlSUQpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFz
cykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwotICAgIG1fdmFsdWUu
aWRlbnQgPSBpZGVudDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwor
ICAgIG1fdmFsdWUudmFsdWVJRCA9IHZhbHVlSUQ7Cit9CisKK0NTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCisgICAgOiBDU1NWYWx1
ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1BST1BF
UlRZX0lEOworICAgIG1fdmFsdWUucHJvcGVydHlJRCA9IHByb3BlcnR5SUQ7Cit9CisKK0NTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShpbnQgcGFyc2VyT3BlcmF0b3IpCisgICAg
OiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX1BBUlNFUl9PUEVSQVRPUjsKKyAgICBtX3ZhbHVlLnBhcnNlck9wZXJhdG9yID0gcGFyc2Vy
T3BlcmF0b3I7CiB9CiAKIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShkb3Vi
bGUgbnVtLCBVbml0VHlwZXMgdHlwZSkKQEAgLTI2MSwzNiArMjg3LDM2IEBAIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShjb25zdCBMZW5ndGgmIGxlbmd0aCkKIHsKICAgICBz
d2l0Y2ggKGxlbmd0aC50eXBlKCkpIHsKICAgICAgICAgY2FzZSBBdXRvOgotICAgICAgICAgICAg
bV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NT
X1ZBTFVFX0lEOworICAgICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6Rml4ZWQ6CiAgICAgICAg
ICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1BYOwogICAgICAgICAgICAgbV92YWx1ZS5u
dW0gPSBsZW5ndGgudmFsdWUoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIElu
dHJpbnNpYzoKLSAgICAgICAgICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVJbnRyaW5zaWM7CisgICAgICAgICAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOworICAgICAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbnRyaW5zaWM7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBNaW5JbnRyaW5zaWM6Ci0gICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX0lERU5UOwotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWluSW50cmlu
c2ljOworICAgICAgICAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAg
ICAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWluSW50cmluc2ljOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWluQ29udGVudDoKLSAgICAgICAgICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVXZWJraXRNaW5Db250ZW50OworICAgICAgICAgICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19WQUxVRV9JRDsKKyAgICAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
V2Via2l0TWluQ29udGVudDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE1heENv
bnRlbnQ6Ci0gICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0TWF4Q29udGVudDsKKyAgICAg
ICAgICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CisgICAgICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdE1heENvbnRlbnQ7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBGaWxsQXZhaWxhYmxlOgotICAgICAgICAgICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19JREVOVDsKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZVdlYmtpdEZpbGxBdmFpbGFibGU7CisgICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX1ZBTFVFX0lEOworICAgICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVX
ZWJraXRGaWxsQXZhaWxhYmxlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRml0
Q29udGVudDoKLSAgICAgICAgICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRGaXRDb250ZW50OworICAg
ICAgICAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAgICAgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0Rml0Q29udGVudDsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIFBlcmNlbnQ6CiAgICAgICAgICAgICBtX3ByaW1pdGl2ZVVu
aXRUeXBlID0gQ1NTX1BFUkNFTlRBR0U7CkBAIC00NTQsNiArNDgwLDggQEAgdm9pZCBDU1NQcmlt
aXRpdmVWYWx1ZTo6Y2xlYW51cCgpCiAgICAgY2FzZSBDU1NfVU5JQ09ERV9SQU5HRToKICAgICBj
YXNlIENTU19QQVJTRVJfT1BFUkFUT1I6CiAgICAgY2FzZSBDU1NfUEFSU0VSX0lERU5USUZJRVI6
CisgICAgY2FzZSBDU1NfUFJPUEVSVFlfSUQ6CisgICAgY2FzZSBDU1NfVkFMVUVfSUQ6CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gMDsKQEAgLTc2OSw4
ICs3OTcsMTAgQEAgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpnZXRTdHJpbmdWYWx1ZShFeGNl
cHRpb25Db2RlJiBlYykgY29uc3QKICAgICAgICAgY2FzZSBDU1NfVkFSSUFCTEVfTkFNRToKICNl
bmRpZgogICAgICAgICAgICAgcmV0dXJuIG1fdmFsdWUuc3RyaW5nOwotICAgICAgICBjYXNlIENT
U19JREVOVDoKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZU9yUHJvcGVydHlOYW1lKG1fdmFsdWUu
aWRlbnQpOworICAgICAgICBjYXNlIENTU19WQUxVRV9JRDoKKyAgICAgICAgICAgIHJldHVybiB2
YWx1ZU5hbWUobV92YWx1ZS52YWx1ZUlEKTsKKyAgICAgICAgY2FzZSBDU1NfUFJPUEVSVFlfSUQ6
CisgICAgICAgICAgICByZXR1cm4gcHJvcGVydHlOYW1lKG1fdmFsdWUucHJvcGVydHlJRCk7CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtNzg5LDggKzgxOSwxMCBAQCBTdHJpbmcgQ1NTUHJpbWl0aXZl
VmFsdWU6OmdldFN0cmluZ1ZhbHVlKCkgY29uc3QKICAgICAgICAgY2FzZSBDU1NfVkFSSUFCTEVf
TkFNRToKICNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIG1fdmFsdWUuc3RyaW5nOwotICAgICAg
ICBjYXNlIENTU19JREVOVDoKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZU9yUHJvcGVydHlOYW1l
KG1fdmFsdWUuaWRlbnQpOworICAgICAgICBjYXNlIENTU19WQUxVRV9JRDoKKyAgICAgICAgICAg
IHJldHVybiB2YWx1ZU5hbWUobV92YWx1ZS52YWx1ZUlEKTsKKyAgICAgICAgY2FzZSBDU1NfUFJP
UEVSVFlfSUQ6CisgICAgICAgICAgICByZXR1cm4gcHJvcGVydHlOYW1lKG1fdmFsdWUucHJvcGVy
dHlJRCk7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICB9CkBAIC05
NzAsOCArMTAwMiwxMSBAQCBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmN1c3RvbUNzc1RleHQo
KSBjb25zdAogICAgICAgICBjYXNlIENTU19VUkk6CiAgICAgICAgICAgICB0ZXh0ID0gInVybCgi
ICsgcXVvdGVDU1NVUkxJZk5lZWRlZChtX3ZhbHVlLnN0cmluZykgKyAiKSI7CiAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NfSURFTlQ6Ci0gICAgICAgICAgICB0ZXh0ID0gdmFs
dWVPclByb3BlcnR5TmFtZShtX3ZhbHVlLmlkZW50KTsKKyAgICAgICAgY2FzZSBDU1NfVkFMVUVf
SUQ6CisgICAgICAgICAgICB0ZXh0ID0gdmFsdWVOYW1lKG1fdmFsdWUudmFsdWVJRCk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NfUFJPUEVSVFlfSUQ6CisgICAgICAgICAg
ICB0ZXh0ID0gcHJvcGVydHlOYW1lKG1fdmFsdWUucHJvcGVydHlJRCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBDU1NfQVRUUjogewogICAgICAgICAgICAgU3RyaW5nQnVpbGRl
ciByZXN1bHQ7CkBAIC0xMDY2LDEzICsxMTAxLDEzIEBAIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1
ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmRMaXRlcmFsKCIgcmVjdGFuZ2xlIik7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBpZiAocmVnaW9uLT50b3AoKS0+bV9w
cmltaXRpdmVVbml0VHlwZSA9PSBDU1NfSURFTlQgJiYgcmVnaW9uLT50b3AoKS0+Z2V0SWRlbnQo
KSA9PSBDU1NWYWx1ZUludmFsaWQpIHsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ2lv
bi0+cmlnaHQoKS0+bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfSURFTlQpOwotICAgICAgICAg
ICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5ib3R0b20oKS0+bV9wcmltaXRpdmVVbml0VHlwZSA9
PSBDU1NfSURFTlQpOwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5sZWZ0KCkt
Pm1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX0lERU5UKTsKLSAgICAgICAgICAgICAgICAgICAg
QVNTRVJUKHJlZ2lvbi0+cmlnaHQoKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUludmFsaWQpOwot
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5ib3R0b20oKS0+Z2V0SWRlbnQoKSA9
PSBDU1NWYWx1ZUludmFsaWQpOwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5s
ZWZ0KCktPmdldElkZW50KCkgPT0gQ1NTVmFsdWVJbnZhbGlkKTsKKyAgICAgICAgICAgICAgICBp
ZiAocmVnaW9uLT50b3AoKS0+bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfVkFMVUVfSUQgJiYg
cmVnaW9uLT50b3AoKS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlSW52YWxpZCkgeworICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5yaWdodCgpLT5tX3ByaW1pdGl2ZVVuaXRUeXBl
ID09IENTU19WQUxVRV9JRCk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChyZWdpb24tPmJv
dHRvbSgpLT5tX3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19WQUxVRV9JRCk7CisgICAgICAgICAg
ICAgICAgICAgIEFTU0VSVChyZWdpb24tPmxlZnQoKS0+bV9wcmltaXRpdmVVbml0VHlwZSA9PSBD
U1NfVkFMVUVfSUQpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5yaWdodCgp
LT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVJbnZhbGlkKTsKKyAgICAgICAgICAgICAgICAgICAg
QVNTRVJUKHJlZ2lvbi0+Ym90dG9tKCktPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUludmFsaWQp
OworICAgICAgICAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5sZWZ0KCktPmdldFZhbHVlSUQo
KSA9PSBDU1NWYWx1ZUludmFsaWQpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZChyZWdpb24tPnRvcCgpLT5jc3NUZXh0KCkpOwpAQCAtMTA5MCw3ICsxMTI1LDcg
QEAgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpjdXN0b21Dc3NUZXh0KCkgY29uc3QKICAgICAg
ICAgfQogI2VuZGlmCiAgICAgICAgIGNhc2UgQ1NTX1BBUlNFUl9PUEVSQVRPUjogewotICAgICAg
ICAgICAgY2hhciBjID0gc3RhdGljX2Nhc3Q8Y2hhcj4obV92YWx1ZS5pZGVudCk7CisgICAgICAg
ICAgICBjaGFyIGMgPSBzdGF0aWNfY2FzdDxjaGFyPihtX3ZhbHVlLnBhcnNlck9wZXJhdG9yKTsK
ICAgICAgICAgICAgIHRleHQgPSBTdHJpbmcoJmMsIDFVKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CkBAIC0xMjYxLDggKzEyOTYsMTEgQEAgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVW
YWx1ZT4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNsb25lRm9yQ1NTT00oKSBjb25zdAogI2VuZGlmCiAg
ICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobV92YWx1ZS5udW0sIHN0
YXRpY19jYXN0PFVuaXRUeXBlcz4obV9wcmltaXRpdmVVbml0VHlwZSkpOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIENTU19JREVOVDoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFs
dWU6OmNyZWF0ZUlkZW50aWZpZXIobV92YWx1ZS5pZGVudCk7CisgICAgY2FzZSBDU1NfUFJPUEVS
VFlfSUQ6CisgICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlm
aWVyKG1fdmFsdWUucHJvcGVydHlJRCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTX1ZB
TFVFX0lEOgorICAgICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRp
ZmllcihtX3ZhbHVlLnZhbHVlSUQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU19SR0JD
T0xPUjoKICAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUNvbG9yKG1f
dmFsdWUucmdiY29sb3IpOwpAQCAtMTMxOSw4ICsxMzU3LDEwIEBAIGJvb2wgQ1NTUHJpbWl0aXZl
VmFsdWU6OmVxdWFscyhjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYgb3RoZXIpIGNvbnN0CiAgICAg
Y2FzZSBDU1NfVk1JTjoKICAgICBjYXNlIENTU19ESU1FTlNJT046CiAgICAgICAgIHJldHVybiBt
X3ZhbHVlLm51bSA9PSBvdGhlci5tX3ZhbHVlLm51bTsKLSAgICBjYXNlIENTU19JREVOVDoKLSAg
ICAgICAgcmV0dXJuIHZhbHVlT3JQcm9wZXJ0eU5hbWUobV92YWx1ZS5pZGVudCkgPT0gdmFsdWVP
clByb3BlcnR5TmFtZShvdGhlci5tX3ZhbHVlLmlkZW50KTsKKyAgICBjYXNlIENTU19QUk9QRVJU
WV9JRDoKKyAgICAgICAgcmV0dXJuIHByb3BlcnR5TmFtZShtX3ZhbHVlLnByb3BlcnR5SUQpID09
IHByb3BlcnR5TmFtZShvdGhlci5tX3ZhbHVlLnByb3BlcnR5SUQpOworICAgIGNhc2UgQ1NTX1ZB
TFVFX0lEOgorICAgICAgICByZXR1cm4gdmFsdWVOYW1lKG1fdmFsdWUudmFsdWVJRCkgPT0gdmFs
dWVOYW1lKG90aGVyLm1fdmFsdWUudmFsdWVJRCk7CiAgICAgY2FzZSBDU1NfU1RSSU5HOgogICAg
IGNhc2UgQ1NTX1VSSToKICAgICBjYXNlIENTU19BVFRSOgpAQCAtMTM0OSw3ICsxMzg5LDcgQEAg
Ym9vbCBDU1NQcmltaXRpdmVWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiBv
dGhlcikgY29uc3QKICAgICB9CiAjZW5kaWYKICAgICBjYXNlIENTU19QQVJTRVJfT1BFUkFUT1I6
Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlLmlkZW50ID09IG90aGVyLm1fdmFsdWUuaWRlbnQ7Cisg
ICAgICAgIHJldHVybiBtX3ZhbHVlLnZhbHVlSUQgPT0gb3RoZXIubV92YWx1ZS52YWx1ZUlEOwog
ICAgIGNhc2UgQ1NTX0NBTEM6CiAgICAgICAgIHJldHVybiBtX3ZhbHVlLmNhbGMgJiYgb3RoZXIu
bV92YWx1ZS5jYWxjICYmIG1fdmFsdWUuY2FsYy0+ZXF1YWxzKCpvdGhlci5tX3ZhbHVlLmNhbGMp
OwogICAgIGNhc2UgQ1NTX1NIQVBFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
aAppbmRleCAzNzJjMWIzZjQ2ODA4MWY1NmM3ZDRlYTgxNDM3NDM3MzcyYjg2NTU5Li4yOGFlNGU4
ODIzMDAwMWFmMTU5Y2FiZmRjMjQ4MzRlYTIwYTc1MDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuaApAQCAtMjIsNyArMjIsOSBAQAogI2lmbmRlZiBDU1NQcmltaXRpdmVW
YWx1ZV9oCiAjZGVmaW5lIENTU1ByaW1pdGl2ZVZhbHVlX2gKIAorI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlS2V5
d29yZHMuaCIKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KQEAgLTEzNCw2ICsxMzYsOCBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAgICAgICAgIENTU19WQVJJQUJMRV9OQU1FID0gMTE2
LAogI2VuZGlmCisgICAgICAgIENTU19QUk9QRVJUWV9JRCA9IDExNywKKyAgICAgICAgQ1NTX1ZB
TFVFX0lEID0gMTE4CiAgICAgfTsKIAogICAgIC8vIFRoaXMgZW51bSBmb2xsb3dzIHRoZSBDU1NQ
YXJzZXI6OlVuaXRzIGVudW0gYXVnbWVudGVkIHdpdGggVU5JVF9GUkVRVUVOQ1kgZm9yIGZyZXF1
ZW5jaWVzLgpAQCAtMTY4LDcgKzE3Miw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHx8IG1fcHJp
bWl0aXZlVW5pdFR5cGUgPT0gQ1NTX1JFTVMKICAgICAgICAgICAgIHx8IG1fcHJpbWl0aXZlVW5p
dFR5cGUgPT0gQ1NTX0NIUzsKICAgICB9Ci0gICAgYm9vbCBpc0lkZW50KCkgY29uc3QgeyByZXR1
cm4gbV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfSURFTlQ7IH0KICAgICBib29sIGlzTGVuZ3Ro
KCkgY29uc3QKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIHNob3J0IHR5cGUgPSBwcmltaXRpdmVU
eXBlKCk7CkBAIC0xOTksOCArMjAyLDEyIEBAIHB1YmxpYzoKICAgICBib29sIGlzVmFyaWFibGVO
YW1lKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU19WQVJJQUJMRV9OQU1F
OyB9CiAjZW5kaWYKICAgICBib29sIGlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKCkgY29uc3Qg
eyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSA+PSBDU1NfVlcgJiYgbV9wcmltaXRpdmVVbml0
VHlwZSA8PSBDU1NfVk1BWDsgfQorICAgIGJvb2wgaXNWYWx1ZUlEKCkgY29uc3QgeyByZXR1cm4g
bV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfVkFMVUVfSUQ7IH0KKyAgICAKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZUlE
IHZhbHVlSUQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NQcmltaXRpdmVWYWx1ZSh2YWx1ZUlE
KSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRl
bnRpZmllcihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBD
U1NQcmltaXRpdmVWYWx1ZShwcm9wZXJ0eUlEKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
U1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlUGFyc2VyT3BlcmF0b3IoaW50IHBhcnNlck9wZXJhdG9y
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTUHJpbWl0aXZlVmFsdWUocGFyc2VyT3BlcmF0b3Ip
KTsgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlk
ZW50aWZpZXIoaW50IGlkZW50aWZpZXIpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NQcmltaXRp
dmVWYWx1ZShpZGVudGlmaWVyKSk7IH0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gY3JlYXRlQ29sb3IodW5zaWduZWQgcmdiVmFsdWUpIHsgcmV0dXJuIGFkb3B0UmVm
KG5ldyBDU1NQcmltaXRpdmVWYWx1ZShyZ2JWYWx1ZSkpOyB9CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZShkb3VibGUgdmFsdWUsIFVuaXRUeXBlcyB0eXBl
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTUHJpbWl0aXZlVmFsdWUodmFsdWUsIHR5cGUpKTsg
fQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiB2YWx1ZSwgVW5pdFR5cGVzIHR5cGUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NQ
cmltaXRpdmVWYWx1ZSh2YWx1ZSwgdHlwZSkpOyB9CkBAIC0zMDYsNyArMzEzLDggQEAgcHVibGlj
OgogICAgIAogICAgIENTU0NhbGNWYWx1ZSogY3NzQ2FsY1ZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9wcmltaXRpdmVVbml0VHlwZSAhPSBDU1NfQ0FMQyA/IDAgOiBtX3ZhbHVlLmNhbGM7IH0KIAot
ICAgIGludCBnZXRJZGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0g
Q1NTX0lERU5UID8gbV92YWx1ZS5pZGVudCA6IDA7IH0KKyAgICBDU1NQcm9wZXJ0eUlEIGdldFBy
b3BlcnR5SUQoKSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19QUk9Q
RVJUWV9JRCA/IG1fdmFsdWUucHJvcGVydHlJRCA6IENTU1Byb3BlcnR5SW52YWxpZDsgfQorICAg
IENTU1ZhbHVlSUQgZ2V0VmFsdWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPT0gQ1NTX1ZBTFVFX0lEID8gbV92YWx1ZS52YWx1ZUlEIDogQ1NTVmFsdWVJbnZhbGlkOyB9
CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgb3BlcmF0b3IgVCgpIGNvbnN0OyAv
LyBEZWZpbmVkIGluIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAogCkBAIC0zMjgsOCArMzM2
LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGVxdWFscyhjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYp
IGNvbnN0OwogCiBwcml2YXRlOgotICAgIC8vIEZJWE1FOiBpbnQgdnMuIHVuc2lnbmVkIG92ZXJs
b2FkaW5nIGlzIHRvbyBzdWJ0bGUgdG8gZGlzdGluZ3Vpc2ggdGhlIGNvbG9yIGFuZCBpZGVudGlm
aWVyIGNhc2VzLgotICAgIENTU1ByaW1pdGl2ZVZhbHVlKGludCBpZGVudCk7CisgICAgQ1NTUHJp
bWl0aXZlVmFsdWUoQ1NTVmFsdWVJRCk7CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTUHJvcGVy
dHlJRCk7CisgICAgLy8gRklYTUU6IGludCB2cy4gdW5zaWduZWQgb3ZlcmxvYWRpbmcgaXMgdG9v
IHN1YnRsZSB0byBkaXN0aW5ndWlzaCB0aGUgY29sb3IgYW5kIG9wZXJhdG9yIGNhc2VzLgorICAg
IENTU1ByaW1pdGl2ZVZhbHVlKGludCBwYXJzZXJPcGVyYXRvcik7CiAgICAgQ1NTUHJpbWl0aXZl
VmFsdWUodW5zaWduZWQgY29sb3IpOyAvLyBSR0IgdmFsdWUKICAgICBDU1NQcmltaXRpdmVWYWx1
ZShjb25zdCBMZW5ndGgmKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZShjb25zdCBTdHJpbmcmLCBV
bml0VHlwZXMpOwpAQCAtMzY2LDcgKzM3Niw5IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIGNvbXB1
dGVMZW5ndGhEb3VibGUoY29uc3QgUmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwgY29uc3QgUmVu
ZGVyU3R5bGUqIHJvb3RTdHlsZSwgZmxvYXQgbXVsdGlwbGllciwgYm9vbCBjb21wdXRpbmdGb250
U2l6ZSkgY29uc3Q7CiAKICAgICB1bmlvbiB7Ci0gICAgICAgIGludCBpZGVudDsKKyAgICAgICAg
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEOworICAgICAgICBDU1NWYWx1ZUlEIHZhbHVlSUQ7Cisg
ICAgICAgIGludCBwYXJzZXJPcGVyYXRvcjsKICAgICAgICAgZG91YmxlIG51bTsKICAgICAgICAg
U3RyaW5nSW1wbCogc3RyaW5nOwogICAgICAgICBDb3VudGVyKiBjb3VudGVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggMjg4MmE4M2Ni
ZGI0NmZmMmIzMWMyNDZmZmIyNmNkM2NkZmQ5NjM4ZS4uYjMzMTUwNGQ3MjAzZTkxMjdiMmRhZDQ4
NzIyZTY1N2FhYTEzMTkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWVNYXBwaW5ncy5oCkBAIC0xNDUsMjUgKzE0NSwyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUNsYW1wVmFsdWUoKSBjb25zdAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENTU1JlZmxl
Y3Rpb25EaXJlY3Rpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFJlZmxlY3Rpb25B
Ym92ZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWJvdmU7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWJvdmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
UmVmbGVjdGlvbkJlbG93OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCZWxvdzsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCZWxvdzsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBSZWZsZWN0aW9uTGVmdDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTGVmdDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFJlZmxlY3Rpb25SaWdodDoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmln
aHQ7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgQ1NTUmVmbGVjdGlvbkRpcmVjdGlvbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3Zh
bHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENT
U1ZhbHVlQWJvdmU6CiAgICAgICAgIHJldHVybiBSZWZsZWN0aW9uQWJvdmU7CiAgICAgY2FzZSBD
U1NWYWx1ZUJlbG93OgpAQCAtMTcyLDYgKzE3Miw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDU1NSZWZsZWN0aW9uRGlyZWN0aW9uKCkgY29uc3QKICAg
ICAgICAgcmV0dXJuIFJlZmxlY3Rpb25MZWZ0OwogICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKICAg
ICAgICAgcmV0dXJuIFJlZmxlY3Rpb25SaWdodDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE4MSwxMyArMTgzLDEz
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDU1NSZWZs
ZWN0aW9uRGlyZWN0aW9uKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2x1bW5TcGFuIGNvbHVtblNwYW4pCiAgICAgOiBDU1NW
YWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lE
RU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNo
IChjb2x1bW5TcGFuKSB7CiAgICAgY2FzZSBDb2x1bW5TcGFuQWxsOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVBbGw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QWxsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbHVtblNwYW5Ob25lOgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE5OCwxMSArMjAwLDEz
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5T
cGFuKCkgY29uc3QKICAgICBpZiAobV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfTlVNQkVSICYm
IG1fdmFsdWUubnVtID09IDEpCiAgICAgICAgIHJldHVybiBDb2x1bW5TcGFuTm9uZTsKIAotICAg
IHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CiAgICAgY2FzZSBDU1NWYWx1ZUFsbDoKICAgICAgICAgcmV0dXJuIENvbHVtblNwYW5BbGw7CiAg
ICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBDb2x1bW5TcGFuTm9uZTsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTIxMywyNCArMjE3LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5TcGFuKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShQcmludENvbG9yQWRqdXN0IHZhbHVl
KQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lE
OwogICAgIHN3aXRjaCAodmFsdWUpIHsKICAgICBjYXNlIFByaW50Q29sb3JBZGp1c3RFeGFjdDoK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXhhY3Q7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlRXhhY3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUHJpbnRD
b2xvckFkanVzdEVjb25vbXk6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUVjb25v
bXk7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRWNvbm9teTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgUHJpbnRDb2xvckFkanVzdCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1Zh
bHVlRWNvbm9teToKICAgICAgICAgcmV0dXJuIFByaW50Q29sb3JBZGp1c3RFY29ub215OwogICAg
IGNhc2UgQ1NTVmFsdWVFeGFjdDoKICAgICAgICAgcmV0dXJuIFByaW50Q29sb3JBZGp1c3RFeGFj
dDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTI0MSw1MSArMjQ3LDUxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBQcmludENvbG9yQWRqdXN0KCkgY29uc3QKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQm9yZGVyU3R5
bGUgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxV
RV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBCTk9ORToKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBCSElEREVOOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGlk
ZGVuOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSU5TRVQ6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVJbnNldDsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIEdST09WRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUdy
b292ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJJREdFOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmlkZ2U7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBPVVRTRVQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVP
dXRzZXQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBET1RURUQ6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEb3R0ZWQ7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBEQVNIRUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVEYXNoZWQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTT0xJRDoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNvbGlkOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgRE9VQkxFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlRG91YmxlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCTk9ORToKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEJISURERU46CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGlkZGVuOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIElOU0VUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUluc2V0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdST09WRToKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVHcm9vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUklER0U6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlkZ2U7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgT1VUU0VUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU91dHNldDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET1RURUQ6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRG90dGVkOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIERBU0hFRDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEYXNoZWQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgU09MSUQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlU29saWQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9VQkxFOgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURvdWJsZTsKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJv
cmRlclN0eWxlKCkgY29uc3QKIHsKLSAgICBpZiAobV92YWx1ZS5pZGVudCA9PSBDU1NWYWx1ZUF1
dG8pIC8vIFZhbGlkIGZvciBDU1Mgb3V0bGluZS1zdHlsZQorICAgIGlmIChtX3ZhbHVlLnZhbHVl
SUQgPT0gQ1NTVmFsdWVBdXRvKSAvLyBWYWxpZCBmb3IgQ1NTIG91dGxpbmUtc3R5bGUKICAgICAg
ICAgcmV0dXJuIERPVFRFRDsKLSAgICByZXR1cm4gKEVCb3JkZXJTdHlsZSkobV92YWx1ZS5pZGVu
dCAtIENTU1ZhbHVlTm9uZSk7CisgICAgcmV0dXJuIChFQm9yZGVyU3R5bGUpKG1fdmFsdWUudmFs
dWVJRCAtIENTU1ZhbHVlTm9uZSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBPdXRsaW5lSXNBdXRvKCkgY29uc3QKIHsKLSAgICBpZiAobV92YWx1
ZS5pZGVudCA9PSBDU1NWYWx1ZUF1dG8pCisgICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NW
YWx1ZUF1dG8pCiAgICAgICAgIHJldHVybiBBVVRPX09OOwogICAgIHJldHVybiBBVVRPX09GRjsK
IH0KQEAgLTI5Myw4MiArMjk5LDg0IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBPdXRsaW5lSXNBdXRvKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb21wb3NpdGVPcGVyYXRvciBlKQog
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwog
ICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIENvbXBvc2l0ZUNsZWFyOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2xlYXI7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBDb21wb3NpdGVDb3B5OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQ29weTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNv
dXJjZU92ZXI6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTb3VyY2VPdmVy
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlU291cmNlSW46Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTb3VyY2VJbjsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU91dDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNvdXJjZU91dDsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUF0b3A6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVTb3VyY2VBdG9wOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Q29tcG9zaXRlRGVzdGluYXRpb25PdmVyOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlRGVzdGluYXRpb25PdmVyOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Q29tcG9zaXRlRGVzdGluYXRpb25JbjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZURlc3RpbmF0aW9uSW47Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDb21w
b3NpdGVEZXN0aW5hdGlvbk91dDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZURlc3RpbmF0aW9uT3V0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9z
aXRlRGVzdGluYXRpb25BdG9wOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
RGVzdGluYXRpb25BdG9wOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9z
aXRlWE9SOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlWG9yOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlUGx1c0RhcmtlcjoKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVBsdXNEYXJrZXI7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVQbHVzTGlnaHRlcjoKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVBsdXNMaWdodGVyOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgQ29tcG9zaXRlRGlmZmVyZW5jZToKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVDbGVhcjoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDbGVhcjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDb21wb3NpdGVDb3B5OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUNvcHk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9zaXRlU291cmNlT3ZlcjoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTb3VyY2VPdmVyOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUluOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVNvdXJjZUluOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0ZVNv
dXJjZU91dDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTb3VyY2VPdXQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9zaXRlU291cmNlQXRvcDoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTb3VyY2VBdG9wOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3ZlcjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVEZXN0aW5hdGlvbk92ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9z
aXRlRGVzdGluYXRpb25JbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZXN0
aW5hdGlvbkluOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9u
T3V0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlc3RpbmF0aW9uT3V0Owor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uQXRvcDoKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZXN0aW5hdGlvbkF0b3A7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ29tcG9zaXRlWE9SOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVhvcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVQbHVzRGFya2Vy
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBsdXNEYXJrZXI7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ29tcG9zaXRlUGx1c0xpZ2h0ZXI6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUGx1c0xpZ2h0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q29tcG9zaXRlRGlmZmVyZW5jZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIENvbXBvc2l0ZU9wZXJhdG9yKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1f
dmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUNsZWFyOgotICAgICAgICAgICAg
cmV0dXJuIENvbXBvc2l0ZUNsZWFyOwotICAgICAgICBjYXNlIENTU1ZhbHVlQ29weToKLSAgICAg
ICAgICAgIHJldHVybiBDb21wb3NpdGVDb3B5OwotICAgICAgICBjYXNlIENTU1ZhbHVlU291cmNl
T3ZlcjoKLSAgICAgICAgICAgIHJldHVybiBDb21wb3NpdGVTb3VyY2VPdmVyOwotICAgICAgICBj
YXNlIENTU1ZhbHVlU291cmNlSW46Ci0gICAgICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNl
SW47Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTb3VyY2VPdXQ6Ci0gICAgICAgICAgICByZXR1cm4g
Q29tcG9zaXRlU291cmNlT3V0OwotICAgICAgICBjYXNlIENTU1ZhbHVlU291cmNlQXRvcDoKLSAg
ICAgICAgICAgIHJldHVybiBDb21wb3NpdGVTb3VyY2VBdG9wOwotICAgICAgICBjYXNlIENTU1Zh
bHVlRGVzdGluYXRpb25PdmVyOgotICAgICAgICAgICAgcmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0
aW9uT3ZlcjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZURlc3RpbmF0aW9uSW46Ci0gICAgICAgICAg
ICByZXR1cm4gQ29tcG9zaXRlRGVzdGluYXRpb25JbjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZURl
c3RpbmF0aW9uT3V0OgotICAgICAgICAgICAgcmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0aW9uT3V0
OwotICAgICAgICBjYXNlIENTU1ZhbHVlRGVzdGluYXRpb25BdG9wOgotICAgICAgICAgICAgcmV0
dXJuIENvbXBvc2l0ZURlc3RpbmF0aW9uQXRvcDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVhvcjoK
LSAgICAgICAgICAgIHJldHVybiBDb21wb3NpdGVYT1I7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVQ
bHVzRGFya2VyOgotICAgICAgICAgICAgcmV0dXJuIENvbXBvc2l0ZVBsdXNEYXJrZXI7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVQbHVzTGlnaHRlcjoKLSAgICAgICAgICAgIHJldHVybiBDb21wb3Np
dGVQbHVzTGlnaHRlcjsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2Ug
Q1NTVmFsdWVDbGVhcjoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUNsZWFyOworICAgIGNhc2Ug
Q1NTVmFsdWVDb3B5OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlQ29weTsKKyAgICBjYXNlIENT
U1ZhbHVlU291cmNlT3ZlcjoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZU92ZXI7Cisg
ICAgY2FzZSBDU1NWYWx1ZVNvdXJjZUluOgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNl
SW47CisgICAgY2FzZSBDU1NWYWx1ZVNvdXJjZU91dDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0
ZVNvdXJjZU91dDsKKyAgICBjYXNlIENTU1ZhbHVlU291cmNlQXRvcDoKKyAgICAgICAgcmV0dXJu
IENvbXBvc2l0ZVNvdXJjZUF0b3A7CisgICAgY2FzZSBDU1NWYWx1ZURlc3RpbmF0aW9uT3ZlcjoK
KyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0aW9uT3ZlcjsKKyAgICBjYXNlIENTU1Zh
bHVlRGVzdGluYXRpb25JbjoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0aW9uSW47
CisgICAgY2FzZSBDU1NWYWx1ZURlc3RpbmF0aW9uT3V0OgorICAgICAgICByZXR1cm4gQ29tcG9z
aXRlRGVzdGluYXRpb25PdXQ7CisgICAgY2FzZSBDU1NWYWx1ZURlc3RpbmF0aW9uQXRvcDoKKyAg
ICAgICAgcmV0dXJuIENvbXBvc2l0ZURlc3RpbmF0aW9uQXRvcDsKKyAgICBjYXNlIENTU1ZhbHVl
WG9yOgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlWE9SOworICAgIGNhc2UgQ1NTVmFsdWVQbHVz
RGFya2VyOgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlUGx1c0RhcmtlcjsKKyAgICBjYXNlIENT
U1ZhbHVlUGx1c0xpZ2h0ZXI6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVQbHVzTGlnaHRlcjsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTM3OCwyMjMgKzM4NiwyMjQgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbXBvc2l0ZU9wZXJhdG9yKCkgY29uc3QKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb250cm9sUGFy
dCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIE5vQ29udHJvbFBhcnQ6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlQ2hlY2tib3g7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSYWRp
b1BhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSYWRpbzsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFB1c2hCdXR0b25QYXJ0OgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUHVzaEJ1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFNxdWFyZUJ1dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVTcXVhcmVCdXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQnV0dG9u
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQnV0dG9uQmV2ZWxQYXJ0OgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQnV0dG9uQmV2ZWw7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBEZWZhdWx0QnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURlZmF1bHRCdXR0b247Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBJbm5lclNwaW5CdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlSW5uZXJTcGluQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgTGlzdGJveFBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVMaXN0Ym94OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTGlzdEl0ZW1QYXJ0
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTGlzdGl0ZW07Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRvblBhcnQ6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYUVudGVyRnVsbHNjcmVl
bkJ1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhRXhpdEZ1bGxz
Y3JlZW5CdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVk
aWFFeGl0RnVsbHNjcmVlbkJ1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IE1lZGlhUGxheUJ1dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVNZWRpYVBsYXlCdXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRp
YU92ZXJsYXlQbGF5QnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZU1lZGlhT3ZlcmxheVBsYXlCdXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBNZWRpYU11dGVCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlTWVkaWFNdXRlQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
TWVkaWFTZWVrQmFja0J1dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVNZWRpYVNlZWtCYWNrQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgTWVkaWFTZWVrRm9yd2FyZEJ1dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVNZWRpYVNlZWtGb3J3YXJkQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgTWVkaWFSZXdpbmRCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlTWVkaWFSZXdpbmRCdXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b25QYXJ0OgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVRvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
TWVkaWFTbGlkZXJQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVk
aWFTbGlkZXI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYVNsaWRlclRo
dW1iUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhU2xpZGVy
dGh1bWI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRl
ckNvbnRhaW5lclBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRp
YVZvbHVtZVNsaWRlckNvbnRhaW5lcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IE1lZGlhVm9sdW1lU2xpZGVyUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZU1lZGlhVm9sdW1lU2xpZGVyOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
TWVkaWFWb2x1bWVTbGlkZXJNdXRlQnV0dG9uUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbjsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXJ0aHVtYjsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kUGFydDoK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhQ29udHJvbHNCYWNrZ3Jv
dW5kOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVkaWFDb250cm9sc0Z1bGxz
Y3JlZW5CYWNrZ3JvdW5kUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZU1lZGlhQ29udHJvbHNGdWxsc2NyZWVuQmFja2dyb3VuZDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYUZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXI7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlk
ZXJUaHVtYlBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYUZ1
bGxzY3JlZW5Wb2x1bWVTbGlkZXJUaHVtYjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIE1lZGlhQ3VycmVudFRpbWVQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlTWVkaWFDdXJyZW50VGltZURpc3BsYXk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBNZWRpYVRpbWVSZW1haW5pbmdQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlTWVkaWFUaW1lUmVtYWluaW5nRGlzcGxheTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIE1lbnVsaXN0UGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZU1lbnVsaXN0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVu
dWxpc3RCdXR0b25QYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVu
dWxpc3RCdXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZW51bGlzdFRl
eHRQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVudWxpc3RUZXh0
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTWVudWxpc3RUZXh0RmllbGRQYXJ0
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVudWxpc3RUZXh0ZmllbGQ7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNZXRlclBhcnQ6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZXRlcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFJlbGV2YW5jeUxldmVsSW5kaWNhdG9yUGFydDoKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVJlbGV2YW5jeUxldmVsSW5kaWNhdG9yOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ29udGludW91c0NhcGFjaXR5TGV2ZWxJbmRpY2F0b3JQYXJ0
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29udGludW91c0NhcGFjaXR5
TGV2ZWxJbmRpY2F0b3I7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEaXNjcmV0
ZUNhcGFjaXR5TGV2ZWxJbmRpY2F0b3JQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlRGlzY3JldGVDYXBhY2l0eUxldmVsSW5kaWNhdG9yOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgUmF0aW5nTGV2ZWxJbmRpY2F0b3JQYXJ0OgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmF0aW5nTGV2ZWxJbmRpY2F0b3I7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBQcm9ncmVzc0JhclBhcnQ6CisgICAgY2FzZSBOb0NvbnRy
b2xQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUNoZWNrYm94OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJhZGlvUGFydDoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSYWRpbzsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBQdXNoQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVQdXNoQnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNxdWFyZUJ1dHRvblBh
cnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlQnV0dG9uOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlQnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJ1dHRvbkJldmVs
UGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCdXR0b25CZXZlbDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBEZWZhdWx0QnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZWZhdWx0QnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIElubmVyU3BpbkJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlSW5uZXJTcGluQnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExpc3Rib3hQYXJ0
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxpc3Rib3g7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTGlzdEl0ZW1QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUxpc3RpdGVtOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhRW50ZXJGdWxs
c2NyZWVuQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRp
YUVudGVyRnVsbHNjcmVlbkJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZWRpYUV4
aXRGdWxsc2NyZWVuQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVNZWRpYUV4aXRGdWxsc2NyZWVuQnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1l
ZGlhUGxheUJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVk
aWFQbGF5QnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhT3ZlcmxheVBsYXlC
dXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhT3Zlcmxh
eVBsYXlCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFNdXRlQnV0dG9uUGFy
dDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYU11dGVCdXR0b247Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFTZWVrQmFja0J1dHRvblBhcnQ6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFTZWVrQmFja0J1dHRvbjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBNZWRpYVNlZWtGb3J3YXJkQnV0dG9uUGFydDoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVNlZWtGb3J3YXJkQnV0dG9uOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE1lZGlhUmV3aW5kQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVJld2luZEJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvbjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uUGFydDoKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhU2xpZGVyUGFydDoKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVNsaWRlcjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBNZWRpYVNsaWRlclRodW1iUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVNZWRpYVNsaWRlcnRodW1iOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlh
Vm9sdW1lU2xpZGVyQ29udGFpbmVyUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlTWVkaWFWb2x1bWVTbGlkZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFWb2x1
bWVTbGlkZXJNdXRlQnV0dG9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
TWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXJ0aHVtYjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBN
ZWRpYUNvbnRyb2xzQmFja2dyb3VuZFBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTWVkaWFDb250cm9sc0JhY2tncm91bmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
TWVkaWFDb250cm9sc0Z1bGxzY3JlZW5CYWNrZ3JvdW5kUGFydDoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUNvbnRyb2xzRnVsbHNjcmVlbkJhY2tncm91bmQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydDoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUZ1bGxzY3JlZW5Wb2x1bWVTbGlk
ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVy
VGh1bWJQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhRnVsbHNj
cmVlblZvbHVtZVNsaWRlclRodW1iOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhQ3Vy
cmVudFRpbWVQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhQ3Vy
cmVudFRpbWVEaXNwbGF5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lZGlhVGltZVJlbWFp
bmluZ1BhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFUaW1lUmVt
YWluaW5nRGlzcGxheTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNZW51bGlzdFBhcnQ6Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVudWxpc3Q7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTWVudWxpc3RCdXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU1lbnVsaXN0QnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lbnVs
aXN0VGV4dFBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVudWxpc3RU
ZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lbnVsaXN0VGV4dEZpZWxkUGFydDoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZW51bGlzdFRleHRmaWVsZDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBNZXRlclBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTWV0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVsZXZhbmN5TGV2ZWxJ
bmRpY2F0b3JQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlbGV2YW5j
eUxldmVsSW5kaWNhdG9yOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnRpbnVvdXNDYXBh
Y2l0eUxldmVsSW5kaWNhdG9yUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVDb250aW51b3VzQ2FwYWNpdHlMZXZlbEluZGljYXRvcjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBEaXNjcmV0ZUNhcGFjaXR5TGV2ZWxJbmRpY2F0b3JQYXJ0OgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZURpc2NyZXRlQ2FwYWNpdHlMZXZlbEluZGljYXRvcjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBSYXRpbmdMZXZlbEluZGljYXRvclBhcnQ6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmF0aW5nTGV2ZWxJbmRpY2F0b3I7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUHJvZ3Jlc3NCYXJQYXJ0OgogI2lmIEVOQUJMRShQUk9HUkVTU19FTEVN
RU5UKQotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUHJvZ3Jlc3NCYXI7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJvZ3Jlc3NCYXI7CiAjZW5kaWYKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFByb2dyZXNzQmFyVmFsdWVQYXJ0OgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFByb2dyZXNzQmFyVmFsdWVQYXJ0OgogI2lmIEVOQUJMRShQ
Uk9HUkVTU19FTEVNRU5UKQotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUHJv
Z3Jlc3NCYXJWYWx1ZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQcm9ncmVz
c0JhclZhbHVlOwogI2VuZGlmCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTbGlk
ZXJIb3Jpem9udGFsUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNs
aWRlckhvcml6b250YWw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTbGlkZXJW
ZXJ0aWNhbFBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTbGlkZXJW
ZXJ0aWNhbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNsaWRlclRodW1iSG9y
aXpvbnRhbFBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTbGlkZXJ0
aHVtYkhvcml6b250YWw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBTbGlkZXJU
aHVtYlZlcnRpY2FsUGFydDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNs
aWRlcnRodW1iVmVydGljYWw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDYXJl
dFBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDYXJldDsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNlYXJjaEZpZWxkUGFydDoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNlYXJjaGZpZWxkOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgU2VhcmNoRmllbGREZWNvcmF0aW9uUGFydDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNlYXJjaGZpZWxkRGVjb3JhdGlvbjsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25QYXJ0Ogot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2VhcmNoZmllbGRSZXN1bHRzRGVj
b3JhdGlvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNlYXJjaEZpZWxkUmVz
dWx0c0J1dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTZWFy
Y2hmaWVsZFJlc3VsdHNCdXR0b247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBT
ZWFyY2hGaWVsZENhbmNlbEJ1dHRvblBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVTZWFyY2hmaWVsZENhbmNlbEJ1dHRvbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFNuYXBzaG90dGVkUGx1Z2luT3ZlcmxheVBhcnQ6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBUZXh0RmllbGRQYXJ0OgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlVGV4dGZpZWxkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgVGV4dEFyZWFQYXJ0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
VGV4dGFyZWE7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDYXBzTG9ja0luZGlj
YXRvclBhcnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDYXBzTG9ja0lu
ZGljYXRvcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIElucHV0U3BlZWNoQnV0
dG9uUGFydDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTbGlkZXJIb3Jpem9udGFsUGFydDoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbGlkZXJIb3Jpem9udGFsOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNsaWRlclZlcnRpY2FsUGFydDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbGlkZXJWZXJ0aWNhbDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVNsaWRlcnRodW1iSG9yaXpvbnRhbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVTbGlkZXJ0aHVtYlZlcnRpY2FsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENhcmV0
UGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDYXJldDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBTZWFyY2hGaWVsZFBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU2VhcmNoZmllbGQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VhcmNo
RmllbGREZWNvcmF0aW9uUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
ZWFyY2hmaWVsZERlY29yYXRpb247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VhcmNoRmll
bGRSZXN1bHRzRGVjb3JhdGlvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlU2VhcmNoZmllbGRSZXN1bHRzRGVjb3JhdGlvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25QYXJ0OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVNlYXJjaGZpZWxkUmVzdWx0c0J1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU2VhcmNoZmllbGRDYW5jZWxCdXR0b247CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgU25hcHNob3R0ZWRQbHVnaW5PdmVybGF5UGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgVGV4dEZpZWxkUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVUZXh0ZmllbGQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVGV4dEFyZWFQYXJ0OgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRhcmVhOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENhcHNMb2NrSW5kaWNhdG9yUGFydDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDYXBzTG9ja0luZGljYXRvcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJ
bnB1dFNwZWVjaEJ1dHRvblBhcnQ6CiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdElucHV0U3BlZWNoQnV0dG9uOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdElucHV0U3BlZWNoQnV0dG9uOwog
I2VuZGlmCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29udHJvbFBhcnQo
KSBjb25zdAogewotICAgIGlmIChtX3ZhbHVlLmlkZW50ID09IENTU1ZhbHVlTm9uZSkKKyAgICBp
ZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAgcmV0dXJuIE5vQ29u
dHJvbFBhcnQ7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gQ29udHJvbFBhcnQobV92YWx1ZS5p
ZGVudCAtIENTU1ZhbHVlQ2hlY2tib3ggKyAxKTsKKyAgICByZXR1cm4gQ29udHJvbFBhcnQobV92
YWx1ZS52YWx1ZUlEIC0gQ1NTVmFsdWVDaGVja2JveCArIDEpOwogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJhY2tmYWNlVmlzaWJp
bGl0eSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZB
TFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQmFja2ZhY2VWaXNpYmlsaXR5Vmlz
aWJsZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmlzaWJsZTsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaXNpYmxlOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEJhY2tmYWNlVmlzaWJpbGl0eUhpZGRlbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlSGlkZGVuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpZGRlbjsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRUJhY2tmYWNlVmlzaWJpbGl0eSgpIGNvbnN0CiB7Ci0gICAgc3dp
dGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAg
ICBjYXNlIENTU1ZhbHVlVmlzaWJsZToKICAgICAgICAgcmV0dXJuIEJhY2tmYWNlVmlzaWJpbGl0
eVZpc2libGU7CiAgICAgY2FzZSBDU1NWYWx1ZUhpZGRlbjoKICAgICAgICAgcmV0dXJuIEJhY2tm
YWNlVmlzaWJpbGl0eUhpZGRlbjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTYwNSwyOSArNjE0LDMxIEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQmFja2ZhY2VWaXNpYmls
aXR5KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShFRmlsbEF0dGFjaG1lbnQgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNs
YXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAg
Y2FzZSBTY3JvbGxCYWNrZ3JvdW5kQXR0YWNobWVudDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZVNjcm9sbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExv
Y2FsQmFja2dyb3VuZEF0dGFjaG1lbnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVMb2NhbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEZpeGVkQmFja2dy
b3VuZEF0dGFjaG1lbnQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVGaXhl
ZDsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2Nyb2xsQmFja2dyb3VuZEF0dGFjaG1l
bnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2Nyb2xsOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIExvY2FsQmFja2dyb3VuZEF0dGFjaG1lbnQ6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTG9jYWw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRml4
ZWRCYWNrZ3JvdW5kQXR0YWNobWVudDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVGaXhlZDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZpbGxBdHRhY2htZW50KCkgY29uc3QKIHsKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVNjcm9sbDoK
LSAgICAgICAgICAgIHJldHVybiBTY3JvbGxCYWNrZ3JvdW5kQXR0YWNobWVudDsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUxvY2FsOgotICAgICAgICAgICAgcmV0dXJuIExvY2FsQmFja2dyb3VuZEF0
dGFjaG1lbnQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVGaXhlZDoKLSAgICAgICAgICAgIHJldHVy
biBGaXhlZEJhY2tncm91bmRBdHRhY2htZW50OworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CisgICAgY2FzZSBDU1NWYWx1ZVNjcm9sbDoKKyAgICAgICAgcmV0dXJuIFNjcm9sbEJhY2tn
cm91bmRBdHRhY2htZW50OworICAgIGNhc2UgQ1NTVmFsdWVMb2NhbDoKKyAgICAgICAgcmV0dXJu
IExvY2FsQmFja2dyb3VuZEF0dGFjaG1lbnQ7CisgICAgY2FzZSBDU1NWYWx1ZUZpeGVkOgorICAg
ICAgICByZXR1cm4gRml4ZWRCYWNrZ3JvdW5kQXR0YWNobWVudDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTYzNywz
OCArNjQ4LDQwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFRmlsbEF0dGFjaG1lbnQoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVGaWxsQm94IGUpCiAgICAgOiBDU1NWYWx1ZShQcmlt
aXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0g
ICAgICAgIGNhc2UgQm9yZGVyRmlsbEJveDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUJvcmRlckJveDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBhZGRp
bmdGaWxsQm94OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUGFkZGluZ0Jv
eDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbnRlbnRGaWxsQm94OgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29udGVudEJveDsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFRleHRGaWxsQm94OgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlVGV4dDsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQm9yZGVy
RmlsbEJveDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXJCb3g7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFkZGluZ0ZpbGxCb3g6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUGFkZGluZ0JveDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
b250ZW50RmlsbEJveDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250ZW50
Qm94OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRleHRGaWxsQm94OgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHQ7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGaWxsQm94KCkg
Y29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NW
YWx1ZUJvcmRlcjoKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJvcmRlckJveDoKLSAgICAgICAgICAg
IHJldHVybiBCb3JkZXJGaWxsQm94OwotICAgICAgICBjYXNlIENTU1ZhbHVlUGFkZGluZzoKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZVBhZGRpbmdCb3g6Ci0gICAgICAgICAgICByZXR1cm4gUGFkZGlu
Z0ZpbGxCb3g7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVDb250ZW50OgotICAgICAgICBjYXNlIENT
U1ZhbHVlQ29udGVudEJveDoKLSAgICAgICAgICAgIHJldHVybiBDb250ZW50RmlsbEJveDsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZVRleHQ6Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRUZXh0
OgotICAgICAgICAgICAgcmV0dXJuIFRleHRGaWxsQm94OworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUJvcmRlcjoKKyAgICBjYXNlIENTU1ZhbHVlQm9y
ZGVyQm94OgorICAgICAgICByZXR1cm4gQm9yZGVyRmlsbEJveDsKKyAgICBjYXNlIENTU1ZhbHVl
UGFkZGluZzoKKyAgICBjYXNlIENTU1ZhbHVlUGFkZGluZ0JveDoKKyAgICAgICAgcmV0dXJuIFBh
ZGRpbmdGaWxsQm94OworICAgIGNhc2UgQ1NTVmFsdWVDb250ZW50OgorICAgIGNhc2UgQ1NTVmFs
dWVDb250ZW50Qm94OgorICAgICAgICByZXR1cm4gQ29udGVudEZpbGxCb3g7CisgICAgY2FzZSBD
U1NWYWx1ZVRleHQ6CisgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdFRleHQ6CisgICAgICAgIHJldHVy
biBUZXh0RmlsbEJveDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTY3OCwzNCArNjkxLDM2IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmlsbEJveCgpIGNvbnN0CiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUZpbGxS
ZXBlYXQgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0
aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19W
QUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBSZXBlYXRGaWxsOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmVwZWF0OwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgTm9SZXBlYXRGaWxsOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlTm9SZXBlYXQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBS
b3VuZEZpbGw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSb3VuZDsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNwYWNlRmlsbDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNwYWNlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBSZXBlYXRGaWxsOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlcGVhdDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOb1JlcGVhdEZpbGw6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlTm9SZXBlYXQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUm91
bmRGaWxsOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJvdW5kOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFNwYWNlRmlsbDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTcGFjZTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZpbGxSZXBlYXQoKSBjb25zdAogewot
ICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlUmVwZWF0
OgotICAgICAgICAgICAgcmV0dXJuIFJlcGVhdEZpbGw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVO
b1JlcGVhdDoKLSAgICAgICAgICAgIHJldHVybiBOb1JlcGVhdEZpbGw7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVSb3VuZDoKLSAgICAgICAgICAgIHJldHVybiBSb3VuZEZpbGw7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVTcGFjZToKLSAgICAgICAgICAgIHJldHVybiBTcGFjZUZpbGw7CisgICAgc3dp
dGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlUmVwZWF0OgorICAgICAg
ICByZXR1cm4gUmVwZWF0RmlsbDsKKyAgICBjYXNlIENTU1ZhbHVlTm9SZXBlYXQ6CisgICAgICAg
IHJldHVybiBOb1JlcGVhdEZpbGw7CisgICAgY2FzZSBDU1NWYWx1ZVJvdW5kOgorICAgICAgICBy
ZXR1cm4gUm91bmRGaWxsOworICAgIGNhc2UgQ1NTVmFsdWVTcGFjZToKKyAgICAgICAgcmV0dXJu
IFNwYWNlRmlsbDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTcxNSwyNiArNzMwLDI2IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmlsbFJlcGVhdCgpIGNvbnN0CiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJveFBh
Y2sgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxV
RV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFN0YXJ0OgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVTdGFydDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTdGFydDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDZW50ZXI6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUNlbnRlcjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVDZW50ZXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRW5kOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRW5kOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEp1c3RpZnk6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUp1c3RpZnk7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlSnVzdGlmeTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveFBhY2soKSBjb25zdAogewotICAg
IHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CiAgICAgY2FzZSBDU1NWYWx1ZVN0YXJ0OgogICAgICAgICByZXR1cm4gU3RhcnQ7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUVuZDoKQEAgLTc0Myw2ICs3NTgsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveFBhY2soKSBjb25zdAogICAgICAgICByZXR1cm4g
Q2VudGVyOwogICAgIGNhc2UgQ1NTVmFsdWVKdXN0aWZ5OgogICAgICAgICByZXR1cm4gSnVzdGlm
eTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTc1MiwzOSArNzY5LDQxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94UGFjaygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJveEFsaWdubWVudCBlKQog
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwog
ICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIEJTVFJFVENIOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3RyZXRjaDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIEJTVEFSVDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXJ0
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQkNFTlRFUjoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNlbnRlcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIEJFTkQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFbmQ7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCQkFTRUxJTkU6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCYXNlbGluZTsKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQlNUUkVUQ0g6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3Ry
ZXRjaDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCU1RBUlQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU3RhcnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQkNFTlRF
UjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQkVORDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVF
bmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQkJBU0VMSU5FOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUJhc2VsaW5lOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAK
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94QWxpZ25t
ZW50KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZVN0cmV0Y2g6Ci0gICAgICAgICAgICByZXR1cm4gQlNUUkVUQ0g7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVTdGFydDoKLSAgICAgICAgICAgIHJldHVybiBCU1RBUlQ7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVFbmQ6Ci0gICAgICAgICAgICByZXR1cm4gQkVORDsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUNlbnRlcjoKLSAgICAgICAgICAgIHJldHVybiBCQ0VOVEVSOwotICAgICAgICBj
YXNlIENTU1ZhbHVlQmFzZWxpbmU6Ci0gICAgICAgICAgICByZXR1cm4gQkJBU0VMSU5FOworICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVN0cmV0Y2g6Cisg
ICAgICAgIHJldHVybiBCU1RSRVRDSDsKKyAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CisgICAgICAg
IHJldHVybiBCU1RBUlQ7CisgICAgY2FzZSBDU1NWYWx1ZUVuZDoKKyAgICAgICAgcmV0dXJuIEJF
TkQ7CisgICAgY2FzZSBDU1NWYWx1ZUNlbnRlcjoKKyAgICAgICAgcmV0dXJuIEJDRU5URVI7Cisg
ICAgY2FzZSBDU1NWYWx1ZUJhc2VsaW5lOgorICAgICAgICByZXR1cm4gQkJBU0VMSU5FOworICAg
IGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtNzk1LDI0ICs4MTQsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVCb3hBbGlnbm1lbnQoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCb3hEZWNvcmF0aW9uQnJlYWsg
ZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9J
RDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIERTTElDRToKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlU2xpY2U7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
U2xpY2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRENMT05FOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVDbG9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVDbG9uZTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveERlY29yYXRpb25CcmVhaygpIGNvbnN0CiB7
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVl
SUQpIHsKICAgICBjYXNlIENTU1ZhbHVlU2xpY2U6CiAgICAgICAgIHJldHVybiBEU0xJQ0U7CiAg
ICAgY2FzZSBDU1NWYWx1ZUNsb25lOgogICAgICAgICByZXR1cm4gRENMT05FOworICAgIGRlZmF1
bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtODIzLDI2ICs4NDQsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVCb3hEZWNvcmF0aW9uQnJlYWsoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJhY2tncm91bmRFZGdlT3JpZ2lu
IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVu
aXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVf
SUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUb3BFZGdlOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVUb3A7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
VG9wOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJpZ2h0RWRnZToKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlUmlnaHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm90dG9tRWRnZToKLSAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQm90dG9tOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUJvdHRvbTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMZWZ0RWRnZToKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVMZWZ0OwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCYWNrZ3JvdW5kRWRnZU9yaWdp
bigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlVG9wOgogICAgICAgICByZXR1cm4g
VG9wRWRnZTsKICAgICBjYXNlIENTU1ZhbHVlUmlnaHQ6CkBAIC04NTEsNiArODcyLDggQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJhY2tncm91bmRFZGdl
T3JpZ2luKCkgY29uc3QKICAgICAgICAgcmV0dXJuIEJvdHRvbUVkZ2U7CiAgICAgY2FzZSBDU1NW
YWx1ZUxlZnQ6CiAgICAgICAgIHJldHVybiBMZWZ0RWRnZTsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTg2MCwyNCAr
ODgzLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBC
YWNrZ3JvdW5kRWRnZU9yaWdpbigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJveFNpemluZyBlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgQk9SREVSX0JPWDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
Qm9yZGVyQm94OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvcmRlckJveDsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDT05URU5UX0JPWDoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlQ29udGVudEJveDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVDb250ZW50Qm94OwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94U2l6aW5nKCkgY29uc3QKIHsK
LSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJ
RCkgewogICAgIGNhc2UgQ1NTVmFsdWVCb3JkZXJCb3g6CiAgICAgICAgIHJldHVybiBCT1JERVJf
Qk9YOwogICAgIGNhc2UgQ1NTVmFsdWVDb250ZW50Qm94OgogICAgICAgICByZXR1cm4gQ09OVEVO
VF9CT1g7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC04ODcsMjQgKzkxMiwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveFNpemluZygpIGNvbnN0CiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJveERpcmVjdGlv
biBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIEJOT1JNQUw6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBCUkVWRVJTRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVJldmVyc2U7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIEJOT1JNQUw6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEJSRVZFUlNFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJldmVyc2U7
CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hEaXJlY3Rpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAo
bV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgotICAgICAgICAg
ICAgcmV0dXJuIEJOT1JNQUw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVSZXZlcnNlOgotICAgICAg
ICAgICAgcmV0dXJuIEJSRVZFUlNFOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7Cisg
ICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKKyAgICAgICAgcmV0dXJuIEJOT1JNQUw7CisgICAgY2Fz
ZSBDU1NWYWx1ZVJldmVyc2U6CisgICAgICAgIHJldHVybiBCUkVWRVJTRTsKKyAgICBkZWZhdWx0
OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTkxNCwyNCArOTQxLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFQm94RGlyZWN0aW9uKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQm94TGluZXMgZSkKICAgICA6IENTU1ZhbHVl
KFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7
CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUp
IHsKLSAgICAgICAgY2FzZSBTSU5HTEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVTaW5nbGU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNVUxUSVBMRToK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU11bHRpcGxlOwotICAgICAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTSU5HTEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlU2luZ2xlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1VTFRJUExFOgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU11bHRpcGxlOworICAgICAgICBicmVhazsKICAg
ICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBF
Qm94TGluZXMoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAg
ICBjYXNlIENTU1ZhbHVlU2luZ2xlOgotICAgICAgICAgICAgcmV0dXJuIFNJTkdMRTsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZU11bHRpcGxlOgotICAgICAgICAgICAgcmV0dXJuIE1VTFRJUExFOwor
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVNpbmdsZToK
KyAgICAgICAgcmV0dXJuIFNJTkdMRTsKKyAgICBjYXNlIENTU1ZhbHVlTXVsdGlwbGU6CisgICAg
ICAgIHJldHVybiBNVUxUSVBMRTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTk0MSwyNiArOTcwLDI4IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm94TGluZXMoKSBjb25z
dAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KEVCb3hPcmllbnQgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1f
cHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9
IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBIT1JJWk9OVEFM
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSG9yaXpvbnRhbDsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFZFUlRJQ0FMOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlVmVydGljYWw7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNl
IEhPUklaT05UQUw6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSG9yaXpvbnRh
bDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWRVJUSUNBTDoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveE9yaWVudCgp
IGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NT
VmFsdWVIb3Jpem9udGFsOgotICAgICAgICBjYXNlIENTU1ZhbHVlSW5saW5lQXhpczoKLSAgICAg
ICAgICAgIHJldHVybiBIT1JJWk9OVEFMOwotICAgICAgICBjYXNlIENTU1ZhbHVlVmVydGljYWw6
Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVCbG9ja0F4aXM6Ci0gICAgICAgICAgICByZXR1cm4gVkVS
VElDQUw7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVl
SG9yaXpvbnRhbDoKKyAgICBjYXNlIENTU1ZhbHVlSW5saW5lQXhpczoKKyAgICAgICAgcmV0dXJu
IEhPUklaT05UQUw7CisgICAgY2FzZSBDU1NWYWx1ZVZlcnRpY2FsOgorICAgIGNhc2UgQ1NTVmFs
dWVCbG9ja0F4aXM6CisgICAgICAgIHJldHVybiBWRVJUSUNBTDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTk3MCwz
NCArMTAwMSwzNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRUJveE9yaWVudCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUNhcHRpb25TaWRlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmlt
aXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0g
ICAgICAgIGNhc2UgQ0FQTEVGVDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUxlZnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDQVBSSUdIVDoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJpZ2h0OwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQ0FQVE9QOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlVG9wOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ0FQQk9UVE9NOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQm90dG9tOwotICAgICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDQVBMRUZUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUxlZnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ0FQUklHSFQ6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ0FQ
VE9QOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRvcDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDQVBCT1RUT006CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQm90dG9tOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ2FwdGlvblNpZGUoKSBjb25zdAogewotICAg
IHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlTGVmdDoKLSAg
ICAgICAgICAgIHJldHVybiBDQVBMRUZUOwotICAgICAgICBjYXNlIENTU1ZhbHVlUmlnaHQ6Ci0g
ICAgICAgICAgICByZXR1cm4gQ0FQUklHSFQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUb3A6Ci0g
ICAgICAgICAgICByZXR1cm4gQ0FQVE9QOwotICAgICAgICBjYXNlIENTU1ZhbHVlQm90dG9tOgot
ICAgICAgICAgICAgcmV0dXJuIENBUEJPVFRPTTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJ
RCkgeworICAgIGNhc2UgQ1NTVmFsdWVMZWZ0OgorICAgICAgICByZXR1cm4gQ0FQTEVGVDsKKyAg
ICBjYXNlIENTU1ZhbHVlUmlnaHQ6CisgICAgICAgIHJldHVybiBDQVBSSUdIVDsKKyAgICBjYXNl
IENTU1ZhbHVlVG9wOgorICAgICAgICByZXR1cm4gQ0FQVE9QOworICAgIGNhc2UgQ1NTVmFsdWVC
b3R0b206CisgICAgICAgIHJldHVybiBDQVBCT1RUT007CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDA3LDM0ICsx
MDQwLDM2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBF
Q2FwdGlvblNpZGUoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEVDbGVhciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xh
c3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1p
dGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBj
YXNlIENOT05FOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENMRUZUOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlTGVmdDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IENSSUdIVDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJpZ2h0OwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ0JPVEg6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVCb3RoOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDTk9O
RToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENMRUZUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxl
ZnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1JJR0hUOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVJpZ2h0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENCT1RIOgor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvdGg7CisgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVDbGVhcigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVOb25lOgotICAgICAgICAgICAgcmV0dXJuIENOT05FOwotICAgICAgICBj
YXNlIENTU1ZhbHVlTGVmdDoKLSAgICAgICAgICAgIHJldHVybiBDTEVGVDsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZVJpZ2h0OgotICAgICAgICAgICAgcmV0dXJuIENSSUdIVDsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUJvdGg6Ci0gICAgICAgICAgICByZXR1cm4gQ0JPVEg7CisgICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJu
IENOT05FOworICAgIGNhc2UgQ1NTVmFsdWVMZWZ0OgorICAgICAgICByZXR1cm4gQ0xFRlQ7Cisg
ICAgY2FzZSBDU1NWYWx1ZVJpZ2h0OgorICAgICAgICByZXR1cm4gQ1JJR0hUOworICAgIGNhc2Ug
Q1NTVmFsdWVCb3RoOgorICAgICAgICByZXR1cm4gQ0JPVEg7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDQ0LDEy
NiArMTA3OSwxMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVDbGVhcigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoRUN1cnNvciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xh
c3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1p
dGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBj
YXNlIENVUlNPUl9BVVRPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0
bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9DUk9TUzoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNyb3NzaGFpcjsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9ERUZBVUxUOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlRGVmYXVsdDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IENVUlNPUl9QT0lOVEVSOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUG9p
bnRlcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9NT1ZFOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTW92ZTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIENVUlNPUl9DRUxMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlQ2VsbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9W
RVJUSUNBTF9URVhUOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmVydGlj
YWxUZXh0OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX0NPTlRFWFRf
TUVOVToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbnRleHRNZW51Owot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX0FMSUFTOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWxpYXM7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBDVVJTT1JfQ09QWToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUNvcHk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfTk9ORToK
LSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfUFJPR1JFU1M6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVQcm9ncmVzczsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIENVUlNPUl9OT19EUk9QOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
Tm9Ecm9wOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX05PVF9BTExP
V0VEOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm90QWxsb3dlZDsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9XRUJLSVRfWk9PTV9JTjoKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdFpvb21JbjsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9XRUJLSVRfWk9PTV9PVVQ6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRab29tT3V0OwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX0VfUkVTSVpFOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlRVJlc2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIENVUlNPUl9ORV9SRVNJWkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVOZVJlc2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9OV19S
RVNJWkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOd1Jlc2l6ZTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9OX1JFU0laRToKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5SZXNpemU7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBDVVJTT1JfU0VfUkVTSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlU2VSZXNpemU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBD
VVJTT1JfU1dfUkVTSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3dS
ZXNpemU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfU19SRVNJWkU6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTUmVzaXplOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1VSU09SX1dfUkVTSVpFOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlV1Jlc2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIENVUlNPUl9FV19SRVNJWkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVFd1Jlc2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9O
U19SRVNJWkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOc1Jlc2l6ZTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9ORVNXX1JFU0laRToKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5lc3dSZXNpemU7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBDVVJTT1JfTldTRV9SRVNJWkU6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOd3NlUmVzaXplOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQ1VSU09SX0NPTF9SRVNJWkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVDb2xSZXNpemU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBD
VVJTT1JfUk9XX1JFU0laRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJv
d1Jlc2l6ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9URVhUOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4dDsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9XQUlUOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlV2FpdDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNP
Ul9IRUxQOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGVscDsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENVUlNPUl9BTExfU0NST0xMOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWxsU2Nyb2xsOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQ1VSU09SX1dFQktJVF9HUkFCOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlV2Via2l0R3JhYjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIENVUlNPUl9XRUJLSVRfR1JBQkJJTkc6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVXZWJraXRHcmFiYmluZzsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VS
U09SX0FVVE86CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfQ1JPU1M6CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlQ3Jvc3NoYWlyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9E
RUZBVUxUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlZmF1bHQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1BPSU5URVI6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlUG9pbnRlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1Jf
TU9WRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNb3ZlOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENVUlNPUl9DRUxMOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUNlbGw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1ZFUlRJQ0FMX1RF
WFQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmVydGljYWxUZXh0OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9DT05URVhUX01FTlU6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQ29udGV4dE1lbnU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1VSU09SX0FMSUFTOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFsaWFz
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9DT1BZOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUNvcHk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09S
X05PTkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDVVJTT1JfUFJPR1JFU1M6CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlUHJvZ3Jlc3M7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX05P
X0RST1A6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9Ecm9wOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9OT1RfQUxMT1dFRDoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVOb3RBbGxvd2VkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENV
UlNPUl9XRUJLSVRfWk9PTV9JTjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVX
ZWJraXRab29tSW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1dFQktJVF9aT09N
X09VVDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRab29tT3V0Owor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9FX1JFU0laRToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVFUmVzaXplOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENV
UlNPUl9ORV9SRVNJWkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTmVSZXNp
emU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX05XX1JFU0laRToKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOd1Jlc2l6ZTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDVVJTT1JfTl9SRVNJWkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TlJlc2l6ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfU0VfUkVTSVpFOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNlUmVzaXplOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENVUlNPUl9TV19SRVNJWkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlU3dSZXNpemU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1NfUkVTSVpF
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNSZXNpemU7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ1VSU09SX1dfUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVdSZXNpemU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX0VXX1JF
U0laRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFd1Jlc2l6ZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfTlNfUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5zUmVzaXplOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNP
Ul9ORVNXX1JFU0laRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOZXN3UmVz
aXplOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9OV1NFX1JFU0laRToKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOd3NlUmVzaXplOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENVUlNPUl9DT0xfUkVTSVpFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUNvbFJlc2l6ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfUk9XX1JF
U0laRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3dSZXNpemU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX1RFWFQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlVGV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDVVJTT1JfV0FJVDoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXYWl0OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENVUlNPUl9IRUxQOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUhlbHA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1VSU09SX0FMTF9TQ1JPTEw6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxsU2Nyb2xsOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENVUlNPUl9XRUJLSVRfR1JBQjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVXZWJraXRHcmFiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENVUlNPUl9XRUJL
SVRfR1JBQkJJTkc6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0R3Jh
YmJpbmc7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDdXJzb3IoKSBjb25zdAogewotICAgIGlmIChtX3Zh
bHVlLmlkZW50ID09IENTU1ZhbHVlQ29weSkKKyAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENT
U1ZhbHVlQ29weSkKICAgICAgICAgcmV0dXJuIENVUlNPUl9DT1BZOwotICAgIGlmIChtX3ZhbHVl
LmlkZW50ID09IENTU1ZhbHVlTm9uZSkKKyAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1Zh
bHVlTm9uZSkKICAgICAgICAgcmV0dXJuIENVUlNPUl9OT05FOwotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxFQ3Vyc29yPihtX3ZhbHVlLmlkZW50IC0gQ1NTVmFsdWVBdXRvKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8RUN1cnNvcj4obV92YWx1ZS52YWx1ZUlEIC0gQ1NTVmFsdWVBdXRvKTsKIH0K
IAogCkBAIC0xMTcxLDIyICsxMjA2LDIyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBFQ3Vyc29yKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDdXJzb3JWaXNpYmlsaXR5IGUpCiAgICAg
OiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAg
c3dpdGNoIChlKSB7CiAgICAgY2FzZSBDdXJzb3JWaXNpYmlsaXR5QXV0bzoKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVBdXRvOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclZpc2liaWxpdHlBdXRv
SGlkZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0b0hpZGU7CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0b0hpZGU7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEN1
cnNvclZpc2liaWxpdHkoKSBjb25zdAogewotICAgIGlmIChtX3ZhbHVlLmlkZW50ID09IENTU1Zh
bHVlQXV0bykKKyAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlQXV0bykKICAgICAg
ICAgcmV0dXJuIEN1cnNvclZpc2liaWxpdHlBdXRvOwotICAgIGlmIChtX3ZhbHVlLmlkZW50ID09
IENTU1ZhbHVlQXV0b0hpZGUpCisgICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1ZUF1
dG9IaWRlKQogICAgICAgICByZXR1cm4gQ3Vyc29yVmlzaWJpbGl0eUF1dG9IaWRlOwogCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMTk3LDg2ICsxMjMyLDg2IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDdXJzb3JWaXNpYmlsaXR5KCkgY29u
c3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShFRGlzcGxheSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIElOTElORToKLSAg
ICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUlubGluZTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIEJMT0NLOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQmxvY2s7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBMSVNUX0lURU06
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMaXN0SXRlbTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJVTl9JTjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZVJ1bkluOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ09N
UEFDVDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbXBhY3Q7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBJTkxJTkVfQkxPQ0s6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVJbmxpbmVCbG9jazsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFRBQkxFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
VGFibGU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBJTkxJTkVfVEFCTEU6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVJbmxpbmVUYWJsZTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRBQkxFX1JPV19HUk9VUDoKLSAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRhYmxlUm93R3JvdXA7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBUQUJMRV9IRUFERVJfR1JPVVA6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVUYWJsZUhlYWRlckdyb3VwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgVEFCTEVfRk9PVEVSX0dST1VQOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlVGFibGVGb290ZXJHcm91cDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFRBQkxFX1JPVzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRhYmxl
Um93OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVEFCTEVfQ09MVU1OX0dST1VQ
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGFibGVDb2x1bW5Hcm91cDsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRBQkxFX0NPTFVNTjoKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRhYmxlQ29sdW1uOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgVEFCTEVfQ0VMTDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVRhYmxlQ2VsbDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRB
QkxFX0NBUFRJT046Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUYWJsZUNh
cHRpb247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCT1g6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRCb3g7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBJTkxJTkVfQk9YOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlV2Via2l0SW5saW5lQm94OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
RkxFWDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdEZsZXg7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBJTkxJTkVfRkxFWDoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdElubGluZUZsZXg7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBHUklEOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlV2Via2l0R3JpZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIElOTElO
RV9HUklEOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0SW5saW5l
R3JpZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5PTkU6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOwotICAgICAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBJTkxJTkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5lOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEJMT0NLOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUJsb2NrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExJU1RfSVRFTToKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMaXN0SXRlbTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBSVU5fSU46CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUnVu
SW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ09NUEFDVDoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVDb21wYWN0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIElOTElO
RV9CTE9DSzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmVCbG9jazsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUQUJMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVUYWJsZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJTkxJTkVfVEFCTEU6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5lVGFibGU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVEFCTEVfUk9XX0dST1VQOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVRhYmxlUm93R3JvdXA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFC
TEVfSEVBREVSX0dST1VQOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxl
SGVhZGVyR3JvdXA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFCTEVfRk9PVEVSX0dST1VQ
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlRm9vdGVyR3JvdXA7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFCTEVfUk9XOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVRhYmxlUm93OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRBQkxFX0NP
TFVNTl9HUk9VUDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZUNvbHVt
bkdyb3VwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRBQkxFX0NPTFVNTjoKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZUNvbHVtbjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBUQUJMRV9DRUxMOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRh
YmxlQ2VsbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUQUJMRV9DQVBUSU9OOgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlQ2FwdGlvbjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBCT1g6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0
Qm94OworICAgICAgICBicmVhazsKKyAgICBjYXNlIElOTElORV9CT1g6CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0SW5saW5lQm94OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEZMRVg6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0Rmxl
eDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJTkxJTkVfRkxFWDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRJbmxpbmVGbGV4OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEdSSUQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0R3Jp
ZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJTkxJTkVfR1JJRDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRJbmxpbmVHcmlkOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE5PTkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgRURpc3BsYXkoKSBjb25zdAogewotICAgIGlmIChtX3ZhbHVlLmlkZW50
ID09IENTU1ZhbHVlTm9uZSkKKyAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlTm9u
ZSkKICAgICAgICAgcmV0dXJuIE5PTkU7CiAKLSAgICBFRGlzcGxheSBkaXNwbGF5ID0gc3RhdGlj
X2Nhc3Q8RURpc3BsYXk+KG1fdmFsdWUuaWRlbnQgLSBDU1NWYWx1ZUlubGluZSk7CisgICAgRURp
c3BsYXkgZGlzcGxheSA9IHN0YXRpY19jYXN0PEVEaXNwbGF5PihtX3ZhbHVlLnZhbHVlSUQgLSBD
U1NWYWx1ZUlubGluZSk7CiAgICAgQVNTRVJUKGRpc3BsYXkgPj0gSU5MSU5FICYmIGRpc3BsYXkg
PD0gTk9ORSk7CiAgICAgcmV0dXJuIGRpc3BsYXk7CiB9CkBAIC0xMjg0LDI0ICsxMzE5LDI2IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRGlzcGxheSgp
IGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoRUVtcHR5Q2VsbCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIFNIT1c6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTaG93OwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgSElERToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUhpZGU7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIFNIT1c6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2hvdzsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBISURFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpZGU7CisgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVFbXB0eUNlbGwoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVu
dCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlU2hvdzoKLSAgICAgICAgICAgIHJldHVybiBTSE9X
OwotICAgICAgICBjYXNlIENTU1ZhbHVlSGlkZToKLSAgICAgICAgICAgIHJldHVybiBISURFOwor
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVNob3c6Cisg
ICAgICAgIHJldHVybiBTSE9XOworICAgIGNhc2UgQ1NTVmFsdWVIaWRlOgorICAgICAgICByZXR1
cm4gSElERTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEzMTEsMzIgKzEzNDgsMzIgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVFbXB0eUNlbGwoKSBjb25zdAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVBbGlnbkl0
ZW1zIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2
ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFM
VUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBBbGlnbkF1dG86Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQXV0bzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkZsZXhTdGFydDoKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRmxleFN0YXJ0OworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUZsZXhTdGFydDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBB
bGlnbkZsZXhFbmQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZsZXhFbmQ7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmxleEVuZDsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBBbGlnbkNlbnRlcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
Q2VudGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnblN0cmV0Y2g6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVN0cmV0Y2g7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3Ry
ZXRjaDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkJhc2VsaW5lOgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCYXNlbGluZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVCYXNlbGluZTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWduSXRlbXMoKSBjb25z
dAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBBbGlnbkF1
dG87CiAgICAgY2FzZSBDU1NWYWx1ZUZsZXhTdGFydDoKQEAgLTEzNDksNiArMTM4Niw4IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQWxpZ25JdGVtcygp
IGNvbnN0CiAgICAgICAgIHJldHVybiBBbGlnblN0cmV0Y2g7CiAgICAgY2FzZSBDU1NWYWx1ZUJh
c2VsaW5lOgogICAgICAgICByZXR1cm4gQWxpZ25CYXNlbGluZTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEzNTgs
MjkgKzEzOTcsMjkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVBbGlnbkl0ZW1zKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFSnVzdGlmeUNvbnRlbnQgZSkKICAgICA6IENTU1ZhbHVl
KFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7
CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUp
IHsKICAgICBjYXNlIEp1c3RpZnlGbGV4U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUZsZXhTdGFydDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbGV4
U3RhcnQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSnVzdGlmeUZsZXhFbmQ6Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZsZXhFbmQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlRmxleEVuZDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBKdXN0aWZ5Q2Vu
dGVyOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudGVyOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEp1c3RpZnlTcGFjZUJldHdlZW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNw
YWNlQmV0d2VlbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcGFjZUJldHdl
ZW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSnVzdGlmeVNwYWNlQXJvdW5kOgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcGFjZUFyb3VuZDsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVTcGFjZUFyb3VuZDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQog
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUp1c3RpZnlD
b250ZW50KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVGbGV4U3RhcnQ6CiAgICAg
ICAgIHJldHVybiBKdXN0aWZ5RmxleFN0YXJ0OwogICAgIGNhc2UgQ1NTVmFsdWVGbGV4RW5kOgpA
QCAtMTM5MSw2ICsxNDMwLDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVKdXN0aWZ5Q29udGVudCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBKdXN0aWZ5
U3BhY2VCZXR3ZWVuOwogICAgIGNhc2UgQ1NTVmFsdWVTcGFjZUFyb3VuZDoKICAgICAgICAgcmV0
dXJuIEp1c3RpZnlTcGFjZUFyb3VuZDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAg
ICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE0MDAsMjYgKzE0NDEsMjYgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVKdXN0aWZ5Q29u
dGVudCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoRUZsZXhEaXJlY3Rpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNs
YXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNl
IEZsb3dSb3c6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJvdzsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3c7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Rmxvd1Jvd1JldmVyc2U6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVJvd1JldmVy
c2U7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUm93UmV2ZXJzZTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBGbG93Q29sdW1uOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVDb2x1bW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sdW1u
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsb3dDb2x1bW5SZXZlcnNlOgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDb2x1bW5SZXZlcnNlOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUNvbHVtblJldmVyc2U7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
IAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGbGV4RGly
ZWN0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVSb3c6CiAgICAgICAgIHJl
dHVybiBGbG93Um93OwogICAgIGNhc2UgQ1NTVmFsdWVSb3dSZXZlcnNlOgpAQCAtMTQyOCw2ICsx
NDY5LDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVG
bGV4RGlyZWN0aW9uKCkgY29uc3QKICAgICAgICAgcmV0dXJuIEZsb3dDb2x1bW47CiAgICAgY2Fz
ZSBDU1NWYWx1ZUNvbHVtblJldmVyc2U6CiAgICAgICAgIHJldHVybiBGbG93Q29sdW1uUmV2ZXJz
ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTE0MzcsMzIgKzE0ODAsMzIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGbGV4RGlyZWN0aW9uKCkgY29uc3QKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQWxpZ25Db250
ZW50IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2
ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFM
VUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBBbGlnbkNvbnRlbnRGbGV4U3RhcnQ6
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZsZXhTdGFydDsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbGV4U3RhcnQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQWxpZ25Db250ZW50RmxleEVuZDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
RmxleEVuZDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbGV4RW5kOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEFsaWduQ29udGVudENlbnRlcjoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQ2VudGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUNlbnRlcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkNvbnRlbnRTcGFjZUJl
dHdlZW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNwYWNlQmV0d2VlbjsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcGFjZUJldHdlZW47CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQWxpZ25Db250ZW50U3BhY2VBcm91bmQ6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZVNwYWNlQXJvdW5kOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVNwYWNlQXJvdW5kOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWduQ29udGVu
dFN0cmV0Y2g6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0cmV0Y2g7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RyZXRjaDsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
RUFsaWduQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Cisg
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlRmxleFN0YXJ0
OgogICAgICAgICByZXR1cm4gQWxpZ25Db250ZW50RmxleFN0YXJ0OwogICAgIGNhc2UgQ1NTVmFs
dWVGbGV4RW5kOgpAQCAtMTQ3NSw2ICsxNTE4LDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVBbGlnbkNvbnRlbnQoKSBjb25zdAogICAgICAgICByZXR1
cm4gQWxpZ25Db250ZW50U3BhY2VBcm91bmQ7CiAgICAgY2FzZSBDU1NWYWx1ZVN0cmV0Y2g6CiAg
ICAgICAgIHJldHVybiBBbGlnbkNvbnRlbnRTdHJldGNoOworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTQ4NCwyOSAr
MTUyOSwzMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
RUFsaWduQ29udGVudCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUZsZXhXcmFwIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRp
dmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1f
cHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAg
Y2FzZSBGbGV4Tm9XcmFwOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3dyYXA7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm93cmFwOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEZsZXhXcmFwOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVX
cmFwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdyYXA7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgRmxleFdyYXBSZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVXcmFwUmV2ZXJzZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVX
cmFwUmV2ZXJzZTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUZsZXhXcmFwKCkgY29uc3QKIHsKLSAgICBz
d2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewog
ICAgIGNhc2UgQ1NTVmFsdWVOb3dyYXA6CiAgICAgICAgIHJldHVybiBGbGV4Tm9XcmFwOwogICAg
IGNhc2UgQ1NTVmFsdWVXcmFwOgogICAgICAgICByZXR1cm4gRmxleFdyYXA7CiAgICAgY2FzZSBD
U1NWYWx1ZVdyYXBSZXZlcnNlOgogICAgICAgICByZXR1cm4gRmxleFdyYXBSZXZlcnNlOworICAg
IGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtMTUxNiwzMCArMTU2MywzMiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRUZsZXhXcmFwKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFRmxvYXQgZSkKICAgICA6IENTU1Zh
bHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURF
TlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2gg
KGUpIHsKLSAgICAgICAgY2FzZSBOb0Zsb2F0OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExlZnRGbG9h
dDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxlZnQ7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBSaWdodEZsb2F0OgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlUmlnaHQ7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIE5vRmxv
YXQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBMZWZ0RmxvYXQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlTGVmdDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSaWdodEZsb2F0OgorICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZ2h0OworICAgICAgICBicmVhazsKICAgICB9CiB9
CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxvYXQo
KSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENT
U1ZhbHVlTGVmdDoKLSAgICAgICAgICAgIHJldHVybiBMZWZ0RmxvYXQ7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVSaWdodDoKLSAgICAgICAgICAgIHJldHVybiBSaWdodEZsb2F0OwotICAgICAgICBj
YXNlIENTU1ZhbHVlTm9uZToKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUNlbnRlcjogIC8vIE5vbi1z
dGFuZGFyZCBDU1MgdmFsdWUKLSAgICAgICAgICAgIHJldHVybiBOb0Zsb2F0OworICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6CisgICAgICAgIHJl
dHVybiBMZWZ0RmxvYXQ7CisgICAgY2FzZSBDU1NWYWx1ZVJpZ2h0OgorICAgICAgICByZXR1cm4g
UmlnaHRGbG9hdDsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICBjYXNlIENTU1ZhbHVlQ2Vu
dGVyOiAvLyBOb24tc3RhbmRhcmQgQ1NTIHZhbHVlLgorICAgICAgICByZXR1cm4gTm9GbG9hdDsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTE1NDksMjkgKzE1OTgsMjkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVGbG9hdCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoTGluZUJyZWFrIGUpCiAgICAgOiBD
U1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NT
X0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dp
dGNoIChlKSB7CiAgICAgY2FzZSBMaW5lQnJlYWtBdXRvOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUJyZWFrTG9vc2U6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUxvb3NlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUxvb3NlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExpbmVCcmVha05vcm1hbDoKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lQnJl
YWtTdHJpY3Q6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0cmljdDsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdHJpY3Q7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTGluZUJyZWFrQWZ0ZXJXaGl0ZVNwYWNlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVBZnRlcldoaXRlU3BhY2U7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQWZ0ZXJXaGl0ZVNwYWNlOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQnJlYWsoKSBjb25zdAog
ewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1
ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBMaW5lQnJlYWtB
dXRvOwogICAgIGNhc2UgQ1NTVmFsdWVMb29zZToKQEAgLTE1ODIsNiArMTYzMSw4IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQnJlYWsoKSBjb25z
dAogICAgICAgICByZXR1cm4gTGluZUJyZWFrU3RyaWN0OwogICAgIGNhc2UgQ1NTVmFsdWVBZnRl
cldoaXRlU3BhY2U6CiAgICAgICAgIHJldHVybiBMaW5lQnJlYWtBZnRlcldoaXRlU3BhY2U7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0xNTkxLDI0ICsxNjQyLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lQnJlYWsoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVMaXN0U3R5bGVQb3NpdGlvbiBl
KQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lE
OwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIE9VVFNJREU6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPdXRzaWRlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgSU5TSURFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSW5z
aWRlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPVVRTSURFOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU91dHNpZGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
SU5TSURFOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUluc2lkZTsKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRUxpc3RTdHlsZVBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1f
dmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2Ug
Q1NTVmFsdWVPdXRzaWRlOgogICAgICAgICByZXR1cm4gT1VUU0lERTsKICAgICBjYXNlIENTU1Zh
bHVlSW5zaWRlOgogICAgICAgICByZXR1cm4gSU5TSURFOworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTYxOCwyOTAg
KzE2NzEsMjkyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFTGlzdFN0eWxlUG9zaXRpb24oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVMaXN0U3R5bGVUeXBlIGUpCiAgICAgOiBDU1NW
YWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lE
RU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNo
IChlKSB7CiAgICAgY2FzZSBBZmFyOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVB
ZmFyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFmYXI7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQW1oYXJpYzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
QW1oYXJpYzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbWhhcmljOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEFtaGFyaWNBYmVnZWRlOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVBbWhhcmljQWJlZ2VkZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVBbWhhcmljQWJlZ2VkZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcmFiaWNJ
bmRpYzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXJhYmljSW5kaWM7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXJhYmljSW5kaWM7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQXJtZW5pYW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFy
bWVuaWFuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFybWVuaWFuOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEFzdGVyaXNrczoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlQXN0ZXJpc2tzOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFz
dGVyaXNrczsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCaW5hcnlMaXN0U3R5bGU6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJpbmFyeTsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVCaW5hcnk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmVuZ2FsaToK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQmVuZ2FsaTsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVCZW5nYWxpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENh
bWJvZGlhbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2FtYm9kaWFuOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNhbWJvZGlhbjsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDaXJjbGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNpcmNs
ZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDaXJjbGU7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ2prRWFydGhseUJyYW5jaDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlQ2prRWFydGhseUJyYW5jaDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVDamtFYXJ0aGx5QnJhbmNoOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENqa0hlYXZl
bmx5U3RlbToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2prSGVhdmVubHlTdGVt
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNqa0hlYXZlbmx5U3RlbTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDSktJZGVvZ3JhcGhpYzoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlQ2prSWRlb2dyYXBoaWM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQ2prSWRlb2dyYXBoaWM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGVjaW1h
bExlYWRpbmdaZXJvOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEZWNpbWFsTGVh
ZGluZ1plcm87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVjaW1hbExlYWRp
bmdaZXJvOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERlY2ltYWxMaXN0U3R5bGU6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURlY2ltYWw7CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlRGVjaW1hbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEZXZhbmFn
YXJpOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEZXZhbmFnYXJpOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURldmFuYWdhcmk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRGlzYzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGlzYzsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEaXNjOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEV0aGlvcGljOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3Bp
YzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpYzsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBFdGhpb3BpY0FiZWdlZGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUV0aGlvcGljQWJlZ2VkZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVFdGhpb3BpY0FiZWdlZGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRoaW9waWNB
YmVnZWRlQW1FdDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNBYmVn
ZWRlQW1FdDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0FiZWdl
ZGVBbUV0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGljQWJlZ2VkZUdlejoKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNBYmVnZWRlR2V6OworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV0aGlvcGljQWJlZ2VkZUdlejsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBFdGhpb3BpY0FiZWdlZGVUaUVyOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVFdGhpb3BpY0FiZWdlZGVUaUVyOworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUV0aGlvcGljQWJlZ2VkZVRpRXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRXRoaW9waWNBYmVnZWRlVGlFdDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
RXRoaW9waWNBYmVnZWRlVGlFdDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVF
dGhpb3BpY0FiZWdlZGVUaUV0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGljSGFs
ZWhhbWVBYUVyOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVo
YW1lQWFFcjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVo
YW1lQWFFcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFdGhpb3BpY0hhbGVoYW1lQWFFdDoK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZUFhRXQ7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZUFhRXQ7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRoaW9waWNIYWxlaGFtZUFtRXQ6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV0aGlvcGljSGFsZWhhbWVBbUV0OworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV0aGlvcGljSGFsZWhhbWVBbUV0OwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEV0aGlvcGljSGFsZWhhbWVHZXo6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUV0aGlvcGljSGFsZWhhbWVHZXo7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZUdlejsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBF
dGhpb3BpY0hhbGVoYW1lT21FdDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRo
aW9waWNIYWxlaGFtZU9tRXQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRo
aW9waWNIYWxlaGFtZU9tRXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXRoaW9waWNIYWxl
aGFtZVNpZEV0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVo
YW1lU2lkRXQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNIYWxl
aGFtZVNpZEV0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEV0aGlvcGljSGFsZWhhbWVTb0V0
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lU29FdDsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFdGhpb3BpY0hhbGVoYW1lU29FdDsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFdGhpb3BpY0hhbGVoYW1lVGlFcjoKLSAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZVRpRXI7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXRoaW9waWNIYWxlaGFtZVRpRXI7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgRXRoaW9waWNIYWxlaGFtZVRpRXQ6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUV0aGlvcGljSGFsZWhhbWVUaUV0OworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUV0aGlvcGljSGFsZWhhbWVUaUV0OwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEV0aGlvcGljSGFsZWhhbWVUaWc6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUV0aGlvcGljSGFsZWhhbWVUaWc7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
RXRoaW9waWNIYWxlaGFtZVRpZzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGb290bm90ZXM6
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZvb3Rub3RlczsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGb290bm90ZXM7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgR2VvcmdpYW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUdlb3JnaWFuOwor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUdlb3JnaWFuOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEd1amFyYXRpOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVH
dWphcmF0aTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVHdWphcmF0aTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBHdXJtdWtoaToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlR3VybXVraGk7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlR3Vy
bXVraGk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSGFuZ3VsOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVIYW5ndWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlSGFuZ3VsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEhhbmd1bENvbnNvbmFudDoKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGFuZ3VsQ29uc29uYW50OworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhhbmd1bENvbnNvbmFudDsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBIZWJyZXc6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhlYnJl
dzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIZWJyZXc7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgSGlyYWdhbmE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUhpcmFnYW5hOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpcmFnYW5hOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEhpcmFnYW5hSXJvaGE6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUhpcmFnYW5hSXJvaGE7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlSGlyYWdhbmFJcm9oYTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBLYW5uYWRh
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVLYW5uYWRhOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUthbm5hZGE7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
S2F0YWthbmE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUthdGFrYW5hOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUthdGFrYW5hOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEthdGFrYW5hSXJvaGE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUthdGFrYW5hSXJvaGE7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlS2F0YWth
bmFJcm9oYTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBLaG1lcjoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlS2htZXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlS2htZXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGFvOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVMYW87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TGFvOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExvd2VyQWxwaGE6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUxvd2VyQWxwaGE7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTG93ZXJBbHBoYTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMb3dlckFybWVu
aWFuOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb3dlckFybWVuaWFuOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvd2VyQXJtZW5pYW47CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgTG93ZXJHcmVlazoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTG93ZXJHcmVlazsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMb3dlckdy
ZWVrOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExvd2VySGV4YWRlY2ltYWw6Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxvd2VySGV4YWRlY2ltYWw7CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTG93ZXJIZXhhZGVjaW1hbDsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBMb3dlckxhdGluOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb3dl
ckxhdGluOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvd2VyTGF0aW47CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTG93ZXJOb3J3ZWdpYW46Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUxvd2VyTm9yd2VnaWFuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUxvd2VyTm9yd2VnaWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExvd2Vy
Um9tYW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxvd2VyUm9tYW47CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTG93ZXJSb21hbjsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBNYWxheWFsYW06Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1h
bGF5YWxhbTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNYWxheWFsYW07CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTW9uZ29saWFuOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVNb25nb2xpYW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TW9uZ29saWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE15YW5tYXI6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU15YW5tYXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTXlhbm1hcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb25lTGlzdFN0eWxl
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT2N0YWw6
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU9jdGFsOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU9jdGFsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE9yaXlh
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcml5YTsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcml5YTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPcm9t
bzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3JvbW87CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlT3JvbW87CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGVy
c2lhbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUGVyc2lhbjsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQZXJzaWFuOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFNpZGFtYToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2lkYW1hOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNpZGFtYTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBTb21hbGk6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNvbWFsaTsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTb21hbGk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU3F1YXJlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcXVh
cmU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFRlbHVndToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
VGVsdWd1OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRlbHVndTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBUaGFpOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVUaGFpOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRoYWk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGliZXRhbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlVGliZXRhbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUaWJldGFuOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFRpZ3JlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVUaWdyZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUaWdyZTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUaWdyaW55YUVyOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVUaWdyaW55YUVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVRpZ3JpbnlhRXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGlncmlueWFFckFiZWdl
ZGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRpZ3JpbnlhRXJBYmVnZWRlOwor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRpZ3JpbnlhRXJBYmVnZWRlOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFRpZ3JpbnlhRXQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVRpZ3JpbnlhRXQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
VGlncmlueWFFdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUaWdyaW55YUV0QWJlZ2VkZToK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGlncmlueWFFdEFiZWdlZGU7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGlncmlueWFFdEFiZWdlZGU7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVXBwZXJBbHBoYToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlVXBwZXJBbHBoYTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVcHBl
ckFscGhhOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVwcGVyQXJtZW5pYW46Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVVwcGVyQXJtZW5pYW47CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlVXBwZXJBcm1lbmlhbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBVcHBlckdyZWVrOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVVcHBlckdyZWVr
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVwcGVyR3JlZWs7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVXBwZXJIZXhhZGVjaW1hbDoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlVXBwZXJIZXhhZGVjaW1hbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVVcHBlckhleGFkZWNpbWFsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVwcGVy
TGF0aW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVVwcGVyTGF0aW47CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXBwZXJMYXRpbjsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBVcHBlck5vcndlZ2lhbjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlVXBwZXJOb3J3ZWdpYW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXBw
ZXJOb3J3ZWdpYW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVXBwZXJSb21hbjoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXBwZXJSb21hbjsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVVcHBlclJvbWFuOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVy
ZHU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVVyZHU7CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlVXJkdTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUxpc3RTdHlsZVR5
cGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNl
IENTU1ZhbHVlTm9uZToKLSAgICAgICAgICAgIHJldHVybiBOb25lTGlzdFN0eWxlOwotICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVMaXN0U3R5bGVUeXBl
PihtX3ZhbHVlLmlkZW50IC0gQ1NTVmFsdWVEaXNjKTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAgICByZXR1cm4gTm9uZUxpc3RT
dHlsZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RUxpc3RTdHls
ZVR5cGU+KG1fdmFsdWUudmFsdWVJRCAtIENTU1ZhbHVlRGlzYyk7CiAgICAgfQogfQogCiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRU1hcmdp
bkNvbGxhcHNlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBD
U1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgTUNPTExBUFNFOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sbGFwc2U7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBNU0VQQVJBVEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVTZXBhcmF0ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IE1ESVNDQVJEOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGlzY2FyZDsK
LSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTUNPTExBUFNFOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUNvbGxhcHNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1T
RVBBUkFURToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZXBhcmF0ZTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBNRElTQ0FSRDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVEaXNjYXJkOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTWFyZ2luQ29sbGFwc2UoKSBj
b25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1Zh
bHVlQ29sbGFwc2U6Ci0gICAgICAgICAgICByZXR1cm4gTUNPTExBUFNFOwotICAgICAgICBjYXNl
IENTU1ZhbHVlU2VwYXJhdGU6Ci0gICAgICAgICAgICByZXR1cm4gTVNFUEFSQVRFOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlRGlzY2FyZDoKLSAgICAgICAgICAgIHJldHVybiBNRElTQ0FSRDsKKyAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVDb2xsYXBzZToK
KyAgICAgICAgcmV0dXJuIE1DT0xMQVBTRTsKKyAgICBjYXNlIENTU1ZhbHVlU2VwYXJhdGU6Cisg
ICAgICAgIHJldHVybiBNU0VQQVJBVEU7CisgICAgY2FzZSBDU1NWYWx1ZURpc2NhcmQ6CisgICAg
ICAgIHJldHVybiBNRElTQ0FSRDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE5MTEsMzQgKzE5NjYsMzYgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVNYXJnaW5Db2xsYXBz
ZSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoRU1hcnF1ZWVCZWhhdmlvciBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xh
c3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1p
dGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBj
YXNlIE1OT05FOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1TQ1JPTEw6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVTY3JvbGw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBNU0xJREU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTbGlkZTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1BTFRFUk5BVEU6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBbHRlcm5hdGU7Ci0gICAgICAgICAgICBicmVhazsK
KyAgICBjYXNlIE1OT05FOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTVNDUk9MTDoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVTY3JvbGw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTVNMSURFOgor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNsaWRlOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIE1BTFRFUk5BVEU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QWx0ZXJuYXRlOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTWFycXVlZUJlaGF2aW9yKCkgY29uc3QKIHsK
LSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6
Ci0gICAgICAgICAgICByZXR1cm4gTU5PTkU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTY3JvbGw6
Ci0gICAgICAgICAgICByZXR1cm4gTVNDUk9MTDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVNsaWRl
OgotICAgICAgICAgICAgcmV0dXJuIE1TTElERTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFsdGVy
bmF0ZToKLSAgICAgICAgICAgIHJldHVybiBNQUxURVJOQVRFOworICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CisgICAgICAgIHJldHVybiBNTk9O
RTsKKyAgICBjYXNlIENTU1ZhbHVlU2Nyb2xsOgorICAgICAgICByZXR1cm4gTVNDUk9MTDsKKyAg
ICBjYXNlIENTU1ZhbHVlU2xpZGU6CisgICAgICAgIHJldHVybiBNU0xJREU7CisgICAgY2FzZSBD
U1NWYWx1ZUFsdGVybmF0ZToKKyAgICAgICAgcmV0dXJuIE1BTFRFUk5BVEU7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBA
IC0xOTQ4LDI0ICsyMDA1LDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBFTWFycXVlZUJlaGF2aW9yKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShSZWdpb25GcmFnbWVudCBlKQogICAg
IDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9
IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAg
IHN3aXRjaCAoZSkgewogICAgIGNhc2UgQXV0b1JlZ2lvbkZyYWdtZW50OgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUF1dG87CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJlYWtSZWdpb25GcmFnbWVudDoK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQnJlYWs7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQnJlYWs7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJlZ2lvbkZyYWdtZW50
KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4g
QXV0b1JlZ2lvbkZyYWdtZW50OwogICAgIGNhc2UgQ1NTVmFsdWVCcmVhazoKICAgICAgICAgcmV0
dXJuIEJyZWFrUmVnaW9uRnJhZ21lbnQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAg
ICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xOTc1LDUxICsyMDM0LDUzIEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBSZWdpb25GcmFn
bWVudCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoRU1hcnF1ZWVEaXJlY3Rpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2
ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAg
ICAgY2FzZSBNRk9SV0FSRDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZv
cndhcmRzOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTUJBQ0tXQVJEOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQmFja3dhcmRzOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgTUFVVE86Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVBdXRvOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTVVQOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXA7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBNRE9XTjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZURvd247Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNTEVGVDoKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxlZnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBNUklHSFQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVS
aWdodDsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTUZPUldBUkQ6CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRm9yd2FyZHM7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTUJBQ0tXQVJEOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJhY2t3YXJk
czsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNQVVUTzoKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1VUDoKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBNRE9XTjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEb3duOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE1MRUZUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUxlZnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTVJJR0hUOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZ2h0OworICAgICAgICBicmVhazsKICAgICB9CiB9CiAK
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTWFycXVlZURp
cmVjdGlvbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVGb3J3YXJkczoKLSAgICAgICAgICAgIHJldHVybiBNRk9SV0FSRDsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZUJhY2t3YXJkczoKLSAgICAgICAgICAgIHJldHVybiBNQkFDS1dB
UkQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIE1BVVRP
OwotICAgICAgICBjYXNlIENTU1ZhbHVlQWhlYWQ6Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVVcDog
Ly8gV2UgZG9uJ3Qgc3VwcG9ydCB2ZXJ0aWNhbCBsYW5ndWFnZXMsIHNvIEFIRUFEIGp1c3QgbWFw
cyB0byBVUC4KLSAgICAgICAgICAgIHJldHVybiBNVVA7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVS
ZXZlcnNlOgotICAgICAgICBjYXNlIENTU1ZhbHVlRG93bjogLy8gUkVWRVJTRSBqdXN0IG1hcHMg
dG8gRE9XTiwgc2luY2Ugd2UgZG9uJ3QgZG8gdmVydGljYWwgdGV4dC4KLSAgICAgICAgICAgIHJl
dHVybiBNRE9XTjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6Ci0gICAgICAgICAgICByZXR1
cm4gTUxFRlQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKLSAgICAgICAgICAgIHJldHVy
biBNUklHSFQ7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1Zh
bHVlRm9yd2FyZHM6CisgICAgICAgIHJldHVybiBNRk9SV0FSRDsKKyAgICBjYXNlIENTU1ZhbHVl
QmFja3dhcmRzOgorICAgICAgICByZXR1cm4gTUJBQ0tXQVJEOworICAgIGNhc2UgQ1NTVmFsdWVB
dXRvOgorICAgICAgICByZXR1cm4gTUFVVE87CisgICAgY2FzZSBDU1NWYWx1ZUFoZWFkOgorICAg
IGNhc2UgQ1NTVmFsdWVVcDogLy8gV2UgZG9uJ3Qgc3VwcG9ydCB2ZXJ0aWNhbCBsYW5ndWFnZXMs
IHNvIEFIRUFEIGp1c3QgbWFwcyB0byBVUC4KKyAgICAgICAgcmV0dXJuIE1VUDsKKyAgICBjYXNl
IENTU1ZhbHVlUmV2ZXJzZToKKyAgICBjYXNlIENTU1ZhbHVlRG93bjogLy8gUkVWRVJTRSBqdXN0
IG1hcHMgdG8gRE9XTiwgc2luY2Ugd2UgZG9uJ3QgZG8gdmVydGljYWwgdGV4dC4KKyAgICAgICAg
cmV0dXJuIE1ET1dOOworICAgIGNhc2UgQ1NTVmFsdWVMZWZ0OgorICAgICAgICByZXR1cm4gTUxF
RlQ7CisgICAgY2FzZSBDU1NWYWx1ZVJpZ2h0OgorICAgICAgICByZXR1cm4gTVJJR0hUOworICAg
IGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtMjAyOSwyNCArMjA5MCwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRU1hcnF1ZWVEaXJlY3Rpb24oKSBjb25zdAogdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVOQlNQTW9kZSBlKQog
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwog
ICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIE5CTk9STUFMOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9ybWFsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgU1BBQ0U6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcGFjZTsK
LSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTkJOT1JNQUw6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNQQUNF
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlOworICAgICAgICBicmVh
azsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFTkJTUE1vZGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewot
ICAgICAgICBjYXNlIENTU1ZhbHVlU3BhY2U6Ci0gICAgICAgICAgICByZXR1cm4gU1BBQ0U7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6Ci0gICAgICAgICAgICByZXR1cm4gTkJOT1JNQUw7
CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlU3BhY2U6
CisgICAgICAgIHJldHVybiBTUEFDRTsKKyAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgorICAgICAg
ICByZXR1cm4gTkJOT1JNQUw7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yMDU2LDU0ICsyMTE5LDU2IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFTkJTUE1vZGUoKSBjb25z
dAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KEVPdmVyZmxvdyBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIE9WSVNJQkxFOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmlzaWJsZTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIE9ISURERU46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVIaWRkZW47Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBPU0NS
T0xMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2Nyb2xsOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT0FVVE86Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVBdXRvOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT01B
UlFVRUU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRNYXJxdWVl
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT09WRVJMQVk6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPdmVybGF5OwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgT1BBR0VEWDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZVdlYmtpdFBhZ2VkWDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE9QQUdFRFk6
Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRQYWdlZFk7Ci0gICAg
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE9WSVNJQkxFOgorICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVZpc2libGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT0hJRERFTjoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIaWRkZW47CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgT1NDUk9MTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
Y3JvbGw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT0FVVE86CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPTUFSUVVF
RToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRNYXJxdWVlOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE9PVkVSTEFZOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU92ZXJsYXk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT1BBR0VEWDoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRQYWdlZFg7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgT1BBR0VEWToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVXZWJraXRQYWdlZFk7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVPdmVyZmxvdygpIGNvbnN0CiB7Ci0g
ICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxl
OgotICAgICAgICAgICAgcmV0dXJuIE9WSVNJQkxFOwotICAgICAgICBjYXNlIENTU1ZhbHVlSGlk
ZGVuOgotICAgICAgICAgICAgcmV0dXJuIE9ISURERU47Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVT
Y3JvbGw6Ci0gICAgICAgICAgICByZXR1cm4gT1NDUk9MTDsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZUF1dG86Ci0gICAgICAgICAgICByZXR1cm4gT0FVVE87Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVX
ZWJraXRNYXJxdWVlOgotICAgICAgICAgICAgcmV0dXJuIE9NQVJRVUVFOwotICAgICAgICBjYXNl
IENTU1ZhbHVlT3ZlcmxheToKLSAgICAgICAgICAgIHJldHVybiBPT1ZFUkxBWTsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZVdlYmtpdFBhZ2VkWDoKLSAgICAgICAgICAgIHJldHVybiBPUEFHRURYOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0UGFnZWRZOgotICAgICAgICAgICAgcmV0dXJuIE9Q
QUdFRFk7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVl
VmlzaWJsZToKKyAgICAgICAgcmV0dXJuIE9WSVNJQkxFOworICAgIGNhc2UgQ1NTVmFsdWVIaWRk
ZW46CisgICAgICAgIHJldHVybiBPSElEREVOOworICAgIGNhc2UgQ1NTVmFsdWVTY3JvbGw6Cisg
ICAgICAgIHJldHVybiBPU0NST0xMOworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICBy
ZXR1cm4gT0FVVE87CisgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdE1hcnF1ZWU6CisgICAgICAgIHJl
dHVybiBPTUFSUVVFRTsKKyAgICBjYXNlIENTU1ZhbHVlT3ZlcmxheToKKyAgICAgICAgcmV0dXJu
IE9PVkVSTEFZOworICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRQYWdlZFg6CisgICAgICAgIHJldHVy
biBPUEFHRURYOworICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRQYWdlZFk6CisgICAgICAgIHJldHVy
biBPUEFHRURZOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjExMywzMSArMjE3OCwzMyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRU92ZXJmbG93KCkgY29uc3QKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFUGFnZUJy
ZWFrIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2
ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFM
VUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgUEJBVVRPOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFBCQUxXQVlTOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
QWx3YXlzOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUEJBVk9JRDoKLSAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF2b2lkOwotICAgICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBQQkFVVE86CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0
bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQQkFMV0FZUzoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVBbHdheXM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUEJBVk9J
RDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdm9pZDsKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRVBhZ2VCcmVhaygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7
Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIFBCQVVUTzsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZUFsd2F5czoKLSAgICAgICAgICAgIHJldHVybiBQQkFMV0FZ
UzsgLy8gQ1NTMi4xOiAiQ29uZm9ybWluZyB1c2VyIGFnZW50cyBtYXkgbWFwIGxlZnQvcmlnaHQg
dG8gYWx3YXlzLiIKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUF2b2lkOgotICAgICAgICAgICAgcmV0
dXJuIFBCQVZPSUQ7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENT
U1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0dXJuIFBCQVVUTzsKKyAgICBjYXNlIENTU1ZhbHVlTGVm
dDoKKyAgICBjYXNlIENTU1ZhbHVlUmlnaHQ6CisgICAgY2FzZSBDU1NWYWx1ZUFsd2F5czoKKyAg
ICAgICAgcmV0dXJuIFBCQUxXQVlTOyAvLyBDU1MyLjE6ICJDb25mb3JtaW5nIHVzZXIgYWdlbnRz
IG1heSBtYXAgbGVmdC9yaWdodCB0byBhbHdheXMuIgorICAgIGNhc2UgQ1NTVmFsdWVBdm9pZDoK
KyAgICAgICAgcmV0dXJuIFBCQVZPSUQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAg
ICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yMTQ3LDQzICsyMjE0LDQ1IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUGFnZUJyZWFr
KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShFUG9zaXRpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBTdGF0
aWNQb3NpdGlvbjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXRpYzsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJlbGF0aXZlUG9zaXRpb246Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSZWxhdGl2ZTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIEFic29sdXRlUG9zaXRpb246Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVBYnNvbHV0ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIEZpeGVkUG9zaXRpb246Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVG
aXhlZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFN0aWNreVBvc2l0aW9uOgor
ICAgIGNhc2UgU3RhdGljUG9zaXRpb246CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlU3RhdGljOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbGF0aXZlUG9zaXRpb246Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmVsYXRpdmU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQWJzb2x1dGVQb3NpdGlvbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVBYnNvbHV0ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGaXhlZFBvc2l0aW9u
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZpeGVkOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFN0aWNreVBvc2l0aW9uOgogI2lmIEVOQUJMRShDU1NfU1RJQ0tZX1BPU0lU
SU9OKQotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0U3RpY2t5Owor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdFN0aWNreTsKICNlbmRpZgot
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVQb3NpdGlvbigpIGNvbnN0CiB7
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTdGF0
aWM6Ci0gICAgICAgICAgICByZXR1cm4gU3RhdGljUG9zaXRpb247Ci0gICAgICAgIGNhc2UgQ1NT
VmFsdWVSZWxhdGl2ZToKLSAgICAgICAgICAgIHJldHVybiBSZWxhdGl2ZVBvc2l0aW9uOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlQWJzb2x1dGU6Ci0gICAgICAgICAgICByZXR1cm4gQWJzb2x1dGVQ
b3NpdGlvbjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUZpeGVkOgotICAgICAgICAgICAgcmV0dXJu
IEZpeGVkUG9zaXRpb247CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNl
IENTU1ZhbHVlU3RhdGljOgorICAgICAgICByZXR1cm4gU3RhdGljUG9zaXRpb247CisgICAgY2Fz
ZSBDU1NWYWx1ZVJlbGF0aXZlOgorICAgICAgICByZXR1cm4gUmVsYXRpdmVQb3NpdGlvbjsKKyAg
ICBjYXNlIENTU1ZhbHVlQWJzb2x1dGU6CisgICAgICAgIHJldHVybiBBYnNvbHV0ZVBvc2l0aW9u
OworICAgIGNhc2UgQ1NTVmFsdWVGaXhlZDoKKyAgICAgICAgcmV0dXJuIEZpeGVkUG9zaXRpb247
CiAjaWYgRU5BQkxFKENTU19TVElDS1lfUE9TSVRJT04pCi0gICAgICAgIGNhc2UgQ1NTVmFsdWVX
ZWJraXRTdGlja3k6Ci0gICAgICAgICAgICByZXR1cm4gU3RpY2t5UG9zaXRpb247CisgICAgY2Fz
ZSBDU1NWYWx1ZVdlYmtpdFN0aWNreToKKyAgICAgICAgcmV0dXJuIFN0aWNreVBvc2l0aW9uOwog
I2VuZGlmCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC0yMTkzLDM3ICsyMjYyLDM5IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUG9zaXRpb24oKSBjb25zdAogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVSZXNpemUgZSkK
ICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsK
ICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBSRVNJWkVfQk9USDoKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJvdGg7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBSRVNJWkVfSE9SSVpPTlRBTDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUhvcml6b250YWw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSRVNJ
WkVfVkVSVElDQUw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWZXJ0aWNh
bDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJFU0laRV9OT05FOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUkVTSVpFX0JPVEg6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Qm90aDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSRVNJWkVfSE9SSVpPTlRBTDoKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIb3Jpem9udGFsOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFJFU0laRV9WRVJUSUNBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVWZXJ0aWNhbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSRVNJWkVfTk9ORToKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBicmVhazsKICAg
ICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBF
UmVzaXplKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUJvdGg6Ci0gICAgICAgICAgICByZXR1cm4gUkVTSVpFX0JPVEg7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVIb3Jpem9udGFsOgotICAgICAgICAgICAgcmV0dXJuIFJFU0laRV9I
T1JJWk9OVEFMOwotICAgICAgICBjYXNlIENTU1ZhbHVlVmVydGljYWw6Ci0gICAgICAgICAgICBy
ZXR1cm4gUkVTSVpFX1ZFUlRJQ0FMOwotICAgICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKLSAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBEZXBlbmRzIG9uIHNldHRpbmdzLCB0aHVz
IHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCi0gICAgICAgICAgICByZXR1cm4gUkVT
SVpFX05PTkU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb25lOgotICAgICAgICAgICAgcmV0dXJu
IFJFU0laRV9OT05FOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBD
U1NWYWx1ZUJvdGg6CisgICAgICAgIHJldHVybiBSRVNJWkVfQk9USDsKKyAgICBjYXNlIENTU1Zh
bHVlSG9yaXpvbnRhbDoKKyAgICAgICAgcmV0dXJuIFJFU0laRV9IT1JJWk9OVEFMOworICAgIGNh
c2UgQ1NTVmFsdWVWZXJ0aWNhbDoKKyAgICAgICAgcmV0dXJuIFJFU0laRV9WRVJUSUNBTDsKKyAg
ICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIERl
cGVuZHMgb24gc2V0dGluZ3MsIHRodXMgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGNhbGxlci4K
KyAgICAgICAgcmV0dXJuIFJFU0laRV9OT05FOworICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAg
ICAgICByZXR1cm4gUkVTSVpFX05PTkU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAg
ICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yMjMzLDI0ICsyMzA0LDI2IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUmVzaXplKCkg
Y29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZShFVGFibGVMYXlvdXQgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBUQVVU
TzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBURklYRUQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVGaXhlZDsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFVVE86Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBURklYRUQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRml4ZWQ7
CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEVUYWJsZUxheW91dCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoICht
X3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVGaXhlZDoKLSAgICAgICAgICAg
IHJldHVybiBURklYRUQ7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAgICAg
cmV0dXJuIFRBVVRPOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBD
U1NWYWx1ZUZpeGVkOgorICAgICAgICByZXR1cm4gVEZJWEVEOworICAgIGNhc2UgQ1NTVmFsdWVB
dXRvOgorICAgICAgICByZXR1cm4gVEFVVE87CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yMjYwLDQ4ICsyMzMzLDQ4
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVGFibGVM
YXlvdXQoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1By
aW1pdGl2ZVZhbHVlKEVUZXh0QWxpZ24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNz
KQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRB
U1RBUlQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXJ0OworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0YXJ0OwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFRBRU5EOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExF
RlQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTGVmdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSSUdI
VDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ0VO
VEVSOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudGVyOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEpVU1RJRlk6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUp1c3RpZnk7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSnVzdGlmeTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBXRUJLSVRfTEVGVDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Vi
a2l0TGVmdDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRMZWZ0Owog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFdFQktJVF9SSUdIVDoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlV2Via2l0UmlnaHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlV2Via2l0UmlnaHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV0VCS0lUX0NFTlRF
UjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0Q2VudGVyOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdENlbnRlcjsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRVRleHRBbGlnbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Cisg
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0QXV0
bzogLy8gTGVnYWN5IC13ZWJraXQtYXV0by4gRXFpdXZhbGVudCB0byBzdGFydC4KICAgICBjYXNl
IENTU1ZhbHVlU3RhcnQ6CiAgICAgICAgIHJldHVybiBUQVNUQVJUOwogICAgIGNhc2UgQ1NTVmFs
dWVFbmQ6CiAgICAgICAgIHJldHVybiBUQUVORDsKICAgICBkZWZhdWx0OgotICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8RVRleHRBbGlnbj4obV92YWx1ZS5pZGVudCAtIENTU1ZhbHVlTGVmdCk7
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFVGV4dEFsaWduPihtX3ZhbHVlLnZhbHVlSUQg
LSBDU1NWYWx1ZUxlZnQpOwogICAgIH0KIH0KIApAQCAtMjMwOSwzNSArMjM4MiwzNSBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRBbGlnbigpIGNv
bnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoVGV4dEFsaWduTGFzdCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dEFsaWdu
TGFzdFN0YXJ0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTdGFydDsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGFydDsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUZXh0QWxpZ25MYXN0RW5kOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVF
bmQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFRleHRBbGlnbkxhc3RMZWZ0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVMZWZ0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTGFzdFJpZ2h0OgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVSaWdodDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVSaWdodDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25MYXN0Q2VudGVy
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudGVyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRl
eHRBbGlnbkxhc3RKdXN0aWZ5OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVKdXN0
aWZ5OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUp1c3RpZnk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTGFzdEF1dG86Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0
bzsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEFsaWduTGFzdCgpIGNvbnN0CiB7Ci0gICAgc3dpdGNo
IChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBj
YXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFRleHRBbGlnbkxhc3RBdXRvOwogICAg
IGNhc2UgQ1NTVmFsdWVTdGFydDoKQEAgLTIzNTIsNiArMjQyNSw4IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0QWxpZ25MYXN0KCkgY29uc3QKICAg
ICAgICAgcmV0dXJuIFRleHRBbGlnbkxhc3RDZW50ZXI7CiAgICAgY2FzZSBDU1NWYWx1ZUp1c3Rp
Znk6CiAgICAgICAgIHJldHVybiBUZXh0QWxpZ25MYXN0SnVzdGlmeTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIz
NjEsMzUgKzI0MzYsMzUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFRleHRBbGlnbkxhc3QoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRKdXN0aWZ5IGUpCiAgICAgOiBDU1NWYWx1
ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5U
OworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChl
KSB7CiAgICAgY2FzZSBUZXh0SnVzdGlmeUF1dG86Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0SnVzdGlmeU5vbmU6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Tm9uZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0SnVzdGlmeUludGVyV29yZDoKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSW50ZXJXb3JkOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUludGVyV29yZDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBU
ZXh0SnVzdGlmeUludGVySWRlb2dyYXBoOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVJbnRlcklkZW9ncmFwaDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbnRl
cklkZW9ncmFwaDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0SnVzdGlmeUludGVyQ2x1
c3RlcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSW50ZXJDbHVzdGVyOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUludGVyQ2x1c3RlcjsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBUZXh0SnVzdGlmeURpc3RyaWJ1dGU6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZURpc3RyaWJ1dGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRGlzdHJpYnV0ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0SnVzdGlmeUthc2hp
ZGE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUthc2hpZGE7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlS2FzaGlkYTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEp1
c3RpZnkoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJl
dHVybiBUZXh0SnVzdGlmeUF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CkBAIC0yNDA0LDYg
KzI0NzksOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
VGV4dEp1c3RpZnkoKSBjb25zdAogICAgICAgICByZXR1cm4gVGV4dEp1c3RpZnlEaXN0cmlidXRl
OwogICAgIGNhc2UgQ1NTVmFsdWVLYXNoaWRhOgogICAgICAgICByZXR1cm4gVGV4dEp1c3RpZnlL
YXNoaWRhOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjQxMyw3ICsyNDkwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRKdXN0aWZ5KCkgY29uc3QKIAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHREZWNvcmF0aW9uKCkg
Y29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFs
dWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gVGV4
dERlY29yYXRpb25Ob25lOwogICAgIGNhc2UgQ1NTVmFsdWVVbmRlcmxpbmU6CkBAIC0yNDI0LDYg
KzI1MDEsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
VGV4dERlY29yYXRpb24oKSBjb25zdAogICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25MaW5l
VGhyb3VnaDsKICAgICBjYXNlIENTU1ZhbHVlQmxpbms6CiAgICAgICAgIHJldHVybiBUZXh0RGVj
b3JhdGlvbkJsaW5rOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjQzMyw3ICsyNTEyLDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHREZWNvcmF0aW9uKCkgY29uc3QK
ICNpZiBFTkFCTEUoQ1NTM19URVhUKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFRleHREZWNvcmF0aW9uU3R5bGUoKSBjb25zdAogewotICAgIHN3aXRjaCAo
bV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2Fz
ZSBDU1NWYWx1ZVNvbGlkOgogICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25TdHlsZVNvbGlk
OwogICAgIGNhc2UgQ1NTVmFsdWVEb3VibGU6CkBAIC0yNDQ0LDYgKzI1MjMsOCBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERlY29yYXRpb25TdHls
ZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBUZXh0RGVjb3JhdGlvblN0eWxlRGFzaGVkOwogICAg
IGNhc2UgQ1NTVmFsdWVXYXZ5OgogICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25TdHlsZVdh
dnk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0yNDUzLDE2ICsyNTM0LDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RGVjb3JhdGlvblN0eWxlKCkgY29uc3QKIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0
VW5kZXJsaW5lUG9zaXRpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRleHRVbmRl
cmxpbmVQb3NpdGlvbkF1dG86Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBUZXh0VW5kZXJsaW5lUG9zaXRpb25BbHBoYWJldGljOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVBbHBoYWJldGljOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUFscGhhYmV0aWM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFVuZGVy
bGluZVBvc2l0aW9uVW5kZXI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVVuZGVy
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVuZGVyOwogICAgICAgICBicmVh
azsKICAgICB9CiAKQEAgLTI0NzEsMTMgKzI1NTIsMTUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRVbmRlcmxpbmVQb3NpdGlvbiBl
KQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFVu
ZGVybGluZVBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsK
KyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgog
ICAgICAgICByZXR1cm4gVGV4dFVuZGVybGluZVBvc2l0aW9uQXV0bzsKICAgICBjYXNlIENTU1Zh
bHVlQWxwaGFiZXRpYzoKICAgICAgICAgcmV0dXJuIFRleHRVbmRlcmxpbmVQb3NpdGlvbkFscGhh
YmV0aWM7CiAgICAgY2FzZSBDU1NWYWx1ZVVuZGVyOgogICAgICAgICByZXR1cm4gVGV4dFVuZGVy
bGluZVBvc2l0aW9uVW5kZXI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQog
CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBzdXBwb3J0IGZvciAndW5kZXIgbGVmdCcgYW5kICd1
bmRlciByaWdodCcgdmFsdWVzLgpAQCAtMjQ5MCwzNCArMjU3MywzNiBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFVuZGVybGluZVBvc2l0aW9uKCkg
Y29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZShFVGV4dFNlY3VyaXR5IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsK
LSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgVFNO
T05FOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRTRElTQzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZURpc2M7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUU0NJ
UkNMRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNpcmNsZTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRTU1FVQVJFOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlU3F1YXJlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBU
U05PTkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBUU0RJU0M6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRGlzYzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUU0NJUkNMRToKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDaXJjbGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
VFNTUVVBUkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlOworICAg
ICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBFVGV4dFNlY3VyaXR5KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFs
dWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6Ci0gICAgICAgICAgICByZXR1
cm4gVFNOT05FOwotICAgICAgICBjYXNlIENTU1ZhbHVlRGlzYzoKLSAgICAgICAgICAgIHJldHVy
biBUU0RJU0M7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVDaXJjbGU6Ci0gICAgICAgICAgICByZXR1
cm4gVFNDSVJDTEU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTcXVhcmU6Ci0gICAgICAgICAgICBy
ZXR1cm4gVFNTUVVBUkU7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNl
IENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIFRTTk9ORTsKKyAgICBjYXNlIENTU1ZhbHVl
RGlzYzoKKyAgICAgICAgcmV0dXJuIFRTRElTQzsKKyAgICBjYXNlIENTU1ZhbHVlQ2lyY2xlOgor
ICAgICAgICByZXR1cm4gVFNDSVJDTEU7CisgICAgY2FzZSBDU1NWYWx1ZVNxdWFyZToKKyAgICAg
ICAgcmV0dXJuIFRTU1FVQVJFOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0K
IAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjUyNywzNCArMjYxMiwzNiBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRleHRTZWN1cml0eSgp
IGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoRVRleHRUcmFuc2Zvcm0gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQog
ewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBD
QVBJVEFMSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2FwaXRhbGl6
ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFVQUEVSQ0FTRToKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVVwcGVyY2FzZTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIExPV0VSQ0FTRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUxvd2VyY2FzZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRUTk9O
RToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7Ci0gICAgICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENBUElUQUxJWkU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQ2FwaXRhbGl6ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBVUFBFUkNBU0U6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXBwZXJjYXNlOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIExPV0VSQ0FTRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVMb3dlcmNhc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVFROT05FOgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0
VHJhbnNmb3JtKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZUNhcGl0YWxpemU6Ci0gICAgICAgICAgICByZXR1cm4gQ0FQSVRBTEla
RTsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVVwcGVyY2FzZToKLSAgICAgICAgICAgIHJldHVybiBV
UFBFUkNBU0U7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVMb3dlcmNhc2U6Ci0gICAgICAgICAgICBy
ZXR1cm4gTE9XRVJDQVNFOwotICAgICAgICBjYXNlIENTU1ZhbHVlTm9uZToKLSAgICAgICAgICAg
IHJldHVybiBUVE5PTkU7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNl
IENTU1ZhbHVlQ2FwaXRhbGl6ZToKKyAgICAgICAgcmV0dXJuIENBUElUQUxJWkU7CisgICAgY2Fz
ZSBDU1NWYWx1ZVVwcGVyY2FzZToKKyAgICAgICAgcmV0dXJuIFVQUEVSQ0FTRTsKKyAgICBjYXNl
IENTU1ZhbHVlTG93ZXJjYXNlOgorICAgICAgICByZXR1cm4gTE9XRVJDQVNFOworICAgIGNhc2Ug
Q1NTVmFsdWVOb25lOgorICAgICAgICByZXR1cm4gVFROT05FOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjU2NCwz
MiArMjY1MSwzMiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRVRleHRUcmFuc2Zvcm0oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVVbmljb2RlQmlkaSBlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgVUJOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5v
cm1hbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRW1iZWQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUVtYmVkOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVtYmVkOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE92ZXJyaWRlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVCaWRpT3ZlcnJpZGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmlk
aU92ZXJyaWRlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIElzb2xhdGU6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdElzb2xhdGU7CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlV2Via2l0SXNvbGF0ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJ
c29sYXRlT3ZlcnJpZGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdElz
b2xhdGVPdmVycmlkZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRJ
c29sYXRlT3ZlcnJpZGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGxhaW50ZXh0OgotICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRQbGFpbnRleHQ7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0UGxhaW50ZXh0OwogICAgICAgICBicmVhazsK
ICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFVW5pY29kZUJpZGkoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewor
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoK
ICAgICAgICAgcmV0dXJuIFVCTm9ybWFsOwogICAgIGNhc2UgQ1NTVmFsdWVFbWJlZDoKQEAgLTI2
MDIsNiArMjY4OSw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFVW5pY29kZUJpZGkoKSBjb25zdAogICAgICAgICByZXR1cm4gSXNvbGF0ZU92ZXJyaWRl
OwogICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRQbGFpbnRleHQ6CiAgICAgICAgIHJldHVybiBQbGFp
bnRleHQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC0yNjExLDI5ICsyNzAwLDMzIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVW5pY29kZUJpZGkoKSBjb25zdAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVVc2VyRHJh
ZyBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIERSQUdfQVVUTzoKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBEUkFHX05PTkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVOb25lOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRFJBR19FTEVNRU5UOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRWxlbWVudDsKLSAgICAgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRFJBR19BVVRPOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRFJBR19OT05FOgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRFJBR19FTEVNRU5UOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVsZW1l
bnQ7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2Vy
RHJhZygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIERSQUdfQVVUTzsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZU5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gRFJBR19OT05FOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlRWxlbWVudDoKLSAgICAgICAgICAgIHJldHVybiBEUkFHX0VMRU1FTlQ7
CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoK
KyAgICAgICAgcmV0dXJuIERSQUdfQVVUTzsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAg
ICAgcmV0dXJuIERSQUdfTk9ORTsKKyAgICBjYXNlIENTU1ZhbHVlRWxlbWVudDoKKyAgICAgICAg
cmV0dXJuIERSQUdfRUxFTUVOVDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI2NDMsMjkgKzI3MzYsMzEgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2VyRHJhZygpIGNv
bnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoRVVzZXJNb2RpZnkgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBSRUFEX09O
TFk6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSZWFkT25seTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJFQURfV1JJVEU6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVSZWFkV3JpdGU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBSRUFEX1dSSVRFX1BMQUlOVEVYVF9PTkxZOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlUmVhZFdyaXRlUGxhaW50ZXh0T25seTsKLSAgICAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUkVBRF9PTkxZOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVJlYWRPbmx5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJFQURfV1JJVEU6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmVhZFdyaXRlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFJFQURfV1JJVEVfUExBSU5URVhUX09OTFk6CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlUmVhZFdyaXRlUGxhaW50ZXh0T25seTsKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVz
ZXJNb2RpZnkoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVJlYWRPbmx5OgogICAg
ICAgICByZXR1cm4gUkVBRF9PTkxZOwogICAgIGNhc2UgQ1NTVmFsdWVSZWFkV3JpdGU6CiAgICAg
ICAgIHJldHVybiBSRUFEX1dSSVRFOwogICAgIGNhc2UgQ1NTVmFsdWVSZWFkV3JpdGVQbGFpbnRl
eHRPbmx5OgogICAgICAgICByZXR1cm4gUkVBRF9XUklURV9QTEFJTlRFWFRfT05MWTsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTI2NzUsMzEgKzI3NzAsMzMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVVc2VyTW9kaWZ5KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVXNlclNlbGVjdCBlKQogICAgIDog
Q1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3
aXRjaCAoZSkgewotICAgICAgICBjYXNlIFNFTEVDVF9OT05FOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IFNFTEVDVF9URVhUOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4dDsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNFTEVDVF9BTEw6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBbGw7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBj
YXNlIFNFTEVDVF9OT05FOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU0VMRUNUX1RFWFQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlVGV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTRUxFQ1Rf
QUxMOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFsbDsKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRVVzZXJTZWxlY3QoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkg
ewotICAgICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKLSAgICAgICAgICAgIHJldHVybiBTRUxFQ1Rf
VEVYVDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gU0VM
RUNUX05PTkU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUZXh0OgotICAgICAgICAgICAgcmV0dXJu
IFNFTEVDVF9URVhUOwotICAgICAgICBjYXNlIENTU1ZhbHVlQWxsOgotICAgICAgICAgICAgcmV0
dXJuIFNFTEVDVF9BTEw7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNl
IENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0dXJuIFNFTEVDVF9URVhUOworICAgIGNhc2UgQ1NT
VmFsdWVOb25lOgorICAgICAgICByZXR1cm4gU0VMRUNUX05PTkU7CisgICAgY2FzZSBDU1NWYWx1
ZVRleHQ6CisgICAgICAgIHJldHVybiBTRUxFQ1RfVEVYVDsKKyAgICBjYXNlIENTU1ZhbHVlQWxs
OgorICAgICAgICByZXR1cm4gU0VMRUNUX0FMTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI3MDksNDMgKzI4MDYs
NDMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVVc2Vy
U2VsZWN0KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShFVmVydGljYWxBbGlnbiBhKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZl
Q2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoYSkgewogICAgIGNh
c2UgVE9QOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUb3A7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVG9wOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJP
VFRPTToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQm90dG9tOworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvdHRvbTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBNSURETEU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1pZGRsZTsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRkbGU7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQkFTRUxJTkU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJhc2VsaW5l
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJhc2VsaW5lOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFRFWFRfQk9UVE9NOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVUZXh0Qm90dG9tOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRC
b3R0b207CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVEVYVF9UT1A6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVRleHRUb3A7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlVGV4dFRvcDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTVUI6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN1YjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVTdWI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU1VQRVI6Ci0gICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZVN1cGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVN1cGVyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJBU0VMSU5FX01JRERMRToKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0QmFzZWxpbmVNaWRkbGU7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0QmFzZWxpbmVNaWRkbGU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTEVOR1RIOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVJbnZhbGlkOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUludmFsaWQ7
CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRVZlcnRpY2FsQWxpZ24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkg
eworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVRvcDoK
ICAgICAgICAgcmV0dXJuIFRPUDsKICAgICBjYXNlIENTU1ZhbHVlQm90dG9tOgpAQCAtMjc2NCw2
ICsyODYxLDggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEVWZXJ0aWNhbEFsaWduKCkgY29uc3QKICAgICAgICAgcmV0dXJuIFNVUEVSOwogICAgIGNhc2Ug
Q1NTVmFsdWVXZWJraXRCYXNlbGluZU1pZGRsZToKICAgICAgICAgcmV0dXJuIEJBU0VMSU5FX01J
RERMRTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKQEAgLTI3NzMsMjkgKzI4NzIsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVWZXJ0aWNhbEFsaWduKCkgY29uc3QKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVmlzaWJp
bGl0eSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZB
TFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIFZJU0lCTEU6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWaXNpYmxlOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgSElEREVOOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlSGlkZGVuOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ09MTEFQU0U6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDb2xsYXBzZTsKLSAgICAgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVklTSUJMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVWaXNpYmxlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEhJRERFTjoKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIaWRkZW47CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ09MTEFQU0U6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sbGFwc2U7
CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEVWaXNpYmlsaXR5KCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1f
dmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUhpZGRlbjoKLSAgICAgICAgICAg
IHJldHVybiBISURERU47Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlOgotICAgICAgICAg
ICAgcmV0dXJuIFZJU0lCTEU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVDb2xsYXBzZToKLSAgICAg
ICAgICAgIHJldHVybiBDT0xMQVBTRTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewor
ICAgIGNhc2UgQ1NTVmFsdWVIaWRkZW46CisgICAgICAgIHJldHVybiBISURERU47CisgICAgY2Fz
ZSBDU1NWYWx1ZVZpc2libGU6CisgICAgICAgIHJldHVybiBWSVNJQkxFOworICAgIGNhc2UgQ1NT
VmFsdWVDb2xsYXBzZToKKyAgICAgICAgcmV0dXJuIENPTExBUFNFOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjgw
NSw0NCArMjkwNiw0NiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRVZpc2liaWxpdHkoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVXaGl0ZVNwYWNlIGUpCiAgICAgOiBDU1NWYWx1ZShQ
cmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwor
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7
Ci0gICAgICAgIGNhc2UgTk9STUFMOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTm9ybWFsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFJFOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUHJlOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgUFJFX1dSQVA6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVQcmVXcmFwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFJFX0xJTkU6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVQcmVMaW5lOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgTk9XUkFQOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTm93cmFwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgS0hUTUxf
Tk9XUkFQOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0Tm93cmFw
OwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOT1JNQUw6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBSRToK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQcmU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUFJFX1dSQVA6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJl
V3JhcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUkVfTElORToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVQcmVMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5P
V1JBUDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3dyYXA7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgS0hUTUxfTk9XUkFQOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVdlYmtpdE5vd3JhcDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVdoaXRlU3BhY2UoKSBj
b25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1Zh
bHVlV2Via2l0Tm93cmFwOgotICAgICAgICAgICAgcmV0dXJuIEtIVE1MX05PV1JBUDsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZU5vd3JhcDoKLSAgICAgICAgICAgIHJldHVybiBOT1dSQVA7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVQcmU6Ci0gICAgICAgICAgICByZXR1cm4gUFJFOwotICAgICAgICBj
YXNlIENTU1ZhbHVlUHJlV3JhcDoKLSAgICAgICAgICAgIHJldHVybiBQUkVfV1JBUDsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZVByZUxpbmU6Ci0gICAgICAgICAgICByZXR1cm4gUFJFX0xJTkU7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6Ci0gICAgICAgICAgICByZXR1cm4gTk9STUFMOwor
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdE5v
d3JhcDoKKyAgICAgICAgcmV0dXJuIEtIVE1MX05PV1JBUDsKKyAgICBjYXNlIENTU1ZhbHVlTm93
cmFwOgorICAgICAgICByZXR1cm4gTk9XUkFQOworICAgIGNhc2UgQ1NTVmFsdWVQcmU6CisgICAg
ICAgIHJldHVybiBQUkU7CisgICAgY2FzZSBDU1NWYWx1ZVByZVdyYXA6CisgICAgICAgIHJldHVy
biBQUkVfV1JBUDsKKyAgICBjYXNlIENTU1ZhbHVlUHJlTGluZToKKyAgICAgICAgcmV0dXJuIFBS
RV9MSU5FOworICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CisgICAgICAgIHJldHVybiBOT1JNQUw7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkBAIC0yODUyLDI5ICsyOTU1LDMxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFV2hpdGVTcGFjZSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVdvcmRCcmVhayBlKQog
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwog
ICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIE5vcm1hbFdvcmRCcmVhazoKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIEJyZWFrQWxsV29yZEJyZWFrOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQnJlYWtBbGw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBC
cmVha1dvcmRCcmVhazoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJyZWFr
V29yZDsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTm9ybWFsV29yZEJyZWFrOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBCcmVha0FsbFdvcmRCcmVhazoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVCcmVha0FsbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha1dvcmRCcmVhazoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCcmVha1dvcmQ7CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIEVXb3JkQnJlYWsoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkg
ewotICAgICAgICBjYXNlIENTU1ZhbHVlQnJlYWtBbGw6Ci0gICAgICAgICAgICByZXR1cm4gQnJl
YWtBbGxXb3JkQnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVCcmVha1dvcmQ6Ci0gICAgICAg
ICAgICByZXR1cm4gQnJlYWtXb3JkQnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6
Ci0gICAgICAgICAgICByZXR1cm4gTm9ybWFsV29yZEJyZWFrOworICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUJyZWFrQWxsOgorICAgICAgICByZXR1cm4g
QnJlYWtBbGxXb3JkQnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUJyZWFrV29yZDoKKyAgICAgICAg
cmV0dXJuIEJyZWFrV29yZEJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CisgICAgICAg
IHJldHVybiBOb3JtYWxXb3JkQnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAg
ICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yODg0LDI0ICsyOTg5LDI2IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFV29yZEJyZWFr
KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShFT3ZlcmZsb3dXcmFwIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykK
IHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2Ug
Tm9ybWFsT3ZlcmZsb3dXcmFwOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
Tm9ybWFsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQnJlYWtPdmVyZmxvd1dy
YXA6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCcmVha1dvcmQ7Ci0gICAg
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE5vcm1hbE92ZXJmbG93V3JhcDoKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QnJlYWtPdmVyZmxvd1dyYXA6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQnJl
YWtXb3JkOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFT3ZlcmZsb3dXcmFwKCkgY29uc3QKIHsKLSAgICBz
d2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJyZWFrV29yZDoK
LSAgICAgICAgICAgIHJldHVybiBCcmVha092ZXJmbG93V3JhcDsKLSAgICAgICAgY2FzZSBDU1NW
YWx1ZU5vcm1hbDoKLSAgICAgICAgICAgIHJldHVybiBOb3JtYWxPdmVyZmxvd1dyYXA7CisgICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlQnJlYWtXb3JkOgor
ICAgICAgICByZXR1cm4gQnJlYWtPdmVyZmxvd1dyYXA7CisgICAgY2FzZSBDU1NWYWx1ZU5vcm1h
bDoKKyAgICAgICAgcmV0dXJuIE5vcm1hbE92ZXJmbG93V3JhcDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI5MTEs
MjQgKzMwMTgsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEVPdmVyZmxvd1dyYXAoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHREaXJlY3Rpb24gZSkKICAgICA6IENTU1ZhbHVl
KFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7
CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUp
IHsKLSAgICAgICAgY2FzZSBMVFI6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVMdHI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSVEw6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSdGw7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBj
YXNlIExUUjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMdHI7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUlRMOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVJ0bDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERpcmVjdGlvbigpIGNvbnN0CiB7Ci0gICAgc3dp
dGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVMdHI6Ci0gICAgICAg
ICAgICByZXR1cm4gTFRSOwotICAgICAgICBjYXNlIENTU1ZhbHVlUnRsOgotICAgICAgICAgICAg
cmV0dXJuIFJUTDsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NT
VmFsdWVMdHI6CisgICAgICAgIHJldHVybiBMVFI7CisgICAgY2FzZSBDU1NWYWx1ZVJ0bDoKKyAg
ICAgICAgcmV0dXJuIFJUTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI5MzgsMjYgKzMwNDcsMjYgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHREaXJlY3Rpb24oKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKFdyaXRpbmdNb2RlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5
cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUb3BUb0JvdHRv
bVdyaXRpbmdNb2RlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIb3Jpem9udGFs
VGI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSG9yaXpvbnRhbFRiOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVZlcnRpY2FsUmw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlVmVydGljYWxSbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMZWZ0VG9S
aWdodFdyaXRpbmdNb2RlOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWZXJ0aWNh
bExyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZlcnRpY2FsTHI7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlSG9yaXpvbnRhbEJ0OworICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUhvcml6b250YWxCdDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV3JpdGluZ01vZGUo
KSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUhvcml6b250YWxUYjoKICAgICAgICAg
cmV0dXJuIFRvcFRvQm90dG9tV3JpdGluZ01vZGU7CiAgICAgY2FzZSBDU1NWYWx1ZVZlcnRpY2Fs
Umw6CkBAIC0yOTY2LDYgKzMwNzUsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgV3JpdGluZ01vZGUoKSBjb25zdAogICAgICAgICByZXR1cm4gTGVmdFRv
UmlnaHRXcml0aW5nTW9kZTsKICAgICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRhbEJ0OgogICAgICAg
ICByZXR1cm4gQm90dG9tVG9Ub3BXcml0aW5nTW9kZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI5NzUsMjQgKzMw
ODYsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdy
aXRpbmdNb2RlKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShUZXh0Q29tYmluZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZl
Q2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3By
aW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNh
c2UgVGV4dENvbWJpbmVOb25lOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25l
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgVGV4dENvbWJpbmVIb3Jpem9udGFsOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVIb3Jpem9udGFsOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUhvcml6b250YWw7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRDb21iaW5lKCkgY29uc3QKIHsKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
ewogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gVGV4dENvbWJpbmVOb25l
OwogICAgIGNhc2UgQ1NTVmFsdWVIb3Jpem9udGFsOgogICAgICAgICByZXR1cm4gVGV4dENvbWJp
bmVIb3Jpem9udGFsOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzAwMiwyNCArMzExNSwyNiBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dENvbWJpbmUoKSBjb25zdAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFJ1
YnlQb3NpdGlvbiBwb3NpdGlvbikKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewot
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0
VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7CiAgICAgY2FzZSBS
dWJ5UG9zaXRpb25CZWZvcmU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUJlZm9y
ZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCZWZvcmU7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgUnVieVBvc2l0aW9uQWZ0ZXI6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUFmdGVyOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFmdGVy
OwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBSdWJ5UG9zaXRpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAo
bV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUJlZm9yZToKICAgICAgICAgcmV0dXJuIFJ1YnlQb3NpdGlvbkJlZm9yZTsKICAg
ICBjYXNlIENTU1ZhbHVlQWZ0ZXI6CiAgICAgICAgIHJldHVybiBSdWJ5UG9zaXRpb25BZnRlcjsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTMwMjksMjQgKzMxNDQsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJ1YnlQb3NpdGlvbigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dEVtcGhhc2lzUG9z
aXRpb24gcG9zaXRpb24pCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChwb3NpdGlvbikgewogICAgIGNhc2UgVGV4dEVt
cGhhc2lzUG9zaXRpb25PdmVyOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPdmVy
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU92ZXI7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgVGV4dEVtcGhhc2lzUG9zaXRpb25VbmRlcjoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlVW5kZXI7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
VW5kZXI7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgY29uc3QKIHsK
LSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJ
RCkgewogICAgIGNhc2UgQ1NTVmFsdWVPdmVyOgogICAgICAgICByZXR1cm4gVGV4dEVtcGhhc2lz
UG9zaXRpb25PdmVyOwogICAgIGNhc2UgQ1NTVmFsdWVVbmRlcjoKICAgICAgICAgcmV0dXJuIFRl
eHRFbXBoYXNpc1Bvc2l0aW9uVW5kZXI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAg
ICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zMDU2LDI0ICszMTczLDI2IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RW1waGFz
aXNQb3NpdGlvbigpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dE92ZXJmbG93IG92ZXJmbG93KQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAob3Zl
cmZsb3cpIHsKICAgICBjYXNlIFRleHRPdmVyZmxvd0NsaXA6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZUNsaXA7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2xp
cDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0T3ZlcmZsb3dFbGxpcHNpczoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRWxsaXBzaXM7CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlRWxsaXBzaXM7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRPdmVyZmxvdygp
IGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQ2xpcDoKICAgICAgICAgcmV0dXJuIFRl
eHRPdmVyZmxvd0NsaXA7CiAgICAgY2FzZSBDU1NWYWx1ZUVsbGlwc2lzOgogICAgICAgICByZXR1
cm4gVGV4dE92ZXJmbG93RWxsaXBzaXM7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAg
ICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zMDgzLDI0ICszMjAyLDI2IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0T3ZlcmZs
b3coKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKFRleHRFbXBoYXNpc0ZpbGwgZmlsbCkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2
ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGZpbGwpIHsKICAg
ICBjYXNlIFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUZpbGxlZDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGaWxsZWQ7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEVtcGhhc2lzRmlsbE9wZW46Ci0gICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU9wZW47CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlT3BlbjsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEVtcGhhc2lzRmlsbCgpIGNvbnN0
CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlRmlsbGVkOgogICAgICAgICByZXR1cm4gVGV4dEVt
cGhhc2lzRmlsbEZpbGxlZDsKICAgICBjYXNlIENTU1ZhbHVlT3BlbjoKICAgICAgICAgcmV0dXJu
IFRleHRFbXBoYXNpc0ZpbGxPcGVuOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzExMCwzNSArMzIzMSwzNSBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEVtcGhhc2lz
RmlsbCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoVGV4dEVtcGhhc2lzTWFyayBtYXJrKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAobWFyaykgewog
ICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0RvdDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlRG90OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURvdDsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQ2lyY2xlOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVDaXJjbGU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQ2lyY2xlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtE
b3VibGVDaXJjbGU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURvdWJsZUNpcmNs
ZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEb3VibGVDaXJjbGU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya1RyaWFuZ2xlOgotICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUcmlhbmdsZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVUcmlhbmdsZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0RW1waGFz
aXNNYXJrU2VzYW1lOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTZXNhbWU7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VzYW1lOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtOb25lOgogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFy
a0F1dG86CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQ3VzdG9tOgogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAgICBicmVhazsKICAg
ICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBU
ZXh0RW1waGFzaXNNYXJrKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsK
KyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgog
ICAgICAgICByZXR1cm4gVGV4dEVtcGhhc2lzTWFya05vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZURv
dDoKQEAgLTMxNTEsNiArMzI3Miw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBUZXh0RW1waGFzaXNNYXJrKCkgY29uc3QKICAgICAgICAgcmV0dXJuIFRl
eHRFbXBoYXNpc01hcmtUcmlhbmdsZTsKICAgICBjYXNlIENTU1ZhbHVlU2VzYW1lOgogICAgICAg
ICByZXR1cm4gVGV4dEVtcGhhc2lzTWFya1Nlc2FtZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTMxNjAsMjYgKzMy
ODMsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHRFbXBoYXNpc01hcmsoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRPcmllbnRhdGlvbiBlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgVGV4dE9yaWVudGF0aW9uU2lkZXdheXM6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZVNpZGV3YXlzOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVNpZGV3YXlzOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRPcmllbnRhdGlvblNpZGV3
YXlzUmlnaHQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNpZGV3YXlzUmlnaHQ7
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2lkZXdheXNSaWdodDsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0OgotICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWZXJ0aWNhbFJpZ2h0OworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVZlcnRpY2FsUmlnaHQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVGV4dE9yaWVudGF0aW9uVXByaWdodDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlVXByaWdodDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVcHJpZ2h0Owog
ICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBUZXh0T3JpZW50YXRpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAo
bV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2Fz
ZSBDU1NWYWx1ZVNpZGV3YXlzOgogICAgICAgICByZXR1cm4gVGV4dE9yaWVudGF0aW9uU2lkZXdh
eXM7CiAgICAgY2FzZSBDU1NWYWx1ZVNpZGV3YXlzUmlnaHQ6CkBAIC0zMTg4LDYgKzMzMTEsOCBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dE9yaWVu
dGF0aW9uKCkgY29uc3QKICAgICAgICAgcmV0dXJuIFRleHRPcmllbnRhdGlvblZlcnRpY2FsUmln
aHQ7CiAgICAgY2FzZSBDU1NWYWx1ZVVwcmlnaHQ6CiAgICAgICAgIHJldHVybiBUZXh0T3JpZW50
YXRpb25VcHJpZ2h0OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzE5Nyw2NCArMzMyMiw2NiBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dE9yaWVudGF0aW9uKCkgY29u
c3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShFUG9pbnRlckV2ZW50cyBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0g
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIFBFX05P
TkU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUEVfU1RST0tFOgotICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlU3Ryb2tlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
UEVfRklMTDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUZpbGw7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQRV9QQUlOVEVEOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlUGFpbnRlZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIFBFX1ZJU0lCTEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVW
aXNpYmxlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUEVfVklTSUJMRV9TVFJP
S0U6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWaXNpYmxlc3Ryb2tlOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUEVfVklTSUJMRV9GSUxMOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmlzaWJsZWZpbGw7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBQRV9WSVNJQkxFX1BBSU5URUQ6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVWaXNpYmxlcGFpbnRlZDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFBFX0FVVE86Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVBdXRvOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUEVfQUxMOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWxsOwotICAgICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQRV9OT05FOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUEVfU1RST0tFOgorICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVN0cm9rZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQRV9GSUxM
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZpbGw7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUEVfUEFJTlRFRDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVQYWludGVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBFX1ZJU0lCTEU6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmlzaWJsZTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBQRV9WSVNJQkxFX1NUUk9LRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVWaXNpYmxlc3Ryb2tlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBFX1ZJU0lCTEVfRklM
TDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaXNpYmxlZmlsbDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBQRV9WSVNJQkxFX1BBSU5URUQ6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlVmlzaWJsZXBhaW50ZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUEVfQVVUTzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBFX0FMTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVBbGw7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVQb2ludGVyRXZlbnRzKCkgY29uc3QKIHsK
LSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFsbDoK
LSAgICAgICAgICAgIHJldHVybiBQRV9BTEw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgot
ICAgICAgICAgICAgcmV0dXJuIFBFX0FVVE87Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb25lOgot
ICAgICAgICAgICAgcmV0dXJuIFBFX05PTkU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxl
cGFpbnRlZDoKLSAgICAgICAgICAgIHJldHVybiBQRV9WSVNJQkxFX1BBSU5URUQ7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVWaXNpYmxlZmlsbDoKLSAgICAgICAgICAgIHJldHVybiBQRV9WSVNJQkxF
X0ZJTEw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlc3Ryb2tlOgotICAgICAgICAgICAg
cmV0dXJuIFBFX1ZJU0lCTEVfU1RST0tFOwotICAgICAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZToK
LSAgICAgICAgICAgIHJldHVybiBQRV9WSVNJQkxFOwotICAgICAgICBjYXNlIENTU1ZhbHVlUGFp
bnRlZDoKLSAgICAgICAgICAgIHJldHVybiBQRV9QQUlOVEVEOwotICAgICAgICBjYXNlIENTU1Zh
bHVlRmlsbDoKLSAgICAgICAgICAgIHJldHVybiBQRV9GSUxMOwotICAgICAgICBjYXNlIENTU1Zh
bHVlU3Ryb2tlOgotICAgICAgICAgICAgcmV0dXJuIFBFX1NUUk9LRTsKKyAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVBbGw6CisgICAgICAgIHJldHVybiBQ
RV9BTEw7CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86CisgICAgICAgIHJldHVybiBQRV9BVVRPOwor
ICAgIGNhc2UgQ1NTVmFsdWVOb25lOgorICAgICAgICByZXR1cm4gUEVfTk9ORTsKKyAgICBjYXNl
IENTU1ZhbHVlVmlzaWJsZXBhaW50ZWQ6CisgICAgICAgIHJldHVybiBQRV9WSVNJQkxFX1BBSU5U
RUQ7CisgICAgY2FzZSBDU1NWYWx1ZVZpc2libGVmaWxsOgorICAgICAgICByZXR1cm4gUEVfVklT
SUJMRV9GSUxMOworICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlc3Ryb2tlOgorICAgICAgICByZXR1
cm4gUEVfVklTSUJMRV9TVFJPS0U7CisgICAgY2FzZSBDU1NWYWx1ZVZpc2libGU6CisgICAgICAg
IHJldHVybiBQRV9WSVNJQkxFOworICAgIGNhc2UgQ1NTVmFsdWVQYWludGVkOgorICAgICAgICBy
ZXR1cm4gUEVfUEFJTlRFRDsKKyAgICBjYXNlIENTU1ZhbHVlRmlsbDoKKyAgICAgICAgcmV0dXJu
IFBFX0ZJTEw7CisgICAgY2FzZSBDU1NWYWx1ZVN0cm9rZToKKyAgICAgICAgcmV0dXJuIFBFX1NU
Uk9LRTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKQEAgLTMyNjQsMzIgKzMzOTEsMzQgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVQb2ludGVyRXZlbnRzKCkgY29uc3QKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250RGVz
Y3JpcHRpb246Oktlcm5pbmcga2VybmluZykKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNz
KQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGtlcm5pbmcpIHsKICAgICBj
YXNlIEZvbnREZXNjcmlwdGlvbjo6QXV0b0tlcm5pbmc6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsK
ICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udERlc2NyaXB0aW9uOjpOb3JtYWxLZXJuaW5n
OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBG
b250RGVzY3JpcHRpb246Ok5vbmVLZXJuaW5nOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVOb25lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVBdXRvOworICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXV0bzsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEZvbnREZXNjcmlwdGlvbjo6S2VybmluZygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1Zh
bHVlQXV0bzoKICAgICAgICAgcmV0dXJuIEZvbnREZXNjcmlwdGlvbjo6QXV0b0tlcm5pbmc7CiAg
ICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIEZvbnREZXNjcmlwdGlvbjo6
Tm9ybWFsS2VybmluZzsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIEZv
bnREZXNjcmlwdGlvbjo6Tm9uZUtlcm5pbmc7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zMjk5LDI5ICszNDI4LDI5
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250RGVz
Y3JpcHRpb246Oktlcm5pbmcoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZykKICAg
ICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUg
PSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAg
ICBzd2l0Y2ggKHNtb290aGluZykgewogICAgIGNhc2UgQXV0b1Ntb290aGluZzoKLSAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVBdXRvOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBOb1Ntb290aGluZzoKLSAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVOb25lOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBBbnRpYWxpYXNl
ZDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQW50aWFsaWFzZWQ7CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQW50aWFsaWFzZWQ7CiAgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIFN1YnBpeGVsQW50aWFsaWFzZWQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZVN1YnBpeGVsQW50aWFsaWFzZWQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlU3VicGl4ZWxBbnRpYWxpYXNlZDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87
CisgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwogfQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udFNtb290aGluZ01vZGUoKSBjb25z
dAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBBdXRvU21v
b3RoaW5nOwogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgpAQCAtMzMzMCw2ICszNDU5LDggQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRTbW9vdGhpbmdN
b2RlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIEFudGlhbGlhc2VkOwogICAgIGNhc2UgQ1NTVmFs
dWVTdWJwaXhlbEFudGlhbGlhc2VkOgogICAgICAgICByZXR1cm4gU3VicGl4ZWxBbnRpYWxpYXNl
ZDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTMzMzksNDQgKzM0NzAsNDQgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRTbW9vdGhpbmdNb2RlKCkgY29uc3QKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250V2Vp
Z2h0IHdlaWdodCkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKHdlaWdodCkgewogICAgIGNhc2UgRm9udFdlaWdodDkw
MDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlOTAwOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZTkwMDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFdl
aWdodDgwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlODAwOworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTgwMDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
Rm9udFdlaWdodDcwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlNzAwOworICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTcwMDsKICAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgRm9udFdlaWdodDYwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlNjAw
OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTYwMDsKICAgICAgICAgcmV0dXJu
OwogICAgIGNhc2UgRm9udFdlaWdodDUwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlNTAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTUwMDsKICAgICAgICAg
cmV0dXJuOwogICAgIGNhc2UgRm9udFdlaWdodDQwMDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlNDAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTQwMDsKICAg
ICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFdlaWdodDMwMDoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlMzAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZTMw
MDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFdlaWdodDIwMDoKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlMjAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZTIwMDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFdlaWdodDEwMDoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlMTAwOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZTEwMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRXZWlnaHQoKSBjb25zdAogewotICAgIHN3aXRj
aCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZUJvbGQ6CiAgICAgICAgIHJldHVybiBGb250V2VpZ2h0Qm9sZDsKICAgICBj
YXNlIENTU1ZhbHVlTm9ybWFsOgpAQCAtMzM5OSw2ICszNTMwLDggQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRXZWlnaHQoKSBjb25zdAogICAgICAg
ICByZXR1cm4gRm9udFdlaWdodDIwMDsKICAgICBjYXNlIENTU1ZhbHVlMTAwOgogICAgICAgICBy
ZXR1cm4gRm9udFdlaWdodDEwMDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM0MDgsMjkgKzM1NDEsMzEgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRXZWlnaHQoKSBj
b25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEZvbnRJdGFsaWMgaXRhbGljKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7
Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVu
aXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoaXRhbGljKSB7CiAgICAgY2FzZSBG
b250SXRhbGljT2ZmOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOwogICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBGb250SXRhbGljT246Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUl0YWxpYzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJdGFsaWM7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVOb3JtYWw7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBGb250SXRhbGljKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsK
KyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVPYmxpcXVl
OgogICAgIC8vIEZJWE1FOiBvYmxpcXVlIGlzIHRoZSBzYW1lIGFzIGl0YWxpYyBmb3IgdGhlIG1v
bWVudC4uLgogICAgIGNhc2UgQ1NTVmFsdWVJdGFsaWM6CiAgICAgICAgIHJldHVybiBGb250SXRh
bGljT247CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIEZvbnRJdGFs
aWNPZmY7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBGb250SXRhbGljT2ZmOwpAQCAtMzQzOSwyNyArMzU3
NCwyOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9u
dEl0YWxpYygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoRm9udFNtYWxsQ2FwcyBzbWFsbENhcHMpCiAgICAgOiBDU1NWYWx1ZShQ
cmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwor
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChzbWFs
bENhcHMpIHsKICAgICBjYXNlIEZvbnRTbWFsbENhcHNPZmY6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVO
b3JtYWw7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEZvbnRTbWFsbENhcHNPbjoKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU21hbGxDYXBzOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVNtYWxsQ2FwczsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1h
bDsKKyAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKIH0KIAogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRTbWFsbENhcHMoKSBjb25z
dAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNtYWxsQ2FwczoKICAgICAgICAgcmV0dXJuIEZv
bnRTbWFsbENhcHNPbjsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICByZXR1cm4g
Rm9udFNtYWxsQ2Fwc09mZjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIEZvbnRTbWFsbENhcHNPZmY7CkBA
IC0zNDY4LDM0ICszNjA1LDM2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGb250U21hbGxDYXBzKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0UmVuZGVyaW5nTW9kZSBlKQogICAg
IDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9
IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAg
IHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIEF1dG9UZXh0UmVuZGVyaW5nOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIE9wdGltaXplU3BlZWQ6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVPcHRpbWl6ZXNwZWVkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT3B0
aW1pemVMZWdpYmlsaXR5OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3B0
aW1pemVsZWdpYmlsaXR5OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgR2VvbWV0
cmljUHJlY2lzaW9uOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlR2VvbWV0
cmljcHJlY2lzaW9uOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBdXRvVGV4dFJlbmRl
cmluZzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE9wdGltaXplU3BlZWQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlT3B0aW1pemVzcGVlZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPcHRpbWl6
ZUxlZ2liaWxpdHk6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1pemVs
ZWdpYmlsaXR5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdlb21ldHJpY1ByZWNpc2lvbjoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVHZW9tZXRyaWNwcmVjaXNpb247Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIFRleHRSZW5kZXJpbmdNb2RlKCkgY29uc3QKIHsKLSAgICBzd2l0Y2gg
KG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAgICAg
ICByZXR1cm4gQXV0b1RleHRSZW5kZXJpbmc7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6
ZXNwZWVkOgotICAgICAgICAgICAgcmV0dXJuIE9wdGltaXplU3BlZWQ7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVPcHRpbWl6ZWxlZ2liaWxpdHk6Ci0gICAgICAgICAgICByZXR1cm4gT3B0aW1pemVM
ZWdpYmlsaXR5OwotICAgICAgICBjYXNlIENTU1ZhbHVlR2VvbWV0cmljcHJlY2lzaW9uOgotICAg
ICAgICAgICAgcmV0dXJuIEdlb21ldHJpY1ByZWNpc2lvbjsKKyAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICByZXR1cm4gQXV0b1Rl
eHRSZW5kZXJpbmc7CisgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ6CisgICAgICAgIHJl
dHVybiBPcHRpbWl6ZVNwZWVkOworICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZWxlZ2liaWxpdHk6
CisgICAgICAgIHJldHVybiBPcHRpbWl6ZUxlZ2liaWxpdHk7CisgICAgY2FzZSBDU1NWYWx1ZUdl
b21ldHJpY3ByZWNpc2lvbjoKKyAgICAgICAgcmV0dXJuIEdlb21ldHJpY1ByZWNpc2lvbjsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKQEAgLTM1MDUsMjkgKzM2NDQsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRSZW5kZXJpbmdNb2RlKCkgY29uc3QKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2xvclNwYWNlIHNw
YWNlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOwogICAgIHN3aXRjaCAoc3BhY2UpIHsKICAgICBjYXNlIENvbG9yU3BhY2VEZXZpY2VSR0I6
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURlZmF1bHQ7CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlRGVmYXVsdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
b2xvclNwYWNlU1JHQjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3JnYjsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcmdiOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENvbG9yU3BhY2VMaW5lYXJSR0I6CiAgICAgICAgIC8vIENTUyBjb2xvciBjb3JyZWN0
aW9uIGRvZXMgbm90IHN1cHBvcnQgbGluZWFyUkdCIHlldC4KICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURlZmF1bHQ7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVmYXVsdDsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
Q29sb3JTcGFjZSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlRGVmYXVsdDoKICAg
ICAgICAgcmV0dXJuIENvbG9yU3BhY2VEZXZpY2VSR0I7CiAgICAgY2FzZSBDU1NWYWx1ZVNyZ2I6
CiAgICAgICAgIHJldHVybiBDb2xvclNwYWNlU1JHQjsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM1MzcsMjkgKzM2
NzgsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENv
bG9yU3BhY2UoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKEh5cGhlbnMgaHlwaGVucykKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2
ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGh5cGhlbnMpIHsK
ICAgICBjYXNlIEh5cGhlbnNOb25lOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVO
b25lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgSHlwaGVuc01hbnVhbDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlTWFudWFsOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1hbnVhbDsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBIeXBoZW5zQXV0bzoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVB
dXRvOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBIeXBoZW5zKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1f
dmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2Ug
Q1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gSHlwaGVuc05vbmU7CiAgICAgY2FzZSBDU1NW
YWx1ZU1hbnVhbDoKICAgICAgICAgcmV0dXJuIEh5cGhlbnNNYW51YWw7CiAgICAgY2FzZSBDU1NW
YWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBIeXBoZW5zQXV0bzsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM1Njks
MjkgKzM3MTIsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEh5cGhlbnMoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKExpbmVTbmFwIGdyaWRTbmFwKQogICAgIDogQ1NTVmFsdWUoUHJp
bWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZ3JpZFNu
YXApIHsKICAgICBjYXNlIExpbmVTbmFwTm9uZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIExpbmVTbmFwQmFzZWxpbmU6Ci0gICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUJhc2VsaW5lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUJhc2VsaW5lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExpbmVTbmFwQ29udGFpbjoK
LSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29udGFpbjsKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250YWluOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAK
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lU25hcCgp
IGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIExp
bmVTbmFwTm9uZTsKICAgICBjYXNlIENTU1ZhbHVlQmFzZWxpbmU6CiAgICAgICAgIHJldHVybiBM
aW5lU25hcEJhc2VsaW5lOwogICAgIGNhc2UgQ1NTVmFsdWVDb250YWluOgogICAgICAgICByZXR1
cm4gTGluZVNuYXBDb250YWluOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0K
IAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzYwMSwyNCArMzc0NiwyNiBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZVNuYXAoKSBjb25z
dAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KExpbmVBbGlnbiBsaW5lQWxpZ24pCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsK
LSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChsaW5lQWxpZ24pIHsKICAgICBjYXNl
IExpbmVBbGlnbk5vbmU6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7Cisg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBMaW5lQWxpZ25FZGdlczoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
RWRnZXM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRWRnZXM7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIExpbmVBbGlnbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50
KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9u
ZToKICAgICAgICAgcmV0dXJuIExpbmVBbGlnbk5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZUVkZ2Vz
OgogICAgICAgICByZXR1cm4gTGluZUFsaWduRWRnZXM7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNjI4LDM2ICsz
Nzc1LDM4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBM
aW5lQWxpZ24oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKEVTcGVhayBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3Mp
CiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2
ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgU3Bl
YWtOb25lOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
U3BlYWtOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgU3BlYWtTcGVsbE91dDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
U3BlbGxPdXQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3BlbGxPdXQ7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3BlYWtEaWdpdHM6Ci0gICAgICAgIG1fdmFsdWUuaWRl
bnQgPSBDU1NWYWx1ZURpZ2l0czsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVE
aWdpdHM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3BlYWtMaXRlcmFsUHVuY3R1YXRpb246
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxpdGVyYWxQdW5jdHVhdGlvbjsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMaXRlcmFsUHVuY3R1YXRpb247CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgU3BlYWtOb1B1bmN0dWF0aW9uOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVOb1B1bmN0dWF0aW9uOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU5vUHVuY3R1YXRpb247CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9yZGVyKCkgY29uc3QK
IHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVMb2dpY2FsOgogICAgICAgICByZXR1cm4gTG9naWNh
bE9yZGVyOwogICAgIGNhc2UgQ1NTVmFsdWVWaXN1YWw6CiAgICAgICAgIHJldHVybiBWaXN1YWxP
cmRlcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKQEAgLTM2NjcsMjAgKzM4MTYsMjAgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9yZGVyKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShPcmRlciBlKQogICAgIDog
Q1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3
aXRjaCAoZSkgewogICAgIGNhc2UgTG9naWNhbE9yZGVyOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVMb2dpY2FsOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxv
Z2ljYWw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmlzdWFsT3JkZXI6Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVZpc3VhbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVWaXN1YWw7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVTcGVhaygpIGNvbnN0CiB7Ci0gICAg
c3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsK
ICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIFNwZWFrTm9uZTsKICAgICBj
YXNlIENTU1ZhbHVlTm9ybWFsOgpAQCAtMzY5Myw2ICszODQyLDggQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVTcGVhaygpIGNvbnN0CiAgICAgICAgIHJl
dHVybiBTcGVha0xpdGVyYWxQdW5jdHVhdGlvbjsKICAgICBjYXNlIENTU1ZhbHVlTm9QdW5jdHVh
dGlvbjoKICAgICAgICAgcmV0dXJuIFNwZWFrTm9QdW5jdHVhdGlvbjsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM3
MDIsNjIgKzM4NTMsNjIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIEVTcGVhaygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQmxlbmRNb2RlIGJsZW5kTW9kZSkKICAgICA6IENTU1ZhbHVl
KFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7
CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGJs
ZW5kTW9kZSkgewogICAgIGNhc2UgQmxlbmRNb2RlTm9ybWFsOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Tm9ybWFsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZU11bHRpcGx5OgotICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNdWx0aXBseTsKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVNdWx0aXBseTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVu
ZE1vZGVTY3JlZW46Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNjcmVlbjsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTY3JlZW47CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQmxlbmRNb2RlT3ZlcmxheToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlT3ZlcmxheTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPdmVybGF5Owog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZURhcmtlbjoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlRGFya2VuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZURhcmtlbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVMaWdodGVuOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMaWdodGVuOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUxpZ2h0ZW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxl
bmRNb2RlQ29sb3JEb2RnZToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sb3JE
b2RnZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb2xvckRvZGdlOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZUNvbG9yQnVybjoKLSAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlQ29sb3JCdXJuOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUNvbG9yQnVybjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVIYXJk
TGlnaHQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhhcmRMaWdodDsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIYXJkTGlnaHQ7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQmxlbmRNb2RlU29mdExpZ2h0OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVTb2Z0TGlnaHQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU29mdExp
Z2h0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZURpZmZlcmVuY2U6Ci0gICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURpZmZlcmVuY2U7CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlRGlmZmVyZW5jZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBC
bGVuZE1vZGVFeGNsdXNpb246Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV4Y2x1
c2lvbjsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFeGNsdXNpb247CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlSHVlOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVIdWU7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSHVlOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZVNhdHVyYXRpb246Ci0gICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNhdHVyYXRpb247CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU2F0dXJhdGlvbjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1v
ZGVDb2xvcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sb3I7CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sb3I7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQmxlbmRNb2RlTHVtaW5vc2l0eToKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
THVtaW5vc2l0eTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMdW1pbm9zaXR5
OwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBCbGVuZE1vZGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92
YWx1ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZU5vcm1hbDsKICAgICBjYXNl
IENTU1ZhbHVlTXVsdGlwbHk6CkBAIC0zNzkwLDYgKzM5NDEsOCBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQmxlbmRNb2RlKCkgY29uc3QKICAgICAgICAg
cmV0dXJuIEJsZW5kTW9kZUNvbG9yOwogICAgIGNhc2UgQ1NTVmFsdWVMdW1pbm9zaXR5OgogICAg
ICAgICByZXR1cm4gQmxlbmRNb2RlTHVtaW5vc2l0eTsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM4MDEsMjkgKzM5
NTQsMzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJs
ZW5kTW9kZSgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoTGluZUNhcCBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3Mp
CiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2
ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNl
IEJ1dHRDYXA6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVCdXR0OwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUm91bmRDYXA6Ci0gICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVSb3VuZDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFNxdWFyZUNhcDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNxdWFy
ZTsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnV0dENhcDoKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVCdXR0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJvdW5k
Q2FwOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJvdW5kOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNxdWFyZUNhcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVTcXVhcmU7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVDYXAoKSBjb25zdAogewotICAgIHN3
aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dDoKLSAgICAg
ICAgICAgIHJldHVybiBCdXR0Q2FwOwotICAgICAgICBjYXNlIENTU1ZhbHVlUm91bmQ6Ci0gICAg
ICAgICAgICByZXR1cm4gUm91bmRDYXA7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTcXVhcmU6Ci0g
ICAgICAgICAgICByZXR1cm4gU3F1YXJlQ2FwOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CisgICAgY2FzZSBDU1NWYWx1ZUJ1dHQ6CisgICAgICAgIHJldHVybiBCdXR0Q2FwOworICAg
IGNhc2UgQ1NTVmFsdWVSb3VuZDoKKyAgICAgICAgcmV0dXJuIFJvdW5kQ2FwOworICAgIGNhc2Ug
Q1NTVmFsdWVTcXVhcmU6CisgICAgICAgIHJldHVybiBTcXVhcmVDYXA7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0z
ODMzLDI5ICszOTg4LDMxIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBMaW5lQ2FwKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShMaW5lSm9pbiBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBt
X3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAg
ICAgICBjYXNlIE1pdGVySm9pbjoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZU1pdGVyOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUm91bmRKb2luOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUm91bmQ7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBCZXZlbEpvaW46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVCZXZlbDsKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWl0ZXJKb2luOgor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1pdGVyOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFJvdW5kSm9pbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVS
b3VuZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCZXZlbEpvaW46CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQmV2ZWw7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVKb2luKCkg
Y29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NW
YWx1ZU1pdGVyOgotICAgICAgICAgICAgcmV0dXJuIE1pdGVySm9pbjsKLSAgICAgICAgY2FzZSBD
U1NWYWx1ZVJvdW5kOgotICAgICAgICAgICAgcmV0dXJuIFJvdW5kSm9pbjsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUJldmVsOgotICAgICAgICAgICAgcmV0dXJuIEJldmVsSm9pbjsKKyAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVNaXRlcjoKKyAgICAgICAg
cmV0dXJuIE1pdGVySm9pbjsKKyAgICBjYXNlIENTU1ZhbHVlUm91bmQ6CisgICAgICAgIHJldHVy
biBSb3VuZEpvaW47CisgICAgY2FzZSBDU1NWYWx1ZUJldmVsOgorICAgICAgICByZXR1cm4gQmV2
ZWxKb2luOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzg2NSwyNCArNDAyMiwyNiBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUpvaW4oKSBjb25zdAogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFdpbmRSdWxlIGUp
CiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7
CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgUlVMRV9OT05aRVJPOgotICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uemVybzsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFJVTEVfRVZFTk9ERDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUV2ZW5vZGQ7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIFJVTEVfTk9OWkVS
TzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb256ZXJvOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFJVTEVfRVZFTk9ERDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVFdmVub2RkOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXaW5kUnVsZSgpIGNvbnN0CiB7Ci0g
ICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVOb256ZXJv
OgotICAgICAgICAgICAgcmV0dXJuIFJVTEVfTk9OWkVSTzsKLSAgICAgICAgY2FzZSBDU1NWYWx1
ZUV2ZW5vZGQ6Ci0gICAgICAgICAgICByZXR1cm4gUlVMRV9FVkVOT0REOworICAgIHN3aXRjaCAo
bV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZU5vbnplcm86CisgICAgICAgIHJl
dHVybiBSVUxFX05PTlpFUk87CisgICAgY2FzZSBDU1NWYWx1ZUV2ZW5vZGQ6CisgICAgICAgIHJl
dHVybiBSVUxFX0VWRU5PREQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zODkzLDc0ICs0MDUyLDc2IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXaW5kUnVsZSgpIGNvbnN0
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
RUFsaWdubWVudEJhc2VsaW5lIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsK
LSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgICAgIGNhc2UgQUJf
QVVUTzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBQl9CQVNFTElORToKLSAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUJhc2VsaW5lOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgQUJfQkVGT1JFX0VER0U6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVCZWZvcmVFZGdlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQUJfVEVYVF9C
RUZPUkVfRURHRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRleHRCZWZv
cmVFZGdlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQUJfTUlERExFOgotICAg
ICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWlkZGxlOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgQUJfQ0VOVFJBTDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUNlbnRyYWw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBQl9B
RlRFUl9FREdFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQWZ0ZXJFZGdl
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQUJfVEVYVF9BRlRFUl9FREdFOgot
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGV4dEFmdGVyRWRnZTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFCX0lERU9HUkFQSElDOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSWRlb2dyYXBoaWM7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBBQl9BTFBIQUJFVElDOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlQWxwaGFiZXRpYzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFC
X0hBTkdJTkc6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIYW5naW5nOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQUJfTUFUSEVNQVRJQ0FMOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWF0aGVtYXRpY2FsOwotICAgICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBBQl9BVVRPOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUF1dG87CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQUJfQkFTRUxJTkU6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmFzZWxpbmU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQUJfQkVGT1JFX0VER0U6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QmVmb3JlRWRnZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBQl9URVhUX0JFRk9SRV9FREdF
OgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRCZWZvcmVFZGdlOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFCX01JRERMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNaWRkbGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQUJfQ0VOVFJBTDoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50cmFsOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFCX0FGVEVSX0VER0U6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQWZ0ZXJFZGdlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFCX1RFWFRfQUZURVJf
RURHRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0QWZ0ZXJFZGdlOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEFCX0lERU9HUkFQSElDOgorICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUlkZW9ncmFwaGljOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFCX0FMUEhBQkVUSUM6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxwaGFi
ZXRpYzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBQl9IQU5HSU5HOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhhbmdpbmc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QUJfTUFUSEVNQVRJQ0FMOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1hdGhl
bWF0aWNhbDsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWdubWVudEJhc2VsaW5lKCkgY29uc3QKIHsK
LSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86
Ci0gICAgICAgICAgICByZXR1cm4gQUJfQVVUTzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJhc2Vs
aW5lOgotICAgICAgICAgICAgcmV0dXJuIEFCX0JBU0VMSU5FOwotICAgICAgICBjYXNlIENTU1Zh
bHVlQmVmb3JlRWRnZToKLSAgICAgICAgICAgIHJldHVybiBBQl9CRUZPUkVfRURHRTsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZVRleHRCZWZvcmVFZGdlOgotICAgICAgICAgICAgcmV0dXJuIEFCX1RF
WFRfQkVGT1JFX0VER0U7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVNaWRkbGU6Ci0gICAgICAgICAg
ICByZXR1cm4gQUJfTUlERExFOwotICAgICAgICBjYXNlIENTU1ZhbHVlQ2VudHJhbDoKLSAgICAg
ICAgICAgIHJldHVybiBBQl9DRU5UUkFMOwotICAgICAgICBjYXNlIENTU1ZhbHVlQWZ0ZXJFZGdl
OgotICAgICAgICAgICAgcmV0dXJuIEFCX0FGVEVSX0VER0U7Ci0gICAgICAgIGNhc2UgQ1NTVmFs
dWVUZXh0QWZ0ZXJFZGdlOgotICAgICAgICAgICAgcmV0dXJuIEFCX1RFWFRfQUZURVJfRURHRTsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZUlkZW9ncmFwaGljOgotICAgICAgICAgICAgcmV0dXJuIEFC
X0lERU9HUkFQSElDOwotICAgICAgICBjYXNlIENTU1ZhbHVlQWxwaGFiZXRpYzoKLSAgICAgICAg
ICAgIHJldHVybiBBQl9BTFBIQUJFVElDOwotICAgICAgICBjYXNlIENTU1ZhbHVlSGFuZ2luZzoK
LSAgICAgICAgICAgIHJldHVybiBBQl9IQU5HSU5HOwotICAgICAgICBjYXNlIENTU1ZhbHVlTWF0
aGVtYXRpY2FsOgotICAgICAgICAgICAgcmV0dXJuIEFCX01BVEhFTUFUSUNBTDsKKyAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgorICAgICAgICBy
ZXR1cm4gQUJfQVVUTzsKKyAgICBjYXNlIENTU1ZhbHVlQmFzZWxpbmU6CisgICAgICAgIHJldHVy
biBBQl9CQVNFTElORTsKKyAgICBjYXNlIENTU1ZhbHVlQmVmb3JlRWRnZToKKyAgICAgICAgcmV0
dXJuIEFCX0JFRk9SRV9FREdFOworICAgIGNhc2UgQ1NTVmFsdWVUZXh0QmVmb3JlRWRnZToKKyAg
ICAgICAgcmV0dXJuIEFCX1RFWFRfQkVGT1JFX0VER0U7CisgICAgY2FzZSBDU1NWYWx1ZU1pZGRs
ZToKKyAgICAgICAgcmV0dXJuIEFCX01JRERMRTsKKyAgICBjYXNlIENTU1ZhbHVlQ2VudHJhbDoK
KyAgICAgICAgcmV0dXJuIEFCX0NFTlRSQUw7CisgICAgY2FzZSBDU1NWYWx1ZUFmdGVyRWRnZToK
KyAgICAgICAgcmV0dXJuIEFCX0FGVEVSX0VER0U7CisgICAgY2FzZSBDU1NWYWx1ZVRleHRBZnRl
ckVkZ2U6CisgICAgICAgIHJldHVybiBBQl9URVhUX0FGVEVSX0VER0U7CisgICAgY2FzZSBDU1NW
YWx1ZUlkZW9ncmFwaGljOgorICAgICAgICByZXR1cm4gQUJfSURFT0dSQVBISUM7CisgICAgY2Fz
ZSBDU1NWYWx1ZUFscGhhYmV0aWM6CisgICAgICAgIHJldHVybiBBQl9BTFBIQUJFVElDOworICAg
IGNhc2UgQ1NTVmFsdWVIYW5naW5nOgorICAgICAgICByZXR1cm4gQUJfSEFOR0lORzsKKyAgICBj
YXNlIENTU1ZhbHVlTWF0aGVtYXRpY2FsOgorICAgICAgICByZXR1cm4gQUJfTUFUSEVNQVRJQ0FM
OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtMzk3MiwyNCArNDEzMywyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUFsaWdubWVudEJhc2VsaW5lKCkgY29uc3QKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQm9yZGVy
Q29sbGFwc2UgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJp
bWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENT
U19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJTRVBBUkFURToKLSAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2VwYXJhdGU7CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlU2VwYXJhdGU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQkNPTExB
UFNFOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDb2xsYXBzZTsKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb2xsYXBzZTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJv
cmRlckNvbGxhcHNlKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVTZXBhcmF0ZToK
ICAgICAgICAgcmV0dXJuIEJTRVBBUkFURTsKICAgICBjYXNlIENTU1ZhbHVlQ29sbGFwc2U6CiAg
ICAgICAgIHJldHVybiBCQ09MTEFQU0U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAg
ICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zOTk5LDI0ICs0MTYyLDI2IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQm9yZGVyQ29s
bGFwc2UoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1By
aW1pdGl2ZVZhbHVlKEVCb3JkZXJGaXQgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNz
KQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJv
cmRlckZpdEJvcmRlcjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQm9yZGVyOwor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvcmRlcjsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBCb3JkZXJGaXRMaW5lczoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTGluZXM7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGluZXM7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIEVCb3JkZXJGaXQoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5p
ZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1
ZUJvcmRlcjoKICAgICAgICAgcmV0dXJuIEJvcmRlckZpdEJvcmRlcjsKICAgICBjYXNlIENTU1Zh
bHVlTGluZXM6CiAgICAgICAgIHJldHVybiBCb3JkZXJGaXRMaW5lczsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQw
MjYsMjYgKzQxOTEsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIEVCb3JkZXJGaXQoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVJbWFnZVJlbmRlcmluZyBlKQogICAgIDogQ1NTVmFs
dWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVO
VDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAo
ZSkgewogICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmdBdXRvOgotICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmdDcmlzcEVkZ2VzOgotICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRDcmlzcEVkZ2VzOworICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdENyaXNwRWRnZXM7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVNwZWVkOgotICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXNwZWVkOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW1hZ2VS
ZW5kZXJpbmdPcHRpbWl6ZVF1YWxpdHk6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZU9wdGltaXplcXVhbGl0eTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcHRp
bWl6ZXF1YWxpdHk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVJbWFnZVJlbmRlcmluZygpIGNvbnN0CiB7
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVl
SUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIEltYWdlUmVuZGVy
aW5nQXV0bzsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0T3B0aW1pemVDb250cmFzdDoKQEAgLTQw
NTUsNiArNDIyMCw4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBFSW1hZ2VSZW5kZXJpbmcoKSBjb25zdAogICAgICAgICByZXR1cm4gSW1hZ2VSZW5kZXJp
bmdPcHRpbWl6ZVNwZWVkOwogICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk6CiAgICAg
ICAgIHJldHVybiBJbWFnZVJlbmRlcmluZ09wdGltaXplUXVhbGl0eTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQw
NjQsMjQgKzQyMzEsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIEVJbWFnZVJlbmRlcmluZygpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVRyYW5zZm9ybVN0eWxlM0QgZSkKICAgICA6
IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBD
U1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBz
d2l0Y2ggKGUpIHsKICAgICBjYXNlIFRyYW5zZm9ybVN0eWxlM0RGbGF0OgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVGbGF0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUZsYXQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVHJhbnNmb3JtU3R5bGUzRFByZXNl
cnZlM0Q6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVByZXNlcnZlM2Q7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJlc2VydmUzZDsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRVRyYW5zZm9ybVN0eWxlM0QoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVu
dCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUZs
YXQ6CiAgICAgICAgIHJldHVybiBUcmFuc2Zvcm1TdHlsZTNERmxhdDsKICAgICBjYXNlIENTU1Zh
bHVlUHJlc2VydmUzZDoKICAgICAgICAgcmV0dXJuIFRyYW5zZm9ybVN0eWxlM0RQcmVzZXJ2ZTNE
OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtNDA5MSwyOSArNDI2MCwzMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRyYW5zZm9ybVN0eWxlM0QoKSBjb25zdAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbHVtbkF4
aXMgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZl
VW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxV
RV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEhvcml6b250YWxDb2x1bW5BeGlzOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIb3Jpem9udGFsOworICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhvcml6b250YWw7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVmVydGljYWxDb2x1bW5BeGlzOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVW
ZXJ0aWNhbDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbDsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBBdXRvQ29sdW1uQXhpczoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVB
dXRvOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5BeGlzKCkgY29uc3QKIHsKLSAgICBzd2l0Y2gg
KG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNh
c2UgQ1NTVmFsdWVIb3Jpem9udGFsOgogICAgICAgICByZXR1cm4gSG9yaXpvbnRhbENvbHVtbkF4
aXM7CiAgICAgY2FzZSBDU1NWYWx1ZVZlcnRpY2FsOgogICAgICAgICByZXR1cm4gVmVydGljYWxD
b2x1bW5BeGlzOwogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gQXV0b0Nv
bHVtbkF4aXM7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CkBAIC00MTIzLDI0ICs0Mjk0LDI2IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5BeGlzKCkgY29uc3QKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2x1bW5Q
cm9ncmVzc2lvbiBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9w
cmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0g
Q1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgTm9ybWFsQ29sdW1uUHJv
Z3Jlc3Npb246Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgUmV2ZXJzZUNvbHVtblByb2dyZXNzaW9uOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVSZXZlcnNlOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJldmVy
c2U7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtblByb2dyZXNzaW9uKCkgY29uc3QKIHsKLSAgICBz
d2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewog
ICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBOb3JtYWxDb2x1bW5Qcm9n
cmVzc2lvbjsKICAgICBjYXNlIENTU1ZhbHVlUmV2ZXJzZToKICAgICAgICAgcmV0dXJuIFJldmVy
c2VDb2x1bW5Qcm9ncmVzc2lvbjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQxNTAsMzIgKzQzMjMsMzIgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtblByb2dyZXNz
aW9uKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShXcmFwRmxvdyB3cmFwRmxvdykKIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3Mp
CiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2
ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAod3JhcEZsb3cpIHsKICAgICBj
YXNlIFdyYXBGbG93QXV0bzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFdyYXBGbG93Qm90aDoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
Qm90aDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3RoOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFdyYXBGbG93U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZVN0YXJ0OworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0YXJ0Owog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFdyYXBGbG93RW5kOgotICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5k
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdyYXBGbG93TWF4aW11bToKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWF4aW11bTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVNYXhpbXVtOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdyYXBGbG93Q2xlYXI6
Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNsZWFyOworICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUNsZWFyOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcmFwRmxvdygpIGNv
bnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFdyYXBG
bG93QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlQm90aDoKQEAgLTQxODgsNiArNDM2MSw4IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcmFwRmxvdygpIGNv
bnN0CiAgICAgICAgIHJldHVybiBXcmFwRmxvd01heGltdW07CiAgICAgY2FzZSBDU1NWYWx1ZUNs
ZWFyOgogICAgICAgICByZXR1cm4gV3JhcEZsb3dDbGVhcjsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQxOTcsMjQg
KzQzNzIsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFdyYXBGbG93KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShXcmFwVGhyb3VnaCB3cmFwVGhyb3VnaCkKIDogQ1NTVmFsdWUoUHJp
bWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAg
ICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAod3JhcFRo
cm91Z2gpIHsKICAgICBjYXNlIFdyYXBUaHJvdWdoV3JhcDoKLSAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlV3JhcDsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXcmFw
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdyYXBUaHJvdWdoTm9uZToKLSAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVOb25lOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXcmFwVGhyb3VnaCgpIGNvbnN0CiB7Ci0gICAg
c3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsK
ICAgICBjYXNlIENTU1ZhbHVlV3JhcDoKICAgICAgICAgcmV0dXJuIFdyYXBUaHJvdWdoV3JhcDsK
ICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIFdyYXBUaHJvdWdoTm9uZTsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTQyMjMsMTMgKzQ0MDAsMTUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdyYXBUaHJvdWdoKCkgY29uc3QKIAogdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEdyaWRBdXRvRmxvdygpIGNvbnN0CiB7
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVl
SUQpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIEF1dG9GbG93Tm9u
ZTsKICAgICBjYXNlIENTU1ZhbHVlQ29sdW1uOgogICAgICAgICByZXR1cm4gQXV0b0Zsb3dDb2x1
bW47CiAgICAgY2FzZSBDU1NWYWx1ZVJvdzoKICAgICAgICAgcmV0dXJuIEF1dG9GbG93Um93Owor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpAQCAtNDI0MCwxNiArNDQxOSwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgR3JpZEF1dG9GbG93KCkgY29uc3QKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShHcmlkQXV0b0Zsb3cgZmxv
dykKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5p
dFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9J
RDsKICAgICBzd2l0Y2ggKGZsb3cpIHsKICAgICBjYXNlIEF1dG9GbG93Tm9uZToKLSAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVOb25lOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEF1dG9GbG93Q29sdW1uOgot
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDb2x1bW47CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQ29sdW1uOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEF1dG9G
bG93Um93OgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSb3c7CisgICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUm93OwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBA
IC00MjgwLDcgKzQ0NTksNyBAQCB0ZW1wbGF0ZTxpbnQgc3VwcG9ydGVkPiBMZW5ndGggQ1NTUHJp
bWl0aXZlVmFsdWU6OmNvbnZlcnRUb0xlbmd0aChjb25zdCBSZW5kZXJTdAogICAgICAgICByZXR1
cm4gTGVuZ3RoKGdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOwogICAgIGlmICgoc3VwcG9ydGVk
ICYgRnJhY3Rpb25Db252ZXJzaW9uKSAmJiBpc051bWJlcigpKQogICAgICAgICByZXR1cm4gTGVu
Z3RoKGdldERvdWJsZVZhbHVlKCkgKiAxMDAuMCwgUGVyY2VudCk7Ci0gICAgaWYgKChzdXBwb3J0
ZWQgJiBBdXRvQ29udmVyc2lvbikgJiYgZ2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pCisgICAg
aWYgKChzdXBwb3J0ZWQgJiBBdXRvQ29udmVyc2lvbikgJiYgZ2V0VmFsdWVJRCgpID09IENTU1Zh
bHVlQXV0bykKICAgICAgICAgcmV0dXJuIExlbmd0aChBdXRvKTsKICAgICBpZiAoKHN1cHBvcnRl
ZCAmIENhbGN1bGF0ZWRDb252ZXJzaW9uKSAmJiBpc0NhbGN1bGF0ZWQoKSkKICAgICAgICAgcmV0
dXJuIExlbmd0aChjc3NDYWxjVmFsdWUoKS0+dG9DYWxjVmFsdWUoc3R5bGUsIHJvb3RTdHlsZSwg
bXVsdGlwbGllcikpOwpAQCAtNDI5NCwyOSArNDQ3MywzMSBAQCB0ZW1wbGF0ZTxpbnQgc3VwcG9y
dGVkPiBMZW5ndGggQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbnZlcnRUb0xlbmd0aChjb25zdCBSZW5k
ZXJTdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEVCdWZmZXJlZFJlbmRlcmluZyBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3Mp
CiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2
ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQlJf
QVVUTzoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJS
X0RZTkFNSUM6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUR5bmFtaWM7CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRHluYW1pYzsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBCUl9TVEFUSUM6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVN0YXRp
YzsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGF0aWM7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIEVCdWZmZXJlZFJlbmRlcmluZygpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LmlkZW50KSB7CisgICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKICAgICBjYXNlIENTU1Zh
bHVlQXV0bzoKICAgICAgICAgcmV0dXJuIEJSX0FVVE87CiAgICAgY2FzZSBDU1NWYWx1ZUR5bmFt
aWM6CiAgICAgICAgIHJldHVybiBCUl9EWU5BTUlDOwogICAgIGNhc2UgQ1NTVmFsdWVTdGF0aWM6
CiAgICAgICAgIHJldHVybiBCUl9TVEFUSUM7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC00MzI2LDI5ICs0NTA3LDMx
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQnVmZmVy
ZWRSZW5kZXJpbmcoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEVDb2xvckludGVycG9sYXRpb24gZSkKICAgICA6IENTU1ZhbHVl
KFByaW1pdGl2ZUNsYXNzKQogewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7
CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUp
IHsKLSAgICAgICAgY2FzZSBDSV9BVVRPOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlQXV0bzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENJX1NSR0I6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcmdiOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgQ0lfTElORUFSUkdCOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlTGluZWFycmdiOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDSV9B
VVRPOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ0lfU1JHQjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTcmdiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENJX0xJTkVBUlJHQjoKKyAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMaW5lYXJyZ2I7CisgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVD
b2xvckludGVycG9sYXRpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkg
ewotICAgICAgICBjYXNlIENTU1ZhbHVlU3JnYjoKLSAgICAgICAgICAgIHJldHVybiBDSV9TUkdC
OwotICAgICAgICBjYXNlIENTU1ZhbHVlTGluZWFycmdiOgotICAgICAgICAgICAgcmV0dXJuIENJ
X0xJTkVBUlJHQjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAgICAgICByZXR1
cm4gQ0lfQVVUTzsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NT
VmFsdWVTcmdiOgorICAgICAgICByZXR1cm4gQ0lfU1JHQjsKKyAgICBjYXNlIENTU1ZhbHVlTGlu
ZWFycmdiOgorICAgICAgICByZXR1cm4gQ0lfTElORUFSUkdCOworICAgIGNhc2UgQ1NTVmFsdWVB
dXRvOgorICAgICAgICByZXR1cm4gQ0lfQVVUTzsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQzNTgsMjkgKzQ1NDEs
MzEgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVDb2xv
ckludGVycG9sYXRpb24oKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVDb2xvclJlbmRlcmluZyBlKQogICAgIDogQ1NTVmFsdWUo
UHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkg
ewotICAgICAgICBjYXNlIENSX0FVVE86Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVBdXRvOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1JfT1BUSU1JWkVT
UEVFRDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDUl9PUFRJTUlaRVFVQUxJVFk6Ci0g
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXF1YWxpdHk7Ci0gICAg
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENSX0FVVE86CisgICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDUl9PUFRJTUlaRVNQ
RUVEOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1JfT1BUSU1JWkVRVUFMSVRZOgorICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0eTsKKyAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
RUNvbG9yUmVuZGVyaW5nKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ6Ci0gICAgICAgICAgICByZXR1cm4g
Q1JfT1BUSU1JWkVTUEVFRDsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0eToK
LSAgICAgICAgICAgIHJldHVybiBDUl9PUFRJTUlaRVFVQUxJVFk7Ci0gICAgICAgIGNhc2UgQ1NT
VmFsdWVBdXRvOgotICAgICAgICAgICAgcmV0dXJuIENSX0FVVE87CisgICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlT3B0aW1pemVzcGVlZDoKKyAgICAgICAg
cmV0dXJuIENSX09QVElNSVpFU1BFRUQ7CisgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplcXVhbGl0
eToKKyAgICAgICAgcmV0dXJuIENSX09QVElNSVpFUVVBTElUWTsKKyAgICBjYXNlIENTU1ZhbHVl
QXV0bzoKKyAgICAgICAgcmV0dXJuIENSX0FVVE87CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC00MzkwLDc0ICs0NTc1
LDc2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQ29s
b3JSZW5kZXJpbmcoKSBjb25zdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEVEb21pbmFudEJhc2VsaW5lIGUpCiAgICAgOiBDU1NWYWx1ZShQ
cmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOwor
ICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7
Ci0gICAgICAgIGNhc2UgREJfQVVUTzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZUF1dG87Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9VU0VfU0NSSVBU
OgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXNlU2NyaXB0OwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgREJfTk9fQ0hBTkdFOgotICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9DaGFuZ2U7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBEQl9SRVNFVF9TSVpFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlUmVzZXRTaXplOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgREJfQ0VOVFJB
TDoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNlbnRyYWw7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9NSURETEU6Ci0gICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVNaWRkbGU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBEQl9URVhUX0JFRk9SRV9FREdFOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlVGV4dEJlZm9yZUVkZ2U7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9U
RVhUX0FGVEVSX0VER0U6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUZXh0
QWZ0ZXJFZGdlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgREJfSURFT0dSQVBI
SUM6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVJZGVvZ3JhcGhpYzsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERCX0FMUEhBQkVUSUM6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBbHBoYWJldGljOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgREJfSEFOR0lORzoKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUhhbmdpbmc7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEQl9NQVRI
RU1BVElDQUw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNYXRoZW1hdGlj
YWw7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIERCX0FVVE86CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEQl9V
U0VfU0NSSVBUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVzZVNjcmlwdDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEQl9OT19DSEFOR0U6CisgICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlTm9DaGFuZ2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgREJf
UkVTRVRfU0laRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZXNldFNpemU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgREJfQ0VOVFJBTDoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVDZW50cmFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERCX01J
RERMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRkbGU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgREJfVEVYVF9CRUZPUkVfRURHRToKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVUZXh0QmVmb3JlRWRnZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBEQl9URVhUX0FGVEVSX0VER0U6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
VGV4dEFmdGVyRWRnZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEQl9JREVPR1JBUEhJQzoK
KyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJZGVvZ3JhcGhpYzsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBEQl9BTFBIQUJFVElDOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUFscGhhYmV0aWM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgREJfSEFOR0lO
RzoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIYW5naW5nOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERCX01BVEhFTUFUSUNBTDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNYXRoZW1hdGljYWw7CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVEb21pbmFudEJhc2Vs
aW5lKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUF1dG86Ci0gICAgICAgICAgICByZXR1cm4gREJfQVVUTzsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZVVzZVNjcmlwdDoKLSAgICAgICAgICAgIHJldHVybiBEQl9VU0VfU0NSSVBUOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlTm9DaGFuZ2U6Ci0gICAgICAgICAgICByZXR1cm4gREJfTk9f
Q0hBTkdFOwotICAgICAgICBjYXNlIENTU1ZhbHVlUmVzZXRTaXplOgotICAgICAgICAgICAgcmV0
dXJuIERCX1JFU0VUX1NJWkU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVJZGVvZ3JhcGhpYzoKLSAg
ICAgICAgICAgIHJldHVybiBEQl9JREVPR1JBUEhJQzsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFs
cGhhYmV0aWM6Ci0gICAgICAgICAgICByZXR1cm4gREJfQUxQSEFCRVRJQzsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUhhbmdpbmc6Ci0gICAgICAgICAgICByZXR1cm4gREJfSEFOR0lORzsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZU1hdGhlbWF0aWNhbDoKLSAgICAgICAgICAgIHJldHVybiBEQl9NQVRI
RU1BVElDQUw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVDZW50cmFsOgotICAgICAgICAgICAgcmV0
dXJuIERCX0NFTlRSQUw7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVNaWRkbGU6Ci0gICAgICAgICAg
ICByZXR1cm4gREJfTUlERExFOwotICAgICAgICBjYXNlIENTU1ZhbHVlVGV4dEFmdGVyRWRnZToK
LSAgICAgICAgICAgIHJldHVybiBEQl9URVhUX0FGVEVSX0VER0U7Ci0gICAgICAgIGNhc2UgQ1NT
VmFsdWVUZXh0QmVmb3JlRWRnZToKLSAgICAgICAgICAgIHJldHVybiBEQl9URVhUX0JFRk9SRV9F
REdFOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZUF1
dG86CisgICAgICAgIHJldHVybiBEQl9BVVRPOworICAgIGNhc2UgQ1NTVmFsdWVVc2VTY3JpcHQ6
CisgICAgICAgIHJldHVybiBEQl9VU0VfU0NSSVBUOworICAgIGNhc2UgQ1NTVmFsdWVOb0NoYW5n
ZToKKyAgICAgICAgcmV0dXJuIERCX05PX0NIQU5HRTsKKyAgICBjYXNlIENTU1ZhbHVlUmVzZXRT
aXplOgorICAgICAgICByZXR1cm4gREJfUkVTRVRfU0laRTsKKyAgICBjYXNlIENTU1ZhbHVlSWRl
b2dyYXBoaWM6CisgICAgICAgIHJldHVybiBEQl9JREVPR1JBUEhJQzsKKyAgICBjYXNlIENTU1Zh
bHVlQWxwaGFiZXRpYzoKKyAgICAgICAgcmV0dXJuIERCX0FMUEhBQkVUSUM7CisgICAgY2FzZSBD
U1NWYWx1ZUhhbmdpbmc6CisgICAgICAgIHJldHVybiBEQl9IQU5HSU5HOworICAgIGNhc2UgQ1NT
VmFsdWVNYXRoZW1hdGljYWw6CisgICAgICAgIHJldHVybiBEQl9NQVRIRU1BVElDQUw7CisgICAg
Y2FzZSBDU1NWYWx1ZUNlbnRyYWw6CisgICAgICAgIHJldHVybiBEQl9DRU5UUkFMOworICAgIGNh
c2UgQ1NTVmFsdWVNaWRkbGU6CisgICAgICAgIHJldHVybiBEQl9NSURETEU7CisgICAgY2FzZSBD
U1NWYWx1ZVRleHRBZnRlckVkZ2U6CisgICAgICAgIHJldHVybiBEQl9URVhUX0FGVEVSX0VER0U7
CisgICAgY2FzZSBDU1NWYWx1ZVRleHRCZWZvcmVFZGdlOgorICAgICAgICByZXR1cm4gREJfVEVY
VF9CRUZPUkVfRURHRTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQ0NjcsMjYgKzQ2NTQsMjYgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVEb21pbmFudEJhc2VsaW5lKCkg
Y29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZShFU2hhcGVSZW5kZXJpbmcgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQog
ewotICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgbV9wcmltaXRpdmVV
bml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFNSX0FV
VE86Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTUl9P
UFRJTUlaRVNQRUVEOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVPcHRpbWl6ZXNw
ZWVkOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplc3BlZWQ7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgU1JfQ1JJU1BFREdFUzoKLSAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlQ3Jpc3BlZGdlczsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVDcmlzcGVkZ2VzOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNSX0dFT01FVFJJQ1BS
RUNJU0lPTjoKLSAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlR2VvbWV0cmljcHJlY2lz
aW9uOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUdlb21ldHJpY3ByZWNpc2lv
bjsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVNoYXBlUmVuZGVyaW5nKCkgY29uc3QKIHsKLSAgICBzd2l0
Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAg
IGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gU1JfQVVUTzsKICAgICBjYXNlIENT
U1ZhbHVlT3B0aW1pemVzcGVlZDoKQEAgLTQ0OTUsNiArNDY4Miw4IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFU2hhcGVSZW5kZXJpbmcoKSBjb25zdAog
ICAgICAgICByZXR1cm4gU1JfQ1JJU1BFREdFUzsKICAgICBjYXNlIENTU1ZhbHVlR2VvbWV0cmlj
cHJlY2lzaW9uOgogICAgICAgICByZXR1cm4gU1JfR0VPTUVUUklDUFJFQ0lTSU9OOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpAQCAtNDUwNCwyOSArNDY5MywzMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgRVNoYXBlUmVuZGVyaW5nKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVGV4dEFuY2hvciBlKQogICAg
IDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmltaXRpdmVVbml0VHlwZSA9
IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOwogICAg
IHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIFRBX1NUQVJUOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlU3RhcnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBUQV9NSURETEU6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNaWRkbGU7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUQV9FTkQ6Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFbmQ7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNl
IFRBX1NUQVJUOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0YXJ0OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFRBX01JRERMRToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNaWRkbGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVEFfRU5EOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVuZDsKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVRl
eHRBbmNob3IoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewotICAgICAg
ICBjYXNlIENTU1ZhbHVlU3RhcnQ6Ci0gICAgICAgICAgICByZXR1cm4gVEFfU1RBUlQ7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVNaWRkbGU6Ci0gICAgICAgICAgICByZXR1cm4gVEFfTUlERExFOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlRW5kOgotICAgICAgICAgICAgcmV0dXJuIFRBX0VORDsKKyAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVTdGFydDoKKyAg
ICAgICAgcmV0dXJuIFRBX1NUQVJUOworICAgIGNhc2UgQ1NTVmFsdWVNaWRkbGU6CisgICAgICAg
IHJldHVybiBUQV9NSURETEU7CisgICAgY2FzZSBDU1NWYWx1ZUVuZDoKKyAgICAgICAgcmV0dXJu
IFRBX0VORDsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQ1MzYsMzIgKzQ3MjcsMzIgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVUZXh0QW5jaG9yKCkgY29uc3QKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShTVkdXcml0
aW5nTW9kZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7Ci0gICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NT
X1ZBTFVFX0lEOwogICAgIHN3aXRjaCAoZSkgewotICAgICAgICBjYXNlIFdNX0xSVEI6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMclRiOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgV01fTFI6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVMcjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdNX1JMVEI6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSbFRiOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgV01fUkw6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVS
bDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdNX1RCUkw6Ci0gICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUYlJsOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgV01fVEI6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVUYjsK
LSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV01fTFJUQjoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVMclRiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdNX0xSOgor
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxyOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdNX1JMVEI6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmxUYjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXTV9STDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVSbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXTV9UQlJMOgorICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRiUmw7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV01fVEI6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGI7CisgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFNWR1dyaXRpbmdNb2RlKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
aWRlbnQpIHsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFs
dWVMclRiOgogICAgICAgICByZXR1cm4gV01fTFJUQjsKICAgICBjYXNlIENTU1ZhbHVlTHI6CkBA
IC00NTc0LDYgKzQ3NjUsOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgU1ZHV3JpdGluZ01vZGUoKSBjb25zdAogICAgICAgICByZXR1cm4gV01fVEJSTDsK
ICAgICBjYXNlIENTU1ZhbHVlVGI6CiAgICAgICAgIHJldHVybiBXTV9UQjsKKyAgICBkZWZhdWx0
OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTQ1ODMsMjQgKzQ3NzYsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFNWR1dyaXRpbmdNb2RlKCkgY29uc3QKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVmVjdG9yRWZmZWN0IGUpCiAgICAgOiBD
U1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NT
X0lERU5UOworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dp
dGNoIChlKSB7CiAgICAgY2FzZSBWRV9OT05FOgotICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVOb25lOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgVkVfTk9OX1NDQUxJTkdfU1RST0tFOgotICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVOb25TY2FsaW5nU3Ryb2tlOworICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vblNjYWxpbmdTdHJva2U7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVWZWN0
b3JFZmZlY3QoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAg
IHJldHVybiBWRV9OT05FOwogICAgIGNhc2UgQ1NTVmFsdWVOb25TY2FsaW5nU3Ryb2tlOgogICAg
ICAgICByZXR1cm4gVkVfTk9OX1NDQUxJTkdfU1RST0tFOworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDYxMCwyNCAr
NDgwNSwyNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
RVZlY3RvckVmZmVjdCgpIGNvbnN0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRU1hc2tUeXBlIGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRp
dmVDbGFzcykKIHsKLSAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lERU5UOworICAgIG1f
cHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAgc3dpdGNoIChlKSB7CiAgICAg
Y2FzZSBNVF9MVU1JTkFOQ0U6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUx1bWlu
YW5jZTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMdW1pbmFuY2U7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTVRfQUxQSEE6Ci0gICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUFscGhhOworICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFscGhhOwog
ICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBFTWFza1R5cGUoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1
ZS5pZGVudCkgeworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZUx1bWluYW5jZToKICAgICAgICAgcmV0dXJuIE1UX0xVTUlOQU5DRTsKICAgICBjYXNlIENT
U1ZhbHVlQWxwaGE6CiAgICAgICAgIHJldHVybiBNVF9BTFBIQTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NUb1N0eWxlTWFwLmNwcAppbmRleCA3MjFmZDhlOTAxYjVlYmJmMWNmNmNkNzQ5ZmE4
ZjUzZjFjZmJhNDliLi4xN2E3OWZkZDU0NjBkYWQ3NDQ4YzRhMjc0YTEyOGVhYWJkNTIxZTQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQg
Q1NTVG9TdHlsZU1hcDo6bWFwRmlsbEF0dGFjaG1lbnQoQ1NTUHJvcGVydHlJRCwgRmlsbExheWVy
KiBsYXllciwgQ1NTVmFsdWUqCiAgICAgICAgIHJldHVybjsKIAogICAgIENTU1ByaW1pdGl2ZVZh
bHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFs
dWUpOwotICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICBzd2l0
Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlRml4
ZWQ6CiAgICAgICAgIGxheWVyLT5zZXRBdHRhY2htZW50KEZpeGVkQmFja2dyb3VuZEF0dGFjaG1l
bnQpOwogICAgICAgICBicmVhazsKQEAgLTE5MCwxNiArMTkwLDE2IEBAIHZvaWQgQ1NTVG9TdHls
ZU1hcDo6bWFwRmlsbFNpemUoQ1NTUHJvcGVydHlJRCwgRmlsbExheWVyKiBsYXllciwgQ1NTVmFs
dWUqIHZhbHVlCiAgICAgfQogCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVl
ID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgaWYgKHByaW1p
dGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQ29udGFpbikKKyAgICBpZiAocHJpbWl0
aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUNvbnRhaW4pCiAgICAgICAgIGxheWVy
LT5zZXRTaXplVHlwZShDb250YWluKTsKLSAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0
SWRlbnQoKSA9PSBDU1NWYWx1ZUNvdmVyKQorICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVDb3ZlcikKICAgICAgICAgbGF5ZXItPnNldFNpemVUeXBl
KENvdmVyKTsKICAgICBlbHNlCiAgICAgICAgIGxheWVyLT5zZXRTaXplVHlwZShTaXplTGVuZ3Ro
KTsKIAogICAgIExlbmd0aFNpemUgYiA9IEZpbGxMYXllcjo6aW5pdGlhbEZpbGxTaXplTGVuZ3Ro
KGxheWVyLT50eXBlKCkpOwogCi0gICAgaWYgKHZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpIHx8IHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQ29udGFpbiB8fCBwcmltaXRpdmVW
YWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUNvdmVyKSB7CisgICAgaWYgKHZhbHVlLT5pc0lu
aXRpYWxWYWx1ZSgpIHx8IHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVD
b250YWluIHx8IHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVDb3Zlcikg
ewogICAgICAgICBsYXllci0+c2V0U2l6ZUxlbmd0aChiKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTMyNCw3ICszMjQsNyBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvbkRp
cmVjdGlvbihBbmltYXRpb24qIGxheWVyLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUt
PmdldElkZW50KCkpIHsKKyAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkp
IHsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICBsYXllci0+c2V0RGlyZWN0aW9u
KEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CkBA
IC0zMzcsNiArMzM3LDggQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25EaXJlY3Rp
b24oQW5pbWF0aW9uKiBsYXllciwgQ1NTVmFsdWUqIHZhbHVlKQogICAgIGNhc2UgQ1NTVmFsdWVB
bHRlcm5hdGVSZXZlcnNlOgogICAgICAgICBsYXllci0+c2V0RGlyZWN0aW9uKEFuaW1hdGlvbjo6
QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZSk7CiAgICAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApAQCAtMzY1LDcgKzM2Nyw3IEBA
IHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uRmlsbE1vZGUoQW5pbWF0aW9uKiBsYXll
ciwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAgICBDU1NQcmltaXRpdmVW
YWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZh
bHVlKTsKLSAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgc3dp
dGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5v
bmU6CiAgICAgICAgIGxheWVyLT5zZXRGaWxsTW9kZShBbmltYXRpb25GaWxsTW9kZU5vbmUpOwog
ICAgICAgICBicmVhazsKQEAgLTM3OCw2ICszODAsOCBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1h
cEFuaW1hdGlvbkZpbGxNb2RlKEFuaW1hdGlvbiogbGF5ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAg
ICBjYXNlIENTU1ZhbHVlQm90aDoKICAgICAgICAgbGF5ZXItPnNldEZpbGxNb2RlKEFuaW1hdGlv
bkZpbGxNb2RlQm90aCk7CiAgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KIApAQCAtMzkyLDcgKzM5Niw3IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6
bWFwQW5pbWF0aW9uSXRlcmF0aW9uQ291bnQoQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVl
KiB2CiAgICAgICAgIHJldHVybjsKIAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVW
YWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgIGlmIChw
cmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUluZmluaXRlKQorICAgIGlmIChw
cmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlSW5maW5pdGUpCiAgICAgICAg
IGFuaW1hdGlvbi0+c2V0SXRlcmF0aW9uQ291bnQoQW5pbWF0aW9uOjpJdGVyYXRpb25Db3VudElu
ZmluaXRlKTsKICAgICBlbHNlCiAgICAgICAgIGFuaW1hdGlvbi0+c2V0SXRlcmF0aW9uQ291bnQo
cHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSk7CkBAIC00MDksNyArNDEzLDcgQEAgdm9p
ZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25OYW1lKEFuaW1hdGlvbiogbGF5ZXIsIENTU1Zh
bHVlKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHBy
aW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0g
ICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkKKyAgICBp
ZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAg
IGxheWVyLT5zZXRJc05vbmVBbmltYXRpb24odHJ1ZSk7CiAgICAgZWxzZQogICAgICAgICBsYXll
ci0+c2V0TmFtZShwcmltaXRpdmVWYWx1ZS0+Z2V0U3RyaW5nVmFsdWUoKSk7CkBAIC00MjYsNyAr
NDMwLDcgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25QbGF5U3RhdGUoQW5pbWF0
aW9uKiBsYXllciwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAgICBDU1NQ
cmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZSo+KHZhbHVlKTsKLSAgICBFQW5pbVBsYXlTdGF0ZSBwbGF5U3RhdGUgPSAocHJpbWl0aXZl
VmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVQYXVzZWQpID8gQW5pbVBsYXlTdGF0ZVBhdXNl
ZCA6IEFuaW1QbGF5U3RhdGVQbGF5aW5nOworICAgIEVBbmltUGxheVN0YXRlIHBsYXlTdGF0ZSA9
IChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlUGF1c2VkKSA/IEFuaW1Q
bGF5U3RhdGVQYXVzZWQgOiBBbmltUGxheVN0YXRlUGxheWluZzsKICAgICBsYXllci0+c2V0UGxh
eVN0YXRlKHBsYXlTdGF0ZSk7CiB9CiAKQEAgLTQ0MiwxNSArNDQ2LDE1IEBAIHZvaWQgQ1NTVG9T
dHlsZU1hcDo6bWFwQW5pbWF0aW9uUHJvcGVydHkoQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1Zh
bHVlKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHBy
aW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0g
ICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQWxsKSB7CisgICAg
aWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVBbGwpIHsKICAgICAg
ICAgYW5pbWF0aW9uLT5zZXRBbmltYXRpb25Nb2RlKEFuaW1hdGlvbjo6QW5pbWF0ZUFsbCk7CiAg
ICAgICAgIGFuaW1hdGlvbi0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlJbnZhbGlkKTsKLSAgICB9
IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkgewor
ICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5v
bmUpIHsKICAgICAgICAgYW5pbWF0aW9uLT5zZXRBbmltYXRpb25Nb2RlKEFuaW1hdGlvbjo6QW5p
bWF0ZU5vbmUpOwogICAgICAgICBhbmltYXRpb24tPnNldFByb3BlcnR5KENTU1Byb3BlcnR5SW52
YWxpZCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYW5pbWF0aW9uLT5zZXRBbmltYXRpb25Nb2Rl
KEFuaW1hdGlvbjo6QW5pbWF0ZVNpbmdsZVByb3BlcnR5KTsKLSAgICAgICAgYW5pbWF0aW9uLT5z
ZXRQcm9wZXJ0eShzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcmltaXRpdmVWYWx1ZS0+Z2V0
SWRlbnQoKSkpOworICAgICAgICBhbmltYXRpb24tPnNldFByb3BlcnR5KHByaW1pdGl2ZVZhbHVl
LT5nZXRQcm9wZXJ0eUlEKCkpOwogICAgIH0KIH0KIApAQCAtNDYzLDcgKzQ2Nyw3IEBAIHZvaWQg
Q1NTVG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uVGltaW5nRnVuY3Rpb24oQW5pbWF0aW9uKiBhbmlt
YXRpb24sIENTU1ZhbHVlKiB2CiAKICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkg
ewogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAgICAgc3dpdGNoIChwcmltaXRpdmVW
YWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRW
YWx1ZUlEKCkpIHsKICAgICAgICAgY2FzZSBDU1NWYWx1ZUxpbmVhcjoKICAgICAgICAgICAgIGFu
aW1hdGlvbi0+c2V0VGltaW5nRnVuY3Rpb24oTGluZWFyVGltaW5nRnVuY3Rpb246OmNyZWF0ZSgp
KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDg1LDYgKzQ4OSw4IEBAIHZvaWQgQ1NTVG9TdHls
ZU1hcDo6bWFwQW5pbWF0aW9uVGltaW5nRnVuY3Rpb24oQW5pbWF0aW9uKiBhbmltYXRpb24sIENT
U1ZhbHVlKiB2CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVTdGVwRW5kOgogICAgICAgICAgICAgYW5p
bWF0aW9uLT5zZXRUaW1pbmdGdW5jdGlvbihTdGVwc1RpbWluZ0Z1bmN0aW9uOjpjcmVhdGUoMSwg
ZmFsc2UpKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTYxMywyOCAr
NjE5LDI4IEBAIExlbmd0aEJveCBDU1NUb1N0eWxlTWFwOjptYXBOaW5lUGllY2VJbWFnZVF1YWQo
Q1NTVmFsdWUqIHZhbHVlKQogICAgICAgICBib3gubV90b3AgPSBMZW5ndGgoc2xpY2VzLT50b3Ao
KS0+Z2V0SW50VmFsdWUoKSwgUmVsYXRpdmUpOwogICAgIGVsc2UgaWYgKHNsaWNlcy0+dG9wKCkt
PmlzUGVyY2VudGFnZSgpKQogICAgICAgICBib3gubV90b3AgPSBMZW5ndGgoc2xpY2VzLT50b3Ao
KS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKSwgUGVy
Y2VudCk7Ci0gICAgZWxzZSBpZiAoc2xpY2VzLT50b3AoKS0+Z2V0SWRlbnQoKSAhPSBDU1NWYWx1
ZUF1dG8pCisgICAgZWxzZSBpZiAoc2xpY2VzLT50b3AoKS0+Z2V0VmFsdWVJRCgpICE9IENTU1Zh
bHVlQXV0bykKICAgICAgICAgYm94Lm1fdG9wID0gc2xpY2VzLT50b3AoKS0+Y29tcHV0ZUxlbmd0
aDxMZW5ndGg+KHN0eWxlKCksIHJvb3RFbGVtZW50U3R5bGUoKSwgem9vbSk7CiAKICAgICBpZiAo
c2xpY2VzLT5yaWdodCgpLT5pc051bWJlcigpKQogICAgICAgICBib3gubV9yaWdodCA9IExlbmd0
aChzbGljZXMtPnJpZ2h0KCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKICAgICBlbHNlIGlm
IChzbGljZXMtPnJpZ2h0KCktPmlzUGVyY2VudGFnZSgpKQogICAgICAgICBib3gubV9yaWdodCA9
IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOwotICAgIGVsc2UgaWYgKHNsaWNlcy0+cmlnaHQo
KS0+Z2V0SWRlbnQoKSAhPSBDU1NWYWx1ZUF1dG8pCisgICAgZWxzZSBpZiAoc2xpY2VzLT5yaWdo
dCgpLT5nZXRWYWx1ZUlEKCkgIT0gQ1NTVmFsdWVBdXRvKQogICAgICAgICBib3gubV9yaWdodCA9
IHNsaWNlcy0+cmlnaHQoKS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KHN0eWxlKCksIHJvb3RFbGVt
ZW50U3R5bGUoKSwgem9vbSk7CiAKICAgICBpZiAoc2xpY2VzLT5ib3R0b20oKS0+aXNOdW1iZXIo
KSkKICAgICAgICAgYm94Lm1fYm90dG9tID0gTGVuZ3RoKHNsaWNlcy0+Ym90dG9tKCktPmdldElu
dFZhbHVlKCksIFJlbGF0aXZlKTsKICAgICBlbHNlIGlmIChzbGljZXMtPmJvdHRvbSgpLT5pc1Bl
cmNlbnRhZ2UoKSkKICAgICAgICAgYm94Lm1fYm90dG9tID0gTGVuZ3RoKHNsaWNlcy0+Ym90dG9t
KCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBl
cmNlbnQpOwotICAgIGVsc2UgaWYgKHNsaWNlcy0+Ym90dG9tKCktPmdldElkZW50KCkgIT0gQ1NT
VmFsdWVBdXRvKQorICAgIGVsc2UgaWYgKHNsaWNlcy0+Ym90dG9tKCktPmdldFZhbHVlSUQoKSAh
PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIGJveC5tX2JvdHRvbSA9IHNsaWNlcy0+Ym90dG9tKCkt
PmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihzdHlsZSgpLCByb290RWxlbWVudFN0eWxlKCksIHpvb20p
OwogCiAgICAgaWYgKHNsaWNlcy0+bGVmdCgpLT5pc051bWJlcigpKQogICAgICAgICBib3gubV9s
ZWZ0ID0gTGVuZ3RoKHNsaWNlcy0+bGVmdCgpLT5nZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7CiAg
ICAgZWxzZSBpZiAoc2xpY2VzLT5sZWZ0KCktPmlzUGVyY2VudGFnZSgpKQogICAgICAgICBib3gu
bV9sZWZ0ID0gTGVuZ3RoKHNsaWNlcy0+bGVmdCgpLT5nZXREb3VibGVWYWx1ZShDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpLCBQZXJjZW50KTsKLSAgICBlbHNlIGlmIChzbGljZXMt
PmxlZnQoKS0+Z2V0SWRlbnQoKSAhPSBDU1NWYWx1ZUF1dG8pCisgICAgZWxzZSBpZiAoc2xpY2Vz
LT5sZWZ0KCktPmdldFZhbHVlSUQoKSAhPSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIGJveC5tX2xl
ZnQgPSBzbGljZXMtPmxlZnQoKS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KHN0eWxlKCksIHJvb3RF
bGVtZW50U3R5bGUoKSwgem9vbSk7CiAKICAgICByZXR1cm4gYm94OwpAQCAtNjUwLDggKzY1Niw4
IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwTmluZVBpZWNlSW1hZ2VSZXBlYXQoQ1NTVmFsdWUq
IHZhbHVlLCBOaW5lUGllY2VJbWFnZSYgaW1hCiAgICAgaWYgKCFwYWlyIHx8ICFwYWlyLT5maXJz
dCgpIHx8ICFwYWlyLT5zZWNvbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW50IGZpcnN0
SWRlbnRpZmllciA9IHBhaXItPmZpcnN0KCktPmdldElkZW50KCk7Ci0gICAgaW50IHNlY29uZElk
ZW50aWZpZXIgPSBwYWlyLT5zZWNvbmQoKS0+Z2V0SWRlbnQoKTsKKyAgICBDU1NWYWx1ZUlEIGZp
cnN0SWRlbnRpZmllciA9IHBhaXItPmZpcnN0KCktPmdldFZhbHVlSUQoKTsKKyAgICBDU1NWYWx1
ZUlEIHNlY29uZElkZW50aWZpZXIgPSBwYWlyLT5zZWNvbmQoKS0+Z2V0VmFsdWVJRCgpOwogCiAg
ICAgRU5pbmVQaWVjZUltYWdlUnVsZSBob3Jpem9udGFsUnVsZTsKICAgICBzd2l0Y2ggKGZpcnN0
SWRlbnRpZmllcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NvdW50ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmgKaW5kZXggZmMyMjc5ZjlhY2E0NzI0N2I3MDRh
YmJkYzZlM2I5Yjg1NjEyYjhjYy4uMjA1YmY4YmJlNWFkZGU1MzUzYmJjNTFjNGVkZjMyNzFkN2Fi
ZDY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NvdW50ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ291bnRlci5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBT
dHJpbmcgbGlzdFN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9saXN0U3R5bGUgPyBtX2xpc3RTdHls
ZS0+Z2V0U3RyaW5nVmFsdWUoKSA6IFN0cmluZygpOyB9CiAgICAgU3RyaW5nIHNlcGFyYXRvcigp
IGNvbnN0IHsgcmV0dXJuIG1fc2VwYXJhdG9yID8gbV9zZXBhcmF0b3ItPmdldFN0cmluZ1ZhbHVl
KCkgOiBTdHJpbmcoKTsgfQogCi0gICAgaW50IGxpc3RTdHlsZUlkZW50KCkgY29uc3QgeyByZXR1
cm4gbV9saXN0U3R5bGUgPyBtX2xpc3RTdHlsZS0+Z2V0SWRlbnQoKSA6IDA7IH0KKyAgICBDU1NW
YWx1ZUlEIGxpc3RTdHlsZUlkZW50KCkgY29uc3QgeyByZXR1cm4gbV9saXN0U3R5bGUgPyBtX2xp
c3RTdHlsZS0+Z2V0VmFsdWVJRCgpIDogQ1NTVmFsdWVJbnZhbGlkOyB9CiAKICAgICB2b2lkIHNl
dElkZW50aWZpZXIoUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gaWRlbnRpZmllcikgeyBt
X2lkZW50aWZpZXIgPSBpZGVudGlmaWVyOyB9CiAgICAgdm9pZCBzZXRMaXN0U3R5bGUoUGFzc1Jl
ZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbGlzdFN0eWxlKSB7IG1fbGlzdFN0eWxlID0gbGlzdFN0
eWxlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVp
bGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAK
aW5kZXggYzM2ZmYyNDhmZTVkMmU1N2E0MWFlZmMzMThiMzYwNjMyYjMyYWZiMC4uM2JiOTBjYzU5
Y2Q4NTliNTcwOGZmMDFlMDczMDg5OTliYzc5MmE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcApAQCAtMTY2LDcgKzE2Niw3IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0
aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAg
ICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IGlkTWFwc1RvTWludXNPbmUpCisg
ICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IGlkTWFwc1RvTWludXNP
bmUpCiAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCAtMSk7CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCks
IHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZTxOdW1iZXJUeXBlPihDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX05VTUJFUikpOwpAQCAtMjE0LDcgKzIxNCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpID09IGF1dG9JZGVudGl0eSkKKyAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gYXV0b0lkZW50aXR5KQogICAgICAgICAgICAgc2V0QXV0
byhzdHlsZVJlc29sdmVyLT5zdHlsZSgpKTsKICAgICAgICAgZWxzZSBpZiAodmFsdWVUeXBlID09
IE51bWJlcikKICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksICpw
cmltaXRpdmVWYWx1ZSk7CkBAIC0yNjEsNyArMjYxLDcgQEAgcHVibGljOgogICAgICAgICAgICAg
TGVuZ3RoIGxlZnQgPSBjb252ZXJ0VG9MZW5ndGgoc3R5bGVSZXNvbHZlciwgcmVjdC0+bGVmdCgp
KTsKICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldENsaXAodG9wLCByaWdo
dCwgYm90dG9tLCBsZWZ0KTsKICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNl
dEhhc0NsaXAodHJ1ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkgPT0gQ1NTVmFsdWVBdXRvKSB7CisgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFs
dWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUF1dG8pIHsKICAgICAgICAgICAgIHN0eWxlUmVz
b2x2ZXItPnN0eWxlKCktPnNldENsaXAoTGVuZ3RoKCksIExlbmd0aCgpLCBMZW5ndGgoKSwgTGVu
Z3RoKCkpOwogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0SGFzQ2xpcChm
YWxzZSk7CiAgICAgICAgIH0KQEAgLTI5OSw3ICsyOTksNyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0g
c3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgICAgIGlmIChpbmhl
cml0Q29sb3JGcm9tUGFyZW50ICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1Zh
bHVlQ3VycmVudGNvbG9yKQorICAgICAgICBpZiAoaW5oZXJpdENvbG9yRnJvbVBhcmVudCAmJiBw
cmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQ3VycmVudGNvbG9yKQogICAg
ICAgICAgICAgYXBwbHlJbmhlcml0VmFsdWUocHJvcGVydHlJRCwgc3R5bGVSZXNvbHZlcik7CiAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgaWYgKHN0eWxlUmVzb2x2ZXItPmFwcGx5UHJvcGVy
dHlUb1JlZ3VsYXJTdHlsZSgpKQpAQCAtMzYwLDMwICszNjAsMzAgQEAgcHVibGljOgogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1
ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgICAgICBpZiAo
bm9uZUVuYWJsZWQgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25l
KSB7CisgICAgICAgIGlmIChub25lRW5hYmxlZCAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJ
RCgpID09IENTU1ZhbHVlTm9uZSkgewogICAgICAgICAgICAgaWYgKG5vbmVVbmRlZmluZWQpCiAg
ICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKFVu
ZGVmaW5lZCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0
eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aCgpKTsKICAgICAgICAgfQogICAgICAgICBpZiAo
bGVnYWN5SW50cmluc2ljRW5hYmxlZCkgewotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlSW50cmluc2ljKQorICAgICAgICAgICAgaWYgKHByaW1p
dGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVJbnRyaW5zaWMpCiAgICAgICAgICAg
ICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKEludHJpbnNpYykp
OwotICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NT
VmFsdWVNaW5JbnRyaW5zaWMpCisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+
Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTWluSW50cmluc2ljKQogICAgICAgICAgICAgICAgIHNl
dFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChNaW5JbnRyaW5zaWMpKTsKICAg
ICAgICAgfQogICAgICAgICBpZiAoaW50cmluc2ljRW5hYmxlZCkgewotICAgICAgICAgICAgaWYg
KHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlV2Via2l0TWluQ29udGVudCkK
KyAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVl
V2Via2l0TWluQ29udGVudCkKICAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLCBMZW5ndGgoTWluQ29udGVudCkpOwotICAgICAgICAgICAgZWxzZSBpZiAocHJp
bWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVXZWJraXRNYXhDb250ZW50KQorICAg
ICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1
ZVdlYmtpdE1heENvbnRlbnQpCiAgICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZl
ci0+c3R5bGUoKSwgTGVuZ3RoKE1heENvbnRlbnQpKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlV2Via2l0RmlsbEF2YWlsYWJsZSkK
KyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NT
VmFsdWVXZWJraXRGaWxsQXZhaWxhYmxlKQogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxl
UmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChGaWxsQXZhaWxhYmxlKSk7Ci0gICAgICAgICAgICBl
bHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZVdlYmtpdEZpdENv
bnRlbnQpCisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgp
ID09IENTU1ZhbHVlV2Via2l0Rml0Q29udGVudCkKICAgICAgICAgICAgICAgICBzZXRWYWx1ZShz
dHlsZVJlc29sdmVyLT5zdHlsZSgpLCBMZW5ndGgoRml0Q29udGVudCkpOwogICAgICAgICB9CiAK
LSAgICAgICAgaWYgKGF1dG9FbmFibGVkICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09
IENTU1ZhbHVlQXV0bykKKyAgICAgICAgaWYgKGF1dG9FbmFibGVkICYmIHByaW1pdGl2ZVZhbHVl
LT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVBdXRvKQogICAgICAgICAgICAgc2V0VmFsdWUoc3R5
bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKCkpOwogICAgICAgICBlbHNlIGlmIChwcmltaXRp
dmVWYWx1ZS0+aXNMZW5ndGgoKSkgewogICAgICAgICAgICAgTGVuZ3RoIGxlbmd0aCA9IHByaW1p
dGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwg
c3R5bGVSZXNvbHZlci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBzdHlsZVJlc29sdmVyLT5zdHlsZSgp
LT5lZmZlY3RpdmVab29tKCkpOwpAQCAtNDE0LDggKzQxNCw4IEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAgICAgaWYgKChpZGVudEJlaGF2aW9yID09IE1h
cE5vbmVUb051bGwgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25l
KQotICAgICAgICAgICAgfHwgKGlkZW50QmVoYXZpb3IgPT0gTWFwQXV0b1RvTnVsbCAmJiBwcmlt
aXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pKQorICAgICAgICBpZiAoKGlk
ZW50QmVoYXZpb3IgPT0gTWFwTm9uZVRvTnVsbCAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJ
RCgpID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgICAgIHx8IChpZGVudEJlaGF2aW9yID09IE1h
cEF1dG9Ub051bGwgJiYgcHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUF1
dG8pKQogICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgbnVsbEF0
b20pOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5z
dHlsZSgpLCBwcmltaXRpdmVWYWx1ZS0+Z2V0U3RyaW5nVmFsdWUoKSk7CkBAIC01OTEsNyArNTkx
LDcgQEAgcHVibGljOgogCiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1
ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwogCi0gICAgICAgIGlu
dCBpZGVudCA9IHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpOworICAgICAgICBDU1NWYWx1ZUlE
IGlkZW50ID0gcHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKTsKICAgICAgICAgVCBsZW5ndGg7
CiAgICAgICAgIGlmIChub3JtYWxFbmFibGVkICYmIGlkZW50ID09IENTU1ZhbHVlTm9ybWFsKSB7
CiAgICAgICAgICAgICBsZW5ndGggPSAwOwpAQCAtNzA3LDcgKzcwNyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIGlmIChjb250ZW50VmFsdWUtPmlzU3RyaW5nKCkpCiAgICAgICAgICAgICAgICAg
ZmFjZSA9IGNvbnRlbnRWYWx1ZS0+Z2V0U3RyaW5nVmFsdWUoKTsKICAgICAgICAgICAgIGVsc2Ug
aWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IHN0eWxlUmVzb2x2ZXItPmRvY3VtZW50KCktPnNldHRp
bmdzKCkpIHsKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbnRlbnRWYWx1ZS0+Z2V0SWRlbnQo
KSkgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoY29udGVudFZhbHVlLT5nZXRWYWx1ZUlEKCkp
IHsKICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0Qm9keToKICAgICAgICAgICAg
ICAgICAgICAgZmFjZSA9IHNldHRpbmdzLT5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CkBAIC03MzUsNiArNzM1LDggQEAgcHVibGljOgogICAgICAgICAg
ICAgICAgICAgICBmYWNlID0gcGljdG9ncmFwaEZhbWlseTsKICAgICAgICAgICAgICAgICAgICAg
Zm9udERlc2NyaXB0aW9uLnNldEdlbmVyaWNGYW1pbHkoRm9udERlc2NyaXB0aW9uOjpQaWN0b2dy
YXBoRmFtaWx5KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQogCkBAIC04MjMsNyArODI1LDcgQEAgcHVibGljOgogICAgICAgICAgICAg
cGFyZW50SXNBYnNvbHV0ZVNpemUgPSBzdHlsZVJlc29sdmVyLT5wYXJlbnRTdHlsZSgpLT5mb250
RGVzY3JpcHRpb24oKS5pc0Fic29sdXRlU2l6ZSgpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYg
KGludCBpZGVudCA9IHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgIGlmIChD
U1NWYWx1ZUlEIGlkZW50ID0gcHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkgewogICAgICAg
ICAgICAgLy8gS2V5d29yZHMgYXJlIGJlaW5nIHVzZWQuCiAgICAgICAgICAgICBzd2l0Y2ggKGlk
ZW50KSB7CiAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlWHhTbWFsbDoKQEAgLTg4Niw3ICs4ODgs
NyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIENTU1ByaW1pdGl2ZVZh
bHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFs
dWUpOwogICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0gc3R5bGVSZXNv
bHZlci0+Zm9udERlc2NyaXB0aW9uKCk7Ci0gICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUt
PmdldElkZW50KCkpIHsKKyAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJ
RCgpKSB7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVJbnZhbGlkOgogICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTk0Niw3ICs5NDgsNyBAQCBw
dWJsaWM6CiAgICAgICAgICAgICAgICAgQVNTRVJUKGl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSk7
CiAgICAgICAgICAgICAgICAgaWYgKGl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSkgewogICAgICAg
ICAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNf
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0pOwotICAgICAgICAgICAgICAgICAgICBzd2l0
Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHN3
aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkgewogICAgICAgICAgICAgICAgICAg
ICBjYXNlIENTU1ZhbHVlTm9Db21tb25MaWdhdHVyZXM6CiAgICAgICAgICAgICAgICAgICAgICAg
ICBjb21tb25MaWdhdHVyZXNTdGF0ZSA9IEZvbnREZXNjcmlwdGlvbjo6RGlzYWJsZWRMaWdhdHVy
ZXNTdGF0ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTc1LDcgKzk3Nyw3
IEBAIHB1YmxpYzoKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04odmFsdWUtPmlzUHJpbWl0aXZl
VmFsdWUoKSk7Ci0gICAgICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWUqPih2YWx1ZSktPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb3JtYWwpOworICAgICAgICAgICAg
QVNTRVJUKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRWYWx1ZUlE
KCkgPT0gQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICB9CiAjZW5kaWYKIApAQCAtMTEyMyw3ICsx
MTI1LDcgQEAgcHVibGljOgogICAgIH0KICAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1By
b3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkK
ICAgICB7Ci0gICAgICAgIGJvb2wgc2V0Q291bnRlckluY3JlbWVudFRvTm9uZSA9IGNvdW50ZXJC
ZWhhdmlvciA9PSBJbmNyZW1lbnQgJiYgdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1
ZU5vbmU7CisgICAgICAgIGJvb2wgc2V0Q291bnRlckluY3JlbWVudFRvTm9uZSA9IGNvdW50ZXJC
ZWhhdmlvciA9PSBJbmNyZW1lbnQgJiYgdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0VmFsdWVJRCgpID09IENTU1Zh
bHVlTm9uZTsKIAogICAgICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpICYmICFzZXRDb3Vu
dGVySW5jcmVtZW50VG9Ob25lKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTE5NiwxMyArMTE5
OCwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxl
KCktPmFkZEN1cnNvcihzdHlsZVJlc29sdmVyLT5zdHlsZUltYWdlKENTU1Byb3BlcnR5Q3Vyc29y
LCBpbWFnZSksIGltYWdlLT5ob3RTcG90KCkpOwogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo
aXRlbS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIENTU1ByaW1p
dGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Kj4oaXRlbSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNJZGVu
dCgpKQorICAgICAgICAgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmlzVmFsdWVJRCgp
KQogICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0Q3Vy
c29yKCpwcmltaXRpdmVWYWx1ZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQog
ICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKICAgICAgICAg
ICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1By
aW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5p
c0lkZW50KCkgJiYgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+Y3Vyc29yKCkgIT0gRUN1cnNvcigq
cHJpbWl0aXZlVmFsdWUpKQorICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1ZhbHVl
SUQoKSAmJiBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5jdXJzb3IoKSAhPSBFQ3Vyc29yKCpwcmlt
aXRpdmVWYWx1ZSkpCiAgICAgICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0
Q3Vyc29yKCpwcmltaXRpdmVWYWx1ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjE5LDcgKzEy
MjEsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZh
bHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CiAKLSAgICAgICAg
aWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpICE9IENTU1ZhbHVlV2Via2l0TWF0Y2hQYXJl
bnQpCisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpICE9IENTU1ZhbHVl
V2Via2l0TWF0Y2hQYXJlbnQpCiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5z
ZXRUZXh0QWxpZ24oKnByaW1pdGl2ZVZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoc3R5bGVSZXNv
bHZlci0+cGFyZW50U3R5bGUoKS0+dGV4dEFsaWduKCkgPT0gVEFTVEFSVCkKICAgICAgICAgICAg
IHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRBbGlnbihzdHlsZVJlc29sdmVyLT5wYXJl
bnRTdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBMRUZUIDogUklHSFQpOwpAQCAt
MTI2Miw4ICsxMjY0LDggQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4odmFsdWUpOwotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkpIHsKLSAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsK
KyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKKyAgICAgICAgICAg
IHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkgewogICAgICAgICAgICAgY2Fz
ZSBDU1NWYWx1ZVNtYWxsOgogICAgICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCkt
PnNldE1hcnF1ZWVJbmNyZW1lbnQoTGVuZ3RoKDEsIEZpeGVkKSk7IC8vIDFweC4KICAgICAgICAg
ICAgICAgICBicmVhazsKQEAgLTEyNzMsNiArMTI3NSw4IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVMYXJnZToKICAgICAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHls
ZSgpLT5zZXRNYXJxdWVlSW5jcmVtZW50KExlbmd0aCgzNiwgRml4ZWQpKTsgLy8gMzZweC4KICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBM
ZW5ndGggbWFycXVlZUxlbmd0aCA9IHN0eWxlUmVzb2x2ZXItPmNvbnZlcnRUb0ludExlbmd0aChw
cmltaXRpdmVWYWx1ZSwgc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+cm9v
dEVsZW1lbnRTdHlsZSgpKTsKQEAgLTEyOTUsNyArMTI5OSw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUg
PSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAgICAgICAgaWYgKHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlSW5maW5pdGUpCisgICAgICAgIGlm
IChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlSW5maW5pdGUpCiAgICAg
ICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRNYXJxdWVlTG9vcENvdW50KC0xKTsg
Ly8gLTEgbWVhbnMgcmVwZWF0IGZvcmV2ZXIuCiAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZh
bHVlLT5pc051bWJlcigpKQogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0
TWFycXVlZUxvb3BDb3VudChwcmltaXRpdmVWYWx1ZS0+Z2V0SW50VmFsdWUoKSk7CkBAIC0xMzE1
LDcgKzEzMTksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgQ1NT
UHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPih2YWx1ZSk7Ci0gICAgICAgIGlmIChpbnQgaWRlbnQgPSBwcmltaXRpdmVWYWx1ZS0+
Z2V0SWRlbnQoKSkgeworICAgICAgICBpZiAoQ1NTVmFsdWVJRCBpZGVudCA9IHByaW1pdGl2ZVZh
bHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAgICAgICAgIHN3aXRjaCAoaWRlbnQpIHsKICAgICAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVTbG93OgogICAgICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXIt
PnN0eWxlKCktPnNldE1hcnF1ZWVTcGVlZCg1MDApOyAvLyA1MDAgbXNlYy4KQEAgLTEzMjYsNiAr
MTMzMCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVGYXN0OgogICAgICAg
ICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldE1hcnF1ZWVTcGVlZCgxMCk7IC8v
IDEwbXNlYy4gU3VwZXIgZmFzdC4KICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzVGltZSgpKQogICAgICAgICAgICAgc3R5bGVS
ZXNvbHZlci0+c3R5bGUoKS0+c2V0TWFycXVlZVNwZWVkKHByaW1pdGl2ZVZhbHVlLT5jb21wdXRl
VGltZTxpbnQsIENTU1ByaW1pdGl2ZVZhbHVlOjpNaWxsaXNlY29uZHM+KCkpOwpAQCAtMTM3OCw3
ICsxMzg0LDcgQEAgcHVibGljOgogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZl
VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKICAgICAgICAg
TGVuZ3RoIGxpbmVIZWlnaHQ7CiAKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVu
dCgpID09IENTU1ZhbHVlTm9ybWFsKQorICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZh
bHVlSUQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkKICAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBSZW5k
ZXJTdHlsZTo6aW5pdGlhbExpbmVIZWlnaHQoKTsKICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZl
VmFsdWUtPmlzTGVuZ3RoKCkpIHsKICAgICAgICAgICAgIGRvdWJsZSBtdWx0aXBsaWVyID0gc3R5
bGVSZXNvbHZlci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpOwpAQCAtMTQzMCw3ICsxNDM2LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCFwYWdlU2l6ZU5hbWUpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICAgICAgc3dpdGNoIChwYWdlU2l6ZU5hbWUtPmdldElkZW50KCkpIHsK
KyAgICAgICAgc3dpdGNoIChwYWdlU2l6ZU5hbWUtPmdldFZhbHVlSUQoKSkgewogICAgICAgICBj
YXNlIENTU1ZhbHVlQTU6CiAgICAgICAgICAgICB3aWR0aCA9IGE1V2lkdGg7CiAgICAgICAgICAg
ICBoZWlnaHQgPSBhNUhlaWdodDsKQEAgLTE0NjgsNyArMTQ3NCw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAocGFnZU9yaWVudGF0aW9uKSB7Ci0gICAgICAgICAgICBzd2l0
Y2ggKHBhZ2VPcmllbnRhdGlvbi0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgc3dpdGNoIChw
YWdlT3JpZW50YXRpb24tPmdldFZhbHVlSUQoKSkgewogICAgICAgICAgICAgY2FzZSBDU1NWYWx1
ZUxhbmRzY2FwZToKICAgICAgICAgICAgICAgICBzdGQ6OnN3YXAod2lkdGgsIGhlaWdodCk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xNTIzLDcgKzE1MjksNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgcGFnZVNpemVUeXBlID0gUEFHRV9TSVpFX1JFU09MVkVEOwogICAgICAgICAg
ICAgICAgIHdpZHRoID0gaGVpZ2h0ID0gcHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGg8TGVu
Z3RoPihzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBzdHlsZVJlc29sdmVyLT5yb290RWxlbWVudFN0
eWxlKCkpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChwcmlt
aXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSAwOgogICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUF1
dG86CkBAIC0xNTgyLDcgKzE1ODgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogCiAgICAgICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlID0gc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpdGVtKTsKLSAgICAgICAgICAgICAgICBpZiAo
dmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVGaWxsZWQgfHwgdmFsdWUtPmdldElkZW50KCkg
PT0gQ1NTVmFsdWVPcGVuKQorICAgICAgICAgICAgICAgIGlmICh2YWx1ZS0+Z2V0VmFsdWVJRCgp
ID09IENTU1ZhbHVlRmlsbGVkIHx8IHZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVPcGVu
KQogICAgICAgICAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0RW1w
aGFzaXNGaWxsKCp2YWx1ZSk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
ICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0RW1waGFzaXNNYXJrKCp2YWx1ZSk7
CkBAIC0xNjA0LDcgKzE2MTAsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgc3R5bGVSZXNvbHZlci0+
c3R5bGUoKS0+c2V0VGV4dEVtcGhhc2lzQ3VzdG9tTWFyayhudWxsQXRvbSk7CiAKLSAgICAgICAg
aWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRmlsbGVkIHx8IHByaW1p
dGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlT3BlbikgeworICAgICAgICBpZiAocHJp
bWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUZpbGxlZCB8fCBwcmltaXRpdmVW
YWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlT3BlbikgewogICAgICAgICAgICAgc3R5bGVS
ZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEVtcGhhc2lzRmlsbCgqcHJpbWl0aXZlVmFsdWUpOwog
ICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEVtcGhhc2lzTWFyayhU
ZXh0RW1waGFzaXNNYXJrQXV0byk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xNzI1LDcgKzE3MzEs
NyBAQCBwdWJsaWM6CiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwogCiAgICAgICAgIEVSZXNp
emUgciA9IFJFU0laRV9OT05FOwotICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJ
ZGVudCgpKSB7CisgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSkg
ewogICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhc2UgQ1NT
VmFsdWVBdXRvOgpAQCAtMTc1NCw3ICsxNzYwLDcgQEAgcHVibGljOgogCiAgICAgICAgIENTU1By
aW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlKj4odmFsdWUpOwogCi0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkK
KyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VmVydGljYWxBbGlnbigqcHJpbWl0aXZl
VmFsdWUpOwogCiAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFZlcnRpY2FsQWxp
Z25MZW5ndGgocHJpbWl0aXZlVmFsdWUtPmNvbnZlcnRUb0xlbmd0aDxGaXhlZEludGVnZXJDb252
ZXJzaW9uIHwgUGVyY2VudENvbnZlcnNpb24gfCBDYWxjdWxhdGVkQ29udmVyc2lvbiB8IFZpZXdw
b3J0UGVyY2VudGFnZUNvbnZlcnNpb24+KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxlUmVz
b2x2ZXItPnJvb3RFbGVtZW50U3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+ZWZmZWN0
aXZlWm9vbSgpKSk7CkBAIC0xODI5LDEzICsxODM1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04odmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSk7
CiAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwogCi0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1
ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkgeworICAgICAgICBpZiAocHJpbWl0aXZl
VmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkgewogICAgICAgICAgICAgcmVz
ZXRFZmZlY3RpdmVab29tKHN0eWxlUmVzb2x2ZXIpOwogICAgICAgICAgICAgc3R5bGVSZXNvbHZl
ci0+c2V0Wm9vbShSZW5kZXJTdHlsZTo6aW5pdGlhbFpvb20oKSk7Ci0gICAgICAgIH0gZWxzZSBp
ZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVSZXNldCkgeworICAgICAg
ICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVSZXNl
dCkgewogICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c2V0RWZmZWN0aXZlWm9vbShSZW5kZXJT
dHlsZTo6aW5pdGlhbFpvb20oKSk7CiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zZXRab29t
KFJlbmRlclN0eWxlOjppbml0aWFsWm9vbSgpKTsKLSAgICAgICAgfSBlbHNlIGlmIChwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZURvY3VtZW50KSB7CisgICAgICAgIH0gZWxz
ZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZURvY3VtZW50KSB7
CiAgICAgICAgICAgICBmbG9hdCBkb2Nab29tID0gc3R5bGVSZXNvbHZlci0+cm9vdEVsZW1lbnRT
dHlsZSgpID8gc3R5bGVSZXNvbHZlci0+cm9vdEVsZW1lbnRTdHlsZSgpLT56b29tKCkgOiBSZW5k
ZXJTdHlsZTo6aW5pdGlhbFpvb20oKTsKICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnNldEVm
ZmVjdGl2ZVpvb20oZG9jWm9vbSk7CiAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zZXRab29t
KGRvY1pvb20pOwpAQCAtMTkxMCw3ICsxOTE2LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
aWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKICAgICAgICAgICAgIENTU1ByaW1pdGl2
ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4o
dmFsdWUpOwotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENT
U1ZhbHVlTm9uZSkKKyAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgp
ID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLCAwKTsKICAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1No
YXBlKCkpIHsKICAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgp
LCBTaGFwZUNsaXBQYXRoT3BlcmF0aW9uOjpjcmVhdGUoYmFzaWNTaGFwZUZvclZhbHVlKHN0eWxl
UmVzb2x2ZXItPnN0eWxlKCksIHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUoKSwgcHJp
bWl0aXZlVmFsdWUtPmdldFNoYXBlVmFsdWUoKSkpKTsKQEAgLTE5NDEsMTAgKzE5NDcsMTAgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsK
ICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgICAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlQXV0bykKKyAgICAgICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgICAg
ICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCAwKTsKICAgICAgICAgICAgIC8vIEZJ
WE1FIEJ1ZyAxMDI1NzE6IExheW91dCBmb3IgdGhlIHZhbHVlICdvdXRzaWRlLXNoYXBlJyBpcyBu
b3QgeWV0IGltcGxlbWVudGVkCi0gICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+
Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU91dHNpZGVTaGFwZSkKKyAgICAgICAgICAgIGVsc2UgaWYg
KHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVPdXRzaWRlU2hhcGUpCiAg
ICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgU2hhcGVWYWx1
ZTo6Y3JlYXRlT3V0c2lkZVZhbHVlKCkpOwogICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZl
VmFsdWUtPmlzU2hhcGUoKSkgewogICAgICAgICAgICAgICAgIFJlZlB0cjxTaGFwZVZhbHVlPiBz
aGFwZSA9IFNoYXBlVmFsdWU6OmNyZWF0ZVNoYXBlVmFsdWUoYmFzaWNTaGFwZUZvclZhbHVlKHN0
eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUoKSwg
cHJpbWl0aXZlVmFsdWUtPmdldFNoYXBlVmFsdWUoKSkpOwpAQCAtMTk5NCw5ICsyMDAwLDkgQEAg
cHVibGljOgogICAgICAgICAgICAgaWYgKCFpdGVtLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJp
bWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0pOwotICAg
ICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRnJvbUlt
YWdlKQorICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NT
VmFsdWVGcm9tSW1hZ2UpCiAgICAgICAgICAgICAgICAgc291cmNlID0gSW1hZ2VSZXNvbHV0aW9u
RnJvbUltYWdlOwotICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkgPT0gQ1NTVmFsdWVTbmFwKQorICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUt
PmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVNuYXApCiAgICAgICAgICAgICAgICAgc25hcCA9IElt
YWdlUmVzb2x1dGlvblNuYXBQaXhlbHM7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgcmVzb2x1dGlvbiA9IHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZShDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX0RQUFgpOwpAQCAtMjA1MCwxMiArMjA1NiwxMiBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBw
cmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7Ci0g
ICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKQorICAgICAgICAgICAg
aWYgKCFwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKQogICAgICAgICAgICAgICAgIGxlbmd0
aE9yUGVyY2VudGFnZVZhbHVlID0gcHJpbWl0aXZlVmFsdWUtPmNvbnZlcnRUb0xlbmd0aDxGaXhl
ZEludGVnZXJDb252ZXJzaW9uIHwgUGVyY2VudENvbnZlcnNpb24gfCBDYWxjdWxhdGVkQ29udmVy
c2lvbiB8IFZpZXdwb3J0UGVyY2VudGFnZUNvbnZlcnNpb24+KHN0eWxlUmVzb2x2ZXItPnN0eWxl
KCksIHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+c3R5
bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKICNpZiBFTkFCTEUoQ1NTM19URVhUKQotICAgICAgICAg
ICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVXZWJraXRF
YWNoTGluZSkKKyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlE
KCkgPT0gQ1NTVmFsdWVXZWJraXRFYWNoTGluZSkKICAgICAgICAgICAgICAgICB0ZXh0SW5kZW50
TGluZVZhbHVlID0gVGV4dEluZGVudEVhY2hMaW5lOwotICAgICAgICAgICAgZWxzZSBpZiAocHJp
bWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVXZWJraXRIYW5naW5nKQorICAgICAg
ICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVdl
YmtpdEhhbmdpbmcpCiAgICAgICAgICAgICAgICAgdGV4dEluZGVudFR5cGVWYWx1ZSA9IFRleHRJ
bmRlbnRIYW5naW5nOwogI2VuZGlmCiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCBjNDczMzI1NzNhMTQyZDZhNjBkNTliZTA3OGJiZmYx
ZTAwOTU4Y2ZmLi42OGRlMGY2MmQ3ZDJjZTFjZmM0MzUyZjdmNmUwZDA4OTM1NmJhNzZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0yNDksNyArMjQ5
LDcgQEAgc3RhdGljIGJvb2wgb3JpZW50YXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2
YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnIKICAgICBpbnQgd2lkdGggPSB2aWV3LT5sYXlv
dXRXaWR0aCgpOwogICAgIGludCBoZWlnaHQgPSB2aWV3LT5sYXlvdXRIZWlnaHQoKTsKICAgICBp
ZiAodmFsdWUgJiYgdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgewotICAgICAgICBjb25zdCBp
bnQgaWQgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0SWRlbnQo
KTsKKyAgICAgICAgY29uc3QgQ1NTVmFsdWVJRCBpZCA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4odmFsdWUpLT5nZXRWYWx1ZUlEKCk7CiAgICAgICAgIGlmICh3aWR0aCA+IGhlaWdo
dCkgLy8gU3F1YXJlIHZpZXdwb3J0IGlzIHBvcnRyYWl0LgogICAgICAgICAgICAgcmV0dXJuIENT
U1ZhbHVlTGFuZHNjYXBlID09IGlkOwogICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb3J0cmFpdCA9
PSBpZDsKQEAgLTYwMyw3ICs2MDMsNyBAQCBzdGF0aWMgYm9vbCB2aWV3X21vZGVNZWRpYUZlYXR1
cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbQogICAgIGlm
ICghdmFsdWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgY29uc3QgaW50IHZpZXdNb2Rl
Q1NTS2V5d29yZElEID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdl
dElkZW50KCk7CisgICAgY29uc3QgaW50IHZpZXdNb2RlQ1NTS2V5d29yZElEID0gc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldFZhbHVlSUQoKTsKICAgICBjb25zdCBQ
YWdlOjpWaWV3TW9kZSB2aWV3TW9kZSA9IGZyYW1lLT5wYWdlKCktPnZpZXdNb2RlKCk7CiAgICAg
Ym9vbCByZXN1bHQgPSBmYWxzZTsKICAgICBzd2l0Y2ggKHZpZXdNb2RlKSB7CkBAIC02ODUsNyAr
Njg1LDcgQEAgc3RhdGljIGJvb2wgcG9pbnRlck1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZh
bHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcmFtZSwKICAgICBpZiAoIXZhbHVlLT5pc1ByaW1p
dGl2ZVZhbHVlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGNvbnN0IGludCBpZCA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRJZGVudCgpOworICAg
IGNvbnN0IENTU1ZhbHVlSUQgaWQgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZh
bHVlKS0+Z2V0VmFsdWVJRCgpOwogICAgIHJldHVybiAocG9pbnRlciA9PSBOb1BvaW50ZXIgJiYg
aWQgPT0gQ1NTVmFsdWVOb25lKQogICAgICAgICB8fCAocG9pbnRlciA9PSBUb3VjaFBvaW50ZXIg
JiYgaWQgPT0gQ1NTVmFsdWVDb2Fyc2UpCiAgICAgICAgIHx8IChwb2ludGVyID09IE1vdXNlUG9p
bnRlciAmJiBpZCA9PSBDU1NWYWx1ZUZpbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1NWR0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNw
cAppbmRleCAxOTQxYjMyYjQ5Y2QxZjZmNTM1MTQzYjM3ZWM0YjExMGRiMmNmMWMxLi5kZmRjNzRl
OGJhMzkyMzI0MjZkNDVhMjQzYzRlNjNkZGRjMDAyYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NT
UGFyc2VyLmNwcApAQCAtNDIsNyArNDIsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VTVkdWYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgaWYgKCF2YWx1ZSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaW50IGlkID0gdmFsdWUtPmlkOworICAgIENT
U1ZhbHVlSUQgaWQgPSB2YWx1ZS0+aWQ7CiAKICAgICBib29sIHZhbGlkX3ByaW1pdGl2ZSA9IGZh
bHNlOwogICAgIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VkVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggNzBkMWNhNGY5Y2ZkY2RhZTg5MzU3M2Yw
YWM4OGRlMDUyYzcwNDc2OC4uNmY4NzIzMWRmODUwNGI1NTY1MGM3MjJjYThjZjYwZWZiMTg1MWU2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMTM3
LDggKzEzNyw4IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlTVkdQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZh
bHVlKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBpZiAocHJpbWl0aXZl
VmFsdWUtPmdldElkZW50KCkpIHsKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZh
bHVlSUQoKSkgeworICAgICAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldFZh
bHVlSUQoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVCYXNlbGluZToKICAgICAg
ICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldEJhc2VsaW5lU2hpZnQoQlNfQkFTRUxJTkUpOwog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTUzOSw3ICs1MzksNyBAQCB2b2lkIFN0eWxl
UmVzb2x2ZXI6OmFwcGx5U1ZHUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZh
bHVlKQogICAgICAgICAgICAgICAgIEFTU0VSVChvcmllbnRhdGlvbiAhPSAtMSk7CiAKICAgICAg
ICAgICAgICAgICBzdmdzdHlsZS0+c2V0R2x5cGhPcmllbnRhdGlvblZlcnRpY2FsKChFR2x5cGhP
cmllbnRhdGlvbikgb3JpZW50YXRpb24pOwotICAgICAgICAgICAgfSBlbHNlIGlmIChwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pCisgICAgICAgICAgICB9IGVsc2Ug
aWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVBdXRvKQogICAgICAg
ICAgICAgICAgIHN2Z3N0eWxlLT5zZXRHbHlwaE9yaWVudGF0aW9uVmVydGljYWwoR09fQVVUTyk7
CiAKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUHJvcGVydHlTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQu
Y3BwCmluZGV4IGQ2YWEzMzE4NDhhNTZhNDdlMjcwYzZiYTBlYzRlZjY1YmJiYzRhOGQuLmMwZGJm
ZmM2NjZiYmYyNzkwMjNiYzIxODMwZjZiNTk5YzhjODQ5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0eVNldC5jcHAKQEAgLTQyMCw4ICs0MjAsOCBAQCBTdHJpbmcgU3R5bGVQcm9w
ZXJ0eVNldDo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9y
dGhhbmQmCiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg
IHlWYWx1ZSA9IG5leHRWYWx1ZTsKIAotICAgICAgICAgICAgICAgICAgICBpbnQgeElkID0gc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZS5nZXQoKSktPmdldElkZW50KCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGludCB5SWQgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZSo+KHlWYWx1ZS5nZXQoKSktPmdldElkZW50KCk7CisgICAgICAgICAgICAgICAgICAgIENTU1Zh
bHVlSUQgeElkID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZS5nZXQoKSkt
PmdldFZhbHVlSUQoKTsKKyAgICAgICAgICAgICAgICAgICAgQ1NTVmFsdWVJRCB5SWQgPSBzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHlWYWx1ZS5nZXQoKSktPmdldFZhbHVlSUQoKTsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKHhJZCAhPSB5SWQpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh4SWQgPT0gQ1NTVmFsdWVSZXBlYXQgJiYgeUlkID09IENTU1ZhbHVlTm9SZXBl
YXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VSZXBlYXRYU2hvcnRoYW5kID0g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA1YzM4YmVhY2UzMDc4
Y2EzOTg4YTVmYWI3YmUyNjczMmNiZDk4ODg1Li5lMmQ4ZDhkZTI0N2JiZjA4NTEwNzUwZDljODQy
NTBlZWNlOWM5NDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yMDU4
LDEyICsyMDU4LDEyIEBAIGJvb2wgU3R5bGVSZXNvbHZlcjo6dXNlU1ZHWm9vbVJ1bGVzKCkKIAog
c3RhdGljIGJvb2wgY3JlYXRlR3JpZFRyYWNrQnJlYWR0aChDU1NQcmltaXRpdmVWYWx1ZSogcHJp
bWl0aXZlVmFsdWUsIGNvbnN0IFN0eWxlUmVzb2x2ZXI6OlN0YXRlJiBzdGF0ZSwgTGVuZ3RoJiB3
b3JraW5nTGVuZ3RoKQogewotICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBD
U1NWYWx1ZVdlYmtpdE1pbkNvbnRlbnQpIHsKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZh
bHVlSUQoKSA9PSBDU1NWYWx1ZVdlYmtpdE1pbkNvbnRlbnQpIHsKICAgICAgICAgd29ya2luZ0xl
bmd0aCA9IExlbmd0aChNaW5Db250ZW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
Ci0gICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlV2Via2l0TWF4
Q29udGVudCkgeworICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1Zh
bHVlV2Via2l0TWF4Q29udGVudCkgewogICAgICAgICB3b3JraW5nTGVuZ3RoID0gTGVuZ3RoKE1h
eENvbnRlbnQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0yMTA4LDcgKzIxMDgs
NyBAQCBzdGF0aWMgYm9vbCBjcmVhdGVHcmlkVHJhY2tMaXN0KENTU1ZhbHVlKiB2YWx1ZSwgVmVj
dG9yPEdyaWRUcmFja1NpemU+JiB0cmFja1NpegogICAgIC8vIEhhbmRsZSAnbm9uZScuCiAgICAg
aWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKICAgICAgICAgQ1NTUHJpbWl0aXZlVmFs
dWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1
ZSk7Ci0gICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1
ZU5vbmU7CisgICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENT
U1ZhbHVlTm9uZTsKICAgICB9CiAKICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKQpAQCAt
MjEzMyw3ICsyMTMzLDcgQEAgc3RhdGljIGJvb2wgY3JlYXRlR3JpZFBvc2l0aW9uKENTU1ZhbHVl
KiB2YWx1ZSwgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVu
dCgpID09IENTU1ZhbHVlQXV0bykKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQo
KSA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocHJpbWl0aXZlVmFsdWUtPmlzTnVtYmVyKCkpOwpAQCAt
MjMxMCwxNCArMjMxMCwxNCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NT
UHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICAgICAgICAgIH0gZWxzZSBp
ZiAoY29udGVudFZhbHVlLT5pc0NvdW50ZXIoKSkgewogICAgICAgICAgICAgICAgICAgICBDb3Vu
dGVyKiBjb3VudGVyVmFsdWUgPSBjb250ZW50VmFsdWUtPmdldENvdW50ZXJWYWx1ZSgpOwogICAg
ICAgICAgICAgICAgICAgICBFTGlzdFN0eWxlVHlwZSBsaXN0U3R5bGVUeXBlID0gTm9uZUxpc3RT
dHlsZTsKLSAgICAgICAgICAgICAgICAgICAgaW50IGxpc3RTdHlsZUlkZW50ID0gY291bnRlclZh
bHVlLT5saXN0U3R5bGVJZGVudCgpOworICAgICAgICAgICAgICAgICAgICBDU1NWYWx1ZUlEIGxp
c3RTdHlsZUlkZW50ID0gY291bnRlclZhbHVlLT5saXN0U3R5bGVJZGVudCgpOwogICAgICAgICAg
ICAgICAgICAgICBpZiAobGlzdFN0eWxlSWRlbnQgIT0gQ1NTVmFsdWVOb25lKQogICAgICAgICAg
ICAgICAgICAgICAgICAgbGlzdFN0eWxlVHlwZSA9IHN0YXRpY19jYXN0PEVMaXN0U3R5bGVUeXBl
PihsaXN0U3R5bGVJZGVudCAtIENTU1ZhbHVlRGlzYyk7CiAgICAgICAgICAgICAgICAgICAgIE93
blB0cjxDb3VudGVyQ29udGVudD4gY291bnRlciA9IGFkb3B0UHRyKG5ldyBDb3VudGVyQ29udGVu
dChjb3VudGVyVmFsdWUtPmlkZW50aWZpZXIoKSwgbGlzdFN0eWxlVHlwZSwgY291bnRlclZhbHVl
LT5zZXBhcmF0b3IoKSkpOwogICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRD
b250ZW50KGNvdW50ZXIucmVsZWFzZSgpLCBkaWRTZXQpOwogICAgICAgICAgICAgICAgICAgICBk
aWRTZXQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHN3aXRjaCAoY29udGVudFZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICAgICAg
ICAgIHN3aXRjaCAoY29udGVudFZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZU9wZW5RdW90ZToKICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXRlLnN0eWxlKCktPnNldENvbnRlbnQoT1BFTl9RVU9URSwgZGlkU2V0KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CkBAIC0yMzcyLDcgKzIzNzIsNyBAQCB2b2lkIFN0
eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZh
bHVlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChwcmltaXRp
dmVWYWx1ZSkgewotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09
IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJ
RCgpID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAgICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRR
dW90ZXMoUXVvdGVzRGF0YTo6Y3JlYXRlKFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+
ID4oKSkpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKQEAgLTIzOTQsNyArMjM5NCw3IEBA
IHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NW
YWx1ZSogdmFsdWUpCiAgICAgICAgICAgICBzdGF0ZS5zZXRMaW5lSGVpZ2h0VmFsdWUoMCk7CiAK
ICAgICAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247Ci0gICAgICAgICAg
ICBSZW5kZXJUaGVtZTo6ZGVmYXVsdFRoZW1lKCktPnN5c3RlbUZvbnQocHJpbWl0aXZlVmFsdWUt
PmdldElkZW50KCksIGZvbnREZXNjcmlwdGlvbik7CisgICAgICAgICAgICBSZW5kZXJUaGVtZTo6
ZGVmYXVsdFRoZW1lKCktPnN5c3RlbUZvbnQocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSwg
Zm9udERlc2NyaXB0aW9uKTsKIAogICAgICAgICAgICAgLy8gRG91YmxlLWNoZWNrIGFuZCBzZWUg
aWYgdGhlIHRoZW1lIGRpZCBhbnl0aGluZy4gSWYgbm90LCBkb24ndCBib3RoZXIgdXBkYXRpbmcg
dGhlIGZvbnQuCiAgICAgICAgICAgICBpZiAoZm9udERlc2NyaXB0aW9uLmlzQWJzb2x1dGVTaXpl
KCkpIHsKQEAgLTI1MDAsNyArMjUwMCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgICAgICBpbnQg
eSA9IGl0ZW0tPnktPmNvbXB1dGVMZW5ndGg8aW50PihzdGF0ZS5zdHlsZSgpLCBzdGF0ZS5yb290
RWxlbWVudFN0eWxlKCksIHpvb21GYWN0b3IpOwogICAgICAgICAgICAgaW50IGJsdXIgPSBpdGVt
LT5ibHVyID8gaXRlbS0+Ymx1ci0+Y29tcHV0ZUxlbmd0aDxpbnQ+KHN0YXRlLnN0eWxlKCksIHN0
YXRlLnJvb3RFbGVtZW50U3R5bGUoKSwgem9vbUZhY3RvcikgOiAwOwogICAgICAgICAgICAgaW50
IHNwcmVhZCA9IGl0ZW0tPnNwcmVhZCA/IGl0ZW0tPnNwcmVhZC0+Y29tcHV0ZUxlbmd0aDxpbnQ+
KHN0YXRlLnN0eWxlKCksIHN0YXRlLnJvb3RFbGVtZW50U3R5bGUoKSwgem9vbUZhY3RvcikgOiAw
OwotICAgICAgICAgICAgU2hhZG93U3R5bGUgc2hhZG93U3R5bGUgPSBpdGVtLT5zdHlsZSAmJiBp
dGVtLT5zdHlsZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUluc2V0ID8gSW5zZXQgOiBOb3JtYWw7
CisgICAgICAgICAgICBTaGFkb3dTdHlsZSBzaGFkb3dTdHlsZSA9IGl0ZW0tPnN0eWxlICYmIGl0
ZW0tPnN0eWxlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVJbnNldCA/IEluc2V0IDogTm9ybWFs
OwogICAgICAgICAgICAgQ29sb3IgY29sb3I7CiAgICAgICAgICAgICBpZiAoaXRlbS0+Y29sb3Ip
CiAgICAgICAgICAgICAgICAgY29sb3IgPSBjb2xvckZyb21QcmltaXRpdmVWYWx1ZShpdGVtLT5j
b2xvci5nZXQoKSk7CkBAIC0yNTQ2LDcgKzI1NDYsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFw
cGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICBI
QU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChsb2NhbGUsIExvY2FsZSk7CiAgICAgICAgIGlmICgh
cHJpbWl0aXZlVmFsdWUpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUF1dG8pCisgICAgICAgIGlmIChwcmltaXRp
dmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgIHN0YXRl
LnN0eWxlKCktPnNldExvY2FsZShudWxsQXRvbSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
IHN0YXRlLnN0eWxlKCktPnNldExvY2FsZShwcmltaXRpdmVWYWx1ZS0+Z2V0U3RyaW5nVmFsdWUo
KSk7CkBAIC0yNTYyLDcgKzI1NjIsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVy
dHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICBpZiAoIXByaW1p
dGl2ZVZhbHVlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChwcmltaXRpdmVW
YWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmUpIHsKKyAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25lKSB7CiAgICAgICAgICAgICBzdGF0
ZS5zdHlsZSgpLT5zZXREYXNoYm9hcmRSZWdpb25zKFJlbmRlclN0eWxlOjpub25lRGFzaGJvYXJk
UmVnaW9ucygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMjYwMSw5ICsy
NjAxLDkgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQg
aWQsIENTU1ZhbHVlKiB2YWx1ZSkKICNlbmRpZgogI2lmIEVOQUJMRShEUkFHR0FCTEVfUkVHSU9O
KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBcHBSZWdpb246IHsKLSAgICAgICAgaWYgKCFw
cmltaXRpdmVWYWx1ZSB8fCAhcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpCisgICAgICAgIGlm
ICghcHJpbWl0aXZlVmFsdWUgfHwgIXByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpCiAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIHN0YXRlLnN0eWxlKCktPnNldERyYWdnYWJsZVJlZ2lv
bk1vZGUocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVEcmFnID8gRHJhZ2dh
YmxlUmVnaW9uRHJhZyA6IERyYWdnYWJsZVJlZ2lvbk5vRHJhZyk7CisgICAgICAgIHN0YXRlLnN0
eWxlKCktPnNldERyYWdnYWJsZVJlZ2lvbk1vZGUocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQo
KSA9PSBDU1NWYWx1ZURyYWcgPyBEcmFnZ2FibGVSZWdpb25EcmFnIDogRHJhZ2dhYmxlUmVnaW9u
Tm9EcmFnKTsKICAgICAgICAgc3RhdGUuZG9jdW1lbnQoKS0+c2V0SGFzQW5ub3RhdGVkUmVnaW9u
cyh0cnVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI2MTEsMTQgKzI2MTEsMTQgQEAg
dm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1Zh
bHVlKiB2YWx1ZSkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9rZVdpZHRoOiB7
CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHRleHRTdHJva2VXaWR0aCwgVGV4
dFN0cm9rZVdpZHRoKQogICAgICAgICBmbG9hdCB3aWR0aCA9IDA7Ci0gICAgICAgIHN3aXRjaCAo
cHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgc3dpdGNoIChwcmltaXRpdmVW
YWx1ZS0+Z2V0VmFsdWVJRCgpKSB7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVUaGluOgogICAgICAg
ICBjYXNlIENTU1ZhbHVlTWVkaXVtOgogICAgICAgICBjYXNlIENTU1ZhbHVlVGhpY2s6IHsKICAg
ICAgICAgICAgIGRvdWJsZSByZXN1bHQgPSAxLjAgLyA0ODsKLSAgICAgICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU1lZGl1bSkKKyAgICAgICAgICAgIGlm
IChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTWVkaXVtKQogICAgICAg
ICAgICAgICAgIHJlc3VsdCAqPSAzOwotICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFs
dWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVUaGljaykKKyAgICAgICAgICAgIGVsc2UgaWYgKHBy
aW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVUaGljaykKICAgICAgICAgICAg
ICAgICByZXN1bHQgKj0gNTsKICAgICAgICAgICAgIHdpZHRoID0gQ1NTUHJpbWl0aXZlVmFsdWU6
OmNyZWF0ZShyZXN1bHQsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRU1TKS0+Y29tcHV0ZUxlbmd0
aDxmbG9hdD4oc3RhdGUuc3R5bGUoKSwgc3RhdGUucm9vdEVsZW1lbnRTdHlsZSgpLCB6b29tRmFj
dG9yKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjY0Myw3ICsyNjQzLDcgQEAgdm9pZCBTdHls
ZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1
ZSkKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKSB7
CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9u
ZSkgewogICAgICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0UGVyc3BlY3RpdmUoMCk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTI2NzcsNyArMjY3Nyw3IEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFs
dWUpCiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHVzZVRvdWNoT3ZlcmZsb3dT
Y3JvbGxpbmcsIFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcpOwogICAgICAgICBpZiAoIXByaW1p
dGl2ZVZhbHVlKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIHN0YXRlLnN0eWxlKCktPnNl
dFVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0g
Q1NTVmFsdWVUb3VjaCk7CisgICAgICAgIHN0YXRlLnN0eWxlKCktPnNldFVzZVRvdWNoT3ZlcmZs
b3dTY3JvbGxpbmcocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVRvdWNo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtMjc2NCw3ICsyNzY0LDcgQEAg
dm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1Zh
bHVlKiB2YWx1ZSkKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMaW5lQm94Q29udGFpbjog
ewogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChsaW5lQm94Q29udGFpbiwgTGlu
ZUJveENvbnRhaW4pCi0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1
ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmUpIHsKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZh
bHVlICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25lKSB7CiAg
ICAgICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRMaW5lQm94Q29udGFpbihMaW5lQm94Q29udGFp
bk5vbmUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0yNzc5LDcgKzI3Nzks
NyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwg
Q1NTVmFsdWUqIHZhbHVlKQogCiAgICAgLy8gQ1NTIEZvbnRzIE1vZHVsZSBMZXZlbCAzCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGluZ3M6IHsKLSAgICAgICAgaWYg
KHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVl
Tm9ybWFsKSB7CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+
Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTm9ybWFsKSB7CiAgICAgICAgICAgICBzZXRGb250RGVz
Y3JpcHRpb24oc3RhdGUuc3R5bGUoKS0+Zm9udERlc2NyaXB0aW9uKCkubWFrZU5vcm1hbEZlYXR1
cmVTZXR0aW5ncygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzQzMSwx
MCArMzQzMSwxMCBAQCBpbnQgU3R5bGVSZXNvbHZlcjo6bGVnYWN5Rm9udFNpemUoRG9jdW1lbnQq
IGRvY3VtZW50LCBpbnQgcGl4ZWxGb250U2l6ZSwgYm9vbCBzaAogICAgIHJldHVybiBmaW5kTmVh
cmVzdExlZ2FjeUZvbnRTaXplPGZsb2F0PihwaXhlbEZvbnRTaXplLCBmb250U2l6ZUZhY3RvcnMs
IG1lZGl1bVNpemUpOwogfQogCi1zdGF0aWMgQ29sb3IgY29sb3JGb3JDU1NWYWx1ZShpbnQgY3Nz
VmFsdWVJZCkKK3N0YXRpYyBDb2xvciBjb2xvckZvckNTU1ZhbHVlKENTU1ZhbHVlSUQgY3NzVmFs
dWVJZCkKIHsKICAgICBzdHJ1Y3QgQ29sb3JWYWx1ZSB7Ci0gICAgICAgIGludCBjc3NWYWx1ZUlk
OworICAgICAgICBDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQ7CiAgICAgICAgIFJHQkEzMiBjb2xvcjsK
ICAgICB9OwogCkBAIC0zNDU4LDcgKzM0NTgsNyBAQCBzdGF0aWMgQ29sb3IgY29sb3JGb3JDU1NW
YWx1ZShpbnQgY3NzVmFsdWVJZCkKICAgICAgICAgeyBDU1NWYWx1ZVRyYW5zcGFyZW50LCAweDAw
MDAwMDAwIH0sCiAgICAgICAgIHsgQ1NTVmFsdWVXaGl0ZSwgMHhGRkZGRkZGRiB9LAogICAgICAg
ICB7IENTU1ZhbHVlWWVsbG93LCAweEZGRkZGRjAwIH0sCi0gICAgICAgIHsgMCwgMCB9CisgICAg
ICAgIHsgQ1NTVmFsdWVJbnZhbGlkLCBDU1NWYWx1ZUludmFsaWQgfQogICAgIH07CiAKICAgICBm
b3IgKGNvbnN0IENvbG9yVmFsdWUqIGNvbCA9IGNvbG9yVmFsdWVzOyBjb2wtPmNzc1ZhbHVlSWQ7
ICsrY29sKSB7CkBAIC0zNDcwLDcgKzM0NzAsNyBAQCBzdGF0aWMgQ29sb3IgY29sb3JGb3JDU1NW
YWx1ZShpbnQgY3NzVmFsdWVJZCkKIAogYm9vbCBTdHlsZVJlc29sdmVyOjpjb2xvckZyb21Qcmlt
aXRpdmVWYWx1ZUlzRGVyaXZlZEZyb21FbGVtZW50KENTU1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSkK
IHsKLSAgICBpbnQgaWRlbnQgPSB2YWx1ZS0+Z2V0SWRlbnQoKTsKKyAgICBpbnQgaWRlbnQgPSB2
YWx1ZS0+Z2V0VmFsdWVJRCgpOwogICAgIHN3aXRjaCAoaWRlbnQpIHsKICAgICBjYXNlIENTU1Zh
bHVlV2Via2l0VGV4dDoKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0TGluazoKQEAgLTM0ODgsNyAr
MzQ4OCw3IEBAIENvbG9yIFN0eWxlUmVzb2x2ZXI6OmNvbG9yRnJvbVByaW1pdGl2ZVZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlKiB2YWx1ZSwgYm9vbCBmb3JWCiAgICAgICAgIHJldHVybiBDb2xvcih2
YWx1ZS0+Z2V0UkdCQTMyVmFsdWUoKSk7CiAKICAgICBjb25zdCBTdGF0ZSYgc3RhdGUgPSBtX3N0
YXRlOwotICAgIGludCBpZGVudCA9IHZhbHVlLT5nZXRJZGVudCgpOworICAgIENTU1ZhbHVlSUQg
aWRlbnQgPSB2YWx1ZS0+Z2V0VmFsdWVJRCgpOwogICAgIHN3aXRjaCAoaWRlbnQpIHsKICAgICBj
YXNlIDA6CiAgICAgICAgIHJldHVybiBDb2xvcigpOwpAQCAtMzgyOCw5ICszODI4LDkgQEAgUGFz
c1JlZlB0cjxDdXN0b21GaWx0ZXJPcGVyYXRpb24+IFN0eWxlUmVzb2x2ZXI6OmNyZWF0ZUN1c3Rv
bUZpbHRlck9wZXJhdGlvbldpdGgKICAgICAgICAgICAgIEFTU0VSVChtaXhGdW5jdGlvbi0+bGVu
Z3RoKCkgPD0gMyk7CiAgICAgICAgICAgICB3aGlsZSAoaXRlcmF0b3IuaGFzTW9yZSgpKSB7CiAg
ICAgICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGlj
X2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpdGVyYXRvci52YWx1ZSgpKTsKLSAgICAgICAgICAg
ICAgICBpZiAoQ1NTUGFyc2VyOjppc0JsZW5kTW9kZShwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQo
KSkpCisgICAgICAgICAgICAgICAgaWYgKENTU1BhcnNlcjo6aXNCbGVuZE1vZGUocHJpbWl0aXZl
VmFsdWUtPmdldFZhbHVlSUQoKSkpCiAgICAgICAgICAgICAgICAgICAgIG1peFNldHRpbmdzLmJs
ZW5kTW9kZSA9ICpwcmltaXRpdmVWYWx1ZTsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChDU1NQ
YXJzZXI6OmlzQ29tcG9zaXRlT3BlcmF0b3IocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpKQor
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKENTU1BhcnNlcjo6aXNDb21wb3NpdGVPcGVyYXRvcihw
cmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpKSkKICAgICAgICAgICAgICAgICAgICAgbWl4U2V0
dGluZ3MuY29tcG9zaXRlT3BlcmF0b3IgPSAqcHJpbWl0aXZlVmFsdWU7CiAgICAgICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM4
NzksNyArMzg3OSw3IEBAIFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBTdHlsZVJl
c29sdmVyOjpjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb25XaXRoCiAgICAgICAgIAogICAgICAg
ICBpZiAoaXRlcmF0b3IuaGFzTW9yZSgpICYmIGl0ZXJhdG9yLmlzUHJpbWl0aXZlVmFsdWUoKSkg
ewogICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGlj
X2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpdGVyYXRvci52YWx1ZSgpKTsKLSAgICAgICAgICAg
IGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZURldGFjaGVkKSB7Cisg
ICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZURl
dGFjaGVkKSB7CiAgICAgICAgICAgICAgICAgbWVzaFR5cGUgPSBNZXNoVHlwZURldGFjaGVkOwog
ICAgICAgICAgICAgICAgIGl0ZXJhdG9yLmFkdmFuY2UoKTsKICAgICAgICAgICAgIH0KQEAgLTM5
MjIsNyArMzkyMiw3IEBAIGJvb2wgU3R5bGVSZXNvbHZlcjo6Y3JlYXRlRmlsdGVyT3BlcmF0aW9u
cyhDU1NWYWx1ZSogaW5WYWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlCiAgICAgCiAgICAgaWYgKGlu
VmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgewogICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSog
cHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGluVmFsdWUp
OwotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25l
KQorICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5v
bmUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDQwODVlZjA1NzE0YWQ1YTBk
YTM5MWQ0ZTYzOWUyNWU1ZmQzZTFhOTguLjc0YTBiMjBkMzU3OTUxNWViNDc3YTg5NWMwYTIzNDNh
MjhiZjliYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0eWxlUmVz
b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIu
Y3BwCkBAIC0xMzksNyArMTM5LDcgQEAgZmxvYXQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjpnZXRW
aWV3cG9ydEFyZ3VtZW50VmFsdWUoQ1NTUHJvcGVydHlJRCBpZCkgY29uc3QKICAgICAgICAgfQog
ICAgIH0KIAotICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICBz
d2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkpIHsKICAgICBjYXNlIENTU1ZhbHVl
QXV0bzoKICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKICAgICBjYXNlIENTU1ZhbHVlRGV2
aWNlSGVpZ2h0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJp
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcAppbmRleCBmMWNj
NmE0MTMwN2MwNmM3YTYyOTUwODAzMzljOGY3NTRjYmE3ZDhkLi5hMzNiODk1ZDg3Njk2ZWMzM2Uw
ZWNiYTY5ZTU3NmY4NGIwNWM4Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTTWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4
LmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFdlYktpdENTU01hdHJpeDo6c2V0TWF0cml4VmFs
dWUoY29uc3QgU3RyaW5nJiBzdHJpbmcsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBSZWZQ
dHI8Q1NTVmFsdWU+IHZhbHVlID0gc3R5bGVEZWNsYXJhdGlvbi0+Z2V0UHJvcGVydHlDU1NWYWx1
ZShDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSk7CiAKICAgICAgICAgLy8gQ2hlY2sgZm9yIGEg
Im5vbmUiIG9yIGVtcHR5IHRyYW5zZm9ybS4gSW4gdGhlc2UgY2FzZXMgd2UgY2FuIHVzZSB0aGUg
ZGVmYXVsdCBpZGVudGl0eSBtYXRyaXguCi0gICAgICAgIGlmICghdmFsdWUgfHwgKHZhbHVlLT5p
c1ByaW1pdGl2ZVZhbHVlKCkgJiYgKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFs
dWUuZ2V0KCkpKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmUpKQorICAgICAgICBpZiAoIXZh
bHVlIHx8ICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpICYmIChzdGF0aWNfY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZSo+KHZhbHVlLmdldCgpKSktPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmUp
KQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIFRyYW5zZm9ybU9wZXJhdGlvbnMgb3Bl
cmF0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAK
aW5kZXggMWFkZTVkYjNkZTVmM2I4Y2ZiYWU2MzNiNWU4ZmEyZGE1MTA4OTg2Yy4uOTcxYTRhZDAw
NDEyNTZiNDE2MzA5MzI0YmU0YzQwMzU2OTFkMTE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAogc3RhdGljIGludCB0b0lkZW50aWZpZXIoUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gdmFsdWUpCiB7Ci0gICAgcmV0dXJuICh2YWx1ZSAmJiB2YWx1ZS0+aXNQcmltaXRpdmVW
YWx1ZSgpKSA/IHN0YXRpY19wb2ludGVyX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKS0+
Z2V0SWRlbnQoKSA6IDA7CisgICAgcmV0dXJuICh2YWx1ZSAmJiB2YWx1ZS0+aXNQcmltaXRpdmVW
YWx1ZSgpKSA/IHN0YXRpY19wb2ludGVyX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKS0+
Z2V0VmFsdWVJRCgpIDogMDsKIH0KIAogc3RhdGljIFN0cmluZyYgc3R5bGVTcGFuQ2xhc3NTdHJp
bmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IGQ1YTMyOTdh
M2UzMmZjN2UwOGFhZWJlMDAxYmJlZThhODMxNDcxOTYuLjcwZTU4ZjcyN2RiNzIzYjAxODIzMTFk
MGUyMmMxYWZhNmY5ZTZhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5j
cHAKQEAgLTEzNiw3ICsxMzYsNyBAQCBpbnQgaWRlbnRpZmllckZvclN0eWxlUHJvcGVydHkoVCog
c3R5bGUsIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZh
bHVlID0gZXh0cmFjdFByb3BlcnR5VmFsdWUoc3R5bGUsIHByb3BlcnR5SUQpOwogICAgIGlmICgh
dmFsdWUgfHwgIXZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgIHJldHVybiAwOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlLmdldCgpKS0+
Z2V0SWRlbnQoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2
YWx1ZS5nZXQoKSktPmdldFZhbHVlSUQoKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gUGFz
c1JlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gZ2V0UHJvcGVydGllc05vdEluKFN0eWxl
UHJvcGVydHlTZXQqIHN0eWxlV2l0aFJlZHVuZGFudFByb3BlcnRpZXMsIFQqIGJhc2VTdHlsZSk7
CkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGJhY2tncm91
bmRDb2xvckluRWZmZWN0KE5vZGUqKTsKIGNsYXNzIEhUTUxFbGVtZW50RXF1aXZhbGVudCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8SFRNTEVsZW1lbnRFcXVpdmFsZW50PiBjcmVhdGUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlE
LCBpbnQgcHJpbWl0aXZlVmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCisgICAg
c3RhdGljIFBhc3NPd25QdHI8SFRNTEVsZW1lbnRFcXVpdmFsZW50PiBjcmVhdGUoQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eUlELCBDU1NWYWx1ZUlEIHByaW1pdGl2ZVZhbHVlLCBjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBIVE1M
RWxlbWVudEVxdWl2YWxlbnQocHJvcGVydHlJRCwgcHJpbWl0aXZlVmFsdWUsIHRhZ05hbWUpKTsK
ICAgICB9CkBAIC0xNjQsNyArMTY0LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEhUTUxF
bGVtZW50RXF1aXZhbGVudChDU1NQcm9wZXJ0eUlEKTsKICAgICBIVE1MRWxlbWVudEVxdWl2YWxl
bnQoQ1NTUHJvcGVydHlJRCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSk7Ci0gICAgSFRN
TEVsZW1lbnRFcXVpdmFsZW50KENTU1Byb3BlcnR5SUQsIGludCBwcmltaXRpdmVWYWx1ZSwgY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSk7CisgICAgSFRNTEVsZW1lbnRFcXVpdmFsZW50KENT
U1Byb3BlcnR5SUQsIENTU1ZhbHVlSUQgcHJpbWl0aXZlVmFsdWUsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUpOwogICAgIGNvbnN0IENTU1Byb3BlcnR5SUQgbV9wcm9wZXJ0eUlEOwogICAg
IGNvbnN0IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9wcmltaXRpdmVWYWx1ZTsKICAgICBj
b25zdCBRdWFsaWZpZWROYW1lKiBtX3RhZ05hbWU7IC8vIFdlIGNhbiBzdG9yZSBhIHBvaW50ZXIg
YmVjYXVzZSBIVE1MIHRhZyBuYW1lcyBhcmUgY29uc3QgZ2xvYmFsLgpAQCAtMTgyLDcgKzE4Miw3
IEBAIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6SFRNTEVsZW1lbnRFcXVpdmFsZW50KENTU1Byb3Bl
cnR5SUQgaWQsIGNvbnN0IFF1YWxpZmllZE5hCiB7CiB9CiAKLUhUTUxFbGVtZW50RXF1aXZhbGVu
dDo6SFRNTEVsZW1lbnRFcXVpdmFsZW50KENTU1Byb3BlcnR5SUQgaWQsIGludCBwcmltaXRpdmVW
YWx1ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSkKK0hUTUxFbGVtZW50RXF1aXZhbGVu
dDo6SFRNTEVsZW1lbnRFcXVpdmFsZW50KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlSUQgcHJp
bWl0aXZlVmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCiAgICAgOiBtX3Byb3Bl
cnR5SUQoaWQpCiAgICAgLCBtX3ByaW1pdGl2ZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGVJZGVudGlmaWVyKHByaW1pdGl2ZVZhbHVlKSkKICAgICAsIG1fdGFnTmFtZSgmdGFnTmFtZSkK
QEAgLTE5Myw3ICsxOTMsNyBAQCBIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OkhUTUxFbGVtZW50RXF1
aXZhbGVudChDU1NQcm9wZXJ0eUlEIGlkLCBpbnQgcHJpbWl0aXZlVmFsdQogYm9vbCBIVE1MRWxl
bWVudEVxdWl2YWxlbnQ6OnZhbHVlSXNQcmVzZW50SW5TdHlsZShFbGVtZW50KiBlbGVtZW50LCBT
dHlsZVByb3BlcnR5U2V0KiBzdHlsZSkgY29uc3QKIHsKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZh
bHVlID0gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUobV9wcm9wZXJ0eUlEKTsKLSAgICByZXR1
cm4gbWF0Y2hlcyhlbGVtZW50KSAmJiB2YWx1ZSAmJiB2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgp
ICYmIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUuZ2V0KCkpLT5nZXRJZGVu
dCgpID09IG1fcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCk7CisgICAgcmV0dXJuIG1hdGNoZXMo
ZWxlbWVudCkgJiYgdmFsdWUgJiYgdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBzdGF0aWNf
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlLmdldCgpKS0+Z2V0VmFsdWVJRCgpID09IG1f
cHJpbWl0aXZlVmFsdWUtPmdldFZhbHVlSUQoKTsKIH0KIAogdm9pZCBIVE1MRWxlbWVudEVxdWl2
YWxlbnQ6OmFkZFRvU3R5bGUoRWxlbWVudCosIEVkaXRpbmdTdHlsZSogc3R5bGUpIGNvbnN0CkBA
IC0yMDMsNyArMjAzLDcgQEAgdm9pZCBIVE1MRWxlbWVudEVxdWl2YWxlbnQ6OmFkZFRvU3R5bGUo
RWxlbWVudCosIEVkaXRpbmdTdHlsZSogc3R5bGUpIGNvbnN0CiAKIGNsYXNzIEhUTUxUZXh0RGVj
b3JhdGlvbkVxdWl2YWxlbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnRFcXVpdmFsZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxIVE1MRWxlbWVudEVxdWl2YWxlbnQ+IGNyZWF0ZShp
bnQgcHJpbWl0aXZlVmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCisgICAgc3Rh
dGljIFBhc3NPd25QdHI8SFRNTEVsZW1lbnRFcXVpdmFsZW50PiBjcmVhdGUoQ1NTVmFsdWVJRCBw
cmltaXRpdmVWYWx1ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSkKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgSFRNTFRleHREZWNvcmF0aW9uRXF1aXZhbGVudChwcmlt
aXRpdmVWYWx1ZSwgdGFnTmFtZSkpOwogICAgIH0KQEAgLTIxMSwxMCArMjExLDEwIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVJc1ByZXNlbnRJblN0eWxlKEVsZW1lbnQqLCBTdHls
ZVByb3BlcnR5U2V0KikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFRleHREZWNvcmF0aW9u
RXF1aXZhbGVudChpbnQgcHJpbWl0aXZlVmFsdWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUpOworICAgIEhUTUxUZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQoQ1NTVmFsdWVJRCBwcmltaXRp
dmVWYWx1ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSk7CiB9OwogCi1IVE1MVGV4dERl
Y29yYXRpb25FcXVpdmFsZW50OjpIVE1MVGV4dERlY29yYXRpb25FcXVpdmFsZW50KGludCBwcmlt
aXRpdmVWYWx1ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSkKK0hUTUxUZXh0RGVjb3Jh
dGlvbkVxdWl2YWxlbnQ6OkhUTUxUZXh0RGVjb3JhdGlvbkVxdWl2YWxlbnQoQ1NTVmFsdWVJRCBw
cmltaXRpdmVWYWx1ZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSkKICAgICA6IEhUTUxF
bGVtZW50RXF1aXZhbGVudChDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uLCBwcmltaXRpdmVWYWx1
ZSwgdGFnTmFtZSkKICAgICAvLyBtX3Byb3BlcnR5SUQgaXMgdXNlZCBpbiBIVE1MRWxlbWVudEVx
dWl2YWxlbnQ6OmFkZFRvU3R5bGUKIHsKQEAgLTUxMiwxMyArNTEyLDEzIEBAIGJvb2wgRWRpdGlu
Z1N0eWxlOjp0ZXh0RGlyZWN0aW9uKFdyaXRpbmdEaXJlY3Rpb24mIHdyaXRpbmdEaXJlY3Rpb24p
IGNvbnN0CiAgICAgaWYgKCF1bmljb2RlQmlkaSB8fCAhdW5pY29kZUJpZGktPmlzUHJpbWl0aXZl
VmFsdWUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaW50IHVuaWNvZGVCaWRpVmFs
dWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHVuaWNvZGVCaWRpLmdldCgpKS0+
Z2V0SWRlbnQoKTsKKyAgICBDU1NWYWx1ZUlEIHVuaWNvZGVCaWRpVmFsdWUgPSBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KHVuaWNvZGVCaWRpLmdldCgpKS0+Z2V0VmFsdWVJRCgpOwog
ICAgIGlmICh1bmljb2RlQmlkaVZhbHVlID09IENTU1ZhbHVlRW1iZWQpIHsKICAgICAgICAgUmVm
UHRyPENTU1ZhbHVlPiBkaXJlY3Rpb24gPSBtX211dGFibGVTdHlsZS0+Z2V0UHJvcGVydHlDU1NW
YWx1ZShDU1NQcm9wZXJ0eURpcmVjdGlvbik7CiAgICAgICAgIGlmICghZGlyZWN0aW9uIHx8ICFk
aXJlY3Rpb24tPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgICAgICB3cml0aW5nRGlyZWN0aW9uID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWUqPihkaXJlY3Rpb24uZ2V0KCkpLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTHRyID8gTGVmdFRv
UmlnaHRXcml0aW5nRGlyZWN0aW9uIDogUmlnaHRUb0xlZnRXcml0aW5nRGlyZWN0aW9uOworICAg
ICAgICB3cml0aW5nRGlyZWN0aW9uID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihk
aXJlY3Rpb24uZ2V0KCkpLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVMdHIgPyBMZWZ0VG9SaWdo
dFdyaXRpbmdEaXJlY3Rpb24gOiBSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb247CiAKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtOTM5LDkgKzkzOSw5IEBAIHZvaWQgRWRpdGluZ1N0
eWxlOjpwcmVwYXJlVG9BcHBseUF0KGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbiwgU2hvdWxkUHJl
c2VydmVXcml0CiAgICAgICAgIG1fbXV0YWJsZVN0eWxlLT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUJhY2tncm91bmRDb2xvcik7CiAKICAgICBpZiAodW5pY29kZUJpZGkgJiYgdW5pY29kZUJp
ZGktPmlzUHJpbWl0aXZlVmFsdWUoKSkgewotICAgICAgICBtX211dGFibGVTdHlsZS0+c2V0UHJv
cGVydHkoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgc3RhdGljX2Nhc3Q8Q1NTVmFsdWVJRD4oc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih1bmljb2RlQmlkaS5nZXQoKSktPmdldElkZW50
KCkpKTsKKyAgICAgICAgbV9tdXRhYmxlU3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5VW5p
Y29kZUJpZGksIHN0YXRpY19jYXN0PENTU1ZhbHVlSUQ+KHN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4odW5pY29kZUJpZGkuZ2V0KCkpLT5nZXRWYWx1ZUlEKCkpKTsKICAgICAgICAgaWYg
KGRpcmVjdGlvbiAmJiBkaXJlY3Rpb24tPmlzUHJpbWl0aXZlVmFsdWUoKSkKLSAgICAgICAgICAg
IG1fbXV0YWJsZVN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgc3RhdGlj
X2Nhc3Q8Q1NTVmFsdWVJRD4oc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihkaXJlY3Rp
b24uZ2V0KCkpLT5nZXRJZGVudCgpKSk7CisgICAgICAgICAgICBtX211dGFibGVTdHlsZS0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24sIHN0YXRpY19jYXN0PENTU1ZhbHVlSUQ+KHN0
YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oZGlyZWN0aW9uLmdldCgpKS0+Z2V0VmFsdWVJ
RCgpKSk7CiAgICAgfQogfQogCkBAIC0xMjYxLDcgKzEyNjEsNyBAQCBXcml0aW5nRGlyZWN0aW9u
IEVkaXRpbmdTdHlsZTo6dGV4dERpcmVjdGlvbkZvclNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJgogICAgICAgICAgICAgaWYgKCF1bmljb2RlQmlkaSB8fCAhdW5pY29kZUJpZGktPmlz
UHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAg
ICAgaW50IHVuaWNvZGVCaWRpVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KHVuaWNvZGVCaWRpLmdldCgpKS0+Z2V0SWRlbnQoKTsKKyAgICAgICAgICAgIENTU1ZhbHVlSUQg
dW5pY29kZUJpZGlWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odW5pY29k
ZUJpZGkuZ2V0KCkpLT5nZXRWYWx1ZUlEKCk7CiAgICAgICAgICAgICBpZiAodW5pY29kZUJpZGlW
YWx1ZSA9PSBDU1NWYWx1ZUVtYmVkIHx8IHVuaWNvZGVCaWRpVmFsdWUgPT0gQ1NTVmFsdWVCaWRp
T3ZlcnJpZGUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE5hdHVyYWxXcml0aW5nRGlyZWN0aW9u
OwogICAgICAgICB9CkBAIC0xMjkwLDcgKzEyOTAsNyBAQCBXcml0aW5nRGlyZWN0aW9uIEVkaXRp
bmdTdHlsZTo6dGV4dERpcmVjdGlvbkZvclNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JgogICAgICAgICBpZiAoIXVuaWNvZGVCaWRpIHx8ICF1bmljb2RlQmlkaS0+aXNQcmltaXRpdmVW
YWx1ZSgpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaW50IHVuaWNvZGVCaWRp
VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHVuaWNvZGVCaWRpLmdldCgp
KS0+Z2V0SWRlbnQoKTsKKyAgICAgICAgQ1NTVmFsdWVJRCB1bmljb2RlQmlkaVZhbHVlID0gc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih1bmljb2RlQmlkaS5nZXQoKSktPmdldFZhbHVl
SUQoKTsKICAgICAgICAgaWYgKHVuaWNvZGVCaWRpVmFsdWUgPT0gQ1NTVmFsdWVOb3JtYWwpCiAg
ICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMTMwMiw3ICsxMzAyLDcgQEAgV3JpdGluZ0RpcmVj
dGlvbiBFZGl0aW5nU3R5bGU6OnRleHREaXJlY3Rpb25Gb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYKICAgICAgICAgaWYgKCFkaXJlY3Rpb24gfHwgIWRpcmVjdGlvbi0+aXNQcmlt
aXRpdmVWYWx1ZSgpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaW50IGRpcmVj
dGlvblZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihkaXJlY3Rpb24uZ2V0
KCkpLT5nZXRJZGVudCgpOworICAgICAgICBDU1NWYWx1ZUlEIGRpcmVjdGlvblZhbHVlID0gc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihkaXJlY3Rpb24uZ2V0KCkpLT5nZXRWYWx1ZUlE
KCk7CiAgICAgICAgIGlmIChkaXJlY3Rpb25WYWx1ZSAhPSBDU1NWYWx1ZUx0ciAmJiBkaXJlY3Rp
b25WYWx1ZSAhPSBDU1NWYWx1ZVJ0bCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xNDc0
LDcgKzE0NzQsNyBAQCBzdGF0aWMgYm9vbCBmb250V2VpZ2h0SXNCb2xkKENTU1ZhbHVlKiBmb250
V2VpZ2h0KQogCiAgICAgLy8gQmVjYXVzZSBiIHRhZyBjYW4gb25seSBib2xkIHRleHQsIHRoZXJl
IGFyZSBvbmx5IHR3byBzdGF0ZXMgaW4gcGxhaW4gaHRtbDogYm9sZCBhbmQgbm90IGJvbGQuCiAg
ICAgLy8gQ29sbGFwc2UgYWxsIG90aGVyIHZhbHVlcyB0byBlaXRoZXIgb25lIG9mIHRoZXNlIHR3
byBzdGF0ZXMgZm9yIGVkaXRpbmcgcHVycG9zZXMuCi0gICAgc3dpdGNoIChzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KGZvbnRXZWlnaHQpLT5nZXRJZGVudCgpKSB7CisgICAgc3dpdGNo
IChzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGZvbnRXZWlnaHQpLT5nZXRWYWx1ZUlE
KCkpIHsKICAgICAgICAgY2FzZSBDU1NWYWx1ZTEwMDoKICAgICAgICAgY2FzZSBDU1NWYWx1ZTIw
MDoKICAgICAgICAgY2FzZSBDU1NWYWx1ZTMwMDoKQEAgLTE0ODgsNiArMTQ4OCw4IEBAIHN0YXRp
YyBib29sIGZvbnRXZWlnaHRJc0JvbGQoQ1NTVmFsdWUqIGZvbnRXZWlnaHQpCiAgICAgICAgIGNh
c2UgQ1NTVmFsdWU4MDA6CiAgICAgICAgIGNhc2UgQ1NTVmFsdWU5MDA6CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOwogICAgIH0K
IAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBGb3IgQ1NTVmFsdWVCb2xkZXIgYW5kIENT
U1ZhbHVlTGlnaHRlcgpAQCAtMTU1Miw4ICsxNTU0LDggQEAgaW50IGxlZ2FjeUZvbnRTaXplRnJv
bUNTU1ZhbHVlKERvY3VtZW50KiBkb2N1bWVudCwgQ1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlLCBi
b28KICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgaWYgKENTU1ZhbHVlWFNtYWxsIDw9
IHZhbHVlLT5nZXRJZGVudCgpICYmIHZhbHVlLT5nZXRJZGVudCgpIDw9IENTU1ZhbHVlV2Via2l0
WHh4TGFyZ2UpCi0gICAgICAgIHJldHVybiB2YWx1ZS0+Z2V0SWRlbnQoKSAtIENTU1ZhbHVlWFNt
YWxsICsgMTsKKyAgICBpZiAoQ1NTVmFsdWVYU21hbGwgPD0gdmFsdWUtPmdldFZhbHVlSUQoKSAm
JiB2YWx1ZS0+Z2V0VmFsdWVJRCgpIDw9IENTU1ZhbHVlV2Via2l0WHh4TGFyZ2UpCisgICAgICAg
IHJldHVybiB2YWx1ZS0+Z2V0VmFsdWVJRCgpIC0gQ1NTVmFsdWVYU21hbGwgKyAxOwogCiAgICAg
cmV0dXJuIDA7CiB9CkBAIC0xNTY3LDcgKzE1NjksNyBAQCBib29sIGlzVHJhbnNwYXJlbnRDb2xv
clZhbHVlKENTU1ZhbHVlKiBjc3NWYWx1ZSkKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogdmFsdWUg
PSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGNzc1ZhbHVlKTsgICAgCiAgICAgaWYg
KHZhbHVlLT5pc1JHQkNvbG9yKCkpCiAgICAgICAgIHJldHVybiAhYWxwaGFDaGFubmVsKHZhbHVl
LT5nZXRSR0JBMzJWYWx1ZSgpKTsgICAgCi0gICAgcmV0dXJuIHZhbHVlLT5nZXRJZGVudCgpID09
IENTU1ZhbHVlVHJhbnNwYXJlbnQ7CisgICAgcmV0dXJuIHZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0g
Q1NTVmFsdWVUcmFuc3BhcmVudDsKIH0KIAogYm9vbCBoYXNUcmFuc3BhcmVudEJhY2tncm91bmRD
b2xvcihTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ1N0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdT
dHlsZS5oCmluZGV4IDk0OGNjZGYyZjZiYzY1ZjBiM2VkOTc4MDkzYjRhMGQxZDk5YTQ4ZTQuLjQ1
YzRlZDAwMzNmZmRmZDJjMjc3NWMxZDVmYTJkZjFjZjkxYTJiMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nU3R5bGUuaApAQCAtMzMsNiArMzMsNyBAQAogI2RlZmluZSBFZGl0aW5nU3R5
bGVfaAogCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkNTU1ZhbHVl
S2V5d29yZHMuaCIKICNpbmNsdWRlICJXcml0aW5nRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YXJrdXAuY3BwCmluZGV4IDU5ZDM0ZmVjOTY3ZmFlYTRmYjgwZjEzMjU0NmI2NDQyZjFiOTI3MDku
LjBjYzAwZGZhNzJlMjJmOGQ1OGFlNGY1YTgyYWQwYTFhZTI4NTM2ZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hcmt1cC5jcHAKQEAgLTQ3Miw3ICs0NzIsNyBAQCBzdGF0aWMgYm9vbCBwcm9wZXJ0eU1p
c3NpbmdPckVxdWFsVG9Ob25lKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBDU1NQcm9wZXJ0eUlE
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZSo+KHZhbHVlLmdldCgpKS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmU7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUuZ2V0KCkpLT5n
ZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVOb25lOwogfQogCiBzdGF0aWMgYm9vbCBuZWVkSW50ZXJj
aGFuZ2VOZXdsaW5lQWZ0ZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9SZW5kZXJUaGVtZUJsYWNrQmVycnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9SZW5kZXJUaGVtZUJsYWNr
QmVycnkuY3BwCmluZGV4IGQ3MmNlZmU3YzNjOGQzMTI4ZWE1NmJkZDRlMThkZWE2NjAyZjdlY2Mu
LjFlMWE1OThiMTAwYmY4ZDBiZjM2YzA0NTlkMmM4MGI1MzAxNWQ0ZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUmVuZGVyVGhlbWVCbGFja0JlcnJ5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1JlbmRlclRoZW1lQmxh
Y2tCZXJyeS5jcHAKQEAgLTI1OSwxMiArMjU5LDEyIEBAIGRvdWJsZSBSZW5kZXJUaGVtZUJsYWNr
QmVycnk6OmNhcmV0QmxpbmtJbnRlcnZhbCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7IC8vIFR1cm4g
b2ZmIGNhcmV0IGJsaW5raW5nLgogfQogCi12b2lkIFJlbmRlclRoZW1lQmxhY2tCZXJyeTo6c3lz
dGVtRm9udChpbnQgcHJvcElkLCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29u
c3QKK3ZvaWQgUmVuZGVyVGhlbWVCbGFja0JlcnJ5OjpzeXN0ZW1Gb250KENTU1ZhbHVlSUQgdmFs
dWVJRCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7CiAgICAgZmxv
YXQgZm9udFNpemUgPSBkZWZhdWx0Rm9udFNpemU7CiAKICAgICAvLyBCb3RoIENTU1ZhbHVlV2Vi
a2l0Q29udHJvbCBhbmQgQ1NTVmFsdWVXZWJraXRTbWFsbENvbnRyb2wgc2hvdWxkIHVzZSBkZWZh
dWx0IGZvbnQgc2l6ZSB3aGljaCBsb29rcyBiZXR0ZXIgb24gdGhlIGNvbnRyb2xzLgotICAgIGlm
IChwcm9wSWQgPT0gQ1NTVmFsdWVXZWJraXRNaW5pQ29udHJvbCkgeworICAgIGlmICh2YWx1ZUlE
ID09IENTU1ZhbHVlV2Via2l0TWluaUNvbnRyb2wpIHsKICAgICAgICAgLy8gV2h5IDIgcG9pbnRz
IHNtYWxsZXI/IEJlY2F1c2UgdGhhdCdzIHdoYXQgR2Vja28gZG9lcy4gTm90ZSB0aGF0IHdlCiAg
ICAgICAgIC8vIGFyZSBhc3N1bWluZyBhIDk2ZHBpIHNjcmVlbiwgd2hpY2ggaXMgdGhlIGRlZmF1
bHQgdmFsdWUgd2UgdXNlIG9uIFdpbmRvd3MuCiAgICAgICAgIHN0YXRpYyBjb25zdCBmbG9hdCBw
b2ludHNQZXJJbmNoID0gNzIuMGY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ibGFja2JlcnJ5L1JlbmRlclRoZW1lQmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYmxhY2tiZXJyeS9SZW5kZXJUaGVtZUJsYWNrQmVycnkuaAppbmRleCA2ZjlhZGI3N2Uw
YWJlYTg1YjIxNTk3OTZkYjZmODIxNDA4YzBmMWQwLi5mYWVhODk1NjAzY2U4ZDZjMzg1Yzc4ZjMy
MmRmYTFjODhiYjU1NGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFj
a2JlcnJ5L1JlbmRlclRoZW1lQmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2JsYWNrYmVycnkvUmVuZGVyVGhlbWVCbGFja0JlcnJ5LmgKQEAgLTQxLDcgKzQxLDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBkb3VibGUgY2FyZXRCbGlua0ludGVydmFsKCkgY29uc3Q7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQgY3NzVmFsdWVJZCwgRm9udERlc2Ny
aXB0aW9uJikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoQ1NTVmFsdWVJRCwg
Rm9udERlc2NyaXB0aW9uJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHBhaW50Q2hlY2tib3go
UmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRDaGVja2JveFNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgcGFpbnRSYWRpbyhSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVu
ZGVyVGhlbWVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1l
RWZsLmNwcAppbmRleCBmM2IzMTYyZjNhYmQ5OWQwOGI1MTljMjhhYmEzOTU1YWUxMGQxNjMyLi5i
MjJiZjdjZjE5ZGYwOTYzNWQwYmY1YjE1ZmFhZTQ5NDYzZjZlMTNhIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKQEAgLTEwMjIsNyArMTAyMiw3
IEBAIHZvaWQgUmVuZGVyVGhlbWVFZmw6OnNldERlZmF1bHRGb250U2l6ZShpbnQgc2l6ZSkKICAg
ICBkZWZhdWx0Rm9udFNpemUgPSBzaXplOwogfQogCi12b2lkIFJlbmRlclRoZW1lRWZsOjpzeXN0
ZW1Gb250KGludCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit2b2lk
IFJlbmRlclRoZW1lRWZsOjpzeXN0ZW1Gb250KENTU1ZhbHVlSUQsIEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uKSBjb25zdAogewogICAgIC8vIEl0IHdhcyBjYWxsZWQgYnkgUmVuZGVy
RW1iZWRkZWRPYmplY3Q6OnBhaW50UmVwbGFjZWQgdG8gcmVuZGVyIGFsdGVybmF0aXZlIHN0cmlu
Zy4KICAgICAvLyBUbyBhdm9pZCBjYWlyb19lcnJvciB3aGlsZSByZW5kZXJpbmcsIGZvbnREZXNj
cmlwdGlvbiBzaG91bGQgYmUgcGFzc2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
UmVuZGVyVGhlbWVFZmwuaAppbmRleCBmODgyNjdjMmE1MTM5YmFjYmRkZWY3MGE4MDQ1M2IyMTI4
ZmU1MDg5Li5mZWEwMjY5MzQ0MTAyMTUxYTc2NzVkYTM1ODg4YmNjYWQ3MmIzN2NhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaApAQCAtMTE4LDcgKzEx
OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkanVzdFNpemVDb25zdHJhaW50cyhSZW5kZXJTdHls
ZSosIEZvcm1UeXBlKSBjb25zdDsKIAogICAgIC8vIFN5c3RlbSBmb250cy4KLSAgICB2aXJ0dWFs
IHZvaWQgc3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChDU1NWYWx1ZUlELCBGb250RGVzY3JpcHRpb24mKSBj
b25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RDaGVja2JveFN0eWxlKFN0eWxlUmVzb2x2
ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRDaGVja2JveChSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVH
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcApp
bmRleCA2MjlhODRmMWJkYjU4YmE3MWVlNzI2MTAxZDhjNzEzOWQ5MmQzNDMxLi5hYTI3NTE4NWE3
YWZjZDU4YjFhMTdlYTU4NTNlN2QwMTkyYmNiNDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKQEAgLTQzNyw3ICs0MzcsNyBAQCBkb3VibGUg
UmVuZGVyVGhlbWVHdGs6OmdldFNjcmVlbkRQSSgpCiAgICAgcmV0dXJuIGRwaTsKIH0KIAotdm9p
ZCBSZW5kZXJUaGVtZUd0azo6c3lzdGVtRm9udChpbnQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERl
c2NyaXB0aW9uKSBjb25zdAordm9pZCBSZW5kZXJUaGVtZUd0azo6c3lzdGVtRm9udChDU1NWYWx1
ZUlELCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKIHsKICAgICBHdGtT
ZXR0aW5ncyogc2V0dGluZ3MgPSBndGtfc2V0dGluZ3NfZ2V0X2RlZmF1bHQoKTsKICAgICBpZiAo
IXNldHRpbmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRl
clRoZW1lR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsu
aAppbmRleCA0YTU4MDgwMTU3OWYxZjI0ZjBjNzZlODRlYTYxZGQzN2QzN2M3OTYyLi5hOGM5NzM1
YzcwNzM1MzZiM2EyMjkyZTg2MDRhNDc2ZTcyYjU3M2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaApAQCAtNzksOCArNzksOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCk7CiAKICAgICAvLyBTeXN0
ZW0gZm9udHMgYW5kIGNvbG9ycy4KLSAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQgcHJv
cElkLCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKLSAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNv
bG9yKGludCBjc3NWYWx1ZUlkKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChD
U1NWYWx1ZUlELCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHN5
c3RlbUNvbG9yKENTU1ZhbHVlSUQpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHBvcHNNZW51
QnlTcGFjZU9yUmV0dXJuKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwCmluZGV4IDgy
M2EwNDg1ZTdjZDE2OGU5YWE3ZTI1MWY1OGM0MTFkNjM3ODViMDcuLjk5M2ZlNDQyZjMyNzYzNWYy
NDNhZTlkNTdmOGU2ODg5M2MwNWRmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwCkBAIC03MTksNyArNzE5LDcgQEAgQ29sb3IgUmVuZGVy
VGhlbWVHdGs6OmluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0
CiAgICAgcmV0dXJuIGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCktPnRleHRbR1RLX1NUQVRF
X0FDVElWRV07CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lR3RrOjpzeXN0ZW1Db2xvcihpbnQgY3Nz
VmFsdWVJZCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lR3RrOjpzeXN0ZW1Db2xvcihDU1NWYWx1
ZUlEIGNzc1ZhbHVlSWQpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChjc3NWYWx1ZUlkKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZUJ1dHRvbnRleHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0azMuY3BwCmluZGV4IDIyNGFiM2ZhMjVkOTg5MTI5MGQ0OWI2MDZhN2U4
OGQxZWVmM2Y1YzYuLjZkOTUxNTg5MzllMDdmNjAwNTQwOWNmMmZkMzkyODE5YzFmYjkzNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCkBA
IC05ODEsNyArOTgxLDcgQEAgQ29sb3IgUmVuZGVyVGhlbWVHdGs6OmluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CiAgICAgcmV0dXJuIGdka1JHQkFDb2xvcjsK
IH0KIAotQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnN5c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBj
b25zdAorQ29sb3IgUmVuZGVyVGhlbWVHdGs6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFs
dWVJZCkgY29uc3QKIHsKICAgICBHZGtSR0JBIGdka1JHQkFDb2xvcjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAppbmRleCA1NWI3MmIwMDY2YjUwYTA2
MWJlYWU1NzZiMzRkNjAwN2Y0OWIyMGVjLi45YjBlMzQzNzRiZWEzYjcxNjdhNmJlMjdlZDg4MmY5
Y2U3YWNkY2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJU
aGVtZVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0
LmNwcApAQCAtMjU2LDEyICsyNTYsMTIgQEAgQ29sb3IgUmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1G
b2N1c1JpbmdDb2xvcigpIGNvbnN0CiAgICAgcmV0dXJuIGNvbG9yUGFsZXR0ZSgpLmJydXNoKFFQ
YWxldHRlOjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQpLmNvbG9yKCk7CiB9CiAKLXZvaWQg
UmVuZGVyVGhlbWVRdDo6c3lzdGVtRm9udChpbnQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0Cit2
b2lkIFJlbmRlclRoZW1lUXQ6OnN5c3RlbUZvbnQoQ1NTVmFsdWVJRCwgRm9udERlc2NyaXB0aW9u
JikgY29uc3QKIHsKICAgICAvLyBuby1vcAogfQogCi1Db2xvciBSZW5kZXJUaGVtZVF0OjpzeXN0
ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lUXQ6OnN5c3Rl
bUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCkgY29uc3QKIHsKICAgICBRUGFsZXR0ZSBwYWwg
PSBjb2xvclBhbGV0dGUoKTsKICAgICBzd2l0Y2ggKGNzc1ZhbHVlSWQpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuaAppbmRleCBmMTZiNTBmMzNkMjIyZDIyNjkx
YWY2MWNlZGY2MTY1YWJhZDI1MzViLi4xYjRiNWIzMjZiZDNmMzhiYWJlMjg3NGI2YWEzNTRjZDAw
MmQ3YTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVt
ZVF0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oCkBA
IC03Niw4ICs3Niw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1Gb2N1
c1JpbmdDb2xvcigpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoaW50IHBy
b3BJZCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBzeXN0ZW1D
b2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQo
Q1NTVmFsdWVJRCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBz
eXN0ZW1Db2xvcihDU1NWYWx1ZUlEKSBjb25zdDsKIAogICAgIHZpcnR1YWwgaW50IG1pbmltdW1N
ZW51TGlzdFNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggMDJjYTFhNWM1ZTEwYzJiZWY0NWNmZjFiODRkNjJmMGY5
MzA1MmVjYy4uYTY2OWZiZmYxY2NiNDYzMTJiNTM0ZTFkZTY3NTAyMmI5NGFhZTA1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC0xMTI3LDcgKzExMjcsNyBA
QCB2b2lkIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpCiAgICAgUGFnZTo6
dXBkYXRlU3R5bGVGb3JBbGxQYWdlc0FmdGVyR2xvYmFsQ2hhbmdlSW5FbnZpcm9ubWVudCgpOwog
fQogCi1Db2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0
CitDb2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkKSBj
b25zdAogewogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewogICAgIGNhc2UgQ1NTVmFsdWVBY3Rp
dmVib3JkZXI6CkBAIC0xMTg4LDYgKzExODgsOCBAQCBDb2xvciBSZW5kZXJUaGVtZTo6c3lzdGVt
Q29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0CiAgICAgICAgIHJldHVybiAweEZGQ0NDQ0NDOwog
ICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3d0ZXh0OgogICAgICAgICByZXR1cm4gMHhGRjAwMDAwMDsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIENvbG9yKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IGI2NWYxMjFlNDcz
MmNmYzFlMmRlMTFiM2E3MGNiNTQ1Zjc1MmQyY2YuLmQzYjkyYjJiMTUzZGZmNWJmODcxMDM5Njlm
ZTQ2MzFlMDk3MzliNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBA
IC0xNjYsOCArMTY2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIGNhcmV0QmxpbmtJ
bnRlcnZhbCgpIGNvbnN0IHsgcmV0dXJuIDAuNTsgfQogCiAgICAgLy8gU3lzdGVtIGZvbnRzIGFu
ZCBjb2xvcnMgZm9yIENTUy4KLSAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQgY3NzVmFs
dWVJZCwgRm9udERlc2NyaXB0aW9uJikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgQ29sb3Igc3lz
dGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzeXN0ZW1G
b250KENTU1ZhbHVlSUQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQpIGNvbnN0OwogCiAgICAgdmlydHVhbCBpbnQg
bWluaW11bU1lbnVMaXN0U2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0IHsgcmV0dXJuIDA7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCBlYTQ4ZmQ0MTI5
NjNlZjg0YjM3NWJkZmY3MDhhY2IzN2NkMWNhNThlLi5hM2NlZmVlN2VhNjljMmE2N2FhNGNkNTdl
NzY3YzdlYTBkYjVjMDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3Jt
Q29sb3JzRGlkQ2hhbmdlKCk7CiAKICAgICAvLyBTeXN0ZW0gZm9udHMuCi0gICAgdmlydHVhbCB2
b2lkIHN5c3RlbUZvbnQoaW50IGNzc1ZhbHVlSWQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0Owor
ICAgIHZpcnR1YWwgdm9pZCBzeXN0ZW1Gb250KENTU1ZhbHVlSUQsIEZvbnREZXNjcmlwdGlvbiYp
IGNvbnN0OwogCiAgICAgdmlydHVhbCBpbnQgbWluaW11bU1lbnVMaXN0U2l6ZShSZW5kZXJTdHls
ZSopIGNvbnN0OwogCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGRvdWJs
ZSBhbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzKikgY29uc3Q7
CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgQ29sb3Igc3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQp
IGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCkgY29uc3Q7
CiAgICAgLy8gQ29udHJvbHMgY29sb3IgdmFsdWVzIHJldHVybmVkIGZyb20gcGxhdGZvcm1Gb2N1
c1JpbmdDb2xvcigpLiBzeXN0ZW1Db2xvcigpIHdpbGwgYmUgdXNlZCB3aGVuIGZhbHNlLgogICAg
IHZpcnR1YWwgYm9vbCB1c2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcigpIGNvbnN0OwogICAgIC8v
IEEgdmlldyBhc3NvY2lhdGVkIHRvIHRoZSBjb250YWluZWQgZG9jdW1lbnQuIFN1YmNsYXNzZXMg
bWF5IG5vdCBoYXZlIHN1Y2ggYSB2aWV3IGFuZCByZXR1cm4gYSBmYWtlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDYwMzNkNGM2OTE5NzA2MmM2ZTlj
OTUxNDk1OTEwNmNhNDFmZTc5YjIuLjQxMjkyZTRkYmI2MTllNTVlOTBiOGY3N2NkNjVjY2VlMTM3
Mzc2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAg
LTU5OCw3ICs1OTgsNyBAQCBzdGF0aWMgRm9udFdlaWdodCB0b0ZvbnRXZWlnaHQoTlNJbnRlZ2Vy
IGFwcEtpdEZvbnRXZWlnaHQpCiAgICAgcmV0dXJuIGZvbnRXZWlnaHRzW2FwcEtpdEZvbnRXZWln
aHQgLSAxXTsKIH0KIAotdm9pZCBSZW5kZXJUaGVtZU1hYzo6c3lzdGVtRm9udChpbnQgY3NzVmFs
dWVJZCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit2b2lkIFJlbmRl
clRoZW1lTWFjOjpzeXN0ZW1Gb250KENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm9udERlc2NyaXB0
aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChG
b250RGVzY3JpcHRpb24sIHN5c3RlbUZvbnQsICgpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEZvbnREZXNjcmlwdGlvbiwgc21hbGxTeXN0ZW1Gb250LCAoKSk7CkBAIC03MzMsNyArNzMzLDcg
QEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKQogICAgIFJl
bmRlclRoZW1lOjpwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpOwogfQogCi1Db2xvciBSZW5kZXJU
aGVtZU1hYzo6c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0CitDb2xvciBSZW5kZXJU
aGVtZU1hYzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkKSBjb25zdAogewogICAg
IHsKICAgICAgICAgSGFzaE1hcDxpbnQsIFJHQkEzMj46Oml0ZXJhdG9yIGl0ID0gbV9zeXN0ZW1D
b2xvckNhY2hlLmZpbmQoY3NzVmFsdWVJZCk7CkBAIC03NDMsMTAxICs3NDMsMTAzIEBAIENvbG9y
IFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3QKIAogICAg
IENvbG9yIGNvbG9yOwogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewotICAgICAgICBjYXNlIENT
U1ZhbHVlQWN0aXZlYm9yZGVyOgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRv
Q29sb3IoW05TQ29sb3Iga2V5Ym9hcmRGb2N1c0luZGljYXRvckNvbG9yXSk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUFjdGl2ZWNhcHRpb246Ci0gICAgICAgICAg
ICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciB3aW5kb3dGcmFtZVRleHRD
b2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBcHB3b3Jr
c3BhY2U6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xv
ciBoZWFkZXJDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFs
dWVCYWNrZ3JvdW5kOgotICAgICAgICAgICAgLy8gVXNlIHRoZW1lIGluZGVwZW5kZW50IGRlZmF1
bHQKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dG9uZmFjZToK
LSAgICAgICAgICAgIC8vIFdlIHVzZSB0aGlzIHZhbHVlIGluc3RlYWQgb2YgTlNDb2xvcidzIGNv
bnRyb2xDb2xvciB0byBhdm9pZCB3ZWJzaXRlIGluY29tcGF0aWJpbGl0aWVzLgotICAgICAgICAg
ICAgLy8gV2UgbWF5IHdhbnQgdG8gY2hhbmdlIHRoaXMgdG8gdXNlIHRoZSBOU0NvbG9yIGluIGZ1
dHVyZS4KLSAgICAgICAgICAgIGNvbG9yID0gMHhGRkMwQzBDMDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIENTU1ZhbHVlQnV0dG9uaGlnaGxpZ2h0OgotICAgICAgICAgICAgY29s
b3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgY29udHJvbEhpZ2hsaWdodENvbG9y
XSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbnNoYWRv
dzoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGNv
bnRyb2xTaGFkb3dDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NT
VmFsdWVCdXR0b250ZXh0OgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29s
b3IoW05TQ29sb3IgY29udHJvbFRleHRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVDYXB0aW9udGV4dDoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVy
dE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHRleHRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVHcmF5dGV4dDoKLSAgICAgICAgICAgIGNvbG9yID0gY29u
dmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGRpc2FibGVkQ29udHJvbFRleHRDb2xvcl0pOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVIaWdobGlnaHQ6Ci0gICAg
ICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBzZWxlY3RlZFRl
eHRCYWNrZ3JvdW5kQ29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENT
U1ZhbHVlSGlnaGxpZ2h0dGV4dDoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JU
b0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkVGV4dENvbG9yXSk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBDU1NWYWx1ZUluYWN0aXZlYm9yZGVyOgotICAgICAgICAgICAgY29sb3Ig
PSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgY29udHJvbEJhY2tncm91bmRDb2xvcl0p
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2ZWNhcHRp
b246Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBj
b250cm9sQmFja2dyb3VuZENvbG9yXSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUluYWN0aXZlY2FwdGlvbnRleHQ6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZl
cnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciB0ZXh0Q29sb3JdKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIENTU1ZhbHVlSW5mb2JhY2tncm91bmQ6Ci0gICAgICAgICAgICAvLyBU
aGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIE5TQ29sb3IgZm9yIHRoaXMgc28gd2UgdXNlIGEgaGFy
ZCBjb2RlZCB2YWx1ZS4KLSAgICAgICAgICAgIGNvbG9yID0gMHhGRkZCRkNDNTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlSW5mb3RleHQ6Ci0gICAgICAgICAgICBj
b2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciB0ZXh0Q29sb3JdKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlTWVudToKLSAgICAgICAgICAgIGNv
bG9yID0gbWVudUJhY2tncm91bmRDb2xvcigpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVNZW51dGV4dDoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29s
b3JUb0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkTWVudUl0ZW1UZXh0Q29sb3JdKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlU2Nyb2xsYmFyOgotICAgICAgICAgICAg
Y29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3Igc2Nyb2xsQmFyQ29sb3JdKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlVGV4dDoKLSAgICAgICAg
ICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHRleHRDb2xvcl0pOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRkYXJrc2hhZG93
OgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgY29u
dHJvbERhcmtTaGFkb3dDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVUaHJlZWRzaGFkb3c6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9y
VG9Db2xvcihbTlNDb2xvciBzaGFkb3dDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRmYWNlOgotICAgICAgICAgICAgLy8gV2UgdXNlIHRoaXMg
dmFsdWUgaW5zdGVhZCBvZiBOU0NvbG9yJ3MgY29udHJvbENvbG9yIHRvIGF2b2lkIHdlYnNpdGUg
aW5jb21wYXRpYmlsaXRpZXMuCi0gICAgICAgICAgICAvLyBXZSBtYXkgd2FudCB0byBjaGFuZ2Ug
dGhpcyB0byB1c2UgdGhlIE5TQ29sb3IgaW4gZnV0dXJlLgotICAgICAgICAgICAgY29sb3IgPSAw
eEZGQzBDMEMwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVUaHJl
ZWRoaWdobGlnaHQ6Ci0gICAgICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihb
TlNDb2xvciBoaWdobGlnaHRDb2xvcl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVUaHJlZWRsaWdodHNoYWRvdzoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVy
dE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGNvbnRyb2xMaWdodEhpZ2hsaWdodENvbG9yXSk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdEZvY3VzUmluZ0Nv
bG9yOgotICAgICAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3Ig
a2V5Ym9hcmRGb2N1c0luZGljYXRvckNvbG9yXSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZVdpbmRvdzoKLSAgICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29s
b3JUb0NvbG9yKFtOU0NvbG9yIHdpbmRvd0JhY2tncm91bmRDb2xvcl0pOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3dmcmFtZToKLSAgICAgICAgICAgIGNv
bG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHdpbmRvd0ZyYW1lQ29sb3JdKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlV2luZG93dGV4dDoKLSAg
ICAgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHdpbmRvd0Zy
YW1lVGV4dENvbG9yXSk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQWN0
aXZlYm9yZGVyOgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xv
ciBrZXlib2FyZEZvY3VzSW5kaWNhdG9yQ29sb3JdKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDU1NWYWx1ZUFjdGl2ZWNhcHRpb246CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JU
b0NvbG9yKFtOU0NvbG9yIHdpbmRvd0ZyYW1lVGV4dENvbG9yXSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ1NTVmFsdWVBcHB3b3Jrc3BhY2U6CisgICAgICAgIGNvbG9yID0gY29udmVydE5T
Q29sb3JUb0NvbG9yKFtOU0NvbG9yIGhlYWRlckNvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ1NTVmFsdWVCYWNrZ3JvdW5kOgorICAgICAgICAvLyBVc2UgdGhlbWUgaW5kZXBlbmRl
bnQgZGVmYXVsdAorICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQnV0dG9uZmFjZToK
KyAgICAgICAgLy8gV2UgdXNlIHRoaXMgdmFsdWUgaW5zdGVhZCBvZiBOU0NvbG9yJ3MgY29udHJv
bENvbG9yIHRvIGF2b2lkIHdlYnNpdGUgaW5jb21wYXRpYmlsaXRpZXMuCisgICAgICAgIC8vIFdl
IG1heSB3YW50IHRvIGNoYW5nZSB0aGlzIHRvIHVzZSB0aGUgTlNDb2xvciBpbiBmdXR1cmUuCisg
ICAgICAgIGNvbG9yID0gMHhGRkMwQzBDMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NW
YWx1ZUJ1dHRvbmhpZ2hsaWdodDoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29s
b3IoW05TQ29sb3IgY29udHJvbEhpZ2hsaWdodENvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ1NTVmFsdWVCdXR0b25zaGFkb3c6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29s
b3JUb0NvbG9yKFtOU0NvbG9yIGNvbnRyb2xTaGFkb3dDb2xvcl0pOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENTU1ZhbHVlQnV0dG9udGV4dDoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlND
b2xvclRvQ29sb3IoW05TQ29sb3IgY29udHJvbFRleHRDb2xvcl0pOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENTU1ZhbHVlQ2FwdGlvbnRleHQ6CisgICAgICAgIGNvbG9yID0gY29udmVydE5T
Q29sb3JUb0NvbG9yKFtOU0NvbG9yIHRleHRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENTU1ZhbHVlR3JheXRleHQ6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0Nv
bG9yKFtOU0NvbG9yIGRpc2FibGVkQ29udHJvbFRleHRDb2xvcl0pOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENTU1ZhbHVlSGlnaGxpZ2h0OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0Nv
bG9yVG9Db2xvcihbTlNDb2xvciBzZWxlY3RlZFRleHRCYWNrZ3JvdW5kQ29sb3JdKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUhpZ2hsaWdodHRleHQ6CisgICAgICAgIGNvbG9y
ID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkVGV4dENvbG9yXSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVJbmFjdGl2ZWJvcmRlcjoKKyAgICAgICAg
Y29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3IgY29udHJvbEJhY2tncm91bmRD
b2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlSW5hY3RpdmVjYXB0aW9u
OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBjb250cm9s
QmFja2dyb3VuZENvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVJbmFj
dGl2ZWNhcHRpb250ZXh0OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihb
TlNDb2xvciB0ZXh0Q29sb3JdKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUlu
Zm9iYWNrZ3JvdW5kOgorICAgICAgICAvLyBUaGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIE5TQ29s
b3IgZm9yIHRoaXMgc28gd2UgdXNlIGEgaGFyZCBjb2RlZCB2YWx1ZS4KKyAgICAgICAgY29sb3Ig
PSAweEZGRkJGQ0M1OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlSW5mb3RleHQ6
CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIHRleHRDb2xv
cl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlTWVudToKKyAgICAgICAgY29s
b3IgPSBtZW51QmFja2dyb3VuZENvbG9yKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NT
VmFsdWVNZW51dGV4dDoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05T
Q29sb3Igc2VsZWN0ZWRNZW51SXRlbVRleHRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENTU1ZhbHVlU2Nyb2xsYmFyOgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9D
b2xvcihbTlNDb2xvciBzY3JvbGxCYXJDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENTU1ZhbHVlVGV4dDoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05T
Q29sb3IgdGV4dENvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVUaHJl
ZWRkYXJrc2hhZG93OgorICAgICAgICBjb2xvciA9IGNvbnZlcnROU0NvbG9yVG9Db2xvcihbTlND
b2xvciBjb250cm9sRGFya1NoYWRvd0NvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q1NTVmFsdWVUaHJlZWRzaGFkb3c6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0Nv
bG9yKFtOU0NvbG9yIHNoYWRvd0NvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NT
VmFsdWVUaHJlZWRmYWNlOgorICAgICAgICAvLyBXZSB1c2UgdGhpcyB2YWx1ZSBpbnN0ZWFkIG9m
IE5TQ29sb3IncyBjb250cm9sQ29sb3IgdG8gYXZvaWQgd2Vic2l0ZSBpbmNvbXBhdGliaWxpdGll
cy4KKyAgICAgICAgLy8gV2UgbWF5IHdhbnQgdG8gY2hhbmdlIHRoaXMgdG8gdXNlIHRoZSBOU0Nv
bG9yIGluIGZ1dHVyZS4KKyAgICAgICAgY29sb3IgPSAweEZGQzBDMEMwOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENTU1ZhbHVlVGhyZWVkaGlnaGxpZ2h0OgorICAgICAgICBjb2xvciA9IGNv
bnZlcnROU0NvbG9yVG9Db2xvcihbTlNDb2xvciBoaWdobGlnaHRDb2xvcl0pOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENTU1ZhbHVlVGhyZWVkbGlnaHRzaGFkb3c6CisgICAgICAgIGNvbG9y
ID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0NvbG9yIGNvbnRyb2xMaWdodEhpZ2hsaWdodENv
bG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRGb2N1c1JpbmdD
b2xvcjoKKyAgICAgICAgY29sb3IgPSBjb252ZXJ0TlNDb2xvclRvQ29sb3IoW05TQ29sb3Iga2V5
Ym9hcmRGb2N1c0luZGljYXRvckNvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NT
VmFsdWVXaW5kb3c6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9yKFtOU0Nv
bG9yIHdpbmRvd0JhY2tncm91bmRDb2xvcl0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENT
U1ZhbHVlV2luZG93ZnJhbWU6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9y
KFtOU0NvbG9yIHdpbmRvd0ZyYW1lQ29sb3JdKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
U1NWYWx1ZVdpbmRvd3RleHQ6CisgICAgICAgIGNvbG9yID0gY29udmVydE5TQ29sb3JUb0NvbG9y
KFtOU0NvbG9yIHdpbmRvd0ZyYW1lVGV4dENvbG9yXSk7CisgICAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGlmICghY29sb3IuaXNWYWxpZCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJp
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5jcHAKaW5k
ZXggZjEyMzM2NzQ1YThhODM1YjFkNjM1NGNkYzUxZWM5ZmJkN2Y2MDIzNS4uMmFiMDE2ZDg0Mjk1
MTRlOGMwZGYwN2E4MTlhZjlhZTMxMTZlMWIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuY3BwCkBAIC0xODksNyArMTg5LDcgQEAgc3RhdGljIGZs
b2F0IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemUoTlNDb250cm9sU2l6ZSBjb250cm9sU2l6
ZSkKICAgICByZXR1cm4gc2l6ZXNbY29udHJvbFNpemVdOwogfQogCi12b2lkIFJlbmRlclRoZW1l
U2FmYXJpOjpzeXN0ZW1Gb250KGludCBwcm9wSWQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2Ny
aXB0aW9uKSBjb25zdAordm9pZCBSZW5kZXJUaGVtZVNhZmFyaTo6c3lzdGVtRm9udChDU1NWYWx1
ZUlEIHZhbHVlSUQsIEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogewog
ICAgIHN0YXRpYyBGb250RGVzY3JpcHRpb24gc3lzdGVtRm9udDsKICAgICBzdGF0aWMgRm9udERl
c2NyaXB0aW9uIHNtYWxsU3lzdGVtRm9udDsKQEAgLTIwMSw0MSArMjAxLDQxIEBAIHZvaWQgUmVu
ZGVyVGhlbWVTYWZhcmk6OnN5c3RlbUZvbnQoaW50IHByb3BJZCwgRm9udERlc2NyaXB0aW9uJiBm
b250RGVzY3JpcHRpb24pCiAKICAgICBGb250RGVzY3JpcHRpb24qIGNhY2hlZERlc2M7CiAgICAg
ZmxvYXQgZm9udFNpemUgPSAwOwotICAgIHN3aXRjaCAocHJvcElkKSB7Ci0gICAgICAgIGNhc2Ug
Q1NTVmFsdWVTbWFsbENhcHRpb246Ci0gICAgICAgICAgICBjYWNoZWREZXNjID0gJnNtYWxsU3lz
dGVtRm9udDsKLSAgICAgICAgICAgIGlmICghc21hbGxTeXN0ZW1Gb250LmlzQWJzb2x1dGVTaXpl
KCkpCi0gICAgICAgICAgICAgICAgZm9udFNpemUgPSBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xT
aXplKE5TU21hbGxDb250cm9sU2l6ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZU1lbnU6Ci0gICAgICAgICAgICBjYWNoZWREZXNjID0gJm1lbnVGb250OwotICAg
ICAgICAgICAgaWYgKCFtZW51Rm9udC5pc0Fic29sdXRlU2l6ZSgpKQotICAgICAgICAgICAgICAg
IGZvbnRTaXplID0gc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZShOU1JlZ3VsYXJDb250cm9s
U2l6ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVN0YXR1c0Jh
cjoKLSAgICAgICAgICAgIGNhY2hlZERlc2MgPSAmbGFiZWxGb250OwotICAgICAgICAgICAgaWYg
KCFsYWJlbEZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKLSAgICAgICAgICAgICAgICBmb250U2l6ZSA9
IDEwLjBmOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRN
aW5pQ29udHJvbDoKLSAgICAgICAgICAgIGNhY2hlZERlc2MgPSAmbWluaUNvbnRyb2xGb250Owot
ICAgICAgICAgICAgaWYgKCFtaW5pQ29udHJvbEZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKLSAgICAg
ICAgICAgICAgICBmb250U2l6ZSA9IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemUoTlNNaW5p
Q29udHJvbFNpemUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVX
ZWJraXRTbWFsbENvbnRyb2w6Ci0gICAgICAgICAgICBjYWNoZWREZXNjID0gJnNtYWxsQ29udHJv
bEZvbnQ7Ci0gICAgICAgICAgICBpZiAoIXNtYWxsQ29udHJvbEZvbnQuaXNBYnNvbHV0ZVNpemUo
KSkKLSAgICAgICAgICAgICAgICBmb250U2l6ZSA9IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNp
emUoTlNTbWFsbENvbnRyb2xTaXplKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IENTU1ZhbHVlV2Via2l0Q29udHJvbDoKLSAgICAgICAgICAgIGNhY2hlZERlc2MgPSAmY29udHJv
bEZvbnQ7Ci0gICAgICAgICAgICBpZiAoIWNvbnRyb2xGb250LmlzQWJzb2x1dGVTaXplKCkpCi0g
ICAgICAgICAgICAgICAgZm9udFNpemUgPSBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplKE5T
UmVndWxhckNvbnRyb2xTaXplKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgY2FjaGVkRGVzYyA9ICZzeXN0ZW1Gb250OwotICAgICAgICAgICAgaWYg
KCFzeXN0ZW1Gb250LmlzQWJzb2x1dGVTaXplKCkpCi0gICAgICAgICAgICAgICAgZm9udFNpemUg
PSAxMy4wZjsKKyAgICBzd2l0Y2ggKHZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlU21hbGxD
YXB0aW9uOgorICAgICAgICBjYWNoZWREZXNjID0gJnNtYWxsU3lzdGVtRm9udDsKKyAgICAgICAg
aWYgKCFzbWFsbFN5c3RlbUZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKKyAgICAgICAgICAgIGZvbnRT
aXplID0gc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZShOU1NtYWxsQ29udHJvbFNpemUpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlTWVudToKKyAgICAgICAgY2FjaGVkRGVz
YyA9ICZtZW51Rm9udDsKKyAgICAgICAgaWYgKCFtZW51Rm9udC5pc0Fic29sdXRlU2l6ZSgpKQor
ICAgICAgICAgICAgZm9udFNpemUgPSBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplKE5TUmVn
dWxhckNvbnRyb2xTaXplKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZVN0YXR1
c0JhcjoKKyAgICAgICAgY2FjaGVkRGVzYyA9ICZsYWJlbEZvbnQ7CisgICAgICAgIGlmICghbGFi
ZWxGb250LmlzQWJzb2x1dGVTaXplKCkpCisgICAgICAgICAgICBmb250U2l6ZSA9IDEwLjBmOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlV2Via2l0TWluaUNvbnRyb2w6CisgICAg
ICAgIGNhY2hlZERlc2MgPSAmbWluaUNvbnRyb2xGb250OworICAgICAgICBpZiAoIW1pbmlDb250
cm9sRm9udC5pc0Fic29sdXRlU2l6ZSgpKQorICAgICAgICAgICAgZm9udFNpemUgPSBzeXN0ZW1G
b250U2l6ZUZvckNvbnRyb2xTaXplKE5TTWluaUNvbnRyb2xTaXplKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdFNtYWxsQ29udHJvbDoKKyAgICAgICAgY2FjaGVkRGVz
YyA9ICZzbWFsbENvbnRyb2xGb250OworICAgICAgICBpZiAoIXNtYWxsQ29udHJvbEZvbnQuaXNB
YnNvbHV0ZVNpemUoKSkKKyAgICAgICAgICAgIGZvbnRTaXplID0gc3lzdGVtRm9udFNpemVGb3JD
b250cm9sU2l6ZShOU1NtYWxsQ29udHJvbFNpemUpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENTU1ZhbHVlV2Via2l0Q29udHJvbDoKKyAgICAgICAgY2FjaGVkRGVzYyA9ICZjb250cm9sRm9u
dDsKKyAgICAgICAgaWYgKCFjb250cm9sRm9udC5pc0Fic29sdXRlU2l6ZSgpKQorICAgICAgICAg
ICAgZm9udFNpemUgPSBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplKE5TUmVndWxhckNvbnRy
b2xTaXplKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgY2FjaGVkRGVz
YyA9ICZzeXN0ZW1Gb250OworICAgICAgICBpZiAoIXN5c3RlbUZvbnQuaXNBYnNvbHV0ZVNpemUo
KSkKKyAgICAgICAgICAgIGZvbnRTaXplID0gMTMuMGY7CiAgICAgfQogCiAgICAgaWYgKGZvbnRT
aXplKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVT
YWZhcmkuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5oCmlu
ZGV4IDhjNjIwNWRlMDFkYWVlMjExYTBiNTUzMjVjY2Y1YzEzMDAzODY2ZDkuLjQ1N2UwZDM2NThh
N2QwMjY4NDVkMjEwZGE4MTgzOWJjOGFlMmYwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZVNhZmFyaS5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKSBjb25zdDsKIAogICAgIC8vIFN5
c3RlbSBmb250cy4KLSAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250
RGVzY3JpcHRpb24mKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChDU1NWYWx1
ZUlELCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKIAogICAgIHZpcnR1YWwgaW50IG1pbmltdW1N
ZW51TGlzdFNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKaW5kZXggMjFhMWE5ZTQwMzU2MDZjYjIwZGJkMGYxODk0
YmVkZjQ1YjJkYzkzOS4uZTMzZDlhZGNjYTkwZTlhYWViYWFhZWZjN2E5ZDE5NTc1MTlmMzk0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCkBAIC0zMzcs
NyArMzM3LDcgQEAgc3RhdGljIHZvaWQgZmlsbEZvbnREZXNjcmlwdGlvbihGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbiwgTE9HRk9OVCYgbG9nRm8KICAgICBmaWxsRm9udERlc2NyaXB0
aW9uKGZvbnREZXNjcmlwdGlvbiwgbG9nRm9udCwgYWJzKGxvZ0ZvbnQubGZIZWlnaHQpKTsKIH0K
IAotdm9pZCBSZW5kZXJUaGVtZVdpbjo6c3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250RGVzY3Jp
cHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVXaW46OnN5c3Rl
bUZvbnQoQ1NTVmFsdWVJRCB2YWx1ZUlELCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlv
bikgY29uc3QKIHsKICAgICBzdGF0aWMgRm9udERlc2NyaXB0aW9uIGNhcHRpb25Gb250OwogICAg
IHN0YXRpYyBGb250RGVzY3JpcHRpb24gY29udHJvbEZvbnQ7CkBAIC0zNTcsNjUgKzM1Nyw2NSBA
QCB2b2lkIFJlbmRlclRoZW1lV2luOjpzeXN0ZW1Gb250KGludCBwcm9wSWQsIEZvbnREZXNjcmlw
dGlvbiYgZm9udERlc2NyaXB0aW9uKSBjbwogICAgICAgICA6OlN5c3RlbVBhcmFtZXRlcnNJbmZv
KFNQSV9HRVROT05DTElFTlRNRVRSSUNTLCBzaXplb2YobmNtKSwgJm5jbSwgMCk7CiAgICAgfQog
IAotICAgIHN3aXRjaCAocHJvcElkKSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVJY29uOiB7Ci0g
ICAgICAgICAgICBpZiAoIWljb25Gb250LmlzQWJzb2x1dGVTaXplKCkpIHsKKyAgICBzd2l0Y2gg
KHZhbHVlSUQpIHsKKyAgICBjYXNlIENTU1ZhbHVlSWNvbjogeworICAgICAgICBpZiAoIWljb25G
b250LmlzQWJzb2x1dGVTaXplKCkpIHsKKyAgICAgICAgICAgIExPR0ZPTlQgbG9nRm9udDsKKyAg
ICAgICAgICAgIDo6U3lzdGVtUGFyYW1ldGVyc0luZm8oU1BJX0dFVElDT05USVRMRUxPR0ZPTlQs
IHNpemVvZihsb2dGb250KSwgJmxvZ0ZvbnQsIDApOworICAgICAgICAgICAgZmlsbEZvbnREZXNj
cmlwdGlvbihpY29uRm9udCwgbG9nRm9udCk7CisgICAgICAgIH0KKyAgICAgICAgZm9udERlc2Ny
aXB0aW9uID0gaWNvbkZvbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIENTU1Zh
bHVlTWVudToKKyAgICAgICAgaWYgKCFtZW51Rm9udC5pc0Fic29sdXRlU2l6ZSgpKQorICAgICAg
ICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihtZW51Rm9udCwgbmNtLmxmTWVudUZvbnQpOworICAg
ICAgICBmb250RGVzY3JpcHRpb24gPSBtZW51Rm9udDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDU1NWYWx1ZU1lc3NhZ2VCb3g6CisgICAgICAgIGlmICghbWVzc2FnZUJveEZvbnQuaXNBYnNv
bHV0ZVNpemUoKSkKKyAgICAgICAgICAgIGZpbGxGb250RGVzY3JpcHRpb24obWVzc2FnZUJveEZv
bnQsIG5jbS5sZk1lc3NhZ2VGb250KTsKKyAgICAgICAgZm9udERlc2NyaXB0aW9uID0gbWVzc2Fn
ZUJveEZvbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVTdGF0dXNCYXI6Cisg
ICAgICAgIGlmICghc3RhdHVzQmFyRm9udC5pc0Fic29sdXRlU2l6ZSgpKQorICAgICAgICAgICAg
ZmlsbEZvbnREZXNjcmlwdGlvbihzdGF0dXNCYXJGb250LCBuY20ubGZTdGF0dXNGb250KTsKKyAg
ICAgICAgZm9udERlc2NyaXB0aW9uID0gc3RhdHVzQmFyRm9udDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDU1NWYWx1ZUNhcHRpb246CisgICAgICAgIGlmICghY2FwdGlvbkZvbnQuaXNBYnNv
bHV0ZVNpemUoKSkKKyAgICAgICAgICAgIGZpbGxGb250RGVzY3JpcHRpb24oY2FwdGlvbkZvbnQs
IG5jbS5sZkNhcHRpb25Gb250KTsKKyAgICAgICAgZm9udERlc2NyaXB0aW9uID0gY2FwdGlvbkZv
bnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVTbWFsbENhcHRpb246CisgICAg
ICAgIGlmICghc21hbGxDYXB0aW9uRm9udC5pc0Fic29sdXRlU2l6ZSgpKQorICAgICAgICAgICAg
ZmlsbEZvbnREZXNjcmlwdGlvbihzbWFsbENhcHRpb25Gb250LCBuY20ubGZTbUNhcHRpb25Gb250
KTsKKyAgICAgICAgZm9udERlc2NyaXB0aW9uID0gc21hbGxDYXB0aW9uRm9udDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdFNtYWxsQ29udHJvbDoKKyAgICBjYXNlIENT
U1ZhbHVlV2Via2l0TWluaUNvbnRyb2w6IC8vIEp1c3QgbWFwIHRvIHNtYWxsLgorICAgIGNhc2Ug
Q1NTVmFsdWVXZWJraXRDb250cm9sOiAvLyBKdXN0IG1hcCB0byBzbWFsbC4KKyAgICAgICAgaWYg
KCFjb250cm9sRm9udC5pc0Fic29sdXRlU2l6ZSgpKSB7CisgICAgICAgICAgICBIR0RJT0JKIGhH
REkgPSA6OkdldFN0b2NrT2JqZWN0KERFRkFVTFRfR1VJX0ZPTlQpOworICAgICAgICAgICAgaWYg
KGhHREkpIHsKICAgICAgICAgICAgICAgICBMT0dGT05UIGxvZ0ZvbnQ7Ci0gICAgICAgICAgICAg
ICAgOjpTeXN0ZW1QYXJhbWV0ZXJzSW5mbyhTUElfR0VUSUNPTlRJVExFTE9HRk9OVCwgc2l6ZW9m
KGxvZ0ZvbnQpLCAmbG9nRm9udCwgMCk7Ci0gICAgICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlw
dGlvbihpY29uRm9udCwgbG9nRm9udCk7CisgICAgICAgICAgICAgICAgaWYgKDo6R2V0T2JqZWN0
KGhHREksIHNpemVvZihsb2dGb250KSwgJmxvZ0ZvbnQpID4gMCkKKyAgICAgICAgICAgICAgICAg
ICAgZmlsbEZvbnREZXNjcmlwdGlvbihjb250cm9sRm9udCwgbG9nRm9udCwgZGVmYXVsdENvbnRy
b2xGb250UGl4ZWxTaXplKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvbnREZXNjcmlw
dGlvbiA9IGljb25Gb250OwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZU1lbnU6Ci0gICAgICAgICAgICBpZiAoIW1lbnVGb250LmlzQWJzb2x1dGVT
aXplKCkpCi0gICAgICAgICAgICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihtZW51Rm9udCwgbmNt
LmxmTWVudUZvbnQpOwotICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uID0gbWVudUZvbnQ7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZU1lc3NhZ2VCb3g6Ci0gICAg
ICAgICAgICBpZiAoIW1lc3NhZ2VCb3hGb250LmlzQWJzb2x1dGVTaXplKCkpCi0gICAgICAgICAg
ICAgICAgZmlsbEZvbnREZXNjcmlwdGlvbihtZXNzYWdlQm94Rm9udCwgbmNtLmxmTWVzc2FnZUZv
bnQpOwotICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uID0gbWVzc2FnZUJveEZvbnQ7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVN0YXR1c0JhcjoKLSAgICAgICAg
ICAgIGlmICghc3RhdHVzQmFyRm9udC5pc0Fic29sdXRlU2l6ZSgpKQotICAgICAgICAgICAgICAg
IGZpbGxGb250RGVzY3JpcHRpb24oc3RhdHVzQmFyRm9udCwgbmNtLmxmU3RhdHVzRm9udCk7Ci0g
ICAgICAgICAgICBmb250RGVzY3JpcHRpb24gPSBzdGF0dXNCYXJGb250OwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVDYXB0aW9uOgotICAgICAgICAgICAgaWYgKCFj
YXB0aW9uRm9udC5pc0Fic29sdXRlU2l6ZSgpKQotICAgICAgICAgICAgICAgIGZpbGxGb250RGVz
Y3JpcHRpb24oY2FwdGlvbkZvbnQsIG5jbS5sZkNhcHRpb25Gb250KTsKLSAgICAgICAgICAgIGZv
bnREZXNjcmlwdGlvbiA9IGNhcHRpb25Gb250OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVTbWFsbENhcHRpb246Ci0gICAgICAgICAgICBpZiAoIXNtYWxsQ2FwdGlv
bkZvbnQuaXNBYnNvbHV0ZVNpemUoKSkKLSAgICAgICAgICAgICAgICBmaWxsRm9udERlc2NyaXB0
aW9uKHNtYWxsQ2FwdGlvbkZvbnQsIG5jbS5sZlNtQ2FwdGlvbkZvbnQpOwotICAgICAgICAgICAg
Zm9udERlc2NyaXB0aW9uID0gc21hbGxDYXB0aW9uRm9udDsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0U21hbGxDb250cm9sOgotICAgICAgICBjYXNlIENT
U1ZhbHVlV2Via2l0TWluaUNvbnRyb2w6IC8vIEp1c3QgbWFwIHRvIHNtYWxsLgotICAgICAgICBj
YXNlIENTU1ZhbHVlV2Via2l0Q29udHJvbDogLy8gSnVzdCBtYXAgdG8gc21hbGwuCi0gICAgICAg
ICAgICBpZiAoIWNvbnRyb2xGb250LmlzQWJzb2x1dGVTaXplKCkpIHsKLSAgICAgICAgICAgICAg
ICBIR0RJT0JKIGhHREkgPSA6OkdldFN0b2NrT2JqZWN0KERFRkFVTFRfR1VJX0ZPTlQpOwotICAg
ICAgICAgICAgICAgIGlmIChoR0RJKSB7Ci0gICAgICAgICAgICAgICAgICAgIExPR0ZPTlQgbG9n
Rm9udDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKDo6R2V0T2JqZWN0KGhHREksIHNpemVvZihs
b2dGb250KSwgJmxvZ0ZvbnQpID4gMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxGb250
RGVzY3JpcHRpb24oY29udHJvbEZvbnQsIGxvZ0ZvbnQsIGRlZmF1bHRDb250cm9sRm9udFBpeGVs
U2l6ZSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9u
dERlc2NyaXB0aW9uID0gY29udHJvbEZvbnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ZGVmYXVsdDogeyAvLyBFdmVyeXRoaW5nIGVsc2UgdXNlcyB0aGUgc3RvY2sgR1VJIGZvbnQuCi0g
ICAgICAgICAgICBpZiAoIXN5c3RlbUZvbnQuaXNBYnNvbHV0ZVNpemUoKSkgewotICAgICAgICAg
ICAgICAgIEhHRElPQkogaEdESSA9IDo6R2V0U3RvY2tPYmplY3QoREVGQVVMVF9HVUlfRk9OVCk7
Ci0gICAgICAgICAgICAgICAgaWYgKGhHREkpIHsKLSAgICAgICAgICAgICAgICAgICAgTE9HRk9O
VCBsb2dGb250OwotICAgICAgICAgICAgICAgICAgICBpZiAoOjpHZXRPYmplY3QoaEdESSwgc2l6
ZW9mKGxvZ0ZvbnQpLCAmbG9nRm9udCkgPiAwKQotICAgICAgICAgICAgICAgICAgICAgICAgZmls
bEZvbnREZXNjcmlwdGlvbihzeXN0ZW1Gb250LCBsb2dGb250KTsKLSAgICAgICAgICAgICAgICB9
CisgICAgICAgIGZvbnREZXNjcmlwdGlvbiA9IGNvbnRyb2xGb250OworICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OiB7IC8vIEV2ZXJ5dGhpbmcgZWxzZSB1c2VzIHRoZSBzdG9jayBHVUkgZm9u
dC4KKyAgICAgICAgaWYgKCFzeXN0ZW1Gb250LmlzQWJzb2x1dGVTaXplKCkpIHsKKyAgICAgICAg
ICAgIEhHRElPQkogaEdESSA9IDo6R2V0U3RvY2tPYmplY3QoREVGQVVMVF9HVUlfRk9OVCk7Cisg
ICAgICAgICAgICBpZiAoaEdESSkgeworICAgICAgICAgICAgICAgIExPR0ZPTlQgbG9nRm9udDsK
KyAgICAgICAgICAgICAgICBpZiAoOjpHZXRPYmplY3QoaEdESSwgc2l6ZW9mKGxvZ0ZvbnQpLCAm
bG9nRm9udCkgPiAwKQorICAgICAgICAgICAgICAgICAgICBmaWxsRm9udERlc2NyaXB0aW9uKHN5
c3RlbUZvbnQsIGxvZ0ZvbnQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9udERlc2Ny
aXB0aW9uID0gc3lzdGVtRm9udDsKICAgICAgICAgfQorICAgICAgICBmb250RGVzY3JpcHRpb24g
PSBzeXN0ZW1Gb250OworICAgIH0KICAgICB9CiB9CiAKQEAgLTEwMzQsNDUgKzEwMzQsNDUgQEAg
Ym9vbCBSZW5kZXJUaGVtZVdpbjo6cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b24oUmVuZGVy
T2JqZWN0KiBvLCBjb25zdCBQYWludEkKIH0KIAogLy8gTWFwIGEgQ1NTVmFsdWUqIHN5c3RlbSBj
b2xvciB0byBhbiBpbmRleCB1bmRlcnN0b29kIGJ5IEdldFN5c0NvbG9yCi1zdGF0aWMgaW50IGNz
c1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgoaW50IGNzc1ZhbHVlSWQpCitzdGF0aWMgQ1NTVmFsdWVJ
RCBjc3NWYWx1ZUlkVG9TeXNDb2xvckluZGV4KGludCBjc3NWYWx1ZUlkKQogewogICAgIHN3aXRj
aCAoY3NzVmFsdWVJZCkgewotICAgICAgICBjYXNlIENTU1ZhbHVlQWN0aXZlYm9yZGVyOiByZXR1
cm4gQ09MT1JfQUNUSVZFQk9SREVSOwotICAgICAgICBjYXNlIENTU1ZhbHVlQWN0aXZlY2FwdGlv
bjogcmV0dXJuIENPTE9SX0FDVElWRUNBUFRJT047Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVBcHB3
b3Jrc3BhY2U6IHJldHVybiBDT0xPUl9BUFBXT1JLU1BBQ0U7Ci0gICAgICAgIGNhc2UgQ1NTVmFs
dWVCYWNrZ3JvdW5kOiByZXR1cm4gQ09MT1JfQkFDS0dST1VORDsKLSAgICAgICAgY2FzZSBDU1NW
YWx1ZUJ1dHRvbmZhY2U6IHJldHVybiBDT0xPUl9CVE5GQUNFOwotICAgICAgICBjYXNlIENTU1Zh
bHVlQnV0dG9uaGlnaGxpZ2h0OiByZXR1cm4gQ09MT1JfQlROSElHSExJR0hUOwotICAgICAgICBj
YXNlIENTU1ZhbHVlQnV0dG9uc2hhZG93OiByZXR1cm4gQ09MT1JfQlROU0hBRE9XOwotICAgICAg
ICBjYXNlIENTU1ZhbHVlQnV0dG9udGV4dDogcmV0dXJuIENPTE9SX0JUTlRFWFQ7Ci0gICAgICAg
IGNhc2UgQ1NTVmFsdWVDYXB0aW9udGV4dDogcmV0dXJuIENPTE9SX0NBUFRJT05URVhUOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlR3JheXRleHQ6IHJldHVybiBDT0xPUl9HUkFZVEVYVDsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZUhpZ2hsaWdodDogcmV0dXJuIENPTE9SX0hJR0hMSUdIVDsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZUhpZ2hsaWdodHRleHQ6IHJldHVybiBDT0xPUl9ISUdITElHSFRURVhU
OwotICAgICAgICBjYXNlIENTU1ZhbHVlSW5hY3RpdmVib3JkZXI6IHJldHVybiBDT0xPUl9JTkFD
VElWRUJPUkRFUjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUluYWN0aXZlY2FwdGlvbjogcmV0dXJu
IENPTE9SX0lOQUNUSVZFQ0FQVElPTjsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUluYWN0aXZlY2Fw
dGlvbnRleHQ6IHJldHVybiBDT0xPUl9JTkFDVElWRUNBUFRJT05URVhUOwotICAgICAgICBjYXNl
IENTU1ZhbHVlSW5mb2JhY2tncm91bmQ6IHJldHVybiBDT0xPUl9JTkZPQks7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVJbmZvdGV4dDogcmV0dXJuIENPTE9SX0lORk9URVhUOwotICAgICAgICBjYXNl
IENTU1ZhbHVlTWVudTogcmV0dXJuIENPTE9SX01FTlU7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVN
ZW51dGV4dDogcmV0dXJuIENPTE9SX01FTlVURVhUOwotICAgICAgICBjYXNlIENTU1ZhbHVlU2Ny
b2xsYmFyOiByZXR1cm4gQ09MT1JfU0NST0xMQkFSOwotICAgICAgICBjYXNlIENTU1ZhbHVlVGhy
ZWVkZGFya3NoYWRvdzogcmV0dXJuIENPTE9SXzNEREtTSEFET1c7Ci0gICAgICAgIGNhc2UgQ1NT
VmFsdWVUaHJlZWRmYWNlOiByZXR1cm4gQ09MT1JfM0RGQUNFOwotICAgICAgICBjYXNlIENTU1Zh
bHVlVGhyZWVkaGlnaGxpZ2h0OiByZXR1cm4gQ09MT1JfM0RISUdITElHSFQ7Ci0gICAgICAgIGNh
c2UgQ1NTVmFsdWVUaHJlZWRsaWdodHNoYWRvdzogcmV0dXJuIENPTE9SXzNETElHSFQ7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVUaHJlZWRzaGFkb3c6IHJldHVybiBDT0xPUl8zRFNIQURPVzsKLSAg
ICAgICAgY2FzZSBDU1NWYWx1ZVdpbmRvdzogcmV0dXJuIENPTE9SX1dJTkRPVzsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZVdpbmRvd2ZyYW1lOiByZXR1cm4gQ09MT1JfV0lORE9XRlJBTUU7Ci0gICAg
ICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3d0ZXh0OiByZXR1cm4gQ09MT1JfV0lORE9XVEVYVDsKLSAg
ICAgICAgZGVmYXVsdDogcmV0dXJuIC0xOyAvLyBVbnN1cHBvcnRlZCBDU1NWYWx1ZQorICAgIGNh
c2UgQ1NTVmFsdWVBY3RpdmVib3JkZXI6IHJldHVybiBDT0xPUl9BQ1RJVkVCT1JERVI7CisgICAg
Y2FzZSBDU1NWYWx1ZUFjdGl2ZWNhcHRpb246IHJldHVybiBDT0xPUl9BQ1RJVkVDQVBUSU9OOwor
ICAgIGNhc2UgQ1NTVmFsdWVBcHB3b3Jrc3BhY2U6IHJldHVybiBDT0xPUl9BUFBXT1JLU1BBQ0U7
CisgICAgY2FzZSBDU1NWYWx1ZUJhY2tncm91bmQ6IHJldHVybiBDT0xPUl9CQUNLR1JPVU5EOwor
ICAgIGNhc2UgQ1NTVmFsdWVCdXR0b25mYWNlOiByZXR1cm4gQ09MT1JfQlRORkFDRTsKKyAgICBj
YXNlIENTU1ZhbHVlQnV0dG9uaGlnaGxpZ2h0OiByZXR1cm4gQ09MT1JfQlROSElHSExJR0hUOwor
ICAgIGNhc2UgQ1NTVmFsdWVCdXR0b25zaGFkb3c6IHJldHVybiBDT0xPUl9CVE5TSEFET1c7Cisg
ICAgY2FzZSBDU1NWYWx1ZUJ1dHRvbnRleHQ6IHJldHVybiBDT0xPUl9CVE5URVhUOworICAgIGNh
c2UgQ1NTVmFsdWVDYXB0aW9udGV4dDogcmV0dXJuIENPTE9SX0NBUFRJT05URVhUOworICAgIGNh
c2UgQ1NTVmFsdWVHcmF5dGV4dDogcmV0dXJuIENPTE9SX0dSQVlURVhUOworICAgIGNhc2UgQ1NT
VmFsdWVIaWdobGlnaHQ6IHJldHVybiBDT0xPUl9ISUdITElHSFQ7CisgICAgY2FzZSBDU1NWYWx1
ZUhpZ2hsaWdodHRleHQ6IHJldHVybiBDT0xPUl9ISUdITElHSFRURVhUOworICAgIGNhc2UgQ1NT
VmFsdWVJbmFjdGl2ZWJvcmRlcjogcmV0dXJuIENPTE9SX0lOQUNUSVZFQk9SREVSOworICAgIGNh
c2UgQ1NTVmFsdWVJbmFjdGl2ZWNhcHRpb246IHJldHVybiBDT0xPUl9JTkFDVElWRUNBUFRJT047
CisgICAgY2FzZSBDU1NWYWx1ZUluYWN0aXZlY2FwdGlvbnRleHQ6IHJldHVybiBDT0xPUl9JTkFD
VElWRUNBUFRJT05URVhUOworICAgIGNhc2UgQ1NTVmFsdWVJbmZvYmFja2dyb3VuZDogcmV0dXJu
IENPTE9SX0lORk9CSzsKKyAgICBjYXNlIENTU1ZhbHVlSW5mb3RleHQ6IHJldHVybiBDT0xPUl9J
TkZPVEVYVDsKKyAgICBjYXNlIENTU1ZhbHVlTWVudTogcmV0dXJuIENPTE9SX01FTlU7CisgICAg
Y2FzZSBDU1NWYWx1ZU1lbnV0ZXh0OiByZXR1cm4gQ09MT1JfTUVOVVRFWFQ7CisgICAgY2FzZSBD
U1NWYWx1ZVNjcm9sbGJhcjogcmV0dXJuIENPTE9SX1NDUk9MTEJBUjsKKyAgICBjYXNlIENTU1Zh
bHVlVGhyZWVkZGFya3NoYWRvdzogcmV0dXJuIENPTE9SXzNEREtTSEFET1c7CisgICAgY2FzZSBD
U1NWYWx1ZVRocmVlZGZhY2U6IHJldHVybiBDT0xPUl8zREZBQ0U7CisgICAgY2FzZSBDU1NWYWx1
ZVRocmVlZGhpZ2hsaWdodDogcmV0dXJuIENPTE9SXzNESElHSExJR0hUOworICAgIGNhc2UgQ1NT
VmFsdWVUaHJlZWRsaWdodHNoYWRvdzogcmV0dXJuIENPTE9SXzNETElHSFQ7CisgICAgY2FzZSBD
U1NWYWx1ZVRocmVlZHNoYWRvdzogcmV0dXJuIENPTE9SXzNEU0hBRE9XOworICAgIGNhc2UgQ1NT
VmFsdWVXaW5kb3c6IHJldHVybiBDT0xPUl9XSU5ET1c7CisgICAgY2FzZSBDU1NWYWx1ZVdpbmRv
d2ZyYW1lOiByZXR1cm4gQ09MT1JfV0lORE9XRlJBTUU7CisgICAgY2FzZSBDU1NWYWx1ZVdpbmRv
d3RleHQ6IHJldHVybiBDT0xPUl9XSU5ET1dURVhUOworICAgIGRlZmF1bHQ6IHJldHVybiBDU1NW
YWx1ZUludmFsaWQ7IC8vIFVuc3VwcG9ydGVkIENTU1ZhbHVlCiAgICAgfQogfQogCi1Db2xvciBS
ZW5kZXJUaGVtZVdpbjo6c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0CitDb2xvciBS
ZW5kZXJUaGVtZVdpbjo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkKSBjb25zdAog
ewotICAgIGludCBzeXNDb2xvckluZGV4ID0gY3NzVmFsdWVJZFRvU3lzQ29sb3JJbmRleChjc3NW
YWx1ZUlkKTsKLSAgICBpZiAoc3lzQ29sb3JJbmRleCA9PSAtMSkKKyAgICBDU1NWYWx1ZUlEIHN5
c0NvbG9ySW5kZXggPSBjc3NWYWx1ZUlkVG9TeXNDb2xvckluZGV4KGNzc1ZhbHVlSWQpOworICAg
IGlmIChzeXNDb2xvckluZGV4ID09IENTU1ZhbHVlSW52YWxpZCkKICAgICAgICAgcmV0dXJuIFJl
bmRlclRoZW1lOjpzeXN0ZW1Db2xvcihjc3NWYWx1ZUlkKTsKIAogICAgIENPTE9SUkVGIGNvbG9y
ID0gR2V0U3lzQ29sb3Ioc3lzQ29sb3JJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZVdpbi5oCmluZGV4IDg1YmU4ZjBmMzhiZjIxZThlYTczOWIwZTdmODBlZjM3NGIy
ZWM1ZDAuLjk1MTQ1NTRmYzE2YTJmMjAxYzY4ZTdmZDI4OGExNmVkYjkwMWExZmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oCkBAIC02Myw4ICs2Myw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoKSBjb25zdDsKIAogICAgIC8vIFN5c3RlbSBmb250cy4KLSAgICB2aXJ0dWFsIHZv
aWQgc3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKLSAgICB2
aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc3lzdGVtRm9udChDU1NWYWx1ZUlELCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsK
KyAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQpIGNvbnN0OwogCiAgICAg
dmlydHVhbCBib29sIHBhaW50Q2hlY2tib3goUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludElu
Zm8mIGksIGNvbnN0IEludFJlY3QmIHIpCiAgICAgeyByZXR1cm4gcGFpbnRCdXR0b24obywgaSwg
cik7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdp
bkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmNwcApp
bmRleCAwNTViZTBjOTRkNGYyOGQ3MDBmNGYzNmE0MmQ4YjE4OGYxOThiZTMyLi45MDZlNmZjODc5
MzY4ZThiYTNiOTdlMmYxYTA3N2Q1ZmRjY2M3YmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lV2luQ0UuY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAgYm9vbCBSZW5k
ZXJUaGVtZVdpbkNFOjpwYWludE1lbnVMaXN0QnV0dG9uKFJlbmRlck9iamVjdCogbywgY29uc3Qg
UGFpbnRJbmZvJiBpLAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFJlbmRlclRoZW1lV2lu
Q0U6OnN5c3RlbUZvbnQoaW50IHByb3BJZCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24pIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lV2luQ0U6OnN5c3RlbUZvbnQoQ1NTVmFsdWVJRCwg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KQEAgLTI4NCw3ICsyODQsNyBAQCBib29sIFJlbmRlclRoZW1lV2luQ0U6OnN1
cHBvcnRzSG92ZXIoY29uc3QgUmVuZGVyU3R5bGUqKSBjb25zdAogfQogCiAvLyBNYXAgYSBDU1NW
YWx1ZSogc3lzdGVtIGNvbG9yIHRvIGFuIGluZGV4IHVuZGVyc3Rvb2QgYnkgR2V0U3lzQ29sb3IK
LXN0YXRpYyBpbnQgY3NzVmFsdWVJZFRvU3lzQ29sb3JJbmRleChpbnQgY3NzVmFsdWVJZCkKK3N0
YXRpYyBDU1NWYWx1ZUlEIGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgoQ1NTVmFsdWVJRCBjc3NW
YWx1ZUlkKQogewogICAgIHN3aXRjaCAoY3NzVmFsdWVJZCkgewogICAgIGNhc2UgQ1NTVmFsdWVB
Y3RpdmVib3JkZXI6IHJldHVybiBDT0xPUl9BQ1RJVkVCT1JERVI7CkBAIC0zMTUsMTQgKzMxNSwx
NCBAQCBzdGF0aWMgaW50IGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgoaW50IGNzc1ZhbHVlSWQp
CiAgICAgY2FzZSBDU1NWYWx1ZVdpbmRvdzogcmV0dXJuIENPTE9SX1dJTkRPVzsKICAgICBjYXNl
IENTU1ZhbHVlV2luZG93ZnJhbWU6IHJldHVybiBDT0xPUl9XSU5ET1dGUkFNRTsKICAgICBjYXNl
IENTU1ZhbHVlV2luZG93dGV4dDogcmV0dXJuIENPTE9SX1dJTkRPV1RFWFQ7Ci0gICAgZGVmYXVs
dDogcmV0dXJuIC0xOyAvLyBVbnN1cHBvcnRlZCBDU1NWYWx1ZQorICAgIGRlZmF1bHQ6IHJldHVy
biBDU1NWYWx1ZUludmFsaWQ7IC8vIFVuc3VwcG9ydGVkIENTU1ZhbHVlCiAgICAgfQogfQogCi1D
b2xvciBSZW5kZXJUaGVtZVdpbkNFOjpzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3QK
K0NvbG9yIFJlbmRlclRoZW1lV2luQ0U6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJ
ZCkgY29uc3QKIHsKLSAgICBpbnQgc3lzQ29sb3JJbmRleCA9IGNzc1ZhbHVlSWRUb1N5c0NvbG9y
SW5kZXgoY3NzVmFsdWVJZCk7Ci0gICAgaWYgKHN5c0NvbG9ySW5kZXggPT0gLTEpCisgICAgQ1NT
VmFsdWVJRCBzeXNDb2xvckluZGV4ID0gY3NzVmFsdWVJZFRvU3lzQ29sb3JJbmRleChjc3NWYWx1
ZUlkKTsKKyAgICBpZiAoc3lzQ29sb3JJbmRleCA9PSBDU1NWYWx1ZUludmFsaWQpCiAgICAgICAg
IHJldHVybiBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoY3NzVmFsdWVJZCk7CiAKICAgICBDT0xP
UlJFRiBjb2xvciA9IEdldFN5c0NvbG9yKHN5c0NvbG9ySW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luQ0UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmgKaW5kZXggYmRlODcyYzZjNzZmY2EwYjY3MWE5
MzJiZWQwMjMwZDM3NzMxOTkyZi4uYzFhYjdiZTgyMjdmOGVkMDVmZjIxYmIxMzhlOWZmNzNkNWQ0
ZTJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2lu
Q0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5oCkBA
IC02Miw4ICs2Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBDb2xv
ciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3Q7CiAKICAg
ICAgICAgLy8gU3lzdGVtIGZvbnRzLgotICAgICAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChp
bnQgcHJvcElkLCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBDb2xv
ciBzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBzeXN0ZW1Gb250KENTU1ZhbHVlSUQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0OworICAgICAg
ICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKENTU1ZhbHVlSUQpIGNvbnN0OwogCiAgICAgICAg
IHZpcnR1YWwgYm9vbCBwYWludENoZWNrYm94KFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJ
bmZvJiBpLCBjb25zdCBJbnRSZWN0JiByKQogICAgICAgICB7IHJldHVybiBwYWludEJ1dHRvbihv
LCBpLCByKTsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>