<?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>136550</bug_id>
          
          <creation_ts>2014-09-04 14:52:28 -0700</creation_ts>
          <short_desc>Add TextTrack cueadd event</short_desc>
          <delta_ts>2023-10-14 07:53:53 -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>ASSIGNED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>https://www.w3.org/Bugs/Public/show_bug.cgi?id=25693</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brendan Long">b.long</reporter>
          <assigned_to name="Brendan Long">b.long</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1033317</commentid>
    <comment_count>0</comment_count>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-09-04 14:52:28 -0700</bug_when>
    <thetext>Add TextTrack cueadd event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033318</commentid>
    <comment_count>1</comment_count>
      <attachid>237650</attachid>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-09-04 14:52:43 -0700</bug_when>
    <thetext>Created attachment 237650
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033320</commentid>
    <comment_count>2</comment_count>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-09-04 15:03:10 -0700</bug_when>
    <thetext>This is an implementation based on my suggestion to the W3C:

https://www.w3.org/Bugs/Public/show_bug.cgi?id=25693

Right now, it&apos;s easy to look through cues for static .vtt files by waiting for the track to load, then listing them. Unfortunately, there&apos;s no reasonable way to do that for live cues, since they can be added at any point. You can see *some* of them when they fire with the cuechange event, but the cueadd event would let you see every cue, as soon as the media player is aware of them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033327</commentid>
    <comment_count>3</comment_count>
      <attachid>237651</attachid>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-09-04 15:44:11 -0700</bug_when>
    <thetext>Created attachment 237651
Patch

Add changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036588</commentid>
    <comment_count>4</comment_count>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-09-22 13:21:46 -0700</bug_when>
    <thetext>Based on some feedback from Ian, I&apos;m going to rewrite this to do one event per cue, which will incidentally make this patch much simpler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036738</commentid>
    <comment_count>5</comment_count>
      <attachid>238544</attachid>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-09-23 09:26:27 -0700</bug_when>
    <thetext>Created attachment 238544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036741</commentid>
    <comment_count>6</comment_count>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-09-23 09:28:28 -0700</bug_when>
    <thetext>The new patch sends a CueEvent for each cue.

I&apos;m not sure why the additions in JSDictionary are needed, and I can&apos;t figure out why toTextTrackCue() isn&apos;t in JSTextTrackCue.h.

Also the test times out if I use run-webkit-test, but it works fine if I run it manually:

TEST_RUNNER_TEST_PLUGIN_PATH= TEST_RUNNER_INJECTED_BUNDLE_FILENAME=WebKitBuild/Release/lib/libTestRunnerInjectedBundle.so WebKitBuild/Release/bin/WebKitTestRunner -v LayoutTests/media/track/text-track-oncueadd.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036991</commentid>
    <comment_count>7</comment_count>
      <attachid>238544</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-24 11:44:58 -0700</bug_when>
    <thetext>Comment on attachment 238544
Patch

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

&gt; Source/WebCore/bindings/js/JSDictionary.cpp:189
&gt; +    JSObject* object = asObject(value);

Wouldn&apos;t &quot;result = JSTextTrackCue::toWrapped(value);&quot; work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036995</commentid>
    <comment_count>8</comment_count>
      <attachid>238604</attachid>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-09-24 11:51:03 -0700</bug_when>
    <thetext>Created attachment 238604
Patch

Using JSTextTrackCue::toWrapped now. I feel like I tried this before and it didn&apos;t work, but maybe it was something different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036996</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-09-24 11:55:29 -0700</bug_when>
    <thetext>This event obviously isn&apos;t in the spec yet, is there a bug you can reference?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036997</commentid>
    <comment_count>10</comment_count>
      <attachid>238605</attachid>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-09-24 12:01:56 -0700</bug_when>
    <thetext>Created attachment 238605
Patch

Might as well try to fix the Windows version of this patch too..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037000</commentid>
    <comment_count>11</comment_count>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-09-24 12:17:45 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; This event obviously isn&apos;t in the spec yet, is there a bug you can reference?

Here it is:

https://www.w3.org/Bugs/Public/show_bug.cgi?id=25693</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037010</commentid>
    <comment_count>12</comment_count>
      <attachid>238605</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-09-24 12:52:00 -0700</bug_when>
    <thetext>Comment on attachment 238605
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        * CMakeLists.txt:
&gt; +        * DerivedSources.cpp:
&gt; +        * bindings/js/JSDictionary.cpp:
&gt; +        (WebCore::JSDictionary::convertValue):

I know it is a pain but I really prefer to have per-method (or per-file) comments in the ChangeLog. That makes it much easier for someone to understand what changed when reading the ChangeLog later.

&gt; Source/WebCore/html/track/CueEvent.cpp:39
&gt; +

Nit: don&apos;t need this extra blank line.

&gt; LayoutTests/media/track/text-track-oncueadd.html:11
&gt; +            var i = 0;

Nit: something like &quot;cueNumber&quot; would be clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037016</commentid>
    <comment_count>13</comment_count>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-09-24 13:09:53 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 238605 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238605&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:13
&gt; &gt; +        * CMakeLists.txt:
&gt; &gt; +        * DerivedSources.cpp:
&gt; &gt; +        * bindings/js/JSDictionary.cpp:
&gt; &gt; +        (WebCore::JSDictionary::convertValue):
&gt; 
&gt; I know it is a pain but I really prefer to have per-method (or per-file) comments in the ChangeLog. That makes it much easier for someone to understand what changed when reading the ChangeLog later.
&gt; 
&gt; &gt; Source/WebCore/html/track/CueEvent.cpp:39
&gt; &gt; +
&gt; 
&gt; Nit: don&apos;t need this extra blank line.
&gt; 
&gt; &gt; LayoutTests/media/track/text-track-oncueadd.html:11
&gt; &gt; +            var i = 0;
&gt; 
&gt; Nit: something like &quot;cueNumber&quot; would be clearer.

At the moment I&apos;m trying to fix the Mac build for this. I&apos;ll incorporate these suggestions too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038964</commentid>
    <comment_count>14</comment_count>
      <attachid>239135</attachid>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-10-02 13:56:21 -0700</bug_when>
    <thetext>Created attachment 239135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038965</commentid>
    <comment_count>15</comment_count>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-10-02 13:56:57 -0700</bug_when>
    <thetext>I&apos;m having a lot of trouble getting Xcode builds working. This patch fixes everything else..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040146</commentid>
    <comment_count>16</comment_count>
    <who name="Brendan Long">b.long</who>
    <bug_when>2014-10-07 15:29:11 -0700</bug_when>
    <thetext>Eric - Do you think this event is useful, and if so, could you leave a comment on the W3C bug? I&apos;m trying to prove that other people would like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230806</commentid>
    <comment_count>17</comment_count>
      <attachid>239135</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-17 07:05:47 -0700</bug_when>
    <thetext>Comment on attachment 239135
Patch

Hi,

Apologies that your patch was not reviewed in a timely manner. Since it&apos;s now quite old, I am removing it from the review request queue. Please consider rebasing it on trunk and resubmitting.

To increase the chances of getting a review, consider using &apos;Tools/Scripts/webkit-patch upload --suggest-reviewers&apos; to CC reviewers who might be interested in this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1985102</commentid>
    <comment_count>18</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2023-10-14 07:53:53 -0700</bug_when>
    <thetext>I can&apos;t find this here &apos;oncueadd&apos;:

https://html.spec.whatwg.org/multipage/media.html#cue-events

I checked all browsers:

Blink: TextTrack.idl (from source.chromium.org)
Gecko: TextTrack.idl (from searchfox.org)

and none have &apos;oncueadd&apos;. Is it something still needed?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237650</attachid>
            <date>2014-09-04 14:52:43 -0700</date>
            <delta_ts>2014-09-04 15:44:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136550-20140904165238.patch</filename>
            <type>text/plain</type>
            <size>20136</size>
            <attacher name="Brendan Long">b.long</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDUxNTlj
OGI1M2YyNGMyMmE4ODI4MTIxNzgzMGRmNTk4NjM4MDYyYjUuLmMzYWMzMWE1MGY1MjEyZDM4NjRk
MTdlZDJiMjQ2ZWI3MTZlZWYzNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yOTAzLDYgKzI5
MDMsNyBAQCBpZiAoRU5BQkxFX1ZJREVPX1RSQUNLKQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVf
SURMX0ZJTEVTCiAgICAgICAgIGh0bWwvdHJhY2svQXVkaW9UcmFjay5pZGwKICAgICAgICAgaHRt
bC90cmFjay9BdWRpb1RyYWNrTGlzdC5pZGwKKyAgICAgICAgaHRtbC90cmFjay9DdWVFdmVudC5p
ZGwKICAgICAgICAgaHRtbC90cmFjay9EYXRhQ3VlLmlkbAogICAgICAgICBodG1sL3RyYWNrL1Rl
eHRUcmFjay5pZGwKICAgICAgICAgaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaWRsCkBAIC0yOTE4
LDYgKzI5MTksNyBAQCBpZiAoRU5BQkxFX1ZJREVPX1RSQUNLKQogICAgICAgICBodG1sL3RyYWNr
L0F1ZGlvVHJhY2suY3BwCiAgICAgICAgIGh0bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuY3BwCiAg
ICAgICAgIGh0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVyLmNwcAorICAgICAgICBodG1sL3Ry
YWNrL0N1ZUV2ZW50LmNwcAogICAgICAgICBodG1sL3RyYWNrL0RhdGFDdWUuY3BwCiAgICAgICAg
IGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHAKICAgICAgICAgaHRtbC90cmFjay9J
bmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA4
YWFjNWY1ZjhhNDlhYWY1Yzc2NjEzMTZiMjA3OTE2OThkM2ZmYzY3Li4yNGQ2YmVhMWNhYzQyYTEz
Nzk2YzBkN2UzZTVkNDI2ZjY3ZGFjOTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAt
NjU0LDYgKzY1NCw3IEBAIGlmIChFTkFCTEVfVklERU8gT1IgRU5BQkxFX1dFQl9BVURJTykKIAog
ICAgICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2suaWRsCiAgICAgICAgIGh0bWwvdHJhY2svQXVk
aW9UcmFja0xpc3QuaWRsCisgICAgICAgIGh0bWwvdHJhY2svQ3VlRXZlbnQuaWRsCiAgICAgICAg
IGh0bWwvdHJhY2svRGF0YUN1ZS5pZGwKICAgICAgICAgaHRtbC90cmFjay9UZXh0VHJhY2suaWRs
CiAgICAgICAgIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKaW5kZXggMWFmMDI2ZGJhNDVkOTQ3OTA4NTQ0YmIx
ODRiNWM2NjZjZTRmYjI2YS4uMjFiZTNjYjc4MzMyNDA4Mzc1MDk4YTNkMDNmNjNiMmQ0MGFmYjRh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNNZXNzYWdlUG9ydEN1c3RvbS5oIgogI2luY2x1ZGUg
IkpTTm9kZS5oIgogI2luY2x1ZGUgIkpTU3RvcmFnZS5oIgorI2luY2x1ZGUgIkpTVGV4dFRyYWNr
Q3VlLmgiCiAjaW5jbHVkZSAiSlNUcmFja0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTVm9pZENhbGxi
YWNrLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCkBAIC0xODAsNiArMTgx
LDI3IEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIHZhbHVlLCBNZXNzYWdlUG9ydEFycmF5CiB9CiAKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCit2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBKU0M6OkpTVmFsdWUgdmFsdWUsIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrQ3VlPj4mIHJlc3Vs
dCkKK3sKKyAgICBpZiAodmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgdW5zaWduZWQgbGVuZ3RoID0gMDsKKyAgICBKU09iamVjdCogb2JqZWN0ID0gdG9K
U1NlcXVlbmNlKGV4ZWMsIHZhbHVlLCBsZW5ndGgpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRp
b24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMCA7IGkgPCBs
ZW5ndGg7ICsraSkgeworICAgICAgICBKU1ZhbHVlIGl0ZW1WYWx1ZSA9IG9iamVjdC0+Z2V0KGV4
ZWMsIGkpOworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChpdGVtVmFsdWUpOwor
ICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0cyhKU1RleHRUcmFja0N1ZTo6aW5mbygpKSkKKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJmpzQ2FzdDxKU1RleHRUcmFja0N1ZSo+KG9iamVjdCkt
PmltcGwoKSk7CisgICAgICAgIC8vIGVsc2UgQVNTRVJUPworICAgIH0KK30KKwogdm9pZCBKU0Rp
Y3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8
VHJhY2tCYXNlPiYgcmVzdWx0KQogewogICAgIHJlc3VsdCA9IHRvVHJhY2sodmFsdWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaAppbmRleCBlOTAyZjlhNmFjNmFj
ODYzODBlZjk2MDhlOWQ5MTBjYTQzMzBkODdmLi4xNDI4MjE1NzA2NDNkN2NlYzE3NWM0MmM4NWNk
YzhkYWRkMDQ4NGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rp
Y3Rpb25hcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnku
aApAQCAtNTMsNiArNTMsNyBAQCBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrOwogY2xhc3MgTm9kZTsK
IGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFN0b3JhZ2U7CitjbGFzcyBUZXh0
VHJhY2tDdWU7CiBjbGFzcyBUcmFja0Jhc2U7CiBjbGFzcyBWb2lkQ2FsbGJhY2s7CiAKQEAgLTEx
Nyw2ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPFN0b3JhZ2U+JiByZXN1bHQpOwogICAg
IHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwg
TWVzc2FnZVBvcnRBcnJheSYgcmVzdWx0KTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAg
c3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBW
ZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4+JiByZXN1bHQpOwogICAgIHN0YXRpYyB2b2lkIGNv
bnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPFRyYWNrQmFz
ZT4mIHJlc3VsdCk7CiAjZW5kaWYKICAgICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEhhc2hTZXQ8QXRvbWljU3RyaW5nPiYgcmVzdWx0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IDMxMTJhMmViNWI3ZDdjYTIwZTNiNTAyMWIwM2Yy
NTU2NjUxNzU3ZGYuLmI2ZjVmMGIyYTFjZWJkYWVjMWVjZjdmYTJjYWRlYWM3ODFlZjFiNjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtMTY2LDYgKzE2Niw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhhY3RpdmUpIFwKICAgICBtYWNybyhpbmFjdGl2ZSkgXAogICAgIG1h
Y3JvKGFkZHRyYWNrKSBcCisgICAgbWFjcm8oY3VlYWRkKSBcCiAgICAgbWFjcm8oY3VlY2hhbmdl
KSBcCiAgICAgbWFjcm8oZW50ZXIpIFwKICAgICBtYWNybyhleGl0KSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmluCmluZGV4IGEyYmYxOTk4ZDQ5ZmYxMjZhODU2ZDVjMGEzMGFlODUzM2M5NWZlYTYu
LmQxN2Q4ZGY0NTIwNTFjZTBiZjA4ZmIyMzIxNWE4YTQ5NjNmZDRmMjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmluCkBAIC01Miw2ICs1Miw3IEBAIE9yaWVudGF0aW9uRXZlbnQgaW50ZXJmYWNl
TmFtZT1FdmVudCwgY29uZGl0aW9uYWw9T1JJRU5UQVRJT05fRVZFTlRTCiBNZWRpYUtleUV2ZW50
IGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQQogTWVkaWFLZXlNZXNzYWdlRXZlbnQgY29uZGl0
aW9uYWw9RU5DUllQVEVEX01FRElBX1YyCiBNZWRpYUtleU5lZWRlZEV2ZW50IGNvbmRpdGlvbmFs
PUVOQ1JZUFRFRF9NRURJQV9WMgorQ3VlRXZlbnQgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIFRy
YWNrRXZlbnQgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIENTU0ZvbnRGYWNlTG9hZEV2ZW50IGNv
bmRpdGlvbmFsPUZPTlRfTE9BRF9FVkVOVFMKIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQg
Y29uZGl0aW9uYWw9Q1NQX05FWFQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IDYxYTZkYTNjODE3YmNiZmY1Zjk3Yjc3MTY2ZmY2YmE2OTlmMmE4MzcuLmZlYTll
NGM0YWRiNjAyNGZiMmY1Njc5ZmQ3NWMxODYyM2FiMzMyYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtODcsNiArODcsNyBAQAogCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogI2luY2x1ZGUgIkF1ZGlvVHJhY2tMaXN0LmgiCisjaW5jbHVkZSAiQ3VlRXZl
bnQuaCIKICNpbmNsdWRlICJIVE1MVHJhY2tFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjay5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUuaCIKQEAg
LTE2MTAsOSArMTYxMSwyMSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1
ZXMoVGV4dFRyYWNrKiB0cmFjaywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdAogICAgIGlmICh0cmFj
ay0+bW9kZSgpID09IFRleHRUcmFjazo6ZGlzYWJsZWRLZXl3b3JkKCkpCiAgICAgICAgIHJldHVy
bjsKIAorICAgIEN1ZUV2ZW50SW5pdCBpbml0OworICAgIGluaXQuYnViYmxlcyA9IGZhbHNlOwor
ICAgIGluaXQuY2FuY2VsYWJsZSA9IGZhbHNlOworCiAgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2Nv
cGUgc2NvcGUodGhpcyk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdWVzLT5sZW5ndGgo
KTsgKytpKQotICAgICAgICB0ZXh0VHJhY2tBZGRDdWUodHJhY2ssIGN1ZXMtPml0ZW0oaSkpOwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY3Vlcy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAg
ICBUZXh0VHJhY2tDdWUqIGN1ZSA9IGN1ZXMtPml0ZW0oaSk7CisgICAgICAgIHRleHRUcmFja0Fk
ZEN1ZSh0cmFjaywgY3VlLCBmYWxzZSk7CisgICAgICAgIGluaXQuY3Vlcy5hcHBlbmQoY3VlKTsK
KyAgICB9CisKKyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gQ3VlRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuY3VlYWRkRXZlbnQsIGluaXQpOworICAgIGV2ZW50LT5zZXRUYXJnZXQodHJhY2sp
OworCisgICAgbV9hc3luY0V2ZW50UXVldWUuZW5xdWV1ZUV2ZW50KGV2ZW50LnJlbGVhc2UoKSk7
CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJh
Y2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KiBjdWVzKSAKQEAgLTE2MjIsNyArMTYzNSw3IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBj
b25zdCBUZXh0VHJhY2tDdWVMaXN0KiBjCiAgICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZShjdWVz
LT5pdGVtKGkpLT50cmFjaygpLCBjdWVzLT5pdGVtKGkpKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywgUGFzc1JlZlB0cjxUZXh0
VHJhY2tDdWU+IGN1ZSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKFRl
eHRUcmFjayogdHJhY2ssIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBjdWUsIGJvb2wgc2VuZEFk
ZEN1ZUV2ZW50KQogewogICAgIGlmICh0cmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6ZGlzYWJs
ZWRLZXl3b3JkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE2MzUsNiArMTY0OCwxOCBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqIHRyYWNrLCBQYXNz
UmVmUHRyPFRleHRUcmFja0N1ZQogICAgIGlmICghbV9jdWVUcmVlLmNvbnRhaW5zKGludGVydmFs
KSkKICAgICAgICAgbV9jdWVUcmVlLmFkZChpbnRlcnZhbCk7CiAgICAgdXBkYXRlQWN0aXZlVGV4
dFRyYWNrQ3VlcyhjdXJyZW50VGltZSgpKTsKKworICAgIGlmICghc2VuZEFkZEN1ZUV2ZW50KQor
ICAgICAgICByZXR1cm47CisKKyAgICBDdWVFdmVudEluaXQgaW5pdDsKKyAgICBpbml0LmJ1YmJs
ZXMgPSBmYWxzZTsKKyAgICBpbml0LmNhbmNlbGFibGUgPSBmYWxzZTsKKyAgICBpbml0LmN1ZXMu
YXBwZW5kKGN1ZSk7CisgICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IEN1ZUV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmN1ZWFkZEV2ZW50LCBpbml0KTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KHRy
YWNrKTsKKworICAgIG1fYXN5bmNFdmVudFF1ZXVlLmVucXVldWVFdmVudChldmVudC5yZWxlYXNl
KCkpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0
VHJhY2sqLCBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4gY3VlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAppbmRleCA3Njk4ZDQ0YjMwZmI4OWVkODk3ODRjMTJlYmIwNWE4MGNj
ODIxNWNlLi45OTA1ZTBkZGY5NzJhYzJjN2EyMDA2NmVlYTZmYTExYjY4YTk0YTBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMzQ2LDkgKzM0NiwxNCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayopIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayosIGNv
bnN0IFRleHRUcmFja0N1ZUxpc3QqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdGV4dFRy
YWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Kikgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqLCBQYXNzUmVm
UHRyPFRleHRUcmFja0N1ZT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tB
ZGRDdWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+LCBib29sIHNlbmRBZGRD
dWVFdmVudCk7CiAgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sq
LCBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4pIG92ZXJyaWRlOwogCisgICAgdmlydHVhbCB2b2lk
IHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqIHRyYWNrLCBQYXNzUmVmUHRyPFRleHRUcmFja0N1
ZT4gY3VlKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgdGV4dFRyYWNrQWRkQ3VlKHRyYWNrLCBj
dWUsIHRydWUpOworICAgIH0KKwogICAgIC8vIFZpZGVvVHJhY2tDbGllbnQKICAgICB2aXJ0dWFs
IHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrKikgb3ZlcnJpZGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQ3VlRXZlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9DdWVFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVjNTBiMGZl
ZWE1NDFhZDQ0YzhiYjIyYmZmZGMxY2JmYWRhNjNmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQ3VlRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNCBDYWJsZSBUZWxldmlzaW9uIExhYnMgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyNpbmNsdWRl
ICJDdWVFdmVudC5oIgorCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0N1ZUV2ZW50SW5pdDo6Q3VlRXZlbnRJbml0KCkKK3sKK30KKworCitDdWVFdmVu
dDo6Q3VlRXZlbnQoKQoreworfQorCitDdWVFdmVudDo6Q3VlRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBjb25zdCBDdWVFdmVudEluaXQmIGluaXRpYWxpemVyKQorICAgIDogRXZlbnQo
dHlwZSwgaW5pdGlhbGl6ZXIpCisgICAgLCBtX2N1ZXMoaW5pdGlhbGl6ZXIuY3VlcykKK3sKK30K
KworQ3VlRXZlbnQ6On5DdWVFdmVudCgpCit7Cit9CisKK0V2ZW50SW50ZXJmYWNlIEN1ZUV2ZW50
OjpldmVudEludGVyZmFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEN1ZUV2ZW50SW50ZXJmYWNl
VHlwZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQ3VlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQ3VlRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40N2E5MTk2NjQ3NTcyNTE4ZGFlMmY4MGI5
YmE0NjMzM2NlNWY4YzY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9DdWVFdmVudC5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NCBDYWJsZSBUZWxldmlzaW9uIExhYnMgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3VlRXZlbnRf
aAorI2RlZmluZSBDdWVFdmVudF9oCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisKKyNpbmNs
dWRlICJFdmVudC5oIgorI2luY2x1ZGUgIlRleHRUcmFja0N1ZS5oIgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgQ3VlRXZlbnRJbml0IDog
cHVibGljIEV2ZW50SW5pdCB7CisgICAgQ3VlRXZlbnRJbml0KCk7CisKKyAgICBWZWN0b3I8UmVm
UHRyPFRleHRUcmFja0N1ZT4+IGN1ZXM7Cit9OworCitjbGFzcyBDdWVFdmVudCA6IHB1YmxpYyBF
dmVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+Q3VlRXZlbnQoKTsKKworICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEN1ZUV2ZW50PiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBDdWVFdmVudCk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q3VlRXZl
bnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEN1ZUV2ZW50SW5pdCYg
aW5pdGlhbGl6ZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEN1ZUV2ZW50
KHR5cGUsIGluaXRpYWxpemVyKSk7CisgICAgfQorCisgICAgdmlydHVhbCBFdmVudEludGVyZmFj
ZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgY29uc3QgVmVjdG9yPFJl
ZlB0cjxUZXh0VHJhY2tDdWU+PiBjdWVzKCkgY29uc3QgeyByZXR1cm4gbV9jdWVzOyB9CisKK3By
aXZhdGU6CisgICAgQ3VlRXZlbnQoKTsKKyAgICBDdWVFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IHR5cGUsIGNvbnN0IEN1ZUV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpOworCisgICAgVmVjdG9yPFJl
ZlB0cjxUZXh0VHJhY2tDdWU+PiBtX2N1ZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0N1ZUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQ3VlRXZlbnQuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMwY2VlNzZjNDY1NGI3NzUwM2FhODAzMzVkZGNhZDljYjJhY2FkYjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmlkbApAQCAt
MCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ2FibGUgVGVsZXZpc2lvbiBM
YWJzIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssCisgICAg
Q29uc3RydWN0b3JUZW1wbGF0ZT1FdmVudAorXSBpbnRlcmZhY2UgQ3VlRXZlbnQgOiBFdmVudCB7
CisgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUg
VGV4dFRyYWNrQ3VlW10gY3VlczsKK307CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrLmNwcAppbmRleCAyZGYzNTdjZTQ3MjUzNTdhY2M0NTY3OTI5ZDJmOGY5MDhjMjBhOWNhLi4z
YWVmNzRiNDgwNDUxYmE5OWZhMGNkY2ExOTdiMzI5YWUyNGZkNmZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2suY3BwCkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBUZXh0VHJh
Y2s6OmFkZEN1ZShQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4gcHJwQ3VlLCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICAvLyAyLiBBZGQgY3VlIHRvIHRoZSBtZXRob2QncyBUZXh0VHJhY2sgb2JqZWN0
J3MgdGV4dCB0cmFjaydzIHRleHQgdHJhY2sgbGlzdCBvZiBjdWVzLgogICAgIGN1ZS0+c2V0VHJh
Y2sodGhpcyk7CiAgICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpLT5hZGQoY3VlKTsKLSAgICAK
KwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja0FkZEN1ZSh0
aGlzLCBjdWUuZ2V0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKaW5k
ZXggOWEyNjQ0NWE4NTI4YjdlZjgwM2M4MmU0OGE0NzI4M2RlMmQzNjk3Ny4uNjNiNGFmMTE0NTk0
MmNjYzIzYmY4ZTZmY2RlZjkxNjJhZTRlNGIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFjay5oCkBAIC0xMjMsNiArMTIzLDcgQEAgcHVibGljOgogICAgIHZvaWQgY3VlV2lsbENo
YW5nZShUZXh0VHJhY2tDdWUqKTsKICAgICB2b2lkIGN1ZURpZENoYW5nZShUZXh0VHJhY2tDdWUq
KTsKIAorICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoY3VlYWRkKTsKICAgICBE
RUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGN1ZWNoYW5nZSk7CiAKICAgICBlbnVtIFRl
eHRUcmFja1R5cGUgeyBUcmFja0VsZW1lbnQsIEFkZFRyYWNrLCBJbkJhbmQgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmlkbAppbmRleCBkNjAzNThiNmM4ZGRjOWU0YmRiMjcz
ZWRlMDI5NjdkYWQzNzk0ODgwLi4xZDM4YzY5YzAyZWI4MzNkYTI3NTNmNzE3OTcxM2I2YzE1ZjNj
ZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRsCkBAIC00Nyw2ICs0
Nyw3IEBAIGVudW0gVGV4dFRyYWNrS2luZCB7ICJzdWJ0aXRsZXMiLCAgImNhcHRpb25zIiwgICJk
ZXNjcmlwdGlvbnMiLCAgImNoYXB0ZXJzIiwgIm1lCiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9p
ZCBhZGRDdWUoVGV4dFRyYWNrQ3VlIGN1ZSk7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBy
ZW1vdmVDdWUoVGV4dFRyYWNrQ3VlIGN1ZSk7CiAKKyAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbmN1ZWFkZDsKICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmN1ZWNoYW5nZTsKIAogI2lmIGRlZmluZWQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAmJiBF
TkFCTEVfV0VCVlRUX1JFR0lPTlMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNr
L3RleHQtdHJhY2stb25jdWVhZGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdGV4dC10cmFjay1vbmN1ZWFkZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODEwZjk4YWIw
MGRkYjlhZmQ1NzUyNmNiYTFkM2U5Y2VmMzIwZDlkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL3RyYWNrL3RleHQtdHJhY2stb25jdWVhZGQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTggQEAKK1Rlc3RzIFRleHRUcmFjaydzIGN1ZWFkZCBldmVudAorCisKKyogU2F3IGN1
ZWFkZCBldmVudCAqCitFWFBFQ1RFRCAoY3Vlcy5sZW5ndGggPT0gJzQnKSBPSworRVhQRUNURUQg
KGN1ZXNbaV0udGV4dCA9PSAnTG9yZW0nKSBPSworRVhQRUNURUQgKGN1ZXNbaV0udGV4dCA9PSAn
aXBzdW0nKSBPSworRVhQRUNURUQgKGN1ZXNbaV0udGV4dCA9PSAnZG9sb3InKSBPSworRVhQRUNU
RUQgKGN1ZXNbaV0udGV4dCA9PSAnc2l0JykgT0sKKworKiBBZGRpbmcgY3VlIHRvIHRyYWNrIG1h
bnVhbGx5ICoKKworKiBTYXcgY3VlYWRkIGV2ZW50ICoKK0VYUEVDVEVEIChjdWVzLmxlbmd0aCA9
PSAnMScpIE9LCitFWFBFQ1RFRCAoY3Vlc1tpXS50ZXh0ID09ICdBZGRlZCBjdWUnKSBPSworCitF
TkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90ZXh0LXRy
YWNrLW9uY3VlYWRkLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90ZXh0LXRyYWNrLW9u
Y3VlYWRkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDYyMDUyMjM4OTcwZTg3ZGM5M2MzNmUxZGM2Mzc3ZmFm
OTg1MDhjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RleHQt
dHJhY2stb25jdWVhZGQuaHRtbApAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUi
IGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KKworICAgICAgICA8c2NyaXB0
IHNyYz0uLi9tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0uLi92
aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorCisgICAgICAgICAgICB2
YXIgY3VlczsKKyAgICAgICAgICAgIHZhciBjdWVBZGRlZENhbGxlZCA9IDA7CisgICAgICAgICAg
ICB2YXIgaTsKKyAgICAgICAgICAgIHZhciBqID0gMDsKKworICAgICAgICAgICAgdmFyIGV4cGVj
dGVkQ3VlcyA9IFsKKyAgICAgICAgICAgICAgICAiTG9yZW0iLAorICAgICAgICAgICAgICAgICJp
cHN1bSIsCisgICAgICAgICAgICAgICAgImRvbG9yIiwKKyAgICAgICAgICAgICAgICAic2l0IiwK
KyAgICAgICAgICAgICAgICAiQWRkZWQgY3VlIgorICAgICAgICAgICAgXQorCisgICAgICAgICAg
ICBmdW5jdGlvbiBjdWVBZGRlZChlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiKiBTYXcgY3VlYWRkIGV2ZW50ICoiKTsKKyAgICAgICAgICAgICAgICBjdWVz
ID0gZS5jdWVzOworICAgICAgICAgICAgICAgIGlmIChjdWVBZGRlZENhbGxlZCA9PSAwKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiY3Vlcy5sZW5ndGgiLCA0KTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImN1
ZXMubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAo
aSA9IDA7IGkgPCBlLmN1ZXMubGVuZ3RoOyArK2ksICsraikgeworICAgICAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoImN1ZXNbaV0udGV4dCIsIGV4cGVjdGVkQ3Vlc1tqXSk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisKKyAgICAgICAg
ICAgICAgICArK2N1ZUFkZGVkQ2FsbGVkOworICAgICAgICAgICAgICAgIGlmIChjdWVBZGRlZENh
bGxlZCA+PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRyYWNrTG9hZGVk
KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiogQWRkaW5n
IGN1ZSB0byB0cmFjayBtYW51YWxseSAqIik7CisgICAgICAgICAgICAgICAgdmFyIHRlc3RUcmFj
ayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0VHJhY2siKTsKKyAgICAgICAgICAgICAg
ICB2YXIgY3VlID0gbmV3IFZUVEN1ZSg0LCA1LCAiQWRkZWQgY3VlIik7CisgICAgICAgICAgICAg
ICAgdGVzdFRyYWNrLnRyYWNrLmFkZEN1ZShjdWUpOworICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG9ubG9hZCA9IGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHZhciB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXN0VmlkZW8iKTsKKyAgICAgICAgICAgICAgICB2aWRlby50ZXh0VHJhY2tzLmFkZEV2ZW50
TGlzdGVuZXIoImFkZHRyYWNrIiwgZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICBl
LnRyYWNrLmFkZEV2ZW50TGlzdGVuZXIoImN1ZWFkZCIsIGN1ZUFkZGVkKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIHNldENhcHRpb25EaXNwbGF5
TW9kZSgnQXV0b21hdGljJyk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8
Ym9keT4KKyAgICAgICAgPHA+VGVzdHMgVGV4dFRyYWNrJ3MgY3VlYWRkIGV2ZW50PC9wPgorICAg
ICAgICA8dmlkZW8gaWQ9InRlc3RWaWRlbyI+CisgICAgICAgICAgICA8dHJhY2sgaWQ9InRlc3RU
cmFjayIgc3JjPSJjYXB0aW9ucy13ZWJ2dHQvY2FwdGlvbnMudnR0IiBraW5kPSJjYXB0aW9ucyIg
b25sb2FkPSJ0cmFja0xvYWRlZCgpIiBkZWZhdWx0PgorICAgICAgICA8L3ZpZGVvPgorICAgIDwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237651</attachid>
            <date>2014-09-04 15:44:11 -0700</date>
            <delta_ts>2014-09-23 09:26:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136550-20140904174405.patch</filename>
            <type>text/plain</type>
            <size>22332</size>
            <attacher name="Brendan Long">b.long</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYyZTA0ZTRmOWFhOGVl
