<?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>114460</bug_id>
          
          <creation_ts>2013-04-11 13:24:03 -0700</creation_ts>
          <short_desc>Support &quot;forced&quot; subtitles</short_desc>
          <delta_ts>2013-04-12 10:23:26 -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>Media</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></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="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>874101</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-04-11 13:24:03 -0700</bug_when>
    <thetext>Add support for forced subtitles. This patch uses the preliminary &quot;forced&quot; @kind value as proposed to the WhatWG mailing list [1] and a HTML5 spec bug [2]. Most of this patch is agnostic to this issue, so if it turns out that the proposal is not accepted, only the @kind value will need to be changed.

[1] http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039374.html
[2] https://www.w3.org/Bugs/Public/show_bug.cgi?id=21667</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874129</commentid>
    <comment_count>1</comment_count>
      <attachid>197665</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-04-11 13:49:01 -0700</bug_when>
    <thetext>Created attachment 197665
Proposed patch

Note: the new test added with this patch will not pass the bots because including the new media file in the patch makes it to large to attach. I will submit the new movie with the rest of the changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874135</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-11 13:50:32 -0700</bug_when>
    <thetext>Attachment 197665 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/media/track/track-forced-subtitles-in-band-expected.txt&apos;, u&apos;LayoutTests/media/track/track-forced-subtitles-in-band.html&apos;, u&apos;LayoutTests/media/trackmenu-test.js&apos;, u&apos;LayoutTests/platform/efl/TestExpectations&apos;, u&apos;LayoutTests/platform/gtk/TestExpectations&apos;, u&apos;LayoutTests/platform/mac/TestExpectations&apos;, u&apos;LayoutTests/platform/qt/TestExpectations&apos;, u&apos;LayoutTests/platform/win/TestExpectations&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/html/HTMLMediaElement.cpp&apos;, u&apos;Source/WebCore/html/track/InbandTextTrack.cpp&apos;, u&apos;Source/WebCore/html/track/TextTrack.cpp&apos;, u&apos;Source/WebCore/html/track/TextTrack.h&apos;, u&apos;Source/WebCore/page/CaptionUserPreferences.cpp&apos;, u&apos;Source/WebCore/page/CaptionUserPreferences.h&apos;, u&apos;Source/WebCore/page/CaptionUserPreferencesMac.mm&apos;, u&apos;Source/WebCore/platform/graphics/InbandTextTrackPrivate.h&apos;, u&apos;Source/WebCore/platform/graphics/PlatformTextTrack.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm&apos;, u&apos;Source/WebCore/testing/Internals.cpp&apos;, u&apos;Source/WebCore/testing/Internals.h&apos;, u&apos;Source/WebCore/testing/Internals.idl&apos;]&quot; exit_code: 1
Source/WebCore/platform/graphics/InbandTextTrackPrivate.h:53:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WebCore/platform/graphics/InbandTextTrackPrivate.h:62:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WebCore/platform/graphics/PlatformTextTrack.h:50:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WebCore/platform/graphics/PlatformTextTrack.h:59:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 4 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874144</commentid>
    <comment_count>3</comment_count>
      <attachid>197669</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-04-11 13:56:59 -0700</bug_when>
    <thetext>Created attachment 197669
Updated patch.

Note: the new test added with this patch will not pass the bots because including the new media file in the patch makes it to large to attach. I will submit the new movie with the rest of the changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874147</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-04-11 13:59:37 -0700</bug_when>
    <thetext>&lt;rdar://13376059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874822</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-04-12 10:23:15 -0700</bug_when>
    <thetext>https://trac.webkit.org/r148285</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197665</attachid>
            <date>2013-04-11 13:49:01 -0700</date>
            <delta_ts>2013-04-11 13:56:59 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_9_no_movie.txt</filename>
            <type>text/plain</type>
            <size>36145</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODIzMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDEzLTA0LTExICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgImZvcmNl
