<?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>184820</bug_id>
          
          <creation_ts>2018-04-20 08:37:24 -0700</creation_ts>
          <short_desc>Use WindowProxy in DOMWindow.idl</short_desc>
          <delta_ts>2018-04-20 16:49:16 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1416266</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-20 08:37:24 -0700</bug_when>
    <thetext>Use WindowProxy in DOMWindow.idl to match the specification more closely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416268</commentid>
    <comment_count>1</comment_count>
      <attachid>338430</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-20 08:38:35 -0700</bug_when>
    <thetext>Created attachment 338430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416319</commentid>
    <comment_count>2</comment_count>
      <attachid>338430</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2018-04-20 10:53:27 -0700</bug_when>
    <thetext>Comment on attachment 338430
Patch

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

&gt; Source/WebCore/page/DOMWindow.cpp:2305
&gt; +WindowProxy* DOMWindow::open(DOMWindow&amp; activeWindow, DOMWindow&amp; firstWindow, const String&amp; urlString, const AtomicString&amp; frameName, const String&amp; windowFeaturesString)

I&apos;m a little worried about this losing it&apos;s RefPtr&apos;ness.  I think giving WindowProxy ref() and deref() methods, that just ref/deref the underlying AbstractFrame and making this return a RefPtr&lt;WindowProxy&gt; would be safer. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416326</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-20 10:57:26 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #2)
&gt; Comment on attachment 338430 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=338430&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/DOMWindow.cpp:2305
&gt; &gt; +WindowProxy* DOMWindow::open(DOMWindow&amp; activeWindow, DOMWindow&amp; firstWindow, const String&amp; urlString, const AtomicString&amp; frameName, const String&amp; windowFeaturesString)
&gt; 
&gt; I&apos;m a little worried about this losing it&apos;s RefPtr&apos;ness.  I think giving
&gt; WindowProxy ref() and deref() methods, that just ref/deref the underlying
&gt; AbstractFrame and making this return a RefPtr&lt;WindowProxy&gt; would be safer.
&gt; What do you think?

Oh, I had similar concerns but did not want to have WindowProxy subclass RefCounted. Your idea sounds good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416422</commentid>
    <comment_count>4</comment_count>
      <attachid>338463</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-20 14:45:21 -0700</bug_when>
    <thetext>Created attachment 338463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416523</commentid>
    <comment_count>5</comment_count>
      <attachid>338463</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-20 16:48:55 -0700</bug_when>
    <thetext>Comment on attachment 338463
Patch

Clearing flags on attachment: 338463

Committed r230867: &lt;https://trac.webkit.org/changeset/230867&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416524</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-20 16:48:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416525</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-20 16:49:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/39613880&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338430</attachid>
            <date>2018-04-20 08:38:35 -0700</date>
            <delta_ts>2018-04-20 14:45:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184820-20180420083855.patch</filename>
            <type>text/plain</type>
            <size>18977</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwODMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM5NjFjNWRiYzlhOWRi