MTlkYTAzNjg4YmRiMzhmNzk2MTdkZDY4MS4uYTY4ZDAzMDk0ZTU4ZTQwYWQzNzlmNmNkOGIzOWUy
YWU1YmM5YmU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTA5LTA0ICBCcmVu
ZGFuIExvbmcgIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KKworICAgICAgICBBZGQgVGV4dFRyYWNr
IGN1ZWFkZCBldmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM2NTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogbWVkaWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGljdGlv
bmFyeS5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50
TmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBo
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0N1ZUV2ZW50LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDdWVFdmVudEluaXQ6OkN1ZUV2ZW50SW5pdCk6
CisgICAgICAgIChXZWJDb3JlOjpDdWVFdmVudDo6Q3VlRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VlRXZlbnQ6On5DdWVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDdWVFdmVudDo6ZXZl
bnRJbnRlcmZhY2UpOgorICAgICAgICAqIGh0bWwvdHJhY2svQ3VlRXZlbnQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpDdWVFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkN1
ZUV2ZW50OjpjdWVzKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0N1ZUV2ZW50LmlkbDogQWRkZWQu
CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dFRyYWNrOjphZGRDdWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmg6Cisg
ICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaWRsOgorCiAyMDE0LTA5LTAyICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE5vbi1jb21wb3NpdGVk
IGNoaWxkIFJlbmRlckxheWVycyBjYXVzZSBhbGxvY2F0aW9uIG9mIHVubmNlc3NhcnkgYmFja2lu
ZyBzdG9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1MTU5YzhiNTNmMjRjMjJhODgyODEyMTc4
MzBkZjU5ODYzODA2MmI1Li5jM2FjMzFhNTBmNTIxMmQzODY0ZDE3ZWQyYjI0NmViNzE2ZWVmMzVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjkwMyw2ICsyOTAzLDcgQEAgaWYgKEVOQUJMRV9W
SURFT19UUkFDSykKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUwogICAgICAgICBo
dG1sL3RyYWNrL0F1ZGlvVHJhY2suaWRsCiAgICAgICAgIGh0bWwvdHJhY2svQXVkaW9UcmFja0xp
c3QuaWRsCisgICAgICAgIGh0bWwvdHJhY2svQ3VlRXZlbnQuaWRsCiAgICAgICAgIGh0bWwvdHJh
Y2svRGF0YUN1ZS5pZGwKICAgICAgICAgaHRtbC90cmFjay9UZXh0VHJhY2suaWRsCiAgICAgICAg
IGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmlkbApAQCAtMjkxOCw2ICsyOTE5LDcgQEAgaWYgKEVO
QUJMRV9WSURFT19UUkFDSykKICAgICAgICAgaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAogICAg
ICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmNwcAogICAgICAgICBodG1sL3RyYWNrL0J1
ZmZlcmVkTGluZVJlYWRlci5jcHAKKyAgICAgICAgaHRtbC90cmFjay9DdWVFdmVudC5jcHAKICAg
ICAgICAgaHRtbC90cmFjay9EYXRhQ3VlLmNwcAogICAgICAgICBodG1sL3RyYWNrL0luYmFuZERh
dGFUZXh0VHJhY2suY3BwCiAgICAgICAgIGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFj
ay5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggOGFhYzVmNWY4YTQ5YWFmNWM3NjYx
MzE2YjIwNzkxNjk4ZDNmZmM2Ny4uMjRkNmJlYTFjYWM0MmExMzc5NmMwZDdlM2U1ZDQyNmY2N2Rh
YzkwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTY1NCw2ICs2NTQsNyBAQCBpZiAo
RU5BQkxFX1ZJREVPIE9SIEVOQUJMRV9XRUJfQVVESU8pCiAKICAgICAgICAgaHRtbC90cmFjay9B
dWRpb1RyYWNrLmlkbAogICAgICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmlkbAorICAg
ICAgICBodG1sL3RyYWNrL0N1ZUV2ZW50LmlkbAogICAgICAgICBodG1sL3RyYWNrL0RhdGFDdWUu
aWRsCiAgICAgICAgIGh0bWwvdHJhY2svVGV4dFRyYWNrLmlkbAogICAgICAgICBodG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25h
cnkuY3BwCmluZGV4IDFhZjAyNmRiYTQ1ZDk0NzkwODU0NGJiMTg0YjVjNjY2Y2U0ZmIyNmEuLjIx
YmUzY2I3ODMzMjQwODM3NTA5OGEzZDAzZjYzYjJkNDBhZmI0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkpTTWVzc2FnZVBvcnRDdXN0b20uaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRl
ICJKU1N0b3JhZ2UuaCIKKyNpbmNsdWRlICJKU1RleHRUcmFja0N1ZS5oIgogI2luY2x1ZGUgIkpT
VHJhY2tDdXN0b20uaCIKICNpbmNsdWRlICJKU1ZvaWRDYWxsYmFjay5oIgogI2luY2x1ZGUgIlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgpAQCAtMTgwLDYgKzE4MSwyNyBAQCB2b2lkIEpTRGljdGlv
bmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgTWVzc2Fn
ZVBvcnRBcnJheQogfQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQordm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVl
LCBWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4+JiByZXN1bHQpCit7CisgICAgaWYgKHZhbHVl
LmlzVW5kZWZpbmVkT3JOdWxsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHVuc2lnbmVkIGxl
bmd0aCA9IDA7CisgICAgSlNPYmplY3QqIG9iamVjdCA9IHRvSlNTZXF1ZW5jZShleGVjLCB2YWx1
ZSwgbGVuZ3RoKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDAgOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgSlNWYWx1ZSBpdGVtVmFsdWUgPSBvYmplY3QtPmdldChleGVjLCBpKTsKKyAgICAgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBKU09i
amVjdCogb2JqZWN0ID0gYXNPYmplY3QoaXRlbVZhbHVlKTsKKyAgICAgICAgaWYgKG9iamVjdC0+
aW5oZXJpdHMoSlNUZXh0VHJhY2tDdWU6OmluZm8oKSkpCisgICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCZqc0Nhc3Q8SlNUZXh0VHJhY2tDdWUqPihvYmplY3QpLT5pbXBsKCkpOworICAgICAgICAv
LyBlbHNlIEFTU0VSVD8KKyAgICB9Cit9CisKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFs
dWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPFRyYWNrQmFzZT4mIHJlc3VsdCkK
IHsKICAgICByZXN1bHQgPSB0b1RyYWNrKHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNEaWN0aW9uYXJ5LmgKaW5kZXggZTkwMmY5YTZhYzZhYzg2MzgwZWY5NjA4ZTlkOTEwY2E0
MzMwZDg3Zi4uMTQyODIxNTcwNjQzZDdjZWMxNzVjNDJjODVjZGM4ZGFkZDA0ODRiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKQEAgLTUzLDYgKzUzLDcgQEAg
Y2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKIGNsYXNzIE5vZGU7CiBjbGFzcyBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU7CiBjbGFzcyBTdG9yYWdlOworY2xhc3MgVGV4dFRyYWNrQ3VlOwogY2xhc3MgVHJh
Y2tCYXNlOwogY2xhc3MgVm9pZENhbGxiYWNrOwogCkBAIC0xMTcsNiArMTE4LDcgQEAgcHJpdmF0
ZToKICAgICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIFJlZlB0cjxTdG9yYWdlPiYgcmVzdWx0KTsKICAgICBzdGF0aWMgdm9pZCBjb252ZXJ0
VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIE1lc3NhZ2VQb3J0QXJyYXkmIHJl
c3VsdCk7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRW
YWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgVmVjdG9yPFJlZlB0cjxUZXh0VHJh
Y2tDdWU+PiYgcmVzdWx0KTsKICAgICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxUcmFja0Jhc2U+JiByZXN1bHQpOwogI2VuZGlm
CiAgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1Zh
bHVlLCBIYXNoU2V0PEF0b21pY1N0cmluZz4mIHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aAppbmRleCAzMTEyYTJlYjViN2Q3Y2EyMGUzYjUwMjFiMDNmMjU1NjY1MTc1N2RmLi5iNmY1ZjBi
MmExY2ViZGFlYzFlY2Y3ZmEyY2FkZWFjNzgxZWYxYjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmgKQEAgLTE2Niw2ICsxNjYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oYWN0
aXZlKSBcCiAgICAgbWFjcm8oaW5hY3RpdmUpIFwKICAgICBtYWNybyhhZGR0cmFjaykgXAorICAg
IG1hY3JvKGN1ZWFkZCkgXAogICAgIG1hY3JvKGN1ZWNoYW5nZSkgXAogICAgIG1hY3JvKGVudGVy
KSBcCiAgICAgbWFjcm8oZXhpdCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCBhMmJm
MTk5OGQ0OWZmMTI2YTg1NmQ1YzBhMzBhZTg1MzNjOTVmZWE2Li5kMTdkOGRmNDUyMDUxY2UwYmYw
OGZiMjMyMTVhOGE0OTYzZmQ0ZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtNTIs
NiArNTIsNyBAQCBPcmllbnRhdGlvbkV2ZW50IGludGVyZmFjZU5hbWU9RXZlbnQsIGNvbmRpdGlv
bmFsPU9SSUVOVEFUSU9OX0VWRU5UUwogTWVkaWFLZXlFdmVudCBjb25kaXRpb25hbD1FTkNSWVBU
RURfTUVESUEKIE1lZGlhS2V5TWVzc2FnZUV2ZW50IGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJ
QV9WMgogTWVkaWFLZXlOZWVkZWRFdmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUFfVjIK
K0N1ZUV2ZW50IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCiBUcmFja0V2ZW50IGNvbmRpdGlvbmFs
PVZJREVPX1RSQUNLCiBDU1NGb250RmFjZUxvYWRFdmVudCBjb25kaXRpb25hbD1GT05UX0xPQURf
RVZFTlRTCiBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50IGNvbmRpdGlvbmFsPUNTUF9ORVhU
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA2MWE2ZGEzYzgx
N2JjYmZmNWY5N2I3NzE2NmZmNmJhNjk5ZjJhODM3Li5mZWE5ZTRjNGFkYjYwMjRmYjJmNTY3OWZk
NzVjMTg2MjNhYjMzMmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKQEAgLTg3LDYgKzg3LDcgQEAKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICNpbmNsdWRl
ICJBdWRpb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIkN1ZUV2ZW50LmgiCiAjaW5jbHVkZSAiSFRN
TFRyYWNrRWxlbWVudC5oIgogI2luY2x1ZGUgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2suaCIKICNp
bmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgiCkBAIC0xNjEwLDkgKzE2MTEsMjEgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayogdHJhY2ss
IGNvbnN0IFRleHRUcmFja0N1ZUxpc3QKICAgICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0VHJh
Y2s6OmRpc2FibGVkS2V5d29yZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBDdWVFdmVudElu
aXQgaW5pdDsKKyAgICBpbml0LmJ1YmJsZXMgPSBmYWxzZTsKKyAgICBpbml0LmNhbmNlbGFibGUg
PSBmYWxzZTsKKwogICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlKHRoaXMpOwotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY3Vlcy0+bGVuZ3RoKCk7ICsraSkKLSAgICAgICAgdGV4
dFRyYWNrQWRkQ3VlKHRyYWNrLCBjdWVzLT5pdGVtKGkpKTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGN1ZXMtPmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgVGV4dFRyYWNrQ3VlKiBjdWUg
PSBjdWVzLT5pdGVtKGkpOworICAgICAgICB0ZXh0VHJhY2tBZGRDdWUodHJhY2ssIGN1ZSwgZmFs
c2UpOworICAgICAgICBpbml0LmN1ZXMuYXBwZW5kKGN1ZSk7CisgICAgfQorCisgICAgUmVmUHRy
PEV2ZW50PiBldmVudCA9IEN1ZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmN1ZWFkZEV2ZW50
LCBpbml0KTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KHRyYWNrKTsKKworICAgIG1fYXN5bmNFdmVu
dFF1ZXVlLmVucXVldWVFdmVudChldmVudC5yZWxlYXNlKCkpOwogfQogCiB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNr
Q3VlTGlzdCogY3VlcykgCkBAIC0xNjIyLDcgKzE2MzUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlz
dCogYwogICAgICAgICB0ZXh0VHJhY2tSZW1vdmVDdWUoY3Vlcy0+aXRlbShpKS0+dHJhY2soKSwg
Y3Vlcy0+aXRlbShpKSk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrQWRk
Q3VlKFRleHRUcmFjayogdHJhY2ssIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBjdWUpCit2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqIHRyYWNrLCBQYXNz
UmVmUHRyPFRleHRUcmFja0N1ZT4gY3VlLCBib29sIHNlbmRBZGRDdWVFdmVudCkKIHsKICAgICBp
ZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6OmRpc2FibGVkS2V5d29yZCgpKQogICAgICAg
ICByZXR1cm47CkBAIC0xNjM1LDYgKzE2NDgsMTggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0
ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWUK
ICAgICBpZiAoIW1fY3VlVHJlZS5jb250YWlucyhpbnRlcnZhbCkpCiAgICAgICAgIG1fY3VlVHJl
ZS5hZGQoaW50ZXJ2YWwpOwogICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY3VycmVudFRp
bWUoKSk7CisKKyAgICBpZiAoIXNlbmRBZGRDdWVFdmVudCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgQ3VlRXZlbnRJbml0IGluaXQ7CisgICAgaW5pdC5idWJibGVzID0gZmFsc2U7CisgICAgaW5p
dC5jYW5jZWxhYmxlID0gZmFsc2U7CisgICAgaW5pdC5jdWVzLmFwcGVuZChjdWUpOworICAgIFJl
ZlB0cjxFdmVudD4gZXZlbnQgPSBDdWVFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jdWVhZGRF
dmVudCwgaW5pdCk7CisgICAgZXZlbnQtPnNldFRhcmdldCh0cmFjayk7CisKKyAgICBtX2FzeW5j
RXZlbnRRdWV1ZS5lbnF1ZXVlRXZlbnQoZXZlbnQucmVsZWFzZSgpKTsKIH0KIAogdm9pZCBIVE1M
TWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxU
ZXh0VHJhY2tDdWU+IGN1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5k
ZXggNzY5OGQ0NGIzMGZiODllZDg5Nzg0YzEyZWJiMDVhODBjYzgyMTVjZS4uOTkwNWUwZGRmOTcy
YWMyYzdhMjAwNjZlZWE2ZmExMWI2OGE5NGEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKQEAgLTM0Niw5ICszNDYsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0
Kikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRy
YWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9p
ZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+KSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayosIFBh
c3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiwgYm9vbCBzZW5kQWRkQ3VlRXZlbnQpOwogICAgIHZpcnR1
YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxUZXh0VHJh
Y2tDdWU+KSBvdmVycmlkZTsKIAorICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4
dFRyYWNrKiB0cmFjaywgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZSkgb3ZlcnJpZGUKKyAg
ICB7CisgICAgICAgIHRleHRUcmFja0FkZEN1ZSh0cmFjaywgY3VlLCB0cnVlKTsKKyAgICB9CisK
ICAgICAvLyBWaWRlb1RyYWNrQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tTZWxl
Y3RlZENoYW5nZWQoVmlkZW9UcmFjayopIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svQ3VlRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlYzUwYjBmZWVhNTQxYWQ0NGM4YmIyMmJmZmRj
MWNiZmFkYTYzZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0N1ZUV2ZW50LmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
Q2FibGUgVGVsZXZpc2lvbiBMYWJzIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisjaW5jbHVkZSAiQ3VlRXZlbnQuaCIKKworI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdWVFdmVudElu
aXQ6OkN1ZUV2ZW50SW5pdCgpCit7Cit9CisKKworQ3VlRXZlbnQ6OkN1ZUV2ZW50KCkKK3sKK30K
KworQ3VlRXZlbnQ6OkN1ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgQ3Vl
RXZlbnRJbml0JiBpbml0aWFsaXplcikKKyAgICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyKQor
ICAgICwgbV9jdWVzKGluaXRpYWxpemVyLmN1ZXMpCit7Cit9CisKK0N1ZUV2ZW50Ojp+Q3VlRXZl
bnQoKQoreworfQorCitFdmVudEludGVyZmFjZSBDdWVFdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBj
b25zdAoreworICAgIHJldHVybiBDdWVFdmVudEludGVyZmFjZVR5cGU7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0N1ZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDdhOTE5NjY0NzU3MjUxOGRhZTJmODBiOWJhNDYzMzNjZTVmOGM2OAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQ3VlRXZlbnQuaApAQCAt
MCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ2FibGUgVGVsZXZpc2lvbiBM
YWJzIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1ZUV2ZW50X2gKKyNkZWZpbmUgQ3VlRXZlbnRf
aAorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNs
dWRlICJUZXh0VHJhY2tDdWUuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RydWN0IEN1ZUV2ZW50SW5pdCA6IHB1YmxpYyBFdmVudEluaXQgewor
ICAgIEN1ZUV2ZW50SW5pdCgpOworCisgICAgVmVjdG9yPFJlZlB0cjxUZXh0VHJhY2tDdWU+PiBj
dWVzOworfTsKKworY2xhc3MgQ3VlRXZlbnQgOiBwdWJsaWMgRXZlbnQgeworcHVibGljOgorICAg
IHZpcnR1YWwgfkN1ZUV2ZW50KCk7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDdWVFdmVudD4g
Y3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3VlRXZlbnQpOwor
ICAgIH0KKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEN1ZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlLCBjb25zdCBDdWVFdmVudEluaXQmIGluaXRpYWxpemVyKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDdWVFdmVudCh0eXBlLCBpbml0aWFsaXplcikp
OworICAgIH0KKworICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBj
b25zdCBvdmVycmlkZTsKKworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrQ3VlPj4g
Y3VlcygpIGNvbnN0IHsgcmV0dXJuIG1fY3VlczsgfQorCitwcml2YXRlOgorICAgIEN1ZUV2ZW50
KCk7CisgICAgQ3VlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBDdWVFdmVu
dEluaXQmIGluaXRpYWxpemVyKTsKKworICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrQ3VlPj4g
bV9jdWVzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9DdWVFdmVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMGNlZTc2YzQ2
NTRiNzc1MDNhYTgwMzM1ZGRjYWQ5Y2IyYWNhZGI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9DdWVFdmVudC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE0IENhYmxlIFRlbGV2aXNpb24gTGFicyBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
WworICAgIENvbmRpdGlvbmFsPVZJREVPX1RSQUNLLAorICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9
RXZlbnQKK10gaW50ZXJmYWNlIEN1ZUV2ZW50IDogRXZlbnQgeworICAgIFtJbml0aWFsaXplZEJ5
RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIFRleHRUcmFja0N1ZVtdIGN1ZXM7
Cit9OworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggMmRmMzU3
Y2U0NzI1MzU3YWNjNDU2NzkyOWQyZjhmOTA4YzIwYTljYS4uM2FlZjc0YjQ4MDQ1MWJhOTlmYTBj
ZGNhMTk3YjMyOWFlMjRmZDZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
LmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIHZvaWQgVGV4dFRyYWNrOjphZGRDdWUoUGFzc1JlZlB0
cjxUZXh0VHJhY2tDdWU+IHBycEN1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgLy8gMi4gQWRk
IGN1ZSB0byB0aGUgbWV0aG9kJ3MgVGV4dFRyYWNrIG9iamVjdCdzIHRleHQgdHJhY2sncyB0ZXh0
IHRyYWNrIGxpc3Qgb2YgY3Vlcy4KICAgICBjdWUtPnNldFRyYWNrKHRoaXMpOwogICAgIGVuc3Vy
ZVRleHRUcmFja0N1ZUxpc3QoKS0+YWRkKGN1ZSk7Ci0gICAgCisKICAgICBpZiAobV9jbGllbnQp
CiAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tBZGRDdWUodGhpcywgY3VlLmdldCgpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCmluZGV4IDlhMjY0NDVhODUyOGI3ZWY4
MDNjODJlNDhhNDcyODNkZTJkMzY5NzcuLjYzYjRhZjExNDU5NDJjY2MyM2JmOGU2ZmNkZWY5MTYy
YWU0ZTRiMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaApAQCAtMTIzLDYg
KzEyMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGN1ZVdpbGxDaGFuZ2UoVGV4dFRyYWNrQ3VlKik7
CiAgICAgdm9pZCBjdWVEaWRDaGFuZ2UoVGV4dFRyYWNrQ3VlKik7CiAKKyAgICBERUZJTkVfQVRU
UklCVVRFX0VWRU5UX0xJU1RFTkVSKGN1ZWFkZCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVO
VF9MSVNURU5FUihjdWVjaGFuZ2UpOwogCiAgICAgZW51bSBUZXh0VHJhY2tUeXBlIHsgVHJhY2tF
bGVtZW50LCBBZGRUcmFjaywgSW5CYW5kIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFjay5pZGwKaW5kZXggZDYwMzU4YjZjOGRkYzllNGJkYjI3M2VkZTAyOTY3ZGFkMzc5NDg4MC4u
MWQzOGM2OWMwMmViODMzZGEyNzUzZjcxNzk3MTNiNmMxNWYzY2RjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrLmlkbApAQCAtNDcsNiArNDcsNyBAQCBlbnVtIFRleHRUcmFj
a0tpbmQgeyAic3VidGl0bGVzIiwgICJjYXB0aW9ucyIsICAiZGVzY3JpcHRpb25zIiwgICJjaGFw
dGVycyIsICJtZQogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgYWRkQ3VlKFRleHRUcmFja0N1
ZSBjdWUpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgcmVtb3ZlQ3VlKFRleHRUcmFja0N1
ZSBjdWUpOwogCisgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25jdWVhZGQ7
CiAgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25jdWVjaGFuZ2U7CiAKICNp
ZiBkZWZpbmVkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJiYgRU5BQkxFX1dFQlZUVF9SRUdJT05T
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggYmQ2Nzc2MGI5YWEwOWY5M2Y2ZWU3NzAzYTc4ZjcxMGUyZWE0NTBlZS4uZDFlNWE5
YjA1NjUxMjUwNzY5NDQyZmFmNGJiY2EyMjdkNDQ1ODRhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDE0LTA5LTA0ICBCcmVuZGFuIExvbmcgIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KKworICAg
ICAgICBBZGQgVGV4dFRyYWNrIGN1ZWFkZCBldmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS90cmFjay90ZXh0LXRyYWNrLW9uY3VlYWRk
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdHJhY2svdGV4dC10cmFjay1v
bmN1ZWFkZC5odG1sOiBBZGRlZC4KKwogMjAxNC0wOS0wMiAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBOb24tY29tcG9zaXRlZCBjaGlsZCBSZW5kZXJM
YXllcnMgY2F1c2UgYWxsb2NhdGlvbiBvZiB1bm5jZXNzYXJ5IGJhY2tpbmcgc3RvcmUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RleHQtdHJhY2stb25jdWVhZGQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODEwZjk4YWIwMGRkYjlhZmQ1NzUyNmNiYTFkM2U5Y2VmMzIw
ZDlkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RleHQtdHJh
Y2stb25jdWVhZGQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIFRleHRUcmFj
aydzIGN1ZWFkZCBldmVudAorCisKKyogU2F3IGN1ZWFkZCBldmVudCAqCitFWFBFQ1RFRCAoY3Vl
cy5sZW5ndGggPT0gJzQnKSBPSworRVhQRUNURUQgKGN1ZXNbaV0udGV4dCA9PSAnTG9yZW0nKSBP
SworRVhQRUNURUQgKGN1ZXNbaV0udGV4dCA9PSAnaXBzdW0nKSBPSworRVhQRUNURUQgKGN1ZXNb
aV0udGV4dCA9PSAnZG9sb3InKSBPSworRVhQRUNURUQgKGN1ZXNbaV0udGV4dCA9PSAnc2l0Jykg
T0sKKworKiBBZGRpbmcgY3VlIHRvIHRyYWNrIG1hbnVhbGx5ICoKKworKiBTYXcgY3VlYWRkIGV2
ZW50ICoKK0VYUEVDVEVEIChjdWVzLmxlbmd0aCA9PSAnMScpIE9LCitFWFBFQ1RFRCAoY3Vlc1tp
XS50ZXh0ID09ICdBZGRlZCBjdWUnKSBPSworCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90ZXh0LXRyYWNrLW9uY3VlYWRkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay90ZXh0LXRyYWNrLW9uY3VlYWRkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDYy
MDUyMjM4OTcwZTg3ZGM5M2MzNmUxZGM2Mzc3ZmFmOTg1MDhjMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RleHQtdHJhY2stb25jdWVhZGQuaHRtbApAQCAtMCww
ICsxLDY4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD11dGYtOCIgLz4KKworICAgICAgICA8c2NyaXB0IHNyYz0uLi9tZWRpYS1maWxlLmpzPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0uLi92aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0PgorCisgICAgICAgICAgICB2YXIgY3VlczsKKyAgICAgICAgICAgIHZhciBj
dWVBZGRlZENhbGxlZCA9IDA7CisgICAgICAgICAgICB2YXIgaTsKKyAgICAgICAgICAgIHZhciBq
ID0gMDsKKworICAgICAgICAgICAgdmFyIGV4cGVjdGVkQ3VlcyA9IFsKKyAgICAgICAgICAgICAg
ICAiTG9yZW0iLAorICAgICAgICAgICAgICAgICJpcHN1bSIsCisgICAgICAgICAgICAgICAgImRv
bG9yIiwKKyAgICAgICAgICAgICAgICAic2l0IiwKKyAgICAgICAgICAgICAgICAiQWRkZWQgY3Vl
IgorICAgICAgICAgICAgXQorCisgICAgICAgICAgICBmdW5jdGlvbiBjdWVBZGRlZChlKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiKiBTYXcgY3VlYWRkIGV2
ZW50ICoiKTsKKyAgICAgICAgICAgICAgICBjdWVzID0gZS5jdWVzOworICAgICAgICAgICAgICAg
IGlmIChjdWVBZGRlZENhbGxlZCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgiY3Vlcy5sZW5ndGgiLCA0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImN1ZXMubGVuZ3RoIiwgMSk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBlLmN1ZXMubGVuZ3RoOyAr
K2ksICsraikgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImN1ZXNbaV0udGV4
dCIsIGV4cGVjdGVkQ3Vlc1tqXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiIik7CisKKyAgICAgICAgICAgICAgICArK2N1ZUFkZGVkQ2FsbGVkOwor
ICAgICAgICAgICAgICAgIGlmIChjdWVBZGRlZENhbGxlZCA+PSAyKSB7CisgICAgICAgICAgICAg
ICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIHRyYWNrTG9hZGVkKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBjb25zb2xlV3JpdGUoIiogQWRkaW5nIGN1ZSB0byB0cmFjayBtYW51YWxseSAqIik7
CisgICAgICAgICAgICAgICAgdmFyIHRlc3RUcmFjayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXN0VHJhY2siKTsKKyAgICAgICAgICAgICAgICB2YXIgY3VlID0gbmV3IFZUVEN1ZSg0LCA1
LCAiQWRkZWQgY3VlIik7CisgICAgICAgICAgICAgICAgdGVzdFRyYWNrLnRyYWNrLmFkZEN1ZShj
dWUpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIG9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHZhciB2
aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0VmlkZW8iKTsKKyAgICAgICAgICAg
ICAgICB2aWRlby50ZXh0VHJhY2tzLmFkZEV2ZW50TGlzdGVuZXIoImFkZHRyYWNrIiwgZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgICAgICAgICBlLnRyYWNrLmFkZEV2ZW50TGlzdGVuZXIoImN1
ZWFkZCIsIGN1ZUFkZGVkKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH07CisK
KyAgICAgICAgICAgIHNldENhcHRpb25EaXNwbGF5TW9kZSgnQXV0b21hdGljJyk7CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdHMgVGV4
dFRyYWNrJ3MgY3VlYWRkIGV2ZW50PC9wPgorICAgICAgICA8dmlkZW8gaWQ9InRlc3RWaWRlbyI+
CisgICAgICAgICAgICA8dHJhY2sgaWQ9InRlc3RUcmFjayIgc3JjPSJjYXB0aW9ucy13ZWJ2dHQv
Y2FwdGlvbnMudnR0IiBraW5kPSJjYXB0aW9ucyIgb25sb2FkPSJ0cmFja0xvYWRlZCgpIiBkZWZh
dWx0PgorICAgICAgICA8L3ZpZGVvPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238544</attachid>
            <date>2014-09-23 09:26:27 -0700</date>
            <delta_ts>2014-09-24 11:50:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136550-20140923112626.patch</filename>
            <type>text/plain</type>
            <size>18313</size>
            <attacher name="Brendan Long">b.long</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBlZTMwZTE3MjZhYmE0