ZCIgc3VidGl0bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTQ0NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBtZWRpYS90cmFjay90cmFjay1mb3JjZWQtc3VidGl0bGVzLmh0bWwKKworICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50Ojpjb25maWd1cmVUZXh0VHJhY2tHcm91cCk6IEVuYWJsZSBhIGZvcmNlZCB0
cmFjayBpZiBub3RoaW5nIGVsc2UgaXMgZW5hYmxlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFja3MpOiBJbmNsdWRlIGZvcmNlZCB0cmFja3Mg
d2l0aCBjYXB0aW9ucytzdWJ0aXRsZXMuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFRl
eHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OkluYmFuZFRl
eHRUcmFjayk6IERlYWwgd2l0aCBraW5kPWZvcmNlZC4KKworICAgICAgICAqIGh0bWwvdHJhY2sv
VGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Zm9yY2VkS2V5d29y
ZCk6IE5ldyBrZXl3b3JkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjppc1ZhbGlkS2lu
ZEtleXdvcmQpOiBJbmNsdWRlIGZvcmNlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6
cGxhdGZvcm1UZXh0VHJhY2spOiBEaXR0by4KKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFj
ay5oOgorCisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByaW1hcnlBdWRpb1RyYWNrTGFu
Z3VhZ2VPdmVycmlkZSk6IE5ldyBvdmVycmlkZSB0byBzdXBwb3J0IHRlc3RpbmcuCisgICAgICAg
ICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmg6CisKKyAgICAgICAgKiBwYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzTWFjOjp0ZXh0VHJhY2tTZWxlY3Rpb25TY29yZSk6IFN1cHBvcnQgZm9yY2VkIHRy
YWNrcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
Lmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRleHRUcmFjay5oOiBB
ZGQgRm9yY2VkLCBtaW5vciBjbGVhbnVwLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSk6IERyaXZlLWJ5IGVu
aGFuY2VtZW50OiBsb2cgY3VlIHBvc2l0aW9uLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQzo6a2luZCk6IFN1
cHBvcnQgZm9yY2VkLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Rk9iakM6OmxhYmVsKTogRHJpdmUtYnkgY2xlYW51cC4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwcm9jZXNzVGV4dFRyYWNrcyk6IERvbid0IGZpbHRlciBvdXQgZm9yY2VkIHRyYWNrcy4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omxh
bmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayk6IExvZyB0aGUgbGFuZ3VhZ2UgcmV0dXJuZWQuCisK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OnNldFByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSk6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0Q2FwdGlvbkRpc3BsYXlNb2RlKTogTmV3LgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aWRsOgorCiAyMDEzLTA0LTExICBFbGkgRmlkbGVyICA8ZWZpZGxlckBibGFja2JlcnJ5LmNvbT4K
IAogICAgICAgICBbQmxhY2tCZXJyeV0gVXNlIHRoZSBwbGF0Zm9ybSBsaXN0IG9mIGxhbmd1YWdl
cyB3aXRoIGZvbnRzIGluc3RlYWQgb2YgaGFyZGNvZGluZwpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNDgyMTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDc0LDcg
KzMwNzQsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFjCiAgICAg
UmVmUHRyPFRleHRUcmFjaz4gdHJhY2tUb0VuYWJsZTsKICAgICBSZWZQdHI8VGV4dFRyYWNrPiBk
ZWZhdWx0VHJhY2s7CiAgICAgUmVmUHRyPFRleHRUcmFjaz4gZmFsbGJhY2tUcmFjazsKKyAgICBS
ZWZQdHI8VGV4dFRyYWNrPiBmb3JjZWRTdWJpdGxlVHJhY2s7CiAgICAgaW50IGhpZ2hlc3RUcmFj
a1Njb3JlID0gMDsKKyAgICBpbnQgaGlnaGVzdEZvcmNlZFNjb3JlID0gMDsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGdyb3VwLnRyYWNrcy5zaXplKCk7ICsraSkgewogICAgICAgICBSZWZQ
dHI8VGV4dFRyYWNrPiB0ZXh0VHJhY2sgPSBncm91cC50cmFja3NbaV07CiAKQEAgLTMxMDEsNiAr
MzEwMywxMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFjCiAgICAg
ICAgICAgICAgICAgZGVmYXVsdFRyYWNrID0gdGV4dFRyYWNrOwogICAgICAgICAgICAgaWYgKCFk
ZWZhdWx0VHJhY2sgJiYgIWZhbGxiYWNrVHJhY2spCiAgICAgICAgICAgICAgICAgZmFsbGJhY2tU
cmFjayA9IHRleHRUcmFjazsKKyAgICAgICAgICAgIGlmICh0ZXh0VHJhY2stPmNvbnRhaW5zT25s
eUZvcmNlZFN1YnRpdGxlcygpICYmIHRyYWNrU2NvcmUgPiBoaWdoZXN0Rm9yY2VkU2NvcmUpIHsK
KyAgICAgICAgICAgICAgICBmb3JjZWRTdWJpdGxlVHJhY2sgPSB0ZXh0VHJhY2s7CisgICAgICAg
ICAgICAgICAgaGlnaGVzdEZvcmNlZFNjb3JlID0gdHJhY2tTY29yZTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgfSBlbHNlIGlmICghZ3JvdXAudmlzaWJsZVRyYWNrICYmICFkZWZhdWx0VHJhY2sg
JiYgdGV4dFRyYWNrLT5pc0RlZmF1bHQoKSkgewogICAgICAgICAgICAgLy8gKiBJZiB0aGUgdHJh
Y2sgZWxlbWVudCBoYXMgYSBkZWZhdWx0IGF0dHJpYnV0ZSBzcGVjaWZpZWQsIGFuZCB0aGVyZSBp
cyBubyBvdGhlciB0ZXh0IHRyYWNrIGluIHRoZSBtZWRpYQogICAgICAgICAgICAgLy8gZWxlbWVu
dCdzIGxpc3Qgb2YgdGV4dCB0cmFja3Mgd2hvc2UgdGV4dCB0cmFjayBtb2RlIGlzIHNob3dpbmcg
b3Igc2hvd2luZyBieSBkZWZhdWx0CkBAIC0zMTEyLDYgKzMxMTgsMTEgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojpjb25maWd1cmVUZXh0VHJhYwogICAgIGlmICghdHJhY2tUb0VuYWJsZSAmJiBk
ZWZhdWx0VHJhY2spCiAgICAgICAgIHRyYWNrVG9FbmFibGUgPSBkZWZhdWx0VHJhY2s7CiAKKyAg
ICAvLyBJZiBubyB0cmFjayBtYXRjaGVzIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlLCBu
b25lIHdhcyBtYXJrZWQgYXMgJ2RlZmF1bHQnLCBhbmQgdGhlcmUgaXMgYSBmb3JjZWQgc3VidGl0
bGUgdHJhY2sKKyAgICAvLyBpbiB0aGUgc2FtZSBsYW5ndWFnZSBhcyB0aGUgbGFuZ3VhZ2Ugb2Yg
dGhlIHByaW1hcnkgYXVkaW8gdHJhY2ssIGVuYWJsZSBpdC4KKyAgICBpZiAoIXRyYWNrVG9FbmFi
bGUgJiYgZm9yY2VkU3ViaXRsZVRyYWNrKQorICAgICAgICB0cmFja1RvRW5hYmxlID0gZm9yY2Vk
U3ViaXRsZVRyYWNrOworCiAgICAgLy8gSWYgbm8gdHJhY2sgbWF0Y2hlcyB0aGUgdXNlcidzIHBy
ZWZlcnJlZCBsYW5ndWFnZSBhbmQgbm9uIHdhcyBtYXJrZWQgJ2RlZmF1bHQnLCBlbmFibGUgdGhl
IGZpcnN0IHRyYWNrCiAgICAgLy8gYmVjYXVzZSB0aGUgdXNlciBoYXMgZXhwbGljaXRseSBzdGF0
ZWQgYSBwcmVmZXJlbmNlIGZvciB0aGlzIGtpbmQgb2YgdHJhY2suCiAgICAgaWYgKCF0cmFja1Rv
RW5hYmxlICYmIGZhbGxiYWNrVHJhY2spCkBAIC0zMTg5LDcgKzMyMDAsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFjCiAKICAgICAgICAgU3RyaW5nIGtpbmQgPSB0
ZXh0VHJhY2stPmtpbmQoKTsKICAgICAgICAgVHJhY2tHcm91cCogY3VycmVudEdyb3VwOwotICAg
ICAgICBpZiAoa2luZCA9PSBUZXh0VHJhY2s6OnN1YnRpdGxlc0tleXdvcmQoKSB8fCBraW5kID09
IFRleHRUcmFjazo6Y2FwdGlvbnNLZXl3b3JkKCkpCisgICAgICAgIGlmIChraW5kID09IFRleHRU
cmFjazo6c3VidGl0bGVzS2V5d29yZCgpIHx8IGtpbmQgPT0gVGV4dFRyYWNrOjpjYXB0aW9uc0tl
eXdvcmQoKSB8fCBraW5kID09IFRleHRUcmFjazo6Zm9yY2VkS2V5d29yZCgpKQogICAgICAgICAg
ICAgY3VycmVudEdyb3VwID0gJmNhcHRpb25BbmRTdWJ0aXRsZVRyYWNrczsKICAgICAgICAgZWxz
ZSBpZiAoa2luZCA9PSBUZXh0VHJhY2s6OmRlc2NyaXB0aW9uc0tleXdvcmQoKSkKICAgICAgICAg
ICAgIGN1cnJlbnRHcm91cCA9ICZkZXNjcmlwdGlvblRyYWNrczsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAJKHJldmlzaW9uIDE0ODIxNSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjksNiArNjksOSBAQCBJbmJhbmRUZXh0VHJhY2s6OkluYmFuZFRleHRUcmFj
ayhTY3JpcHRFCiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNZXRhZGF0YToKICAg
ICAgICAgc2V0S2luZChUZXh0VHJhY2s6Om1ldGFkYXRhS2V5d29yZCgpKTsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpGb3JjZWQ6CisgICAgICAgIHNl
dEtpbmQoVGV4dFRyYWNrOjpmb3JjZWRLZXl3b3JkKCkpOworICAgICAgICBicmVhazsKICAgICBj
YXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok5vbmU6CiAgICAgZGVmYXVsdDoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suY3BwCShyZXZpc2lvbiAxNDgyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDYgKzc2LDEyIEBAIGNvbnN0IEF0
b21pY1N0cmluZyYgVGV4dFRyYWNrOjptZXRhZGF0YUsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgbWV0YWRhdGEsICgibWV0YWRhdGEiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG1ldGFkYXRhOwogfQorICAgIAor
Y29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6OmZvcmNlZEtleXdvcmQoKQoreworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmb3JjZWQsICgiZm9yY2VkIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHJldHVybiBmb3JjZWQ7
Cit9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpkaXNhYmxlZEtleXdvcmQoKQog
ewpAQCAtMTU1LDYgKzE2MSw4IEBAIGJvb2wgVGV4dFRyYWNrOjppc1ZhbGlkS2luZEtleXdvcmQo
Y29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKHZhbHVlID09IG1ldGFkYXRhS2V5
d29yZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodmFsdWUgPT0gZm9yY2VkS2V5
d29yZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAg
LTUxMyw2ICs1MjEsOCBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtVGV4dFRyYWNrPiBUZXh0VHJhY2s6
CiAgICAgICAgIGtpbmQgPSBQbGF0Zm9ybVRleHRUcmFjazo6Q2hhcHRlcjsKICAgICBlbHNlIGlm
IChtX2tpbmQgPT0gbWV0YWRhdGFLZXl3b3JkKCkpCiAgICAgICAgIGtpbmQgPSBQbGF0Zm9ybVRl
eHRUcmFjazo6TWV0YURhdGE7CisgICAgZWxzZSBpZiAobV9raW5kID09IGZvcmNlZEtleXdvcmQo
KSkKKyAgICAgICAga2luZCA9IFBsYXRmb3JtVGV4dFRyYWNrOjpGb3JjZWQ7CiAKICAgICBQbGF0
Zm9ybVRleHRUcmFjazo6VHJhY2tUeXBlIHR5cGUgPSBQbGF0Zm9ybVRleHRUcmFjazo6T3V0T2ZC
YW5kOwogICAgIGlmIChtX3RyYWNrVHlwZSA9PSBUcmFja0VsZW1lbnQpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgJKHJldmlzaW9uIDE0ODIxNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYgKzg3
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGRlc2NyaXB0aW9u
c0tleXdvcmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjaGFwdGVyc0tleXdv
cmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtZXRhZGF0YUtleXdvcmQoKTsK
KyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JjZWRLZXl3b3JkKCk7CiAgICAgc3Rh
dGljIGJvb2wgaXNWYWxpZEtpbmRLZXl3b3JkKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiAgICAg
QXRvbWljU3RyaW5nIGxhYmVsKCkgY29uc3QgeyByZXR1cm4gbV9sYWJlbDsgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lv
biAxNDgyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDQsNiArMjQ0LDEyIEBAIHZvaWQgQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlczo6dXBkYXRlQ2FwdGkKICAgICAgICAgVmVjdG9yPFN0cmluZz4oKSwgSW5qZWN0
SW5BbGxGcmFtZXMsIFVzZXJTdHlsZUF1dGhvckxldmVsLCBJbmplY3RJbkV4aXN0aW5nRG9jdW1l
bnRzKTsKIH0KIAorU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByaW1hcnlBdWRpb1Ry
YWNrTGFuZ3VhZ2VPdmVycmlkZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3ByaW1hcnlBdWRpb1Ry
YWNrTGFuZ3VhZ2VPdmVycmlkZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBtX3ByaW1hcnlB
dWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZTsKKyAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7
Cit9CiAgICAgCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlcy5oCShyZXZpc2lvbiAxNDgyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXMuaAkod29ya2luZyBjb3B5KQpAQCAtODEsNiArODEsOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZGlzcGxheU5hbWVGb3JUcmFjayhUZXh0VHJhY2sq
KSBjb25zdDsKICAgICB2aXJ0dWFsIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrPiA+IHNvcnRlZFRy
YWNrTGlzdEZvck1lbnUoVGV4dFRyYWNrTGlzdCopOwogCisgICAgdm9pZCBzZXRQcmltYXJ5QXVk
aW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkgeyBtX3ByaW1h
cnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSA9IGxhbmd1YWdlOyAgfQorICAgIFN0cmluZyBw
cmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUoKSBjb25zdDsKKwogICAgIHZpcnR1YWwg
Ym9vbCB0ZXN0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdGluZ01vZGU7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0VGVzdGluZ01vZGUoYm9vbCBvdmVycmlkZSkgeyBtX3Rlc3RpbmdNb2Rl
ID0gb3ZlcnJpZGU7IH0KICAgICAKQEAgLTk5LDYgKzEwMiw3IEBAIHByaXZhdGU6CiAgICAgVGlt
ZXI8Q2FwdGlvblVzZXJQcmVmZXJlbmNlcz4gbV90aW1lcjsKICAgICBTdHJpbmcgbV91c2VyUHJl
ZmVycmVkTGFuZ3VhZ2U7CiAgICAgU3RyaW5nIG1fY2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGU7
CisgICAgU3RyaW5nIG1fcHJpbWFyeUF1ZGlvVHJhY2tMYW5ndWFnZU92ZXJyaWRlOwogICAgIGJv
b2wgbV90ZXN0aW5nTW9kZTsKICAgICBib29sIG1faGF2ZVByZWZlcmVuY2VzOwogfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0J
KHJldmlzaW9uIDE0ODIxNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjE5LDM3ICs2MTksNTQgQEAgU3RyaW5n
IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmRpc3BsYQogaW50IENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNYWM6OnRleHRUcmFja1NlbGVjdGlvblNjb3JlKFRleHRUcmFjayogdHJhY2ssIEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkgY29uc3QKIHsKICAgICBDYXB0aW9uRGlzcGxheU1v
ZGUgZGlzcGxheU1vZGUgPSBjYXB0aW9uRGlzcGxheU1vZGUoKTsKLSAgICBpZiAoZGlzcGxheU1v
ZGUgPT0gRm9yY2VkT25seSkKLSAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKGRpc3BsYXlNb2Rl
ID09IEFsd2F5c09uICYmICghdXNlclByZWZlcnNTdWJ0aXRsZXMoKSAmJiAhdXNlclByZWZlcnND
YXB0aW9ucygpKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKHRyYWNrLT5raW5kKCkgIT0g
VGV4dFRyYWNrOjpjYXB0aW9uc0tleXdvcmQoKSAmJiB0cmFjay0+a2luZCgpICE9IFRleHRUcmFj
azo6c3VidGl0bGVzS2V5d29yZCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAodHJhY2st
PmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpKQorICAgIGlmICh0cmFjay0+a2luZCgpICE9
IFRleHRUcmFjazo6Y2FwdGlvbnNLZXl3b3JkKCkgJiYgdHJhY2stPmtpbmQoKSAhPSBUZXh0VHJh
Y2s6OnN1YnRpdGxlc0tleXdvcmQoKSAmJiB0cmFjay0+a2luZCgpICE9IFRleHRUcmFjazo6Zm9y
Y2VkS2V5d29yZCgpKQogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoIXRyYWNrLT5pc01haW5Q
cm9ncmFtQ29udGVudCgpKQogICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoZGlzcGxheU1vZGUg
PT0gRm9yY2VkT25seSAmJiAhdHJhY2stPmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpKQor
ICAgICAgICByZXR1cm4gMDsKIAogICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRDYXB0
aW9uTGFuZ3VhZ2VzID0gcHJlZmVycmVkTGFuZ3VhZ2VzKCk7CiAKLSAgICBpZiAoZGlzcGxheU1v
ZGUgPT0gQXV0b21hdGljKSB7CisgICAgaWYgKGRpc3BsYXlNb2RlID09IEF1dG9tYXRpYyB8fCB0
cmFjay0+Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkpIHsKIAotICAgICAgICAvLyBPbmx5
IGVuYWJsZSBhIHRleHQgdHJhY2sgaWYgdGhlIGN1cnJlbnQgYXVkaW8gdHJhY2sgaXMgbm90IGlu
IHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlLgogICAgICAgICBpZiAoIW1lZGlhRWxlbWVu
dCB8fCAhbWVkaWFFbGVtZW50LT5wbGF5ZXIoKSkKICAgICAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgICAgIFN0cmluZyBhdWRpb1RyYWNrTGFuZ3VhZ2UgPSBtZWRpYUVsZW1lbnQtPnBsYXllcigp
LT5sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKTsKKyAgICAgICAgU3RyaW5nIGF1ZGlvVHJh
Y2tMYW5ndWFnZTsKKworICAgICAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZUxpc3Q7CisgICAg
ICAgIGxhbmd1YWdlTGlzdC5yZXNlcnZlQ2FwYWNpdHkoMSk7CisKKyAgICAgICAgaWYgKHRlc3Rp
bmdNb2RlKCkpCisgICAgICAgICAgICBhdWRpb1RyYWNrTGFuZ3VhZ2UgPSBwcmltYXJ5QXVkaW9U
cmFja0xhbmd1YWdlT3ZlcnJpZGUoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXVkaW9U
cmFja0xhbmd1YWdlID0gbWVkaWFFbGVtZW50LT5wbGF5ZXIoKS0+bGFuZ3VhZ2VPZlByaW1hcnlB
dWRpb1RyYWNrKCk7CiAKICAgICAgICAgaWYgKGF1ZGlvVHJhY2tMYW5ndWFnZS5pc0VtcHR5KCkp
CiAgICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFn
ZXM7Ci0gICAgICAgIGxhbmd1YWdlcy5hcHBlbmQoZGVmYXVsdExhbmd1YWdlKCkpOwotICAgICAg
ICBzaXplX3Qgb2Zmc2V0ID0gaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGF1ZGlv
VHJhY2tMYW5ndWFnZSwgbGFuZ3VhZ2VzKTsKLSAgICAgICAgaWYgKCFvZmZzZXQpCi0gICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgaWYgKGRpc3BsYXlNb2RlID09IEF1dG9tYXRpYykgewor
ICAgICAgICAgICAgLy8gT25seSBlbmFibGUgYSB0ZXh0IHRyYWNrIGlmIHRoZSBjdXJyZW50IGF1
ZGlvIHRyYWNrIGlzIG5vdCBpbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZS4KKyAgICAg
ICAgICAgIGxhbmd1YWdlTGlzdC5hcHBlbmQoZGVmYXVsdExhbmd1YWdlKCkpOworICAgICAgICAg
ICAgc2l6ZV90IG9mZnNldCA9IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChhdWRp
b1RyYWNrTGFuZ3VhZ2UsIGxhbmd1YWdlTGlzdCk7CisgICAgICAgICAgICBpZiAob2Zmc2V0KQor
ICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
Ly8gT25seSBjb25zaWRlciBhIGZvcmNlZC1vbmx5IHRyYWNrIGlmIGl0IGlzIGluIHRoZSBzYW1l
IGxhbmd1YWdlIGFzIHRoZSBwcmltYXJ5IGF1ZGlvIHRyYWNrLgorICAgICAgICAgICAgU3RyaW5n
IHRyYWNrTGFuZ3VhZ2UgPSB0cmFjay0+bGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIGlmICh0cmFj
a0xhbmd1YWdlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAg
ICAgICAgbGFuZ3VhZ2VMaXN0LmFwcGVuZChhdWRpb1RyYWNrTGFuZ3VhZ2UpOworICAgICAgICAg
ICAgc2l6ZV90IG9mZnNldCA9IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdCh0cmFj
a0xhbmd1YWdlLCBsYW5ndWFnZUxpc3QpOworICAgICAgICAgICAgaWYgKG9mZnNldCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQogCi0gICAgICAgIHVzZXJQcmVmZXJyZWRD
YXB0aW9uTGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzOworICAgICAgICB1c2VyUHJlZmVycmVkQ2FwdGlv
bkxhbmd1YWdlcyA9IGxhbmd1YWdlTGlzdDsKICAgICB9CiAKICAgICBpbnQgdHJhY2tTY29yZSA9
IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJh
Y2tQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oCShyZXZpc2lvbiAxNDgyMTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ5LDExICs0OSwyNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDbGllbnQo
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50
OyB9CiAgICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgeyByZXR1cm4g
bV9jbGllbnQ7IH0KIAotICAgIGVudW0gTW9kZSB7IERpc2FibGVkLCBIaWRkZW4sIFNob3dpbmcg
fTsKKyAgICBlbnVtIE1vZGUKKyAgICB7CisgICAgICAgIERpc2FibGVkLAorICAgICAgICBIaWRk
ZW4sCisgICAgICAgIFNob3dpbmcKKyAgICB9OwogICAgIHZpcnR1YWwgdm9pZCBzZXRNb2RlKE1v
ZGUgbW9kZSkgeyBtX21vZGUgPSBtb2RlOyB9OwogICAgIHZpcnR1YWwgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZTo6TW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAKLSAgICBlbnVt
IEtpbmQgeyBTdWJ0aXRsZXMsIENhcHRpb25zLCBEZXNjcmlwdGlvbnMsIENoYXB0ZXJzLCBNZXRh
ZGF0YSwgTm9uZSB9OworICAgIGVudW0gS2luZAorICAgIHsKKyAgICAgICAgU3VidGl0bGVzLAor
ICAgICAgICBDYXB0aW9ucywKKyAgICAgICAgRGVzY3JpcHRpb25zLAorICAgICAgICBDaGFwdGVy
cywKKyAgICAgICAgTWV0YWRhdGEsCisgICAgICAgIEZvcmNlZCwKKyAgICAgICAgTm9uZQorICAg
IH07CiAgICAgdmlydHVhbCBLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBTdWJ0aXRsZXM7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybVRleHRUcmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtVGV4dFRyYWNrLmgJKHJldmlzaW9uIDE0ODIxNSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGV4dFRyYWNrLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ2LDggKzQ2LDIxIEBAIHB1YmxpYzoKIAogY2xhc3MgUGxhdGZvcm1UZXh0
VHJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxQbGF0Zm9ybVRleHRUcmFjaz4gewogcHVibGljOgot
ICAgIGVudW0gVHJhY2tLaW5kIHsgU3VidGl0bGUgPSAwLCBDYXB0aW9uID0gMSwgRGVzY3JpcHRp
b24gPSAyLCBDaGFwdGVyID0gMywgTWV0YURhdGEgPSA0IH07Ci0gICAgZW51bSBUcmFja1R5cGUg
eyBJbkJhbmQgPSAwLCBPdXRPZkJhbmQgPSAxLCBTY3JpcHQgPSAyIH07CisgICAgZW51bSBUcmFj
a0tpbmQKKyAgICB7CisgICAgICAgIFN1YnRpdGxlID0gMCwKKyAgICAgICAgQ2FwdGlvbiA9IDEs
CisgICAgICAgIERlc2NyaXB0aW9uID0gMiwKKyAgICAgICAgQ2hhcHRlciA9IDMsCisgICAgICAg
IE1ldGFEYXRhID0gNCwKKyAgICAgICAgRm9yY2VkID0gNSwKKyAgICB9OworICAgIGVudW0gVHJh
Y2tUeXBlCisgICAgeworICAgICAgICBJbkJhbmQgPSAwLAorICAgICAgICBPdXRPZkJhbmQgPSAx
LAorICAgICAgICBTY3JpcHQgPSAyCisgICAgfTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBs
YXRmb3JtVGV4dFRyYWNrPiBjcmVhdGUoUGxhdGZvcm1UZXh0VHJhY2tDbGllbnQqIGNsaWVudCwg
Y29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgVHJhY2tLaW5kIGtp
bmQsIFRyYWNrVHlwZSB0eXBlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAJKHJldmlzaW9uIDE0ODIxNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU2LDcgKzM1Niw3IEBAIHZvaWQgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0MKICAgICAgICAgICAgICAgICBpZiAoY3Vl
RGF0YS0+cG9zaXRpb24oKSA+PSAwICYmIGN1ZURhdGEtPnNpemUoKSA+IDApCiAgICAgICAgICAg
ICAgICAgICAgIGN1ZURhdGEtPnNldFBvc2l0aW9uKGN1ZURhdGEtPnBvc2l0aW9uKCkgLSBjdWVE
YXRhLT5zaXplKCkgLyAyKTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBMT0co
TWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVwKSAtIGFkZGlu
ZyBjdWUgZm9yIHRpbWUgJS4yZiIsIHRoaXMsIGN1ZURhdGEtPnN0YXJ0VGltZSgpKTsKKyAgICAg
ICAgICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNz
Q3VlKCVwKSAtIGFkZGluZyBjdWUgZm9yIHRpbWUgPSAlLjJmLCBwb3NpdGlvbiA9ICAlLjJmLCBs
aW5lID0gICUuMmYiLCB0aGlzLCBjdWVEYXRhLT5zdGFydFRpbWUoKSwgY3VlRGF0YS0+cG9zaXRp
b24oKSwgY3VlRGF0YS0+bGluZSgpKTsKICAgICAgICAgICAgICAgICBjbGllbnQoKS0+YWRkR2Vu
ZXJpY0N1ZSh0aGlzLCBjdWVEYXRhKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9J
bmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZGT2JqQy5tbQkocmV2aXNpb24gMTQ4MjE1KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Rk9iakMubW0JKHdvcmtpbmcgY29weSkKQEAgLTk5LDEwICs5OSwxNCBAQCBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlOjpLaW5kIEluYmFuZFRleHRUCiAgICAgICAgIHJldHVybiBOb25lOwogCiAgICAg
TlNTdHJpbmcgKm1lZGlhVHlwZSA9IFttX21lZGlhU2VsZWN0aW9uT3B0aW9uIG1lZGlhVHlwZV07
CisgICAgCiAgICAgaWYgKFttZWRpYVR5cGUgaXNFcXVhbFRvU3RyaW5nOkFWTWVkaWFUeXBlQ2xv
c2VkQ2FwdGlvbl0pCiAgICAgICAgIHJldHVybiBDYXB0aW9uczsKICAgICBpZiAoW21lZGlhVHlw
ZSBpc0VxdWFsVG9TdHJpbmc6QVZNZWRpYVR5cGVTdWJ0aXRsZV0pIHsKIAorICAgICAgICBpZiAo
W21fbWVkaWFTZWxlY3Rpb25PcHRpb24gaGFzTWVkaWFDaGFyYWN0ZXJpc3RpYzpBVk1lZGlhQ2hh
cmFjdGVyaXN0aWNDb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXNdKQorICAgICAgICAgICAgcmV0
dXJuIEZvcmNlZDsKKwogICAgICAgICAvLyBBbiAiU0RIIiB0cmFjayBpcyBhIHN1YnRpdGxlIHRy
YWNrIGNyZWF0ZWQgZm9yIHRoZSBkZWFmIG9yIGhhcmQtb2YtaGVhcmluZy4gImNhcHRpb25zIiBp
biBXZWJWVFQgYXJlCiAgICAgICAgIC8vICJsYWJlbGVkIGFzIGFwcHJvcHJpYXRlIGZvciB0aGUg
aGFyZC1vZi1oZWFyaW5nIiwgc28gdGFnIFNESCBzdXRpdGxlcyBhcyAiY2FwdGlvbnMiLgogICAg
ICAgICBpZiAoW21fbWVkaWFTZWxlY3Rpb25PcHRpb24gaGFzTWVkaWFDaGFyYWN0ZXJpc3RpYzpB
Vk1lZGlhQ2hhcmFjdGVyaXN0aWNUcmFuc2NyaWJlc1Nwb2tlbkRpYWxvZ0ZvckFjY2Vzc2liaWxp
dHldKQpAQCAtMTUzLDE3ICsxNTcsMjAgQEAgQXRvbWljU3RyaW5nIEluYmFuZFRleHRUcmFja1By
aXZhdGVBVkZPYgogICAgIGlmICghbV9tZWRpYVNlbGVjdGlvbk9wdGlvbikKICAgICAgICAgcmV0
dXJuIGVtcHR5QXRvbTsKIAorICAgIE5TU3RyaW5nICp0aXRsZSA9IDA7CisKICAgICBOU0FycmF5
ICp0aXRsZXMgPSBbQVZNZXRhZGF0YUl0ZW0gbWV0YWRhdGFJdGVtc0Zyb21BcnJheTpbbV9tZWRp
YVNlbGVjdGlvbk9wdGlvbi5nZXQoKSBjb21tb25NZXRhZGF0YV0gd2l0aEtleTpBVk1ldGFkYXRh
Q29tbW9uS2V5VGl0bGUga2V5U3BhY2U6QVZNZXRhZGF0YUtleVNwYWNlQ29tbW9uXTsKICAgICBp
ZiAoW3RpdGxlcyBjb3VudF0pIHsKICAgICAgICAgLy8gSWYgcG9zc2libGUsIHJldHVybiBhIHRp
dGxlIGluIG9uZSBvZiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZXMuCiAgICAgICAgIE5T
QXJyYXkgKnRpdGxlc0ZvclByZWZlcnJlZExhbmd1YWdlcyA9IFtBVk1ldGFkYXRhSXRlbSBtZXRh
ZGF0YUl0ZW1zRnJvbUFycmF5OnRpdGxlcyBmaWx0ZXJlZEFuZFNvcnRlZEFjY29yZGluZ1RvUHJl
ZmVycmVkTGFuZ3VhZ2VzOltOU0xvY2FsZSBwcmVmZXJyZWRMYW5ndWFnZXNdXTsKICAgICAgICAg
aWYgKFt0aXRsZXNGb3JQcmVmZXJyZWRMYW5ndWFnZXMgY291bnRdKQotICAgICAgICAgICAgcmV0
dXJuIFtbdGl0bGVzRm9yUHJlZmVycmVkTGFuZ3VhZ2VzIG9iamVjdEF0SW5kZXg6MF0gc3RyaW5n
VmFsdWVdOworICAgICAgICAgICAgdGl0bGUgPSBbW3RpdGxlc0ZvclByZWZlcnJlZExhbmd1YWdl
cyBvYmplY3RBdEluZGV4OjBdIHN0cmluZ1ZhbHVlXTsKIAotICAgICAgICByZXR1cm4gW1t0aXRs
ZXMgb2JqZWN0QXRJbmRleDowXSBzdHJpbmdWYWx1ZV07CisgICAgICAgIGlmICghdGl0bGUpCisg
ICAgICAgICAgICB0aXRsZSA9IFtbdGl0bGVzIG9iamVjdEF0SW5kZXg6MF0gc3RyaW5nVmFsdWVd
OwogICAgIH0KIAotICAgIHJldHVybiBlbXB0eUF0b207CisgICAgcmV0dXJuIHRpdGxlID8gQXRv
bWljU3RyaW5nKHRpdGxlKSA6IGVtcHR5QXRvbTsKIH0KIAogQXRvbWljU3RyaW5nIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkZPYmpDOjpsYW5ndWFnZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0JKHJldmlzaW9uIDE0ODIxNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEzMzEsOSArMTMzMSw2IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzoKICAgICAgICAgaWYgKCFuZXdUcmFjaykKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChbW29wdGlvbiBtZWRpYVR5cGVdIGlz
RXF1YWxUb1N0cmluZzpBVk1lZGlhVHlwZVN1YnRpdGxlXSAmJiBbb3B0aW9uIGhhc01lZGlhQ2hh
cmFjdGVyaXN0aWM6QVZNZWRpYUNoYXJhY3RlcmlzdGljQ29udGFpbnNPbmx5Rm9yY2VkU3VidGl0
bGVzXSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCiAgICAgICAgIG1fdGV4dFRyYWNrcy5hcHBl
bmQoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZSh0aGlzLCBvcHRpb24pKTsK
ICAgICB9CiAKQEAgLTE0MDQsNiArMTQwMSw4IEBAIFN0cmluZyBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmoKICAgICBBVk1lZGlhU2VsZWN0aW9uT3B0aW9uVHlwZSAqY3VycmVudGx5
U2VsZWN0ZWRBdWRpYmxlT3B0aW9uID0gW21fYXZQbGF5ZXJJdGVtLmdldCgpIHNlbGVjdGVkTWVk
aWFPcHRpb25Jbk1lZGlhU2VsZWN0aW9uR3JvdXA6YXVkaWJsZUdyb3VwXTsKICAgICBpZiAoY3Vy
cmVudGx5U2VsZWN0ZWRBdWRpYmxlT3B0aW9uKSB7CiAgICAgICAgIG1fbGFuZ3VhZ2VPZlByaW1h
cnlBdWRpb1RyYWNrID0gW1tjdXJyZW50bHlTZWxlY3RlZEF1ZGlibGVPcHRpb24gbG9jYWxlXSBs
b2NhbGVJZGVudGlmaWVyXTsKKyAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCVwKSAtIHJldHVy
bmluZyBsYW5ndWFnZSBvZiBzZWxlY3RlZCBhdWRpYmxlIG9wdGlvbjogJXMiLCB0aGlzLCBtX2xh
bmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjay51dGY4KCkuZGF0YSgpKTsKKwogICAgICAgICByZXR1
cm4gbV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2s7CiAgICAgfQogI2VuZGlmIC8vIEhBVkUo
QVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCkKQEAgLTE0MTMsNiArMTQxMiw3IEBAIFN0
cmluZyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmoKICAgICBOU0FycmF5ICp0cmFj
a3MgPSBbbV9hdkFzc2V0LmdldCgpIHRyYWNrc1dpdGhNZWRpYVR5cGU6QVZNZWRpYVR5cGVBdWRp
b107CiAgICAgaWYgKCF0cmFja3MgfHwgW3RyYWNrcyBjb3VudF0gIT0gMSkgewogICAgICAgICBt
X2xhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayA9IGVtcHR5U3RyaW5nKCk7CisgICAgICAgIExP
RyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omxhbmd1YWdlT2ZQ
cmltYXJ5QXVkaW9UcmFjayglcCkgLSAlaSBhdWRpbyB0cmFja3MsIHJldHVybmluZyBlbXB0eVN0
cmluZygpIiwgdGhpcywgKHRyYWNrcyA/IFt0cmFja3MgY291bnRdIDogMCkpOwogICAgICAgICBy
ZXR1cm4gbV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2s7CiAgICAgfQogCkBAIC0xNDIyLDkg
KzE0MjIsMTEgQEAgU3RyaW5nIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iagogICAg
IC8vIFNvbWUgbGVnYWN5IHRyYWNrcyBoYXZlICJ1bmQiIGFzIGEgbGFuZ3VhZ2UsIHRyZWF0IHRo
YXQgdGhlIHNhbWUgYXMgbm8gbGFuZ3VhZ2UgYXQgYWxsLgogICAgIGlmIChsYW5ndWFnZSAmJiAh
W2xhbmd1YWdlIGlzRXF1YWxUb1N0cmluZzpAInVuZCJdKSB7CiAgICAgICAgIG1fbGFuZ3VhZ2VP
ZlByaW1hcnlBdWRpb1RyYWNrID0gbGFuZ3VhZ2U7CisgICAgICAgIExPRyhNZWRpYSwgIk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFj
ayglcCkgLSByZXR1cm5pbmcgbGFuZ3VhZ2Ugb2Ygc2luZ2xlIGF1ZGlvIHRyYWNrOiAlcyIsIHRo
aXMsIG1fbGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrLnV0ZjgoKS5kYXRhKCkpOwogICAgICAg
ICByZXR1cm4gbV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2s7CiAgICAgfQogCisgICAgTE9H
KE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bGFuZ3VhZ2VPZlBy
aW1hcnlBdWRpb1RyYWNrKCVwKSAtIHNpbmdsZSBhdWRpbyB0cmFjayBoYXMgbm8gbGFuZ3VhZ2Us
IHJldHVybmluZyBlbXB0eVN0cmluZygpIiwgdGhpcyk7CiAgICAgbV9sYW5ndWFnZU9mUHJpbWFy
eUF1ZGlvVHJhY2sgPSBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBtX2xhbmd1YWdlT2ZQcmlt
YXJ5QXVkaW9UcmFjazsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJ
KHJldmlzaW9uIDE0ODIxNSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjEzNyw0ICsyMTM3LDQzIEBAIHZvaWQgSW50ZXJuYWxzOjpz
ZXRDYXB0aW9uc1N0eWxlU2hlZXRPdmUKICNlbmRpZgogfQogCit2b2lkIEludGVybmFsczo6c2V0
UHJpbWFyeUF1ZGlvVHJhY2tMYW5ndWFnZU92ZXJyaWRlKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2Us
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHRE
b2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpIHsKKyAg
ICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmICFQTEFURk9STShXSU4pCisgICAgZG9jdW1lbnQt
PnBhZ2UoKS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKS0+c2V0UHJpbWFyeUF1ZGlvVHJh
Y2tMYW5ndWFnZU92ZXJyaWRlKGxhbmd1YWdlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGxh
bmd1YWdlKTsKKyNlbmRpZgorfQorCit2b2lkIEludGVybmFsczo6c2V0Q2FwdGlvbkRpc3BsYXlN
b2RlKGNvbnN0IFN0cmluZyYgbW9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCB8fCAh
ZG9jdW1lbnQtPnBhZ2UoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmICFQ
TEFURk9STShXSU4pCisgICAgQ2FwdGlvblVzZXJQcmVmZXJlbmNlcyogY2FwdGlvblByZWZlcmVu
Y2VzID0gZG9jdW1lbnQtPnBhZ2UoKS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKTsKKyAg
ICAKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobW9kZSwgIkF1dG9tYXRpYyIpKQorICAgICAg
ICBjYXB0aW9uUHJlZmVyZW5jZXMtPnNldENhcHRpb25EaXNwbGF5TW9kZShDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzOjpBdXRvbWF0aWMpOworICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1v
ZGUsICJGb3JjZWRPbmx5IikpCisgICAgICAgIGNhcHRpb25QcmVmZXJlbmNlcy0+c2V0Q2FwdGlv
bkRpc3BsYXlNb2RlKENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OkZvcmNlZE9ubHkpOworICAgIGVs
c2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1vZGUsICJBbHdheXNPbiIpKQorICAgICAgICBjYXB0
aW9uUHJlZmVyZW5jZXMtPnNldENhcHRpb25EaXNwbGF5TW9kZShDYXB0aW9uVXNlclByZWZlcmVu
Y2VzOjpBbHdheXNPbik7CisgICAgZWxzZQorICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShtb2RlKTsKKyNlbmRpZgorfQorCiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9uIDE0ODIxNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxMyw2ICszMTMsOCBAQCBw
dWJsaWM6CiAKICAgICBTdHJpbmcgY2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoRXhjZXB0aW9u
Q29kZSYpOwogICAgIHZvaWQgc2V0Q2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoY29uc3QgU3Ry
aW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0UHJpbWFyeUF1ZGlvVHJhY2tMYW5n
dWFnZU92ZXJyaWRlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNl
dENhcHRpb25EaXNwbGF5TW9kZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAxNDgyMTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3NCw2ICsyNzQs
OCBAQAogCiAgICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLXSBET01TdHJpbmcgY2FwdGlvbnNT
dHlsZVNoZWV0T3ZlcnJpZGUoKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgW0NvbmRpdGlv
bmFsPVZJREVPX1RSQUNLXSB2b2lkIHNldENhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKGluIERP
TVN0cmluZyBvdmVycmlkZSkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgIFtDb25kaXRpb25h
bD1WSURFT19UUkFDS10gdm9pZCBzZXRQcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUo
aW4gRE9NU3RyaW5nIGxhbmd1YWdlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICBbQ29uZGl0
aW9uYWw9VklERU9fVFJBQ0tdIHZvaWQgc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKGluIERPTVN0cmlu
ZyBtb2RlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKICAgICBib29sZWFuIGlzU2VsZWN0UG9w
dXBWaXNpYmxlKGluIE5vZGUgbm9kZSk7CiB9OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ4MjMwKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTMtMDQtMTEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgU3VwcG9ydCAiZm9yY2VkIiBzdWJ0aXRsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDQ2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvY29udGVudC9DQytTdWJ0aXRsZXMubTR2
OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1mb3JjZWQtc3VidGl0bGVzLWlu
LWJhbmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1m
b3JjZWQtc3VidGl0bGVzLWluLWJhbmQuaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdHJh
Y2ttZW51LXRlc3QuanM6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9u
czogU2tpcCBuZXcgdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
czogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6IERpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOiBEaXR0by4KKworCiAyMDEzLTA0LTEx
ICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0NTUyBTaGFkZXJz
XSBQYXJzZSBwYXJhbWV0ZXJzIGRlc2NyaXB0b3IKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL3Ry
YWNrbWVudS10ZXN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL3RyYWNrbWVu
dS10ZXN0LmpzCShyZXZpc2lvbiAxNDgyMTUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS90cmFja21l
bnUtdGVzdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDE2IEBACi12YXIgY2FwdGlvbnNC
dXR0b25Db29yZGluYXRlczsKK3ZhciBjYXB0aW9uc0J1dHRvbkNvb3JkaW5hdGVzID0gbnVsbDsK
IAogZnVuY3Rpb24gY2xpY2tDQ0J1dHRvbigpCiB7CisgICAgaWYgKCFjYXB0aW9uc0J1dHRvbkNv
b3JkaW5hdGVzKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjYXB0aW9uc0J1dHRvbkNv
b3JkaW5hdGVzID0gbWVkaWFDb250cm9sc0J1dHRvbkNvb3JkaW5hdGVzKHZpZGVvLCAidG9nZ2xl
LWNsb3NlZC1jYXB0aW9ucy1idXR0b24iKTsKKyAgICAgICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7
CisgICAgICAgICAgICBmYWlsVGVzdChleGNlcHRpb24uZGVzY3JpcHRpb24pOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oY2FwdGlvbnNCdXR0b25Db29yZGluYXRlc1swXSwgY2FwdGlvbnNCdXR0b25Db29yZGluYXRl
c1sxXSk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CiAgICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOwpAQCAtMTMsMTIgKzIyLDYgQEAgZnVuY3Rpb24gc3RhcnRUcmFja01lbnVUZXN0KHRl
c3RGdW5jdGlvbgogICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiogU2V0IHRoZSB1c2VyIGxh
bmd1YWdlIHByZWZlcmVuY2UuIik7CiAgICAgICAgIHJ1bigiaW50ZXJuYWxzLnNldFVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoWydlbiddKSIpOwogCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBj
YXB0aW9uc0J1dHRvbkNvb3JkaW5hdGVzID0gbWVkaWFDb250cm9sc0J1dHRvbkNvb3JkaW5hdGVz
KHZpZGVvLCAidG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24iKTsKLSAgICAgICAgfSBjYXRj
aCAoZXhjZXB0aW9uKSB7Ci0gICAgICAgICAgICBmYWlsVGVzdChleGNlcHRpb24uZGVzY3JpcHRp
b24pOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CiAgICAgICAgIGNsaWNrQ0NCdXR0
b24oKTsKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQodGVzdEZ1bmN0aW9uLCAxMDApOwogICAg
IH0KSW5kZXg6IExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWZvcmNlZC1zdWJ0aXRsZXMt
aW4tYmFuZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdHJhY2stZm9yY2VkLXN1YnRpdGxlcy1pbi1iYW5kLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWZvcmNlZC1zdWJ0aXRsZXMtaW4t
YmFuZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MiBAQAorVGVzdHMg
dGhhdCBmb3JjZWQgc3VidGl0bGVzIGFyZSBlbmFibGUgYXV0b21hdGljYWxseS4KKworUlVOKGlu
dGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGREaXNwbGF5VHJhY2tLaW5kKCdDYXB0aW9ucycsIGZh
bHNlKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkRGlzcGxheVRyYWNrS2luZCgn
U3VidGl0bGVzJywgdHJ1ZSkpCitSVU4oaW50ZXJuYWxzLnNldFVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoWydlbiddKSkKK1JVTihpbnRlcm5hbHMuc2V0UHJpbWFyeUF1ZGlvVHJhY2tMYW5ndWFnZU92
ZXJyaWRlKCdmcicpKQorUlVOKGludGVybmFscy5zZXRDYXB0aW9uRGlzcGxheU1vZGUoJ0ZvcmNl
ZE9ubHknKSkKK0VWRU5UKGNhbnBsYXl0aHJvdWdoKQorCisqKiBGb3JjZWQgdHJhY2tzIHNob3Vs
ZCBiZSBpbiAudGV4dFRyYWNrcywgYnV0IG5vdCBpbiB0aGUgbWVudQorRVhQRUNURUQgKHZpZGVv
LnRleHRUcmFja3MubGVuZ3RoID09ICc5JykgT0sKK0VYUEVDVEVEICh0cmFja01lbnVJdGVtcy5s
ZW5ndGggPT0gJzYnKSBPSworCisqKiBPbmx5IHRoZSAnZnInIGZvcmNlZCB0cmFjayBzaG91bGQg
YmUgc2hvd2luZworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbMF0ubGFuZ3VhZ2UgPT0gJ2Vu
JykgT0sKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzBdLmtpbmQgPT0gJ3N1YnRpdGxlcycp
IE9LCitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1swXS5tb2RlID09ICdkaXNhYmxlZCcpIE9L
CisKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzFdLmxhbmd1YWdlID09ICdlbicpIE9LCitF
WFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1sxXS5raW5kID09ICdmb3JjZWQnKSBPSworRVhQRUNU
RUQgKHZpZGVvLnRleHRUcmFja3NbMV0ubW9kZSA9PSAnZGlzYWJsZWQnKSBPSworCitFWFBFQ1RF
RCAodmlkZW8udGV4dFRyYWNrc1syXS5sYW5ndWFnZSA9PSAnZnInKSBPSworRVhQRUNURUQgKHZp
ZGVvLnRleHRUcmFja3NbMl0ua2luZCA9PSAnc3VidGl0bGVzJykgT0sKK0VYUEVDVEVEICh2aWRl
by50ZXh0VHJhY2tzWzJdLm1vZGUgPT0gJ2Rpc2FibGVkJykgT0sKKworRVhQRUNURUQgKHZpZGVv
LnRleHRUcmFja3NbM10ubGFuZ3VhZ2UgPT0gJ2ZyJykgT0sKK0VYUEVDVEVEICh2aWRlby50ZXh0
VHJhY2tzWzNdLmtpbmQgPT0gJ2ZvcmNlZCcpIE9LCitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNr
c1szXS5tb2RlID09ICdzaG93aW5nJykgT0sKKworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3Nb
NF0ubGFuZ3VhZ2UgPT0gJ2VzJykgT0sKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzRdLmtp
bmQgPT0gJ3N1YnRpdGxlcycpIE9LCitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1s0XS5tb2Rl
ID09ICdkaXNhYmxlZCcpIE9LCisKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzVdLmxhbmd1
YWdlID09ICdlcycpIE9LCitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1s1XS5raW5kID09ICdm
b3JjZWQnKSBPSworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbNV0ubW9kZSA9PSAnZGlzYWJs
ZWQnKSBPSworCitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1s2XS5sYW5ndWFnZSA9PSAnZGUn
KSBPSworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbNl0ua2luZCA9PSAnc3VidGl0bGVzJykg
T0sKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzZdLm1vZGUgPT0gJ2Rpc2FibGVkJykgT0sK
KworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbN10ubGFuZ3VhZ2UgPT0gJ2RlJykgT0sKK0VY
UEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzddLmtpbmQgPT0gJ2ZvcmNlZCcpIE9LCitFWFBFQ1RF
RCAodmlkZW8udGV4dFRyYWNrc1s3XS5tb2RlID09ICdkaXNhYmxlZCcpIE9LCisKK0VYUEVDVEVE
ICh2aWRlby50ZXh0VHJhY2tzWzhdLmxhbmd1YWdlID09ICdlbicpIE9LCitFWFBFQ1RFRCAodmlk
ZW8udGV4dFRyYWNrc1s4XS5raW5kID09ICdjYXB0aW9ucycpIE9LCitFWFBFQ1RFRCAodmlkZW8u
dGV4dFRyYWNrc1s4XS5tb2RlID09ICdkaXNhYmxlZCcpIE9LCisKK0VORCBPRiBURVNUCisKSW5k
ZXg6IExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWZvcmNlZC1zdWJ0aXRsZXMtaW4tYmFu
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWZvcmNl
ZC1zdWJ0aXRsZXMtaW4tYmFuZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stZm9yY2VkLXN1YnRpdGxlcy1pbi1iYW5kLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw5NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CisKKyAgICAgICAgPHNjcmlwdCBzcmM9Li4vbWVkaWEtY29u
dHJvbHMuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPS4uL3RyYWNrbWVudS10ZXN0
LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0uLi92aWRlby10ZXN0LmpzPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgdmFyIHRlc3QgPSAwOworCisgICAg
ICAgICAgICBmdW5jdGlvbiB0ZXN0Rm9yY2VkKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoIjxicj48aT4qKiBGb3JjZWQgdHJhY2tzIHNob3VsZCBiZSBpbiAu
dGV4dFRyYWNrcywgYnV0IG5vdCBpbiB0aGUgbWVudTwiICsgIi9pPiIpOworICAgICAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrcy5sZW5ndGgiLCA5KTsKKworICAgICAg
ICAgICAgICAgIC8vIENsaWNrIHRoZSBDQyBidXR0b24gdG8gc2hvdyB0aGUgbWVudSBiZWNhdXNl
IGl0IGlzbid0IGNyZWF0ZWQgdW50aWwgaXQgYmVjb21lcyB2aXNpYmxlLgorICAgICAgICAgICAg
ICAgIGNsaWNrQ0NCdXR0b24oKTsKKworICAgICAgICAgICAgICAgIHRyYWNrTWVudUl0ZW1zID0g
dHJhY2tNZW51TGlzdCgpOworICAgICAgICAgICAgICAgIGlmICghdHJhY2tNZW51SXRlbXMpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InRyYWNrTWVudUl0ZW1zLmxlbmd0aCIsIDYpOworCisgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCI8YnI+PGk+KiogT25seSB0aGUgJ2ZyJyBmb3JjZWQgdHJhY2sgc2hvdWxkIGJlIHNob3dp
bmc8IiArICIvaT4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRU
cmFja3NbMF0ubGFuZ3VhZ2UiLCAiZW4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InZpZGVvLnRleHRUcmFja3NbMF0ua2luZCIsICJzdWJ0aXRsZXMiKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbMF0ubW9kZSIsICJkaXNhYmxlZCIpOwor
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbMV0ubGFuZ3VhZ2UiLCAiZW4iKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbMV0ua2luZCIsICJmb3JjZWQi
KTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbMV0ubW9k
ZSIsICJkaXNhYmxlZCIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisKKyAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbMl0ubGFuZ3VhZ2Ui
LCAiZnIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3Nb
Ml0ua2luZCIsICJzdWJ0aXRsZXMiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZp
ZGVvLnRleHRUcmFja3NbMl0ubW9kZSIsICJkaXNhYmxlZCIpOworICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRl
eHRUcmFja3NbM10ubGFuZ3VhZ2UiLCAiZnIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInZpZGVvLnRleHRUcmFja3NbM10ua2luZCIsICJmb3JjZWQiKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbM10ubW9kZSIsICJzaG93aW5nIik7Cisg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKworICAgICAgICAgICAgICAgIHRlc3RF
eHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1s0XS5sYW5ndWFnZSIsICJlcyIpOworICAgICAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1s0XS5raW5kIiwgInN1YnRpdGxl
cyIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1s0XS5t
b2RlIiwgImRpc2FibGVkIik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKwor
ICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1s1XS5sYW5ndWFn
ZSIsICJlcyIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNr
c1s1XS5raW5kIiwgImZvcmNlZCIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlk
ZW8udGV4dFRyYWNrc1s1XS5tb2RlIiwgImRpc2FibGVkIik7CisgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCIiKTsKKworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4
dFRyYWNrc1s2XS5sYW5ndWFnZSIsICJkZSIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgidmlkZW8udGV4dFRyYWNrc1s2XS5raW5kIiwgInN1YnRpdGxlcyIpOworICAgICAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1s2XS5tb2RlIiwgImRpc2FibGVkIik7
CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKworICAgICAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1s3XS5sYW5ndWFnZSIsICJkZSIpOworICAgICAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1s3XS5raW5kIiwgImZvcmNl
ZCIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1s3XS5t
b2RlIiwgImRpc2FibGVkIik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKwor
ICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1s4XS5sYW5ndWFn
ZSIsICJlbiIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNr
c1s4XS5raW5kIiwgImNhcHRpb25zIik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2
aWRlby50ZXh0VHJhY2tzWzhdLm1vZGUiLCAiZGlzYWJsZWQiKTsKKyAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIiIpOworCisgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBzZXR1cCgpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICAgICAgICAgIHJ1bigiaW50
ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZERpc3BsYXlUcmFja0tpbmQoJ0NhcHRpb25zJywgZmFs
c2UpIik7CisgICAgICAgICAgICAgICAgcnVuKCJpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxk
RGlzcGxheVRyYWNrS2luZCgnU3VidGl0bGVzJywgdHJ1ZSkiKTsKKyAgICAgICAgICAgICAgICBy
dW4oImludGVybmFscy5zZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFsnZW4nXSkiKTsKKyAgICAg
ICAgICAgICAgICBydW4oImludGVybmFscy5zZXRQcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3Zl
cnJpZGUoJ2ZyJykiKTsKKyAgICAgICAgICAgICAgICBydW4oImludGVybmFscy5zZXRDYXB0aW9u
RGlzcGxheU1vZGUoJ0ZvcmNlZE9ubHknKSIpOworICAgICAgICAgICAgICAgIHZpZGVvLnNyYyA9
ICcuLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tNHYnOworICAgICAgICAgICAgICAgIHZpZGVvLnZv
bHVtZSA9IDA7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcs
IHRlc3RGb3JjZWQpOworICAgICAgICAgICAgfQorCisgICAgICAgIDwvc2NyaXB0PgorICAgIDwv
aGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InNldHVwKCkiPgorICAgICAgICA8cD5UZXN0cyB0aGF0
IGZvcmNlZCBzdWJ0aXRsZXMgYXJlIGVuYWJsZSBhdXRvbWF0aWNhbGx5LjwvcD4KKyAgICAgICAg
PHZpZGVvIHdpZHRoPSI2NDAiIGhlaWdodD0iMzYwIiBjb250cm9scz4KKyAgICAgICAgPC92aWRl
bz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
VGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
VGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTQ4MjE1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTE2MzcsNiArMTYzNyw3
IEBAIEJ1ZyhFRkwpIG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQuaHRtbCAKIEJ1ZyhFRkwpIG1l
ZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNlLmh0bWwgWyBTa2lwIF0KIEJ1
ZyhFRkwpIG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUuaHRtbCBbIFNraXAgXQogQnVn
KEVGTCkgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1sZWdhY3ktYXBpLmh0bWwgWyBTa2lwIF0K
K0J1ZyhFRkwpIG1lZGlhL3RyYWNrL3RyYWNrLWZvcmNlZC1zdWJ0aXRsZXMtaW4tYmFuZC5odG1s
IFsgU2tpcCBdCiAKICMgQWxsIGRlYnVnIGJvdHMgdGltZW91dCAoY3Jhc2gpIG9uIHRoaXMgb25l
CiB3ZWJraXQub3JnL2IvNTY0OTYgWyBEZWJ1ZyBdIGZhc3QvanMvYXJyYXktc29ydC1tb2RpZnlp
bmctdG9zdHJpbmcuaHRtbCBbIENyYXNoIFBhc3MgXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE0ODIxNSkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC00MDQsNiAr
NDA0LDcgQEAgd2Via2l0Lm9yZy9iLzEwMzc3MSBtZWRpYS90cmFjay90cmFjay1pbgogd2Via2l0
Lm9yZy9iLzEwMzc3MSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWN1ZXMtYWRkZWQtb25jZS5o
dG1sIFsgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMTAzNzcxIG1lZGlhL3RyYWNrL3RyYWNrLWlu
LWJhbmQtc3R5bGUuaHRtbCBbIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzEwMzc3MSBtZWRpYS90
cmFjay90cmFjay1pbi1iYW5kLWxlZ2FjeS1hcGkuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9y
Zy9iLzEwMzc3MSBtZWRpYS90cmFjay90cmFjay1mb3JjZWQtc3VidGl0bGVzLWluLWJhbmQuaHRt
bCBbIEZhaWx1cmUgXQogCiAjSW5jb3JyZWN0IHJlYmFzZWxpbmUKIHdlYmtpdC5vcmcvYi8xMDc4
MTggbWVkaWEvY29udHJvbHMtc3R5bGluZy5odG1sIFsgRmFpbHVyZSBdCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTQ4MjE1KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkK
QEAgLTEzNjYsNiArMTM2Niw3IEBAIHdlYmtpdC5vcmcvYi8xMDM2NjMgWyBNb3VudGFpbkxpb24g
TGlvbiAKIHdlYmtpdC5vcmcvYi8xMDM2NjMgWyBNb3VudGFpbkxpb24gTGlvbiBTbm93TGVvcGFy
ZCBdIG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNlLmh0bWwKIHdlYmtp
dC5vcmcvYi8xMDM2NjMgWyBNb3VudGFpbkxpb24gTGlvbiBTbm93TGVvcGFyZCBdIG1lZGlhL3Ry
YWNrL3RyYWNrLWluLWJhbmQtc3R5bGUuaHRtbAogd2Via2l0Lm9yZy9iLzEwMzY2MyBbIE1vdW50
YWluTGlvbiBMaW9uIFNub3dMZW9wYXJkIF0gbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1sZWdh
Y3ktYXBpLmh0bWwKK3dlYmtpdC5vcmcvYi8xMDM2NjMgWyBNb3VudGFpbkxpb24gTGlvbiBTbm93
TGVvcGFyZCBdIG1lZGlhL3RyYWNrL3RyYWNrLWZvcmNlZC1zdWJ0aXRsZXMtaW4tYmFuZC5odG1s
CiAKICMgVGhlc2UgdHdvIHRlc3RzIHNvbWV0aW1lcyB0aW1lb3V0CiB3ZWJraXQub3JnL2IvMTEy
NDkyIG1lZGlhL3RyYWNrL3RyYWNrLWxhbmd1YWdlLXByZWZlcmVuY2UuaHRtbCBbIEZhaWx1cmUg
UGFzcyBdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMJKHJl
dmlzaW9uIDE0ODIxNSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlv
bnMJKHdvcmtpbmcgY29weSkKQEAgLTI2MjAsNiArMjYyMCw3IEBAIHdlYmtpdC5vcmcvYi8xMDM3
NjkgbWVkaWEvdHJhY2svdHJhY2staW4KIHdlYmtpdC5vcmcvYi8xMDM3NjkgbWVkaWEvdHJhY2sv
dHJhY2staW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9i
LzEwMzc2OSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwgWyBTa2lwIF0KIHdl
YmtpdC5vcmcvYi8xMDM3NjkgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1sZWdhY3ktYXBpLmh0
bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xMDM3NjkgbWVkaWEvdHJhY2svdHJhY2stZm9yY2Vk
LXN1YnRpdGxlcy1pbi1iYW5kLmh0bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzEwNDE1MCBm
YXN0L21lZGlhL2ltcGxpY2l0LW1lZGlhLWFsbC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lv
biAxNDgyMTUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwko
d29ya2luZyBjb3B5KQpAQCAtMjUzOSw2ICsyNTM5LDcgQEAgd2Via2l0Lm9yZy9iLzEwMzc3MCBt
ZWRpYS90cmFjay90cmFjay1pbgogd2Via2l0Lm9yZy9iLzEwMzc3MCBtZWRpYS90cmFjay90cmFj
ay1pbi1iYW5kLWN1ZXMtYWRkZWQtb25jZS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTAz
NzcwIG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUuaHRtbCBbIFNraXAgXQogd2Via2l0
Lm9yZy9iLzEwMzc3MCBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWxlZ2FjeS1hcGkuaHRtbCBb
IFNraXAgXQord2Via2l0Lm9yZy9iLzEwMzc3MCBtZWRpYS90cmFjay90cmFjay1mb3JjZWQtc3Vi
dGl0bGVzLWluLWJhbmQuaHRtbCBbIFNraXAgXQogCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NzAyNgogZmFzdC9ldmVudHMva2V5ZG93bi1sZWZ0cmlnaHQta2V5
cy5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197669</attachid>
            <date>2013-04-11 13:56:59 -0700</date>
            <delta_ts>2013-04-12 10:23:26 -0700</delta_ts>
            <desc>Updated patch.</desc>
            <filename>patch_10_no_movie.txt</filename>
            <type>text/plain</type>
            <size>36125</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODIzMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDEzLTA0LTExICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgImZvcmNl
ZCIgc3VidGl0bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTQ0NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBtZWRpYS90cmFjay90cmFjay1mb3JjZWQtc3VidGl0bGVzLmh0bWwKKworICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50Ojpjb25maWd1cmVUZXh0VHJhY2tHcm91cCk6IEVuYWJsZSBhIGZvcmNlZCB0
cmFjayBpZiBub3RoaW5nIGVsc2UgaXMgZW5hYmxlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFja3MpOiBJbmNsdWRlIGZvcmNlZCB0cmFja3Mg
d2l0aCBjYXB0aW9ucytzdWJ0aXRsZXMuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFRl
eHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OkluYmFuZFRl
eHRUcmFjayk6IERlYWwgd2l0aCBraW5kPWZvcmNlZC4KKworICAgICAgICAqIGh0bWwvdHJhY2sv
VGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Zm9yY2VkS2V5d29y
ZCk6IE5ldyBrZXl3b3JkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjppc1ZhbGlkS2lu
ZEtleXdvcmQpOiBJbmNsdWRlIGZvcmNlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6
cGxhdGZvcm1UZXh0VHJhY2spOiBEaXR0by4KKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFj
ay5oOgorCisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByaW1hcnlBdWRpb1RyYWNrTGFu
Z3VhZ2VPdmVycmlkZSk6IE5ldyBvdmVycmlkZSB0byBzdXBwb3J0IHRlc3RpbmcuCisgICAgICAg
ICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmg6CisKKyAgICAgICAgKiBwYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzTWFjOjp0ZXh0VHJhY2tTZWxlY3Rpb25TY29yZSk6IFN1cHBvcnQgZm9yY2VkIHRy
YWNrcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
Lmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRleHRUcmFjay5oOiBB
ZGQgRm9yY2VkLCBtaW5vciBjbGVhbnVwLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSk6IERyaXZlLWJ5IGVu
aGFuY2VtZW50OiBsb2cgY3VlIHBvc2l0aW9uLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQzo6a2luZCk6IFN1
cHBvcnQgZm9yY2VkLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Rk9iakM6OmxhYmVsKTogRHJpdmUtYnkgY2xlYW51cC4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwcm9jZXNzVGV4dFRyYWNrcyk6IERvbid0IGZpbHRlciBvdXQgZm9yY2VkIHRyYWNrcy4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omxh
bmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayk6IExvZyB0aGUgbGFuZ3VhZ2UgcmV0dXJuZWQuCisK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OnNldFByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSk6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0Q2FwdGlvbkRpc3BsYXlNb2RlKTogTmV3LgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aWRsOgorCiAyMDEzLTA0LTExICBFbGkgRmlkbGVyICA8ZWZpZGxlckBibGFja2JlcnJ5LmNvbT4K
IAogICAgICAgICBbQmxhY2tCZXJyeV0gVXNlIHRoZSBwbGF0Zm9ybSBsaXN0IG9mIGxhbmd1YWdl
cyB3aXRoIGZvbnRzIGluc3RlYWQgb2YgaGFyZGNvZGluZwpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNDgyMTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDc0LDcg
KzMwNzQsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFjCiAgICAg
UmVmUHRyPFRleHRUcmFjaz4gdHJhY2tUb0VuYWJsZTsKICAgICBSZWZQdHI8VGV4dFRyYWNrPiBk
ZWZhdWx0VHJhY2s7CiAgICAgUmVmUHRyPFRleHRUcmFjaz4gZmFsbGJhY2tUcmFjazsKKyAgICBS
ZWZQdHI8VGV4dFRyYWNrPiBmb3JjZWRTdWJpdGxlVHJhY2s7CiAgICAgaW50IGhpZ2hlc3RUcmFj
a1Njb3JlID0gMDsKKyAgICBpbnQgaGlnaGVzdEZvcmNlZFNjb3JlID0gMDsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGdyb3VwLnRyYWNrcy5zaXplKCk7ICsraSkgewogICAgICAgICBSZWZQ
dHI8VGV4dFRyYWNrPiB0ZXh0VHJhY2sgPSBncm91cC50cmFja3NbaV07CiAKQEAgLTMxMDEsNiAr
MzEwMywxMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFjCiAgICAg
ICAgICAgICAgICAgZGVmYXVsdFRyYWNrID0gdGV4dFRyYWNrOwogICAgICAgICAgICAgaWYgKCFk
ZWZhdWx0VHJhY2sgJiYgIWZhbGxiYWNrVHJhY2spCiAgICAgICAgICAgICAgICAgZmFsbGJhY2tU
cmFjayA9IHRleHRUcmFjazsKKyAgICAgICAgICAgIGlmICh0ZXh0VHJhY2stPmNvbnRhaW5zT25s
eUZvcmNlZFN1YnRpdGxlcygpICYmIHRyYWNrU2NvcmUgPiBoaWdoZXN0Rm9yY2VkU2NvcmUpIHsK
KyAgICAgICAgICAgICAgICBmb3JjZWRTdWJpdGxlVHJhY2sgPSB0ZXh0VHJhY2s7CisgICAgICAg
ICAgICAgICAgaGlnaGVzdEZvcmNlZFNjb3JlID0gdHJhY2tTY29yZTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgfSBlbHNlIGlmICghZ3JvdXAudmlzaWJsZVRyYWNrICYmICFkZWZhdWx0VHJhY2sg
JiYgdGV4dFRyYWNrLT5pc0RlZmF1bHQoKSkgewogICAgICAgICAgICAgLy8gKiBJZiB0aGUgdHJh
Y2sgZWxlbWVudCBoYXMgYSBkZWZhdWx0IGF0dHJpYnV0ZSBzcGVjaWZpZWQsIGFuZCB0aGVyZSBp
cyBubyBvdGhlciB0ZXh0IHRyYWNrIGluIHRoZSBtZWRpYQogICAgICAgICAgICAgLy8gZWxlbWVu
dCdzIGxpc3Qgb2YgdGV4dCB0cmFja3Mgd2hvc2UgdGV4dCB0cmFjayBtb2RlIGlzIHNob3dpbmcg
b3Igc2hvd2luZyBieSBkZWZhdWx0CkBAIC0zMTEyLDYgKzMxMTgsMTEgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojpjb25maWd1cmVUZXh0VHJhYwogICAgIGlmICghdHJhY2tUb0VuYWJsZSAmJiBk
ZWZhdWx0VHJhY2spCiAgICAgICAgIHRyYWNrVG9FbmFibGUgPSBkZWZhdWx0VHJhY2s7CiAKKyAg
ICAvLyBJZiBubyB0cmFjayBtYXRjaGVzIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlLCBu
b25lIHdhcyBtYXJrZWQgYXMgJ2RlZmF1bHQnLCBhbmQgdGhlcmUgaXMgYSBmb3JjZWQgc3VidGl0
bGUgdHJhY2sKKyAgICAvLyBpbiB0aGUgc2FtZSBsYW5ndWFnZSBhcyB0aGUgbGFuZ3VhZ2Ugb2Yg
dGhlIHByaW1hcnkgYXVkaW8gdHJhY2ssIGVuYWJsZSBpdC4KKyAgICBpZiAoIXRyYWNrVG9FbmFi
bGUgJiYgZm9yY2VkU3ViaXRsZVRyYWNrKQorICAgICAgICB0cmFja1RvRW5hYmxlID0gZm9yY2Vk
U3ViaXRsZVRyYWNrOworCiAgICAgLy8gSWYgbm8gdHJhY2sgbWF0Y2hlcyB0aGUgdXNlcidzIHBy
ZWZlcnJlZCBsYW5ndWFnZSBhbmQgbm9uIHdhcyBtYXJrZWQgJ2RlZmF1bHQnLCBlbmFibGUgdGhl
IGZpcnN0IHRyYWNrCiAgICAgLy8gYmVjYXVzZSB0aGUgdXNlciBoYXMgZXhwbGljaXRseSBzdGF0
ZWQgYSBwcmVmZXJlbmNlIGZvciB0aGlzIGtpbmQgb2YgdHJhY2suCiAgICAgaWYgKCF0cmFja1Rv
RW5hYmxlICYmIGZhbGxiYWNrVHJhY2spCkBAIC0zMTg5LDcgKzMyMDAsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFjCiAKICAgICAgICAgU3RyaW5nIGtpbmQgPSB0
ZXh0VHJhY2stPmtpbmQoKTsKICAgICAgICAgVHJhY2tHcm91cCogY3VycmVudEdyb3VwOwotICAg
ICAgICBpZiAoa2luZCA9PSBUZXh0VHJhY2s6OnN1YnRpdGxlc0tleXdvcmQoKSB8fCBraW5kID09
IFRleHRUcmFjazo6Y2FwdGlvbnNLZXl3b3JkKCkpCisgICAgICAgIGlmIChraW5kID09IFRleHRU
cmFjazo6c3VidGl0bGVzS2V5d29yZCgpIHx8IGtpbmQgPT0gVGV4dFRyYWNrOjpjYXB0aW9uc0tl
eXdvcmQoKSB8fCBraW5kID09IFRleHRUcmFjazo6Zm9yY2VkS2V5d29yZCgpKQogICAgICAgICAg
ICAgY3VycmVudEdyb3VwID0gJmNhcHRpb25BbmRTdWJ0aXRsZVRyYWNrczsKICAgICAgICAgZWxz
ZSBpZiAoa2luZCA9PSBUZXh0VHJhY2s6OmRlc2NyaXB0aW9uc0tleXdvcmQoKSkKICAgICAgICAg
ICAgIGN1cnJlbnRHcm91cCA9ICZkZXNjcmlwdGlvblRyYWNrczsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAJKHJldmlzaW9uIDE0ODIxNSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjksNiArNjksOSBAQCBJbmJhbmRUZXh0VHJhY2s6OkluYmFuZFRleHRUcmFj
ayhTY3JpcHRFCiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNZXRhZGF0YToKICAg
ICAgICAgc2V0S2luZChUZXh0VHJhY2s6Om1ldGFkYXRhS2V5d29yZCgpKTsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpGb3JjZWQ6CisgICAgICAgIHNl
dEtpbmQoVGV4dFRyYWNrOjpmb3JjZWRLZXl3b3JkKCkpOworICAgICAgICBicmVhazsKICAgICBj
YXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok5vbmU6CiAgICAgZGVmYXVsdDoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suY3BwCShyZXZpc2lvbiAxNDgyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDYgKzc2LDEyIEBAIGNvbnN0IEF0
b21pY1N0cmluZyYgVGV4dFRyYWNrOjptZXRhZGF0YUsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgbWV0YWRhdGEsICgibWV0YWRhdGEiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG1ldGFkYXRhOwogfQorICAgIAor
Y29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6OmZvcmNlZEtleXdvcmQoKQoreworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmb3JjZWQsICgiZm9yY2VkIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHJldHVybiBmb3JjZWQ7
Cit9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpkaXNhYmxlZEtleXdvcmQoKQog
ewpAQCAtMTU1LDYgKzE2MSw4IEBAIGJvb2wgVGV4dFRyYWNrOjppc1ZhbGlkS2luZEtleXdvcmQo
Y29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKHZhbHVlID09IG1ldGFkYXRhS2V5
d29yZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodmFsdWUgPT0gZm9yY2VkS2V5
d29yZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAg
LTUxMyw2ICs1MjEsOCBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtVGV4dFRyYWNrPiBUZXh0VHJhY2s6
CiAgICAgICAgIGtpbmQgPSBQbGF0Zm9ybVRleHRUcmFjazo6Q2hhcHRlcjsKICAgICBlbHNlIGlm
IChtX2tpbmQgPT0gbWV0YWRhdGFLZXl3b3JkKCkpCiAgICAgICAgIGtpbmQgPSBQbGF0Zm9ybVRl
eHRUcmFjazo6TWV0YURhdGE7CisgICAgZWxzZSBpZiAobV9raW5kID09IGZvcmNlZEtleXdvcmQo
KSkKKyAgICAgICAga2luZCA9IFBsYXRmb3JtVGV4dFRyYWNrOjpGb3JjZWQ7CiAKICAgICBQbGF0
Zm9ybVRleHRUcmFjazo6VHJhY2tUeXBlIHR5cGUgPSBQbGF0Zm9ybVRleHRUcmFjazo6T3V0T2ZC
YW5kOwogICAgIGlmIChtX3RyYWNrVHlwZSA9PSBUcmFja0VsZW1lbnQpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgJKHJldmlzaW9uIDE0ODIxNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYgKzg3
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGRlc2NyaXB0aW9u
c0tleXdvcmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjaGFwdGVyc0tleXdv
cmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtZXRhZGF0YUtleXdvcmQoKTsK
KyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JjZWRLZXl3b3JkKCk7CiAgICAgc3Rh
dGljIGJvb2wgaXNWYWxpZEtpbmRLZXl3b3JkKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiAgICAg
QXRvbWljU3RyaW5nIGxhYmVsKCkgY29uc3QgeyByZXR1cm4gbV9sYWJlbDsgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lv
biAxNDgyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDQsNiArMjQ0LDEyIEBAIHZvaWQgQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlczo6dXBkYXRlQ2FwdGkKICAgICAgICAgVmVjdG9yPFN0cmluZz4oKSwgSW5qZWN0
SW5BbGxGcmFtZXMsIFVzZXJTdHlsZUF1dGhvckxldmVsLCBJbmplY3RJbkV4aXN0aW5nRG9jdW1l
bnRzKTsKIH0KIAorU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByaW1hcnlBdWRpb1Ry
YWNrTGFuZ3VhZ2VPdmVycmlkZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3ByaW1hcnlBdWRpb1Ry
YWNrTGFuZ3VhZ2VPdmVycmlkZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBtX3ByaW1hcnlB
dWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZTsKKyAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7
Cit9CiAgICAgCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlcy5oCShyZXZpc2lvbiAxNDgyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXMuaAkod29ya2luZyBjb3B5KQpAQCAtODEsNiArODEsOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZGlzcGxheU5hbWVGb3JUcmFjayhUZXh0VHJhY2sq
KSBjb25zdDsKICAgICB2aXJ0dWFsIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrPiA+IHNvcnRlZFRy
YWNrTGlzdEZvck1lbnUoVGV4dFRyYWNrTGlzdCopOwogCisgICAgdm9pZCBzZXRQcmltYXJ5QXVk
aW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkgeyBtX3ByaW1h
cnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSA9IGxhbmd1YWdlOyAgfQorICAgIFN0cmluZyBw
cmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUoKSBjb25zdDsKKwogICAgIHZpcnR1YWwg
Ym9vbCB0ZXN0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdGluZ01vZGU7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0VGVzdGluZ01vZGUoYm9vbCBvdmVycmlkZSkgeyBtX3Rlc3RpbmdNb2Rl
ID0gb3ZlcnJpZGU7IH0KICAgICAKQEAgLTk5LDYgKzEwMiw3IEBAIHByaXZhdGU6CiAgICAgVGlt
ZXI8Q2FwdGlvblVzZXJQcmVmZXJlbmNlcz4gbV90aW1lcjsKICAgICBTdHJpbmcgbV91c2VyUHJl
ZmVycmVkTGFuZ3VhZ2U7CiAgICAgU3RyaW5nIG1fY2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGU7
CisgICAgU3RyaW5nIG1fcHJpbWFyeUF1ZGlvVHJhY2tMYW5ndWFnZU92ZXJyaWRlOwogICAgIGJv
b2wgbV90ZXN0aW5nTW9kZTsKICAgICBib29sIG1faGF2ZVByZWZlcmVuY2VzOwogfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0J
KHJldmlzaW9uIDE0ODIxNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjE5LDM3ICs2MTksNTQgQEAgU3RyaW5n
IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmRpc3BsYQogaW50IENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNYWM6OnRleHRUcmFja1NlbGVjdGlvblNjb3JlKFRleHRUcmFjayogdHJhY2ssIEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkgY29uc3QKIHsKICAgICBDYXB0aW9uRGlzcGxheU1v
ZGUgZGlzcGxheU1vZGUgPSBjYXB0aW9uRGlzcGxheU1vZGUoKTsKLSAgICBpZiAoZGlzcGxheU1v
ZGUgPT0gRm9yY2VkT25seSkKLSAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKGRpc3BsYXlNb2Rl
ID09IEFsd2F5c09uICYmICghdXNlclByZWZlcnNTdWJ0aXRsZXMoKSAmJiAhdXNlclByZWZlcnND
YXB0aW9ucygpKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKHRyYWNrLT5raW5kKCkgIT0g
VGV4dFRyYWNrOjpjYXB0aW9uc0tleXdvcmQoKSAmJiB0cmFjay0+a2luZCgpICE9IFRleHRUcmFj
azo6c3VidGl0bGVzS2V5d29yZCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAodHJhY2st
PmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpKQorICAgIGlmICh0cmFjay0+a2luZCgpICE9
IFRleHRUcmFjazo6Y2FwdGlvbnNLZXl3b3JkKCkgJiYgdHJhY2stPmtpbmQoKSAhPSBUZXh0VHJh
Y2s6OnN1YnRpdGxlc0tleXdvcmQoKSAmJiB0cmFjay0+a2luZCgpICE9IFRleHRUcmFjazo6Zm9y
Y2VkS2V5d29yZCgpKQogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoIXRyYWNrLT5pc01haW5Q
cm9ncmFtQ29udGVudCgpKQogICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoZGlzcGxheU1vZGUg
PT0gRm9yY2VkT25seSAmJiAhdHJhY2stPmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpKQor
ICAgICAgICByZXR1cm4gMDsKIAogICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRDYXB0
aW9uTGFuZ3VhZ2VzID0gcHJlZmVycmVkTGFuZ3VhZ2VzKCk7CiAKLSAgICBpZiAoZGlzcGxheU1v
ZGUgPT0gQXV0b21hdGljKSB7CisgICAgaWYgKGRpc3BsYXlNb2RlID09IEF1dG9tYXRpYyB8fCB0
cmFjay0+Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkpIHsKIAotICAgICAgICAvLyBPbmx5
IGVuYWJsZSBhIHRleHQgdHJhY2sgaWYgdGhlIGN1cnJlbnQgYXVkaW8gdHJhY2sgaXMgbm90IGlu
IHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlLgogICAgICAgICBpZiAoIW1lZGlhRWxlbWVu
dCB8fCAhbWVkaWFFbGVtZW50LT5wbGF5ZXIoKSkKICAgICAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgICAgIFN0cmluZyBhdWRpb1RyYWNrTGFuZ3VhZ2UgPSBtZWRpYUVsZW1lbnQtPnBsYXllcigp
LT5sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKTsKKyAgICAgICAgU3RyaW5nIGF1ZGlvVHJh
Y2tMYW5ndWFnZTsKKworICAgICAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZUxpc3Q7CisgICAg
ICAgIGxhbmd1YWdlTGlzdC5yZXNlcnZlQ2FwYWNpdHkoMSk7CisKKyAgICAgICAgaWYgKHRlc3Rp
bmdNb2RlKCkpCisgICAgICAgICAgICBhdWRpb1RyYWNrTGFuZ3VhZ2UgPSBwcmltYXJ5QXVkaW9U
cmFja0xhbmd1YWdlT3ZlcnJpZGUoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXVkaW9U
cmFja0xhbmd1YWdlID0gbWVkaWFFbGVtZW50LT5wbGF5ZXIoKS0+bGFuZ3VhZ2VPZlByaW1hcnlB
dWRpb1RyYWNrKCk7CiAKICAgICAgICAgaWYgKGF1ZGlvVHJhY2tMYW5ndWFnZS5pc0VtcHR5KCkp
CiAgICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFn
ZXM7Ci0gICAgICAgIGxhbmd1YWdlcy5hcHBlbmQoZGVmYXVsdExhbmd1YWdlKCkpOwotICAgICAg
ICBzaXplX3Qgb2Zmc2V0ID0gaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGF1ZGlv
VHJhY2tMYW5ndWFnZSwgbGFuZ3VhZ2VzKTsKLSAgICAgICAgaWYgKCFvZmZzZXQpCi0gICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgaWYgKGRpc3BsYXlNb2RlID09IEF1dG9tYXRpYykgewor
ICAgICAgICAgICAgLy8gT25seSBlbmFibGUgYSB0ZXh0IHRyYWNrIGlmIHRoZSBjdXJyZW50IGF1
ZGlvIHRyYWNrIGlzIG5vdCBpbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZS4KKyAgICAg
ICAgICAgIGxhbmd1YWdlTGlzdC5hcHBlbmQoZGVmYXVsdExhbmd1YWdlKCkpOworICAgICAgICAg
ICAgc2l6ZV90IG9mZnNldCA9IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChhdWRp
b1RyYWNrTGFuZ3VhZ2UsIGxhbmd1YWdlTGlzdCk7CisgICAgICAgICAgICBpZiAob2Zmc2V0KQor
ICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
Ly8gT25seSBjb25zaWRlciBhIGZvcmNlZC1vbmx5IHRyYWNrIGlmIGl0IGlzIGluIHRoZSBzYW1l
IGxhbmd1YWdlIGFzIHRoZSBwcmltYXJ5IGF1ZGlvIHRyYWNrLgorICAgICAgICAgICAgU3RyaW5n
IHRyYWNrTGFuZ3VhZ2UgPSB0cmFjay0+bGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIGlmICh0cmFj
a0xhbmd1YWdlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAg
ICAgICAgbGFuZ3VhZ2VMaXN0LmFwcGVuZChhdWRpb1RyYWNrTGFuZ3VhZ2UpOworICAgICAgICAg
ICAgc2l6ZV90IG9mZnNldCA9IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdCh0cmFj
a0xhbmd1YWdlLCBsYW5ndWFnZUxpc3QpOworICAgICAgICAgICAgaWYgKG9mZnNldCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQogCi0gICAgICAgIHVzZXJQcmVmZXJyZWRD
YXB0aW9uTGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzOworICAgICAgICB1c2VyUHJlZmVycmVkQ2FwdGlv
bkxhbmd1YWdlcyA9IGxhbmd1YWdlTGlzdDsKICAgICB9CiAKICAgICBpbnQgdHJhY2tTY29yZSA9
IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJh
Y2tQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oCShyZXZpc2lvbiAxNDgyMTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ5LDExICs0OSwyMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDbGllbnQo
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50
OyB9CiAgICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgeyByZXR1cm4g
bV9jbGllbnQ7IH0KIAotICAgIGVudW0gTW9kZSB7IERpc2FibGVkLCBIaWRkZW4sIFNob3dpbmcg
fTsKKyAgICBlbnVtIE1vZGUgeworICAgICAgICBEaXNhYmxlZCwKKyAgICAgICAgSGlkZGVuLAor
ICAgICAgICBTaG93aW5nCisgICAgfTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TW9kZShNb2RlIG1v
ZGUpIHsgbV9tb2RlID0gbW9kZTsgfTsKICAgICB2aXJ0dWFsIEluYmFuZFRleHRUcmFja1ByaXZh
dGU6Ok1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsgfQogCi0gICAgZW51bSBLaW5k
IHsgU3VidGl0bGVzLCBDYXB0aW9ucywgRGVzY3JpcHRpb25zLCBDaGFwdGVycywgTWV0YWRhdGEs
IE5vbmUgfTsKKyAgICBlbnVtIEtpbmQgeworICAgICAgICBTdWJ0aXRsZXMsCisgICAgICAgIENh
cHRpb25zLAorICAgICAgICBEZXNjcmlwdGlvbnMsCisgICAgICAgIENoYXB0ZXJzLAorICAgICAg
ICBNZXRhZGF0YSwKKyAgICAgICAgRm9yY2VkLAorICAgICAgICBOb25lCisgICAgfTsKICAgICB2
aXJ0dWFsIEtpbmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIFN1YnRpdGxlczsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc0Nsb3NlZENhcHRpb25zKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgY29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
VGV4dFRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1UZXh0VHJhY2suaAkocmV2aXNpb24gMTQ4MjE1KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UZXh0VHJhY2suaAkod29ya2luZyBjb3B5KQpA
QCAtNDYsOCArNDYsMTkgQEAgcHVibGljOgogCiBjbGFzcyBQbGF0Zm9ybVRleHRUcmFjayA6IHB1
YmxpYyBSZWZDb3VudGVkPFBsYXRmb3JtVGV4dFRyYWNrPiB7CiBwdWJsaWM6Ci0gICAgZW51bSBU
cmFja0tpbmQgeyBTdWJ0aXRsZSA9IDAsIENhcHRpb24gPSAxLCBEZXNjcmlwdGlvbiA9IDIsIENo
YXB0ZXIgPSAzLCBNZXRhRGF0YSA9IDQgfTsKLSAgICBlbnVtIFRyYWNrVHlwZSB7IEluQmFuZCA9
IDAsIE91dE9mQmFuZCA9IDEsIFNjcmlwdCA9IDIgfTsKKyAgICBlbnVtIFRyYWNrS2luZCB7Cisg
ICAgICAgIFN1YnRpdGxlID0gMCwKKyAgICAgICAgQ2FwdGlvbiA9IDEsCisgICAgICAgIERlc2Ny
aXB0aW9uID0gMiwKKyAgICAgICAgQ2hhcHRlciA9IDMsCisgICAgICAgIE1ldGFEYXRhID0gNCwK
KyAgICAgICAgRm9yY2VkID0gNSwKKyAgICB9OworICAgIGVudW0gVHJhY2tUeXBlIHsKKyAgICAg
ICAgSW5CYW5kID0gMCwKKyAgICAgICAgT3V0T2ZCYW5kID0gMSwKKyAgICAgICAgU2NyaXB0ID0g
MgorICAgIH07CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybVRleHRUcmFjaz4gY3Jl
YXRlKFBsYXRmb3JtVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIGNvbnN0IFN0cmluZyYgbGFiZWws
IGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIFRyYWNrS2luZCBraW5kLCBUcmFja1R5cGUgdHlwZSkK
ICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZh
dGVBVkYuY3BwCShyZXZpc2lvbiAxNDgyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM1Niw3ICszNTYsNyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVB
VkY6OnByb2Nlc3NDCiAgICAgICAgICAgICAgICAgaWYgKGN1ZURhdGEtPnBvc2l0aW9uKCkgPj0g
MCAmJiBjdWVEYXRhLT5zaXplKCkgPiAwKQogICAgICAgICAgICAgICAgICAgICBjdWVEYXRhLT5z
ZXRQb3NpdGlvbihjdWVEYXRhLT5wb3NpdGlvbigpIC0gY3VlRGF0YS0+c2l6ZSgpIC8gMik7CiAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBhZGRpbmcgY3VlIGZvciB0aW1lICUuMmYi
LCB0aGlzLCBjdWVEYXRhLT5zdGFydFRpbWUoKSk7CisgICAgICAgICAgICAgICAgTE9HKE1lZGlh
LCAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBhZGRpbmcgY3Vl
IGZvciB0aW1lID0gJS4yZiwgcG9zaXRpb24gPSAgJS4yZiwgbGluZSA9ICAlLjJmIiwgdGhpcywg
Y3VlRGF0YS0+c3RhcnRUaW1lKCksIGN1ZURhdGEtPnBvc2l0aW9uKCksIGN1ZURhdGEtPmxpbmUo
KSk7CiAgICAgICAgICAgICAgICAgY2xpZW50KCktPmFkZEdlbmVyaWNDdWUodGhpcywgY3VlRGF0
YSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRk9iakMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMubW0JKHJl
dmlzaW9uIDE0ODIxNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC05OSwxMCArOTksMTQgQEAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6S2luZCBJbmJh
bmRUZXh0VAogICAgICAgICByZXR1cm4gTm9uZTsKIAogICAgIE5TU3RyaW5nICptZWRpYVR5cGUg
PSBbbV9tZWRpYVNlbGVjdGlvbk9wdGlvbiBtZWRpYVR5cGVdOworICAgIAogICAgIGlmIChbbWVk
aWFUeXBlIGlzRXF1YWxUb1N0cmluZzpBVk1lZGlhVHlwZUNsb3NlZENhcHRpb25dKQogICAgICAg
ICByZXR1cm4gQ2FwdGlvbnM7CiAgICAgaWYgKFttZWRpYVR5cGUgaXNFcXVhbFRvU3RyaW5nOkFW
TWVkaWFUeXBlU3VidGl0bGVdKSB7CiAKKyAgICAgICAgaWYgKFttX21lZGlhU2VsZWN0aW9uT3B0
aW9uIGhhc01lZGlhQ2hhcmFjdGVyaXN0aWM6QVZNZWRpYUNoYXJhY3RlcmlzdGljQ29udGFpbnNP
bmx5Rm9yY2VkU3VidGl0bGVzXSkKKyAgICAgICAgICAgIHJldHVybiBGb3JjZWQ7CisKICAgICAg
ICAgLy8gQW4gIlNESCIgdHJhY2sgaXMgYSBzdWJ0aXRsZSB0cmFjayBjcmVhdGVkIGZvciB0aGUg
ZGVhZiBvciBoYXJkLW9mLWhlYXJpbmcuICJjYXB0aW9ucyIgaW4gV2ViVlRUIGFyZQogICAgICAg
ICAvLyAibGFiZWxlZCBhcyBhcHByb3ByaWF0ZSBmb3IgdGhlIGhhcmQtb2YtaGVhcmluZyIsIHNv
IHRhZyBTREggc3V0aXRsZXMgYXMgImNhcHRpb25zIi4KICAgICAgICAgaWYgKFttX21lZGlhU2Vs
ZWN0aW9uT3B0aW9uIGhhc01lZGlhQ2hhcmFjdGVyaXN0aWM6QVZNZWRpYUNoYXJhY3RlcmlzdGlj
VHJhbnNjcmliZXNTcG9rZW5EaWFsb2dGb3JBY2Nlc3NpYmlsaXR5XSkKQEAgLTE1MywxNyArMTU3
LDIwIEBAIEF0b21pY1N0cmluZyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2IKICAgICBpZiAo
IW1fbWVkaWFTZWxlY3Rpb25PcHRpb24pCiAgICAgICAgIHJldHVybiBlbXB0eUF0b207CiAKKyAg
ICBOU1N0cmluZyAqdGl0bGUgPSAwOworCiAgICAgTlNBcnJheSAqdGl0bGVzID0gW0FWTWV0YWRh
dGFJdGVtIG1ldGFkYXRhSXRlbXNGcm9tQXJyYXk6W21fbWVkaWFTZWxlY3Rpb25PcHRpb24uZ2V0
KCkgY29tbW9uTWV0YWRhdGFdIHdpdGhLZXk6QVZNZXRhZGF0YUNvbW1vbktleVRpdGxlIGtleVNw
YWNlOkFWTWV0YWRhdGFLZXlTcGFjZUNvbW1vbl07CiAgICAgaWYgKFt0aXRsZXMgY291bnRdKSB7
CiAgICAgICAgIC8vIElmIHBvc3NpYmxlLCByZXR1cm4gYSB0aXRsZSBpbiBvbmUgb2YgdGhlIHVz
ZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2VzLgogICAgICAgICBOU0FycmF5ICp0aXRsZXNGb3JQcmVm
ZXJyZWRMYW5ndWFnZXMgPSBbQVZNZXRhZGF0YUl0ZW0gbWV0YWRhdGFJdGVtc0Zyb21BcnJheTp0
aXRsZXMgZmlsdGVyZWRBbmRTb3J0ZWRBY2NvcmRpbmdUb1ByZWZlcnJlZExhbmd1YWdlczpbTlNM
b2NhbGUgcHJlZmVycmVkTGFuZ3VhZ2VzXV07CiAgICAgICAgIGlmIChbdGl0bGVzRm9yUHJlZmVy
cmVkTGFuZ3VhZ2VzIGNvdW50XSkKLSAgICAgICAgICAgIHJldHVybiBbW3RpdGxlc0ZvclByZWZl
cnJlZExhbmd1YWdlcyBvYmplY3RBdEluZGV4OjBdIHN0cmluZ1ZhbHVlXTsKKyAgICAgICAgICAg
IHRpdGxlID0gW1t0aXRsZXNGb3JQcmVmZXJyZWRMYW5ndWFnZXMgb2JqZWN0QXRJbmRleDowXSBz
dHJpbmdWYWx1ZV07CiAKLSAgICAgICAgcmV0dXJuIFtbdGl0bGVzIG9iamVjdEF0SW5kZXg6MF0g
c3RyaW5nVmFsdWVdOworICAgICAgICBpZiAoIXRpdGxlKQorICAgICAgICAgICAgdGl0bGUgPSBb
W3RpdGxlcyBvYmplY3RBdEluZGV4OjBdIHN0cmluZ1ZhbHVlXTsKICAgICB9CiAKLSAgICByZXR1
cm4gZW1wdHlBdG9tOworICAgIHJldHVybiB0aXRsZSA/IEF0b21pY1N0cmluZyh0aXRsZSkgOiBl
bXB0eUF0b207CiB9CiAKIEF0b21pY1N0cmluZyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2Jq
Qzo6bGFuZ3VhZ2UoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCShyZXZpc2lv
biAxNDgyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzMxLDkgKzEzMzEsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6CiAgICAgICAgIGlmICghbmV3VHJhY2spCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICBpZiAoW1tvcHRpb24gbWVkaWFUeXBlXSBpc0VxdWFsVG9TdHJpbmc6QVZNZWRp
YVR5cGVTdWJ0aXRsZV0gJiYgW29wdGlvbiBoYXNNZWRpYUNoYXJhY3RlcmlzdGljOkFWTWVkaWFD
aGFyYWN0ZXJpc3RpY0NvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlc10pCi0gICAgICAgICAgICBj
b250aW51ZTsKLQogICAgICAgICBtX3RleHRUcmFja3MuYXBwZW5kKEluYmFuZFRleHRUcmFja1By
aXZhdGVBVkZPYmpDOjpjcmVhdGUodGhpcywgb3B0aW9uKSk7CiAgICAgfQogCkBAIC0xNDA0LDYg
KzE0MDEsOCBAQCBTdHJpbmcgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqCiAgICAg
QVZNZWRpYVNlbGVjdGlvbk9wdGlvblR5cGUgKmN1cnJlbnRseVNlbGVjdGVkQXVkaWJsZU9wdGlv
biA9IFttX2F2UGxheWVySXRlbS5nZXQoKSBzZWxlY3RlZE1lZGlhT3B0aW9uSW5NZWRpYVNlbGVj
dGlvbkdyb3VwOmF1ZGlibGVHcm91cF07CiAgICAgaWYgKGN1cnJlbnRseVNlbGVjdGVkQXVkaWJs
ZU9wdGlvbikgewogICAgICAgICBtX2xhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayA9IFtbY3Vy
cmVudGx5U2VsZWN0ZWRBdWRpYmxlT3B0aW9uIGxvY2FsZV0gbG9jYWxlSWRlbnRpZmllcl07Cisg
ICAgICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omxh
bmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayglcCkgLSByZXR1cm5pbmcgbGFuZ3VhZ2Ugb2Ygc2Vs
ZWN0ZWQgYXVkaWJsZSBvcHRpb246ICVzIiwgdGhpcywgbV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlv
VHJhY2sudXRmOCgpLmRhdGEoKSk7CisKICAgICAgICAgcmV0dXJuIG1fbGFuZ3VhZ2VPZlByaW1h
cnlBdWRpb1RyYWNrOwogICAgIH0KICNlbmRpZiAvLyBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RS
QUNLX1NVUFBPUlQpCkBAIC0xNDEzLDYgKzE0MTIsNyBAQCBTdHJpbmcgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqCiAgICAgTlNBcnJheSAqdHJhY2tzID0gW21fYXZBc3NldC5nZXQo
KSB0cmFja3NXaXRoTWVkaWFUeXBlOkFWTWVkaWFUeXBlQXVkaW9dOwogICAgIGlmICghdHJhY2tz
IHx8IFt0cmFja3MgY291bnRdICE9IDEpIHsKICAgICAgICAgbV9sYW5ndWFnZU9mUHJpbWFyeUF1
ZGlvVHJhY2sgPSBlbXB0eVN0cmluZygpOworICAgICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soJXAp
IC0gJWkgYXVkaW8gdHJhY2tzLCByZXR1cm5pbmcgZW1wdHlTdHJpbmcoKSIsIHRoaXMsICh0cmFj
a3MgPyBbdHJhY2tzIGNvdW50XSA6IDApKTsKICAgICAgICAgcmV0dXJuIG1fbGFuZ3VhZ2VPZlBy
aW1hcnlBdWRpb1RyYWNrOwogICAgIH0KIApAQCAtMTQyMiw5ICsxNDIyLDExIEBAIFN0cmluZyBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmoKICAgICAvLyBTb21lIGxlZ2FjeSB0cmFj
a3MgaGF2ZSAidW5kIiBhcyBhIGxhbmd1YWdlLCB0cmVhdCB0aGF0IHRoZSBzYW1lIGFzIG5vIGxh
bmd1YWdlIGF0IGFsbC4KICAgICBpZiAobGFuZ3VhZ2UgJiYgIVtsYW5ndWFnZSBpc0VxdWFsVG9T
dHJpbmc6QCJ1bmQiXSkgewogICAgICAgICBtX2xhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayA9
IGxhbmd1YWdlOworICAgICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soJXApIC0gcmV0dXJuaW5nIGxh
bmd1YWdlIG9mIHNpbmdsZSBhdWRpbyB0cmFjazogJXMiLCB0aGlzLCBtX2xhbmd1YWdlT2ZQcmlt
YXJ5QXVkaW9UcmFjay51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmV0dXJuIG1fbGFuZ3VhZ2VP
ZlByaW1hcnlBdWRpb1RyYWNrOwogICAgIH0KIAorICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayglcCkg
LSBzaW5nbGUgYXVkaW8gdHJhY2sgaGFzIG5vIGxhbmd1YWdlLCByZXR1cm5pbmcgZW1wdHlTdHJp
bmcoKSIsIHRoaXMpOwogICAgIG1fbGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrID0gZW1wdHlT
dHJpbmcoKTsKICAgICByZXR1cm4gbV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2s7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCShyZXZpc2lvbiAxNDgyMTUpCisr
KyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIxMzcsNCArMjEzNyw0MyBAQCB2b2lkIEludGVybmFsczo6c2V0Q2FwdGlvbnNTdHlsZVNoZWV0
T3ZlCiAjZW5kaWYKIH0KIAordm9pZCBJbnRlcm5hbHM6OnNldFByaW1hcnlBdWRpb1RyYWNrTGFu
Z3VhZ2VPdmVycmlkZShjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAo
IWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKSAmJiAhUExBVEZPUk0oV0lOKQorICAgIGRvY3VtZW50LT5wYWdlKCktPmdyb3VwKCkuY2Fw
dGlvblByZWZlcmVuY2VzKCktPnNldFByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZShs
YW5ndWFnZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShsYW5ndWFnZSk7CisjZW5kaWYKK30K
Kwordm9pZCBJbnRlcm5hbHM6OnNldENhcHRpb25EaXNwbGF5TW9kZShjb25zdCBTdHJpbmcmIG1v
ZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRl
eHREb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpIHsK
KyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiAhUExBVEZPUk0oV0lOKQorICAgIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXMqIGNhcHRpb25QcmVmZXJlbmNlcyA9IGRvY3VtZW50LT5wYWdl
KCktPmdyb3VwKCkuY2FwdGlvblByZWZlcmVuY2VzKCk7CisgICAgCisgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKG1vZGUsICJBdXRvbWF0aWMiKSkKKyAgICAgICAgY2FwdGlvblByZWZlcmVuY2Vz
LT5zZXRDYXB0aW9uRGlzcGxheU1vZGUoQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6QXV0b21hdGlj
KTsKKyAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtb2RlLCAiRm9yY2VkT25seSIpKQor
ICAgICAgICBjYXB0aW9uUHJlZmVyZW5jZXMtPnNldENhcHRpb25EaXNwbGF5TW9kZShDYXB0aW9u
VXNlclByZWZlcmVuY2VzOjpGb3JjZWRPbmx5KTsKKyAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5n
Q2FzZShtb2RlLCAiQWx3YXlzT24iKSkKKyAgICAgICAgY2FwdGlvblByZWZlcmVuY2VzLT5zZXRD
YXB0aW9uRGlzcGxheU1vZGUoQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6QWx3YXlzT24pOworICAg
IGVsc2UKKyAgICAgICAgZWMgPSBTWU5UQVhfRVJSOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
bW9kZSk7CisjZW5kaWYKK30KKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CShyZXZpc2lvbiAxNDgyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMTMsNiArMzEzLDggQEAgcHVibGljOgogCiAgICAgU3RyaW5n
IGNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNl
dENhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICB2b2lkIHNldFByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZShjb25zdCBT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRDYXB0aW9uRGlzcGxheU1vZGUo
Y29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IEludGVybmFscyhEb2N1bWVudCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAkocmV2aXNpb24gMTQ4MjE1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNzQsNiArMjc0LDggQEAKIAogICAgIFtDb25kaXRp
b25hbD1WSURFT19UUkFDS10gRE9NU3RyaW5nIGNhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKCkg
cmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIFtDb25kaXRpb25hbD1WSURFT19UUkFDS10gdm9p
ZCBzZXRDYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZShpbiBET01TdHJpbmcgb3ZlcnJpZGUpIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICBbQ29uZGl0aW9uYWw9VklERU9fVFJBQ0tdIHZvaWQg
c2V0UHJpbWFyeUF1ZGlvVHJhY2tMYW5ndWFnZU92ZXJyaWRlKGluIERPTVN0cmluZyBsYW5ndWFn
ZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLXSB2
b2lkIHNldENhcHRpb25EaXNwbGF5TW9kZShpbiBET01TdHJpbmcgbW9kZSkgcmFpc2VzIChET01F
eGNlcHRpb24pOwogCiAgICAgYm9vbGVhbiBpc1NlbGVjdFBvcHVwVmlzaWJsZShpbiBOb2RlIG5v
ZGUpOwogfTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODIzMCkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEzLTA0LTExICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgImZvcmNl
ZCIgc3VidGl0bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTQ0NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIG1lZGlhL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm00djogQWRkZWQuCisgICAgICAgICog
bWVkaWEvdHJhY2svdHJhY2stZm9yY2VkLXN1YnRpdGxlcy1pbi1iYW5kLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stZm9yY2VkLXN1YnRpdGxlcy1pbi1i
YW5kLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3RyYWNrbWVudS10ZXN0LmpzOgorCisg
ICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgbmV3IHRlc3QuCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9y
bS9xdC9UZXN0RXhwZWN0YXRpb25zOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9uczogRGl0dG8uCisKKwogMjAxMy0wNC0xMSAgRGlyayBTY2h1bHplICA8a3Jp
dEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDU1MgU2hhZGVyc10gUGFyc2UgcGFyYW1ldGVycyBk
ZXNjcmlwdG9yCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS90cmFja21lbnUtdGVzdC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS90cmFja21lbnUtdGVzdC5qcwkocmV2aXNpb24g
MTQ4MjE1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2ttZW51LXRlc3QuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNyArMSwxNiBAQAotdmFyIGNhcHRpb25zQnV0dG9uQ29vcmRpbmF0ZXM7Cit2
YXIgY2FwdGlvbnNCdXR0b25Db29yZGluYXRlcyA9IG51bGw7CiAKIGZ1bmN0aW9uIGNsaWNrQ0NC
dXR0b24oKQogeworICAgIGlmICghY2FwdGlvbnNCdXR0b25Db29yZGluYXRlcykgeworICAgICAg
ICB0cnkgeworICAgICAgICAgICAgY2FwdGlvbnNCdXR0b25Db29yZGluYXRlcyA9IG1lZGlhQ29u
dHJvbHNCdXR0b25Db29yZGluYXRlcyh2aWRlbywgInRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0
dG9uIik7CisgICAgICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgZmFpbFRl
c3QoZXhjZXB0aW9uLmRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgIH0KKwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNhcHRpb25zQnV0dG9uQ29v
cmRpbmF0ZXNbMF0sIGNhcHRpb25zQnV0dG9uQ29vcmRpbmF0ZXNbMV0pOwogICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKQEAgLTEzLDEyICsy
Miw2IEBAIGZ1bmN0aW9uIHN0YXJ0VHJhY2tNZW51VGVzdCh0ZXN0RnVuY3Rpb24KICAgICAgICAg
Y29uc29sZVdyaXRlKCI8YnI+KioqIFNldCB0aGUgdXNlciBsYW5ndWFnZSBwcmVmZXJlbmNlLiIp
OwogICAgICAgICBydW4oImludGVybmFscy5zZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFsnZW4n
XSkiKTsKIAotICAgICAgICB0cnkgewotICAgICAgICAgICAgY2FwdGlvbnNCdXR0b25Db29yZGlu
YXRlcyA9IG1lZGlhQ29udHJvbHNCdXR0b25Db29yZGluYXRlcyh2aWRlbywgInRvZ2dsZS1jbG9z
ZWQtY2FwdGlvbnMtYnV0dG9uIik7Ci0gICAgICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikgewotICAg
ICAgICAgICAgZmFpbFRlc3QoZXhjZXB0aW9uLmRlc2NyaXB0aW9uKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQogICAgICAgICBjbGlja0NDQnV0dG9uKCk7CiAgICAgICAgIHdpbmRv
dy5zZXRUaW1lb3V0KHRlc3RGdW5jdGlvbiwgMTAwKTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0
cy9tZWRpYS90cmFjay90cmFjay1mb3JjZWQtc3VidGl0bGVzLWluLWJhbmQtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWZvcmNlZC1zdWJ0
aXRsZXMtaW4tYmFuZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1mb3JjZWQtc3VidGl0bGVzLWluLWJhbmQtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTIgQEAKK1Rlc3RzIHRoYXQgZm9yY2VkIHN1YnRpdGxl
cyBhcmUgZW5hYmxlIGF1dG9tYXRpY2FsbHkuCisKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
U2hvdWxkRGlzcGxheVRyYWNrS2luZCgnQ2FwdGlvbnMnLCBmYWxzZSkpCitSVU4oaW50ZXJuYWxz
LnNldHRpbmdzLnNldFNob3VsZERpc3BsYXlUcmFja0tpbmQoJ1N1YnRpdGxlcycsIHRydWUpKQor
UlVOKGludGVybmFscy5zZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFsnZW4nXSkpCitSVU4oaW50
ZXJuYWxzLnNldFByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSgnZnInKSkKK1JVTihp
bnRlcm5hbHMuc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKCdGb3JjZWRPbmx5JykpCitFVkVOVChjYW5w
bGF5dGhyb3VnaCkKKworKiogRm9yY2VkIHRyYWNrcyBzaG91bGQgYmUgaW4gLnRleHRUcmFja3Ms
IGJ1dCBub3QgaW4gdGhlIG1lbnUKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzLmxlbmd0aCA9
PSAnOScpIE9LCitFWFBFQ1RFRCAodHJhY2tNZW51SXRlbXMubGVuZ3RoID09ICc2JykgT0sKKwor
KiogT25seSB0aGUgJ2ZyJyBmb3JjZWQgdHJhY2sgc2hvdWxkIGJlIHNob3dpbmcKK0VYUEVDVEVE
ICh2aWRlby50ZXh0VHJhY2tzWzBdLmxhbmd1YWdlID09ICdlbicpIE9LCitFWFBFQ1RFRCAodmlk
ZW8udGV4dFRyYWNrc1swXS5raW5kID09ICdzdWJ0aXRsZXMnKSBPSworRVhQRUNURUQgKHZpZGVv
LnRleHRUcmFja3NbMF0ubW9kZSA9PSAnZGlzYWJsZWQnKSBPSworCitFWFBFQ1RFRCAodmlkZW8u
dGV4dFRyYWNrc1sxXS5sYW5ndWFnZSA9PSAnZW4nKSBPSworRVhQRUNURUQgKHZpZGVvLnRleHRU
cmFja3NbMV0ua2luZCA9PSAnZm9yY2VkJykgT0sKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tz
WzFdLm1vZGUgPT0gJ2Rpc2FibGVkJykgT0sKKworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3Nb
Ml0ubGFuZ3VhZ2UgPT0gJ2ZyJykgT0sKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzJdLmtp
bmQgPT0gJ3N1YnRpdGxlcycpIE9LCitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1syXS5tb2Rl
ID09ICdkaXNhYmxlZCcpIE9LCisKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzNdLmxhbmd1
YWdlID09ICdmcicpIE9LCitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1szXS5raW5kID09ICdm
b3JjZWQnKSBPSworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbM10ubW9kZSA9PSAnc2hvd2lu
ZycpIE9LCisKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzWzRdLmxhbmd1YWdlID09ICdlcycp
IE9LCitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1s0XS5raW5kID09ICdzdWJ0aXRsZXMnKSBP
SworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbNF0ubW9kZSA9PSAnZGlzYWJsZWQnKSBPSwor
CitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1s1XS5sYW5ndWFnZSA9PSAnZXMnKSBPSworRVhQ
RUNURUQgKHZpZGVvLnRleHRUcmFja3NbNV0ua2luZCA9PSAnZm9yY2VkJykgT0sKK0VYUEVDVEVE
ICh2aWRlby50ZXh0VHJhY2tzWzVdLm1vZGUgPT0gJ2Rpc2FibGVkJykgT0sKKworRVhQRUNURUQg
KHZpZGVvLnRleHRUcmFja3NbNl0ubGFuZ3VhZ2UgPT0gJ2RlJykgT0sKK0VYUEVDVEVEICh2aWRl
by50ZXh0VHJhY2tzWzZdLmtpbmQgPT0gJ3N1YnRpdGxlcycpIE9LCitFWFBFQ1RFRCAodmlkZW8u
dGV4dFRyYWNrc1s2XS5tb2RlID09ICdkaXNhYmxlZCcpIE9LCisKK0VYUEVDVEVEICh2aWRlby50
ZXh0VHJhY2tzWzddLmxhbmd1YWdlID09ICdkZScpIE9LCitFWFBFQ1RFRCAodmlkZW8udGV4dFRy
YWNrc1s3XS5raW5kID09ICdmb3JjZWQnKSBPSworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3Nb
N10ubW9kZSA9PSAnZGlzYWJsZWQnKSBPSworCitFWFBFQ1RFRCAodmlkZW8udGV4dFRyYWNrc1s4
XS5sYW5ndWFnZSA9PSAnZW4nKSBPSworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbOF0ua2lu
ZCA9PSAnY2FwdGlvbnMnKSBPSworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3NbOF0ubW9kZSA9
PSAnZGlzYWJsZWQnKSBPSworCitFTkQgT0YgVEVTVAorCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRp
YS90cmFjay90cmFjay1mb3JjZWQtc3VidGl0bGVzLWluLWJhbmQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1mb3JjZWQtc3VidGl0bGVzLWluLWJhbmQu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWZvcmNl
ZC1zdWJ0aXRsZXMtaW4tYmFuZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAv
PgorCisgICAgICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWNvbnRyb2xzLmpzPjwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0IHNyYz0uLi90cmFja21lbnUtdGVzdC5qcz48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Li4vdmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dD4KKyAgICAgICAgICAgIHZhciB0ZXN0ID0gMDsKKworICAgICAgICAgICAgZnVuY3Rpb24gdGVz
dEZvcmNlZCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8
YnI+PGk+KiogRm9yY2VkIHRyYWNrcyBzaG91bGQgYmUgaW4gLnRleHRUcmFja3MsIGJ1dCBub3Qg
aW4gdGhlIG1lbnU8IiArICIvaT4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZp
ZGVvLnRleHRUcmFja3MubGVuZ3RoIiwgOSk7CisKKyAgICAgICAgICAgICAgICAvLyBDbGljayB0
aGUgQ0MgYnV0dG9uIHRvIHNob3cgdGhlIG1lbnUgYmVjYXVzZSBpdCBpc24ndCBjcmVhdGVkIHVu
dGlsIGl0IGJlY29tZXMgdmlzaWJsZS4KKyAgICAgICAgICAgICAgICBjbGlja0NDQnV0dG9uKCk7
CisKKyAgICAgICAgICAgICAgICB0cmFja01lbnVJdGVtcyA9IHRyYWNrTWVudUxpc3QoKTsKKyAg
ICAgICAgICAgICAgICBpZiAoIXRyYWNrTWVudUl0ZW1zKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0cmFja01lbnVJdGVtcy5sZW5n
dGgiLCA2KTsKKworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPjxpPioqIE9ubHkg
dGhlICdmcicgZm9yY2VkIHRyYWNrIHNob3VsZCBiZSBzaG93aW5nPCIgKyAiL2k+Iik7CisgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0VHJhY2tzWzBdLmxhbmd1YWdlIiwg
ImVuIik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0VHJhY2tzWzBd
LmtpbmQiLCAic3VidGl0bGVzIik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRl
by50ZXh0VHJhY2tzWzBdLm1vZGUiLCAiZGlzYWJsZWQiKTsKKyAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIiIpOworCisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0
VHJhY2tzWzFdLmxhbmd1YWdlIiwgImVuIik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJ2aWRlby50ZXh0VHJhY2tzWzFdLmtpbmQiLCAiZm9yY2VkIik7CisgICAgICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0VHJhY2tzWzFdLm1vZGUiLCAiZGlzYWJsZWQiKTsKKyAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworCisgICAgICAgICAgICAgICAgdGVzdEV4
cGVjdGVkKCJ2aWRlby50ZXh0VHJhY2tzWzJdLmxhbmd1YWdlIiwgImZyIik7CisgICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0VHJhY2tzWzJdLmtpbmQiLCAic3VidGl0bGVz
Iik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0VHJhY2tzWzJdLm1v
ZGUiLCAiZGlzYWJsZWQiKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworCisg
ICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0VHJhY2tzWzNdLmxhbmd1YWdl
IiwgImZyIik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby50ZXh0VHJhY2tz
WzNdLmtpbmQiLCAiZm9yY2VkIik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRl
by50ZXh0VHJhY2tzWzNdLm1vZGUiLCAic2hvd2luZyIpOworICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRU
cmFja3NbNF0ubGFuZ3VhZ2UiLCAiZXMiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InZpZGVvLnRleHRUcmFja3NbNF0ua2luZCIsICJzdWJ0aXRsZXMiKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbNF0ubW9kZSIsICJkaXNhYmxlZCIpOwor
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbNV0ubGFuZ3VhZ2UiLCAiZXMiKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbNV0ua2luZCIsICJmb3JjZWQi
KTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbNV0ubW9k
ZSIsICJkaXNhYmxlZCIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisKKyAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbNl0ubGFuZ3VhZ2Ui
LCAiZGUiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3Nb
Nl0ua2luZCIsICJzdWJ0aXRsZXMiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZp
ZGVvLnRleHRUcmFja3NbNl0ubW9kZSIsICJkaXNhYmxlZCIpOworICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRl
eHRUcmFja3NbN10ubGFuZ3VhZ2UiLCAiZGUiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInZpZGVvLnRleHRUcmFja3NbN10ua2luZCIsICJmb3JjZWQiKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbN10ubW9kZSIsICJkaXNhYmxlZCIpOwor
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbOF0ubGFuZ3VhZ2UiLCAiZW4iKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3NbOF0ua2luZCIsICJjYXB0aW9u
cyIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4dFRyYWNrc1s4XS5t
b2RlIiwgImRpc2FibGVkIik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKwor
ICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ZnVuY3Rpb24gc2V0dXAoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZpbmRNZWRp
YUVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBydW4oImludGVybmFscy5zZXR0aW5ncy5zZXRT
aG91bGREaXNwbGF5VHJhY2tLaW5kKCdDYXB0aW9ucycsIGZhbHNlKSIpOworICAgICAgICAgICAg
ICAgIHJ1bigiaW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZERpc3BsYXlUcmFja0tpbmQoJ1N1
YnRpdGxlcycsIHRydWUpIik7CisgICAgICAgICAgICAgICAgcnVuKCJpbnRlcm5hbHMuc2V0VXNl
clByZWZlcnJlZExhbmd1YWdlcyhbJ2VuJ10pIik7CisgICAgICAgICAgICAgICAgcnVuKCJpbnRl
cm5hbHMuc2V0UHJpbWFyeUF1ZGlvVHJhY2tMYW5ndWFnZU92ZXJyaWRlKCdmcicpIik7CisgICAg
ICAgICAgICAgICAgcnVuKCJpbnRlcm5hbHMuc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKCdGb3JjZWRP
bmx5JykiKTsKKyAgICAgICAgICAgICAgICB2aWRlby5zcmMgPSAnLi4vY29udGVudC9DQytTdWJ0
aXRsZXMubTR2JzsKKyAgICAgICAgICAgICAgICB2aWRlby52b2x1bWUgPSAwOworICAgICAgICAg
ICAgICAgIHdhaXRGb3JFdmVudCgnY2FucGxheXRocm91Z2gnLCB0ZXN0Rm9yY2VkKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25s
b2FkPSJzZXR1cCgpIj4KKyAgICAgICAgPHA+VGVzdHMgdGhhdCBmb3JjZWQgc3VidGl0bGVzIGFy
ZSBlbmFibGUgYXV0b21hdGljYWxseS48L3A+CisgICAgICAgIDx2aWRlbyB3aWR0aD0iNjQwIiBo
ZWlnaHQ9IjM2MCIgY29udHJvbHM+CisgICAgICAgIDwvdmlkZW8+CisgICAgPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMJKHJl
dmlzaW9uIDE0ODIxNSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRp
b25zCSh3b3JraW5nIGNvcHkpCkBAIC0xNjM3LDYgKzE2MzcsNyBAQCBCdWcoRUZMKSBtZWRpYS90
cmFjay90cmFjay1pbi1iYW5kLmh0bWwgCiBCdWcoRUZMKSBtZWRpYS90cmFjay90cmFjay1pbi1i
YW5kLWN1ZXMtYWRkZWQtb25jZS5odG1sIFsgU2tpcCBdCiBCdWcoRUZMKSBtZWRpYS90cmFjay90
cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwgWyBTa2lwIF0KIEJ1ZyhFRkwpIG1lZGlhL3RyYWNrL3Ry
YWNrLWluLWJhbmQtbGVnYWN5LWFwaS5odG1sIFsgU2tpcCBdCitCdWcoRUZMKSBtZWRpYS90cmFj
ay90cmFjay1mb3JjZWQtc3VidGl0bGVzLWluLWJhbmQuaHRtbCBbIFNraXAgXQogCiAjIEFsbCBk
ZWJ1ZyBib3RzIHRpbWVvdXQgKGNyYXNoKSBvbiB0aGlzIG9uZQogd2Via2l0Lm9yZy9iLzU2NDk2
IFsgRGVidWcgXSBmYXN0L2pzL2FycmF5LXNvcnQtbW9kaWZ5aW5nLXRvc3RyaW5nLmh0bWwgWyBD
cmFzaCBQYXNzIF0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCShyZXZpc2lvbiAxNDgyMTUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNDA0LDYgKzQwNCw3IEBAIHdlYmtpdC5vcmcv
Yi8xMDM3NzEgbWVkaWEvdHJhY2svdHJhY2staW4KIHdlYmtpdC5vcmcvYi8xMDM3NzEgbWVkaWEv
dHJhY2svdHJhY2staW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UuaHRtbCBbIFRpbWVvdXQgXQogd2Vi
a2l0Lm9yZy9iLzEwMzc3MSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwgWyBU
aW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8xMDM3NzEgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1s
ZWdhY3ktYXBpLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDM3NzEgbWVkaWEvdHJh
Y2svdHJhY2stZm9yY2VkLXN1YnRpdGxlcy1pbi1iYW5kLmh0bWwgWyBGYWlsdXJlIF0KIAogI0lu
Y29ycmVjdCByZWJhc2VsaW5lCiB3ZWJraXQub3JnL2IvMTA3ODE4IG1lZGlhL2NvbnRyb2xzLXN0
eWxpbmcuaHRtbCBbIEZhaWx1cmUgXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE0ODIxNSkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMzY2LDYgKzEzNjYsNyBA
QCB3ZWJraXQub3JnL2IvMTAzNjYzIFsgTW91bnRhaW5MaW9uIExpb24gCiB3ZWJraXQub3JnL2Iv
MTAzNjYzIFsgTW91bnRhaW5MaW9uIExpb24gU25vd0xlb3BhcmQgXSBtZWRpYS90cmFjay90cmFj
ay1pbi1iYW5kLWN1ZXMtYWRkZWQtb25jZS5odG1sCiB3ZWJraXQub3JnL2IvMTAzNjYzIFsgTW91
bnRhaW5MaW9uIExpb24gU25vd0xlb3BhcmQgXSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0
eWxlLmh0bWwKIHdlYmtpdC5vcmcvYi8xMDM2NjMgWyBNb3VudGFpbkxpb24gTGlvbiBTbm93TGVv
cGFyZCBdIG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtbGVnYWN5LWFwaS5odG1sCit3ZWJraXQu
b3JnL2IvMTAzNjYzIFsgTW91bnRhaW5MaW9uIExpb24gU25vd0xlb3BhcmQgXSBtZWRpYS90cmFj
ay90cmFjay1mb3JjZWQtc3VidGl0bGVzLWluLWJhbmQuaHRtbAogCiAjIFRoZXNlIHR3byB0ZXN0
cyBzb21ldGltZXMgdGltZW91dAogd2Via2l0Lm9yZy9iLzExMjQ5MiBtZWRpYS90cmFjay90cmFj
ay1sYW5ndWFnZS1wcmVmZXJlbmNlLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxNDgyMTUpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBA
IC0yNjIwLDYgKzI2MjAsNyBAQCB3ZWJraXQub3JnL2IvMTAzNzY5IG1lZGlhL3RyYWNrL3RyYWNr
LWluCiB3ZWJraXQub3JnL2IvMTAzNzY5IG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1h
ZGRlZC1vbmNlLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMDM3NjkgbWVkaWEvdHJhY2sv
dHJhY2staW4tYmFuZC1zdHlsZS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTAzNzY5IG1l
ZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtbGVnYWN5LWFwaS5odG1sIFsgU2tpcCBdCit3ZWJraXQu
b3JnL2IvMTAzNzY5IG1lZGlhL3RyYWNrL3RyYWNrLWZvcmNlZC1zdWJ0aXRsZXMtaW4tYmFuZC5o
dG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xMDQxNTAgZmFzdC9tZWRpYS9pbXBsaWNpdC1t
ZWRpYS1hbGwuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTQ4MjE1KQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTI1
MzksNiArMjUzOSw3IEBAIHdlYmtpdC5vcmcvYi8xMDM3NzAgbWVkaWEvdHJhY2svdHJhY2staW4K
IHdlYmtpdC5vcmcvYi8xMDM3NzAgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1jdWVzLWFkZGVk
LW9uY2UuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEwMzc3MCBtZWRpYS90cmFjay90cmFj
ay1pbi1iYW5kLXN0eWxlLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMDM3NzAgbWVkaWEv
dHJhY2svdHJhY2staW4tYmFuZC1sZWdhY3ktYXBpLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcv
Yi8xMDM3NzAgbWVkaWEvdHJhY2svdHJhY2stZm9yY2VkLXN1YnRpdGxlcy1pbi1iYW5kLmh0bWwg
WyBTa2lwIF0KIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTcw
MjYKIGZhc3QvZXZlbnRzL2tleWRvd24tbGVmdHJpZ2h0LWtleXMuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>