MDdkYzQ0ODk0ZDE3ZGZjNWZhZWNiMzVlNS4uNjU4MDM2N2Y0NmJhZGRlNDQwNzI2YmFkOWM3YmEy
MjU4NmU2YmI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTA0LTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdpbmRvd1Byb3h5IGlu
IERPTVdpbmRvdy5pZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4NDgyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSBXaW5kb3dQcm94eSBpbiBET01XaW5kb3cuaWRsIHRvIG1hdGNoIHRoZSBzcGVj
aWZpY2F0aW9uIG1vcmUgY2xvc2VseS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2luZG93
UHJveHkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXaW5kb3dQcm94eTo6d2luZG93IGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XaW5kb3dQcm94eS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtOgorICAgICAgICAoTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6
CisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmZvY3VzKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2VsZiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
Om9wZW5lciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBhcmVudCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnRvcCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6Om9wZW4pOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6Cisg
ICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6b3BlbkR1bW15SW5zcGVjdG9yRnJv
bnRlbmQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsOgorCiAyMDE4LTA0LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVuYW1lIEpTRE9NV2luZG93UHJveHkgdG8gSlNXaW5kb3dQcm94
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5oCmluZGV4IGQ4MTYx
NWI2NzZkNTBlNTBjM2ZlNDFiOTljNTEyZGFkMzFjMGQ5MWYuLmNkZmRhMTcyYjI0MWEyMjBhNWFh
NTUyYjQzODM1MDliNDE2MTE2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2luZG93UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dp
bmRvd1Byb3h5LmgKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogLy8gSlNXaW5kb3dQcm94
eSBpcyBhIGxpdHRsZSBvZGQgaW4gdGhhdCBpdCdzIG5vdCBhIHRyYWRpdGlvbmFsIHdyYXBwZXIg
YW5kIGhhcyBubyBiYWNrIHBvaW50ZXIuCiAvLyBJdCBpcywgaG93ZXZlciwgc3Ryb25nbHkgb3du
ZWQgYnkgQWJzdHJhY3RGcmFtZSB2aWEgaXRzIFdpbmRvd1Byb3h5LCBzbyB3ZSBjYW4gZ2V0IG9u
ZSBmcm9tIGEgV2luZG93UHJveHkuCi1KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSos
IFdpbmRvd1Byb3h5Jik7CitXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSosIFdpbmRvd1Byb3h5Jik7CiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqIHN0YXRlLCBXaW5kb3dQcm94eSogd2luZG93UHJveHkpIHsgcmV0dXJuIHdpbmRv
d1Byb3h5ID8gdG9KUyhzdGF0ZSwgKndpbmRvd1Byb3h5KSA6IEpTQzo6anNOdWxsKCk7IH0KIAog
SlNXaW5kb3dQcm94eSYgdG9KU1dpbmRvd1Byb3h5KFdpbmRvd1Byb3h5JiwgRE9NV3JhcHBlcldv
cmxkJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKaW5kZXgg
ZDMxZGZkYjQ1MmE0OTVkZDZlYzExZGQ3MDhlNDg2ODYxNzkwMDhhMS4uOGU1NWIyOTg4ODFmYjJl
MjNmNTdlM2FlYmVhYTFhMTY2Mjc1NTAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2luZG93UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dpbmRvd1Byb3h5LmNwcApAQCAtMTY1LDQgKzE2NSw5IEBAIHZvaWQgV2luZG93UHJveHk6OmF0
dGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqIGRlYnVnZ2VyKQogICAgICAgICB3aW5kb3dQcm94
eS0+YXR0YWNoRGVidWdnZXIoZGVidWdnZXIpOwogfQogCitBYnN0cmFjdERPTVdpbmRvdyogV2lu
ZG93UHJveHk6OndpbmRvdygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUud2luZG93KCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
aW5kb3dQcm94eS5oCmluZGV4IGZjM2VjMDFhMGM2Njg1N2JmM2EyNjBmNThlZTk1NGUzNDA2ZDQ1
YmIuLjY0MWVlZWI3OTJhZjUyYTAzYTdiZDZjMmU3M2E4ZGFiZDE5ODExNWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2luZG93UHJveHkuaApAQCAtNzUsNiArNzUsOCBAQCBwdWJsaWM6
CiAgICAgLy8gRGVidWdnZXIgY2FuIGJlIG51bGxwdHIgdG8gZGV0YWNoIGFueSBleGlzdGluZyBE
ZWJ1Z2dlci4KICAgICB2b2lkIGF0dGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsgLy8gQXR0
YWNoZXMvZGV0YWNoZXMgaW4gYWxsIHdvcmxkcy93aW5kb3cgcHJveGllcy4KIAorICAgIFdFQkNP
UkVfRVhQT1JUIEFic3RyYWN0RE9NV2luZG93KiB3aW5kb3coKSBjb25zdDsKKwogcHJpdmF0ZToK
ICAgICBKU1dpbmRvd1Byb3h5JiBjcmVhdGVKU1dpbmRvd1Byb3h5KERPTVdyYXBwZXJXb3JsZCYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIEpTV2luZG93UHJveHkmIGNyZWF0ZUpTV2luZG93UHJveHlX
aXRoSW5pdGlhbGl6ZWRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDdlYTM4OTUw
OTA1MjdhY2M3NmE0ZjkwOWVjZDhhN2VmOTk3MjZjZTAuLmM5OTg2ZTAwOTlhM2EwYjEyYWJkNzE5
Mzg1MGNjOGY5M2M1ODYzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC02NTUzLDYgKzY1NTMsNyBAQCBzdWIgTmF0aXZl
VG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFt
ZSBlcSAiSlNPTiI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNv
bHZlciI7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIldpbmRvd1Byb3h5IjsKICAg
ICAKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDM0YmI4MzI0
YmE5ZmNkNDlkZGNhZDJmMGQ0NjQ4NDRhMzEzOWFlMjcuLjhmYWUyNmU3NjE4YjA5NmRkMjJmMWQ3
NTIyZWJiNzYwOTM2ZjE2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjU5Myw3ICsy
NTkzLDcgQEAgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBEb2N1bWVudDo6c2NyaXB0YWJsZURv
Y3VtZW50UGFyc2VyKCkgY29uc3QKICAgICByZXR1cm4gcGFyc2VyKCkgPyBwYXJzZXIoKS0+YXNT
Y3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKSA6IG51bGxwdHI7CiB9CiAKLUV4Y2VwdGlvbk9yPFJl
ZlB0cjxET01XaW5kb3c+PiBEb2N1bWVudDo6b3BlbkZvckJpbmRpbmdzKERPTVdpbmRvdyYgYWN0
aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93LCBjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGZlYXR1cmVzKQorRXhjZXB0aW9u
T3I8V2luZG93UHJveHkqPiBEb2N1bWVudDo6b3BlbkZvckJpbmRpbmdzKERPTVdpbmRvdyYgYWN0
aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93LCBjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGZlYXR1cmVzKQogewogICAgIGlm
ICghbV9kb21XaW5kb3cpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNz
RXJyb3IgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggN2I3Y2QyMTExMDZiM2NiYzMwMjU1N2Jk
MzdlOTYyNTc5N2E3Mzk5OS4uMWUwYTAwNDk5NzJkZmU5MThkOGVmNWM5NzE5NjRiYzEwY2E1NzUy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE4NSw2ICsxODUsNyBAQCBjbGFzcyBXZWJBbmlt
YXRpb247CiBjbGFzcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OwogY2xhc3MgV2ViR0xSZW5kZXJp
bmdDb250ZXh0OwogY2xhc3MgV2ViR1BVUmVuZGVyaW5nQ29udGV4dDsKK2NsYXNzIFdpbmRvd1By
b3h5OwogY2xhc3MgWFBhdGhFdmFsdWF0b3I7CiBjbGFzcyBYUGF0aEV4cHJlc3Npb247CiBjbGFz
cyBYUGF0aE5TUmVzb2x2ZXI7CkBAIC02MTksNyArNjIwLDcgQEAgcHVibGljOgogICAgIAogICAg
IFdFQkNPUkVfRVhQT1JUIERvY3VtZW50TG9hZGVyKiBsb2FkZXIoKSBjb25zdDsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFJlZlB0cjxET01XaW5kb3c+PiBvcGVuRm9yQmluZGlu
Z3MoRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RXaW5kb3csIGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZmVh
dHVyZXMpOworICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFdpbmRvd1Byb3h5Kj4gb3Bl
bkZvckJpbmRpbmdzKERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2lu
ZG93LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIGZlYXR1cmVzKTsKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxEb2N1bWVu
dCY+IG9wZW5Gb3JCaW5kaW5ncyhEb2N1bWVudCogcmVzcG9uc2libGVEb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHJlcGxhY2UpOwogCiAgICAgLy8gRklYTUU6IFdl
IHNob3VsZCByZW5hbWUgdGhpcyBhdCBzb21lIHBvaW50IGFuZCBnaXZlIGJhY2sgdGhlIG5hbWUg
J29wZW4nIHRvIHRoZSBIVE1MIHNwZWNpZmllZCBvbmVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwK
aW5kZXggOGUwNzdkZmZiOTA2MTE1NzM3ZDU1ODkyNjI5NTgxNDA4NmRiMWQwMS4uMmQ1YmFhZDhj
NjA2NDRkYTg5ZDEwN2ZkZGUxODI4Y2Q4YTQ5ZDgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRs
CkBAIC0xMDcsNyArMTA3LDcgQEAgdHlwZWRlZiAoCiAgICAgLy8gdGhhdCB0aGUgY2FsbGVyIGRv
Y3VtZW50IG1hdGNoZXMgdGhvc2Ugc2VtYW50aWNzLiBJdCBpcyBwb3NzaWJsZSB3ZSBzaG91bGQg
cmVwbGFjZSBpdCB3aXRoCiAgICAgLy8gdGhlIGV4aXN0aW5nICdpbmN1bWJlbnQgZG9jdW1lbnQn
IGNvbmNlcHQuCiAgICAgW0NFUmVhY3Rpb25zLCBDYWxsV2l0aD1SZXNwb25zaWJsZURvY3VtZW50
LCBJbXBsZW1lbnRlZEFzPW9wZW5Gb3JCaW5kaW5ncywgTWF5VGhyb3dFeGNlcHRpb25dIERvY3Vt
ZW50IG9wZW4ob3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUgPSAidGV4dC9odG1sIiwgb3B0aW9uYWwg
RE9NU3RyaW5nIHJlcGxhY2UgPSAiIik7Ci0gICAgW0NhbGxXaXRoPUFjdGl2ZVdpbmRvdyZGaXJz
dFdpbmRvdywgSW1wbGVtZW50ZWRBcz1vcGVuRm9yQmluZGluZ3MsIE1heVRocm93RXhjZXB0aW9u
XSBET01XaW5kb3cgb3BlbihVU1ZTdHJpbmcgdXJsLCBET01TdHJpbmcgbmFtZSwgRE9NU3RyaW5n
IGZlYXR1cmVzKTsKKyAgICBbQ2FsbFdpdGg9QWN0aXZlV2luZG93JkZpcnN0V2luZG93LCBJbXBs
ZW1lbnRlZEFzPW9wZW5Gb3JCaW5kaW5ncywgTWF5VGhyb3dFeGNlcHRpb25dIFdpbmRvd1Byb3h5
IG9wZW4oVVNWU3RyaW5nIHVybCwgRE9NU3RyaW5nIG5hbWUsIERPTVN0cmluZyBmZWF0dXJlcyk7
CiAgICAgW0NFUmVhY3Rpb25zLCBJbXBsZW1lbnRlZEFzPWNsb3NlRm9yQmluZGluZ3MsIE1heVRo
cm93RXhjZXB0aW9uXSB2b2lkIGNsb3NlKCk7CiAgICAgW0NFUmVhY3Rpb25zLCBDYWxsV2l0aD1S
ZXNwb25zaWJsZURvY3VtZW50LCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCB3cml0ZShET01TdHJp
bmcuLi4gdGV4dCk7CiAgICAgW0NFUmVhY3Rpb25zLCBDYWxsV2l0aD1SZXNwb25zaWJsZURvY3Vt
ZW50LCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCB3cml0ZWxuKERPTVN0cmluZy4uLiB0ZXh0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAwMjEwYjA4YTE4MjFkZWIwYzg5MDZjOWZm
MDgyYTQ2YWUzN2VhN2Q0Li4yM2M0ZDNlY2RkNDQxOGZjNDkzNTI5Y2E0NjY5MjA1NzYwZmIyY2Fh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xMDE0LDcgKzEwMTQsOCBAQCBFbGVt
ZW50KiBET01XaW5kb3c6OmZyYW1lRWxlbWVudCgpIGNvbnN0CiAKIHZvaWQgRE9NV2luZG93Ojpm
b2N1cyhET01XaW5kb3cmIGluY3VtYmVudFdpbmRvdykKIHsKLSAgICBmb2N1cyhvcGVuZXIoKSAm
JiBvcGVuZXIoKSAhPSB0aGlzICYmICZpbmN1bWJlbnRXaW5kb3cgPT0gb3BlbmVyKCkpOworICAg
IGF1dG8qIG9wZW5lciA9IHRoaXMtPm9wZW5lcigpOworICAgIGZvY3VzKG9wZW5lciAmJiBvcGVu
ZXIgIT0gc2VsZigpICYmIGluY3VtYmVudFdpbmRvdy5zZWxmKCkgPT0gb3BlbmVyKTsKIH0KIAog
dm9pZCBET01XaW5kb3c6OmZvY3VzKGJvb2wgYWxsb3dGb2N1cykKQEAgLTE0MTcsMjQgKzE0MTgs
MjQgQEAgdm9pZCBET01XaW5kb3c6OnNldERlZmF1bHRTdGF0dXMoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCiAgICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9kZWZh
dWx0U3RhdHVzKTsKIH0KIAotRE9NV2luZG93KiBET01XaW5kb3c6OnNlbGYoKSBjb25zdAorV2lu
ZG93UHJveHkqIERPTVdpbmRvdzo6c2VsZigpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBtX2ZyYW1lLT5kb2N1bWVudCgp
LT5kb21XaW5kb3coKTsKKyAgICByZXR1cm4gJm1fZnJhbWUtPndpbmRvd1Byb3h5KCk7CiB9CiAK
LURPTVdpbmRvdyogRE9NV2luZG93OjpvcGVuZXIoKSBjb25zdAorV2luZG93UHJveHkqIERPTVdp
bmRvdzo6b3BlbmVyKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgRnJhbWUqIG9wZW5lciA9IG1fZnJhbWUtPmxvYWRlcigpLm9wZW5l
cigpOwotICAgIGlmICghb3BlbmVyKQorICAgIGF1dG8qIG9wZW5lckZyYW1lID0gbV9mcmFtZS0+
bG9hZGVyKCkub3BlbmVyKCk7CisgICAgaWYgKCFvcGVuZXJGcmFtZSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICByZXR1cm4gb3BlbmVyLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKTsK
KyAgICByZXR1cm4gJm9wZW5lckZyYW1lLT53aW5kb3dQcm94eSgpOwogfQogCiB2b2lkIERPTVdp
bmRvdzo6ZGlzb3duT3BlbmVyKCkKQEAgLTE0NDMsMjggKzE0NDQsMjcgQEAgdm9pZCBET01XaW5k
b3c6OmRpc293bk9wZW5lcigpCiAgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLnNldE9wZW5lcihu
dWxscHRyKTsKIH0KIAotRE9NV2luZG93KiBET01XaW5kb3c6OnBhcmVudCgpIGNvbnN0CitXaW5k
b3dQcm94eSogRE9NV2luZG93OjpwYXJlbnQoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBGcmFtZSogcGFyZW50ID0gbV9mcmFtZS0+
dHJlZSgpLnBhcmVudCgpOwotICAgIGlmIChwYXJlbnQpCi0gICAgICAgIHJldHVybiBwYXJlbnQt
PmRvY3VtZW50KCktPmRvbVdpbmRvdygpOworICAgIGF1dG8qIHBhcmVudEZyYW1lID0gbV9mcmFt
ZS0+dHJlZSgpLnBhcmVudCgpOworICAgIGlmIChwYXJlbnRGcmFtZSkKKyAgICAgICAgcmV0dXJu
ICZwYXJlbnRGcmFtZS0+d2luZG93UHJveHkoKTsKIAotICAgIHJldHVybiBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5kb21XaW5kb3coKTsKKyAgICByZXR1cm4gJm1fZnJhbWUtPndpbmRvd1Byb3h5KCk7
CiB9CiAKLURPTVdpbmRvdyogRE9NV2luZG93Ojp0b3AoKSBjb25zdAorV2luZG93UHJveHkqIERP
TVdpbmRvdzo6dG9wKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKLSAgICBpZiAo
IXBhZ2UpCisgICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgcmV0dXJuIG1fZnJhbWUtPnRyZWUoKS50b3AoKS5kb2N1bWVudCgpLT5kb21XaW5k
b3coKTsKKyAgICByZXR1cm4gJm1fZnJhbWUtPnRyZWUoKS50b3AoKS53aW5kb3dQcm94eSgpOwog
fQogCiBTdHJpbmcgRE9NV2luZG93OjpvcmlnaW4oKSBjb25zdApAQCAtMjMwMiw3ICsyMzAyLDcg
QEAgUmVmUHRyPEZyYW1lPiBET01XaW5kb3c6OmNyZWF0ZVdpbmRvdyhjb25zdCBTdHJpbmcmIHVy
bFN0cmluZywgY29uc3QgQXRvbWljU3RyaW4KICAgICByZXR1cm4gd2luZG93RmVhdHVyZXMubm9v
cGVuZXIgPyBudWxscHRyIDogbmV3RnJhbWU7CiB9CiAKLVJlZlB0cjxET01XaW5kb3c+IERPTVdp
bmRvdzo6b3BlbihET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRE9NV2luZG93JiBmaXJzdFdpbmRv
dywgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluZyYgZnJhbWVOYW1l
LCBjb25zdCBTdHJpbmcmIHdpbmRvd0ZlYXR1cmVzU3RyaW5nKQorV2luZG93UHJveHkqIERPTVdp
bmRvdzo6b3BlbihET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRE9NV2luZG93JiBmaXJzdFdpbmRv
dywgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluZyYgZnJhbWVOYW1l
LCBjb25zdCBTdHJpbmcmIHdpbmRvd0ZlYXR1cmVzU3RyaW5nKQogewogICAgIGlmICghaXNDdXJy
ZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMjM1
MywyMSArMjM1MywyMSBAQCBSZWZQdHI8RE9NV2luZG93PiBET01XaW5kb3c6Om9wZW4oRE9NV2lu
ZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RXaW5kbwogICAgICAgICBVUkwgY29t
cGxldGVkVVJMID0gZmlyc3RGcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsU3RyaW5n
KTsKIAogICAgICAgICBpZiAodGFyZ2V0RnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5p
c0luc2VjdXJlU2NyaXB0QWNjZXNzKGFjdGl2ZVdpbmRvdywgY29tcGxldGVkVVJMKSkKLSAgICAg
ICAgICAgIHJldHVybiB0YXJnZXRGcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCk7CisgICAg
ICAgICAgICByZXR1cm4gJnRhcmdldEZyYW1lLT53aW5kb3dQcm94eSgpOwogCiAgICAgICAgIGlm
ICh1cmxTdHJpbmcuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIHRhcmdldEZyYW1lLT5k
b2N1bWVudCgpLT5kb21XaW5kb3coKTsKKyAgICAgICAgICAgIHJldHVybiAmdGFyZ2V0RnJhbWUt
PndpbmRvd1Byb3h5KCk7CiAKICAgICAgICAgLy8gRm9yIHdoYXRldmVyIHJlYXNvbiwgRmlyZWZv
eCB1c2VzIHRoZSBmaXJzdCB3aW5kb3cgcmF0aGVyIHRoYW4gdGhlIGFjdGl2ZSB3aW5kb3cgdG8K
ICAgICAgICAgLy8gZGV0ZXJtaW5lIHRoZSBvdXRnb2luZyByZWZlcnJlci4gV2UgcmVwbGljYXRl
IHRoYXQgYmVoYXZpb3IgaGVyZS4KICAgICAgICAgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnkgPSBV
c2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkgPyBMb2NrSGlzdG9y
eTo6Tm8gOiBMb2NrSGlzdG9yeTo6WWVzOwogICAgICAgICB0YXJnZXRGcmFtZS0+bmF2aWdhdGlv
blNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoKmFjdGl2ZURvY3VtZW50LCBhY3Rp
dmVEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgY29tcGxldGVkVVJMLCBmaXJzdEZyYW1lLT5s
b2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCksCiAgICAgICAgICAgICBsb2NrSGlzdG9yeSwgTG9j
a0JhY2tGb3J3YXJkTGlzdDo6Tm8pOwotICAgICAgICByZXR1cm4gdGFyZ2V0RnJhbWUtPmRvY3Vt
ZW50KCktPmRvbVdpbmRvdygpOworICAgICAgICByZXR1cm4gJnRhcmdldEZyYW1lLT53aW5kb3dQ
cm94eSgpOwogICAgIH0KIAotICAgIFJlZlB0cjxGcmFtZT4gcmVzdWx0ID0gY3JlYXRlV2luZG93
KHVybFN0cmluZywgZnJhbWVOYW1lLCBwYXJzZVdpbmRvd0ZlYXR1cmVzKHdpbmRvd0ZlYXR1cmVz
U3RyaW5nKSwgYWN0aXZlV2luZG93LCAqZmlyc3RGcmFtZSwgKm1fZnJhbWUpOwotICAgIHJldHVy
biByZXN1bHQgPyByZXN1bHQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpIDogbnVsbHB0cjsKKyAg
ICBhdXRvIG5ld0ZyYW1lID0gY3JlYXRlV2luZG93KHVybFN0cmluZywgZnJhbWVOYW1lLCBwYXJz
ZVdpbmRvd0ZlYXR1cmVzKHdpbmRvd0ZlYXR1cmVzU3RyaW5nKSwgYWN0aXZlV2luZG93LCAqZmly
c3RGcmFtZSwgKm1fZnJhbWUpOworICAgIHJldHVybiBuZXdGcmFtZSA/ICZuZXdGcmFtZS0+d2lu
ZG93UHJveHkoKSA6IG51bGxwdHI7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpzaG93TW9kYWxEaWFs
b2coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGlhbG9nRmVhdHVyZXNT
dHJpbmcsIERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93LCBj
b25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQgKERPTVdpbmRvdyYpPiYgcHJlcGFyZURpYWxvZ0Z1bmN0
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggNDk5YTU1OGQyZWUxOGQ1NDc1ZmQwODI5
NDVkNjZjMzg4OGI5OTYyOC4uOWZjYThjMjc1MDcwYmUwNDA5NTg5MGY2NGQ5ODM3ZDQyZGJiOWY3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0xNTcsNyArMTU3LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcHJpbnQoKTsKICAgICB2b2lkIHN0b3AoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JU
IFJlZlB0cjxET01XaW5kb3c+IG9wZW4oRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRv
dyYgZmlyc3RXaW5kb3csIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJp
bmcmIGZyYW1lTmFtZSwgY29uc3QgU3RyaW5nJiB3aW5kb3dGZWF0dXJlc1N0cmluZyk7CisgICAg
V0VCQ09SRV9FWFBPUlQgV2luZG93UHJveHkqIG9wZW4oRE9NV2luZG93JiBhY3RpdmVXaW5kb3cs
IERPTVdpbmRvdyYgZmlyc3RXaW5kb3csIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBB
dG9taWNTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgU3RyaW5nJiB3aW5kb3dGZWF0dXJlc1N0cmlu
Zyk7CiAKICAgICB2b2lkIHNob3dNb2RhbERpYWxvZyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywg
Y29uc3QgU3RyaW5nJiBkaWFsb2dGZWF0dXJlc1N0cmluZywgRE9NV2luZG93JiBhY3RpdmVXaW5k
b3csIERPTVdpbmRvdyYgZmlyc3RXaW5kb3csIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChET01X
aW5kb3cmKT4mIHByZXBhcmVEaWFsb2dGdW5jdGlvbik7CiAKQEAgLTE5MiwxMiArMTkyLDEyIEBA
IHB1YmxpYzoKICAgICBTdHJpbmcgZGVmYXVsdFN0YXR1cygpIGNvbnN0OwogICAgIHZvaWQgc2V0
RGVmYXVsdFN0YXR1cyhjb25zdCBTdHJpbmcmKTsKIAotICAgIERPTVdpbmRvdyogc2VsZigpIGNv
bnN0OworICAgIFdpbmRvd1Byb3h5KiBzZWxmKCkgY29uc3Q7CiAKLSAgICBET01XaW5kb3cqIG9w
ZW5lcigpIGNvbnN0OworICAgIFdpbmRvd1Byb3h5KiBvcGVuZXIoKSBjb25zdDsKICAgICB2b2lk
IGRpc293bk9wZW5lcigpOwotICAgIERPTVdpbmRvdyogcGFyZW50KCkgY29uc3Q7Ci0gICAgRE9N
V2luZG93KiB0b3AoKSBjb25zdDsKKyAgICBXaW5kb3dQcm94eSogcGFyZW50KCkgY29uc3Q7Cisg
ICAgV2luZG93UHJveHkqIHRvcCgpIGNvbnN0OwogCiAgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyOjpmcmFtZSgpOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA0NmViYzE1NjFmYWViZWY3MzBjY2I5YmMzZmE1
MmMwNGYwY2RkNjRlLi5lNjk2MTc4ZWFjNjc3ZjU1YzlmMmQzMjEyNGMyZTAwNGZmZGJkYTY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC00OSw4ICs0OSw4IEBAIHR5cGVkZWYgVVNW
U3RyaW5nIENTU09NU3RyaW5nOwogICAgIFByaW1hcnlHbG9iYWwsCiBdIGludGVyZmFjZSBET01X
aW5kb3cgOiBFdmVudFRhcmdldCB7CiAgICAgLy8gVGhlIGN1cnJlbnQgYnJvd3NpbmcgY29udGV4
dC4KLSAgICBbRG9Ob3RDaGVja1NlY3VyaXR5LCBVbmZvcmdlYWJsZSwgSW1wbGVtZW50ZWRBcz1z
ZWxmXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NV2luZG93IHdpbmRvdzsKLSAgICBbUmVwbGFjZWFi
bGUsIERvTm90Q2hlY2tTZWN1cml0eU9uR2V0dGVyXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NV2lu
ZG93IHNlbGY7CisgICAgW0RvTm90Q2hlY2tTZWN1cml0eSwgVW5mb3JnZWFibGUsIEltcGxlbWVu
dGVkQXM9c2VsZl0gcmVhZG9ubHkgYXR0cmlidXRlIFdpbmRvd1Byb3h5IHdpbmRvdzsKKyAgICBb
UmVwbGFjZWFibGUsIERvTm90Q2hlY2tTZWN1cml0eU9uR2V0dGVyXSByZWFkb25seSBhdHRyaWJ1
dGUgV2luZG93UHJveHkgc2VsZjsKICAgICBbVW5mb3JnZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBEb2N1bWVudCBkb2N1bWVudDsKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAg
W0RvTm90Q2hlY2tTZWN1cml0eSwgUHV0Rm9yd2FyZHM9aHJlZiwgVW5mb3JnZWFibGVdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBMb2NhdGlvbj8gbG9jYXRpb247IC8vIEZJWE1FOiBTaG91bGQgbm90IGJl
IG51bGxhYmxlLgpAQCAtNzAsMTMgKzcwLDEzIEBAIHR5cGVkZWYgVVNWU3RyaW5nIENTU09NU3Ry
aW5nOwogICAgIFtEb05vdENoZWNrU2VjdXJpdHksIEZvcndhcmREZWNsYXJlSW5IZWFkZXJdIHZv
aWQgYmx1cigpOwogCiAgICAgLy8gT3RoZXIgYnJvd3NpbmcgY29udGV4dHMuCi0gICAgW1JlcGxh
Y2VhYmxlLCBEb05vdENoZWNrU2VjdXJpdHlPbkdldHRlciwgSW1wbGVtZW50ZWRBcz1zZWxmXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NV2luZG93IGZyYW1lczsKKyAgICBbUmVwbGFjZWFibGUsIERv
Tm90Q2hlY2tTZWN1cml0eU9uR2V0dGVyLCBJbXBsZW1lbnRlZEFzPXNlbGZdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBXaW5kb3dQcm94eSBmcmFtZXM7CiAgICAgW1JlcGxhY2VhYmxlLCBEb05vdENoZWNr
U2VjdXJpdHlPbkdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
OwotICAgIFtEb05vdENoZWNrU2VjdXJpdHlPbkdldHRlciwgVW5mb3JnZWFibGVdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01XaW5kb3c/IHRvcDsKLSAgICBbRG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0
ZXIsIEN1c3RvbVNldHRlcl0gYXR0cmlidXRlIERPTVdpbmRvdz8gb3BlbmVyOwotICAgIFtSZXBs
YWNlYWJsZSwgRG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01XaW5kb3c/IHBhcmVudDsKKyAgICBbRG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0ZXIsIFVuZm9y
Z2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgV2luZG93UHJveHk/IHRvcDsKKyAgICBbRG9Ob3RD
aGVja1NlY3VyaXR5T25HZXR0ZXIsIEN1c3RvbVNldHRlcl0gYXR0cmlidXRlIFdpbmRvd1Byb3h5
PyBvcGVuZXI7CisgICAgW1JlcGxhY2VhYmxlLCBEb05vdENoZWNrU2VjdXJpdHlPbkdldHRlcl0g
cmVhZG9ubHkgYXR0cmlidXRlIFdpbmRvd1Byb3h5PyBwYXJlbnQ7CiAgICAgW0NoZWNrU2VjdXJp
dHlGb3JOb2RlXSByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudD8gZnJhbWVFbGVtZW50OwotICAg
IFtDYWxsV2l0aD1BY3RpdmVXaW5kb3cmRmlyc3RXaW5kb3ddIERPTVdpbmRvdz8gb3BlbihvcHRp
b25hbCBVU1ZTdHJpbmcgdXJsID0gImFib3V0OmJsYW5rIiwgb3B0aW9uYWwgRE9NU3RyaW5nIHRh
cmdldCA9ICJfYmxhbmsiLCBvcHRpb25hbCBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0
cmluZyBmZWF0dXJlcyA9ICIiKTsKKyAgICBbQ2FsbFdpdGg9QWN0aXZlV2luZG93JkZpcnN0V2lu
ZG93XSBXaW5kb3dQcm94eT8gb3BlbihvcHRpb25hbCBVU1ZTdHJpbmcgdXJsID0gImFib3V0OmJs
YW5rIiwgb3B0aW9uYWwgRE9NU3RyaW5nIHRhcmdldCA9ICJfYmxhbmsiLCBvcHRpb25hbCBbVHJl
YXROdWxsQXM9RW1wdHlTdHJpbmddIERPTVN0cmluZyBmZWF0dXJlcyA9ICIiKTsKIAogICAgIC8v
IFRoZSB1c2VyIGFnZW50LgogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOYXZpZ2F0b3IgbmF2aWdh
dG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGUzMTA1YjhmNzU4YjVk
NmNmOGEzNTgwZmQwODk0MjcxNjQxOTEzMDEuLmFjZTAxMjViYmQ3OTQ0N2ZhNTlkYTk4MWVlMzgw
MjZhNTBmNDdiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE1OSw5
ICsxNTksNyBAQAogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiVm9p
ZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgotI2lmIEVOQUJM
RShXRUJHTCkKLSNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKLSNlbmRpZgorI2lu
Y2x1ZGUgIldpbmRvd1Byb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVk
ZSAiV3JpdGluZ0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCkBAIC0y
MDUsNiArMjAzLDEwIEBACiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoV0VCR0wpCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisjZW5kaWYK
KwogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogI2luY2x1ZGUgIkRPTVdpbmRvd1NwZWVj
aFN5bnRoZXNpcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmgi
CkBAIC0yMzA1LDEzICsyMzA3LDEzIEBAIHVuc2lnbmVkIEludGVybmFsczo6cmVmZXJlbmNpbmdO
b2RlQ291bnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogICAgIHJldHVybiBkb2N1
bWVudC5yZWZlcmVuY2luZ05vZGVDb3VudCgpOwogfQogCi1SZWZQdHI8RE9NV2luZG93PiBJbnRl
cm5hbHM6Om9wZW5EdW1teUluc3BlY3RvckZyb250ZW5kKGNvbnN0IFN0cmluZyYgdXJsKQorV2lu
ZG93UHJveHkqIEludGVybmFsczo6b3BlbkR1bW15SW5zcGVjdG9yRnJvbnRlbmQoY29uc3QgU3Ry
aW5nJiB1cmwpCiB7CiAgICAgYXV0byogaW5zcGVjdGVkUGFnZSA9IGNvbnRleHREb2N1bWVudCgp
LT5mcmFtZSgpLT5wYWdlKCk7CiAgICAgYXV0byogd2luZG93ID0gaW5zcGVjdGVkUGFnZS0+bWFp
bkZyYW1lKCkuZG9jdW1lbnQoKS0+ZG9tV2luZG93KCk7Ci0gICAgYXV0byBmcm9udGVuZFdpbmRv
dyA9IHdpbmRvdy0+b3Blbigqd2luZG93LCAqd2luZG93LCB1cmwsICIiLCAiIik7Ci0gICAgbV9p
bnNwZWN0b3JGcm9udGVuZCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yU3R1YkZyb250ZW5k
PigqaW5zcGVjdGVkUGFnZSwgZnJvbnRlbmRXaW5kb3cuY29weVJlZigpKTsKLSAgICByZXR1cm4g
ZnJvbnRlbmRXaW5kb3c7CisgICAgYXV0byogZnJvbnRlbmRXaW5kb3dQcm94eSA9IHdpbmRvdy0+
b3Blbigqd2luZG93LCAqd2luZG93LCB1cmwsICIiLCAiIik7CisgICAgbV9pbnNwZWN0b3JGcm9u
dGVuZCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yU3R1YkZyb250ZW5kPigqaW5zcGVjdGVk
UGFnZSwgZG93bmNhc3Q8RE9NV2luZG93Pihmcm9udGVuZFdpbmRvd1Byb3h5LT53aW5kb3coKSkp
OworICAgIHJldHVybiBmcm9udGVuZFdpbmRvd1Byb3h5OwogfQogCiB2b2lkIEludGVybmFsczo6
Y2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IGMwNmFjOTBhZDYzYjY4ZWIyZTQ4Y2E4ODBlN2JlZWFiYTIzNTQzYWMuLjM2YTA1ZmFl
NWQ2ZjViODZmMGM2NWNjOTY2NjNiNDZiOGUzZGM4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtMzQ5LDcgKzM0OSw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBudW1iZXJP
ZkxpdmVEb2N1bWVudHMoKSBjb25zdDsKICAgICB1bnNpZ25lZCByZWZlcmVuY2luZ05vZGVDb3Vu
dChjb25zdCBEb2N1bWVudCYpIGNvbnN0OwogCi0gICAgUmVmUHRyPERPTVdpbmRvdz4gb3BlbkR1
bW15SW5zcGVjdG9yRnJvbnRlbmQoY29uc3QgU3RyaW5nJiB1cmwpOworICAgIFdpbmRvd1Byb3h5
KiBvcGVuRHVtbXlJbnNwZWN0b3JGcm9udGVuZChjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9p
ZCBjbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQoKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRJbnNwZWN0b3JJc1VuZGVyVGVzdChib29sKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCmluZGV4IDg1ZWNmMzBkOTdkNjhmMWJhMzc2OWNkOGY4NmM2YmZkZjViYjFiNWQuLjEy
ZTFkODI3MTJkNjI0ODU2ZTdjY2Y1ZjZhMTU3YmIyZjdjZmY0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKQEAgLTMxNSw3ICszMTUsNyBAQCBlbnVtIEV2ZW50VGhyb3R0bGlu
Z0JlaGF2aW9yIHsKICAgICB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZU5vZGVzKCk7CiAgICAg
dW5zaWduZWQgbG9uZyBudW1iZXJPZkxpdmVEb2N1bWVudHMoKTsKICAgICB1bnNpZ25lZCBsb25n
IHJlZmVyZW5jaW5nTm9kZUNvdW50KERvY3VtZW50IGRvY3VtZW50KTsKLSAgICBET01XaW5kb3c/
IG9wZW5EdW1teUluc3BlY3RvckZyb250ZW5kKERPTVN0cmluZyB1cmwpOworICAgIFdpbmRvd1By
b3h5PyBvcGVuRHVtbXlJbnNwZWN0b3JGcm9udGVuZChET01TdHJpbmcgdXJsKTsKICAgICB2b2lk
IGNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
dm9pZCBzZXRJbnNwZWN0b3JJc1VuZGVyVGVzdChib29sZWFuIGlzVW5kZXJUZXN0KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338463</attachid>
            <date>2018-04-20 14:45:21 -0700</date>
            <delta_ts>2018-04-20 16:48:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184820-20180420144520.patch</filename>
            <type>text/plain</type>
            <size>20132</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTlhMmJhY2FjODBhYzVm
