<?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>128985</bug_id>
          
          <creation_ts>2014-02-18 11:29:45 -0800</creation_ts>
          <short_desc>WebGL EXT_shader_texture_lod may be implemented</short_desc>
          <delta_ts>2014-05-12 13:14:21 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.khronos.org/registry/webgl/extensions/EXT_shader_texture_lod/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Florian Bösch">pyalot</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>noam</cc>
    
    <cc>rakuco</cc>
    
    <cc>roger_fong</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>982011</commentid>
    <comment_count>0</comment_count>
    <who name="Florian Bösch">pyalot</who>
    <bug_when>2014-02-18 11:29:45 -0800</bug_when>
    <thetext>The WebGL Extension EXT_shader_texture_lod has been moved to draft: http://www.khronos.org/registry/webgl/extensions/EXT_shader_texture_lod/

An angle patch has been submitted: https://code.google.com/p/angleproject/issues/detail?id=551

The chrome ticket: https://code.google.com/p/chromium/issues/detail?id=344583
The firefox ticket and patch: https://bugzilla.mozilla.org/show_bug.cgi?id=965848

Vendors are encouraged to consider implementation of this extension.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982432</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-19 10:53:07 -0800</bug_when>
    <thetext>&lt;rdar://problem/16111396&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007736</commentid>
    <comment_count>2</comment_count>
      <attachid>231094</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-08 13:06:21 -0700</bug_when>
    <thetext>Created attachment 231094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007739</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-08 13:09:42 -0700</bug_when>
    <thetext>It would be nice to have a test case like ext-shader-texture-lod.html from https://bug965848.bugzilla.mozilla.org/attachment.cgi?id=8367994 but I&apos;m not sure where it came from.  Chromium has no new test in https://src.chromium.org/viewvc/blink?view=rev&amp;revision=171465 but maybe they should.  I don&apos;t think we should add this without a test, but maybe whoever reviews this would know more about where webgl tests come from than I do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007819</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-08 16:53:52 -0700</bug_when>
    <thetext>Is this already part of the ANGLE we have checked in?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007835</commentid>
    <comment_count>5</comment_count>
      <attachid>231094</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-05-08 17:44:39 -0700</bug_when>
    <thetext>Comment on attachment 231094
Patch

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