YjBiMDBhMTI5ZTU4NjU0NWVjNTRlMmQ1Yi4uM2Y4ZmNiZGI3NGU0OGI5NGQxZGQ5MmVkYjcyOTQz
OTA2MzNjNTY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA5LTIzICBCcmVu
ZGFuIExvbmcgIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KKworICAgICAgICBBZGQgVGV4dFRyYWNr
IGN1ZWFkZCBldmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM2NTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogbWVkaWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
RGljdGlvbmFyeTo6Y29udmVydFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuaDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVu
dE5hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICog
aHRtbC90cmFjay9DdWVFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VlRXZl
bnRJbml0OjpDdWVFdmVudEluaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VlRXZlbnQ6OkN1ZUV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1ZUV2ZW50Ojp+Q3VlRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q3VlRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKToKKyAgICAgICAgKiBodG1sL3RyYWNr
L0N1ZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VlRXZlbnQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDdWVFdmVudDo6Y3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNr
L0N1ZUV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaDoK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5pZGw6CisKIDIwMTQtMDktMjMgIEVkdWFy
ZG8gTGltYSBNaXRldiAgPGVsaW1hQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkcyBp
bXBsZW1lbnRhdGlvbiBvZiBTdWJ0bGUgQ3J5cHRvIGRpZ2VzdCBhbGdvcml0aG1zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDM5MmYzNDM0Mjk2M2ZmZjdiNzlhZDJkMjVkMzE5ZjJkNzVjMTk3YzIu
LjNmZjViOWU0YjQ4MzRhOTUxNDEzMzZlZjQyM2Y1NGNiZDJlYTAwYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0yOTAwLDYgKzI5MDAsNyBAQCBpZiAoRU5BQkxFX1ZJREVPX1RSQUNLKQogICAg
IGxpc3QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgICAgIGh0bWwvdHJhY2svQXVkaW9U
cmFjay5pZGwKICAgICAgICAgaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5pZGwKKyAgICAgICAg
aHRtbC90cmFjay9DdWVFdmVudC5pZGwKICAgICAgICAgaHRtbC90cmFjay9EYXRhQ3VlLmlkbAog
ICAgICAgICBodG1sL3RyYWNrL1RleHRUcmFjay5pZGwKICAgICAgICAgaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuaWRsCkBAIC0yOTE1LDYgKzI5MTYsNyBAQCBpZiAoRU5BQkxFX1ZJREVPX1RSQUNL
KQogICAgICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCiAgICAgICAgIGh0bWwvdHJhY2sv
QXVkaW9UcmFja0xpc3QuY3BwCiAgICAgICAgIGh0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVy
LmNwcAorICAgICAgICBodG1sL3RyYWNrL0N1ZUV2ZW50LmNwcAogICAgICAgICBodG1sL3RyYWNr
L0RhdGFDdWUuY3BwCiAgICAgICAgIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHAK
ICAgICAgICAgaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCmluZGV4IDYyNGNlMTc4NDJlM2FhOGE0ZTcyOTBlZmEyZWEyMWJkNGIw
MDFlMzIuLmJjNmY3Y2ZhMmE0YmY2NWRmNzA2ZGNlODY4NzU2NjBhYjBhNmM4ODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTQ2OSw2ICs0NjksNyBAQAogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICNpbmNsdWRlICJKU0F1ZGlvVHJhY2suY3BwIgogI2luY2x1ZGUgIkpTQXVkaW9U
cmFja0xpc3QuY3BwIgorI2luY2x1ZGUgIkpTQ3VlRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTRGF0
YUN1ZS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MVHJhY2tFbGVtZW50LmNwcCIKICNpbmNsdWRlICJK
U1RleHRUcmFjay5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5
LmNwcAppbmRleCAyMGQ4ZjgzY2QwZTQ5YWE2YTA0YzNmNjdiYzhkMjVlZTIzYmY5OGYwLi4xM2U3
Y2JlY2RmN2JmMWRlNzcwNGE0N2NjNTdhYmYwOTEyODc3MTNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKQEAgLTU2LDYgKzU2LDEwIEBACiAjaW5jbHVk
ZSAiSlNHYW1lcGFkLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyNpbmNs
dWRlICJKU1RleHRUcmFja0N1ZS5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4MCw2ICsxODQsMTUgQEAgdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIE1lc3NhZ2VQ
b3J0QXJyYXkKIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKK3ZvaWQgSlNEaWN0aW9uYXJ5
Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPFRleHRUcmFj
a0N1ZT4mIHJlc3VsdCkKK3sKKyAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUp
OworICAgIGlmIChvYmplY3QtPmluaGVyaXRzKEpTVGV4dFRyYWNrQ3VlOjppbmZvKCkpKQorICAg
ICAgICByZXN1bHQgPSAmanNDYXN0PEpTVGV4dFRyYWNrQ3VlKj4ob2JqZWN0KS0+aW1wbCgpOwor
ICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gbnVsbHB0cjsKK30KKwogdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8VHJhY2tC
YXNlPiYgcmVzdWx0KQogewogICAgIHJlc3VsdCA9IHRvVHJhY2sodmFsdWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaAppbmRleCBlOTAyZjlhNmFjNmFjODYzODBl
Zjk2MDhlOWQ5MTBjYTQzMzBkODdmLi4zZDlhNjJjZmZiMTdmZTQ1YWQyY2M4NzYyNDBlMmQ1MjY4
ZDM2NjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25h
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaApAQCAt
NTMsNiArNTMsNyBAQCBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrOwogY2xhc3MgTm9kZTsKIGNsYXNz
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFN0b3JhZ2U7CitjbGFzcyBUZXh0VHJhY2tD
dWU7CiBjbGFzcyBUcmFja0Jhc2U7CiBjbGFzcyBWb2lkQ2FsbGJhY2s7CiAKQEAgLTExNyw2ICsx
MTgsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPFN0b3JhZ2U+JiByZXN1bHQpOwogICAgIHN0YXRp
YyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgTWVzc2Fn
ZVBvcnRBcnJheSYgcmVzdWx0KTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgc3RhdGlj
IHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8
VGV4dFRyYWNrQ3VlPiYgcmVzdWx0KTsKICAgICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxUcmFja0Jhc2U+JiByZXN1bHQpOwog
I2VuZGlmCiAgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlLCBIYXNoU2V0PEF0b21pY1N0cmluZz4mIHJlc3VsdCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaAppbmRleCBhNmFmODhhNWYxOGVlMWQ5NjRkOWZjYzg1NTgyY2M1MGFlZmU1Yjc3Li41
ZGMzMWZlYWY5MTFlNDhhNjdiMzRmYzVlNzQzZDY0MmM2OGVjZjk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmgKQEAgLTE2Niw2ICsxNjYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFj
cm8oYWN0aXZlKSBcCiAgICAgbWFjcm8oaW5hY3RpdmUpIFwKICAgICBtYWNybyhhZGR0cmFjaykg
XAorICAgIG1hY3JvKGN1ZWFkZCkgXAogICAgIG1hY3JvKGN1ZWNoYW5nZSkgXAogICAgIG1hY3Jv
KGVudGVyKSBcCiAgICAgbWFjcm8oZXhpdCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRl
eCAwYjcxMjQxYWI0MDhkZTE3NDgxODU1ZDFhNDIwMjc0Y2QyYTYxMDZlLi4zZTJlMWFmNDQ2MDI4
YWI0OTYzZTQ1OWY5YmY3NTFlODEyN2M0ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpA
QCAtNTIsNiArNTIsNyBAQCBPcmllbnRhdGlvbkV2ZW50IGludGVyZmFjZU5hbWU9RXZlbnQsIGNv
bmRpdGlvbmFsPU9SSUVOVEFUSU9OX0VWRU5UUwogTWVkaWFLZXlFdmVudCBjb25kaXRpb25hbD1F
TkNSWVBURURfTUVESUEKIE1lZGlhS2V5TWVzc2FnZUV2ZW50IGNvbmRpdGlvbmFsPUVOQ1JZUFRF
RF9NRURJQV9WMgogTWVkaWFLZXlOZWVkZWRFdmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVE
SUFfVjIKK0N1ZUV2ZW50IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCiBUcmFja0V2ZW50IGNvbmRp
dGlvbmFsPVZJREVPX1RSQUNLCiBBdXRvY29tcGxldGVFcnJvckV2ZW50IGNvbmRpdGlvbmFsPVJF
UVVFU1RfQVVUT0NPTVBMRVRFCiBDU1NGb250RmFjZUxvYWRFdmVudCBjb25kaXRpb25hbD1GT05U
X0xPQURfRVZFTlRTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRl
eCAzZDIxYzUyYWZhODNiMzI2NDc4ZTE2YzRkOWEyYmM1N2FjZDgyODZhLi4zMDk5NjRlY2YxYzE2
NWY4YjAzNTBkNWU0ZGY3ZTkyMGU2YzEzODhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKQEAgLTg3LDYgKzg3LDcgQEAKIAogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKICNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIkN1ZUV2ZW50LmgiCiAj
aW5jbHVkZSAiSFRNTFRyYWNrRWxlbWVudC5oIgogI2luY2x1ZGUgIkluYmFuZEdlbmVyaWNUZXh0
VHJhY2suaCIKICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgiCkBAIC0xNjMxLDYg
KzE2MzIsMTUgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRy
YWNrKiB0cmFjaywgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWUKICAgICBpZiAoIW1fY3VlVHJlZS5j
b250YWlucyhpbnRlcnZhbCkpCiAgICAgICAgIG1fY3VlVHJlZS5hZGQoaW50ZXJ2YWwpOwogICAg
IHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY3VycmVudE1lZGlhVGltZSgpKTsKKworICAgIEN1
ZUV2ZW50SW5pdCBpbml0OworICAgIGluaXQuYnViYmxlcyA9IGZhbHNlOworICAgIGluaXQuY2Fu
Y2VsYWJsZSA9IGZhbHNlOworICAgIGluaXQuY3VlID0gY3VlLnJlbGVhc2UoKTsKKworICAgIFJl
ZlB0cjxDdWVFdmVudD4gY3VlRXZlbnQgPSBDdWVFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5j
dWVhZGRFdmVudCwgaW5pdCk7CisgICAgY3VlRXZlbnQtPnNldFRhcmdldCh0cmFjayk7CisgICAg
bV9hc3luY0V2ZW50UXVldWUuZW5xdWV1ZUV2ZW50KGN1ZUV2ZW50LnJlbGVhc2UoKSk7CiB9CiAK
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayosIFBh
c3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBwcnBDdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQ3Vl
RXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhODYyY2U2NTNjYWM2NDhhZWU0NjliMTdiZDRmMWRkMDky
ODAwYjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2
ZW50LmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ2FibGUg
VGVsZXZpc2lvbiBMYWJzIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCisjaW5jbHVkZSAiQ3VlRXZlbnQuaCIKKworI2luY2x1ZGUg
IkV2ZW50TmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdWVFdmVudEluaXQ6OkN1
ZUV2ZW50SW5pdCgpCit7Cit9CisKKworQ3VlRXZlbnQ6OkN1ZUV2ZW50KCkKK3sKK30KKworQ3Vl
RXZlbnQ6OkN1ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgQ3VlRXZlbnRJ
bml0JiBpbml0aWFsaXplcikKKyAgICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyKQorICAgICwg
bV9jdWUoaW5pdGlhbGl6ZXIuY3VlKQoreworfQorCitDdWVFdmVudDo6fkN1ZUV2ZW50KCkKK3sK
K30KKworRXZlbnRJbnRlcmZhY2UgQ3VlRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gQ3VlRXZlbnRJbnRlcmZhY2VUeXBlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9D
dWVFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9DdWVFdmVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE3MGY5Mjk4NjQ0MTY1YTAzYTRlNDhmYmE0ZmQxMjJhMmEwMmZkZjkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmgKQEAgLTAsMCArMSw3
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IENhYmxlIFRlbGV2aXNpb24gTGFicyBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2lmbmRlZiBDdWVFdmVudF9oCisjZGVmaW5lIEN1ZUV2ZW50X2gKKworI2lm
IEVOQUJMRShWSURFT19UUkFDSykKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiVGV4
dFRyYWNrQ3VlLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0cnVjdCBDdWVFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0IHsKKyAgICBDdWVF
dmVudEluaXQoKTsKKworICAgIFJlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZTsKK307CisKK2NsYXNz
IEN1ZUV2ZW50IDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5DdWVFdmVu
dCgpOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q3VlRXZlbnQ+IGNyZWF0ZSgpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEN1ZUV2ZW50KTsKKyAgICB9CisKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxDdWVFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Y29uc3QgQ3VlRXZlbnRJbml0JiBpbml0aWFsaXplcikKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQ3VlRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKKyAgICB9CisKKyAgICB2
aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CisK
KyAgICBUZXh0VHJhY2tDdWUqIGN1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VlLmdldCgpOyB9CisK
K3ByaXZhdGU6CisgICAgQ3VlRXZlbnQoKTsKKyAgICBDdWVFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGNvbnN0IEN1ZUV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpOworCisgICAgUmVmUHRy
PFRleHRUcmFja0N1ZT4gbV9jdWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQ3VlRXZlbnQuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZiM2IzOTcwM2YxMjRmZjE1ZWZkM2QwOTk5YjE5ZTQ4NWEwYzBhOWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmlkbApAQCAtMCwwICsx
LDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ2FibGUgVGVsZXZpc2lvbiBMYWJzIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssCisgICAgQ29uc3Ry
dWN0b3JUZW1wbGF0ZT1FdmVudAorXSBpbnRlcmZhY2UgQ3VlRXZlbnQgOiBFdmVudCB7CisgICAg
W0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgVGV4dFRy
YWNrQ3VlIGN1ZTsKK307CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCmluZGV4
IGI5Y2Q5N2ZlYjk2N2E0YmIxY2IxMWMyMDQwY2E0YWNhYWU3NGI0OGMuLjZiNDYzZTBjMTEyYjU3
MDg1NmRiMzE2OWIxNTAwNWVjNjk5ZTI3ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suaApAQCAtMTIzLDYgKzEyMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGN1ZVdpbGxDaGFu
Z2UoVGV4dFRyYWNrQ3VlKik7CiAgICAgdm9pZCBjdWVEaWRDaGFuZ2UoVGV4dFRyYWNrQ3VlKik7
CiAKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGN1ZWFkZCk7CiAgICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihjdWVjaGFuZ2UpOwogCiAgICAgZW51bSBUZXh0
VHJhY2tUeXBlIHsgVHJhY2tFbGVtZW50LCBBZGRUcmFjaywgSW5CYW5kIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFjay5pZGwKaW5kZXggZDYwMzU4YjZjOGRkYzllNGJkYjI3M2Vk
ZTAyOTY3ZGFkMzc5NDg4MC4uMWQzOGM2OWMwMmViODMzZGEyNzUzZjcxNzk3MTNiNmMxNWYzY2Rj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmlkbApAQCAtNDcsNiArNDcs
NyBAQCBlbnVtIFRleHRUcmFja0tpbmQgeyAic3VidGl0bGVzIiwgICJjYXB0aW9ucyIsICAiZGVz
Y3JpcHRpb25zIiwgICJjaGFwdGVycyIsICJtZQogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQg
YWRkQ3VlKFRleHRUcmFja0N1ZSBjdWUpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgcmVt
b3ZlQ3VlKFRleHRUcmFja0N1ZSBjdWUpOwogCisgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25jdWVhZGQ7CiAgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25jdWVjaGFuZ2U7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJiYgRU5B
QkxFX1dFQlZUVF9SRUdJT05TCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTA5MmJiNDAxMzIzYzI4N2NhY2Y3MzQ5Nzc5OGVk
YmFlYWMyNjA1MS4uODM0M2QwYjUyMGNiZDFlYjg2Nzc5N2YwMGUyYmU2ZjZlNDg2MjZlZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTA5LTIzICBCcmVuZGFuIExvbmcgIDxiLmxvbmdAY2Fi
bGVsYWJzLmNvbT4KKworICAgICAgICBBZGQgVGV4dFRyYWNrIGN1ZWFkZCBldmVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NTUwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS90cmFjay90
ZXh0LXRyYWNrLW9uY3VlYWRkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEv
dHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC5odG1sOiBBZGRlZC4KKwogMjAxNC0wOS0yMyAgRWR1
YXJkbyBMaW1hIE1pdGV2ICA8ZWxpbWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGRz
IGltcGxlbWVudGF0aW9uIG9mIFN1YnRsZSBDcnlwdG8gZGlnZXN0IGFsZ29yaXRobXMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RleHQtdHJhY2stb25jdWVhZGQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODEwZjk4YWIwMGRkYjlhZmQ1NzUyNmNiYTFkM2U5Y2VmMzIw
ZDlkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RleHQtdHJh
Y2stb25jdWVhZGQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIFRleHRUcmFj
aydzIGN1ZWFkZCBldmVudAorCisKKyogU2F3IGN1ZWFkZCBldmVudCAqCitFWFBFQ1RFRCAoY3Vl
cy5sZW5ndGggPT0gJzQnKSBPSworRVhQRUNURUQgKGN1ZXNbaV0udGV4dCA9PSAnTG9yZW0nKSBP
SworRVhQRUNURUQgKGN1ZXNbaV0udGV4dCA9PSAnaXBzdW0nKSBPSworRVhQRUNURUQgKGN1ZXNb
aV0udGV4dCA9PSAnZG9sb3InKSBPSworRVhQRUNURUQgKGN1ZXNbaV0udGV4dCA9PSAnc2l0Jykg
T0sKKworKiBBZGRpbmcgY3VlIHRvIHRyYWNrIG1hbnVhbGx5ICoKKworKiBTYXcgY3VlYWRkIGV2
ZW50ICoKK0VYUEVDVEVEIChjdWVzLmxlbmd0aCA9PSAnMScpIE9LCitFWFBFQ1RFRCAoY3Vlc1tp
XS50ZXh0ID09ICdBZGRlZCBjdWUnKSBPSworCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90ZXh0LXRyYWNrLW9uY3VlYWRkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay90ZXh0LXRyYWNrLW9uY3VlYWRkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg0
YmI2ZDEwZDllM2JmOGY3MGU5MWNkZTUyYWY3YThlMjc5NjdlNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RleHQtdHJhY2stb25jdWVhZGQuaHRtbApAQCAtMCww
ICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD11dGYtOCIgLz4KKworICAgICAgICA8c2NyaXB0IHNyYz0uLi9tZWRpYS1maWxlLmpzPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0uLi92aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0PgorCisgICAgICAgICAgICB2YXIgY3VlOworICAgICAgICAgICAgdmFyIGkg
PSAwOworCisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRDdWVzID0gWworICAgICAgICAgICAgICAg
ICJMb3JlbSIsCisgICAgICAgICAgICAgICAgImlwc3VtIiwKKyAgICAgICAgICAgICAgICAiZG9s
b3IiLAorICAgICAgICAgICAgICAgICJzaXQiLAorICAgICAgICAgICAgICAgICJBZGRlZCBjdWUi
CisgICAgICAgICAgICBdCisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGN1ZUFkZGVkKGUpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIqIFNhdyBjdWVhZGQgZXZl
bnQgKiIpOworICAgICAgICAgICAgICAgIGN1ZSA9IGUuY3VlOworICAgICAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgiY3VlLnRleHQiLCBleHBlY3RlZEN1ZXNbaV0pOworICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiIik7CisKKyAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAg
ICAgaWYgKGkgPj0gZXhwZWN0ZWRDdWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgZW5k
VGVzdCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiB0cmFja0xvYWRl
ZCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIqIEFkZGlu
ZyBjdWUgdG8gdHJhY2sgbWFudWFsbHkgKiIpOworICAgICAgICAgICAgICAgIHZhciB0ZXN0VHJh
Y2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdFRyYWNrIik7CisgICAgICAgICAgICAg
ICAgdmFyIGN1ZSA9IG5ldyBWVFRDdWUoNCwgNSwgIkFkZGVkIGN1ZSIpOworICAgICAgICAgICAg
ICAgIHRlc3RUcmFjay50cmFjay5hZGRDdWUoY3VlKTsKKyAgICAgICAgICAgICAgICBjb25zb2xl
V3JpdGUoIiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBvbmxvYWQgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICB2YXIgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGVzdFZpZGVvIik7CisgICAgICAgICAgICAgICAgdmlkZW8udGV4dFRyYWNrcy5hZGRFdmVu
dExpc3RlbmVyKCJhZGR0cmFjayIsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAg
ZS50cmFjay5hZGRFdmVudExpc3RlbmVyKCJjdWVhZGQiLCBjdWVBZGRlZCk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBzZXRDYXB0aW9uRGlzcGxh
eU1vZGUoJ0F1dG9tYXRpYycpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHk+CisgICAgICAgIDxwPlRlc3RzIFRleHRUcmFjaydzIGN1ZWFkZCBldmVudDwvcD4KKyAg
ICAgICAgPHZpZGVvIGlkPSJ0ZXN0VmlkZW8iPgorICAgICAgICAgICAgPHRyYWNrIGlkPSJ0ZXN0
VHJhY2siIHNyYz0iY2FwdGlvbnMtd2VidnR0L2NhcHRpb25zLnZ0dCIga2luZD0iY2FwdGlvbnMi
IG9ubG9hZD0idHJhY2tMb2FkZWQoKSIgZGVmYXVsdD4KKyAgICAgICAgPC92aWRlbz4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238604</attachid>
            <date>2014-09-24 11:51:03 -0700</date>
            <delta_ts>2014-09-24 12:01:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136550-20140924135101.patch</filename>
            <type>text/plain</type>
            <size>18172</size>
            <attacher name="Brendan Long">b.long</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBlZTMwZTE3MjZhYmE0