ZGYyZDE5ZmMxM2Q2ZDE3MGFlMDk3MWM0YS4uODcyYWQxMmYwY2FkNWE1NGNiZDJkZDJhYjkwYmU5
MjFhYzVhMGRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTA0LTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdpbmRvd1Byb3h5IGlu
IERPTVdpbmRvdy5pZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4NDgyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSBXaW5kb3dQcm94eSBpbiBET01XaW5kb3cuaWRsIHRvIG1hdGNoIHRoZSBzcGVj
aWZpY2F0aW9uIG1vcmUgY2xvc2VseS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2luZG93
UHJveHkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXaW5kb3dQcm94eTo6d2luZG93IGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XaW5kb3dQcm94eS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtOgorICAgICAgICAoTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6
CisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmZvY3VzKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2VsZiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
Om9wZW5lciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBhcmVudCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnRvcCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6Om9wZW4pOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6Cisg
ICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6b3BlbkR1bW15SW5zcGVjdG9yRnJv
bnRlbmQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsOgorCiAyMDE4LTA0LTIwICBKYXZpZXIgRmVybmFuZGV6ICA8amZlcm5h
bmRlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVwZGF0ZSBBbGlnbm1lbnQgc2hvcnRoYW5kcyB0
byB0aGUgc3BlYyBub3cgdGhhdCB0aGV5IGFyZSBub3QgYW1iaWd1b3VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dpbmRvd1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dpbmRvd1Byb3h5LmgKaW5kZXggZDgxNjE1YjY3NmQ1MGU1MGMzZmU0
MWI5OWM1MTJkYWQzMWMwZDkxZi4uMTg1YTU0NTc4YmY4MTc3Y2ZjYTE3NWM2ZTRiMTFmNDc0OGE0
MDk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2luZG93UHJveHkuaApAQCAt
NjksOCArNjksOSBAQCBwcml2YXRlOgogCiAvLyBKU1dpbmRvd1Byb3h5IGlzIGEgbGl0dGxlIG9k
ZCBpbiB0aGF0IGl0J3Mgbm90IGEgdHJhZGl0aW9uYWwgd3JhcHBlciBhbmQgaGFzIG5vIGJhY2sg
cG9pbnRlci4KIC8vIEl0IGlzLCBob3dldmVyLCBzdHJvbmdseSBvd25lZCBieSBBYnN0cmFjdEZy
YW1lIHZpYSBpdHMgV2luZG93UHJveHksIHNvIHdlIGNhbiBnZXQgb25lIGZyb20gYSBXaW5kb3dQ
cm94eS4KLUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgV2luZG93UHJveHkmKTsK
K1dFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgV2luZG93
UHJveHkmKTsKIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IFdpbmRvd1Byb3h5KiB3aW5kb3dQcm94eSkgeyByZXR1cm4gd2luZG93UHJveHkgPyB0b0pTKHN0
YXRlLCAqd2luZG93UHJveHkpIDogSlNDOjpqc051bGwoKTsgfQoraW5saW5lIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgY29uc3QgUmVmUHRyPFdpbmRvd1Byb3h5PiYg
d2luZG93UHJveHkpIHsgcmV0dXJuIHRvSlMoc3RhdGUsIHdpbmRvd1Byb3h5LmdldCgpKTsgfQog
CiBKU1dpbmRvd1Byb3h5JiB0b0pTV2luZG93UHJveHkoV2luZG93UHJveHkmLCBET01XcmFwcGVy
V29ybGQmKTsKIGlubGluZSBKU1dpbmRvd1Byb3h5KiB0b0pTV2luZG93UHJveHkoV2luZG93UHJv
eHkqIHdpbmRvd1Byb3h5LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKSB7IHJldHVybiB3aW5kb3dQ
cm94eSA/ICZ0b0pTV2luZG93UHJveHkoKndpbmRvd1Byb3h5LCB3b3JsZCkgOiBudWxscHRyOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKaW5kZXggZDMxZGZk
YjQ1MmE0OTVkZDZlYzExZGQ3MDhlNDg2ODYxNzkwMDhhMS4uOGU4ZjUxMzUzZWQxZjdhMGI1YjNm
OTMwNGNmODFjOGFhY2I3NWI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2luZG93UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRv
d1Byb3h5LmNwcApAQCAtMTY1LDQgKzE2NSwxOSBAQCB2b2lkIFdpbmRvd1Byb3h5OjphdHRhY2hE
ZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKiBkZWJ1Z2dlcikKICAgICAgICAgd2luZG93UHJveHktPmF0
dGFjaERlYnVnZ2VyKGRlYnVnZ2VyKTsKIH0KIAorQWJzdHJhY3RET01XaW5kb3cqIFdpbmRvd1By
b3h5Ojp3aW5kb3coKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lLndpbmRvdygpOworfQor
Cit2b2lkIFdpbmRvd1Byb3h5OjpyZWYoKQoreworICAgIG1fZnJhbWUucmVmKCk7Cit9CisKK3Zv
aWQgV2luZG93UHJveHk6OmRlcmVmKCkKK3sKKyAgICBtX2ZyYW1lLmRlcmVmKCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dpbmRvd1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94
eS5oCmluZGV4IGZjM2VjMDFhMGM2Njg1N2JmM2EyNjBmNThlZTk1NGUzNDA2ZDQ1YmIuLjc3NzIy
OTgzYjBhMzIyY2QwNjdkZmI1MDYyZGEwNzc3YTY4ZTY1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2luZG93UHJveHkuaApAQCAtNzUsNiArNzUsMTEgQEAgcHVibGljOgogICAgIC8v
IERlYnVnZ2VyIGNhbiBiZSBudWxscHRyIHRvIGRldGFjaCBhbnkgZXhpc3RpbmcgRGVidWdnZXIu
CiAgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKik7IC8vIEF0dGFjaGVzL2Rl
dGFjaGVzIGluIGFsbCB3b3JsZHMvd2luZG93IHByb3hpZXMuCiAKKyAgICBXRUJDT1JFX0VYUE9S
VCBBYnN0cmFjdERPTVdpbmRvdyogd2luZG93KCkgY29uc3Q7CisKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlZigpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVyZWYoKTsKKwogcHJpdmF0
ZToKICAgICBKU1dpbmRvd1Byb3h5JiBjcmVhdGVKU1dpbmRvd1Byb3h5KERPTVdyYXBwZXJXb3Js
ZCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIEpTV2luZG93UHJveHkmIGNyZWF0ZUpTV2luZG93UHJv
eHlXaXRoSW5pdGlhbGl6ZWRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDdlYTM4
OTUwOTA1MjdhY2M3NmE0ZjkwOWVjZDhhN2VmOTk3MjZjZTAuLjYyNmE5ZjBiMmQ2ZjA0M2NmOTJi
ZGYzMmYyOTYyODkyNjExNmU1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00MjIsNiArNDIyLDcgQEAgc3ViIEFkZFRv
SW5jbHVkZXNGb3JJRExUeXBlCiAgICAgfQogCiAgICAgaWYgKCR0eXBlLT5uYW1lIGVxICJXaW5k
b3dQcm94eSIpIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiV2luZG93UHJveHkuaCIsICRpbmNs
dWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNXaW5kb3dQ
cm94eS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwogICAgICAgICBBZGRUb0luY2x1
ZGVzKCJKU0RPTUNvbnZlcnRXaW5kb3dQcm94eS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9u
YWwpOwogICAgICAgICByZXR1cm47CkBAIC02NTUzLDYgKzY1NTQsNyBAQCBzdWIgTmF0aXZlVG9K
U1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBl
cSAiSlNPTiI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZl
ciI7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIldpbmRvd1Byb3h5IjsKICAgICAK
ICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDM0YmI4MzI0YmE5
ZmNkNDlkZGNhZDJmMGQ0NjQ4NDRhMzEzOWFlMjcuLjg2ZjgzZTcyNjQyM2FjNDU0MzVkMzJiZWYw
NDk0ZTk5NDllMDU0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjU5Myw3ICsyNTkz
LDcgQEAgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBEb2N1bWVudDo6c2NyaXB0YWJsZURvY3Vt
ZW50UGFyc2VyKCkgY29uc3QKICAgICByZXR1cm4gcGFyc2VyKCkgPyBwYXJzZXIoKS0+YXNTY3Jp
cHRhYmxlRG9jdW1lbnRQYXJzZXIoKSA6IG51bGxwdHI7CiB9CiAKLUV4Y2VwdGlvbk9yPFJlZlB0
cjxET01XaW5kb3c+PiBEb2N1bWVudDo6b3BlbkZvckJpbmRpbmdzKERPTVdpbmRvdyYgYWN0aXZl
V2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGZlYXR1cmVzKQorRXhjZXB0aW9uT3I8
UmVmUHRyPFdpbmRvd1Byb3h5Pj4gRG9jdW1lbnQ6Om9wZW5Gb3JCaW5kaW5ncyhET01XaW5kb3cm
IGFjdGl2ZVdpbmRvdywgRE9NV2luZG93JiBmaXJzdFdpbmRvdywgY29uc3QgU3RyaW5nJiB1cmws
IGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBmZWF0dXJlcykKIHsKICAg
ICBpZiAoIW1fZG9tV2luZG93KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDdiN2NkMjExMTA2YjNjYmMzMDI1
NTdiZDM3ZTk2MjU3OTdhNzM5OTkuLmE0ZmIwMmY5ZTFiY2JkNDAwYjBjYzg2NTJhYmQ0MDRmMDFj
NDU5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xODUsNiArMTg1LDcgQEAgY2xhc3MgV2Vi
QW5pbWF0aW9uOwogY2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDsKIGNsYXNzIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDsKIGNsYXNzIFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ7CitjbGFzcyBXaW5k
b3dQcm94eTsKIGNsYXNzIFhQYXRoRXZhbHVhdG9yOwogY2xhc3MgWFBhdGhFeHByZXNzaW9uOwog
Y2xhc3MgWFBhdGhOU1Jlc29sdmVyOwpAQCAtNjE5LDcgKzYyMCw3IEBAIHB1YmxpYzoKICAgICAK
ICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudExvYWRlciogbG9hZGVyKCkgY29uc3Q7CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxSZWZQdHI8RE9NV2luZG93Pj4gb3BlbkZvckJp
bmRpbmdzKERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93LCBj
b25zdCBTdHJpbmcmIHVybCwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IGZlYXR1cmVzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxSZWZQdHI8V2luZG93
UHJveHk+PiBvcGVuRm9yQmluZGluZ3MoRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRv
dyYgZmlyc3RXaW5kb3csIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgZmVhdHVyZXMpOwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlv
bk9yPERvY3VtZW50Jj4gb3BlbkZvckJpbmRpbmdzKERvY3VtZW50KiByZXNwb25zaWJsZURvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcmVwbGFjZSk7CiAKICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIHJlbmFtZSB0aGlzIGF0IHNvbWUgcG9pbnQgYW5kIGdpdmUgYmFj
ayB0aGUgbmFtZSAnb3BlbicgdG8gdGhlIEhUTUwgc3BlY2lmaWVkIG9uZXMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmlkbAppbmRleCA4ZTA3N2RmZmI5MDYxMTU3MzdkNTU4OTI2Mjk1ODE0MDg2ZGIxZDAx
Li4yZDViYWFkOGM2MDY0NGRhODlkMTA3ZmRkZTE4MjhjZDhhNDlkODJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwKQEAgLTEwNyw3ICsxMDcsNyBAQCB0eXBlZGVmICgKICAgICAvLyB0aGF0IHRo
ZSBjYWxsZXIgZG9jdW1lbnQgbWF0Y2hlcyB0aG9zZSBzZW1hbnRpY3MuIEl0IGlzIHBvc3NpYmxl
IHdlIHNob3VsZCByZXBsYWNlIGl0IHdpdGgKICAgICAvLyB0aGUgZXhpc3RpbmcgJ2luY3VtYmVu
dCBkb2N1bWVudCcgY29uY2VwdC4KICAgICBbQ0VSZWFjdGlvbnMsIENhbGxXaXRoPVJlc3BvbnNp
YmxlRG9jdW1lbnQsIEltcGxlbWVudGVkQXM9b3BlbkZvckJpbmRpbmdzLCBNYXlUaHJvd0V4Y2Vw
dGlvbl0gRG9jdW1lbnQgb3BlbihvcHRpb25hbCBET01TdHJpbmcgdHlwZSA9ICJ0ZXh0L2h0bWwi
LCBvcHRpb25hbCBET01TdHJpbmcgcmVwbGFjZSA9ICIiKTsKLSAgICBbQ2FsbFdpdGg9QWN0aXZl
V2luZG93JkZpcnN0V2luZG93LCBJbXBsZW1lbnRlZEFzPW9wZW5Gb3JCaW5kaW5ncywgTWF5VGhy
b3dFeGNlcHRpb25dIERPTVdpbmRvdyBvcGVuKFVTVlN0cmluZyB1cmwsIERPTVN0cmluZyBuYW1l
LCBET01TdHJpbmcgZmVhdHVyZXMpOworICAgIFtDYWxsV2l0aD1BY3RpdmVXaW5kb3cmRmlyc3RX
aW5kb3csIEltcGxlbWVudGVkQXM9b3BlbkZvckJpbmRpbmdzLCBNYXlUaHJvd0V4Y2VwdGlvbl0g
V2luZG93UHJveHkgb3BlbihVU1ZTdHJpbmcgdXJsLCBET01TdHJpbmcgbmFtZSwgRE9NU3RyaW5n
IGZlYXR1cmVzKTsKICAgICBbQ0VSZWFjdGlvbnMsIEltcGxlbWVudGVkQXM9Y2xvc2VGb3JCaW5k
aW5ncywgTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgY2xvc2UoKTsKICAgICBbQ0VSZWFjdGlvbnMs
IENhbGxXaXRoPVJlc3BvbnNpYmxlRG9jdW1lbnQsIE1heVRocm93RXhjZXB0aW9uXSB2b2lkIHdy
aXRlKERPTVN0cmluZy4uLiB0ZXh0KTsKICAgICBbQ0VSZWFjdGlvbnMsIENhbGxXaXRoPVJlc3Bv
bnNpYmxlRG9jdW1lbnQsIE1heVRocm93RXhjZXB0aW9uXSB2b2lkIHdyaXRlbG4oRE9NU3RyaW5n
Li4uIHRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDAyMTBiMDhhMTgyMWRl
YjBjODkwNmM5ZmYwODJhNDZhZTM3ZWE3ZDQuLmZiMzc2NWNlNjM2OTU1MzUxMGU4YWUzNDVhMmE4
Yjc4ZWZjMTBlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTEwNiw2ICsxMDYs
NyBAQAogI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMu
aCIKICNpbmNsdWRlICJXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCIKKyNpbmNsdWRlICJX
aW5kb3dQcm94eS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFjay5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KICNp
bmNsdWRlIDxhbGdvcml0aG0+CkBAIC0xMDE0LDcgKzEwMTUsOCBAQCBFbGVtZW50KiBET01XaW5k
b3c6OmZyYW1lRWxlbWVudCgpIGNvbnN0CiAKIHZvaWQgRE9NV2luZG93Ojpmb2N1cyhET01XaW5k
b3cmIGluY3VtYmVudFdpbmRvdykKIHsKLSAgICBmb2N1cyhvcGVuZXIoKSAmJiBvcGVuZXIoKSAh
PSB0aGlzICYmICZpbmN1bWJlbnRXaW5kb3cgPT0gb3BlbmVyKCkpOworICAgIGF1dG8qIG9wZW5l
ciA9IHRoaXMtPm9wZW5lcigpOworICAgIGZvY3VzKG9wZW5lciAmJiBvcGVuZXIgIT0gc2VsZigp
ICYmIGluY3VtYmVudFdpbmRvdy5zZWxmKCkgPT0gb3BlbmVyKTsKIH0KIAogdm9pZCBET01XaW5k
b3c6OmZvY3VzKGJvb2wgYWxsb3dGb2N1cykKQEAgLTE0MTcsMjQgKzE0MTksMjQgQEAgdm9pZCBE
T01XaW5kb3c6OnNldERlZmF1bHRTdGF0dXMoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgcGFn
ZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9kZWZhdWx0U3RhdHVzKTsK
IH0KIAotRE9NV2luZG93KiBET01XaW5kb3c6OnNlbGYoKSBjb25zdAorV2luZG93UHJveHkqIERP
TVdpbmRvdzo6c2VsZigpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3co
KTsKKyAgICByZXR1cm4gJm1fZnJhbWUtPndpbmRvd1Byb3h5KCk7CiB9CiAKLURPTVdpbmRvdyog
RE9NV2luZG93OjpvcGVuZXIoKSBjb25zdAorV2luZG93UHJveHkqIERPTVdpbmRvdzo6b3BlbmVy
KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgRnJhbWUqIG9wZW5lciA9IG1fZnJhbWUtPmxvYWRlcigpLm9wZW5lcigpOwotICAgIGlm
ICghb3BlbmVyKQorICAgIGF1dG8qIG9wZW5lckZyYW1lID0gbV9mcmFtZS0+bG9hZGVyKCkub3Bl
bmVyKCk7CisgICAgaWYgKCFvcGVuZXJGcmFtZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICByZXR1cm4gb3BlbmVyLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKTsKKyAgICByZXR1cm4g
Jm9wZW5lckZyYW1lLT53aW5kb3dQcm94eSgpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6ZGlzb3du
T3BlbmVyKCkKQEAgLTE0NDMsMjggKzE0NDUsMjcgQEAgdm9pZCBET01XaW5kb3c6OmRpc293bk9w
ZW5lcigpCiAgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLnNldE9wZW5lcihudWxscHRyKTsKIH0K
IAotRE9NV2luZG93KiBET01XaW5kb3c6OnBhcmVudCgpIGNvbnN0CitXaW5kb3dQcm94eSogRE9N
V2luZG93OjpwYXJlbnQoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBGcmFtZSogcGFyZW50ID0gbV9mcmFtZS0+dHJlZSgpLnBhcmVu
dCgpOwotICAgIGlmIChwYXJlbnQpCi0gICAgICAgIHJldHVybiBwYXJlbnQtPmRvY3VtZW50KCkt
PmRvbVdpbmRvdygpOworICAgIGF1dG8qIHBhcmVudEZyYW1lID0gbV9mcmFtZS0+dHJlZSgpLnBh
cmVudCgpOworICAgIGlmIChwYXJlbnRGcmFtZSkKKyAgICAgICAgcmV0dXJuICZwYXJlbnRGcmFt
ZS0+d2luZG93UHJveHkoKTsKIAotICAgIHJldHVybiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kb21X
aW5kb3coKTsKKyAgICByZXR1cm4gJm1fZnJhbWUtPndpbmRvd1Byb3h5KCk7CiB9CiAKLURPTVdp
bmRvdyogRE9NV2luZG93Ojp0b3AoKSBjb25zdAorV2luZG93UHJveHkqIERPTVdpbmRvdzo6dG9w
KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCisgICAg
aWYgKCFtX2ZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0
dXJuIG1fZnJhbWUtPnRyZWUoKS50b3AoKS5kb2N1bWVudCgpLT5kb21XaW5kb3coKTsKKyAgICBy
ZXR1cm4gJm1fZnJhbWUtPnRyZWUoKS50b3AoKS53aW5kb3dQcm94eSgpOwogfQogCiBTdHJpbmcg
RE9NV2luZG93OjpvcmlnaW4oKSBjb25zdApAQCAtMjMwMiw3ICsyMzAzLDcgQEAgUmVmUHRyPEZy
YW1lPiBET01XaW5kb3c6OmNyZWF0ZVdpbmRvdyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29u
c3QgQXRvbWljU3RyaW4KICAgICByZXR1cm4gd2luZG93RmVhdHVyZXMubm9vcGVuZXIgPyBudWxs
cHRyIDogbmV3RnJhbWU7CiB9CiAKLVJlZlB0cjxET01XaW5kb3c+IERPTVdpbmRvdzo6b3BlbihE
T01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRE9NV2luZG93JiBmaXJzdFdpbmRvdywgY29uc3QgU3Ry
aW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBTdHJp
bmcmIHdpbmRvd0ZlYXR1cmVzU3RyaW5nKQorUmVmUHRyPFdpbmRvd1Byb3h5PiBET01XaW5kb3c6
Om9wZW4oRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RXaW5kb3csIGNv
bnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbmcmIGZyYW1lTmFtZSwgY29u
c3QgU3RyaW5nJiB3aW5kb3dGZWF0dXJlc1N0cmluZykKIHsKICAgICBpZiAoIWlzQ3VycmVudGx5
RGlzcGxheWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTIzNTMsMjEg
KzIzNTQsMjEgQEAgUmVmUHRyPERPTVdpbmRvdz4gRE9NV2luZG93OjpvcGVuKERPTVdpbmRvdyYg
YWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG8KICAgICAgICAgVVJMIGNvbXBsZXRl
ZFVSTCA9IGZpcnN0RnJhbWUtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybFN0cmluZyk7CiAK
ICAgICAgICAgaWYgKHRhcmdldEZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+aXNJbnNl
Y3VyZVNjcmlwdEFjY2VzcyhhY3RpdmVXaW5kb3csIGNvbXBsZXRlZFVSTCkpCi0gICAgICAgICAg
ICByZXR1cm4gdGFyZ2V0RnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpOworICAgICAgICAg
ICAgcmV0dXJuICZ0YXJnZXRGcmFtZS0+d2luZG93UHJveHkoKTsKIAogICAgICAgICBpZiAodXJs
U3RyaW5nLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiB0YXJnZXRGcmFtZS0+ZG9jdW1l
bnQoKS0+ZG9tV2luZG93KCk7CisgICAgICAgICAgICByZXR1cm4gJnRhcmdldEZyYW1lLT53aW5k
b3dQcm94eSgpOwogCiAgICAgICAgIC8vIEZvciB3aGF0ZXZlciByZWFzb24sIEZpcmVmb3ggdXNl
cyB0aGUgZmlyc3Qgd2luZG93IHJhdGhlciB0aGFuIHRoZSBhY3RpdmUgd2luZG93IHRvCiAgICAg
ICAgIC8vIGRldGVybWluZSB0aGUgb3V0Z29pbmcgcmVmZXJyZXIuIFdlIHJlcGxpY2F0ZSB0aGF0
IGJlaGF2aW9yIGhlcmUuCiAgICAgICAgIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5ID0gVXNlckdl
c3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpID8gTG9ja0hpc3Rvcnk6Ok5v
IDogTG9ja0hpc3Rvcnk6OlllczsKICAgICAgICAgdGFyZ2V0RnJhbWUtPm5hdmlnYXRpb25TY2hl
ZHVsZXIoKS5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKCphY3RpdmVEb2N1bWVudCwgYWN0aXZlRG9j
dW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIGNvbXBsZXRlZFVSTCwgZmlyc3RGcmFtZS0+bG9hZGVy
KCkub3V0Z29pbmdSZWZlcnJlcigpLAogICAgICAgICAgICAgbG9ja0hpc3RvcnksIExvY2tCYWNr
Rm9yd2FyZExpc3Q6Ok5vKTsKLSAgICAgICAgcmV0dXJuIHRhcmdldEZyYW1lLT5kb2N1bWVudCgp
LT5kb21XaW5kb3coKTsKKyAgICAgICAgcmV0dXJuICZ0YXJnZXRGcmFtZS0+d2luZG93UHJveHko
KTsKICAgICB9CiAKLSAgICBSZWZQdHI8RnJhbWU+IHJlc3VsdCA9IGNyZWF0ZVdpbmRvdyh1cmxT
dHJpbmcsIGZyYW1lTmFtZSwgcGFyc2VXaW5kb3dGZWF0dXJlcyh3aW5kb3dGZWF0dXJlc1N0cmlu
ZyksIGFjdGl2ZVdpbmRvdywgKmZpcnN0RnJhbWUsICptX2ZyYW1lKTsKLSAgICByZXR1cm4gcmVz
dWx0ID8gcmVzdWx0LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSA6IG51bGxwdHI7CisgICAgYXV0
byBuZXdGcmFtZSA9IGNyZWF0ZVdpbmRvdyh1cmxTdHJpbmcsIGZyYW1lTmFtZSwgcGFyc2VXaW5k
b3dGZWF0dXJlcyh3aW5kb3dGZWF0dXJlc1N0cmluZyksIGFjdGl2ZVdpbmRvdywgKmZpcnN0RnJh
bWUsICptX2ZyYW1lKTsKKyAgICByZXR1cm4gbmV3RnJhbWUgPyAmbmV3RnJhbWUtPndpbmRvd1By
b3h5KCkgOiBudWxscHRyOwogfQogCiB2b2lkIERPTVdpbmRvdzo6c2hvd01vZGFsRGlhbG9nKGNv
bnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRpYWxvZ0ZlYXR1cmVzU3RyaW5n
LCBET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRE9NV2luZG93JiBmaXJzdFdpbmRvdywgY29uc3Qg
V1RGOjpGdW5jdGlvbjx2b2lkIChET01XaW5kb3cmKT4mIHByZXBhcmVEaWFsb2dGdW5jdGlvbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDQ5OWE1NThkMmVlMThkNTQ3NWZkMDgyOTQ1ZDY2
YzM4ODhiOTk2MjguLjY2MTA3ODUzYjVlZDY3ZmY1NmU5Y2M5ZmRlNDMzNGVkNzkyODBjMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMTU3LDcgKzE1Nyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHByaW50KCk7CiAgICAgdm9pZCBzdG9wKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWZQ
dHI8RE9NV2luZG93PiBvcGVuKERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZp
cnN0V2luZG93LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgQXRvbWljU3RyaW5nJiBm
cmFtZU5hbWUsIGNvbnN0IFN0cmluZyYgd2luZG93RmVhdHVyZXNTdHJpbmcpOworICAgIFdFQkNP
UkVfRVhQT1JUIFJlZlB0cjxXaW5kb3dQcm94eT4gb3BlbihET01XaW5kb3cmIGFjdGl2ZVdpbmRv
dywgRE9NV2luZG93JiBmaXJzdFdpbmRvdywgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0
IEF0b21pY1N0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBTdHJpbmcmIHdpbmRvd0ZlYXR1cmVzU3Ry
aW5nKTsKIAogICAgIHZvaWQgc2hvd01vZGFsRGlhbG9nKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGRpYWxvZ0ZlYXR1cmVzU3RyaW5nLCBET01XaW5kb3cmIGFjdGl2ZVdp
bmRvdywgRE9NV2luZG93JiBmaXJzdFdpbmRvdywgY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKERP
TVdpbmRvdyYpPiYgcHJlcGFyZURpYWxvZ0Z1bmN0aW9uKTsKIApAQCAtMTkyLDEyICsxOTIsMTIg
QEAgcHVibGljOgogICAgIFN0cmluZyBkZWZhdWx0U3RhdHVzKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXREZWZhdWx0U3RhdHVzKGNvbnN0IFN0cmluZyYpOwogCi0gICAgRE9NV2luZG93KiBzZWxmKCkg
Y29uc3Q7CisgICAgV2luZG93UHJveHkqIHNlbGYoKSBjb25zdDsKIAotICAgIERPTVdpbmRvdyog
b3BlbmVyKCkgY29uc3Q7CisgICAgV2luZG93UHJveHkqIG9wZW5lcigpIGNvbnN0OwogICAgIHZv
aWQgZGlzb3duT3BlbmVyKCk7Ci0gICAgRE9NV2luZG93KiBwYXJlbnQoKSBjb25zdDsKLSAgICBE
T01XaW5kb3cqIHRvcCgpIGNvbnN0OworICAgIFdpbmRvd1Byb3h5KiBwYXJlbnQoKSBjb25zdDsK
KyAgICBXaW5kb3dQcm94eSogdG9wKCkgY29uc3Q7CiAKICAgICBGcmFtZSogZnJhbWUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXI6OmZyYW1lKCk7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDQ2ZWJjMTU2MWZhZWJlZjczMGNjYjliYzNm
YTUyYzA0ZjBjZGQ2NGUuLmU2OTYxNzhlYWM2NzdmNTVjOWYyZDMyMTI0YzJlMDA0ZmZkYmRhNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTQ5LDggKzQ5LDggQEAgdHlwZWRlZiBV
U1ZTdHJpbmcgQ1NTT01TdHJpbmc7CiAgICAgUHJpbWFyeUdsb2JhbCwKIF0gaW50ZXJmYWNlIERP
TVdpbmRvdyA6IEV2ZW50VGFyZ2V0IHsKICAgICAvLyBUaGUgY3VycmVudCBicm93c2luZyBjb250
ZXh0LgotICAgIFtEb05vdENoZWNrU2VjdXJpdHksIFVuZm9yZ2VhYmxlLCBJbXBsZW1lbnRlZEFz
PXNlbGZdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01XaW5kb3cgd2luZG93OwotICAgIFtSZXBsYWNl
YWJsZSwgRG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01X
aW5kb3cgc2VsZjsKKyAgICBbRG9Ob3RDaGVja1NlY3VyaXR5LCBVbmZvcmdlYWJsZSwgSW1wbGVt
ZW50ZWRBcz1zZWxmXSByZWFkb25seSBhdHRyaWJ1dGUgV2luZG93UHJveHkgd2luZG93OworICAg
IFtSZXBsYWNlYWJsZSwgRG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0ZXJdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBXaW5kb3dQcm94eSBzZWxmOwogICAgIFtVbmZvcmdlYWJsZV0gcmVhZG9ubHkgYXR0cmli
dXRlIERvY3VtZW50IGRvY3VtZW50OwogICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKICAg
ICBbRG9Ob3RDaGVja1NlY3VyaXR5LCBQdXRGb3J3YXJkcz1ocmVmLCBVbmZvcmdlYWJsZV0gcmVh
ZG9ubHkgYXR0cmlidXRlIExvY2F0aW9uPyBsb2NhdGlvbjsgLy8gRklYTUU6IFNob3VsZCBub3Qg
YmUgbnVsbGFibGUuCkBAIC03MCwxMyArNzAsMTMgQEAgdHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01T
dHJpbmc7CiAgICAgW0RvTm90Q2hlY2tTZWN1cml0eSwgRm9yd2FyZERlY2xhcmVJbkhlYWRlcl0g
dm9pZCBibHVyKCk7CiAKICAgICAvLyBPdGhlciBicm93c2luZyBjb250ZXh0cy4KLSAgICBbUmVw
bGFjZWFibGUsIERvTm90Q2hlY2tTZWN1cml0eU9uR2V0dGVyLCBJbXBsZW1lbnRlZEFzPXNlbGZd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01XaW5kb3cgZnJhbWVzOworICAgIFtSZXBsYWNlYWJsZSwg
RG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0ZXIsIEltcGxlbWVudGVkQXM9c2VsZl0gcmVhZG9ubHkg
YXR0cmlidXRlIFdpbmRvd1Byb3h5IGZyYW1lczsKICAgICBbUmVwbGFjZWFibGUsIERvTm90Q2hl
Y2tTZWN1cml0eU9uR2V0dGVyXSByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5n
dGg7Ci0gICAgW0RvTm90Q2hlY2tTZWN1cml0eU9uR2V0dGVyLCBVbmZvcmdlYWJsZV0gcmVhZG9u
bHkgYXR0cmlidXRlIERPTVdpbmRvdz8gdG9wOwotICAgIFtEb05vdENoZWNrU2VjdXJpdHlPbkdl
dHRlciwgQ3VzdG9tU2V0dGVyXSBhdHRyaWJ1dGUgRE9NV2luZG93PyBvcGVuZXI7Ci0gICAgW1Jl
cGxhY2VhYmxlLCBEb05vdENoZWNrU2VjdXJpdHlPbkdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRl
IERPTVdpbmRvdz8gcGFyZW50OworICAgIFtEb05vdENoZWNrU2VjdXJpdHlPbkdldHRlciwgVW5m
b3JnZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXaW5kb3dQcm94eT8gdG9wOworICAgIFtEb05v
dENoZWNrU2VjdXJpdHlPbkdldHRlciwgQ3VzdG9tU2V0dGVyXSBhdHRyaWJ1dGUgV2luZG93UHJv
eHk/IG9wZW5lcjsKKyAgICBbUmVwbGFjZWFibGUsIERvTm90Q2hlY2tTZWN1cml0eU9uR2V0dGVy
XSByZWFkb25seSBhdHRyaWJ1dGUgV2luZG93UHJveHk/IHBhcmVudDsKICAgICBbQ2hlY2tTZWN1
cml0eUZvck5vZGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyBmcmFtZUVsZW1lbnQ7Ci0g
ICAgW0NhbGxXaXRoPUFjdGl2ZVdpbmRvdyZGaXJzdFdpbmRvd10gRE9NV2luZG93PyBvcGVuKG9w
dGlvbmFsIFVTVlN0cmluZyB1cmwgPSAiYWJvdXQ6YmxhbmsiLCBvcHRpb25hbCBET01TdHJpbmcg
dGFyZ2V0ID0gIl9ibGFuayIsIG9wdGlvbmFsIFtUcmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9N
U3RyaW5nIGZlYXR1cmVzID0gIiIpOworICAgIFtDYWxsV2l0aD1BY3RpdmVXaW5kb3cmRmlyc3RX
aW5kb3ddIFdpbmRvd1Byb3h5PyBvcGVuKG9wdGlvbmFsIFVTVlN0cmluZyB1cmwgPSAiYWJvdXQ6
YmxhbmsiLCBvcHRpb25hbCBET01TdHJpbmcgdGFyZ2V0ID0gIl9ibGFuayIsIG9wdGlvbmFsIFtU
cmVhdE51bGxBcz1FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGZlYXR1cmVzID0gIiIpOwogCiAgICAg
Ly8gVGhlIHVzZXIgYWdlbnQuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5hdmlnYXRvciBuYXZp
Z2F0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZTMxMDViOGY3NThi
NWQ2Y2Y4YTM1ODBmZDA4OTQyNzE2NDE5MTMwMS4uNjQzMzIyN2I5MjFlMjM1Nzk3NWJiYzYyNWYy
N2IwNmQ0MGNkOTJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTU5
LDkgKzE1OSw3IEBACiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJW
b2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCi0jaWYgRU5B
QkxFKFdFQkdMKQotI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgotI2VuZGlmCisj
aW5jbHVkZSAiV2luZG93UHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNs
dWRlICJXcml0aW5nRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKQEAg
LTIwNSw2ICsyMDMsMTAgQEAKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjZW5kaWYKIAorI2lm
IEVOQUJMRShXRUJHTCkKKyNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKyNlbmRp
ZgorCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAjaW5jbHVkZSAiRE9NV2luZG93U3Bl
ZWNoU3ludGhlc2lzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2su
aCIKQEAgLTIzMDUsMTMgKzIzMDcsMTMgQEAgdW5zaWduZWQgSW50ZXJuYWxzOjpyZWZlcmVuY2lu
Z05vZGVDb3VudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIGRv
Y3VtZW50LnJlZmVyZW5jaW5nTm9kZUNvdW50KCk7CiB9CiAKLVJlZlB0cjxET01XaW5kb3c+IElu
dGVybmFsczo6b3BlbkR1bW15SW5zcGVjdG9yRnJvbnRlbmQoY29uc3QgU3RyaW5nJiB1cmwpCitS
ZWZQdHI8V2luZG93UHJveHk+IEludGVybmFsczo6b3BlbkR1bW15SW5zcGVjdG9yRnJvbnRlbmQo
Y29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgYXV0byogaW5zcGVjdGVkUGFnZSA9IGNvbnRleHRE
b2N1bWVudCgpLT5mcmFtZSgpLT5wYWdlKCk7CiAgICAgYXV0byogd2luZG93ID0gaW5zcGVjdGVk
UGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+ZG9tV2luZG93KCk7Ci0gICAgYXV0byBmcm9u
dGVuZFdpbmRvdyA9IHdpbmRvdy0+b3Blbigqd2luZG93LCAqd2luZG93LCB1cmwsICIiLCAiIik7
Ci0gICAgbV9pbnNwZWN0b3JGcm9udGVuZCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yU3R1
YkZyb250ZW5kPigqaW5zcGVjdGVkUGFnZSwgZnJvbnRlbmRXaW5kb3cuY29weVJlZigpKTsKLSAg
ICByZXR1cm4gZnJvbnRlbmRXaW5kb3c7CisgICAgYXV0byBmcm9udGVuZFdpbmRvd1Byb3h5ID0g
d2luZG93LT5vcGVuKCp3aW5kb3csICp3aW5kb3csIHVybCwgIiIsICIiKTsKKyAgICBtX2luc3Bl
Y3RvckZyb250ZW5kID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JTdHViRnJvbnRlbmQ+KCpp
bnNwZWN0ZWRQYWdlLCBkb3duY2FzdDxET01XaW5kb3c+KGZyb250ZW5kV2luZG93UHJveHktPndp
bmRvdygpKSk7CisgICAgcmV0dXJuIGZyb250ZW5kV2luZG93UHJveHk7CiB9CiAKIHZvaWQgSW50
ZXJuYWxzOjpjbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKaW5kZXggYzA2YWM5MGFkNjNiNjhlYjJlNDhjYTg4MGU3YmVlYWJhMjM1NDNhYy4u
Y2RiYTgxNWNhMDQ1NDBjYzdmYWQwYTk1YzZkYThhYWY1YWQ0NDk4MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCkBAIC0zNDksNyArMzQ5LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVk
IG51bWJlck9mTGl2ZURvY3VtZW50cygpIGNvbnN0OwogICAgIHVuc2lnbmVkIHJlZmVyZW5jaW5n
Tm9kZUNvdW50KGNvbnN0IERvY3VtZW50JikgY29uc3Q7CiAKLSAgICBSZWZQdHI8RE9NV2luZG93
PiBvcGVuRHVtbXlJbnNwZWN0b3JGcm9udGVuZChjb25zdCBTdHJpbmcmIHVybCk7CisgICAgUmVm
UHRyPFdpbmRvd1Byb3h5PiBvcGVuRHVtbXlJbnNwZWN0b3JGcm9udGVuZChjb25zdCBTdHJpbmcm
IHVybCk7CiAgICAgdm9pZCBjbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQoKTsKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRJbnNwZWN0b3JJc1VuZGVyVGVzdChib29sKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDg1ZWNmMzBkOTdkNjhmMWJhMzc2OWNkOGY4NmM2
YmZkZjViYjFiNWQuLjEyZTFkODI3MTJkNjI0ODU2ZTdjY2Y1ZjZhMTU3YmIyZjdjZmY0Y2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTMxNSw3ICszMTUsNyBAQCBlbnVt
IEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIHsKICAgICB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2
ZU5vZGVzKCk7CiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZkxpdmVEb2N1bWVudHMoKTsKICAg
ICB1bnNpZ25lZCBsb25nIHJlZmVyZW5jaW5nTm9kZUNvdW50KERvY3VtZW50IGRvY3VtZW50KTsK
LSAgICBET01XaW5kb3c/IG9wZW5EdW1teUluc3BlY3RvckZyb250ZW5kKERPTVN0cmluZyB1cmwp
OworICAgIFdpbmRvd1Byb3h5PyBvcGVuRHVtbXlJbnNwZWN0b3JGcm9udGVuZChET01TdHJpbmcg
dXJsKTsKICAgICB2b2lkIGNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOwogICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gdm9pZCBzZXRJbnNwZWN0b3JJc1VuZGVyVGVzdChib29sZWFuIGlzVW5k
ZXJUZXN0KTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>