We definitely need a test. There is nothing in the official testsuite :(
This means you&apos;ll have to write something from scratch. For now, copy the existing approach in LayoutTests/webgl and we&apos;ll submit the test to khronos when done.

And yes, we have the ANGLE fixes.

&gt; Source/WebCore/ChangeLog:12
&gt; +        * WebCore.vcxproj/WebCore.vcxproj:

Don&apos;t we also add to the .filters file?

&gt; Source/WebCore/CMakeLists.txt:2941
&gt;  list(APPEND WebCore_SOURCES
&gt; +    platform/text/TextCodecICU.cpp
&gt; +    platform/text/TextEncodingDetectorICU.cpp
&gt;      platform/text/icu/UTextProvider.cpp
&gt;      platform/text/icu/UTextProviderLatin1.cpp
&gt;      platform/text/icu/UTextProviderUTF16.cpp
&gt; -    platform/text/TextCodecICU.cpp
&gt; -    platform/text/TextEncodingDetectorICU.cpp
&gt;  )

Was this intentional?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007853</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-05-08 18:50:11 -0700</bug_when>
    <thetext>I think we also need to set EXT_shader_texture_lod in ShBuiltInResources when we initialise ANGLE in GraphicsContext3D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008026</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 10:54:46 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; This means you&apos;ll have to write something from scratch.
Do you think adapting ext-shader-texture-lod.html from https://bug965848.bugzilla.mozilla.org/attachment.cgi?id=8367994 would work?  Maybe that should be put into the official test suite.

(In reply to comment #6)
&gt; I think we also need to set EXT_shader_texture_lod in ShBuiltInResources when we initialise ANGLE in GraphicsContext3D
Do you mean in Extensions3DOpenGLCommon::ensureEnabled?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008084</commentid>
    <comment_count>8</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-05-09 13:40:19 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; This means you&apos;ll have to write something from scratch.
&gt; Do you think adapting ext-shader-texture-lod.html from https://bug965848.bugzilla.mozilla.org/attachment.cgi?id=8367994 would work?  Maybe that should be put into the official test suite.

Cool, yes. We should use that. And it should go into the official test suite. I&apos;ll ping mozilla.


&gt; 
&gt; (In reply to comment #6)
&gt; &gt; I think we also need to set EXT_shader_texture_lod in ShBuiltInResources when we initialise ANGLE in GraphicsContext3D
&gt; Do you mean in Extensions3DOpenGLCommon::ensureEnabled?

No. I think that we need to pass in a flag to ANGLE to tell it that it can use the LOD built-ins in the Shader validator, otherwise the GLSL will be rejected.

See, ShaderLang.h

    // Extensions.
    // Set to 1 to enable the extension, else 0.
    int OES_standard_derivatives;
    int OES_EGL_image_external;
    int ARB_texture_rectangle;
    int EXT_draw_buffers;
    int EXT_frag_depth;
    int EXT_shader_texture_lod;

in ShBuiltInResources. We just need to set that when we create the validator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008085</commentid>
    <comment_count>9</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-05-09 13:43:18 -0700</bug_when>
    <thetext>&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; I think we also need to set EXT_shader_texture_lod in ShBuiltInResources when we initialise ANGLE in GraphicsContext3D
&gt; &gt; Do you mean in Extensions3DOpenGLCommon::ensureEnabled?
&gt; 
&gt; No. I think that we need to pass in a flag to ANGLE to tell it that it can use the LOD built-ins in the Shader validator, otherwise the GLSL will be rejected.
&gt; 
&gt; See, ShaderLang.h
&gt; 
&gt;     // Extensions.
&gt;     // Set to 1 to enable the extension, else 0.
&gt;     int OES_standard_derivatives;
&gt;     int OES_EGL_image_external;
&gt;     int ARB_texture_rectangle;
&gt;     int EXT_draw_buffers;
&gt;     int EXT_frag_depth;
&gt;     int EXT_shader_texture_lod;
&gt; 
&gt; in ShBuiltInResources. We just need to set that when we create the validator.

Duh! Yes, that *is* where it should go, sorry. Extensions3DOpenGLCommon::ensureEnabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008101</commentid>
    <comment_count>10</comment_count>
      <attachid>231185</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 14:43:49 -0700</bug_when>
    <thetext>Created attachment 231185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008104</commentid>
    <comment_count>11</comment_count>
      <attachid>231185</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 14:47:46 -0700</bug_when>
    <thetext>Comment on attachment 231185
Patch

The test passes with or without the rest of the changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008123</commentid>
    <comment_count>12</comment_count>
      <attachid>231192</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 16:05:26 -0700</bug_when>
    <thetext>Created attachment 231192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008125</commentid>
    <comment_count>13</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-09 16:09:28 -0700</bug_when>
    <thetext>I had to use GL_ARB_shader_texture_lod instead of GL_EXT_shader_texture_lod because GL_ARB_shader_texture_lod was in the string returned by glGetString(GL_EXTENSIONS).  Now it works and passes the test.

(In reply to comment #5)
&gt;&gt; Source/WebCore/CMakeLists.txt:2941
&gt;&gt;  list(APPEND WebCore_SOURCES
&gt;&gt; +    platform/text/TextCodecICU.cpp
&gt;&gt; +    platform/text/TextEncodingDetectorICU.cpp
&gt;&gt;      platform/text/icu/UTextProvider.cpp
&gt;&gt;      platform/text/icu/UTextProviderLatin1.cpp
&gt;&gt;      platform/text/icu/UTextProviderUTF16.cpp
&gt;&gt; -    platform/text/TextCodecICU.cpp
&gt;&gt; -    platform/text/TextEncodingDetectorICU.cpp
&gt;&gt;  )
&gt; Was this intentional?
Yes.  The style bot got mad about alphabetization without me doing that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008156</commentid>
    <comment_count>14</comment_count>
      <attachid>231192</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-05-09 17:33:26 -0700</bug_when>
    <thetext>Comment on attachment 231192
Patch

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

&gt; Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:140
&gt; +        // Enable support in ANGLE (if not enabled already)

Nit: missing period.

&gt; LayoutTests/ChangeLog:14
&gt; +        * webgl/conformance/extensions/ext-shader-texture-lod-expected.txt: Added.
&gt; +        * webgl/conformance/extensions/ext-shader-texture-lod.html: Added.
&gt; +        * webgl/resources/webgl_test_files/conformance/extensions/ext-shader-texture-lod.html: Added.

Since this test isn&apos;t (yet) part of the official test suite, I think it should go in fast/canvas/webgl.

Otherwise we&apos;re likely to overwrite it if merge tests from Khronos.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008651</commentid>
    <comment_count>15</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-12 10:50:32 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Since this test isn&apos;t (yet) part of the official test suite, I think it should go in fast/canvas/webgl.
Putting it in there makes it not work because of differences in the included files (webgl-test.js, etc.).  Should I try to squeeze it in there anyway?  I think once this becomes part of the official test suite, it won&apos;t differ much from what is included in this patch, except the copyright will be Khronos instead of chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008689</commentid>
    <comment_count>16</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-05-12 12:25:53 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; Since this test isn&apos;t (yet) part of the official test suite, I think it should go in fast/canvas/webgl.
&gt; Putting it in there makes it not work because of differences in the included files (webgl-test.js, etc.).  Should I try to squeeze it in there anyway?  I think once this becomes part of the official test suite, it won&apos;t differ much from what is included in this patch, except the copyright will be Khronos instead of chromium.

Sure, no problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008696</commentid>
    <comment_count>17</comment_count>
      <attachid>231192</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-12 13:14:14 -0700</bug_when>
    <thetext>Comment on attachment 231192
Patch

Clearing flags on attachment: 231192

Committed r168639: &lt;http://trac.webkit.org/changeset/168639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008697</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-12 13:14:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231094</attachid>
            <date>2014-05-08 13:06:21 -0700</date>
            <delta_ts>2014-05-09 14:43:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128985-20140508130558.patch</filename>
            <type>text/plain</type>
            <size>26621</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODQ4NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE0LTA1LTA4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEVYVF9zaGFkZXJfdGV4dHVyZV9sb2QgaW4gV2ViR0wuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg5ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzE2MTExMzk2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgIEFkZGVkIG5ldyBFWFRTaGFkZXJUZXh0dXJlTE9EIGZpbGVzLgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICBBZGRlZCBFWFRTaGFkZXJUZXh0dXJlTE9ELgor
ICAgICAgICAqIGh0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkVYVFNoYWRlclRleHR1cmVMT0Q6OkVYVFNoYWRlclRleHR1cmVMT0Qp
OgorICAgICAgICAoV2ViQ29yZTo6RVhUU2hhZGVyVGV4dHVyZUxPRDo6fkVYVFNoYWRlclRleHR1
cmVMT0QpOgorICAgICAgICAoV2ViQ29yZTo6RVhUU2hhZGVyVGV4dHVyZUxPRDo6Z2V0TmFtZSk6
CisgICAgICAgICogaHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmlkbDogQWRkZWQuCisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaDoKKyAgICAgICAgQWRkZWQgRVhUU2hh
ZGVyVGV4dHVyZUxPRE5hbWUuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3Bw
OgorICAgICAgICBSZW1vdmVkIHVudXNlZCBpbmNsdXNpb24gb2YgRVhUVGV4dHVyZUZpbHRlckFu
aXNvdHJvcGljLmguCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5z
aW9uKToKKyAgICAgICAgQWRkZWQgRVhUX3NoYWRlcl90ZXh0dXJlX2xvZC4KKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgQWRkZWQgYSBFWFRT
aGFkZXJUZXh0dXJlTE9EIG1lbWJlciB2YXJpYWJsZS4KKwogMjAxNC0wNS0wOCAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIGlPUyBidWls
ZCBhZnRlciByMTY4NDc2LgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE2ODM5
MikKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01
MDYsNiArNTA2LDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5pZGwKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaWRsCiAgICAgaHRtbC9jYW52YXMvRE9NUGF0aC5pZGwKKyAgICBodG1sL2NhbnZh
cy9FWFRTaGFkZXJUZXh0dXJlTE9ELmlkbAogICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0
ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50Lmlk
bAogICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsCkBAIC0xNjUyLDYg
KzE2NTMsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuY3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCisgICAgaHRtbC9jYW52YXMv
RVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAKICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVy
QW5pc290cm9waWMuY3BwCiAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5jcHAK
ICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcApAQCAtMjc4Nyw2ICsy
Nzg5LDcgQEAgaWYgKEVOQUJMRV9XRUJHTCkKIAogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUwogICAgICAgICBodG1sL2NhbnZhcy9BTkdMRUluc3RhbmNlZEFycmF5cy5jcHAKKyAgICAg
ICAgaHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAKICAgICAgICAgaHRtbC9jYW52
YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9P
RVNFbGVtZW50SW5kZXhVaW50LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERl
cml2YXRpdmVzLmNwcApAQCAtMjgyNCw2ICsyODI3LDcgQEAgaWYgKEVOQUJMRV9XRUJHTCkKICAg
ICApCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMKICAgICAgICAgaHRtbC9jYW52
YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuaWRsCisgICAgICAgIGh0bWwvY2FudmFzL0VYVFNoYWRl
clRleHR1cmVMT0QuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlz
b3Ryb3BpYy5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwK
ICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwKQEAgLTI5Mjks
MTEgKzI5MzMsMTEgQEAgaWYgKEVOQUJMRV9RVU9UQSBPUiBQT1JUIFNUUkVRVUFMICJHVEsiKQog
ZW5kaWYgKCkKIAogbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWNJQ1UuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdEZXRlY3Rv
cklDVS5jcHAKICAgICBwbGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyLmNwcAogICAgIHBs
YXRmb3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwCiAgICAgcGxhdGZvcm0vdGV4
dC9pY3UvVVRleHRQcm92aWRlclVURjE2LmNwcAotICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVj
SUNVLmNwcAotICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCiAp
CiBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAke0lDVV9JTkNM
VURFX0RJUlN9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCShyZXZpc2lvbiAxNjgz
OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuY3Bw
IgogI2luY2x1ZGUgIkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCIKICNpZiBFTkFCTEUo
V0VCR0wpCisjaW5jbHVkZSAiSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCIKICNpbmNsdWRlICJK
U0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAiCiAjaW5jbHVkZSAiSlNPRVNFbGVtZW50
SW5kZXhVaW50LmNwcCIKICNpbmNsdWRlICJKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIgpJ
bmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxNjgzOTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC00MTQs
NiArNDE0LDcgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL0RPTVBhdGguaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVFNo
YWRlclRleHR1cmVMT0QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VT
RWxlbWVudEluZGV4VWludC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
OTgsNiArMjk4LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXFdlYkNv
cmVcRGVyaXZlZFNvdXJjZXNcSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCI+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQ
bGF0Zm9ybUFyY2hpdGVjdHVyZSlcV2ViQ29yZVxEZXJpdmVkU291cmNlc1xKU0VYVFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYy5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgpAQCAtNjQ4OCw2ICs2NTAyLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGh0bWxcY2FudmFzXEFOR0xFSW5zdGFuY2VkQXJyYXlzLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXENhbnZhc1BhdGhNZXRo
b2RzLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXEVYVFNo
YWRlclRleHR1cmVMT0QuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxj
YW52YXNcRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNcT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5jcHAiIC8+CkBAIC0xODU0Nyw2ICsxODU2Miw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcWE1MVmlld2VySlMuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0
ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xYUGF0aEdyYW1tYXIuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBs
YXRmb3JtQXJjaGl0ZWN0dXJlKVxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTQU5HTEVJbnN0YW5j
ZWRBcnJheXMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVxXZWJDb3JlXERlcml2ZWRTb3VyY2Vz
XEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXFdlYkNvcmVc
RGVyaXZlZFNvdXJjZXNcSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3Jt
QXJjaGl0ZWN0dXJlKVxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTT0VTRWxlbWVudEluZGV4VWlu
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNPRVNT
dGFuZGFyZERlcml2YXRpdmVzLmgiIC8+CkBAIC0xODcyMiw2ICsxODczOCw3IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXGNhbnZhc1xBTkdMRUluc3RhbmNlZEFycmF5cy5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNcQ2FudmFzQ29udGV4dEF0
dHJpYnV0ZXMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXENh
bnZhc1BhdGhNZXRob2RzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXGNh
bnZhc1xFWFRTaGFkZXJUZXh0dXJlTE9ELmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxodG1sXGNhbnZhc1xFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXE9FU0VsZW1lbnRJbmRleFVpbnQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXE9FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaCIgLz4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjA0Nyw2
ICsyMDQ3LDEwIEBACiAJCTVCMzA2OTVEMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERyYXdCdWZm
ZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVC
MzA2OTVBMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJzLmNwcCAqLzsgfTsKIAkJ
NUIzMDY5NUUxOEIzRDM0NTAwOTlENUU4IC8qIFdlYkdMRHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCMzA2OTVCMThCM0QzNDUwMDk5
RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJzLmggKi87IH07CiAJCTVCN0EyMDhEMkUxMjk3OUI0QUUx
OURFNiAvKiBSZW5kZXJNYXRoTUxTcGFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEQkZDQjBFQkZGNUNENzdFQkVCMzUzOTUgLyogUmVuZGVyTWF0
aE1MU3BhY2UuY3BwICovOyB9OworCQk1QzQzMDRCMDE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hh
ZGVyVGV4dHVyZUxPRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1QzQzMDRBRDE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5j
cHAgKi87IH07CisJCTVDNDMwNEIxMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJl
TE9ELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzQz
MDRBRTE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5oICovOyB9OworCQk1
QzQzMDRCNTE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNDMwNEIzMTkxQUVG
NDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0QuY3BwICovOyB9OworCQk1QzQzMDRC
NjE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzQzMDRCNDE5MUFFRjQ2MDAwRTJC
QzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmggKi87IH07CiAJCTVEMjFBODAyMTNFQ0U1REYw
MEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUQyMUE4MDAxM0VDRTVERjAwQkI3MDY0IC8qIFdlYlZUVFBhcnNl
ci5jcHAgKi87IH07CiAJCTVEMjFBODAzMTNFQ0U1REYwMEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMjFBODAx
MTNFQ0U1REYwMEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIuaCAqLzsgfTsKIAkJNUQ4NzRGMTMwRDE2
MUQzMjAwNzk2QzNCIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTIyN0REMEFGNTg5QUQwMEQ0
ODMyNCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgKi87IH07CkBAIC05MDY5LDYg
KzkwNzMsMTEgQEAKIAkJNUIzMDY5NUExOEIzRDM0NTAwOTlENUU4IC8qIFdlYkdMRHJhd0J1ZmZl
cnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xEcmF3QnVm
ZmVycy5jcHA7IHBhdGggPSBjYW52YXMvV2ViR0xEcmF3QnVmZmVycy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVCMzA2OTVCMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERyYXdC
dWZmZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdMRHJhd0J1ZmZl
cnMuaDsgcGF0aCA9IGNhbnZhcy9XZWJHTERyYXdCdWZmZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVCMzA2OTVDMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJz
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTERyYXdCdWZmZXJzLmlkbDsgcGF0aCA9
IGNhbnZhcy9XZWJHTERyYXdCdWZmZXJzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNUM0MzA0QUQxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRVhUU2hhZGVyVGV4dHVyZUxPRC5j
cHA7IHBhdGggPSBjYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTVDNDMwNEFFMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0
dXJlTE9ELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEVYVFNoYWRlclRleHR1
cmVMT0QuaDsgcGF0aCA9IGNhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTVDNDMwNEFGMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJU
ZXh0dXJlTE9ELmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBFWFRTaGFkZXJUZXh0dXJlTE9E
LmlkbDsgcGF0aCA9IGNhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNUM0MzA0QjMxOTFBRUY0NjAwMEUyQkMwIC8qIEpTRVhUU2hhZGVy
VGV4dHVyZUxPRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VY
VFNoYWRlclRleHR1cmVMT0QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzQz
MDRCNDE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1RDIxQTgwMDEzRUNFNURGMDBCQjcwNjQgLyogV2ViVlRU
UGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlZUVFBh
cnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEMjFBODAxMTNFQ0U1REYw
MEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViVlRUUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVENEI4QzUy
MTFFNTJDOEIwMEJCQjYyRiAvKiBXZWJDb3JlLmV4cC5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJDb3JlLmV4cC5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NTI3LDYg
KzE1NTM2LDkgQEAKIAkJNDk0ODRGQUUxMDJDRjAxRTAwMTg3REQzIC8qIGNhbnZhcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNUM0MzA0QUQxOTFBQzkw
ODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0QuY3BwICovLAorCQkJCTVDNDMwNEFFMTkx
QUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmggKi8sCisJCQkJNUM0MzA0QUYx
OTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0QuaWRsICovLAogCQkJCTMxQTc5
NUMxMTg4OEI3MjQwMDM4MkY5MCAvKiBBTkdMRUluc3RhbmNlZEFycmF5cy5jcHAgKi8sCiAJCQkJ
MzFBNzk1QzIxODg4QjcyNDAwMzgyRjkwIC8qIEFOR0xFSW5zdGFuY2VkQXJyYXlzLmggKi8sCiAJ
CQkJMzFBNzk1QzMxODg4QjcyNDAwMzgyRjkwIC8qIEFOR0xFSW5zdGFuY2VkQXJyYXlzLmlkbCAq
LywKQEAgLTE4MzI1LDYgKzE4MzM3LDggQEAKIAkJQTgzQjc5MDgwQ0NBRkYyQjAwMEIwODI1IC8q
IEhUTUwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTVD
NDMwNEIzMTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0QuY3BwICovLAor
CQkJCTVDNDMwNEI0MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0QuaCAq
LywKIAkJCQkzMUE3OTVDNDE4ODhCQUQxMDAzODJGOTAgLyogSlNBTkdMRUluc3RhbmNlZEFycmF5
cy5jcHAgKi8sCiAJCQkJMzFBNzk1QzUxODg4QkFEMTAwMzgyRjkwIC8qIEpTQU5HTEVJbnN0YW5j
ZWRBcnJheXMuaCAqLywKIAkJCQlCRThFRjAzRTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1Ry
YWNrLmNwcCAqLywKQEAgLTIzMzI4LDYgKzIzMzQyLDcgQEAKIAkJCQlBODBFNkNFNjBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTUHJpbWl0aXZlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRUQ4
QUMzMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBODBFNkNGRjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJvcGVydHkuaCBp
biBIZWFkZXJzICovLAorCQkJCTVDNDMwNEI2MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRl
clRleHR1cmVMT0QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc4RDAyQkM2MTU0QTE4REYwMEI2MkQw
NSAvKiBDU1NQcm9wZXJ0eUFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgwRjQw
OUQxMkIyMDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTgyRTNEOERGMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eVNvdXJjZURhdGEuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjM2MDIsNiArMjM2MTcsNyBAQAogCQkJCTg1REY4MTk5MEFBNzdFNEIw
MDQ4NkFENyAvKiBET01IVE1MSUZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVF
NzExQjEwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxJRnJhbWVFbGVtZW50SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTg1REY4MTI5MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MSW1h
Z2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1QzQzMDRCMTE5MUFDOTA4MDAwRTJCQzAg
LyogRVhUU2hhZGVyVGV4dHVyZUxPRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQjIwQUM1
RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxJbWFnZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODVGMzJBRUMwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxJbnB1dEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUIzMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1M
SW5wdXRFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2OTgsNiArMjc3MTQs
NyBAQAogCQkJCUYzODEwQzFCMTM2NUE0OTYwMEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzUwQjczNTEzRjEzNzdEMDA4ODBDNDMgLyogSW5z
dHJ1bWVudGluZ0FnZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDQ2RjA0RTE3Qjk2RkJE
MDA1NjQ3RjAgLyogSW50UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUM0MzA0QjAxOTFB
QzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjI3NTM1NjAwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50Q0cuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQjI3NTM1N0MwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50TWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjI3NTM1NzMwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yNzc1MSw2ICsyNzc2OCw3IEBACiAJCQkJNjVERjMxRjMwOUQxQ0M2
MDAwMEJFMzI1IC8qIEpTQ2hhcmFjdGVyRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Mw
NjU4NzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTVDNDMwNEI1MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRl
eHR1cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBODNFNEYwRDdDRTFFOTAwMzQyMUE4
IC8qIEpTRGF0YVRyYW5zZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTgzRTUyMEQ3Q0Uy
MDUwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2ZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUZCNTUwNTExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9zZUV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMSArMzAsMTMgQEAKICNpbmNsdWRlICJKU1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIK
KyNpbmNsdWRlICJFWFRTaGFkZXJUZXh0dXJlTE9ELmgiCiAjaW5jbHVkZSAiRVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
IkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkpTQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKKyNpbmNsdWRlICJKU0VYVFNoYWRlclRl
eHR1cmVMT0QuaCIKICNpbmNsdWRlICJKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgog
I2luY2x1ZGUgIkpTSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxJbWFnZUVs
ZW1lbnQuaCIKQEAgLTIwNSw2ICsyMDcsOCBAQCBzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0
ZSogZXhlYywgSlNECiAgICAgc3dpdGNoIChleHRlbnNpb24tPmdldE5hbWUoKSkgewogICAgIGNh
c2UgV2ViR0xFeHRlbnNpb246OldlYkdMTG9zZUNvbnRleHROYW1lOgogICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRleHQqPihl
eHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRTaGFkZXJUZXh0dXJlTE9E
TmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxFWFRTaGFkZXJUZXh0dXJlTE9EKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljTmFtZToKICAgICAgICAgcmV0dXJuIHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRUZXh0dXJlRmlsdGVyQW5pc290
cm9waWMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNTdGFuZGFy
ZERlcml2YXRpdmVzTmFtZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFNo
YWRlclRleHR1cmVMT0QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0VYVFNoYWRlclRleHR1cmVMT0QuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdF
QkdMKQorI2luY2x1ZGUgIkVYVFNoYWRlclRleHR1cmVMT0QuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitFWFRTaGFkZXJUZXh0dXJlTE9EOjpFWFRTaGFkZXJUZXh0dXJlTE9EKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IFdlYkdMRXh0ZW5zaW9uKGNvbnRleHQpCit7
Cit9CisKK0VYVFNoYWRlclRleHR1cmVMT0Q6On5FWFRTaGFkZXJUZXh0dXJlTE9EKCkKK3sKK30K
KworV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgRVhUU2hhZGVyVGV4dHVyZUxPRDo6Z2V0
TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVYVFNoYWRlclRleHR1cmVMT0ROYW1lOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5o
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4
dHVyZUxPRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
RVhUU2hhZGVyVGV4dHVyZUxPRF9oCisjZGVmaW5lIEVYVFNoYWRlclRleHR1cmVMT0RfaAorCisj
aW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBFWFRTaGFkZXJUZXh0dXJlTE9EIDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBFWFRTaGFkZXJUZXh0dXJlTE9EKFdlYkdMUmVuZGVyaW5nQ29udGV4dCop
OworICAgIHZpcnR1YWwgfkVYVFNoYWRlclRleHR1cmVMT0QoKTsKKworICAgIHZpcnR1YWwgRXh0
ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFWFRTaGFkZXJUZXh0dXJlTE9EX2gKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaWRsCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVy
ZUxPRC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIE5v
SW50ZXJmYWNlT2JqZWN0LAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIEdlbmVyYXRlSXNS
ZWFjaGFibGU9SW1wbFdlYkdMUmVuZGVyaW5nQ29udGV4dAorXSBpbnRlcmZhY2UgRVhUU2hhZGVy
VGV4dHVyZUxPRCB7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xF
eHRlbnNpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TEV4dGVuc2lvbi5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTEV4dGVuc2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBAIHB1
YmxpYzoKICAgICAvLyBFeHRlbnNpb24gbmFtZXMgYXJlIG5lZWRlZCB0byBwcm9wZXJseSB3cmFw
IGluc3RhbmNlcyBpbiBKYXZhU2NyaXB0IG9iamVjdHMuCiAgICAgZW51bSBFeHRlbnNpb25OYW1l
IHsKICAgICAgICAgV2ViR0xMb3NlQ29udGV4dE5hbWUsCisgICAgICAgIEVYVFNoYWRlclRleHR1
cmVMT0ROYW1lLAogICAgICAgICBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1lLAogICAg
ICAgICBPRVNUZXh0dXJlRmxvYXROYW1lLAogICAgICAgICBPRVNUZXh0dXJlRmxvYXRMaW5lYXJO
YW1lLApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcAko
cmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRlICJXZWJH
TE9iamVjdC5oIgogCi0jaW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAj
aW5jbHVkZSAiV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCIKICNpbmNsdWRlICJXZWJHTENv
bnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMRGVidWdSZW5kZXJlckluZm8uaCIKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBA
QAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFWFRTaGFkZXJUZXh0dXJlTE9ELmgiCiAjaW5j
bHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgpAQCAtMjQyOSw2ICsyNDMwLDE0IEBA
IFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmcKICAgICBpZiAoaXNDb250
ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAorICAgIGlmIChl
cXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpCisgICAgICAg
ICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfRVhUX3NoYWRlcl90
ZXh0dXJlX2xvZCIpKSB7CisgICAgICAgIGlmICghbV9leHRTaGFkZXJUZXh0dXJlTE9EKSB7Cisg
ICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xf
RVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpOworICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJl
TE9EID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRTaGFkZXJUZXh0dXJlTE9EPih0aGlzKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gbV9leHRTaGFkZXJUZXh0dXJlTE9ELmdldCgpOworICAgIH0K
ICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMiKQogICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+
c3VwcG9ydHMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKSB7CiAgICAgICAg
IGlmICghbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMpIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCShyZXZpc2lv
biAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEFOR0xFSW5zdGFuY2VkQXJyYXlzOwogY2xhc3MgRVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljOworY2xhc3MgRVhUU2hhZGVyVGV4dHVyZUxPRDsKIGNsYXNzIEhUTUxJbWFn
ZUVsZW1lbnQ7CiBjbGFzcyBIVE1MVmlkZW9FbGVtZW50OwogY2xhc3MgSW1hZ2VCdWZmZXI7CkBA
IC01MzMsNiArNTM0LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEVuYWJsZWQgZXh0ZW5zaW9uIG9i
amVjdHMuCiAgICAgc3RkOjp1bmlxdWVfcHRyPEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz4g
bV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWM7CisgICAgc3RkOjp1bmlxdWVfcHRyPEVYVFNo
YWRlclRleHR1cmVMT0Q+IG1fZXh0U2hhZGVyVGV4dHVyZUxPRDsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8T0VTVGV4dHVyZUZsb2F0PiBtX29lc1RleHR1cmVGbG9hdDsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8T0VTVGV4dHVyZUZsb2F0TGluZWFyPiBtX29lc1RleHR1cmVGbG9hdExpbmVhcjsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8T0VTVGV4dHVyZUhhbGZGbG9hdD4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231185</attachid>
            <date>2014-05-09 14:43:49 -0700</date>
            <delta_ts>2014-05-09 16:05:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128985-20140509144326.patch</filename>
            <type>text/plain</type>
            <size>42874</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODU1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE0LTA1LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEVYVF9zaGFkZXJfdGV4dHVyZV9sb2QgaW4gV2ViR0wuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg5ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzE2MTExMzk2PgorCisgICAgICAgIEJhc2VkIG9uIENocm9taXVtIHBhdGNoIGJ5IGJham9uZXNA
Y2hyb21pdW0ub3JnLgorICAgICAgICBodHRwczovL3NyYy5jaHJvbWl1bS5vcmcvdmlld3ZjL2Js
aW5rP3JldmlzaW9uPTE3MTQ2NSZ2aWV3PXJldmlzaW9uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2ViZ2wvY29uZm9ybWFuY2UvZXh0ZW5z
aW9ucy9leHQtc2hhZGVyLXRleHR1cmUtbG9kLmh0bWwKKyAgICAgICAgCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBB
ZGRlZCBuZXcgRVhUU2hhZGVyVGV4dHVyZUxPRCBmaWxlcy4KKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
b0pTKToKKyAgICAgICAgQWRkZWQgRVhUU2hhZGVyVGV4dHVyZUxPRC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpFWFRTaGFkZXJUZXh0dXJlTE9EOjpFWFRTaGFkZXJUZXh0dXJlTE9EKToKKyAgICAgICAgKFdl
YkNvcmU6OkVYVFNoYWRlclRleHR1cmVMT0Q6On5FWFRTaGFkZXJUZXh0dXJlTE9EKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVYVFNoYWRlclRleHR1cmVMT0Q6OmdldE5hbWUpOgorICAgICAgICAqIGh0
bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaDogQWRkZWQuCisgICAgICAgICogaHRtbC9j
YW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMRXh0ZW5zaW9uLmg6CisgICAgICAgIEFkZGVkIEVYVFNoYWRlclRleHR1cmVMT0RO
YW1lLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcDoKKyAgICAgICAgUmVt
b3ZlZCB1bnVzZWQgaW5jbHVzaW9uIG9mIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oLgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbik6CisgICAgICAg
IEFkZGVkIEVYVF9zaGFkZXJfdGV4dHVyZV9sb2QuCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgIEFkZGVkIGEgRVhUU2hhZGVyVGV4dHVyZUxP
RCBtZW1iZXIgdmFyaWFibGUuCisKIDIwMTQtMDUtMDkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE2ODUxOCk6IE11bHRpcGxlIHRl
c3RzIGZvciB3b3JrZXJzIGluIGJsb2JzIGFzc2VydApJbmRleDogU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJ
KHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC01MDYsNiArNTA2LDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAg
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5pZGwKICAgICBodG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCiAgICAgaHRtbC9jYW52YXMvRE9NUGF0aC5pZGwK
KyAgICBodG1sL2NhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmlkbAogICAgIGh0bWwvY2FudmFz
L0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICBodG1sL2NhbnZhcy9PRVNFbGVt
ZW50SW5kZXhVaW50LmlkbAogICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMu
aWRsCkBAIC0xNjUyLDYgKzE2NTMsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCisg
ICAgaHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAKICAgICBodG1sL2NhbnZhcy9F
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwCiAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVu
dEluZGV4VWludC5jcHAKICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNw
cApAQCAtMjc4Nyw2ICsyNzg5LDcgQEAgaWYgKEVOQUJMRV9XRUJHTCkKIAogICAgIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICBodG1sL2NhbnZhcy9BTkdMRUluc3RhbmNlZEFy
cmF5cy5jcHAKKyAgICAgICAgaHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAKICAg
ICAgICAgaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcAogICAgICAg
ICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcAogICAgICAgICBodG1sL2NhbnZh
cy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcApAQCAtMjgyNCw2ICsyODI3LDcgQEAgaWYgKEVO
QUJMRV9XRUJHTCkKICAgICApCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMKICAg
ICAgICAgaHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuaWRsCisgICAgICAgIGh0bWwv
Y2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL0VYVFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVu
dEluZGV4VWludC5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5pZGwKQEAgLTI5MjksMTEgKzI5MzMsMTEgQEAgaWYgKEVOQUJMRV9RVU9UQSBPUiBQT1JUIFNU
UkVRVUFMICJHVEsiKQogZW5kaWYgKCkKIAogbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisg
ICAgcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9UZXh0
RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAKICAgICBwbGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3Zp
ZGVyLmNwcAogICAgIHBsYXRmb3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwCiAg
ICAgcGxhdGZvcm0vdGV4dC9pY3UvVVRleHRQcm92aWRlclVURjE2LmNwcAotICAgIHBsYXRmb3Jt
L3RleHQvVGV4dENvZGVjSUNVLmNwcAotICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nRGV0
ZWN0b3JJQ1UuY3BwCiApCiBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAke0lDVV9JTkNMVURFX0RJUlN9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3Bw
CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJKU0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQuY3BwIgogI2luY2x1ZGUgIkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cCIKICNpZiBFTkFCTEUoV0VCR0wpCisjaW5jbHVkZSAiSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNw
cCIKICNpbmNsdWRlICJKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAiCiAjaW5jbHVk
ZSAiSlNPRVNFbGVtZW50SW5kZXhVaW50LmNwcCIKICNpbmNsdWRlICJKU09FU1N0YW5kYXJkRGVy
aXZhdGl2ZXMuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lv
biAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5n
IGNvcHkpCkBAIC00MTQsNiArNDE0LDcgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBcCiAgICAg
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0RPTVBhdGguaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRt
bC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgXApJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNjgzOTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOTgsNiArMjk4LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNw
cCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcV2ViQ29yZVxEZXJpdmVkU291cmNl
c1xKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtNjQ4OCw2ICs2NTAyLDcgQEAKICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXEFOR0xFSW5zdGFuY2VkQXJyYXlzLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXENhbnZhc0NvbnRleHRB
dHRyaWJ1dGVzLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFz
XENhbnZhc1BhdGhNZXRob2RzLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0
bWxcY2FudmFzXEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5caHRtbFxjYW52YXNcRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXE9FU0VsZW1lbnRJbmRleFVp
bnQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNcT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5jcHAiIC8+CkBAIC0xODU0Nyw2ICsxODU2Miw3IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFy
Y2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcWE1MVmlld2VySlMuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xYUGF0
aEdyYW1tYXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVxXZWJDb3JlXERlcml2ZWRTb3VyY2Vz
XEpTQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVxXZWJDb3Jl
XERlcml2ZWRTb3VyY2VzXEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRl
Y3R1cmUpXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9w
aWMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTT0VT
RWxlbWVudEluZGV4VWludC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXFdlYkNvcmVcRGVyaXZl
ZFNvdXJjZXNcSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmgiIC8+CkBAIC0xODcyMiw2ICsxODcz
OCw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXGNhbnZhc1xBTkdMRUluc3Rh
bmNlZEFycmF5cy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNc
Q2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGh0bWxcY2FudmFzXENhbnZhc1BhdGhNZXRob2RzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxodG1sXGNhbnZhc1xFWFRTaGFkZXJUZXh0dXJlTE9ELmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxodG1sXGNhbnZhc1xFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXE9FU0VsZW1lbnRJ
bmRleFVpbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCIgLz4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE2
ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtNjUxMSw2ICs2NTExLDkgQEAKICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0
ZWN0dXJlKVxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTQU5HTEVJbnN0YW5jZWRBcnJheXMuY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTRVhUU2hhZGVy
VGV4dHVyZUxPRC5jcHAiPgorICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgor
ICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXFdlYkNvcmVcRGVyaXZlZFNvdXJj
ZXNcSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVy
aXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTY2MzcsNiArNjY0MCw5
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXGNhbnZhc1xPRVNWZXJ0ZXhBcnJh
eU9iamVjdC5jcHAiPgogICAgICAgPEZpbHRlcj5odG1sXGNhbnZhczwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNcRVhUU2hh
ZGVyVGV4dHVyZUxPRC5jcHAiPgorICAgICAgPEZpbHRlcj5odG1sXGNhbnZhczwvRmlsdGVyPgor
ICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNc
RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCI+CiAgICAgICA8RmlsdGVyPmh0bWxcY2Fu
dmFzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xNDMzNyw2ICsxNDM0Myw5IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0
Zm9ybUFyY2hpdGVjdHVyZSlcV2ViQ29yZVxEZXJpdmVkU291cmNlc1xKU1dlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuaCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcV2ViQ29yZVxEZXJpdmVkU291cmNl
c1xKU0VYVFNoYWRlclRleHR1cmVMT0QuaCI+CisgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2Vz
PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcV2ViQ29yZVxE
ZXJpdmVkU291cmNlc1xKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIj4KICAgICAgIDxG
aWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTE0NDY5
LDYgKzE0NDc4LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXE9F
U1ZlcnRleEFycmF5T2JqZWN0LmgiPgogICAgICAgPEZpbHRlcj5odG1sXGNhbnZhczwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxjYW52
YXNcRVhUU2hhZGVyVGV4dHVyZUxPRC5oIj4KKyAgICAgIDxGaWx0ZXI+aHRtbFxjYW52YXM8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxc
Y2FudmFzXEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIj4KICAgICAgIDxGaWx0ZXI+aHRt
bFxjYW52YXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2ODM5
MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMjA0Nyw2ICsyMDQ3LDEwIEBACiAJCTVCMzA2OTVEMThCM0QzNDUw
MDk5RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCMzA2OTVBMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERy
YXdCdWZmZXJzLmNwcCAqLzsgfTsKIAkJNUIzMDY5NUUxOEIzRDM0NTAwOTlENUU4IC8qIFdlYkdM
RHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVCMzA2OTVCMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJzLmggKi87IH07
CiAJCTVCN0EyMDhEMkUxMjk3OUI0QUUxOURFNiAvKiBSZW5kZXJNYXRoTUxTcGFjZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQkZDQjBFQkZGNUNE
NzdFQkVCMzUzOTUgLyogUmVuZGVyTWF0aE1MU3BhY2UuY3BwICovOyB9OworCQk1QzQzMDRCMDE5
MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzQzMDRBRDE5MUFDOTA4MDAwRTJCQzAg
LyogRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgKi87IH07CisJCTVDNDMwNEIxMTkxQUM5MDgwMDBF
MkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1QzQzMDRBRTE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVy
VGV4dHVyZUxPRC5oICovOyB9OworCQk1QzQzMDRCNTE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRT
aGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDNDMwNEIzMTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVM
T0QuY3BwICovOyB9OworCQk1QzQzMDRCNjE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJU
ZXh0dXJlTE9ELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzQzMDRCNDE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmggKi87
IH07CiAJCTVEMjFBODAyMTNFQ0U1REYwMEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQyMUE4MDAxM0VDRTVE
RjAwQkI3MDY0IC8qIFdlYlZUVFBhcnNlci5jcHAgKi87IH07CiAJCTVEMjFBODAzMTNFQ0U1REYw
MEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVEMjFBODAxMTNFQ0U1REYwMEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIu
aCAqLzsgfTsKIAkJNUQ4NzRGMTMwRDE2MUQzMjAwNzk2QzNCIC8qIE5ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
ci5jcHAgKi87IH07CkBAIC05MDY5LDYgKzkwNzMsMTEgQEAKIAkJNUIzMDY5NUExOEIzRDM0NTAw
OTlENUU4IC8qIFdlYkdMRHJhd0J1ZmZlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gV2ViR0xEcmF3QnVmZmVycy5jcHA7IHBhdGggPSBjYW52YXMvV2ViR0xEcmF3
QnVmZmVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVCMzA2OTVCMThCM0Qz
NDUwMDk5RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdlYkdMRHJhd0J1ZmZlcnMuaDsgcGF0aCA9IGNhbnZhcy9XZWJHTERyYXdCdWZm
ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVCMzA2OTVDMThCM0QzNDUwMDk5
RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJH
TERyYXdCdWZmZXJzLmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJHTERyYXdCdWZmZXJzLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM0MzA0QUQxOTFBQzkwODAwMEUyQkMwIC8qIEVY
VFNoYWRlclRleHR1cmVMT0QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHA7IHBhdGggPSBjYW52YXMvRVhUU2hhZGVyVGV4dHVy
ZUxPRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNDMwNEFFMTkxQUM5MDgw
MDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEVYVFNoYWRlclRleHR1cmVMT0QuaDsgcGF0aCA9IGNhbnZhcy9FWFRTaGFkZXJU
ZXh0dXJlTE9ELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNDMwNEFGMTkxQUM5
MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBFWFRTaGFkZXJUZXh0dXJlTE9ELmlkbDsgcGF0aCA9IGNhbnZhcy9FWFRTaGFkZXJUZXh0
dXJlTE9ELmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM0MzA0QjMxOTFBRUY0
NjAwMEUyQkMwIC8qIEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0VYVFNoYWRlclRleHR1cmVMT0QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1QzQzMDRCNDE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFk
ZXJUZXh0dXJlTE9ELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRVhUU2hh
ZGVyVGV4dHVyZUxPRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDIxQTgwMDEz
RUNFNURGMDBCQjcwNjQgLyogV2ViVlRUUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYlZUVFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVEMjFBODAxMTNFQ0U1REYwMEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVlRUUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVENEI4QzUyMTFFNTJDOEIwMEJCQjYyRiAvKiBXZWJDb3JlLmV4cC5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJDb3JlLmV4cC5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE1NTI3LDYgKzE1NTM2LDkgQEAKIAkJNDk0ODRGQUUxMDJDRjAxRTAw
MTg3REQzIC8qIGNhbnZhcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJNUM0MzA0QUQxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0Qu
Y3BwICovLAorCQkJCTVDNDMwNEFFMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJl
TE9ELmggKi8sCisJCQkJNUM0MzA0QUYxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1
cmVMT0QuaWRsICovLAogCQkJCTMxQTc5NUMxMTg4OEI3MjQwMDM4MkY5MCAvKiBBTkdMRUluc3Rh
bmNlZEFycmF5cy5jcHAgKi8sCiAJCQkJMzFBNzk1QzIxODg4QjcyNDAwMzgyRjkwIC8qIEFOR0xF
SW5zdGFuY2VkQXJyYXlzLmggKi8sCiAJCQkJMzFBNzk1QzMxODg4QjcyNDAwMzgyRjkwIC8qIEFO
R0xFSW5zdGFuY2VkQXJyYXlzLmlkbCAqLywKQEAgLTE4MzI1LDYgKzE4MzM3LDggQEAKIAkJQTgz
Qjc5MDgwQ0NBRkYyQjAwMEIwODI1IC8qIEhUTUwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTVDNDMwNEIzMTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNo
YWRlclRleHR1cmVMT0QuY3BwICovLAorCQkJCTVDNDMwNEI0MTkxQUVGNDYwMDBFMkJDMCAvKiBK
U0VYVFNoYWRlclRleHR1cmVMT0QuaCAqLywKIAkJCQkzMUE3OTVDNDE4ODhCQUQxMDAzODJGOTAg
LyogSlNBTkdMRUluc3RhbmNlZEFycmF5cy5jcHAgKi8sCiAJCQkJMzFBNzk1QzUxODg4QkFEMTAw
MzgyRjkwIC8qIEpTQU5HTEVJbnN0YW5jZWRBcnJheXMuaCAqLywKIAkJCQlCRThFRjAzRTE3MUM4
RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmNwcCAqLywKQEAgLTIzMzI4LDYgKzIzMzQyLDcg
QEAKIAkJCQlBODBFNkNFNjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJpbWl0aXZlVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCUUxRUQ4QUMzMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNGRjBBMTk4OUNBMDA3
RkI4QzUgLyogQ1NTUHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTVDNDMwNEI2MTkxQUVG
NDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTc4RDAyQkM2MTU0QTE4REYwMEI2MkQwNSAvKiBDU1NQcm9wZXJ0eUFuaW1hdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU2NTgwRjQwOUQxMkIyMDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFt
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgyRTNEOERGMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQ
cm9wZXJ0eVNvdXJjZURhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjM2MDIsNiArMjM2MTcsNyBA
QAogCQkJCTg1REY4MTk5MEFBNzdFNEIwMDQ4NkFENyAvKiBET01IVE1MSUZyYW1lRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQjEwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxJ
RnJhbWVFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1REY4MTI5MEFBNzc4
NzIwMDQ4NkFENyAvKiBET01IVE1MSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1
QzQzMDRCMTE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODVFNzExQjIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxJbWFnZUVsZW1l
bnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVGMzJBRUMwQUE2M0I4NzAwRkYzMTg0
IC8qIERPTUhUTUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUIzMEFD
NUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSW5wdXRFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjc2OTgsNiArMjc3MTQsNyBAQAogCQkJCUYzODEwQzFCMTM2NUE0OTYwMEVENkUz
MyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzUwQjcz
NTEzRjEzNzdEMDA4ODBDNDMgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDQ2RjA0RTE3Qjk2RkJEMDA1NjQ3RjAgLyogSW50UG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNUM0MzA0QjAxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVM
T0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1NjAwQjA1MzgxNDAwMkNFNjRGIC8qIElu
dFBvaW50Q0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1N0MwQjA1MzgxNDAwMkNFNjRG
IC8qIEludFBvaW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1NzMwQjA1MzgxNDAw
MkNFNjRGIC8qIEludFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzc1MSw2ICsyNzc2OCw3
IEBACiAJCQkJNjVERjMxRjMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTQ2hhcmFjdGVyRGF0YS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0MwNjU4NzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRS
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBK
U0NsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTVDNDMwNEI1MTkxQUVGNDYw
MDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNBODNFNEYwRDdDRTFFOTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDQTgzRTUyMEQ3Q0UyMDUwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2ZlckN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUZCNTUwNTExM0UzRTkxMDA4MjExNzYgLyogSlND
bG9zZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNw
cAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMSArMzAs
MTMgQEAKICNpbmNsdWRlICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCiAjaW5jbHVkZSAi
QU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKKyNpbmNsdWRlICJFWFRTaGFkZXJUZXh0dXJlTE9ELmgi
CiAjaW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIK
KyNpbmNsdWRlICJKU0VYVFNoYWRlclRleHR1cmVMT0QuaCIKICNpbmNsdWRlICJKU0VYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2luY2x1ZGUgIkpTSFRNTENhbnZhc0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJKU0hUTUxJbWFnZUVsZW1lbnQuaCIKQEAgLTIwNSw2ICsyMDcsOCBAQCBzdGF0
aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNECiAgICAgc3dpdGNoIChleHRlbnNp
b24tPmdldE5hbWUoKSkgewogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMTG9zZUNvbnRl
eHROYW1lOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19j
YXN0PFdlYkdMTG9zZUNvbnRleHQqPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5z
aW9uOjpFWFRTaGFkZXJUZXh0dXJlTE9ETmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRTaGFkZXJUZXh0dXJlTE9EKj4oZXh0ZW5zaW9u
KSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGlj
TmFtZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdl
YkdMRXh0ZW5zaW9uOjpPRVNTdGFuZGFyZERlcml2YXRpdmVzTmFtZToKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuY3BwCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxP
RC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQkdMKQorI2luY2x1ZGUgIkVYVFNoYWRlclRleHR1cmVM
T0QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitFWFRTaGFkZXJUZXh0dXJlTE9EOjpFWFRT
aGFkZXJUZXh0dXJlTE9EKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IFdl
YkdMRXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK0VYVFNoYWRlclRleHR1cmVMT0Q6On5FWFRT
aGFkZXJUZXh0dXJlTE9EKCkKK3sKK30KKworV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUg
RVhUU2hhZGVyVGV4dHVyZUxPRDo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVYVFNo
YWRlclRleHR1cmVMT0ROYW1lOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCR0wpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRT
aGFkZXJUZXh0dXJlTE9ELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgRVhUU2hhZGVyVGV4dHVyZUxPRF9oCisjZGVmaW5lIEVY
VFNoYWRlclRleHR1cmVMT0RfaAorCisjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFWFRTaGFkZXJUZXh0dXJlTE9EIDogcHVibGljIFdl
YkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBFWFRTaGFkZXJUZXh0dXJlTE9E
KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworICAgIHZpcnR1YWwgfkVYVFNoYWRlclRleHR1cmVM
T0QoKTsKKworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qgb3ZlcnJp
ZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFWFRTaGFkZXJU
ZXh0dXJlTE9EX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFNoYWRlclRl
eHR1cmVMT0QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VY
VFNoYWRlclRleHR1cmVMT0QuaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworWworICAgIE5vSW50ZXJmYWNlT2JqZWN0LAorICAgIENvbmRpdGlvbmFs
PVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbFdlYkdMUmVuZGVyaW5nQ29udGV4
dAorXSBpbnRlcmZhY2UgRVhUU2hhZGVyVGV4dHVyZUxPRCB7Cit9OwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCShyZXZpc2lvbiAxNjgzOTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw2ICszNiw3IEBAIHB1YmxpYzoKICAgICAvLyBFeHRlbnNpb24gbmFtZXMgYXJl
IG5lZWRlZCB0byBwcm9wZXJseSB3cmFwIGluc3RhbmNlcyBpbiBKYXZhU2NyaXB0IG9iamVjdHMu
CiAgICAgZW51bSBFeHRlbnNpb25OYW1lIHsKICAgICAgICAgV2ViR0xMb3NlQ29udGV4dE5hbWUs
CisgICAgICAgIEVYVFNoYWRlclRleHR1cmVMT0ROYW1lLAogICAgICAgICBFWFRUZXh0dXJlRmls
dGVyQW5pc290cm9waWNOYW1lLAogICAgICAgICBPRVNUZXh0dXJlRmxvYXROYW1lLAogICAgICAg
ICBPRVNUZXh0dXJlRmxvYXRMaW5lYXJOYW1lLApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMT2JqZWN0LmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsy
OSw2IEBACiAKICNpbmNsdWRlICJXZWJHTE9iamVjdC5oIgogCi0jaW5jbHVkZSAiRVhUVGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMz
VEMuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMRGVi
dWdSZW5kZXJlckluZm8uaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5j
bHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFWFRT
aGFkZXJUZXh0dXJlTE9ELmgiCiAjaW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGlj
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5o
IgpAQCAtMjQyOSw2ICsyNDMwLDE0IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmcKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAorICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiRVhUX3NoYWRl
cl90ZXh0dXJlX2xvZCIpCisgICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5z
dXBwb3J0cygiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpKSB7CisgICAgICAgIGlmICghbV9l
eHRTaGFkZXJUZXh0dXJlTE9EKSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpOworICAgICAg
ICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRTaGFkZXJU
ZXh0dXJlTE9EPih0aGlzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9leHRTaGFkZXJU
ZXh0dXJlTE9ELmdldCgpOworICAgIH0KICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwg
IldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKQogICAgICAgICAmJiBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9h
bmlzb3Ryb3BpYyIpKSB7CiAgICAgICAgIGlmICghbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9w
aWMpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oCShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiAr
NDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFOR0xFSW5zdGFuY2VkQXJyYXlz
OwogY2xhc3MgRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljOworY2xhc3MgRVhUU2hhZGVyVGV4
dHVyZUxPRDsKIGNsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7CiBjbGFzcyBIVE1MVmlkZW9FbGVtZW50
OwogY2xhc3MgSW1hZ2VCdWZmZXI7CkBAIC01MzMsNiArNTM0LDcgQEAgcHJpdmF0ZToKIAogICAg
IC8vIEVuYWJsZWQgZXh0ZW5zaW9uIG9iamVjdHMuCiAgICAgc3RkOjp1bmlxdWVfcHRyPEVYVFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz4gbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWM7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPEVYVFNoYWRlclRleHR1cmVMT0Q+IG1fZXh0U2hhZGVyVGV4dHVy
ZUxPRDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8T0VTVGV4dHVyZUZsb2F0PiBtX29lc1RleHR1cmVG
bG9hdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8T0VTVGV4dHVyZUZsb2F0TGluZWFyPiBtX29lc1Rl
eHR1cmVGbG9hdExpbmVhcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8T0VTVGV4dHVyZUhhbGZGbG9h
dD4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTENvbW1vbi5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzYsNiArMTM2LDE0IEBAIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9u
OjplbnN1cmVFbmEKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoRXh0ZW5zaW9u
czNEOjpNQVhfRFJBV19CVUZGRVJTX0VYVCwgJkFOR0xFUmVzb3VyY2VzLk1heERyYXdCdWZmZXJz
KTsKICAgICAgICAgICAgIGNvbXBpbGVyLnNldFJlc291cmNlcyhBTkdMRVJlc291cmNlcyk7CiAg
ICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gIkdMX0VYVF9zaGFkZXJfdGV4dHVyZV9s
b2QiKSB7CisgICAgICAgIC8vIEVuYWJsZSBzdXBwb3J0IGluIEFOR0xFIChpZiBub3QgZW5hYmxl
ZCBhbHJlYWR5KQorICAgICAgICBBTkdMRVdlYktpdEJyaWRnZSYgY29tcGlsZXIgPSBtX2NvbnRl
eHQtPm1fY29tcGlsZXI7CisgICAgICAgIFNoQnVpbHRJblJlc291cmNlcyBBTkdMRVJlc291cmNl
cyA9IGNvbXBpbGVyLmdldFJlc291cmNlcygpOworICAgICAgICBpZiAoIUFOR0xFUmVzb3VyY2Vz
LkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QpIHsKKyAgICAgICAgICAgIEFOR0xFUmVzb3VyY2VzLkVY
VF9zaGFkZXJfdGV4dHVyZV9sb2QgPSAxOworICAgICAgICAgICAgY29tcGlsZXIuc2V0UmVzb3Vy
Y2VzKEFOR0xFUmVzb3VyY2VzKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMTY4NTU1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTQtMDUtMDkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgRVhUX3NoYWRlcl90ZXh0dXJlX2xv
ZCBpbiBXZWJHTC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyODk4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTYxMTEzOTY+CisKKyAgICAgICAg
QmFzZWQgb24gRmlyZWZveCBwYXRjaCBieSBWbGFkaW1pciBWdWtpY2V2aWMuCisgICAgICAgIGh0
dHBzOi8vYnVnOTY1ODQ4LmJ1Z3ppbGxhLm1vemlsbGEub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTgz
Njc5OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHdlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXNoYWRlci10ZXh0dXJlLWxvZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMv
ZXh0LXNoYWRlci10ZXh0dXJlLWxvZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC1zaGFkZXIt
dGV4dHVyZS1sb2QuaHRtbDogQWRkZWQuCisKIDIwMTQtMDUtMDkgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE2ODUxOCk6IE11bHRp
cGxlIHRlc3RzIGZvciB3b3JrZXJzIGluIGJsb2JzIGFzc2VydApJbmRleDogTGF5b3V0VGVzdHMv
d2ViZ2wvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9leHQtc2hhZGVyLXRleHR1cmUtbG9kLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9leHRl
bnNpb25zL2V4dC1zaGFkZXItdGV4dHVyZS1sb2QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9leHQtc2hhZGVyLXRl
eHR1cmUtbG9kLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUgQEAKK1Ro
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRt
bAorUEFTUworCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9leHRlbnNpb25z
L2V4dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93
ZWJnbC9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMv
ZXh0LXNoYWRlci10ZXh0dXJlLWxvZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTgg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmdsLXRl
c3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdy
YXBwZXIgZm9yIGV4dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVm
PSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25z
L2V4dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9leHQtc2hhZGVyLXRleHR1cmUtbG9kLmh0bWw8
L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNp
b25zL2V4dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAi
PjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4
dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC1z
aGFkZXItdGV4dHVyZS1sb2QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXNo
YWRlci10ZXh0dXJlLWxvZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjgwIEBACivv
u78gPCEtLQorQ29weXJpZ2h0IChjKSAyMDExIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBC
U0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4K
KyAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5XZWJHTCBFWFRfc2hhZGVyX3RleHR1cmVfbG9kIENvbmZvcm1hbmNlIFRl
c3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2Rlc2t0
b3AtZ2wtY29uc3RhbnRzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFz
IiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgc3R5bGU9IndpZHRoOiA1MHB4OyBoZWlnaHQ6IDUw
cHg7Ij4gPC9jYW52YXM+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwhLS0gU2hhZGVycyBm
b3IgdGVzdGluZyBzdGFuZGFyZCBkZXJpdmF0aXZlcyAtLT4KKworPCEtLSBTaGFkZXIgb21pdHRp
bmcgdGhlIHJlcXVpcmVkICNleHRlbnNpb24gcHJhZ21hIC0tPgorPHNjcmlwdCBpZD0ibWlzc2lu
Z1ByYWdtYUZyYWdtZW50U2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KK3ByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OwordmFyeWluZyB2ZWMyIHRleENvb3JkMHY7Cit2b2lkIG1haW4o
KSB7CisgICAgdmVjNCBjb2xvciA9IHRleHR1cmUyRExvZEVYVCh0ZXgsIHRleENvb3JkMHYsIGxv
ZCk7CisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChkeCwgZHksIHcsIDEuMCk7Cit9Cis8L3Njcmlw
dD4KKworPCEtLSBTaGFkZXIgdG8gdGVzdCBtYWNybyBkZWZpbml0aW9uIC0tPgorPHNjcmlwdCBp
ZD0ibWFjcm9GcmFnbWVudFNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CitwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKK3ZvaWQgbWFpbigpIHsKKyNpZmRlZiBHTF9FWFRfc2hhZGVy
X3RleHR1cmVfbG9kCisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAwLjAp
OworI2Vsc2UKKyAgICAvLyBFcnJvciBleHBlY3RlZAorICAgICNlcnJvciBubyBHTF9FWFRfc2hh
ZGVyX3RleHR1cmVfbG9kOworI2VuZGlmCit9Cis8L3NjcmlwdD4KKworPCEtLSBTaGFkZXIgd2l0
aCByZXF1aXJlZCAjZXh0ZW5zaW9uIHByYWdtYSAtLT4KKzxzY3JpcHQgaWQ9InRlc3RGcmFnbWVu
dFNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisjZXh0ZW5zaW9uIEdMX0VYVF9z
aGFkZXJfdGV4dHVyZV9sb2QgOiBlbmFibGUKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwordmFy
eWluZyB2ZWMyIHRleENvb3JkMHY7Cit1bmlmb3JtIGZsb2F0IGxvZDsKK3VuaWZvcm0gc2FtcGxl
cjJEIHRleDsKK3ZvaWQgbWFpbigpIHsKKyAgICB2ZWM0IGNvbG9yID0gdGV4dHVyZTJETG9kRVhU
KHRleCwgdGV4Q29vcmQwdiwgbG9kKTsKKyAgICBnbF9GcmFnQ29sb3IgPSBjb2xvcjsKK30KKzwv
c2NyaXB0PgorCis8IS0tIFNoYWRlcnMgdG8gbGluayB3aXRoIHRlc3QgZnJhZ21lbnQgc2hhZGVy
cyAtLT4KKzxzY3JpcHQgaWQ9Imdvb2RWZXJ0ZXhTaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVy
dGV4Ij4KK2F0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKK2F0dHJpYnV0ZSB2ZWMyIHRleENvb3Jk
MDsKK3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDB2Owordm9pZCBtYWluKCkgeworICAgIHRleENvb3Jk
MHYgPSB0ZXhDb29yZDA7CisgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247Cit9Cis8L3Njcmlw
dD4KKworPCEtLSBTaGFkZXJzIHRvIHRlc3Qgb3V0cHV0IC0tPgorPHNjcmlwdCBpZD0ib3V0cHV0
VmVydGV4U2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjNCB2
UG9zaXRpb247CithdHRyaWJ1dGUgdmVjMiB0ZXhDb29yZDA7Cit2YXJ5aW5nIHZlYzIgdGV4Q29v
cmQwdjsKK3ZvaWQgbWFpbigpIHsKKyAgICB0ZXhDb29yZDB2ID0gdGV4Q29vcmQwOworICAgIGds
X1Bvc2l0aW9uID0gdlBvc2l0aW9uOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJvdXRwdXRG
cmFnbWVudFNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisjZXh0ZW5zaW9uIEdM
X0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QgOiByZXF1aXJlCitwcmVjaXNpb24gbWVkaXVtcCBmbG9h
dDsKK3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDB2OwordW5pZm9ybSBmbG9hdCBsb2Q7Cit1bmlmb3Jt
IHNhbXBsZXIyRCB0ZXg7Cit2b2lkIG1haW4oKSB7CisgICAgdmVjNCBjb2xvciA9IHRleHR1cmUy
RExvZEVYVCh0ZXgsIHRleENvb3JkMHYsIGxvZCk7CisgICAgZ2xfRnJhZ0NvbG9yID0gY29sb3I7
Cit9Cis8L3NjcmlwdD4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZp
ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIEVYVF9zaGFkZXJfdGV4dHVyZV9sb2QgZXh0ZW5z
aW9uLCBpZiBpdCBpcyBhdmFpbGFibGUuIik7CisKK2RlYnVnKCIiKTsKKwordmFyIHd0dSA9IFdl
YkdMVGVzdFV0aWxzOwordmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52
YXMiKTsKKworc2hvdWxkQmUoImNhbnZhcy53aWR0aCIsICIyNTYiKTsKK3Nob3VsZEJlKCJjYW52
YXMuaGVpZ2h0IiwgIjI1NiIpOworCit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZh
cyk7Cit2YXIgZXh0ID0gbnVsbDsKKworaWYgKCFnbCkgeworICAgIHRlc3RGYWlsZWQoIldlYkdM
IGNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgiV2Vi
R0wgY29udGV4dCBleGlzdHMiKTsKKworICAgIC8vIFJ1biB0ZXN0cyB3aXRoIGV4dGVuc2lvbiBk
aXNhYmxlZAorICAgIHJ1blNoYWRlclRlc3RzKGZhbHNlKTsKKworICAgIC8vIFF1ZXJ5IHRoZSBl
eHRlbnNpb24gYW5kIHN0b3JlIGdsb2JhbGx5IHNvIHNob3VsZEJlIGNhbiBhY2Nlc3MgaXQKKyAg
ICBleHQgPSBnbC5nZXRFeHRlbnNpb24oIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKTsKKyAgICBp
ZiAoIWV4dCkgeworICAgICAgICB0ZXN0UGFzc2VkKCJObyBFWFRfc2hhZGVyX3RleHR1cmVfbG9k
IHN1cHBvcnQgLS0gdGhpcyBpcyBsZWdhbCIpOworCisgICAgICAgIHJ1blN1cHBvcnRlZFRlc3Qo
ZmFsc2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxseSBl
bmFibGVkIEVYVF9zaGFkZXJfdGV4dHVyZV9sb2QgZXh0ZW5zaW9uIik7CisKKyAgICAgICAgcnVu
U3VwcG9ydGVkVGVzdCh0cnVlKTsKKworICAgICAgICBydW5TaGFkZXJUZXN0cyh0cnVlKTsKKyAg
ICAgICAgcnVuT3V0cHV0VGVzdHMoKTsKKyAgICAgICAgcnVuVW5pcXVlT2JqZWN0VGVzdCgpOwor
ICAgICAgICBydW5SZWZlcmVuY2VDeWNsZVRlc3QoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHJ1
blN1cHBvcnRlZFRlc3QoZXh0ZW5zaW9uRW5hYmxlZCkgeworICAgIHZhciBzdXBwb3J0ZWQgPSBn
bC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCk7CisgICAgaWYgKHN1cHBvcnRlZC5pbmRleE9mKCJF
WFRfc2hhZGVyX3RleHR1cmVfbG9kIikgPj0gMCkgeworICAgICAgICBpZiAoZXh0ZW5zaW9uRW5h
YmxlZCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCBs
aXN0ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJFWFRfc2hhZGVyX3RleHR1cmVfbG9k
IGxpc3RlZCBhcyBzdXBwb3J0ZWQgYnV0IGdldEV4dGVuc2lvbiBmYWlsZWQiKTsKKyAgICAgICAg
fQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChleHRlbnNpb25FbmFibGVkKSB7CisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIG5vdCBsaXN0ZWQgYXMgc3Vw
cG9ydGVkIGJ1dCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIG5vdCBsaXN0ZWQg
YXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gZmFpbGVkIC0tIHRoaXMgaXMgbGVnYWwiKTsK
KyAgICAgICAgfQorICAgIH0KK30KKworZnVuY3Rpb24gcnVuU2hhZGVyVGVzdHMoZXh0ZW5zaW9u
RW5hYmxlZCkgeworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdGluZyB2YXJpb3VzIHNo
YWRlciBjb21waWxlcyB3aXRoIGV4dGVuc2lvbiAiICsgKGV4dGVuc2lvbkVuYWJsZWQgPyAiZW5h
YmxlZCIgOiAiZGlzYWJsZWQiKSk7CisKKyAgICAvLyBFeHBlY3QgdGhlIG1hY3JvIHNoYWRlciB0
byBzdWNjZWVkIE9OTFkgaWYgZW5hYmxlZAorICAgIHZhciBtYWNyb0ZyYWdtZW50UHJvZ3JhbSA9
IHd0dS5sb2FkUHJvZ3JhbUZyb21TY3JpcHRFeHBlY3RFcnJvcihnbCwgImdvb2RWZXJ0ZXhTaGFk
ZXIiLCAibWFjcm9GcmFnbWVudFNoYWRlciIpOworICAgIGlmIChleHRlbnNpb25FbmFibGVkKSB7
CisgICAgICAgIGlmIChtYWNyb0ZyYWdtZW50UHJvZ3JhbSkgeworICAgICAgICAgICAgLy8gRXhw
ZWN0ZWQgcmVzdWx0CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJHTF9FWFRfc2hhZGVyX3RleHR1
cmVfbG9kIGRlZmluZWQgaW4gc2hhZGVycyB3aGVuIGV4dGVuc2lvbiBpcyBlbmFibGVkIik7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJHTF9FWFRfc2hhZGVyX3Rl
eHR1cmVfbG9kIG5vdCBkZWZpbmVkIGluIHNoYWRlcnMgd2hlbiBleHRlbnNpb24gaXMgZW5hYmxl
ZCIpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1hY3JvRnJhZ21lbnRQ
cm9ncmFtKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJHTF9FWFRfc2hhZGVyX3RleHR1cmVf
bG9kIGRlZmluZWQgaW4gc2hhZGVycyB3aGVuIGV4dGVuc2lvbiBpcyBkaXNhYmxlZCIpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiR0xfRVhUX3NoYWRlcl90ZXh0
dXJlX2xvZCBub3QgZGVmaW5lZCBpbiBzaGFkZXJzIHdoZW4gZXh0ZW5zaW9uIGRpc2FibGVkIik7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBBbHdheXMgZXhwZWN0IHRoZSBzaGFkZXIgbWlz
c2luZyB0aGUgI3ByYWdtYSB0byBmYWlsICh3aGV0aGVyIGVuYWJsZWQgb3Igbm90KQorICAgIHZh
ciBtaXNzaW5nUHJhZ21hRnJhZ21lbnRQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbVNjcmlw
dEV4cGVjdEVycm9yKGdsLCAiZ29vZFZlcnRleFNoYWRlciIsICJtaXNzaW5nUHJhZ21hRnJhZ21l
bnRTaGFkZXIiKTsKKyAgICBpZiAobWlzc2luZ1ByYWdtYUZyYWdtZW50UHJvZ3JhbSkgeworICAg
ICAgICB0ZXN0RmFpbGVkKCJTaGFkZXIgYnVpbHQtaW5zIGFsbG93ZWQgd2l0aG91dCAjZXh0ZW5z
aW9uIHByYWdtYSIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlNoYWRlciBi
dWlsdC1pbnMgZGlzYWxsb3dlZCB3aXRob3V0ICNleHRlbnNpb24gcHJhZ21hIik7CisgICAgfQor
CisgICAgLy8gVHJ5IHRvIGNvbXBpbGUgYSBzaGFkZXIgdXNpbmcgdGhlIGJ1aWx0LWlucyB0aGF0
IHNob3VsZCBvbmx5IHN1Y2NlZWQgaWYgZW5hYmxlZAorICAgIHZhciB0ZXN0RnJhZ21lbnRQcm9n
cmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbVNjcmlwdEV4cGVjdEVycm9yKGdsLCAiZ29vZFZlcnRl
eFNoYWRlciIsICJ0ZXN0RnJhZ21lbnRTaGFkZXIiKTsKKyAgICBpZiAoZXh0ZW5zaW9uRW5hYmxl
ZCkgeworICAgICAgICBpZiAodGVzdEZyYWdtZW50UHJvZ3JhbSkgeworICAgICAgICAgICAgdGVz
dFBhc3NlZCgiU2hhZGVyIGJ1aWx0LWlucyBjb21waWxlZCBzdWNjZXNzZnVsbHkgd2hlbiBleHRl
bnNpb24gZW5hYmxlZCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiU2hhZGVyIGJ1aWx0LWlucyBmYWlsZWQgdG8gY29tcGlsZSB3aGVuIGV4dGVuc2lvbiBlbmFi
bGVkIik7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAodGVzdEZyYWdtZW50
UHJvZ3JhbSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hhZGVyIGJ1aWx0LWlucyBjb21w
aWxlZCBzdWNjZXNzZnVsbHkgd2hlbiBleHRlbnNpb24gZGlzYWJsZWQiKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNoYWRlciBidWlsdC1pbnMgZmFpbGVkIHRv
IGNvbXBpbGUgd2hlbiBleHRlbnNpb24gZGlzYWJsZWQiKTsKKyAgICAgICAgfQorICAgIH0KK30K
KworZnVuY3Rpb24gcnVuT3V0cHV0VGVzdHMoKSB7CisgICAgZGVidWcoIlRlc3RpbmcgdmFyaW91
cyBkcmF3cyBmb3IgdmFsaWQgYnVpbHQtaW4gZnVuY3Rpb24gYmVoYXZpb3IiKTsKKworICAgIGNh
bnZhcy53aWR0aCA9IDI1NjsgY2FudmFzLmhlaWdodCA9IDI1NjsKKyAgICBnbC52aWV3cG9ydCgw
LCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworCisgICAgdmFyIHByb2dyYW0gPSB3
dHUuc2V0dXBQcm9ncmFtKGdsLCBbIm91dHB1dFZlcnRleFNoYWRlciIsICJvdXRwdXRGcmFnbWVu
dFNoYWRlciJdLCBbJ3ZQb3NpdGlvbicsICd0ZXhDb29yZDAnXSwgWzAsIDFdKTsKKyAgICB2YXIg
cXVhZFBhcmFtZXRlcnMgPSB3dHUuc2V0dXBVbml0UXVhZChnbCwgMCwgMSk7CisKKyAgICB2YXIg
Y29sb3JzID0gWworCXtuYW1lOiAncmVkJywgY29sb3I6WzI1NSwgMCwgMCwgMjU1XX0sCisJe25h
bWU6ICdncmVlbicsIGNvbG9yOlswLCAyNTUsIDAsIDI1NV19LAorCXtuYW1lOiAnYmx1ZScsIGNv
bG9yOlswLCAwLCAyNTUsIDI1NV19LAorCXtuYW1lOiAneWVsbG93JywgY29sb3I6WzI1NSwgMjU1
LCAwLCAyNTVdfSwKKwl7bmFtZTogJ21hZ2VudGEnLCBjb2xvcjpbMjU1LCAwLCAyNTUsIDI1NV19
LAorCXtuYW1lOiAnY3lhbicsIGNvbG9yOlswLCAyNTUsIDI1NSwgMjU1XX0sCisJe25hbWU6ICdw
aW5rJywgY29sb3I6WzI1NSwgMTI4LCAxMjgsIDI1NV19LAorCXtuYW1lOiAnZ3JheScsIGNvbG9y
OlsxMjgsIDEyOCwgMTI4LCAyNTVdfSwKKwl7bmFtZTogJ2xpZ2h0IGdyZWVuJywgY29sb3I6WzEy
OCwgMjU1LCAxMjgsIDI1NV19LAorICAgIF07CisKKyAgICBpZiAoY29sb3JzLmxlbmd0aCAhPSA5
KSB7CisJdGVzdEZhaWxlZCgiOSBjb2xvcnMgYXJlIG5lZWRlZCAoOSBtaXBzIGZvciAyNTZ4MjU2
IHRleHR1cmUpLCBvbmx5IGhhdmUgIiArIGNvbG9ycy5sZW5ndGgpOworICAgIH0gZWxzZSB7CisJ
dGVzdFBhc3NlZCgiOSBjb2xvcnMgZm91bmQgKDkgbWlwcyBmb3IgMjU2eDI1NiB0ZXh0dXJlKSIp
OworICAgIH0KKworICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmlu
ZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKAorCWds
LlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVF9NSVBNQVBfTElO
RUFSKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFH
X0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5SRVBFQVQpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLlJFUEVBVCk7CisKKyAgICBmb3IgKHZh
ciBpaSA9IDA7IGlpIDwgY29sb3JzLmxlbmd0aDsgKytpaSkgeworCXZhciBjb2xvciA9IGNvbG9y
c1tpaV07CisJdmFyIHNpemUgPSBNYXRoLnBvdygyLCBjb2xvcnMubGVuZ3RoIC0gaWkgLSAxKTsK
Kwl3dHUuZmlsbFRleHR1cmUoZ2wsIHRleCwgc2l6ZSwgc2l6ZSwgY29sb3IuY29sb3IsIGlpKTsK
KyAgICB9CisKKyAgICB2YXIgbG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJs
b2QiKTsKKworICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBjb2xvcnMubGVuZ3RoOyArK2lpKSB7
CisJZ2wudW5pZm9ybTFmKGxvYywgaWkpOworCXZhciBjb2xvciA9IGNvbG9yc1tpaV07CisJd3R1
LmRyYXdRdWFkKGdsKTsKKwl3dHUuY2hlY2tDYW52YXMoCisJICAgIGdsLCBjb2xvci5jb2xvciwK
KwkgICAgIjI1NngyNTYgdGV4dHVyZSBkcmF3biB0byAyNTZ4MjU2IGRlc3Qgd2l0aCBsb2QgPSAi
ICsgaWkgKworCQkiIHNob3VsZCBiZSAiICsgY29sb3IubmFtZSk7CisgICAgfQorCisgICAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMuIik7Cit9
CisKK2Z1bmN0aW9uIHJ1blVuaXF1ZU9iamVjdFRlc3QoKQoreworICAgIGRlYnVnKCJUZXN0aW5n
IHRoYXQgZ2V0RXh0ZW5zaW9uKCkgcmV0dXJucyB0aGUgc2FtZSBvYmplY3QgZWFjaCB0aW1lIik7
CisgICAgZ2wuZ2V0RXh0ZW5zaW9uKCJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIikubXlQcm9wZXJ0
eSA9IDI7CisgICAgZ2MoKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0RXh0ZW5zaW9uKCJFWFRfc2hh
ZGVyX3RleHR1cmVfbG9kIikubXlQcm9wZXJ0eScsICcyJyk7Cit9CisKK2Z1bmN0aW9uIHJ1blJl
ZmVyZW5jZUN5Y2xlVGVzdCgpCit7CisgICAgLy8gY3JlYXRlIHNvbWUgcmVmZXJlbmNlIGN5Y2xl
cy4gVGhlIGdvYWwgaXMgdG8gc2VlIGlmIHRoZXkgY2F1c2UgbGVha3MuIFRoZSBwb2ludCBpcyB0
aGF0CisgICAgLy8gc29tZSBicm93c2VyIHRlc3QgcnVubmVycyBoYXZlIGluc3RydW1lbnRhdGlv
biB0byBkZXRlY3QgbGVha2VkIHJlZmNvdW50ZWQgb2JqZWN0cy4KKworICAgIGRlYnVnKCJUZXN0
aW5nIHJlZmVyZW5jZSBjeWNsZXMgYmV0d2VlbiBjb250ZXh0IGFuZCBleHRlbnNpb24gb2JqZWN0
cyIpOworICAgIHZhciBleHQgPSBnbC5nZXRFeHRlbnNpb24oIkVYVF9zaGFkZXJfdGV4dHVyZV9s
b2QiKTsKKworICAgIC8vIGNyZWF0ZSBjeWNsZSBiZXR3ZWVuIGV4dGVuc2lvbiBhbmQgY29udGV4
dCwgc2luY2UgdGhlIGNvbnRleHQgaGFzIHRvIGhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIGV4dGVu
c2lvbgorICAgIGV4dC5jb250ZXh0ID0gZ2w7CisKKyAgICAvLyBjcmVhdGUgYSBzZWxmLWN5Y2xl
IG9uIHRoZSBleHRlbnNpb24gb2JqZWN0CisgICAgZXh0LmV4dCA9IGV4dDsKK30KKworZGVidWco
IiIpOworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD5maW5p
c2hUZXN0KCk7PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231192</attachid>
            <date>2014-05-09 16:05:26 -0700</date>
            <delta_ts>2014-05-12 13:14:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128985-20140509160503.patch</filename>
            <type>text/plain</type>
            <size>44245</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODU1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE0LTA1LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEVYVF9zaGFkZXJfdGV4dHVyZV9sb2QgaW4gV2ViR0wuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg5ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzE2MTExMzk2PgorCisgICAgICAgIEJhc2VkIG9uIENocm9taXVtIHBhdGNoIGJ5IGJham9uZXNA
Y2hyb21pdW0ub3JnLgorICAgICAgICBodHRwczovL3NyYy5jaHJvbWl1bS5vcmcvdmlld3ZjL2Js
aW5rP3JldmlzaW9uPTE3MTQ2NSZ2aWV3PXJldmlzaW9uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2ViZ2wvY29uZm9ybWFuY2UvZXh0ZW5z
aW9ucy9leHQtc2hhZGVyLXRleHR1cmUtbG9kLmh0bWwKKyAgICAgICAgCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBB
ZGRlZCBuZXcgRVhUU2hhZGVyVGV4dHVyZUxPRCBmaWxlcy4KKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
b0pTKToKKyAgICAgICAgQWRkZWQgRVhUU2hhZGVyVGV4dHVyZUxPRC4KKyAgICAgICAgKiBodG1s
L2NhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpFWFRTaGFkZXJUZXh0dXJlTE9EOjpFWFRTaGFkZXJUZXh0dXJlTE9EKToKKyAgICAgICAgKFdl
YkNvcmU6OkVYVFNoYWRlclRleHR1cmVMT0Q6On5FWFRTaGFkZXJUZXh0dXJlTE9EKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVYVFNoYWRlclRleHR1cmVMT0Q6OmdldE5hbWUpOgorICAgICAgICAqIGh0
bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaDogQWRkZWQuCisgICAgICAgICogaHRtbC9j
YW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMRXh0ZW5zaW9uLmg6CisgICAgICAgIEFkZGVkIEVYVFNoYWRlclRleHR1cmVMT0RO
YW1lLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcDoKKyAgICAgICAgUmVt
b3ZlZCB1bnVzZWQgaW5jbHVzaW9uIG9mIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oLgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbik6CisgICAgICAg
IEFkZGVkIEVYVF9zaGFkZXJfdGV4dHVyZV9sb2QuCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgIEFkZGVkIGEgRVhUU2hhZGVyVGV4dHVyZUxP
RCBtZW1iZXIgdmFyaWFibGUuCisKIDIwMTQtMDUtMDkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE2ODUxOCk6IE11bHRpcGxlIHRl
c3RzIGZvciB3b3JrZXJzIGluIGJsb2JzIGFzc2VydApJbmRleDogU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJ
KHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC01MDYsNiArNTA2LDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAg
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5pZGwKICAgICBodG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCiAgICAgaHRtbC9jYW52YXMvRE9NUGF0aC5pZGwK
KyAgICBodG1sL2NhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmlkbAogICAgIGh0bWwvY2FudmFz
L0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICBodG1sL2NhbnZhcy9PRVNFbGVt
ZW50SW5kZXhVaW50LmlkbAogICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMu
aWRsCkBAIC0xNjUyLDYgKzE2NTMsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCisg
ICAgaHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAKICAgICBodG1sL2NhbnZhcy9F
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwCiAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVu
dEluZGV4VWludC5jcHAKICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNw
cApAQCAtMjc4Nyw2ICsyNzg5LDcgQEAgaWYgKEVOQUJMRV9XRUJHTCkKIAogICAgIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICBodG1sL2NhbnZhcy9BTkdMRUluc3RhbmNlZEFy
cmF5cy5jcHAKKyAgICAgICAgaHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAKICAg
ICAgICAgaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcAogICAgICAg
ICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcAogICAgICAgICBodG1sL2NhbnZh
cy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcApAQCAtMjgyNCw2ICsyODI3LDcgQEAgaWYgKEVO
QUJMRV9XRUJHTCkKICAgICApCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMKICAg
ICAgICAgaHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuaWRsCisgICAgICAgIGh0bWwv
Y2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL0VYVFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVu
dEluZGV4VWludC5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5pZGwKQEAgLTI5MjksMTEgKzI5MzMsMTEgQEAgaWYgKEVOQUJMRV9RVU9UQSBPUiBQT1JUIFNU
UkVRVUFMICJHVEsiKQogZW5kaWYgKCkKIAogbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisg
ICAgcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9UZXh0
RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAKICAgICBwbGF0Zm9ybS90ZXh0L2ljdS9VVGV4dFByb3Zp
ZGVyLmNwcAogICAgIHBsYXRmb3JtL3RleHQvaWN1L1VUZXh0UHJvdmlkZXJMYXRpbjEuY3BwCiAg
ICAgcGxhdGZvcm0vdGV4dC9pY3UvVVRleHRQcm92aWRlclVURjE2LmNwcAotICAgIHBsYXRmb3Jt
L3RleHQvVGV4dENvZGVjSUNVLmNwcAotICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nRGV0
ZWN0b3JJQ1UuY3BwCiApCiBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAke0lDVV9JTkNMVURFX0RJUlN9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3Bw
CShyZXZpc2lvbiAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJKU0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQuY3BwIgogI2luY2x1ZGUgIkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cCIKICNpZiBFTkFCTEUoV0VCR0wpCisjaW5jbHVkZSAiSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNw
cCIKICNpbmNsdWRlICJKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAiCiAjaW5jbHVk
ZSAiSlNPRVNFbGVtZW50SW5kZXhVaW50LmNwcCIKICNpbmNsdWRlICJKU09FU1N0YW5kYXJkRGVy
aXZhdGl2ZXMuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lv
biAxNjgzOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5n
IGNvcHkpCkBAIC00MTQsNiArNDE0LDcgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBcCiAgICAg
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0RPTVBhdGguaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRt
bC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgXApJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNjgzOTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOTgsNiArMjk4LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNw
cCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcV2ViQ29yZVxEZXJpdmVkU291cmNl
c1xKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtNjQ4OCw2ICs2NTAyLDcgQEAKICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXEFOR0xFSW5zdGFuY2VkQXJyYXlzLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXENhbnZhc0NvbnRleHRB
dHRyaWJ1dGVzLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFz
XENhbnZhc1BhdGhNZXRob2RzLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0
bWxcY2FudmFzXEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5caHRtbFxjYW52YXNcRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXE9FU0VsZW1lbnRJbmRleFVp
bnQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNcT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5jcHAiIC8+CkBAIC0xODU0Nyw2ICsxODU2Miw3IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFy
Y2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcWE1MVmlld2VySlMuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xYUGF0
aEdyYW1tYXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVxXZWJDb3JlXERlcml2ZWRTb3VyY2Vz
XEpTQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVxXZWJDb3Jl
XERlcml2ZWRTb3VyY2VzXEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRl
Y3R1cmUpXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9w
aWMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTT0VT
RWxlbWVudEluZGV4VWludC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXFdlYkNvcmVcRGVyaXZl
ZFNvdXJjZXNcSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmgiIC8+CkBAIC0xODcyMiw2ICsxODcz
OCw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXGNhbnZhc1xBTkdMRUluc3Rh
bmNlZEFycmF5cy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNc
Q2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGh0bWxcY2FudmFzXENhbnZhc1BhdGhNZXRob2RzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxodG1sXGNhbnZhc1xFWFRTaGFkZXJUZXh0dXJlTE9ELmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxodG1sXGNhbnZhc1xFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXE9FU0VsZW1lbnRJ
bmRleFVpbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCIgLz4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE2
ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtNjUxMSw2ICs2NTExLDkgQEAKICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0
ZWN0dXJlKVxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTQU5HTEVJbnN0YW5jZWRBcnJheXMuY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTRVhUU2hhZGVy
VGV4dHVyZUxPRC5jcHAiPgorICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgor
ICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXFdlYkNvcmVcRGVyaXZlZFNvdXJj
ZXNcSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVy
aXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTY2MzcsNiArNjY0MCw5
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXGNhbnZhc1xPRVNWZXJ0ZXhBcnJh
eU9iamVjdC5jcHAiPgogICAgICAgPEZpbHRlcj5odG1sXGNhbnZhczwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNcRVhUU2hh
ZGVyVGV4dHVyZUxPRC5jcHAiPgorICAgICAgPEZpbHRlcj5odG1sXGNhbnZhczwvRmlsdGVyPgor
ICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNc
RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCI+CiAgICAgICA8RmlsdGVyPmh0bWxcY2Fu
dmFzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xNDMzNyw2ICsxNDM0Myw5IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0
Zm9ybUFyY2hpdGVjdHVyZSlcV2ViQ29yZVxEZXJpdmVkU291cmNlc1xKU1dlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuaCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcV2ViQ29yZVxEZXJpdmVkU291cmNl
c1xKU0VYVFNoYWRlclRleHR1cmVMT0QuaCI+CisgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2Vz
PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcV2ViQ29yZVxE
ZXJpdmVkU291cmNlc1xKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIj4KICAgICAgIDxG
aWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTE0NDY5
LDYgKzE0NDc4LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXE9F
U1ZlcnRleEFycmF5T2JqZWN0LmgiPgogICAgICAgPEZpbHRlcj5odG1sXGNhbnZhczwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxjYW52
YXNcRVhUU2hhZGVyVGV4dHVyZUxPRC5oIj4KKyAgICAgIDxGaWx0ZXI+aHRtbFxjYW52YXM8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxc
Y2FudmFzXEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIj4KICAgICAgIDxGaWx0ZXI+aHRt
bFxjYW52YXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2ODM5
MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMjA0Nyw2ICsyMDQ3LDEwIEBACiAJCTVCMzA2OTVEMThCM0QzNDUw
MDk5RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCMzA2OTVBMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERy
YXdCdWZmZXJzLmNwcCAqLzsgfTsKIAkJNUIzMDY5NUUxOEIzRDM0NTAwOTlENUU4IC8qIFdlYkdM
RHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVCMzA2OTVCMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJzLmggKi87IH07
CiAJCTVCN0EyMDhEMkUxMjk3OUI0QUUxOURFNiAvKiBSZW5kZXJNYXRoTUxTcGFjZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQkZDQjBFQkZGNUNE
NzdFQkVCMzUzOTUgLyogUmVuZGVyTWF0aE1MU3BhY2UuY3BwICovOyB9OworCQk1QzQzMDRCMDE5
MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzQzMDRBRDE5MUFDOTA4MDAwRTJCQzAg
LyogRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgKi87IH07CisJCTVDNDMwNEIxMTkxQUM5MDgwMDBF
MkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1QzQzMDRBRTE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVy
VGV4dHVyZUxPRC5oICovOyB9OworCQk1QzQzMDRCNTE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRT
aGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDNDMwNEIzMTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVM
T0QuY3BwICovOyB9OworCQk1QzQzMDRCNjE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJU
ZXh0dXJlTE9ELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzQzMDRCNDE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmggKi87
IH07CiAJCTVEMjFBODAyMTNFQ0U1REYwMEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQyMUE4MDAxM0VDRTVE
RjAwQkI3MDY0IC8qIFdlYlZUVFBhcnNlci5jcHAgKi87IH07CiAJCTVEMjFBODAzMTNFQ0U1REYw
MEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVEMjFBODAxMTNFQ0U1REYwMEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIu
aCAqLzsgfTsKIAkJNUQ4NzRGMTMwRDE2MUQzMjAwNzk2QzNCIC8qIE5ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
ci5jcHAgKi87IH07CkBAIC05MDY5LDYgKzkwNzMsMTEgQEAKIAkJNUIzMDY5NUExOEIzRDM0NTAw
OTlENUU4IC8qIFdlYkdMRHJhd0J1ZmZlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gV2ViR0xEcmF3QnVmZmVycy5jcHA7IHBhdGggPSBjYW52YXMvV2ViR0xEcmF3
QnVmZmVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVCMzA2OTVCMThCM0Qz
NDUwMDk5RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdlYkdMRHJhd0J1ZmZlcnMuaDsgcGF0aCA9IGNhbnZhcy9XZWJHTERyYXdCdWZm
ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVCMzA2OTVDMThCM0QzNDUwMDk5
RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJH
TERyYXdCdWZmZXJzLmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJHTERyYXdCdWZmZXJzLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM0MzA0QUQxOTFBQzkwODAwMEUyQkMwIC8qIEVY
VFNoYWRlclRleHR1cmVMT0QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHA7IHBhdGggPSBjYW52YXMvRVhUU2hhZGVyVGV4dHVy
ZUxPRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNDMwNEFFMTkxQUM5MDgw
MDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEVYVFNoYWRlclRleHR1cmVMT0QuaDsgcGF0aCA9IGNhbnZhcy9FWFRTaGFkZXJU
ZXh0dXJlTE9ELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNDMwNEFGMTkxQUM5
MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBFWFRTaGFkZXJUZXh0dXJlTE9ELmlkbDsgcGF0aCA9IGNhbnZhcy9FWFRTaGFkZXJUZXh0
dXJlTE9ELmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM0MzA0QjMxOTFBRUY0
NjAwMEUyQkMwIC8qIEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0VYVFNoYWRlclRleHR1cmVMT0QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1QzQzMDRCNDE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFk
ZXJUZXh0dXJlTE9ELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRVhUU2hh
ZGVyVGV4dHVyZUxPRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDIxQTgwMDEz
RUNFNURGMDBCQjcwNjQgLyogV2ViVlRUUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYlZUVFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVEMjFBODAxMTNFQ0U1REYwMEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVlRUUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVENEI4QzUyMTFFNTJDOEIwMEJCQjYyRiAvKiBXZWJDb3JlLmV4cC5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJDb3JlLmV4cC5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE1NTI3LDYgKzE1NTM2LDkgQEAKIAkJNDk0ODRGQUUxMDJDRjAxRTAw
MTg3REQzIC8qIGNhbnZhcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJNUM0MzA0QUQxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0Qu
Y3BwICovLAorCQkJCTVDNDMwNEFFMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJl
TE9ELmggKi8sCisJCQkJNUM0MzA0QUYxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1
cmVMT0QuaWRsICovLAogCQkJCTMxQTc5NUMxMTg4OEI3MjQwMDM4MkY5MCAvKiBBTkdMRUluc3Rh
bmNlZEFycmF5cy5jcHAgKi8sCiAJCQkJMzFBNzk1QzIxODg4QjcyNDAwMzgyRjkwIC8qIEFOR0xF
SW5zdGFuY2VkQXJyYXlzLmggKi8sCiAJCQkJMzFBNzk1QzMxODg4QjcyNDAwMzgyRjkwIC8qIEFO
R0xFSW5zdGFuY2VkQXJyYXlzLmlkbCAqLywKQEAgLTE4MzI1LDYgKzE4MzM3LDggQEAKIAkJQTgz
Qjc5MDgwQ0NBRkYyQjAwMEIwODI1IC8qIEhUTUwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTVDNDMwNEIzMTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNo
YWRlclRleHR1cmVMT0QuY3BwICovLAorCQkJCTVDNDMwNEI0MTkxQUVGNDYwMDBFMkJDMCAvKiBK
U0VYVFNoYWRlclRleHR1cmVMT0QuaCAqLywKIAkJCQkzMUE3OTVDNDE4ODhCQUQxMDAzODJGOTAg
LyogSlNBTkdMRUluc3RhbmNlZEFycmF5cy5jcHAgKi8sCiAJCQkJMzFBNzk1QzUxODg4QkFEMTAw
MzgyRjkwIC8qIEpTQU5HTEVJbnN0YW5jZWRBcnJheXMuaCAqLywKIAkJCQlCRThFRjAzRTE3MUM4
RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmNwcCAqLywKQEAgLTIzMzI4LDYgKzIzMzQyLDcg
QEAKIAkJCQlBODBFNkNFNjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJpbWl0aXZlVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCUUxRUQ4QUMzMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNGRjBBMTk4OUNBMDA3
RkI4QzUgLyogQ1NTUHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTVDNDMwNEI2MTkxQUVG
NDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTc4RDAyQkM2MTU0QTE4REYwMEI2MkQwNSAvKiBDU1NQcm9wZXJ0eUFuaW1hdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU2NTgwRjQwOUQxMkIyMDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFt
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgyRTNEOERGMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQ
cm9wZXJ0eVNvdXJjZURhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjM2MDIsNiArMjM2MTcsNyBA
QAogCQkJCTg1REY4MTk5MEFBNzdFNEIwMDQ4NkFENyAvKiBET01IVE1MSUZyYW1lRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQjEwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxJ
RnJhbWVFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1REY4MTI5MEFBNzc4
NzIwMDQ4NkFENyAvKiBET01IVE1MSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1
QzQzMDRCMTE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODVFNzExQjIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxJbWFnZUVsZW1l
bnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVGMzJBRUMwQUE2M0I4NzAwRkYzMTg0
IC8qIERPTUhUTUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUIzMEFD
NUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSW5wdXRFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjc2OTgsNiArMjc3MTQsNyBAQAogCQkJCUYzODEwQzFCMTM2NUE0OTYwMEVENkUz
MyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzUwQjcz
NTEzRjEzNzdEMDA4ODBDNDMgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDQ2RjA0RTE3Qjk2RkJEMDA1NjQ3RjAgLyogSW50UG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNUM0MzA0QjAxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVM
T0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1NjAwQjA1MzgxNDAwMkNFNjRGIC8qIElu
dFBvaW50Q0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1N0MwQjA1MzgxNDAwMkNFNjRG
IC8qIEludFBvaW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1NzMwQjA1MzgxNDAw
MkNFNjRGIC8qIEludFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzc1MSw2ICsyNzc2OCw3
IEBACiAJCQkJNjVERjMxRjMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTQ2hhcmFjdGVyRGF0YS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0MwNjU4NzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRS
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBK
U0NsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTVDNDMwNEI1MTkxQUVGNDYw
MDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNBODNFNEYwRDdDRTFFOTAwMzQyMUE4IC8qIEpTRGF0YVRyYW5zZmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDQTgzRTUyMEQ3Q0UyMDUwMDM0MjFBOCAvKiBKU0RhdGFUcmFuc2ZlckN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUZCNTUwNTExM0UzRTkxMDA4MjExNzYgLyogSlND
bG9zZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNw
cAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMSArMzAs
MTMgQEAKICNpbmNsdWRlICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCiAjaW5jbHVkZSAi
QU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKKyNpbmNsdWRlICJFWFRTaGFkZXJUZXh0dXJlTE9ELmgi
CiAjaW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIK
KyNpbmNsdWRlICJKU0VYVFNoYWRlclRleHR1cmVMT0QuaCIKICNpbmNsdWRlICJKU0VYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2luY2x1ZGUgIkpTSFRNTENhbnZhc0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJKU0hUTUxJbWFnZUVsZW1lbnQuaCIKQEAgLTIwNSw2ICsyMDcsOCBAQCBzdGF0
aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNECiAgICAgc3dpdGNoIChleHRlbnNp
b24tPmdldE5hbWUoKSkgewogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMTG9zZUNvbnRl
eHROYW1lOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19j
YXN0PFdlYkdMTG9zZUNvbnRleHQqPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5z
aW9uOjpFWFRTaGFkZXJUZXh0dXJlTE9ETmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRTaGFkZXJUZXh0dXJlTE9EKj4oZXh0ZW5zaW9u
KSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGlj
TmFtZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdl
YkdMRXh0ZW5zaW9uOjpPRVNTdGFuZGFyZERlcml2YXRpdmVzTmFtZToKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuY3BwCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxP
RC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQkdMKQorI2luY2x1ZGUgIkVYVFNoYWRlclRleHR1cmVM
T0QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitFWFRTaGFkZXJUZXh0dXJlTE9EOjpFWFRT
aGFkZXJUZXh0dXJlTE9EKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IFdl
YkdMRXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK0VYVFNoYWRlclRleHR1cmVMT0Q6On5FWFRT
aGFkZXJUZXh0dXJlTE9EKCkKK3sKK30KKworV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUg
RVhUU2hhZGVyVGV4dHVyZUxPRDo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVYVFNo
YWRlclRleHR1cmVMT0ROYW1lOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCR0wpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRT
aGFkZXJUZXh0dXJlTE9ELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgRVhUU2hhZGVyVGV4dHVyZUxPRF9oCisjZGVmaW5lIEVY
VFNoYWRlclRleHR1cmVMT0RfaAorCisjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFWFRTaGFkZXJUZXh0dXJlTE9EIDogcHVibGljIFdl
YkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBFWFRTaGFkZXJUZXh0dXJlTE9E
KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworICAgIHZpcnR1YWwgfkVYVFNoYWRlclRleHR1cmVM
T0QoKTsKKworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qgb3ZlcnJp
ZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFWFRTaGFkZXJU
ZXh0dXJlTE9EX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFNoYWRlclRl
eHR1cmVMT0QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VY
VFNoYWRlclRleHR1cmVMT0QuaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworWworICAgIE5vSW50ZXJmYWNlT2JqZWN0LAorICAgIENvbmRpdGlvbmFs
PVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbFdlYkdMUmVuZGVyaW5nQ29udGV4
dAorXSBpbnRlcmZhY2UgRVhUU2hhZGVyVGV4dHVyZUxPRCB7Cit9OwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCShyZXZpc2lvbiAxNjgzOTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw2ICszNiw3IEBAIHB1YmxpYzoKICAgICAvLyBFeHRlbnNpb24gbmFtZXMgYXJl
IG5lZWRlZCB0byBwcm9wZXJseSB3cmFwIGluc3RhbmNlcyBpbiBKYXZhU2NyaXB0IG9iamVjdHMu
CiAgICAgZW51bSBFeHRlbnNpb25OYW1lIHsKICAgICAgICAgV2ViR0xMb3NlQ29udGV4dE5hbWUs
CisgICAgICAgIEVYVFNoYWRlclRleHR1cmVMT0ROYW1lLAogICAgICAgICBFWFRUZXh0dXJlRmls
dGVyQW5pc290cm9waWNOYW1lLAogICAgICAgICBPRVNUZXh0dXJlRmxvYXROYW1lLAogICAgICAg
ICBPRVNUZXh0dXJlRmxvYXRMaW5lYXJOYW1lLApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMT2JqZWN0LmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsy
OSw2IEBACiAKICNpbmNsdWRlICJXZWJHTE9iamVjdC5oIgogCi0jaW5jbHVkZSAiRVhUVGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMz
VEMuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMRGVi
dWdSZW5kZXJlckluZm8uaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5j
bHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFWFRT
aGFkZXJUZXh0dXJlTE9ELmgiCiAjaW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGlj
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5o
IgpAQCAtMjQyOSw2ICsyNDMwLDE0IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmcKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAorICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiRVhUX3NoYWRl
cl90ZXh0dXJlX2xvZCIpCisgICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5z
dXBwb3J0cygiR0xfQVJCX3NoYWRlcl90ZXh0dXJlX2xvZCIpKSB7CisgICAgICAgIGlmICghbV9l
eHRTaGFkZXJUZXh0dXJlTE9EKSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpOworICAgICAg
ICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRTaGFkZXJU
ZXh0dXJlTE9EPih0aGlzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9leHRTaGFkZXJU
ZXh0dXJlTE9ELmdldCgpOworICAgIH0KICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwg
IldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKQogICAgICAgICAmJiBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9h
bmlzb3Ryb3BpYyIpKSB7CiAgICAgICAgIGlmICghbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9w
aWMpIHsKQEAgLTMwMzksNiArMzA0OCw4IEBAIFZlY3RvcjxTdHJpbmc+IFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6Z2UKICAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfaGFsZl9mbG9h
dF9saW5lYXIiKTsKICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRz
KCJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgi
T0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIik7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLT5zdXBwb3J0cygiR0xfQVJCX3NoYWRlcl90ZXh0dXJlX2xvZCIpKQorICAgICAgICBy
ZXN1bHQuYXBwZW5kKCJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIik7CiAgICAgaWYgKG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNv
dHJvcGljIikpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9FWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMiKTsKICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1
cHBvcnRzKCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpKQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9u
IDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQU5HTEVJbnN0YW5jZWRBcnJheXM7CiBjbGFzcyBFWFRUZXh0dXJlRmlsdGVy
QW5pc290cm9waWM7CitjbGFzcyBFWFRTaGFkZXJUZXh0dXJlTE9EOwogY2xhc3MgSFRNTEltYWdl
RWxlbWVudDsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKQEAg
LTUzMyw2ICs1MzQsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gRW5hYmxlZCBleHRlbnNpb24gb2Jq
ZWN0cy4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPiBt
X2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RVhUU2hh
ZGVyVGV4dHVyZUxPRD4gbV9leHRTaGFkZXJUZXh0dXJlTE9EOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxPRVNUZXh0dXJlRmxvYXQ+IG1fb2VzVGV4dHVyZUZsb2F0OwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+IG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxPRVNUZXh0dXJlSGFsZkZsb2F0PiBtX29lc1RleHR1cmVIYWxmRmxvYXQ7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9u
czNET3BlbkdMLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAkocmV2aXNpb24gMTY4MzkyKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5H
TC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5OCw3ICsxOTgsMTAgQEAgYm9vbCBFeHRlbnNpb25z
M0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5zaQogICAgIC8vIERlc2t0b3AgR0wgYWx3YXlzIHN1cHBv
cnRzIFVOU0lHTkVEX0lOVCBpbmRpY2VzCiAgICAgaWYgKG5hbWUgPT0gIkdMX09FU19lbGVtZW50
X2luZGV4X3VpbnQiKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLQorICAgIAorICAgIGlmIChuYW1l
ID09ICJHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIikKKyAgICAgICAgcmV0dXJuIG1fYXZhaWxh
YmxlRXh0ZW5zaW9ucy5jb250YWlucygiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpOworICAg
IAogICAgIGlmIChuYW1lID09ICJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKQog
ICAgICAgICByZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKCJHTF9FWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTENvbW1vbi5jcHAJKHJldmlzaW9uIDE2ODM5MikKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzYsNiArMTM2LDE0IEBAIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMQ29t
bW9uOjplbnN1cmVFbmEKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoRXh0ZW5z
aW9uczNEOjpNQVhfRFJBV19CVUZGRVJTX0VYVCwgJkFOR0xFUmVzb3VyY2VzLk1heERyYXdCdWZm
ZXJzKTsKICAgICAgICAgICAgIGNvbXBpbGVyLnNldFJlc291cmNlcyhBTkdMRVJlc291cmNlcyk7
CiAgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gIkdMX0VYVF9zaGFkZXJfdGV4dHVy
ZV9sb2QiKSB7CisgICAgICAgIC8vIEVuYWJsZSBzdXBwb3J0IGluIEFOR0xFIChpZiBub3QgZW5h
YmxlZCBhbHJlYWR5KQorICAgICAgICBBTkdMRVdlYktpdEJyaWRnZSYgY29tcGlsZXIgPSBtX2Nv
bnRleHQtPm1fY29tcGlsZXI7CisgICAgICAgIFNoQnVpbHRJblJlc291cmNlcyBBTkdMRVJlc291
cmNlcyA9IGNvbXBpbGVyLmdldFJlc291cmNlcygpOworICAgICAgICBpZiAoIUFOR0xFUmVzb3Vy
Y2VzLkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QpIHsKKyAgICAgICAgICAgIEFOR0xFUmVzb3VyY2Vz
LkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QgPSAxOworICAgICAgICAgICAgY29tcGlsZXIuc2V0UmVz
b3VyY2VzKEFOR0xFUmVzb3VyY2VzKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gMTY4NTU1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDUtMDkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgRVhUX3NoYWRlcl90ZXh0dXJl
X2xvZCBpbiBXZWJHTC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyODk4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTYxMTEzOTY+CisKKyAgICAg
ICAgQmFzZWQgb24gRmlyZWZveCBwYXRjaCBieSBWbGFkaW1pciBWdWtpY2V2aWMuCisgICAgICAg
IGh0dHBzOi8vYnVnOTY1ODQ4LmJ1Z3ppbGxhLm1vemlsbGEub3JnL2F0dGFjaG1lbnQuY2dpP2lk
PTgzNjc5OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHdlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0LXNoYWRlci10ZXh0dXJlLWxvZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lv
bnMvZXh0LXNoYWRlci10ZXh0dXJlLWxvZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC1zaGFk
ZXItdGV4dHVyZS1sb2QuaHRtbDogQWRkZWQuCisKIDIwMTQtMDUtMDkgIEFsZXhleSBQcm9za3Vy
eWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE2ODUxOCk6IE11
bHRpcGxlIHRlc3RzIGZvciB3b3JrZXJzIGluIGJsb2JzIGFzc2VydApJbmRleDogTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9leHQtc2hhZGVyLXRleHR1cmUtbG9kLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9l
eHRlbnNpb25zL2V4dC1zaGFkZXItdGV4dHVyZS1sb2QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9leHQtc2hhZGVy
LXRleHR1cmUtbG9kLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUgQEAK
K1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC1zaGFkZXItdGV4dHVyZS1sb2Qu
aHRtbAorUEFTUworCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9leHRlbnNp
b25zL2V4dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy93ZWJnbC9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lv
bnMvZXh0LXNoYWRlci10ZXh0dXJlLWxvZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTggQEAKKzwhLS0gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLXdlYmds
LXRlc3RzLnB5LiBETyBOT1QgRURJVCAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0
IFdyYXBwZXIgZm9yIGV4dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRtbDwvdGl0bGU+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVs
b3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBo
cmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNp
b25zL2V4dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy9leHQtc2hhZGVyLXRleHR1cmUtbG9kLmh0
bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJh
bWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRl
bnNpb25zL2V4dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2
MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25z
L2V4dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL2V4
dC1zaGFkZXItdGV4dHVyZS1sb2QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvZXh0
LXNoYWRlci10ZXh0dXJlLWxvZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjgwIEBA
Civvu78gPCEtLQorQ29weXJpZ2h0IChjKSAyMDExIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZS4KKyAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBFWFRfc2hhZGVyX3RleHR1cmVfbG9kIENvbmZvcm1hbmNl
IFRlc3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2Rl
c2t0b3AtZ2wtY29uc3RhbnRzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGNhbnZhcyBpZD0iY2Fu
dmFzIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgc3R5bGU9IndpZHRoOiA1MHB4OyBoZWlnaHQ6
IDUwcHg7Ij4gPC9jYW52YXM+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwhLS0gU2hhZGVy
cyBmb3IgdGVzdGluZyBzdGFuZGFyZCBkZXJpdmF0aXZlcyAtLT4KKworPCEtLSBTaGFkZXIgb21p
dHRpbmcgdGhlIHJlcXVpcmVkICNleHRlbnNpb24gcHJhZ21hIC0tPgorPHNjcmlwdCBpZD0ibWlz
c2luZ1ByYWdtYUZyYWdtZW50U2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KK3By
ZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwordmFyeWluZyB2ZWMyIHRleENvb3JkMHY7Cit2b2lkIG1h
aW4oKSB7CisgICAgdmVjNCBjb2xvciA9IHRleHR1cmUyRExvZEVYVCh0ZXgsIHRleENvb3JkMHYs
IGxvZCk7CisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChkeCwgZHksIHcsIDEuMCk7Cit9Cis8L3Nj
cmlwdD4KKworPCEtLSBTaGFkZXIgdG8gdGVzdCBtYWNybyBkZWZpbml0aW9uIC0tPgorPHNjcmlw
dCBpZD0ibWFjcm9GcmFnbWVudFNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Citw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKK3ZvaWQgbWFpbigpIHsKKyNpZmRlZiBHTF9FWFRfc2hh
ZGVyX3RleHR1cmVfbG9kCisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAw
LjApOworI2Vsc2UKKyAgICAvLyBFcnJvciBleHBlY3RlZAorICAgICNlcnJvciBubyBHTF9FWFRf
c2hhZGVyX3RleHR1cmVfbG9kOworI2VuZGlmCit9Cis8L3NjcmlwdD4KKworPCEtLSBTaGFkZXIg
d2l0aCByZXF1aXJlZCAjZXh0ZW5zaW9uIHByYWdtYSAtLT4KKzxzY3JpcHQgaWQ9InRlc3RGcmFn
bWVudFNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisjZXh0ZW5zaW9uIEdMX0VY
VF9zaGFkZXJfdGV4dHVyZV9sb2QgOiBlbmFibGUKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
dmFyeWluZyB2ZWMyIHRleENvb3JkMHY7Cit1bmlmb3JtIGZsb2F0IGxvZDsKK3VuaWZvcm0gc2Ft
cGxlcjJEIHRleDsKK3ZvaWQgbWFpbigpIHsKKyAgICB2ZWM0IGNvbG9yID0gdGV4dHVyZTJETG9k
RVhUKHRleCwgdGV4Q29vcmQwdiwgbG9kKTsKKyAgICBnbF9GcmFnQ29sb3IgPSBjb2xvcjsKK30K
Kzwvc2NyaXB0PgorCis8IS0tIFNoYWRlcnMgdG8gbGluayB3aXRoIHRlc3QgZnJhZ21lbnQgc2hh
ZGVycyAtLT4KKzxzY3JpcHQgaWQ9Imdvb2RWZXJ0ZXhTaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gt
dmVydGV4Ij4KK2F0dHJpYnV0ZSB2ZWM0IHZQb3NpdGlvbjsKK2F0dHJpYnV0ZSB2ZWMyIHRleENv
b3JkMDsKK3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDB2Owordm9pZCBtYWluKCkgeworICAgIHRleENv
b3JkMHYgPSB0ZXhDb29yZDA7CisgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247Cit9Cis8L3Nj
cmlwdD4KKworPCEtLSBTaGFkZXJzIHRvIHRlc3Qgb3V0cHV0IC0tPgorPHNjcmlwdCBpZD0ib3V0
cHV0VmVydGV4U2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVj
NCB2UG9zaXRpb247CithdHRyaWJ1dGUgdmVjMiB0ZXhDb29yZDA7Cit2YXJ5aW5nIHZlYzIgdGV4
Q29vcmQwdjsKK3ZvaWQgbWFpbigpIHsKKyAgICB0ZXhDb29yZDB2ID0gdGV4Q29vcmQwOworICAg
IGdsX1Bvc2l0aW9uID0gdlBvc2l0aW9uOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJvdXRw
dXRGcmFnbWVudFNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisjZXh0ZW5zaW9u
IEdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QgOiByZXF1aXJlCitwcmVjaXNpb24gbWVkaXVtcCBm
bG9hdDsKK3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDB2OwordW5pZm9ybSBmbG9hdCBsb2Q7Cit1bmlm
b3JtIHNhbXBsZXIyRCB0ZXg7Cit2b2lkIG1haW4oKSB7CisgICAgdmVjNCBjb2xvciA9IHRleHR1
cmUyRExvZEVYVCh0ZXgsIHRleENvb3JkMHYsIGxvZCk7CisgICAgZ2xfRnJhZ0NvbG9yID0gY29s
b3I7Cit9Cis8L3NjcmlwdD4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVy
aWZpZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIEVYVF9zaGFkZXJfdGV4dHVyZV9sb2QgZXh0
ZW5zaW9uLCBpZiBpdCBpcyBhdmFpbGFibGUuIik7CisKK2RlYnVnKCIiKTsKKwordmFyIHd0dSA9
IFdlYkdMVGVzdFV0aWxzOwordmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
YW52YXMiKTsKKworc2hvdWxkQmUoImNhbnZhcy53aWR0aCIsICIyNTYiKTsKK3Nob3VsZEJlKCJj
YW52YXMuaGVpZ2h0IiwgIjI1NiIpOworCit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNh
bnZhcyk7Cit2YXIgZXh0ID0gbnVsbDsKKworaWYgKCFnbCkgeworICAgIHRlc3RGYWlsZWQoIldl
YkdMIGNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK30gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgi
V2ViR0wgY29udGV4dCBleGlzdHMiKTsKKworICAgIC8vIFJ1biB0ZXN0cyB3aXRoIGV4dGVuc2lv
biBkaXNhYmxlZAorICAgIHJ1blNoYWRlclRlc3RzKGZhbHNlKTsKKworICAgIC8vIFF1ZXJ5IHRo
ZSBleHRlbnNpb24gYW5kIHN0b3JlIGdsb2JhbGx5IHNvIHNob3VsZEJlIGNhbiBhY2Nlc3MgaXQK
KyAgICBleHQgPSBnbC5nZXRFeHRlbnNpb24oIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKTsKKyAg
ICBpZiAoIWV4dCkgeworICAgICAgICB0ZXN0UGFzc2VkKCJObyBFWFRfc2hhZGVyX3RleHR1cmVf
bG9kIHN1cHBvcnQgLS0gdGhpcyBpcyBsZWdhbCIpOworCisgICAgICAgIHJ1blN1cHBvcnRlZFRl
c3QoZmFsc2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxs
eSBlbmFibGVkIEVYVF9zaGFkZXJfdGV4dHVyZV9sb2QgZXh0ZW5zaW9uIik7CisKKyAgICAgICAg
cnVuU3VwcG9ydGVkVGVzdCh0cnVlKTsKKworICAgICAgICBydW5TaGFkZXJUZXN0cyh0cnVlKTsK
KyAgICAgICAgcnVuT3V0cHV0VGVzdHMoKTsKKyAgICAgICAgcnVuVW5pcXVlT2JqZWN0VGVzdCgp
OworICAgICAgICBydW5SZWZlcmVuY2VDeWNsZVRlc3QoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IHJ1blN1cHBvcnRlZFRlc3QoZXh0ZW5zaW9uRW5hYmxlZCkgeworICAgIHZhciBzdXBwb3J0ZWQg
PSBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCk7CisgICAgaWYgKHN1cHBvcnRlZC5pbmRleE9m
KCJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIikgPj0gMCkgeworICAgICAgICBpZiAoZXh0ZW5zaW9u
RW5hYmxlZCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiRVhUX3NoYWRlcl90ZXh0dXJlX2xv
ZCBsaXN0ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJFWFRfc2hhZGVyX3RleHR1cmVf
bG9kIGxpc3RlZCBhcyBzdXBwb3J0ZWQgYnV0IGdldEV4dGVuc2lvbiBmYWlsZWQiKTsKKyAgICAg
ICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChleHRlbnNpb25FbmFibGVkKSB7CisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIG5vdCBsaXN0ZWQgYXMg
c3VwcG9ydGVkIGJ1dCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIG5vdCBsaXN0
ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gZmFpbGVkIC0tIHRoaXMgaXMgbGVnYWwi
KTsKKyAgICAgICAgfQorICAgIH0KK30KKworZnVuY3Rpb24gcnVuU2hhZGVyVGVzdHMoZXh0ZW5z
aW9uRW5hYmxlZCkgeworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdGluZyB2YXJpb3Vz
IHNoYWRlciBjb21waWxlcyB3aXRoIGV4dGVuc2lvbiAiICsgKGV4dGVuc2lvbkVuYWJsZWQgPyAi
ZW5hYmxlZCIgOiAiZGlzYWJsZWQiKSk7CisKKyAgICAvLyBFeHBlY3QgdGhlIG1hY3JvIHNoYWRl
ciB0byBzdWNjZWVkIE9OTFkgaWYgZW5hYmxlZAorICAgIHZhciBtYWNyb0ZyYWdtZW50UHJvZ3Jh
bSA9IHd0dS5sb2FkUHJvZ3JhbUZyb21TY3JpcHRFeHBlY3RFcnJvcihnbCwgImdvb2RWZXJ0ZXhT
aGFkZXIiLCAibWFjcm9GcmFnbWVudFNoYWRlciIpOworICAgIGlmIChleHRlbnNpb25FbmFibGVk
KSB7CisgICAgICAgIGlmIChtYWNyb0ZyYWdtZW50UHJvZ3JhbSkgeworICAgICAgICAgICAgLy8g
RXhwZWN0ZWQgcmVzdWx0CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJHTF9FWFRfc2hhZGVyX3Rl
eHR1cmVfbG9kIGRlZmluZWQgaW4gc2hhZGVycyB3aGVuIGV4dGVuc2lvbiBpcyBlbmFibGVkIik7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJHTF9FWFRfc2hhZGVy
X3RleHR1cmVfbG9kIG5vdCBkZWZpbmVkIGluIHNoYWRlcnMgd2hlbiBleHRlbnNpb24gaXMgZW5h
YmxlZCIpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1hY3JvRnJhZ21l
bnRQcm9ncmFtKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJHTF9FWFRfc2hhZGVyX3RleHR1
cmVfbG9kIGRlZmluZWQgaW4gc2hhZGVycyB3aGVuIGV4dGVuc2lvbiBpcyBkaXNhYmxlZCIpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiR0xfRVhUX3NoYWRlcl90
ZXh0dXJlX2xvZCBub3QgZGVmaW5lZCBpbiBzaGFkZXJzIHdoZW4gZXh0ZW5zaW9uIGRpc2FibGVk
Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBBbHdheXMgZXhwZWN0IHRoZSBzaGFkZXIg
bWlzc2luZyB0aGUgI3ByYWdtYSB0byBmYWlsICh3aGV0aGVyIGVuYWJsZWQgb3Igbm90KQorICAg
IHZhciBtaXNzaW5nUHJhZ21hRnJhZ21lbnRQcm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbVNj
cmlwdEV4cGVjdEVycm9yKGdsLCAiZ29vZFZlcnRleFNoYWRlciIsICJtaXNzaW5nUHJhZ21hRnJh
Z21lbnRTaGFkZXIiKTsKKyAgICBpZiAobWlzc2luZ1ByYWdtYUZyYWdtZW50UHJvZ3JhbSkgewor
ICAgICAgICB0ZXN0RmFpbGVkKCJTaGFkZXIgYnVpbHQtaW5zIGFsbG93ZWQgd2l0aG91dCAjZXh0
ZW5zaW9uIHByYWdtYSIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlNoYWRl
ciBidWlsdC1pbnMgZGlzYWxsb3dlZCB3aXRob3V0ICNleHRlbnNpb24gcHJhZ21hIik7CisgICAg
fQorCisgICAgLy8gVHJ5IHRvIGNvbXBpbGUgYSBzaGFkZXIgdXNpbmcgdGhlIGJ1aWx0LWlucyB0
aGF0IHNob3VsZCBvbmx5IHN1Y2NlZWQgaWYgZW5hYmxlZAorICAgIHZhciB0ZXN0RnJhZ21lbnRQ
cm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtRnJvbVNjcmlwdEV4cGVjdEVycm9yKGdsLCAiZ29vZFZl
cnRleFNoYWRlciIsICJ0ZXN0RnJhZ21lbnRTaGFkZXIiKTsKKyAgICBpZiAoZXh0ZW5zaW9uRW5h
YmxlZCkgeworICAgICAgICBpZiAodGVzdEZyYWdtZW50UHJvZ3JhbSkgeworICAgICAgICAgICAg
dGVzdFBhc3NlZCgiU2hhZGVyIGJ1aWx0LWlucyBjb21waWxlZCBzdWNjZXNzZnVsbHkgd2hlbiBl
eHRlbnNpb24gZW5hYmxlZCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEZh
aWxlZCgiU2hhZGVyIGJ1aWx0LWlucyBmYWlsZWQgdG8gY29tcGlsZSB3aGVuIGV4dGVuc2lvbiBl
bmFibGVkIik7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAodGVzdEZyYWdt
ZW50UHJvZ3JhbSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hhZGVyIGJ1aWx0LWlucyBj
b21waWxlZCBzdWNjZXNzZnVsbHkgd2hlbiBleHRlbnNpb24gZGlzYWJsZWQiKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNoYWRlciBidWlsdC1pbnMgZmFpbGVk
IHRvIGNvbXBpbGUgd2hlbiBleHRlbnNpb24gZGlzYWJsZWQiKTsKKyAgICAgICAgfQorICAgIH0K
K30KKworZnVuY3Rpb24gcnVuT3V0cHV0VGVzdHMoKSB7CisgICAgZGVidWcoIlRlc3RpbmcgdmFy
aW91cyBkcmF3cyBmb3IgdmFsaWQgYnVpbHQtaW4gZnVuY3Rpb24gYmVoYXZpb3IiKTsKKworICAg
IGNhbnZhcy53aWR0aCA9IDI1NjsgY2FudmFzLmhlaWdodCA9IDI1NjsKKyAgICBnbC52aWV3cG9y
dCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworCisgICAgdmFyIHByb2dyYW0g
PSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbIm91dHB1dFZlcnRleFNoYWRlciIsICJvdXRwdXRGcmFn
bWVudFNoYWRlciJdLCBbJ3ZQb3NpdGlvbicsICd0ZXhDb29yZDAnXSwgWzAsIDFdKTsKKyAgICB2
YXIgcXVhZFBhcmFtZXRlcnMgPSB3dHUuc2V0dXBVbml0UXVhZChnbCwgMCwgMSk7CisKKyAgICB2
YXIgY29sb3JzID0gWworCXtuYW1lOiAncmVkJywgY29sb3I6WzI1NSwgMCwgMCwgMjU1XX0sCisJ
e25hbWU6ICdncmVlbicsIGNvbG9yOlswLCAyNTUsIDAsIDI1NV19LAorCXtuYW1lOiAnYmx1ZScs
IGNvbG9yOlswLCAwLCAyNTUsIDI1NV19LAorCXtuYW1lOiAneWVsbG93JywgY29sb3I6WzI1NSwg
MjU1LCAwLCAyNTVdfSwKKwl7bmFtZTogJ21hZ2VudGEnLCBjb2xvcjpbMjU1LCAwLCAyNTUsIDI1
NV19LAorCXtuYW1lOiAnY3lhbicsIGNvbG9yOlswLCAyNTUsIDI1NSwgMjU1XX0sCisJe25hbWU6
ICdwaW5rJywgY29sb3I6WzI1NSwgMTI4LCAxMjgsIDI1NV19LAorCXtuYW1lOiAnZ3JheScsIGNv
bG9yOlsxMjgsIDEyOCwgMTI4LCAyNTVdfSwKKwl7bmFtZTogJ2xpZ2h0IGdyZWVuJywgY29sb3I6
WzEyOCwgMjU1LCAxMjgsIDI1NV19LAorICAgIF07CisKKyAgICBpZiAoY29sb3JzLmxlbmd0aCAh
PSA5KSB7CisJdGVzdEZhaWxlZCgiOSBjb2xvcnMgYXJlIG5lZWRlZCAoOSBtaXBzIGZvciAyNTZ4
MjU2IHRleHR1cmUpLCBvbmx5IGhhdmUgIiArIGNvbG9ycy5sZW5ndGgpOworICAgIH0gZWxzZSB7
CisJdGVzdFBhc3NlZCgiOSBjb2xvcnMgZm91bmQgKDkgbWlwcyBmb3IgMjU2eDI1NiB0ZXh0dXJl
KSIpOworICAgIH0KKworICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wu
YmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKAor
CWdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVF9NSVBNQVBf
TElORUFSKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
TUFHX0ZJTFRFUiwgZ2wuTElORUFSKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5SRVBFQVQpOworICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLlJFUEVBVCk7CisKKyAgICBmb3Ig
KHZhciBpaSA9IDA7IGlpIDwgY29sb3JzLmxlbmd0aDsgKytpaSkgeworCXZhciBjb2xvciA9IGNv
bG9yc1tpaV07CisJdmFyIHNpemUgPSBNYXRoLnBvdygyLCBjb2xvcnMubGVuZ3RoIC0gaWkgLSAx
KTsKKwl3dHUuZmlsbFRleHR1cmUoZ2wsIHRleCwgc2l6ZSwgc2l6ZSwgY29sb3IuY29sb3IsIGlp
KTsKKyAgICB9CisKKyAgICB2YXIgbG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0s
ICJsb2QiKTsKKworICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBjb2xvcnMubGVuZ3RoOyArK2lp
KSB7CisJZ2wudW5pZm9ybTFmKGxvYywgaWkpOworCXZhciBjb2xvciA9IGNvbG9yc1tpaV07CisJ
d3R1LmRyYXdRdWFkKGdsKTsKKwl3dHUuY2hlY2tDYW52YXMoCisJICAgIGdsLCBjb2xvci5jb2xv
ciwKKwkgICAgIjI1NngyNTYgdGV4dHVyZSBkcmF3biB0byAyNTZ4MjU2IGRlc3Qgd2l0aCBsb2Qg
PSAiICsgaWkgKworCQkiIHNob3VsZCBiZSAiICsgY29sb3IubmFtZSk7CisgICAgfQorCisgICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgIlNob3VsZCBiZSBubyBlcnJvcnMuIik7
Cit9CisKK2Z1bmN0aW9uIHJ1blVuaXF1ZU9iamVjdFRlc3QoKQoreworICAgIGRlYnVnKCJUZXN0
aW5nIHRoYXQgZ2V0RXh0ZW5zaW9uKCkgcmV0dXJucyB0aGUgc2FtZSBvYmplY3QgZWFjaCB0aW1l
Iik7CisgICAgZ2wuZ2V0RXh0ZW5zaW9uKCJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIikubXlQcm9w
ZXJ0eSA9IDI7CisgICAgZ2MoKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0RXh0ZW5zaW9uKCJFWFRf
c2hhZGVyX3RleHR1cmVfbG9kIikubXlQcm9wZXJ0eScsICcyJyk7Cit9CisKK2Z1bmN0aW9uIHJ1
blJlZmVyZW5jZUN5Y2xlVGVzdCgpCit7CisgICAgLy8gY3JlYXRlIHNvbWUgcmVmZXJlbmNlIGN5
Y2xlcy4gVGhlIGdvYWwgaXMgdG8gc2VlIGlmIHRoZXkgY2F1c2UgbGVha3MuIFRoZSBwb2ludCBp
cyB0aGF0CisgICAgLy8gc29tZSBicm93c2VyIHRlc3QgcnVubmVycyBoYXZlIGluc3RydW1lbnRh
dGlvbiB0byBkZXRlY3QgbGVha2VkIHJlZmNvdW50ZWQgb2JqZWN0cy4KKworICAgIGRlYnVnKCJU
ZXN0aW5nIHJlZmVyZW5jZSBjeWNsZXMgYmV0d2VlbiBjb250ZXh0IGFuZCBleHRlbnNpb24gb2Jq
ZWN0cyIpOworICAgIHZhciBleHQgPSBnbC5nZXRFeHRlbnNpb24oIkVYVF9zaGFkZXJfdGV4dHVy
ZV9sb2QiKTsKKworICAgIC8vIGNyZWF0ZSBjeWNsZSBiZXR3ZWVuIGV4dGVuc2lvbiBhbmQgY29u
dGV4dCwgc2luY2UgdGhlIGNvbnRleHQgaGFzIHRvIGhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIGV4
dGVuc2lvbgorICAgIGV4dC5jb250ZXh0ID0gZ2w7CisKKyAgICAvLyBjcmVhdGUgYSBzZWxmLWN5
Y2xlIG9uIHRoZSBleHRlbnNpb24gb2JqZWN0CisgICAgZXh0LmV4dCA9IGV4dDsKK30KKworZGVi
dWcoIiIpOworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdD5m
aW5pc2hUZXN0KCk7PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>