YjBiMDBhMTI5ZTU4NjU0NWVjNTRlMmQ1Yi4uM2Y4ZmNiZGI3NGU0OGI5NGQxZGQ5MmVkYjcyOTQz
OTA2MzNjNTY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA5LTIzICBCcmVu
ZGFuIExvbmcgIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KKworICAgICAgICBBZGQgVGV4dFRyYWNr
IGN1ZWFkZCBldmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM2NTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogbWVkaWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
RGljdGlvbmFyeTo6Y29udmVydFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuaDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVu
dE5hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICog
aHRtbC90cmFjay9DdWVFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VlRXZl
bnRJbml0OjpDdWVFdmVudEluaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VlRXZlbnQ6OkN1ZUV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1ZUV2ZW50Ojp+Q3VlRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q3VlRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKToKKyAgICAgICAgKiBodG1sL3RyYWNr
L0N1ZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VlRXZlbnQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDdWVFdmVudDo6Y3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNr
L0N1ZUV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaDoK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5pZGw6CisKIDIwMTQtMDktMjMgIEVkdWFy
ZG8gTGltYSBNaXRldiAgPGVsaW1hQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkcyBp
bXBsZW1lbnRhdGlvbiBvZiBTdWJ0bGUgQ3J5cHRvIGRpZ2VzdCBhbGdvcml0aG1zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDM5MmYzNDM0Mjk2M2ZmZjdiNzlhZDJkMjVkMzE5ZjJkNzVjMTk3YzIu
LjNmZjViOWU0YjQ4MzRhOTUxNDEzMzZlZjQyM2Y1NGNiZDJlYTAwYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0yOTAwLDYgKzI5MDAsNyBAQCBpZiAoRU5BQkxFX1ZJREVPX1RSQUNLKQogICAg
IGxpc3QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgICAgIGh0bWwvdHJhY2svQXVkaW9U
cmFjay5pZGwKICAgICAgICAgaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5pZGwKKyAgICAgICAg
aHRtbC90cmFjay9DdWVFdmVudC5pZGwKICAgICAgICAgaHRtbC90cmFjay9EYXRhQ3VlLmlkbAog
ICAgICAgICBodG1sL3RyYWNrL1RleHRUcmFjay5pZGwKICAgICAgICAgaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuaWRsCkBAIC0yOTE1LDYgKzI5MTYsNyBAQCBpZiAoRU5BQkxFX1ZJREVPX1RSQUNL
KQogICAgICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCiAgICAgICAgIGh0bWwvdHJhY2sv
QXVkaW9UcmFja0xpc3QuY3BwCiAgICAgICAgIGh0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVy
LmNwcAorICAgICAgICBodG1sL3RyYWNrL0N1ZUV2ZW50LmNwcAogICAgICAgICBodG1sL3RyYWNr
L0RhdGFDdWUuY3BwCiAgICAgICAgIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHAK
ICAgICAgICAgaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCmluZGV4IDYyNGNlMTc4NDJlM2FhOGE0ZTcyOTBlZmEyZWEyMWJkNGIw
MDFlMzIuLmJjNmY3Y2ZhMmE0YmY2NWRmNzA2ZGNlODY4NzU2NjBhYjBhNmM4ODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTQ2OSw2ICs0NjksNyBAQAogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICNpbmNsdWRlICJKU0F1ZGlvVHJhY2suY3BwIgogI2luY2x1ZGUgIkpTQXVkaW9U
cmFja0xpc3QuY3BwIgorI2luY2x1ZGUgIkpTQ3VlRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTRGF0
YUN1ZS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MVHJhY2tFbGVtZW50LmNwcCIKICNpbmNsdWRlICJK
U1RleHRUcmFjay5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5
LmNwcAppbmRleCAyMGQ4ZjgzY2QwZTQ5YWE2YTA0YzNmNjdiYzhkMjVlZTIzYmY5OGYwLi43Zjc1
N2Y2NTk5ZWQ0MTg3NzEwYzY5MmRmOGQ5ZWUyNzJlNTM3MzM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKQEAgLTU2LDYgKzU2LDEwIEBACiAjaW5jbHVk
ZSAiSlNHYW1lcGFkLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyNpbmNs
dWRlICJKU1RleHRUcmFja0N1ZS5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4MCw2ICsxODQsMTEgQEAgdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIE1lc3NhZ2VQ
b3J0QXJyYXkKIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKK3ZvaWQgSlNEaWN0aW9uYXJ5
Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPFRleHRUcmFj
a0N1ZT4mIHJlc3VsdCkKK3sKKyAgICByZXN1bHQgPSBKU1RleHRUcmFja0N1ZTo6dG9XcmFwcGVk
KHZhbHVlKTsKK30KKwogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUq
LCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8VHJhY2tCYXNlPiYgcmVzdWx0KQogewogICAgIHJlc3Vs
dCA9IHRvVHJhY2sodmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNEaWN0aW9uYXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25h
cnkuaAppbmRleCBlOTAyZjlhNmFjNmFjODYzODBlZjk2MDhlOWQ5MTBjYTQzMzBkODdmLi4zZDlh
NjJjZmZiMTdmZTQ1YWQyY2M4NzYyNDBlMmQ1MjY4ZDM2NjU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaApAQCAtNTMsNiArNTMsNyBAQCBjbGFzcyBNZWRpYVN0
cmVhbVRyYWNrOwogY2xhc3MgTm9kZTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNs
YXNzIFN0b3JhZ2U7CitjbGFzcyBUZXh0VHJhY2tDdWU7CiBjbGFzcyBUcmFja0Jhc2U7CiBjbGFz
cyBWb2lkQ2FsbGJhY2s7CiAKQEAgLTExNyw2ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHN0YXRp
YyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRy
PFN0b3JhZ2U+JiByZXN1bHQpOwogICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgTWVzc2FnZVBvcnRBcnJheSYgcmVzdWx0KTsKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCisgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8VGV4dFRyYWNrQ3VlPiYgcmVzdWx0KTsKICAg
ICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUs
IFJlZlB0cjxUcmFja0Jhc2U+JiByZXN1bHQpOwogI2VuZGlmCiAgICAgc3RhdGljIHZvaWQgY29u
dmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBIYXNoU2V0PEF0b21pY1N0
cmluZz4mIHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCBhNmFmODhhNWYxOGVl
MWQ5NjRkOWZjYzg1NTgyY2M1MGFlZmU1Yjc3Li41ZGMzMWZlYWY5MTFlNDhhNjdiMzRmYzVlNzQz
ZDY0MmM2OGVjZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTE2Niw2ICsxNjYsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oYWN0aXZlKSBcCiAgICAgbWFjcm8oaW5h
Y3RpdmUpIFwKICAgICBtYWNybyhhZGR0cmFjaykgXAorICAgIG1hY3JvKGN1ZWFkZCkgXAogICAg
IG1hY3JvKGN1ZWNoYW5nZSkgXAogICAgIG1hY3JvKGVudGVyKSBcCiAgICAgbWFjcm8oZXhpdCkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCAwYjcxMjQxYWI0MDhkZTE3NDgxODU1ZDFh
NDIwMjc0Y2QyYTYxMDZlLi4zZTJlMWFmNDQ2MDI4YWI0OTYzZTQ1OWY5YmY3NTFlODEyN2M0ODM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtNTIsNiArNTIsNyBAQCBPcmllbnRhdGlv
bkV2ZW50IGludGVyZmFjZU5hbWU9RXZlbnQsIGNvbmRpdGlvbmFsPU9SSUVOVEFUSU9OX0VWRU5U
UwogTWVkaWFLZXlFdmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEKIE1lZGlhS2V5TWVz
c2FnZUV2ZW50IGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQV9WMgogTWVkaWFLZXlOZWVkZWRF
dmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUFfVjIKK0N1ZUV2ZW50IGNvbmRpdGlvbmFs
PVZJREVPX1RSQUNLCiBUcmFja0V2ZW50IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCiBBdXRvY29t
cGxldGVFcnJvckV2ZW50IGNvbmRpdGlvbmFsPVJFUVVFU1RfQVVUT0NPTVBMRVRFCiBDU1NGb250
RmFjZUxvYWRFdmVudCBjb25kaXRpb25hbD1GT05UX0xPQURfRVZFTlRTCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAzZDIxYzUyYWZhODNiMzI2NDc4ZTE2YzRk
OWEyYmM1N2FjZDgyODZhLi4zMDk5NjRlY2YxYzE2NWY4YjAzNTBkNWU0ZGY3ZTkyMGU2YzEzODhm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTg3LDYgKzg3
LDcgQEAKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICNpbmNsdWRlICJBdWRpb1RyYWNrTGlz
dC5oIgorI2luY2x1ZGUgIkN1ZUV2ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRyYWNrRWxlbWVudC5o
IgogI2luY2x1ZGUgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2suaCIKICNpbmNsdWRlICJJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlLmgiCkBAIC0xNjMxLDYgKzE2MzIsMTUgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywgUGFzc1JlZlB0cjxUZXh0
VHJhY2tDdWUKICAgICBpZiAoIW1fY3VlVHJlZS5jb250YWlucyhpbnRlcnZhbCkpCiAgICAgICAg
IG1fY3VlVHJlZS5hZGQoaW50ZXJ2YWwpOwogICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMo
Y3VycmVudE1lZGlhVGltZSgpKTsKKworICAgIEN1ZUV2ZW50SW5pdCBpbml0OworICAgIGluaXQu
YnViYmxlcyA9IGZhbHNlOworICAgIGluaXQuY2FuY2VsYWJsZSA9IGZhbHNlOworICAgIGluaXQu
Y3VlID0gY3VlLnJlbGVhc2UoKTsKKworICAgIFJlZlB0cjxDdWVFdmVudD4gY3VlRXZlbnQgPSBD
dWVFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jdWVhZGRFdmVudCwgaW5pdCk7CisgICAgY3Vl
RXZlbnQtPnNldFRhcmdldCh0cmFjayk7CisgICAgbV9hc3luY0V2ZW50UXVldWUuZW5xdWV1ZUV2
ZW50KGN1ZUV2ZW50LnJlbGVhc2UoKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4
dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayosIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBwcnBD
dWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQ3VlRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhODYy
Y2U2NTNjYWM2NDhhZWU0NjliMTdiZDRmMWRkMDkyODAwYjUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmNwcApAQCAtMCwwICsxLDYyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ2FibGUgVGVsZXZpc2lvbiBMYWJzIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisjaW5j
bHVkZSAiQ3VlRXZlbnQuaCIKKworI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitDdWVFdmVudEluaXQ6OkN1ZUV2ZW50SW5pdCgpCit7Cit9CisKKworQ3Vl
RXZlbnQ6OkN1ZUV2ZW50KCkKK3sKK30KKworQ3VlRXZlbnQ6OkN1ZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgY29uc3QgQ3VlRXZlbnRJbml0JiBpbml0aWFsaXplcikKKyAgICA6IEV2
ZW50KHR5cGUsIGluaXRpYWxpemVyKQorICAgICwgbV9jdWUoaW5pdGlhbGl6ZXIuY3VlKQorewor
fQorCitDdWVFdmVudDo6fkN1ZUV2ZW50KCkKK3sKK30KKworRXZlbnRJbnRlcmZhY2UgQ3VlRXZl
bnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ3VlRXZlbnRJbnRlcmZh
Y2VUeXBlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9DdWVFdmVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9DdWVFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3MGY5Mjk4NjQ0MTY1YTAzYTRlNDhm
YmE0ZmQxMjJhMmEwMmZkZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0N1ZUV2ZW50LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE0IENhYmxlIFRlbGV2aXNpb24gTGFicyBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdWVFdmVu
dF9oCisjZGVmaW5lIEN1ZUV2ZW50X2gKKworI2lmIEVOQUJMRShWSURFT19UUkFDSykKKworI2lu
Y2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlLmgiCisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBDdWVFdmVudEluaXQg
OiBwdWJsaWMgRXZlbnRJbml0IHsKKyAgICBDdWVFdmVudEluaXQoKTsKKworICAgIFJlZlB0cjxU
ZXh0VHJhY2tDdWU+IGN1ZTsKK307CisKK2NsYXNzIEN1ZUV2ZW50IDogcHVibGljIEV2ZW50IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5DdWVFdmVudCgpOworCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8Q3VlRXZlbnQ+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEN1ZUV2ZW50KTsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDdWVFdmVudD4gY3Jl
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgQ3VlRXZlbnRJbml0JiBpbml0aWFs
aXplcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3VlRXZlbnQodHlwZSwg
aW5pdGlhbGl6ZXIpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50
SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBUZXh0VHJhY2tDdWUqIGN1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fY3VlLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgQ3VlRXZlbnQoKTsK
KyAgICBDdWVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEN1ZUV2ZW50SW5p
dCYgaW5pdGlhbGl6ZXIpOworCisgICAgUmVmUHRyPFRleHRUcmFja0N1ZT4gbV9jdWU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQ3VlRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiM2IzOTcwM2YxMjRmZjE1ZWZkM2Qw
OTk5YjE5ZTQ4NWEwYzBhOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0N1ZUV2ZW50LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQ2FibGUgVGVsZXZpc2lvbiBMYWJzIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitbCisgICAgQ29uZGl0
aW9uYWw9VklERU9fVFJBQ0ssCisgICAgQ29uc3RydWN0b3JUZW1wbGF0ZT1FdmVudAorXSBpbnRl
cmZhY2UgQ3VlRXZlbnQgOiBFdmVudCB7CisgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVj
dG9yXSByZWFkb25seSBhdHRyaWJ1dGUgVGV4dFRyYWNrQ3VlIGN1ZTsKK307CisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCmluZGV4IGI5Y2Q5N2ZlYjk2N2E0YmIxY2IxMWMyMDQw
Y2E0YWNhYWU3NGI0OGMuLjZiNDYzZTBjMTEyYjU3MDg1NmRiMzE2OWIxNTAwNWVjNjk5ZTI3ODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaApAQCAtMTIzLDYgKzEyMyw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGN1ZVdpbGxDaGFuZ2UoVGV4dFRyYWNrQ3VlKik7CiAgICAgdm9p
ZCBjdWVEaWRDaGFuZ2UoVGV4dFRyYWNrQ3VlKik7CiAKKyAgICBERUZJTkVfQVRUUklCVVRFX0VW
RU5UX0xJU1RFTkVSKGN1ZWFkZCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5F
UihjdWVjaGFuZ2UpOwogCiAgICAgZW51bSBUZXh0VHJhY2tUeXBlIHsgVHJhY2tFbGVtZW50LCBB
ZGRUcmFjaywgSW5CYW5kIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5pZGwK
aW5kZXggZDYwMzU4YjZjOGRkYzllNGJkYjI3M2VkZTAyOTY3ZGFkMzc5NDg4MC4uMWQzOGM2OWMw
MmViODMzZGEyNzUzZjcxNzk3MTNiNmMxNWYzY2RjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmlkbApAQCAtNDcsNiArNDcsNyBAQCBlbnVtIFRleHRUcmFja0tpbmQgeyAi
c3VidGl0bGVzIiwgICJjYXB0aW9ucyIsICAiZGVzY3JpcHRpb25zIiwgICJjaGFwdGVycyIsICJt
ZQogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgYWRkQ3VlKFRleHRUcmFja0N1ZSBjdWUpOwog
ICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgcmVtb3ZlQ3VlKFRleHRUcmFja0N1ZSBjdWUpOwog
CisgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25jdWVhZGQ7CiAgICAgICAg
ICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25jdWVjaGFuZ2U7CiAKICNpZiBkZWZpbmVk
KEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJiYgRU5BQkxFX1dFQlZUVF9SRUdJT05TCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MTA5MmJiNDAxMzIzYzI4N2NhY2Y3MzQ5Nzc5OGVkYmFlYWMyNjA1MS4uODM0M2QwYjUyMGNiZDFl
Yjg2Nzc5N2YwMGUyYmU2ZjZlNDg2MjZlZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTA5
LTIzICBCcmVuZGFuIExvbmcgIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KKworICAgICAgICBBZGQg
VGV4dFRyYWNrIGN1ZWFkZCBldmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM2NTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBtZWRpYS90cmFjay90ZXh0LXRyYWNrLW9uY3VlYWRkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC5o
dG1sOiBBZGRlZC4KKwogMjAxNC0wOS0yMyAgRWR1YXJkbyBMaW1hIE1pdGV2ICA8ZWxpbWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGRzIGltcGxlbWVudGF0aW9uIG9mIFN1YnRsZSBD
cnlwdG8gZGlnZXN0IGFsZ29yaXRobXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3Ry
YWNrL3RleHQtdHJhY2stb25jdWVhZGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEv
dHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODEwZjk4
YWIwMGRkYjlhZmQ1NzUyNmNiYTFkM2U5Y2VmMzIwZDlkMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL3RyYWNrL3RleHQtdHJhY2stb25jdWVhZGQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTggQEAKK1Rlc3RzIFRleHRUcmFjaydzIGN1ZWFkZCBldmVudAorCisKKyogU2F3
IGN1ZWFkZCBldmVudCAqCitFWFBFQ1RFRCAoY3Vlcy5sZW5ndGggPT0gJzQnKSBPSworRVhQRUNU
RUQgKGN1ZXNbaV0udGV4dCA9PSAnTG9yZW0nKSBPSworRVhQRUNURUQgKGN1ZXNbaV0udGV4dCA9
PSAnaXBzdW0nKSBPSworRVhQRUNURUQgKGN1ZXNbaV0udGV4dCA9PSAnZG9sb3InKSBPSworRVhQ
RUNURUQgKGN1ZXNbaV0udGV4dCA9PSAnc2l0JykgT0sKKworKiBBZGRpbmcgY3VlIHRvIHRyYWNr
IG1hbnVhbGx5ICoKKworKiBTYXcgY3VlYWRkIGV2ZW50ICoKK0VYUEVDVEVEIChjdWVzLmxlbmd0
aCA9PSAnMScpIE9LCitFWFBFQ1RFRCAoY3Vlc1tpXS50ZXh0ID09ICdBZGRlZCBjdWUnKSBPSwor
CitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90ZXh0
LXRyYWNrLW9uY3VlYWRkLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90ZXh0LXRyYWNr
LW9uY3VlYWRkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg0YmI2ZDEwZDllM2JmOGY3MGU5MWNkZTUyYWY3
YThlMjc5NjdlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3Rl
eHQtdHJhY2stb25jdWVhZGQuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KKworICAgICAgICA8c2Ny
aXB0IHNyYz0uLi9tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0u
Li92aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorCisgICAgICAgICAg
ICB2YXIgY3VlOworICAgICAgICAgICAgdmFyIGkgPSAwOworCisgICAgICAgICAgICB2YXIgZXhw
ZWN0ZWRDdWVzID0gWworICAgICAgICAgICAgICAgICJMb3JlbSIsCisgICAgICAgICAgICAgICAg
Imlwc3VtIiwKKyAgICAgICAgICAgICAgICAiZG9sb3IiLAorICAgICAgICAgICAgICAgICJzaXQi
LAorICAgICAgICAgICAgICAgICJBZGRlZCBjdWUiCisgICAgICAgICAgICBdCisKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIGN1ZUFkZGVkKGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCIqIFNhdyBjdWVhZGQgZXZlbnQgKiIpOworICAgICAgICAgICAgICAgIGN1
ZSA9IGUuY3VlOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiY3VlLnRleHQiLCBleHBl
Y3RlZEN1ZXNbaV0pOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisKKyAgICAg
ICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgaWYgKGkgPj0gZXhwZWN0ZWRDdWVzLmxl
bmd0aCkKKyAgICAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBmdW5jdGlvbiB0cmFja0xvYWRlZCgpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCIqIEFkZGluZyBjdWUgdG8gdHJhY2sgbWFudWFsbHkgKiIp
OworICAgICAgICAgICAgICAgIHZhciB0ZXN0VHJhY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGVzdFRyYWNrIik7CisgICAgICAgICAgICAgICAgdmFyIGN1ZSA9IG5ldyBWVFRDdWUoNCwg
NSwgIkFkZGVkIGN1ZSIpOworICAgICAgICAgICAgICAgIHRlc3RUcmFjay50cmFjay5hZGRDdWUo
Y3VlKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB2YXIg
dmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdFZpZGVvIik7CisgICAgICAgICAg
ICAgICAgdmlkZW8udGV4dFRyYWNrcy5hZGRFdmVudExpc3RlbmVyKCJhZGR0cmFjayIsIGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZS50cmFjay5hZGRFdmVudExpc3RlbmVyKCJj
dWVhZGQiLCBjdWVBZGRlZCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9Owor
CisgICAgICAgICAgICBzZXRDYXB0aW9uRGlzcGxheU1vZGUoJ0F1dG9tYXRpYycpOworICAgICAg
ICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3RzIFRl
eHRUcmFjaydzIGN1ZWFkZCBldmVudDwvcD4KKyAgICAgICAgPHZpZGVvIGlkPSJ0ZXN0VmlkZW8i
PgorICAgICAgICAgICAgPHRyYWNrIGlkPSJ0ZXN0VHJhY2siIHNyYz0iY2FwdGlvbnMtd2VidnR0
L2NhcHRpb25zLnZ0dCIga2luZD0iY2FwdGlvbnMiIG9ubG9hZD0idHJhY2tMb2FkZWQoKSIgZGVm
YXVsdD4KKyAgICAgICAgPC92aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238605</attachid>
            <date>2014-09-24 12:01:56 -0700</date>
            <delta_ts>2014-10-02 13:56:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136550-20140924140155.patch</filename>
            <type>text/plain</type>
            <size>21098</size>
            <attacher name="Brendan Long">b.long</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBlZTMwZTE3MjZhYmE0
YjBiMDBhMTI5ZTU4NjU0NWVjNTRlMmQ1Yi4uM2Y4ZmNiZGI3NGU0OGI5NGQxZGQ5MmVkYjcyOTQz
OTA2MzNjNTY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA5LTIzICBCcmVu
ZGFuIExvbmcgIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KKworICAgICAgICBBZGQgVGV4dFRyYWNr
IGN1ZWFkZCBldmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM2NTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogbWVkaWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
RGljdGlvbmFyeTo6Y29udmVydFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuaDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVu
dE5hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICog
aHRtbC90cmFjay9DdWVFdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VlRXZl
bnRJbml0OjpDdWVFdmVudEluaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VlRXZlbnQ6OkN1ZUV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1ZUV2ZW50Ojp+Q3VlRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q3VlRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKToKKyAgICAgICAgKiBodG1sL3RyYWNr
L0N1ZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VlRXZlbnQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDdWVFdmVudDo6Y3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNr
L0N1ZUV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaDoK
KyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5pZGw6CisKIDIwMTQtMDktMjMgIEVkdWFy
ZG8gTGltYSBNaXRldiAgPGVsaW1hQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkcyBp
bXBsZW1lbnRhdGlvbiBvZiBTdWJ0bGUgQ3J5cHRvIGRpZ2VzdCBhbGdvcml0aG1zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDM5MmYzNDM0Mjk2M2ZmZjdiNzlhZDJkMjVkMzE5ZjJkNzVjMTk3YzIu
LjNmZjViOWU0YjQ4MzRhOTUxNDEzMzZlZjQyM2Y1NGNiZDJlYTAwYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0yOTAwLDYgKzI5MDAsNyBAQCBpZiAoRU5BQkxFX1ZJREVPX1RSQUNLKQogICAg
IGxpc3QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgICAgIGh0bWwvdHJhY2svQXVkaW9U
cmFjay5pZGwKICAgICAgICAgaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5pZGwKKyAgICAgICAg
aHRtbC90cmFjay9DdWVFdmVudC5pZGwKICAgICAgICAgaHRtbC90cmFjay9EYXRhQ3VlLmlkbAog
ICAgICAgICBodG1sL3RyYWNrL1RleHRUcmFjay5pZGwKICAgICAgICAgaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuaWRsCkBAIC0yOTE1LDYgKzI5MTYsNyBAQCBpZiAoRU5BQkxFX1ZJREVPX1RSQUNL
KQogICAgICAgICBodG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCiAgICAgICAgIGh0bWwvdHJhY2sv
QXVkaW9UcmFja0xpc3QuY3BwCiAgICAgICAgIGh0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVy
LmNwcAorICAgICAgICBodG1sL3RyYWNrL0N1ZUV2ZW50LmNwcAogICAgICAgICBodG1sL3RyYWNr
L0RhdGFDdWUuY3BwCiAgICAgICAgIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHAK
ICAgICAgICAgaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCmluZGV4IDYyNGNlMTc4NDJlM2FhOGE0ZTcyOTBlZmEyZWEyMWJkNGIw
MDFlMzIuLmJjNmY3Y2ZhMmE0YmY2NWRmNzA2ZGNlODY4NzU2NjBhYjBhNmM4ODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTQ2OSw2ICs0NjksNyBAQAogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICNpbmNsdWRlICJKU0F1ZGlvVHJhY2suY3BwIgogI2luY2x1ZGUgIkpTQXVkaW9U
cmFja0xpc3QuY3BwIgorI2luY2x1ZGUgIkpTQ3VlRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTRGF0
YUN1ZS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MVHJhY2tFbGVtZW50LmNwcCIKICNpbmNsdWRlICJK
U1RleHRUcmFjay5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBhMTBlMTEw
MjFmZWIwZmViOTExZGNmMWI0NGFkNTkxNzQ1ZDZkNzEwLi5iZGVjNWU4YTBmZGY2MWY3NWUyNDhi
ZGIyZTUyNDg0YjMxNDBjMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ1
Myw2ICs0NTMsNyBAQCBOT05fU1ZHX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvdHJhY2svQXVkaW9UcmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC90cmFjay9B
dWRpb1RyYWNrTGlzdC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC90cmFjay9DdWVFdmVudC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC90cmFjay9EYXRhQ3VlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9odG1sL3RyYWNrL1RleHRUcmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCmluZGV4IDdlYjVjZjBjZDljYWQ4MWNhYTA1MjQ2ZTY1ODY1OGQyYWJk
Y2RlYjguLjAwZGMwODJlYTE5NzI5MDc4MDNkZjUxM2FjOGU0MjQzZTA2MjA1N2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTYwOTUs
NiArMTYwOTUsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxzaGFkb3dcU3Bp
bkJ1dHRvbkVsZW1lbnQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxz
aGFkb3dcVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGh0bWxcdHJhY2tcQnVmZmVyZWRMaW5lUmVhZGVyLmNwcCIgLz4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcdHJhY2tcQ3VlRXZlbnQuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5caHRtbFx0cmFja1xEYXRhQ3VlLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGh0bWxcdHJhY2tcSW5iYW5kRGF0YVRleHRUcmFjay5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXHRyYWNrXEluYmFuZEdlbmVyaWNUZXh0VHJh
Y2suY3BwIiAvPgpAQCAtMjA4ODUsNiArMjA4ODYsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caHRtbFxzaGFkb3dcU3BpbkJ1dHRvbkVsZW1lbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGh0bWxcc2hhZG93XFRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFx0cmFja1xCdWZmZXJlZExpbmVSZWFkZXIu
aCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcdHJhY2tcQ3VlRXZlbnQuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcdHJhY2tcRGF0YUN1ZS5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFx0cmFja1xJbmJhbmREYXRhVGV4dFRyYWNr
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHRyYWNrXEluYmFuZEdlbmVy
aWNUZXh0VHJhY2suaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA4NjgxMDA2OWMwNWZmYjU3ZmNiOGE4
YzNhZTQxNThhODNhYTcwYmNiLi5jMjgyMWI0ZjAyNzI5M2FlMGQ4MTUxOGViNWE5M2FlNTI1Mzc0
ZjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCkBAIC00MTk3LDYgKzQxOTcsOSBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5caHRtbFx0cmFja1xCdWZmZXJlZExpbmVSZWFkZXIuY3BwIj4KICAgICAgIDxG
aWx0ZXI+aHRtbFx0cmFjazwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5caHRtbFx0cmFja1xDdWVFdmVudC5jcHAiPgorICAgICAgPEZpbHRlcj5o
dG1sXHRyYWNrPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxodG1sXHRyYWNrXERhdGFDdWUuY3BwIj4KICAgICAgIDxGaWx0ZXI+aHRtbFx0cmFj
azwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTEzODIsNiArMTEzODUsOSBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFx0cmFja1xCdWZmZXJlZExpbmVSZWFkZXIuaCI+
CiAgICAgICA8RmlsdGVyPmh0bWxcdHJhY2s8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcdHJhY2tcQ3VlRXZlbnQuaCI+CisgICAgICA8
RmlsdGVyPmh0bWxcdHJhY2s8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGh0bWxcdHJhY2tcRGF0YUN1ZS5oIj4KICAgICAgIDxGaWx0ZXI+aHRt
bFx0cmFjazwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKaW5kZXggMjBkOGY4M2NkMGU0OWFhNmEwNGMzZjY3YmM4
ZDI1ZWUyM2JmOThmMC4uN2Y3NTdmNjU5OWVkNDE4NzcxMGM2OTJkZjhkOWVlMjcyZTUzNzMzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCkBAIC01Niw2
ICs1NiwxMCBAQAogI2luY2x1ZGUgIkpTR2FtZXBhZC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCisjaW5jbHVkZSAiSlNUZXh0VHJhY2tDdWUuaCIKKyNlbmRpZgorCiB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xODAsNiArMTg0LDEx
IEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIHZhbHVlLCBNZXNzYWdlUG9ydEFycmF5CiB9CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
Cit2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFs
dWUsIFJlZlB0cjxUZXh0VHJhY2tDdWU+JiByZXN1bHQpCit7CisgICAgcmVzdWx0ID0gSlNUZXh0
VHJhY2tDdWU6OnRvV3JhcHBlZCh2YWx1ZSk7Cit9CisKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252
ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPFRyYWNrQmFzZT4mIHJl
c3VsdCkKIHsKICAgICByZXN1bHQgPSB0b1RyYWNrKHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKaW5kZXggZTkwMmY5YTZhYzZhYzg2MzgwZWY5NjA4ZTlk
OTEwY2E0MzMwZDg3Zi4uM2Q5YTYyY2ZmYjE3ZmU0NWFkMmNjODc2MjQwZTJkNTI2OGQzNjY1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKQEAgLTUzLDYgKzUz
LDcgQEAgY2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKIGNsYXNzIE5vZGU7CiBjbGFzcyBTZXJpYWxp
emVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTdG9yYWdlOworY2xhc3MgVGV4dFRyYWNrQ3VlOwogY2xh
c3MgVHJhY2tCYXNlOwogY2xhc3MgVm9pZENhbGxiYWNrOwogCkBAIC0xMTcsNiArMTE4LDcgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTVmFsdWUsIFJlZlB0cjxTdG9yYWdlPiYgcmVzdWx0KTsKICAgICBzdGF0aWMgdm9pZCBj
b252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIE1lc3NhZ2VQb3J0QXJy
YXkmIHJlc3VsdCk7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIHN0YXRpYyB2b2lkIGNv
bnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPFRleHRUcmFj
a0N1ZT4mIHJlc3VsdCk7CiAgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8VHJhY2tCYXNlPiYgcmVzdWx0KTsKICNlbmRpZgog
ICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSwgSGFzaFNldDxBdG9taWNTdHJpbmc+JiByZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgK
aW5kZXggYTZhZjg4YTVmMThlZTFkOTY0ZDlmY2M4NTU4MmNjNTBhZWZlNWI3Ny4uNWRjMzFmZWFm
OTExZTQ4YTY3YjM0ZmM1ZTc0M2Q2NDJjNjhlY2Y5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CkBAIC0xNjYsNiArMTY2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKGFjdGl2
ZSkgXAogICAgIG1hY3JvKGluYWN0aXZlKSBcCiAgICAgbWFjcm8oYWRkdHJhY2spIFwKKyAgICBt
YWNybyhjdWVhZGQpIFwKICAgICBtYWNybyhjdWVjaGFuZ2UpIFwKICAgICBtYWNybyhlbnRlcikg
XAogICAgIG1hY3JvKGV4aXQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggMGI3MTI0
MWFiNDA4ZGUxNzQ4MTg1NWQxYTQyMDI3NGNkMmE2MTA2ZS4uM2UyZTFhZjQ0NjAyOGFiNDk2M2U0
NTlmOWJmNzUxZTgxMjdjNDgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTUyLDYg
KzUyLDcgQEAgT3JpZW50YXRpb25FdmVudCBpbnRlcmZhY2VOYW1lPUV2ZW50LCBjb25kaXRpb25h
bD1PUklFTlRBVElPTl9FVkVOVFMKIE1lZGlhS2V5RXZlbnQgY29uZGl0aW9uYWw9RU5DUllQVEVE
X01FRElBCiBNZWRpYUtleU1lc3NhZ2VFdmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUFf
VjIKIE1lZGlhS2V5TmVlZGVkRXZlbnQgY29uZGl0aW9uYWw9RU5DUllQVEVEX01FRElBX1YyCitD
dWVFdmVudCBjb25kaXRpb25hbD1WSURFT19UUkFDSwogVHJhY2tFdmVudCBjb25kaXRpb25hbD1W
SURFT19UUkFDSwogQXV0b2NvbXBsZXRlRXJyb3JFdmVudCBjb25kaXRpb25hbD1SRVFVRVNUX0FV
VE9DT01QTEVURQogQ1NTRm9udEZhY2VMb2FkRXZlbnQgY29uZGl0aW9uYWw9Rk9OVF9MT0FEX0VW
RU5UUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggM2QyMWM1
MmFmYTgzYjMyNjQ3OGUxNmM0ZDlhMmJjNTdhY2Q4Mjg2YS4uMzA5OTY0ZWNmMWMxNjVmOGIwMzUw
ZDVlNGRmN2U5MjBlNmMxMzg4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCkBAIC04Nyw2ICs4Nyw3IEBACiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAjaW5j
bHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKKyNpbmNsdWRlICJDdWVFdmVudC5oIgogI2luY2x1ZGUg
IkhUTUxUcmFja0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgi
CiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oIgpAQCAtMTYzMSw2ICsxNjMyLDE1
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayogdHJh
Y2ssIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlCiAgICAgaWYgKCFtX2N1ZVRyZWUuY29udGFpbnMo
aW50ZXJ2YWwpKQogICAgICAgICBtX2N1ZVRyZWUuYWRkKGludGVydmFsKTsKICAgICB1cGRhdGVB
Y3RpdmVUZXh0VHJhY2tDdWVzKGN1cnJlbnRNZWRpYVRpbWUoKSk7CisKKyAgICBDdWVFdmVudElu
aXQgaW5pdDsKKyAgICBpbml0LmJ1YmJsZXMgPSBmYWxzZTsKKyAgICBpbml0LmNhbmNlbGFibGUg
PSBmYWxzZTsKKyAgICBpbml0LmN1ZSA9IGN1ZS5yZWxlYXNlKCk7CisKKyAgICBSZWZQdHI8Q3Vl
RXZlbnQ+IGN1ZUV2ZW50ID0gQ3VlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY3VlYWRkRXZl
bnQsIGluaXQpOworICAgIGN1ZUV2ZW50LT5zZXRUYXJnZXQodHJhY2spOworICAgIG1fYXN5bmNF
dmVudFF1ZXVlLmVucXVldWVFdmVudChjdWVFdmVudC5yZWxlYXNlKCkpOwogfQogCiB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sqLCBQYXNzUmVmUHRy
PFRleHRUcmFja0N1ZT4gcHJwQ3VlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9DdWVFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43YTg2MmNlNjUzY2FjNjQ4YWVlNDY5YjE3YmQ0ZjFkZDA5MjgwMGI1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9DdWVFdmVudC5jcHAK
QEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IENhYmxlIFRlbGV2aXNp
b24gTGFicyBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQorI2luY2x1ZGUgIkN1ZUV2ZW50LmgiCisKKyNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3VlRXZlbnRJbml0OjpDdWVFdmVudElu
aXQoKQoreworfQorCisKK0N1ZUV2ZW50OjpDdWVFdmVudCgpCit7Cit9CisKK0N1ZUV2ZW50OjpD
dWVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEN1ZUV2ZW50SW5pdCYgaW5p
dGlhbGl6ZXIpCisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplcikKKyAgICAsIG1fY3VlKGlu
aXRpYWxpemVyLmN1ZSkKK3sKK30KKworQ3VlRXZlbnQ6On5DdWVFdmVudCgpCit7Cit9CisKK0V2
ZW50SW50ZXJmYWNlIEN1ZUV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIEN1ZUV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQ3VlRXZlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQ3VlRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzBm
OTI5ODY0NDE2NWEwM2E0ZTQ4ZmJhNGZkMTIyYTJhMDJmZGY5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9DdWVFdmVudC5oCkBAIC0wLDAgKzEsNzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNCBDYWJsZSBUZWxldmlzaW9uIExhYnMgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgQ3VlRXZlbnRfaAorI2RlZmluZSBDdWVFdmVudF9oCisKKyNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIlRleHRUcmFja0N1
ZS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dHJ1Y3QgQ3VlRXZlbnRJbml0IDogcHVibGljIEV2ZW50SW5pdCB7CisgICAgQ3VlRXZlbnRJbml0
KCk7CisKKyAgICBSZWZQdHI8VGV4dFRyYWNrQ3VlPiBjdWU7Cit9OworCitjbGFzcyBDdWVFdmVu
dCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+Q3VlRXZlbnQoKTsKKwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEN1ZUV2ZW50PiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBDdWVFdmVudCk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8Q3VlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEN1
ZUV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEN1ZUV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CisgICAgfQorCisgICAgdmlydHVhbCBF
dmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgVGV4
dFRyYWNrQ3VlKiBjdWUoKSBjb25zdCB7IHJldHVybiBtX2N1ZS5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIEN1ZUV2ZW50KCk7CisgICAgQ3VlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBjb25zdCBDdWVFdmVudEluaXQmIGluaXRpYWxpemVyKTsKKworICAgIFJlZlB0cjxUZXh0VHJh
Y2tDdWU+IG1fY3VlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9DdWVFdmVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjNi
Mzk3MDNmMTI0ZmYxNWVmZDNkMDk5OWIxOWU0ODVhMGMwYTljCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9DdWVFdmVudC5pZGwKQEAgLTAsMCArMSwzMyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE0IENhYmxlIFRlbGV2aXNpb24gTGFicyBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworWworICAgIENvbmRpdGlvbmFsPVZJREVPX1RSQUNLLAorICAgIENvbnN0cnVjdG9yVGVt
cGxhdGU9RXZlbnQKK10gaW50ZXJmYWNlIEN1ZUV2ZW50IDogRXZlbnQgeworICAgIFtJbml0aWFs
aXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIFRleHRUcmFja0N1ZSBj
dWU7Cit9OworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAppbmRleCBiOWNkOTdm
ZWI5NjdhNGJiMWNiMTFjMjA0MGNhNGFjYWFlNzRiNDhjLi42YjQ2M2UwYzExMmI1NzA4NTZkYjMx
NjliMTUwMDVlYzY5OWUyNzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgK
QEAgLTEyMyw2ICsxMjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjdWVXaWxsQ2hhbmdlKFRleHRU
cmFja0N1ZSopOwogICAgIHZvaWQgY3VlRGlkQ2hhbmdlKFRleHRUcmFja0N1ZSopOwogCisgICAg
REVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihjdWVhZGQpOwogICAgIERFRklORV9BVFRS
SUJVVEVfRVZFTlRfTElTVEVORVIoY3VlY2hhbmdlKTsKIAogICAgIGVudW0gVGV4dFRyYWNrVHlw
ZSB7IFRyYWNrRWxlbWVudCwgQWRkVHJhY2ssIEluQmFuZCB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suaWRsCmluZGV4IGQ2MDM1OGI2YzhkZGM5ZTRiZGIyNzNlZGUwMjk2N2Rh
ZDM3OTQ4ODAuLjFkMzhjNjljMDJlYjgzM2RhMjc1M2Y3MTc5NzEzYjZjMTVmM2NkY2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5pZGwKQEAgLTQ3LDYgKzQ3LDcgQEAgZW51
bSBUZXh0VHJhY2tLaW5kIHsgInN1YnRpdGxlcyIsICAiY2FwdGlvbnMiLCAgImRlc2NyaXB0aW9u
cyIsICAiY2hhcHRlcnMiLCAibWUKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGFkZEN1ZShU
ZXh0VHJhY2tDdWUgY3VlKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHJlbW92ZUN1ZShU
ZXh0VHJhY2tDdWUgY3VlKTsKIAorICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9uY3VlYWRkOwogICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uY3VlY2hh
bmdlOwogCiAjaWYgZGVmaW5lZChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICYmIEVOQUJMRV9XRUJW
VFRfUkVHSU9OUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDEwOTJiYjQwMTMyM2MyODdjYWNmNzM0OTc3OThlZGJhZWFjMjYw
NTEuLjgzNDNkMGI1MjBjYmQxZWI4Njc3OTdmMDBlMmJlNmY2ZTQ4NjI2ZWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNC0wOS0yMyAgQnJlbmRhbiBMb25nICA8Yi5sb25nQGNhYmxlbGFicy5j
b20+CisKKyAgICAgICAgQWRkIFRleHRUcmFjayBjdWVhZGQgZXZlbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjU1MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvdHJhY2svdGV4dC10cmFj
ay1vbmN1ZWFkZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3RyYWNrL3Rl
eHQtdHJhY2stb25jdWVhZGQuaHRtbDogQWRkZWQuCisKIDIwMTQtMDktMjMgIEVkdWFyZG8gTGlt
YSBNaXRldiAgPGVsaW1hQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkcyBpbXBsZW1l
bnRhdGlvbiBvZiBTdWJ0bGUgQ3J5cHRvIGRpZ2VzdCBhbGdvcml0aG1zCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90ZXh0LXRyYWNrLW9uY3VlYWRkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RleHQtdHJhY2stb25jdWVhZGQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgxMGY5OGFiMDBkZGI5YWZkNTc1MjZjYmExZDNlOWNlZjMyMGQ5ZDEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90ZXh0LXRyYWNrLW9uY3Vl
YWRkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0cyBUZXh0VHJhY2sncyBjdWVh
ZGQgZXZlbnQKKworCisqIFNhdyBjdWVhZGQgZXZlbnQgKgorRVhQRUNURUQgKGN1ZXMubGVuZ3Ro
ID09ICc0JykgT0sKK0VYUEVDVEVEIChjdWVzW2ldLnRleHQgPT0gJ0xvcmVtJykgT0sKK0VYUEVD
VEVEIChjdWVzW2ldLnRleHQgPT0gJ2lwc3VtJykgT0sKK0VYUEVDVEVEIChjdWVzW2ldLnRleHQg
PT0gJ2RvbG9yJykgT0sKK0VYUEVDVEVEIChjdWVzW2ldLnRleHQgPT0gJ3NpdCcpIE9LCisKKyog
QWRkaW5nIGN1ZSB0byB0cmFjayBtYW51YWxseSAqCisKKyogU2F3IGN1ZWFkZCBldmVudCAqCitF
WFBFQ1RFRCAoY3Vlcy5sZW5ndGggPT0gJzEnKSBPSworRVhQRUNURUQgKGN1ZXNbaV0udGV4dCA9
PSAnQWRkZWQgY3VlJykgT0sKKworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC5odG1sIGIvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4NGJiNmQxMGQ5
ZTNiZjhmNzBlOTFjZGU1MmFmN2E4ZTI3OTY3ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay90ZXh0LXRyYWNrLW9uY3VlYWRkLmh0bWwKQEAgLTAsMCArMSw1OCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgi
IC8+CisKKyAgICAgICAgPHNjcmlwdCBzcmM9Li4vbWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Li4vdmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdD4KKworICAgICAgICAgICAgdmFyIGN1ZTsKKyAgICAgICAgICAgIHZhciBpID0gMDsKKwor
ICAgICAgICAgICAgdmFyIGV4cGVjdGVkQ3VlcyA9IFsKKyAgICAgICAgICAgICAgICAiTG9yZW0i
LAorICAgICAgICAgICAgICAgICJpcHN1bSIsCisgICAgICAgICAgICAgICAgImRvbG9yIiwKKyAg
ICAgICAgICAgICAgICAic2l0IiwKKyAgICAgICAgICAgICAgICAiQWRkZWQgY3VlIgorICAgICAg
ICAgICAgXQorCisgICAgICAgICAgICBmdW5jdGlvbiBjdWVBZGRlZChlKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiKiBTYXcgY3VlYWRkIGV2ZW50ICoiKTsK
KyAgICAgICAgICAgICAgICBjdWUgPSBlLmN1ZTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoImN1ZS50ZXh0IiwgZXhwZWN0ZWRDdWVzW2ldKTsKKyAgICAgICAgICAgICAgICBjb25zb2xl
V3JpdGUoIiIpOworCisgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgIGlmIChp
ID49IGV4cGVjdGVkQ3Vlcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gdHJhY2tMb2FkZWQoKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiKiBBZGRpbmcgY3VlIHRv
IHRyYWNrIG1hbnVhbGx5ICoiKTsKKyAgICAgICAgICAgICAgICB2YXIgdGVzdFRyYWNrID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RUcmFjayIpOworICAgICAgICAgICAgICAgIHZhciBj
dWUgPSBuZXcgVlRUQ3VlKDQsIDUsICJBZGRlZCBjdWUiKTsKKyAgICAgICAgICAgICAgICB0ZXN0
VHJhY2sudHJhY2suYWRkQ3VlKGN1ZSk7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIi
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgb25sb2FkID0gZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgdmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RW
aWRlbyIpOworICAgICAgICAgICAgICAgIHZpZGVvLnRleHRUcmFja3MuYWRkRXZlbnRMaXN0ZW5l
cigiYWRkdHJhY2siLCBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGUudHJhY2su
YWRkRXZlbnRMaXN0ZW5lcigiY3VlYWRkIiwgY3VlQWRkZWQpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKCdB
dXRvbWF0aWMnKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5Pgor
ICAgICAgICA8cD5UZXN0cyBUZXh0VHJhY2sncyBjdWVhZGQgZXZlbnQ8L3A+CisgICAgICAgIDx2
aWRlbyBpZD0idGVzdFZpZGVvIj4KKyAgICAgICAgICAgIDx0cmFjayBpZD0idGVzdFRyYWNrIiBz
cmM9ImNhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy52dHQiIGtpbmQ9ImNhcHRpb25zIiBvbmxvYWQ9
InRyYWNrTG9hZGVkKCkiIGRlZmF1bHQ+CisgICAgICAgIDwvdmlkZW8+CisgICAgPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239135</attachid>
            <date>2014-10-02 13:56:21 -0700</date>
            <delta_ts>2016-09-17 07:05:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136550-20141002155622.patch</filename>
            <type>text/plain</type>
            <size>21139</size>
            <attacher name="Brendan Long">b.long</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdkYzYwMGU1OWRmMzA2
YjVkZTViZTBkZjYyOGIzZTk0Mzk4YmVkNS4uZTk3ZmE2OWQ2OTY0ZGFhYWRhYTY3MjIyMDRhZjEz
OWRjNDMxOWQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTEwLTAyICBCcmVu
ZGFuIExvbmcgIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KKworICAgICAgICBBZGQgVGV4dFRyYWNr
IGN1ZWFkZCBldmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM2NTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogbWVkaWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIEN1ZUV2ZW50LgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLmNwcDogU2FtZS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBTYW1lLgorICAg
ICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6IFNhbWUuCisgICAgICAgICog
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOiBTYW1lLgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHA6IEFkZCBjb252ZXJ0VmFsdWUgZm9yIFRleHRU
cmFja0N1ZS4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaDogU2FtZS4KKyAg
ICAgICAgKiBkb20vRXZlbnROYW1lcy5oOiBBZGQgY3VlYWRkIGV2ZW50LgorICAgICAgICAqIGRv
bS9FdmVudE5hbWVzLmluOiBBZGQgQ3VlRXZlbnQuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFj
a0FkZEN1ZSk6IEZpcmUgYSBjdWVhZGQgZXZlbnQgd2hlbmV2ZXIgd2UgYWRkIGEgY3VlIHRvIGEg
VGV4dFRyYWNrLgorICAgICAgICAqIGh0bWwvdHJhY2svQ3VlRXZlbnQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBodG1sL3RyYWNrL0N1ZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvdHJh
Y2svQ3VlRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5o
OiBBZGQgY3VlYWRkIGV2ZW50LgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmlkbDog
U2FtZS4KKwogMjAxNC0xMC0wMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgSGF2ZSBpczw+KFQqKSBmdW5jdGlvbiBkbyBhIG51bGwgY2hlY2sgb24gdGhl
IHBvaW50ZXIgYXJndW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjBlY2Y1OGJhZjliNTQw
YzBjODkwZjA0YjVkYjNiZTY2ZjQwNmQ0MS4uYjExZmNjYzJmZTcwODYwNTgwMjVjY2MyYTE0MTJk
NDUyYWEzMTYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI5MDIsNiArMjkwMiw3IEBAIGlm
IChFTkFCTEVfVklERU9fVFJBQ0spCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMK
ICAgICAgICAgaHRtbC90cmFjay9BdWRpb1RyYWNrLmlkbAogICAgICAgICBodG1sL3RyYWNrL0F1
ZGlvVHJhY2tMaXN0LmlkbAorICAgICAgICBodG1sL3RyYWNrL0N1ZUV2ZW50LmlkbAogICAgICAg
ICBodG1sL3RyYWNrL0RhdGFDdWUuaWRsCiAgICAgICAgIGh0bWwvdHJhY2svVGV4dFRyYWNrLmlk
bAogICAgICAgICBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5pZGwKQEAgLTI5MTcsNiArMjkxOCw3
IEBAIGlmIChFTkFCTEVfVklERU9fVFJBQ0spCiAgICAgICAgIGh0bWwvdHJhY2svQXVkaW9UcmFj
ay5jcHAKICAgICAgICAgaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5jcHAKICAgICAgICAgaHRt
bC90cmFjay9CdWZmZXJlZExpbmVSZWFkZXIuY3BwCisgICAgICAgIGh0bWwvdHJhY2svQ3VlRXZl
bnQuY3BwCiAgICAgICAgIGh0bWwvdHJhY2svRGF0YUN1ZS5jcHAKICAgICAgICAgaHRtbC90cmFj
ay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAogICAgICAgICBodG1sL3RyYWNrL0luYmFuZEdlbmVy
aWNUZXh0VHJhY2suY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggNjI0Y2UxNzg0
MmUzYWE4YTRlNzI5MGVmYTJlYTIxYmQ0YjAwMWUzMi4uYmM2ZjdjZmEyYTRiZjY1ZGY3MDZkY2U4
Njg3NTY2MGFiMGE2Yzg4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtNDY5LDYg
KzQ2OSw3IEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogI2luY2x1ZGUgIkpTQXVkaW9UcmFj
ay5jcHAiCiAjaW5jbHVkZSAiSlNBdWRpb1RyYWNrTGlzdC5jcHAiCisjaW5jbHVkZSAiSlNDdWVF
dmVudC5jcHAiCiAjaW5jbHVkZSAiSlNEYXRhQ3VlLmNwcCIKICNpbmNsdWRlICJKU0hUTUxUcmFj
a0VsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTVGV4dFRyYWNrLmNwcCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IGExMGUxMTAyMWZlYjBmZWI5MTFkY2YxYjQ0YWQ1OTE3NDVkNmQ3
MTAuLmJkZWM1ZThhMGZkZjYxZjc1ZTI0OGJkYjJlNTI0ODRiMzE0MGMwNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDUzLDYgKzQ1Myw3IEBAIE5PTl9TVkdfQklORElOR19J
RExTID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUy5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC90cmFjay9BdWRpb1RyYWNrLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmlkbCBcCisgICAgJChXZWJD
b3JlKS9odG1sL3RyYWNrL0N1ZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL3RyYWNr
L0RhdGFDdWUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvdHJhY2svVGV4dFRyYWNrLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5pZGwgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggODY2MWJiMTcx
OTU5Njk1MzEwZDEyMDZlYTgzZjhkYmE0MzQwOTQ2Yy4uMjc3NmRiNGRjNmRmYzUzYmY3MDk4Yjlh
Mjk5N2M0MmE5MzEyMzAwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCkBAIC0xNjEwOSw2ICsxNjEwOSw3IEBACiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxodG1sXHNoYWRvd1xTcGluQnV0dG9uRWxlbWVudC5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXHNoYWRvd1xUZXh0Q29udHJvbElubmVyRWxlbWVudHMu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFx0cmFja1xCdWZmZXJlZExp
bmVSZWFkZXIuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFx0cmFja1xD
dWVFdmVudC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXHRyYWNrXERh
dGFDdWUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFx0cmFja1xJbmJh
bmREYXRhVGV4dFRyYWNrLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxc
dHJhY2tcSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAiIC8+CkBAIC0yMDg5OSw2ICsyMDkwMCw3
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHNoYWRvd1xTcGluQnV0dG9uRWxl
bWVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxzaGFkb3dcVGV4dENv
bnRyb2xJbm5lckVsZW1lbnRzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1s
XHRyYWNrXEJ1ZmZlcmVkTGluZVJlYWRlci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caHRtbFx0cmFja1xDdWVFdmVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aHRtbFx0cmFja1xEYXRhQ3VlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1s
XHRyYWNrXEluYmFuZERhdGFUZXh0VHJhY2suaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGh0bWxcdHJhY2tcSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oIiAvPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmlu
ZGV4IGQ3MWNjZmRhY2RiNjFkNDc4MDgxZGQ3YTVjZjRkOTI3ZjAwY2E2YzMuLjRlOTMxZTJmMTc4
NjRjOGVlMTc2YzUzYjFmYTljZmVhZDY3YzQ0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTQyMDAsNiAr
NDIwMCw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXHRyYWNrXEJ1ZmZlcmVk
TGluZVJlYWRlci5jcHAiPgogICAgICAgPEZpbHRlcj5odG1sXHRyYWNrPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXHRyYWNrXEN1ZUV2
ZW50LmNwcCI+CisgICAgICA8RmlsdGVyPmh0bWxcdHJhY2s8L0ZpbHRlcj4KKyAgICA8L0NsQ29t
cGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcdHJhY2tcRGF0YUN1ZS5jcHAi
PgogICAgICAgPEZpbHRlcj5odG1sXHRyYWNrPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBA
IC0xMTM4NSw2ICsxMTM4OCw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHRy
YWNrXEJ1ZmZlcmVkTGluZVJlYWRlci5oIj4KICAgICAgIDxGaWx0ZXI+aHRtbFx0cmFjazwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFx0
cmFja1xDdWVFdmVudC5oIj4KKyAgICAgIDxGaWx0ZXI+aHRtbFx0cmFjazwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFx0cmFja1xEYXRh
Q3VlLmgiPgogICAgICAgPEZpbHRlcj5odG1sXHRyYWNrPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcAppbmRleCAy
MGQ4ZjgzY2QwZTQ5YWE2YTA0YzNmNjdiYzhkMjVlZTIzYmY5OGYwLi43Zjc1N2Y2NTk5ZWQ0MTg3
NzEwYzY5MmRmOGQ5ZWUyNzJlNTM3MzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRGljdGlvbmFyeS5jcHAKQEAgLTU2LDYgKzU2LDEwIEBACiAjaW5jbHVkZSAiSlNHYW1lcGFk
LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyNpbmNsdWRlICJKU1RleHRU
cmFja0N1ZS5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTE4MCw2ICsxODQsMTEgQEAgdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRW
YWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIE1lc3NhZ2VQb3J0QXJyYXkKIH0K
IAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKK3ZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFs
dWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPFRleHRUcmFja0N1ZT4mIHJlc3Vs
dCkKK3sKKyAgICByZXN1bHQgPSBKU1RleHRUcmFja0N1ZTo6dG9XcmFwcGVkKHZhbHVlKTsKK30K
Kwogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZh
bHVlLCBSZWZQdHI8VHJhY2tCYXNlPiYgcmVzdWx0KQogewogICAgIHJlc3VsdCA9IHRvVHJhY2so
dmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9u
YXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaAppbmRleCBl
OTAyZjlhNmFjNmFjODYzODBlZjk2MDhlOWQ5MTBjYTQzMzBkODdmLi4zZDlhNjJjZmZiMTdmZTQ1
YWQyY2M4NzYyNDBlMmQ1MjY4ZDM2NjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RpY3Rpb25hcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RpY3Rpb25hcnkuaApAQCAtNTMsNiArNTMsNyBAQCBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrOwog
Y2xhc3MgTm9kZTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFN0b3JhZ2U7
CitjbGFzcyBUZXh0VHJhY2tDdWU7CiBjbGFzcyBUcmFja0Jhc2U7CiBjbGFzcyBWb2lkQ2FsbGJh
Y2s7CiAKQEAgLTExNyw2ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGNvbnZl
cnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPFN0b3JhZ2U+JiBy
ZXN1bHQpOwogICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgTWVzc2FnZVBvcnRBcnJheSYgcmVzdWx0KTsKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCisgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlLCBSZWZQdHI8VGV4dFRyYWNrQ3VlPiYgcmVzdWx0KTsKICAgICBzdGF0aWMgdm9p
ZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxUcmFj
a0Jhc2U+JiByZXN1bHQpOwogI2VuZGlmCiAgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBIYXNoU2V0PEF0b21pY1N0cmluZz4mIHJlc3Vs
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCBhNmFmODhhNWYxOGVlMWQ5NjRkOWZjYzg1
NTgyY2M1MGFlZmU1Yjc3Li41ZGMzMWZlYWY5MTFlNDhhNjdiMzRmYzVlNzQzZDY0MmM2OGVjZjk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTE2Niw2ICsxNjYsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8oYWN0aXZlKSBcCiAgICAgbWFjcm8oaW5hY3RpdmUpIFwKICAg
ICBtYWNybyhhZGR0cmFjaykgXAorICAgIG1hY3JvKGN1ZWFkZCkgXAogICAgIG1hY3JvKGN1ZWNo
YW5nZSkgXAogICAgIG1hY3JvKGVudGVyKSBcCiAgICAgbWFjcm8oZXhpdCkgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5pbgppbmRleCAwYjcxMjQxYWI0MDhkZTE3NDgxODU1ZDFhNDIwMjc0Y2QyYTYx
MDZlLi4zZTJlMWFmNDQ2MDI4YWI0OTYzZTQ1OWY5YmY3NTFlODEyN2M0ODM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnROYW1lcy5pbgpAQCAtNTIsNiArNTIsNyBAQCBPcmllbnRhdGlvbkV2ZW50IGludGVy
ZmFjZU5hbWU9RXZlbnQsIGNvbmRpdGlvbmFsPU9SSUVOVEFUSU9OX0VWRU5UUwogTWVkaWFLZXlF
dmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEKIE1lZGlhS2V5TWVzc2FnZUV2ZW50IGNv
bmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQV9WMgogTWVkaWFLZXlOZWVkZWRFdmVudCBjb25kaXRp
b25hbD1FTkNSWVBURURfTUVESUFfVjIKK0N1ZUV2ZW50IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNL
CiBUcmFja0V2ZW50IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCiBBdXRvY29tcGxldGVFcnJvckV2
ZW50IGNvbmRpdGlvbmFsPVJFUVVFU1RfQVVUT0NPTVBMRVRFCiBDU1NGb250RmFjZUxvYWRFdmVu
dCBjb25kaXRpb25hbD1GT05UX0xPQURfRVZFTlRTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAppbmRleCAxYzMwNWEyNjcwZTgyMGE4MGM0MWZhODJjMTkyMjVlNjI2ODRl
NTg4Li5lY2U1MTU4NTQxNGYxMDY1NjhkNTY1OTA0Y2QzYWVkOGUwZjk2NTZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTg3LDYgKzg3LDcgQEAKIAogI2lm
IEVOQUJMRShWSURFT19UUkFDSykKICNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgorI2luY2x1
ZGUgIkN1ZUV2ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRyYWNrRWxlbWVudC5oIgogI2luY2x1ZGUg
IkluYmFuZEdlbmVyaWNUZXh0VHJhY2suaCIKICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQcml2
YXRlLmgiCkBAIC0xNjMxLDYgKzE2MzIsMTUgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0
VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWUKICAg
ICBpZiAoIW1fY3VlVHJlZS5jb250YWlucyhpbnRlcnZhbCkpCiAgICAgICAgIG1fY3VlVHJlZS5h
ZGQoaW50ZXJ2YWwpOwogICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY3VycmVudE1lZGlh
VGltZSgpKTsKKworICAgIEN1ZUV2ZW50SW5pdCBpbml0OworICAgIGluaXQuYnViYmxlcyA9IGZh
bHNlOworICAgIGluaXQuY2FuY2VsYWJsZSA9IGZhbHNlOworICAgIGluaXQuY3VlID0gY3VlLnJl
bGVhc2UoKTsKKworICAgIFJlZlB0cjxDdWVFdmVudD4gY3VlRXZlbnQgPSBDdWVFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5jdWVhZGRFdmVudCwgaW5pdCk7CisgICAgY3VlRXZlbnQtPnNldFRh
cmdldCh0cmFjayk7CisgICAgbV9hc3luY0V2ZW50UXVldWUuZW5xdWV1ZUV2ZW50KGN1ZUV2ZW50
LnJlbGVhc2UoKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3Zl
Q3VlKFRleHRUcmFjayosIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBwcnBDdWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svQ3VlRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3ZmVlZjQzY2M2N2ViZTU3
MzVlNzNjMzZjZTg3YWRmMzlmMDRmMzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0N1ZUV2ZW50LmNwcApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQ2FibGUgVGVsZXZpc2lvbiBMYWJzIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisjaW5jbHVkZSAiQ3VlRXZl
bnQuaCIKKworI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitDdWVFdmVudEluaXQ6OkN1ZUV2ZW50SW5pdCgpCit7Cit9CisKK0N1ZUV2ZW50OjpDdWVFdmVu
dCgpCit7Cit9CisKK0N1ZUV2ZW50OjpDdWVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGNvbnN0IEN1ZUV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCisgICAgOiBFdmVudCh0eXBlLCBpbml0
aWFsaXplcikKKyAgICAsIG1fY3VlKGluaXRpYWxpemVyLmN1ZSkKK3sKK30KKworQ3VlRXZlbnQ6
On5DdWVFdmVudCgpCit7Cit9CisKK0V2ZW50SW50ZXJmYWNlIEN1ZUV2ZW50OjpldmVudEludGVy
ZmFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEN1ZUV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svQ3VlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQ3Vl
RXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNzBmOTI5ODY0NDE2NWEwM2E0ZTQ4ZmJhNGZkMTIyYTJhMDJm
ZGY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9DdWVFdmVu
dC5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBDYWJsZSBUZWxl
dmlzaW9uIExhYnMgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3VlRXZlbnRfaAorI2RlZmluZSBD
dWVFdmVudF9oCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisKKyNpbmNsdWRlICJFdmVudC5o
IgorI2luY2x1ZGUgIlRleHRUcmFja0N1ZS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgQ3VlRXZlbnRJbml0IDogcHVibGljIEV2ZW50
SW5pdCB7CisgICAgQ3VlRXZlbnRJbml0KCk7CisKKyAgICBSZWZQdHI8VGV4dFRyYWNrQ3VlPiBj
dWU7Cit9OworCitjbGFzcyBDdWVFdmVudCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+Q3VlRXZlbnQoKTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEN1ZUV2ZW50PiBj
cmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDdWVFdmVudCk7Cisg
ICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q3VlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGNvbnN0IEN1ZUV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEN1ZUV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7
CisgICAgfQorCisgICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNv
bnN0IG92ZXJyaWRlOworCisgICAgVGV4dFRyYWNrQ3VlKiBjdWUoKSBjb25zdCB7IHJldHVybiBt
X2N1ZS5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIEN1ZUV2ZW50KCk7CisgICAgQ3VlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBDdWVFdmVudEluaXQmIGluaXRpYWxpemVy
KTsKKworICAgIFJlZlB0cjxUZXh0VHJhY2tDdWU+IG1fY3VlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9DdWVFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0N1ZUV2
ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mYjNiMzk3MDNmMTI0ZmYxNWVmZDNkMDk5OWIxOWU0ODVhMGMw
YTljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9DdWVFdmVu
dC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IENhYmxlIFRl
bGV2aXNpb24gTGFicyBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVZJREVPX1RS
QUNLLAorICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKK10gaW50ZXJmYWNlIEN1ZUV2ZW50
IDogRXZlbnQgeworICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkg
YXR0cmlidXRlIFRleHRUcmFja0N1ZSBjdWU7Cit9OworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2suaAppbmRleCBiOWNkOTdmZWI5NjdhNGJiMWNiMTFjMjA0MGNhNGFjYWFlNzRiNDhj
Li42YjQ2M2UwYzExMmI1NzA4NTZkYjMxNjliMTUwMDVlYzY5OWUyNzg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKQEAgLTEyMyw2ICsxMjMsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjdWVXaWxsQ2hhbmdlKFRleHRUcmFja0N1ZSopOwogICAgIHZvaWQgY3VlRGlkQ2hhbmdl
KFRleHRUcmFja0N1ZSopOwogCisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihj
dWVhZGQpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoY3VlY2hhbmdlKTsK
IAogICAgIGVudW0gVGV4dFRyYWNrVHlwZSB7IFRyYWNrRWxlbWVudCwgQWRkVHJhY2ssIEluQmFu
ZCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRsCmluZGV4IGQ2MDM1OGI2
YzhkZGM5ZTRiZGIyNzNlZGUwMjk2N2RhZDM3OTQ4ODAuLjFkMzhjNjljMDJlYjgzM2RhMjc1M2Y3
MTc5NzEzYjZjMTVmM2NkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5p
ZGwKQEAgLTQ3LDYgKzQ3LDcgQEAgZW51bSBUZXh0VHJhY2tLaW5kIHsgInN1YnRpdGxlcyIsICAi
Y2FwdGlvbnMiLCAgImRlc2NyaXB0aW9ucyIsICAiY2hhcHRlcnMiLCAibWUKICAgICBbUmFpc2Vz
RXhjZXB0aW9uXSB2b2lkIGFkZEN1ZShUZXh0VHJhY2tDdWUgY3VlKTsKICAgICBbUmFpc2VzRXhj
ZXB0aW9uXSB2b2lkIHJlbW92ZUN1ZShUZXh0VHJhY2tDdWUgY3VlKTsKIAorICAgICAgICAgICAg
IGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uY3VlYWRkOwogICAgICAgICAgICAgIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9uY3VlY2hhbmdlOwogCiAjaWYgZGVmaW5lZChFTkFCTEVfV0VCVlRU
X1JFR0lPTlMpICYmIEVOQUJMRV9XRUJWVFRfUkVHSU9OUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGEwZDY5YjJiZGRlYWZm
OWZhYWQ2MTNmOTYxZjc1Njc2YWVhOWZmMzEuLjU1YjNkMDFlMmYwYjUyZGQ2ZGM5NTk2NDA5ZWE1
NDY4ZjBkNzMzNmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0xMC0wMiAgQnJlbmRhbiBM
b25nICA8Yi5sb25nQGNhYmxlbGFicy5jb20+CisKKyAgICAgICAgQWRkIFRleHRUcmFjayBjdWVh
ZGQgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNjU1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogbWVkaWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIG1lZGlhL3RyYWNrL3RleHQtdHJhY2stb25jdWVhZGQuaHRtbDogQWRkZWQuCisK
IDIwMTQtMTAtMDIgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbIFdpbmRvd3MgXSBNb3JlIFdpbmRvd3MgdGVzdCBnYXJkZW5pbmcgdG8gZ2V0IGJvdHMgZ3Jl
ZW4gUGFydCA0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdGV4dC10cmFj
ay1vbmN1ZWFkZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90ZXh0LXRy
YWNrLW9uY3VlYWRkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjQ0MWI2YWY3MmI4NzcyYTgz
NmNiNjJlODYwNWRmZjA1ZDQ1ZmY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMiBA
QAorVGVzdHMgVGV4dFRyYWNrJ3MgY3VlYWRkIGV2ZW50CisKKworKiBTYXcgY3VlYWRkIGV2ZW50
ICoKK0VYUEVDVEVEIChjdWUudGV4dCA9PSAnTG9yZW0nKSBPSworCisqIFNhdyBjdWVhZGQgZXZl
bnQgKgorRVhQRUNURUQgKGN1ZS50ZXh0ID09ICdpcHN1bScpIE9LCisKKyogU2F3IGN1ZWFkZCBl
dmVudCAqCitFWFBFQ1RFRCAoY3VlLnRleHQgPT0gJ2RvbG9yJykgT0sKKworKiBTYXcgY3VlYWRk
IGV2ZW50ICoKK0VYUEVDVEVEIChjdWUudGV4dCA9PSAnc2l0JykgT0sKKworKiBBZGRpbmcgY3Vl
IHRvIHRyYWNrIG1hbnVhbGx5ICoKKworKiBTYXcgY3VlYWRkIGV2ZW50ICoKK0VYUEVDVEVEIChj
dWUudGV4dCA9PSAnQWRkZWQgY3VlJykgT0sKKworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC5odG1sIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdGV4dC10cmFjay1vbmN1ZWFkZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2
YTBmN2IzYWYxZjRkOTdmNzdmYzk1NThhMWQwZTgyMTExMGJjZGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90ZXh0LXRyYWNrLW9uY3VlYWRkLmh0bWwKQEAgLTAs
MCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAg
PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9dXRmLTgiIC8+CisKKyAgICAgICAgPHNjcmlwdCBzcmM9Li4vbWVkaWEtZmlsZS5qcz48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Li4vdmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdD4KKworICAgICAgICAgICAgdmFyIGN1ZTsKKyAgICAgICAgICAgIHZhciBj
dWVOdW1iZXIgPSAwOworCisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRDdWVzID0gWworICAgICAg
ICAgICAgICAgICJMb3JlbSIsCisgICAgICAgICAgICAgICAgImlwc3VtIiwKKyAgICAgICAgICAg
ICAgICAiZG9sb3IiLAorICAgICAgICAgICAgICAgICJzaXQiLAorICAgICAgICAgICAgICAgICJB
ZGRlZCBjdWUiCisgICAgICAgICAgICBdCisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGN1ZUFkZGVk
KGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIqIFNhdyBj
dWVhZGQgZXZlbnQgKiIpOworICAgICAgICAgICAgICAgIGN1ZSA9IGUuY3VlOworICAgICAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgiY3VlLnRleHQiLCBleHBlY3RlZEN1ZXNbY3VlTnVtYmVyXSk7
CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKworICAgICAgICAgICAgICAgICsr
Y3VlTnVtYmVyOworICAgICAgICAgICAgICAgIGlmIChjdWVOdW1iZXIgPj0gZXhwZWN0ZWRDdWVz
Lmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiB0cmFja0xvYWRlZCgpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgY29uc29sZVdyaXRlKCIqIEFkZGluZyBjdWUgdG8gdHJhY2sgbWFudWFsbHkg
KiIpOworICAgICAgICAgICAgICAgIHZhciB0ZXN0VHJhY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdFRyYWNrIik7CisgICAgICAgICAgICAgICAgdmFyIGN1ZSA9IG5ldyBWVFRDdWUo
NCwgNSwgIkFkZGVkIGN1ZSIpOworICAgICAgICAgICAgICAgIHRlc3RUcmFjay50cmFjay5hZGRD
dWUoY3VlKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB2
YXIgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdFZpZGVvIik7CisgICAgICAg
ICAgICAgICAgdmlkZW8udGV4dFRyYWNrcy5hZGRFdmVudExpc3RlbmVyKCJhZGR0cmFjayIsIGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZS50cmFjay5hZGRFdmVudExpc3RlbmVy
KCJjdWVhZGQiLCBjdWVBZGRlZCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
OworCisgICAgICAgICAgICBzZXRDYXB0aW9uRGlzcGxheU1vZGUoJ0F1dG9tYXRpYycpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3Rz
IFRleHRUcmFjaydzIGN1ZWFkZCBldmVudDwvcD4KKyAgICAgICAgPHZpZGVvIGlkPSJ0ZXN0Vmlk
ZW8iPgorICAgICAgICAgICAgPHRyYWNrIGlkPSJ0ZXN0VHJhY2siIHNyYz0iY2FwdGlvbnMtd2Vi
dnR0L2NhcHRpb25zLnZ0dCIga2luZD0iY2FwdGlvbnMiIG9ubG9hZD0idHJhY2tMb2FkZWQoKSIg
ZGVmYXVsdD4KKyAgICAgICAgPC92aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>