<?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>170767</bug_id>
          
          <creation_ts>2017-04-12 02:17:41 -0700</creation_ts>
          <short_desc>[GStreamer] Dailymotion live stream videos don&apos;t play</short_desc>
          <delta_ts>2017-05-02 03:06:08 -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>Platform</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>169725</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1296690</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-04-12 02:17:41 -0700</bug_when>
    <thetext>The video shows a message saying that an error occurred and nothing is played. For some reason we are getting a 404 for the hls parts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297934</commentid>
    <comment_count>1</comment_count>
      <attachid>307275</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-04-17 10:25:28 -0700</bug_when>
    <thetext>Created attachment 307275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303627</commentid>
    <comment_count>2</comment_count>
      <attachid>308811</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-02 02:30:53 -0700</bug_when>
    <thetext>Created attachment 308811
Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303628</commentid>
    <comment_count>3</comment_count>
      <attachid>308811</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-05-02 02:46:09 -0700</bug_when>
    <thetext>Comment on attachment 308811
Rebased patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:909
&gt; +        priv-&gt;redirectedURI = WTFMove(resolvedURI);

This resolved/redirected naming is a bit confusing.

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:956
&gt; +

I think this chunk of code deserves an explanation, it&apos;s pretty clear what it does but not why we need to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303630</commentid>
    <comment_count>4</comment_count>
      <attachid>308811</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-05-02 02:58:11 -0700</bug_when>
    <thetext>Comment on attachment 308811
Rebased patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:1119
&gt; +            m_resource = ResourceHandle::create(nullptr /*context*/, m_request, this, true, false);

Nit: I don&apos;t see the need of having /*context*/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303633</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-05-02 03:06:08 -0700</bug_when>
    <thetext>Committed r216067: &lt;http://trac.webkit.org/changeset/216067&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307275</attachid>
            <date>2017-04-17 10:25:28 -0700</date>
            <delta_ts>2017-05-02 02:30:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-dailymotion-live.diff</filename>
            <type>text/plain</type>
            <size>19708</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMWZlOTg3OGQ2NS4uMDJjNTRlYzA1NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NyBAQAogMjAxNy0wNC0xNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgW0dTdHJlYW1lcl0gRGFpbHltb3Rpb24gbGl2ZSBzdHJlYW0g
dmlkZW9zIGRvbid0IHBsYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3MDc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZSB2aWRlbyBzaG93cyBhIG1lc3NhZ2Ugc2F5aW5nIHRoYXQgYW4gZXJyb3Ig
b2NjdXJyZWQgYW5kIG5vdGhpbmcgaXMgcGxheWVkLiBUaGVyZSBhcmUgYWN0dWFsbHkgc2V2ZXJh
bAorICAgICAgICBwcm9ibGVtcyB3aXRoIGRhaWx5bW90aW9uLiBUaGUgbWFpbiBpc3N1ZSBpcyB0
aGF0IFVSTHMgYXJlIHJlZGlyZWN0ZWQgYnkgdGhlIHNlcnZlciwgYW5kIEdTdHJlYW1lciBuZWVk
cyB0bworICAgICAgICBrbm93IHRoZSByZWRpcmVjdGVkIFVSTC4gT25jZSBHU3RyZWFtZXIga25v
d3MgdGhlIHJlZGlyZWN0ZWQgVVJMIHRoZSBlcnJvciBtZXNzYWdlIG5vIGxvbmdlciBhcHBlYXJz
LCB0aGUgdmlkZW8KKyAgICAgICAgc3RhcnRzIGJ1dCBpdCBhbHdheXMgc3RvcHMgYWZ0ZXIgYSBm
ZXcgc2Vjb25kcy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBzb3VyY2UgcmVjZWl2ZXMgYW4gZWFybHkg
RU9TIHdoaWxlIHN0aWxsCisgICAgICAgIGRvd25sb2FkaW5nIHRoZSBmcmFnbWVudHMuIFRoZSBy
ZWFzb24gb2YgdGhlIGVhcmx5IEVPUyBpcyBiZWNhdXNlIGRhaWx5bW90aW9uIHNlbmRzIGEgd3Jv
bmcgQ29udGVudC1MZW5ndGggaGVhZGVyLAorICAgICAgICBzb21ldGhpbmcgdGhhdCBpcyBleHBl
Y3RlZCB0byBoYXBwZW4gYW5kIHdlIGNvcnJlY3RseSBoYW5kbGUgdGhhdCBjYXNlIHdoZW4gcmVj
ZWl2aW5nIHRoZSBkYXRhLCBieSB1cGRhdGluZyB0aGUKKyAgICAgICAgc2l6ZSBhY2NvcmRpbmds
eSBpZiB0aGUgYnl0ZXMgcmVjZWl2ZWQgYXJlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjb250
ZW50IGxlbmd0aC4gVGhpcyBwYXJ0aWN1bGFyIGNhc2UKKyAgICAgICAgZG9lc24ndCB3b3JrIHdl
bGwgd2l0aCBHU3RyZWFtZXIgYXV0b21hdGljIEVPUyBoYW5kbGluZywgd2hpY2ggaXMgdGhlIGRl
ZmF1bHQuIEF0IHNvbWUgcG9pbnQsIEdTdHJlYW1lciBkZXRlY3RzCisgICAgICAgIHRoYXQgdGhl
IGJ5dGVzIHJlY2VpdmVkIGFyZSBhdCBsZWFzdCB0aGUgZXhwZWN0ZWQgb25lcyBhbmQgZW1pdHMg
YSBHU1RfRVZFTlRfRU9TIHRoYXQgdGhlIEdzdFVyaURvd25sb2FkZXIKKyAgICAgICAgaGFuZGxl
cyBmaW5pc2hpbmcgdGhlIGRvd25sb2FkIGVhcmx5LiBXZSBzaG91bGQgYWx3YXlzIGRpc2FibGUg
YXV0b21hdGljIEVPUywgc2luY2Ugd2Uga25vdyB3aGVuIEVPUyBhY3R1YWxseQorICAgICAgICBo
YXBwZW5zIGFuZCB3ZSBhbHJlYWR5IGNhbGwgZ3N0X2FwcF9zcmNfZW5kX29mX3N0cmVhbSgpLiBU
aGlzIHBhdGNoIGFsc28gZW1pdHMgYSBHU1RfRVZFTlRfQ1VTVE9NX0RPV05TVFJFQU1fU1RJQ0tZ
CisgICAgICAgIGV2ZW50IHRvIGxldCBHU3RyZWFtZXIga25vdyBhYm91dCB0aGUgSFRUUCBoZWFk
ZXJzIHNlbnQgYW5kIHJlY2VpdmVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJraXRfd2Vi
X3NyY19pbml0KTogRGlzYWJsZSBhdXRvbWF0aWMgRU9TLgorICAgICAgICAod2ViS2l0V2ViU3Jj
R2V0UHJvcGVydHkpOiBSZXR1cm4gdGhlIHJlZGlyZWN0ZWQgVVJMIGluIGNhc2Ugb2YgcmVkaXJl
Y3Rpb24uCisgICAgICAgICh3ZWJLaXRXZWJTcmNTdGFydCk6IFBhc3MgdGhlIFJlc291cmNlUmVx
dWVzdCB0byB0aGUgc3RyZWFtIGNsaWVudHMuCisgICAgICAgICh3ZWJLaXRXZWJTcmNRdWVyeVdp
dGhQYXJlbnQpOiBTZXQgdGhlIHJlZGlyZWN0ZWQgVVJMIGluIHRoZSBxdWVyeSBpbiBjYXNlIG9m
IHJlZGlyZWN0aW9uLgorICAgICAgICAod2ViS2l0V2ViU3JjU2V0VXJpKTogQ2xlYXIgYWxzbyB0
aGUgcmVkaXJlY3RlZCBVUkwgd2hlbiBzZXR0aW5nIGEgbmV3IFVSSS4KKyAgICAgICAgKFN0cmVh
bWluZ0NsaWVudDo6U3RyZWFtaW5nQ2xpZW50KTogVXNlIEdSZWZQdHIgZm9yIHRoZSBzb3VyY2Ug
YW5kIGluaXRpYWxpemUgdGhlIHJlcXVlc3QgdG9vLgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50
Ojp+U3RyZWFtaW5nQ2xpZW50KTogUmVtb3ZlIGV4cGxpY2l0IHVucmVmLgorICAgICAgICAoU3Ry
ZWFtaW5nQ2xpZW50OjpjcmVhdGVSZWFkQnVmZmVyKToKKyAgICAgICAgKFN0cmVhbWluZ0NsaWVu
dDo6aGFuZGxlUmVzcG9uc2VSZWNlaXZlZCk6IEluaXRpYWxpemUgdGhlIHJlZGlyZWN0ZWQgVVJM
IGluIGNhc2Ugb2YgcmVkaXJlY3Rpb24uIENyZWF0ZSBhbmQgcHVzaAorICAgICAgICB0aGUgSFRU
UCBoZWFkZXJzIGV2ZW50LgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVEYXRhUmVj
ZWl2ZWQpOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVOb3RpZnlGaW5pc2hlZCk6
CisgICAgICAgIChDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6Q2FjaGVkUmVzb3VyY2VT
dHJlYW1pbmdDbGllbnQpOgorICAgICAgICAoQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6
OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGll
bnQ6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZCk6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZVN0
cmVhbWluZ0NsaWVudDo6bG9hZEZhaWxlZCk6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZVN0cmVh
bWluZ0NsaWVudDo6UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQpOgorICAgICAgICAoUmVz
b3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OmRpZEZhaWwpOgorICAgICAgICAoUmVzb3VyY2VI
YW5kbGVTdHJlYW1pbmdDbGllbnQ6Ondhc0Jsb2NrZWQpOgorICAgICAgICAoUmVzb3VyY2VIYW5k
bGVTdHJlYW1pbmdDbGllbnQ6OmNhbm5vdFNob3dVUkwpOgorCisyMDE3LTA0LTE3ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBbR0xJQl0gRGVm
aW5lIHByaW9yaXRpZXMgYWxzbyBmb3IgYXN5bmMgbmV0d29yayBJTyB0YXNrcwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwOTA1CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJT
b3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggYTU5MGNmYmQ4NWIuLjUx
ZTA0NmYxMzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNw
cApAQCAtNTMsNzMgKzUzLDc0IEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogY2xhc3Mg
U3RyZWFtaW5nQ2xpZW50IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFN0cmVhbWluZ0NsaWVudChX
ZWJLaXRXZWJTcmMqKTsKLSAgICAgICAgdmlydHVhbCB+U3RyZWFtaW5nQ2xpZW50KCk7Ci0KLSAg
ICBwcm90ZWN0ZWQ6Ci0gICAgICAgIGNoYXIqIGNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVl
c3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSk7Ci0gICAgICAgIHZvaWQgaGFuZGxlUmVzcG9u
c2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgICAgIHZvaWQgaGFuZGxl
RGF0YVJlY2VpdmVkKGNvbnN0IGNoYXIqLCBpbnQpOwotICAgICAgICB2b2lkIGhhbmRsZU5vdGlm
eUZpbmlzaGVkKCk7Ci0KLSAgICAgICAgR3N0RWxlbWVudCogbV9zcmM7CitwdWJsaWM6CisgICAg
U3RyZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyosIFJlc291cmNlUmVxdWVzdCYmKTsKKyAgICB2
aXJ0dWFsIH5TdHJlYW1pbmdDbGllbnQoKTsKKworcHJvdGVjdGVkOgorICAgIGNoYXIqIGNyZWF0
ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSk7Cisg
ICAgdm9pZCBoYW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
KyAgICB2b2lkIGhhbmRsZURhdGFSZWNlaXZlZChjb25zdCBjaGFyKiwgaW50KTsKKyAgICB2b2lk
IGhhbmRsZU5vdGlmeUZpbmlzaGVkKCk7CisKKyAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1fc3Jj
OworICAgIFJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CiB9OwogCiBjbGFzcyBDYWNoZWRSZXNv
dXJjZVN0cmVhbWluZ0NsaWVudCBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VD
bGllbnQsIHB1YmxpYyBTdHJlYW1pbmdDbGllbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50KTsKLSAgICBwdWJsaWM6Ci0gICAgICAgIENh
Y2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyopOwotICAgICAgICB2aXJ0
dWFsIH5DYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudCgpOworcHVibGljOgorICAgIENhY2hl
ZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyosIFJlc291cmNlUmVxdWVzdCYm
KTsKKyAgICB2aXJ0dWFsIH5DYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudCgpOwogCi0gICAg
cHJpdmF0ZToKLSAgICAgICAgLy8gUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50IHZpcnR1YWwg
bWV0aG9kcy4KK3ByaXZhdGU6CisgICAgLy8gUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50IHZp
cnR1YWwgbWV0aG9kcy4KICNpZiBVU0UoU09VUCkKLSAgICAgICAgY2hhciogZ2V0T3JDcmVhdGVS
ZWFkQnVmZmVyKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHNpemVfdCByZXF1ZXN0ZWRTaXplLCBz
aXplX3QmIGFjdHVhbFNpemUpIG92ZXJyaWRlOworICAgIGNoYXIqIGdldE9yQ3JlYXRlUmVhZEJ1
ZmZlcihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90
JiBhY3R1YWxTaXplKSBvdmVycmlkZTsKICNlbmRpZgotICAgICAgICB2b2lkIHJlc3BvbnNlUmVj
ZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92
ZXJyaWRlOwotICAgICAgICB2b2lkIGRhdGFSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBjaGFyKiwgaW50KSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBhY2Nlc3NDb250cm9s
Q2hlY2tGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VFcnJvciYp
IG92ZXJyaWRlOwotICAgICAgICB2b2lkIGxvYWRGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNl
JiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGxvYWRGaW5p
c2hlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc3BvbnNl
UmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
IG92ZXJyaWRlOworICAgIHZvaWQgZGF0YVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYs
IGNvbnN0IGNoYXIqLCBpbnQpIG92ZXJyaWRlOworICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNr
RmFpbGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGxvYWRGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3Qg
UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOworICAgIHZvaWQgbG9hZEZpbmlzaGVkKFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYpIG92ZXJyaWRlOwogfTsKIAogY2xhc3MgUmVzb3VyY2VIYW5kbGVTdHJl
YW1pbmdDbGllbnQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVzb3VyY2VIYW5kbGVT
dHJlYW1pbmdDbGllbnQ+LCBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQsIHB1YmxpYyBTdHJl
YW1pbmdDbGllbnQgewotICAgIHB1YmxpYzoKLSAgICAgICAgUmVzb3VyY2VIYW5kbGVTdHJlYW1p
bmdDbGllbnQoV2ViS2l0V2ViU3JjKiwgUmVzb3VyY2VSZXF1ZXN0JiYpOwotICAgICAgICB2aXJ0
dWFsIH5SZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCgpOworcHVibGljOgorICAgIFJlc291
cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyosIFJlc291cmNlUmVxdWVzdCYm
KTsKKyAgICB2aXJ0dWFsIH5SZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCgpOwogCi0gICAg
ICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCi0gICAgICAg
IC8vIFN0cmVhbWluZ0NsaWVudCB2aXJ0dWFsIG1ldGhvZHMuCi0gICAgICAgIGJvb2wgbG9hZEZh
aWxlZCgpIGNvbnN0OwotICAgICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CisgICAg
Ly8gU3RyZWFtaW5nQ2xpZW50IHZpcnR1YWwgbWV0aG9kcy4KKyAgICBib29sIGxvYWRGYWlsZWQo
KSBjb25zdDsKKyAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CiAKLSAgICBwcml2YXRl
OgotICAgICAgICB2b2lkIGNsZWFudXBBbmRTdG9wUnVuTG9vcCgpOworcHJpdmF0ZToKKyAgICB2
b2lkIGNsZWFudXBBbmRTdG9wUnVuTG9vcCgpOwogCi0gICAgICAgIC8vIFJlc291cmNlSGFuZGxl
Q2xpZW50IHZpcnR1YWwgbWV0aG9kcy4KKyAgICAvLyBSZXNvdXJjZUhhbmRsZUNsaWVudCB2aXJ0
dWFsIG1ldGhvZHMuCiAjaWYgVVNFKFNPVVApCi0gICAgICAgIGNoYXIqIGdldE9yQ3JlYXRlUmVh
ZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKSBvdmVycmlk
ZTsKKyAgICBjaGFyKiBnZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUs
IHNpemVfdCYgYWN0dWFsU2l6ZSkgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAgICAgUmVzb3VyY2VS
ZXF1ZXN0IHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYm
LCBSZXNvdXJjZVJlc3BvbnNlJiYpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGRpZFJlY2VpdmVS
ZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJikgb3ZlcnJpZGU7Ci0g
ICAgICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwg
dW5zaWduZWQsIGludCkgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihS
ZXNvdXJjZUhhbmRsZSosIFJlZjxTaGFyZWRCdWZmZXI+JiYsIGludCBlbmNvZGVkTGVuZ3RoKSBv
dmVycmlkZTsKLSAgICAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikg
b3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJl
c291cmNlRXJyb3ImKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCB3YXNCbG9ja2VkKFJlc291cmNl
SGFuZGxlKikgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhh
bmRsZSopIG92ZXJyaWRlOwotCi0gICAgICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWQgeyAw
IH07Ci0gICAgICAgIExvY2sgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4OwotICAg
ICAgICBDb25kaXRpb24gbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbjsKLSAgICAgICAgUnVu
TG9vcCogbV9ydW5Mb29wIHsgbnVsbHB0ciB9OwotICAgICAgICBMb2NrIG1fdGVybWluYXRlUnVu
TG9vcENvbmRpdGlvbk11dGV4OwotICAgICAgICBDb25kaXRpb24gbV90ZXJtaW5hdGVSdW5Mb29w
Q29uZGl0aW9uOwotICAgICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG1fcmVzb3VyY2U7Cisg
ICAgUmVzb3VyY2VSZXF1ZXN0IHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUhhbmRsZSosIFJlc291
cmNlUmVxdWVzdCYmLCBSZXNvdXJjZVJlc3BvbnNlJiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hh
ciosIHVuc2lnbmVkLCBpbnQpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihS
ZXNvdXJjZUhhbmRsZSosIFJlZjxTaGFyZWRCdWZmZXI+JiYsIGludCBlbmNvZGVkTGVuZ3RoKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVy
cm9yJikgb3ZlcnJpZGU7CisgICAgdm9pZCB3YXNCbG9ja2VkKFJlc291cmNlSGFuZGxlKikgb3Zl
cnJpZGU7CisgICAgdm9pZCBjYW5ub3RTaG93VVJMKFJlc291cmNlSGFuZGxlKikgb3ZlcnJpZGU7
CisKKyAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkIHsgMCB9OworICAgIExvY2sgbV9pbml0
aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4OworICAgIENvbmRpdGlvbiBtX2luaXRpYWxpemVS
dW5Mb29wQ29uZGl0aW9uOworICAgIFJ1bkxvb3AqIG1fcnVuTG9vcCB7IG51bGxwdHIgfTsKKyAg
ICBMb2NrIG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11dGV4OworICAgIENvbmRpdGlvbiBt
X3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb247CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBt
X3Jlc291cmNlOwogI2lmIFVTRShTT1VQKQotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U291cE5l
dHdvcmtTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFNvdXBOZXR3b3Jr
U2Vzc2lvbj4gbV9zZXNzaW9uOwogI2VuZGlmCiB9OwogCkBAIC0xMzYsNyArMTM3LDcgQEAgc3Ry
dWN0IF9XZWJLaXRXZWJTcmNQcml2YXRlIHsKICAgICBHc3RBcHBTcmMqIGFwcHNyYzsKICAgICBH
c3RQYWQqIHNyY3BhZDsKICAgICBDU3RyaW5nIG9yaWdpbmFsVVJJOwotICAgIENTdHJpbmcgcmVz
b2x2ZWRVUkk7CisgICAgQ1N0cmluZyByZWRpcmVjdGVkVVJJOwogICAgIGJvb2wga2VlcEFsaXZl
OwogICAgIEdVbmlxdWVQdHI8R3N0U3RydWN0dXJlPiBleHRyYUhlYWRlcnM7CiAgICAgYm9vbCBj
b21wcmVzczsKQEAgLTMxMyw2ICszMTQsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3NyY19p
bml0KFdlYktpdFdlYlNyYyogc3JjKQogICAgIC8vIFRoaXMgbWlnaHQgbmVlZCB0d2Vha2luZyBm
b3IgcG9ydHMgbm90IHVzaW5nIGxpYnNvdXAuCiAgICAgZ19vYmplY3Rfc2V0KHByaXYtPmFwcHNy
YywgIm1pbi1wZXJjZW50IiwgMjAsIG51bGxwdHIpOwogCisgICAgZ3N0X2Jhc2Vfc3JjX3NldF9h
dXRvbWF0aWNfZW9zKEdTVF9CQVNFX1NSQyhwcml2LT5hcHBzcmMpLCBGQUxTRSk7CisKICAgICBn
c3RfYXBwX3NyY19zZXRfY2Fwcyhwcml2LT5hcHBzcmMsIG51bGxwdHIpOwogICAgIGdzdF9hcHBf
c3JjX3NldF9zaXplKHByaXYtPmFwcHNyYywgLTEpOwogfQpAQCAtMzc1LDcgKzM3OCw3IEBAIHN0
YXRpYyB2b2lkIHdlYktpdFdlYlNyY0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQg
cHJvcElELCBHVmFsdWUqIHZhbHVlCiAgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwg
cHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9Q
X1JFU09MVkVEX0xPQ0FUSU9OOgotICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHBy
aXYtPnJlc29sdmVkVVJJLmRhdGEoKSk7CisgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1
ZSwgcHJpdi0+cmVkaXJlY3RlZFVSSS5pc051bGwoKSA/IHByaXYtPm9yaWdpbmFsVVJJLmRhdGEo
KSA6IHByaXYtPnJlZGlyZWN0ZWRVUkkuZGF0YSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBQUk9QX0tFRVBfQUxJVkU6CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHBy
aXYtPmtlZXBBbGl2ZSk7CkBAIC01OTcsMTAgKzYwMCw5IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdl
YlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogICAgICAgICBQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2VMb2FkZXI6OkxvYWRPcHRpb25zIGxvYWRPcHRpb25zID0gMDsKICAgICAgICAgaWYgKHJlcXVl
c3QudXJsKCkucHJvdG9jb2xJc0Jsb2IoKSkKICAgICAgICAgICAgIGxvYWRPcHRpb25zIHw9IFBs
YXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbjo6QnVmZmVyRGF0YTsKLSAgICAg
ICAgLy8gRklYTUU6IHJlcXVlc3Qgc2hvdWxkIGJlIG1vdmVkIGZvciBlZmZpY2llbmN5CiAgICAg
ICAgIHByaXYtPnJlc291cmNlID0gcHJpdi0+bG9hZGVyLT5yZXF1ZXN0UmVzb3VyY2UoUmVzb3Vy
Y2VSZXF1ZXN0KHJlcXVlc3QpLCBsb2FkT3B0aW9ucyk7CiAgICAgICAgIGlmIChwcml2LT5yZXNv
dXJjZSkgewotICAgICAgICAgICAgcHJpdi0+cmVzb3VyY2UtPnNldENsaWVudChzdGQ6Om1ha2Vf
dW5pcXVlPENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50Pihwcm90ZWN0b3IuZ2V0KCkpKTsK
KyAgICAgICAgICAgIHByaXYtPnJlc291cmNlLT5zZXRDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxD
YWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudD4ocHJvdGVjdG9yLmdldCgpLCBSZXNvdXJjZVJl
cXVlc3QocmVxdWVzdCkpKTsKICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocHJvdGVjdG9y
LmdldCgpLCAiU3RhcnRlZCByZXF1ZXN0Iik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICBHU1RfRVJST1JfT0JKRUNUKHByb3RlY3Rvci5nZXQoKSwgIkZhaWxlZCB0byBzZXR1cCBzdHJl
YW1pbmcgY2xpZW50Iik7CkBAIC02NzgsNiArNjgwLDggQEAgc3RhdGljIGdib29sZWFuIHdlYktp
dFdlYlNyY1F1ZXJ5V2l0aFBhcmVudChHc3RQYWQqIHBhZCwgR3N0T2JqZWN0KiBwYXJlbnQsIEdz
dFEKICAgICBjYXNlIEdTVF9RVUVSWV9VUkk6IHsKICAgICAgICAgV1RGOjpHTXV0ZXhMb2NrZXI8
R011dGV4PiBsb2NrZXIoKkdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7CiAgICAgICAgIGdzdF9x
dWVyeV9zZXRfdXJpKHF1ZXJ5LCBzcmMtPnByaXYtPm9yaWdpbmFsVVJJLmRhdGEoKSk7CisgICAg
ICAgIGlmICghc3JjLT5wcml2LT5yZWRpcmVjdGVkVVJJLmlzTnVsbCgpKQorICAgICAgICAgICAg
Z3N0X3F1ZXJ5X3NldF91cmlfcmVkaXJlY3Rpb24ocXVlcnksIHNyYy0+cHJpdi0+cmVkaXJlY3Rl
ZFVSSS5kYXRhKCkpOwogICAgICAgICByZXN1bHQgPSBUUlVFOwogICAgICAgICBicmVhazsKICAg
ICB9CkBAIC03NDMsNiArNzQ3LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NldFVy
aShHc3RVUklIYW5kbGVyKiBoYW5kbGVyLCBjb25zdCBnY2hhciogdXJpLCBHRXIKIAogICAgIFdU
Rjo6R011dGV4TG9ja2VyPEdNdXRleD4gbG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykp
OwogCisgICAgcHJpdi0+cmVkaXJlY3RlZFVSSSA9IENTdHJpbmcoKTsKICAgICBwcml2LT5vcmln
aW5hbFVSSSA9IENTdHJpbmcoKTsKICAgICBpZiAoIXVyaSkKICAgICAgICAgcmV0dXJuIFRSVUU7
CkBAIC04NjEsMTkgKzg2NiwxOSBAQCBib29sIHdlYktpdFNyY1Bhc3NlZENPUlNBY2Nlc3NDaGVj
ayhXZWJLaXRXZWJTcmMqIHNyYykKICAgICByZXR1cm4gc3JjLT5wcml2LT5kaWRQYXNzQWNjZXNz
Q29udHJvbENoZWNrOwogfQogCi1TdHJlYW1pbmdDbGllbnQ6OlN0cmVhbWluZ0NsaWVudChXZWJL
aXRXZWJTcmMqIHNyYykKLSAgICA6IG1fc3JjKHN0YXRpY19jYXN0PEdzdEVsZW1lbnQqPihnc3Rf
b2JqZWN0X3JlZihzcmMpKSkKK1N0cmVhbWluZ0NsaWVudDo6U3RyZWFtaW5nQ2xpZW50KFdlYktp
dFdlYlNyYyogc3JjLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQorICAgIDogbV9zcmMoR1NU
X0VMRU1FTlQoc3JjKSkKKyAgICAsIG1fcmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpKQogewogfQog
CiBTdHJlYW1pbmdDbGllbnQ6On5TdHJlYW1pbmdDbGllbnQoKQogewotICAgIGdzdF9vYmplY3Rf
dW5yZWYobV9zcmMpOwogfQogCiBjaGFyKiBTdHJlYW1pbmdDbGllbnQ6OmNyZWF0ZVJlYWRCdWZm
ZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSkKIHsKLSAgICBXZWJL
aXRXZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKG1fc3JjKTsKKyAgICBXZWJLaXRXZWJTcmMq
IHNyYyA9IFdFQktJVF9XRUJfU1JDKG1fc3JjLmdldCgpKTsKICAgICBXZWJLaXRXZWJTcmNQcml2
YXRlKiBwcml2ID0gc3JjLT5wcml2OwogCiAgICAgQVNTRVJUKCFwcml2LT5idWZmZXIpOwpAQCAt
ODkyLDEyICs4OTcsMTQgQEAgY2hhciogU3RyZWFtaW5nQ2xpZW50OjpjcmVhdGVSZWFkQnVmZmVy
KHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNpemUKIAogdm9pZCBTdHJlYW1p
bmdDbGllbnQ6OmhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCiB7Ci0gICAgV2ViS2l0V2ViU3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyhtX3Ny
Yyk7CisgICAgV2ViS2l0V2ViU3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyhtX3NyYy5nZXQoKSk7
CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKIAogICAgIEdTVF9E
RUJVR19PQkpFQ1Qoc3JjLCAiUmVjZWl2ZWQgcmVzcG9uc2U6ICVkIiwgcmVzcG9uc2UuaHR0cFN0
YXR1c0NvZGUoKSk7CiAKLSAgICBwcml2LT5yZXNvbHZlZFVSSSA9IHJlc3BvbnNlLnVybCgpLnN0
cmluZygpLnV0ZjgoKTsKKyAgICBhdXRvIHJlc29sdmVkVVJJID0gcmVzcG9uc2UudXJsKCkuc3Ry
aW5nKCkudXRmOCgpOworICAgIGlmIChwcml2LT5vcmlnaW5hbFVSSSAhPSByZXNvbHZlZFVSSSkK
KyAgICAgICAgcHJpdi0+cmVkaXJlY3RlZFVSSSA9IFdURk1vdmUocmVzb2x2ZWRVUkkpOwogCiAg
ICAgaWYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPj0gNDAwKSB7CiAgICAgICAgIEdTVF9F
TEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIFJFQUQsICgiUmVjZWl2ZWQgJWQgSFRUUCBlcnJv
ciBjb2RlIiwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSksIChudWxscHRyKSk7CkBAIC05NDQs
MTEgKzk1MSwyNSBAQCB2b2lkIFN0cmVhbWluZ0NsaWVudDo6aGFuZGxlUmVzcG9uc2VSZWNlaXZl
ZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICAgICAgZ3N0X2FwcF9zcmNf
c2V0X3NpemUocHJpdi0+YXBwc3JjLCAtMSk7CiAKICAgICBnc3RfYXBwX3NyY19zZXRfY2Fwcyhw
cml2LT5hcHBzcmMsIG51bGxwdHIpOworCisgICAgR3N0U3RydWN0dXJlKiBodHRwSGVhZGVycyA9
IGdzdF9zdHJ1Y3R1cmVfbmV3X2VtcHR5KCJodHRwLWhlYWRlcnMiKTsKKyAgICBnc3Rfc3RydWN0
dXJlX3NldChodHRwSGVhZGVycywgInVyaSIsIEdfVFlQRV9TVFJJTkcsIHByaXYtPm9yaWdpbmFs
VVJJLmRhdGEoKSwgbnVsbHB0cik7CisgICAgaWYgKCFwcml2LT5yZWRpcmVjdGVkVVJJLmlzTnVs
bCgpKQorICAgICAgICBnc3Rfc3RydWN0dXJlX3NldChodHRwSGVhZGVycywgInJlZGlyZWN0aW9u
LXVyaSIsIEdfVFlQRV9TVFJJTkcsIHByaXYtPnJlZGlyZWN0ZWRVUkkuZGF0YSgpLCBudWxscHRy
KTsKKyAgICBHVW5pcXVlUHRyPEdzdFN0cnVjdHVyZT4gaGVhZGVycyhnc3Rfc3RydWN0dXJlX25l
d19lbXB0eSgicmVxdWVzdC1oZWFkZXJzIikpOworICAgIGZvciAoY29uc3QgYXV0byYgaGVhZGVy
IDogbV9yZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSkKKyAgICAgICAgZ3N0X3N0cnVjdHVyZV9z
ZXQoaGVhZGVycy5nZXQoKSwgaGVhZGVyLmtleS51dGY4KCkuZGF0YSgpLCBHX1RZUEVfU1RSSU5H
LCBoZWFkZXIudmFsdWUudXRmOCgpLmRhdGEoKSwgbnVsbHB0cik7CisgICAgZ3N0X3N0cnVjdHVy
ZV9zZXQoaHR0cEhlYWRlcnMsICJyZXF1ZXN0LWhlYWRlcnMiLCBHU1RfVFlQRV9TVFJVQ1RVUkUs
IGhlYWRlcnMuZ2V0KCksIG51bGxwdHIpOworICAgIGhlYWRlcnMucmVzZXQoZ3N0X3N0cnVjdHVy
ZV9uZXdfZW1wdHkoInJlc3BvbnNlLWhlYWRlcnMiKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBo
ZWFkZXIgOiByZXNwb25zZS5odHRwSGVhZGVyRmllbGRzKCkpCisgICAgICAgIGdzdF9zdHJ1Y3R1
cmVfc2V0KGhlYWRlcnMuZ2V0KCksIGhlYWRlci5rZXkudXRmOCgpLmRhdGEoKSwgR19UWVBFX1NU
UklORywgaGVhZGVyLnZhbHVlLnV0ZjgoKS5kYXRhKCksIG51bGxwdHIpOworICAgIGdzdF9zdHJ1
Y3R1cmVfc2V0KGh0dHBIZWFkZXJzLCAicmVzcG9uc2UtaGVhZGVycyIsIEdTVF9UWVBFX1NUUlVD
VFVSRSwgaGVhZGVycy5nZXQoKSwgbnVsbHB0cik7CisgICAgZ3N0X3BhZF9wdXNoX2V2ZW50KEdT
VF9CQVNFX1NSQ19QQUQocHJpdi0+YXBwc3JjKSwgZ3N0X2V2ZW50X25ld19jdXN0b20oR1NUX0VW
RU5UX0NVU1RPTV9ET1dOU1RSRUFNX1NUSUNLWSwgaHR0cEhlYWRlcnMpKTsKIH0KIAogdm9pZCBT
dHJlYW1pbmdDbGllbnQ6OmhhbmRsZURhdGFSZWNlaXZlZChjb25zdCBjaGFyKiBkYXRhLCBpbnQg
bGVuZ3RoKQogewotICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkMobV9zcmMp
OworICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkMobV9zcmMuZ2V0KCkpOwog
ICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAKICAgICBXVEY6OkdN
dXRleExvY2tlcjxHTXV0ZXg+IGxvY2tlcigqR1NUX09CSkVDVF9HRVRfTE9DSyhzcmMpKTsKQEAg
LTEwMTUsNyArMTAzNiw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVEYXRhUmVjZWl2
ZWQoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIAogdm9pZCBTdHJlYW1pbmdDbGllbnQ6
OmhhbmRsZU5vdGlmeUZpbmlzaGVkKCkKIHsKLSAgICBXZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJ
VF9XRUJfU1JDKG1fc3JjKTsKKyAgICBXZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JD
KG1fc3JjLmdldCgpKTsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2
OwogCiAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJIYXZlIEVPUyIpOwpAQCAtMTAyNyw4ICsx
MDQ4LDggQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmhhbmRsZU5vdGlmeUZpbmlzaGVkKCkKICAg
ICB9CiB9CiAKLUNhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpDYWNoZWRSZXNvdXJjZVN0
cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqIHNyYykKLSAgICA6IFN0cmVhbWluZ0NsaWVudChz
cmMpCitDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6Q2FjaGVkUmVzb3VyY2VTdHJlYW1p
bmdDbGllbnQoV2ViS2l0V2ViU3JjKiBzcmMsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCisg
ICAgOiBTdHJlYW1pbmdDbGllbnQoc3JjLCBXVEZNb3ZlKHJlcXVlc3QpKQogewogfQogCkBAIC0x
MDQ1LDcgKzEwNjYsNyBAQCBjaGFyKiBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6Z2V0
T3JDcmVhdGVSZWFkQnVmZmVyKFBsYXRmb3JtTWVkaWFSZXNvdXJjZQogCiB2b2lkIENhY2hlZFJl
c291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNv
dXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIFdlYktpdFdl
YlNyY1ByaXZhdGUqIHByaXYgPSBXRUJLSVRfV0VCX1NSQyhtX3NyYyktPnByaXY7CisgICAgV2Vi
S2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9XRUJfU1JDKG1fc3JjLmdldCgpKS0+cHJp
djsKICAgICBwcml2LT5kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrID0gcHJpdi0+cmVzb3VyY2Ut
PmRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2soKTsKICAgICBoYW5kbGVSZXNwb25zZVJlY2VpdmVk
KHJlc3BvbnNlKTsKIH0KQEAgLTEwNTcsNyArMTA3OCw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VT
dHJlYW1pbmdDbGllbnQ6OmRhdGFSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25z
dCBjCiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OmFjY2Vzc0NvbnRyb2xD
aGVja0ZhaWxlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvcikKIHsKLSAgICBXZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKG1fc3JjKTsK
KyAgICBXZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKG1fc3JjLmdldCgpKTsKICAg
ICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIFJFU09VUkNFLCBSRUFELCAoIiVzIiwgZXJyb3IubG9j
YWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSwgKG51bGxwdHIpKTsKICAgICBnc3Rf
YXBwX3NyY19lbmRfb2Zfc3RyZWFtKHNyYy0+cHJpdi0+YXBwc3JjKTsKICAgICB3ZWJLaXRXZWJT
cmNTdG9wKHNyYyk7CkBAIC0xMDY1LDcgKzEwODYsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlU3Ry
ZWFtaW5nQ2xpZW50OjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291
cgogCiB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50Ojpsb2FkRmFpbGVkKFBsYXRm
b3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAgIFdl
YktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkMobV9zcmMpOworICAgIFdlYktpdFdlYlNy
Yyogc3JjID0gV0VCS0lUX1dFQl9TUkMobV9zcmMuZ2V0KCkpOwogCiAgICAgaWYgKCFlcnJvci5p
c0NhbmNlbGxhdGlvbigpKSB7CiAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiSGF2ZSBm
YWlsdXJlOiAlcyIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7
CkBAIC0xMDgxLDE5ICsxMTAyLDE5IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGll
bnQ6OmxvYWRGaW5pc2hlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKQogfQogCiBSZXNvdXJjZUhh
bmRsZVN0cmVhbWluZ0NsaWVudDo6UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQoV2ViS2l0
V2ViU3JjKiBzcmMsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCi0gICAgOiBTdHJlYW1pbmdD
bGllbnQoc3JjKQorICAgIDogU3RyZWFtaW5nQ2xpZW50KHNyYywgV1RGTW92ZShyZXF1ZXN0KSkK
IHsKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0
ZXgpOwotICAgIG1fdGhyZWFkID0gY3JlYXRlVGhyZWFkKCJSZXNvdXJjZUhhbmRsZVN0cmVhbWlu
Z0NsaWVudCIsIFt0aGlzLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KV0geworICAgIG1fdGhy
ZWFkID0gY3JlYXRlVGhyZWFkKCJSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCIsIFt0aGlz
XSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1faW5pdGlhbGl6
ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgICAgICAgICBtX3J1bkxvb3AgPSAmUnVuTG9v
cDo6Y3VycmVudCgpOwogI2lmIFVTRShTT1VQKQogICAgICAgICAgICAgbV9zZXNzaW9uID0gc3Rk
OjptYWtlX3VuaXF1ZTxTb3VwTmV0d29ya1Nlc3Npb24+KCk7Ci0gICAgICAgICAgICBtX3Jlc291
cmNlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSgqbV9zZXNzaW9uLCByZXF1ZXN0LCB0aGlzLCB0
cnVlLCBmYWxzZSk7CisgICAgICAgICAgICBtX3Jlc291cmNlID0gUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZSgqbV9zZXNzaW9uLCBtX3JlcXVlc3QsIHRoaXMsIHRydWUsIGZhbHNlKTsKICNlbHNlCiAg
ICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBjcmVhdGUgd2lsbCBoaXQgYW4gYXNzZXJ0IGluIGRl
YnVnIGJ1aWxkcy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjcwMDMuCi0gICAgICAgICAgICBtX3Jlc291cmNlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShu
dWxscHRyIC8qY29udGV4dCovLCByZXF1ZXN0LCB0aGlzLCB0cnVlLCBmYWxzZSk7CisgICAgICAg
ICAgICBtX3Jlc291cmNlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShudWxscHRyIC8qY29udGV4
dCovLCBtX3JlcXVlc3QsIHRoaXMsIHRydWUsIGZhbHNlKTsKICNlbmRpZgogICAgICAgICAgICAg
bV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICAgICAgfQpAQCAt
MTE5OSw3ICsxMjIwLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6ZGlk
RmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJl
YW1pbmdDbGllbnQ6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKIHsKLSAgICBXZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKG1fc3Jj
KTsKKyAgICBXZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKG1fc3JjLmdldCgpKTsK
IAogICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiSGF2ZSBmYWlsdXJlOiAlcyIsIGVycm9yLmxv
Y2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgR1NUX0VMRU1FTlRfRVJS
T1Ioc3JjLCBSRVNPVVJDRSwgRkFJTEVELCAoIiVzIiwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRp
b24oKS51dGY4KCkuZGF0YSgpKSwgKG51bGxwdHIpKTsKQEAgLTEyMDgsNyArMTIyOSw3IEBAIHZv
aWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBSZXNvdXJjZUVycm9yCiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGll
bnQ6Ondhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKQogewotICAgIFdlYktpdFdlYlNyYyogc3Jj
ID0gV0VCS0lUX1dFQl9TUkMobV9zcmMpOworICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lU
X1dFQl9TUkMobV9zcmMuZ2V0KCkpOwogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHVyaTsKIAogICAg
IEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiUmVxdWVzdCB3YXMgYmxvY2tlZCIpOwpAQCAtMTIyMiw3
ICsxMjQzLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6d2FzQmxvY2tl
ZChSZXNvdXJjZUhhbmRsZSopCiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6
OmNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKQogewotICAgIFdlYktpdFdlYlNyYyogc3Jj
ID0gV0VCS0lUX1dFQl9TUkMobV9zcmMpOworICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lU
X1dFQl9TUkMobV9zcmMuZ2V0KCkpOwogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHVyaTsKIAogICAg
IEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiQ2Fubm90IHNob3cgVVJMIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308811</attachid>
            <date>2017-05-02 02:30:53 -0700</date>
            <delta_ts>2017-05-02 02:46:09 -0700</delta_ts>
            <desc>Rebased patch</desc>
            <filename>wk-dailymotion.diff</filename>
            <type>text/plain</type>
            <size>20092</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyZjY4ZWQ3MmI2My4uYjNjN2VjOTcwMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNy0wNC0xNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gRGFpbHltb3Rpb24gbGl2ZSBzdHJlYW0g
dmlkZW9zIGRvbid0IHBsYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3MDc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZSB2aWRlbyBzaG93cyBhIG1lc3NhZ2Ugc2F5aW5nIHRoYXQgYW4gZXJyb3Ig
b2NjdXJyZWQgYW5kIG5vdGhpbmcgaXMgcGxheWVkLiBUaGVyZSBhcmUgYWN0dWFsbHkgc2V2ZXJh
bAorICAgICAgICBwcm9ibGVtcyB3aXRoIGRhaWx5bW90aW9uLiBUaGUgbWFpbiBpc3N1ZSBpcyB0
aGF0IFVSTHMgYXJlIHJlZGlyZWN0ZWQgYnkgdGhlIHNlcnZlciwgYW5kIEdTdHJlYW1lciBuZWVk
cyB0bworICAgICAgICBrbm93IHRoZSByZWRpcmVjdGVkIFVSTC4gT25jZSBHU3RyZWFtZXIga25v
d3MgdGhlIHJlZGlyZWN0ZWQgVVJMIHRoZSBlcnJvciBtZXNzYWdlIG5vIGxvbmdlciBhcHBlYXJz
LCB0aGUgdmlkZW8KKyAgICAgICAgc3RhcnRzIGJ1dCBpdCBhbHdheXMgc3RvcHMgYWZ0ZXIgYSBm
ZXcgc2Vjb25kcy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBzb3VyY2UgcmVjZWl2ZXMgYW4gZWFybHkg
RU9TIHdoaWxlIHN0aWxsCisgICAgICAgIGRvd25sb2FkaW5nIHRoZSBmcmFnbWVudHMuIFRoZSBy
ZWFzb24gb2YgdGhlIGVhcmx5IEVPUyBpcyBiZWNhdXNlIGRhaWx5bW90aW9uIHNlbmRzIGEgd3Jv
bmcgQ29udGVudC1MZW5ndGggaGVhZGVyLAorICAgICAgICBzb21ldGhpbmcgdGhhdCBpcyBleHBl
Y3RlZCB0byBoYXBwZW4gYW5kIHdlIGNvcnJlY3RseSBoYW5kbGUgdGhhdCBjYXNlIHdoZW4gcmVj
ZWl2aW5nIHRoZSBkYXRhLCBieSB1cGRhdGluZyB0aGUKKyAgICAgICAgc2l6ZSBhY2NvcmRpbmds
eSBpZiB0aGUgYnl0ZXMgcmVjZWl2ZWQgYXJlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjb250
ZW50IGxlbmd0aC4gVGhpcyBwYXJ0aWN1bGFyIGNhc2UKKyAgICAgICAgZG9lc24ndCB3b3JrIHdl
bGwgd2l0aCBHU3RyZWFtZXIgYXV0b21hdGljIEVPUyBoYW5kbGluZywgd2hpY2ggaXMgdGhlIGRl
ZmF1bHQuIEF0IHNvbWUgcG9pbnQsIEdTdHJlYW1lciBkZXRlY3RzCisgICAgICAgIHRoYXQgdGhl
IGJ5dGVzIHJlY2VpdmVkIGFyZSBhdCBsZWFzdCB0aGUgZXhwZWN0ZWQgb25lcyBhbmQgZW1pdHMg
YSBHU1RfRVZFTlRfRU9TIHRoYXQgdGhlIEdzdFVyaURvd25sb2FkZXIKKyAgICAgICAgaGFuZGxl
cyBmaW5pc2hpbmcgdGhlIGRvd25sb2FkIGVhcmx5LiBXZSBzaG91bGQgYWx3YXlzIGRpc2FibGUg
YXV0b21hdGljIEVPUywgc2luY2Ugd2Uga25vdyB3aGVuIEVPUyBhY3R1YWxseQorICAgICAgICBo
YXBwZW5zIGFuZCB3ZSBhbHJlYWR5IGNhbGwgZ3N0X2FwcF9zcmNfZW5kX29mX3N0cmVhbSgpLiBU
aGlzIHBhdGNoIGFsc28gZW1pdHMgYSBHU1RfRVZFTlRfQ1VTVE9NX0RPV05TVFJFQU1fU1RJQ0tZ
CisgICAgICAgIGV2ZW50IHRvIGxldCBHU3RyZWFtZXIga25vdyBhYm91dCB0aGUgSFRUUCBoZWFk
ZXJzIHNlbnQgYW5kIHJlY2VpdmVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJraXRfd2Vi
X3NyY19pbml0KTogRGlzYWJsZSBhdXRvbWF0aWMgRU9TLgorICAgICAgICAod2ViS2l0V2ViU3Jj
R2V0UHJvcGVydHkpOiBSZXR1cm4gdGhlIHJlZGlyZWN0ZWQgVVJMIGluIGNhc2Ugb2YgcmVkaXJl
Y3Rpb24uCisgICAgICAgICh3ZWJLaXRXZWJTcmNTdGFydCk6IFBhc3MgdGhlIFJlc291cmNlUmVx
dWVzdCB0byB0aGUgc3RyZWFtIGNsaWVudHMuCisgICAgICAgICh3ZWJLaXRXZWJTcmNRdWVyeVdp
dGhQYXJlbnQpOiBTZXQgdGhlIHJlZGlyZWN0ZWQgVVJMIGluIHRoZSBxdWVyeSBpbiBjYXNlIG9m
IHJlZGlyZWN0aW9uLgorICAgICAgICAod2ViS2l0V2ViU3JjU2V0VXJpKTogQ2xlYXIgYWxzbyB0
aGUgcmVkaXJlY3RlZCBVUkwgd2hlbiBzZXR0aW5nIGEgbmV3IFVSSS4KKyAgICAgICAgKFN0cmVh
bWluZ0NsaWVudDo6U3RyZWFtaW5nQ2xpZW50KTogVXNlIEdSZWZQdHIgZm9yIHRoZSBzb3VyY2Ug
YW5kIGluaXRpYWxpemUgdGhlIHJlcXVlc3QgdG9vLgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50
Ojp+U3RyZWFtaW5nQ2xpZW50KTogUmVtb3ZlIGV4cGxpY2l0IHVucmVmLgorICAgICAgICAoU3Ry
ZWFtaW5nQ2xpZW50OjpjcmVhdGVSZWFkQnVmZmVyKToKKyAgICAgICAgKFN0cmVhbWluZ0NsaWVu
dDo6aGFuZGxlUmVzcG9uc2VSZWNlaXZlZCk6IEluaXRpYWxpemUgdGhlIHJlZGlyZWN0ZWQgVVJM
IGluIGNhc2Ugb2YgcmVkaXJlY3Rpb24uIENyZWF0ZSBhbmQgcHVzaAorICAgICAgICB0aGUgSFRU
UCBoZWFkZXJzIGV2ZW50LgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVEYXRhUmVj
ZWl2ZWQpOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVOb3RpZnlGaW5pc2hlZCk6
CisgICAgICAgIChDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6Q2FjaGVkUmVzb3VyY2VT
dHJlYW1pbmdDbGllbnQpOgorICAgICAgICAoQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6
OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGll
bnQ6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZCk6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZVN0
cmVhbWluZ0NsaWVudDo6bG9hZEZhaWxlZCk6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZVN0cmVh
bWluZ0NsaWVudDo6UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQpOgorICAgICAgICAoUmVz
b3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OmRpZEZhaWwpOgorICAgICAgICAoUmVzb3VyY2VI
YW5kbGVTdHJlYW1pbmdDbGllbnQ6Ondhc0Jsb2NrZWQpOgorICAgICAgICAoUmVzb3VyY2VIYW5k
bGVTdHJlYW1pbmdDbGllbnQ6OmNhbm5vdFNob3dVUkwpOgorCiAyMDE3LTA0LTEyICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBDcmFz
aCBhdCBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y2xlYXJDbGllbnQoKSB3aGVuIHN0cmVhbWlu
ZyBsaXZlIHZpZGVvIGZyb20gZGFpbHltb3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMGFlY2YwOTNhZjguLjA4MWQxZDMyNGZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2Vi
U291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtNTMsNzcgKzUzLDc4
IEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogY2xhc3MgU3RyZWFtaW5nQ2xpZW50IHsK
LSAgICBwdWJsaWM6Ci0gICAgICAgIFN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqKTsKLSAg
ICAgICAgdmlydHVhbCB+U3RyZWFtaW5nQ2xpZW50KCk7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAg
ICAgIGNoYXIqIGNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYg
YWN0dWFsU2l6ZSk7Ci0gICAgICAgIHZvaWQgaGFuZGxlUmVzcG9uc2VSZWNlaXZlZChjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgICAgIHZvaWQgaGFuZGxlRGF0YVJlY2VpdmVkKGNvbnN0
IGNoYXIqLCBpbnQpOwotICAgICAgICB2b2lkIGhhbmRsZU5vdGlmeUZpbmlzaGVkKCk7Ci0KLSAg
ICAgICAgR3N0RWxlbWVudCogbV9zcmM7CitwdWJsaWM6CisgICAgU3RyZWFtaW5nQ2xpZW50KFdl
YktpdFdlYlNyYyosIFJlc291cmNlUmVxdWVzdCYmKTsKKyAgICB2aXJ0dWFsIH5TdHJlYW1pbmdD
bGllbnQoKTsKKworcHJvdGVjdGVkOgorICAgIGNoYXIqIGNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90
IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSk7CisgICAgdm9pZCBoYW5kbGVSZXNw
b25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGhhbmRsZURh
dGFSZWNlaXZlZChjb25zdCBjaGFyKiwgaW50KTsKKyAgICB2b2lkIGhhbmRsZU5vdGlmeUZpbmlz
aGVkKCk7CisKKyAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1fc3JjOworICAgIFJlc291cmNlUmVx
dWVzdCBtX3JlcXVlc3Q7CiB9OwogCiBjbGFzcyBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVu
dCBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQsIHB1YmxpYyBTdHJl
YW1pbmdDbGllbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENhY2hlZFJlc291cmNlU3Ry
ZWFtaW5nQ2xpZW50KTsKLSAgICBwdWJsaWM6Ci0gICAgICAgIENhY2hlZFJlc291cmNlU3RyZWFt
aW5nQ2xpZW50KFdlYktpdFdlYlNyYyopOwotICAgICAgICB2aXJ0dWFsIH5DYWNoZWRSZXNvdXJj
ZVN0cmVhbWluZ0NsaWVudCgpOworcHVibGljOgorICAgIENhY2hlZFJlc291cmNlU3RyZWFtaW5n
Q2xpZW50KFdlYktpdFdlYlNyYyosIFJlc291cmNlUmVxdWVzdCYmKTsKKyAgICB2aXJ0dWFsIH5D
YWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudCgpOwogCi0gICAgcHJpdmF0ZToKLSAgICAgICAg
Ly8gUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50IHZpcnR1YWwgbWV0aG9kcy4KK3ByaXZhdGU6
CisgICAgLy8gUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50IHZpcnR1YWwgbWV0aG9kcy4KICNp
ZiBVU0UoU09VUCkKLSAgICAgICAgY2hhciogZ2V0T3JDcmVhdGVSZWFkQnVmZmVyKFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYsIHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNpemUp
IG92ZXJyaWRlOworICAgIGNoYXIqIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmLCBzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKSBvdmVy
cmlkZTsKICNlbmRpZgotICAgICAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRp
YVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwotICAgICAgICB2
b2lkIGRhdGFSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBjaGFyKiwgaW50
KSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBhY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoUGxhdGZv
cm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwotICAgICAg
ICB2b2lkIGxvYWRGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VF
cnJvciYpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGxvYWRGaW5pc2hlZChQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOworICAgIHZv
aWQgZGF0YVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IGNoYXIqLCBpbnQp
IG92ZXJyaWRlOworICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFBsYXRmb3JtTWVk
aWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKKyAgICB2b2lkIGxv
YWRGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIG92
ZXJyaWRlOworICAgIHZvaWQgbG9hZEZpbmlzaGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpIG92
ZXJyaWRlOwogfTsKIAogY2xhc3MgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ+LCBw
dWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQsIHB1YmxpYyBTdHJlYW1pbmdDbGllbnQgewotICAg
IHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVu
dD4gY3JlYXRlKFdlYktpdFdlYlNyYyogc3JjLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXNvdXJjZUhhbmRs
ZVN0cmVhbWluZ0NsaWVudChzcmMsIFdURk1vdmUocmVxdWVzdCkpKTsKLSAgICAgICAgfQotICAg
ICAgICB2aXJ0dWFsIH5SZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCgpOworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ+IGNyZWF0ZShXZWJL
aXRXZWJTcmMqIHNyYywgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KHNyYywg
V1RGTW92ZShyZXF1ZXN0KSkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5SZXNvdXJjZUhhbmRsZVN0
cmVhbWluZ0NsaWVudCgpOwogCi0gICAgICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIHZvaWQg
aW52YWxpZGF0ZSgpOwogCi0gICAgICAgIC8vIFN0cmVhbWluZ0NsaWVudCB2aXJ0dWFsIG1ldGhv
ZHMuCi0gICAgICAgIGJvb2wgbG9hZEZhaWxlZCgpIGNvbnN0OwotICAgICAgICB2b2lkIHNldERl
ZmVyc0xvYWRpbmcoYm9vbCk7CisgICAgLy8gU3RyZWFtaW5nQ2xpZW50IHZpcnR1YWwgbWV0aG9k
cy4KKyAgICBib29sIGxvYWRGYWlsZWQoKSBjb25zdDsKKyAgICB2b2lkIHNldERlZmVyc0xvYWRp
bmcoYm9vbCk7CiAKLSAgICBwcml2YXRlOgotICAgICAgICBSZXNvdXJjZUhhbmRsZVN0cmVhbWlu
Z0NsaWVudChXZWJLaXRXZWJTcmMqLCBSZXNvdXJjZVJlcXVlc3QmJik7Ci0gICAgICAgIHZvaWQg
Y2xlYW51cEFuZFN0b3BSdW5Mb29wKCk7Citwcml2YXRlOgorICAgIFJlc291cmNlSGFuZGxlU3Ry
ZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyosIFJlc291cmNlUmVxdWVzdCYmKTsKKyAgICB2b2lk
IGNsZWFudXBBbmRTdG9wUnVuTG9vcCgpOwogCi0gICAgICAgIC8vIFJlc291cmNlSGFuZGxlQ2xp
ZW50IHZpcnR1YWwgbWV0aG9kcy4KKyAgICAvLyBSZXNvdXJjZUhhbmRsZUNsaWVudCB2aXJ0dWFs
IG1ldGhvZHMuCiAjaWYgVVNFKFNPVVApCi0gICAgICAgIGNoYXIqIGdldE9yQ3JlYXRlUmVhZEJ1
ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKSBvdmVycmlkZTsK
KyAgICBjaGFyKiBnZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNp
emVfdCYgYWN0dWFsU2l6ZSkgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAgICAgUmVzb3VyY2VSZXF1
ZXN0IHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYmLCBS
ZXNvdXJjZVJlc3BvbnNlJiYpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGRpZFJlY2VpdmVSZXNw
b25zZShSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJikgb3ZlcnJpZGU7Ci0gICAg
ICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5z
aWduZWQsIGludCkgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihSZXNv
dXJjZUhhbmRsZSosIFJlZjxTaGFyZWRCdWZmZXI+JiYsIGludCBlbmNvZGVkTGVuZ3RoKSBvdmVy
cmlkZTsKLSAgICAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikgb3Zl
cnJpZGU7Ci0gICAgICAgIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlRXJyb3ImKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCB3YXNCbG9ja2VkKFJlc291cmNlSGFu
ZGxlKikgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRs
ZSopIG92ZXJyaWRlOwotCi0gICAgICAgIFJlZlB0cjxUaHJlYWQ+IG1fdGhyZWFkOwotICAgICAg
ICBMb2NrIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKLSAgICAgICAgQ29uZGl0
aW9uIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb247Ci0gICAgICAgIFJ1bkxvb3AqIG1fcnVu
TG9vcCB7IG51bGxwdHIgfTsKLSAgICAgICAgTG9jayBtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRp
b25NdXRleDsKLSAgICAgICAgQ29uZGl0aW9uIG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbjsK
LSAgICAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX3Jlc291cmNlOworICAgIFJlc291cmNl
UmVxdWVzdCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3Qm
JiwgUmVzb3VyY2VSZXNwb25zZSYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNw
b25zZShSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25l
ZCwgaW50KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUmVzb3VyY2VIYW5k
bGUqLCBSZWY8U2hhcmVkQnVmZmVyPiYmLCBpbnQgZW5jb2RlZExlbmd0aCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJy
aWRlOworICAgIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOworICAg
IHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOworCisgICAgUmVm
UHRyPFRocmVhZD4gbV90aHJlYWQ7CisgICAgTG9jayBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0
aW9uTXV0ZXg7CisgICAgQ29uZGl0aW9uIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb247Cisg
ICAgUnVuTG9vcCogbV9ydW5Mb29wIHsgbnVsbHB0ciB9OworICAgIExvY2sgbV90ZXJtaW5hdGVS
dW5Mb29wQ29uZGl0aW9uTXV0ZXg7CisgICAgQ29uZGl0aW9uIG1fdGVybWluYXRlUnVuTG9vcENv
bmRpdGlvbjsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG1fcmVzb3VyY2U7CiAjaWYgVVNF
KFNPVVApCi0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTb3VwTmV0d29ya1Nlc3Npb24+IG1fc2Vz
c2lvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U291cE5ldHdvcmtTZXNzaW9uPiBtX3Nlc3Npb247
CiAjZW5kaWYKIH07CiAKQEAgLTE0MCw3ICsxNDEsNyBAQCBzdHJ1Y3QgX1dlYktpdFdlYlNyY1By
aXZhdGUgewogICAgIEdzdEFwcFNyYyogYXBwc3JjOwogICAgIEdzdFBhZCogc3JjcGFkOwogICAg
IENTdHJpbmcgb3JpZ2luYWxVUkk7Ci0gICAgQ1N0cmluZyByZXNvbHZlZFVSSTsKKyAgICBDU3Ry
aW5nIHJlZGlyZWN0ZWRVUkk7CiAgICAgYm9vbCBrZWVwQWxpdmU7CiAgICAgR1VuaXF1ZVB0cjxH
c3RTdHJ1Y3R1cmU+IGV4dHJhSGVhZGVyczsKICAgICBib29sIGNvbXByZXNzOwpAQCAtMzE3LDYg
KzMxOCw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc3JjX2luaXQoV2ViS2l0V2ViU3JjKiBz
cmMpCiAgICAgLy8gVGhpcyBtaWdodCBuZWVkIHR3ZWFraW5nIGZvciBwb3J0cyBub3QgdXNpbmcg
bGlic291cC4KICAgICBnX29iamVjdF9zZXQocHJpdi0+YXBwc3JjLCAibWluLXBlcmNlbnQiLCAy
MCwgbnVsbHB0cik7CiAKKyAgICBnc3RfYmFzZV9zcmNfc2V0X2F1dG9tYXRpY19lb3MoR1NUX0JB
U0VfU1JDKHByaXYtPmFwcHNyYyksIEZBTFNFKTsKKwogICAgIGdzdF9hcHBfc3JjX3NldF9jYXBz
KHByaXYtPmFwcHNyYywgbnVsbHB0cik7CiAgICAgZ3N0X2FwcF9zcmNfc2V0X3NpemUocHJpdi0+
YXBwc3JjLCAtMSk7CiB9CkBAIC0zNzksNyArMzgyLDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2Vi
U3JjR2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSUQsIEdWYWx1ZSogdmFs
dWUKICAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCBwcml2LT5vcmlnaW5hbFVSSS5k
YXRhKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBST1BfUkVTT0xWRURfTE9DQVRJT046
Ci0gICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgcHJpdi0+cmVzb2x2ZWRVUkkuZGF0
YSgpKTsKKyAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCBwcml2LT5yZWRpcmVjdGVk
VVJJLmlzTnVsbCgpID8gcHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpIDogcHJpdi0+cmVkaXJlY3Rl
ZFVSSS5kYXRhKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBST1BfS0VFUF9BTElWRToK
ICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+a2VlcEFsaXZlKTsKQEAg
LTU5OSwxMCArNjAyLDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2Vi
U3JjKiBzcmMpCiAgICAgICAgIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlv
bnMgbG9hZE9wdGlvbnMgPSAwOwogICAgICAgICBpZiAocmVxdWVzdC51cmwoKS5wcm90b2NvbElz
QmxvYigpKQogICAgICAgICAgICAgbG9hZE9wdGlvbnMgfD0gUGxhdGZvcm1NZWRpYVJlc291cmNl
TG9hZGVyOjpMb2FkT3B0aW9uOjpCdWZmZXJEYXRhOwotICAgICAgICAvLyBGSVhNRTogcmVxdWVz
dCBzaG91bGQgYmUgbW92ZWQgZm9yIGVmZmljaWVuY3kKICAgICAgICAgcHJpdi0+cmVzb3VyY2Ug
PSBwcml2LT5sb2FkZXItPnJlcXVlc3RSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCks
IGxvYWRPcHRpb25zKTsKICAgICAgICAgaWYgKHByaXYtPnJlc291cmNlKSB7Ci0gICAgICAgICAg
ICBwcml2LT5yZXNvdXJjZS0+c2V0Q2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8Q2FjaGVkUmVzb3Vy
Y2VTdHJlYW1pbmdDbGllbnQ+KHByb3RlY3Rvci5nZXQoKSkpOworICAgICAgICAgICAgcHJpdi0+
cmVzb3VyY2UtPnNldENsaWVudChzdGQ6Om1ha2VfdW5pcXVlPENhY2hlZFJlc291cmNlU3RyZWFt
aW5nQ2xpZW50Pihwcm90ZWN0b3IuZ2V0KCksIFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSkpOwog
ICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwcm90ZWN0b3IuZ2V0KCksICJTdGFydGVkIHJl
cXVlc3QiKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qo
cHJvdGVjdG9yLmdldCgpLCAiRmFpbGVkIHRvIHNldHVwIHN0cmVhbWluZyBjbGllbnQiKTsKQEAg
LTY4MCw2ICs2ODIsOCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjUXVlcnlXaXRoUGFy
ZW50KEdzdFBhZCogcGFkLCBHc3RPYmplY3QqIHBhcmVudCwgR3N0UQogICAgIGNhc2UgR1NUX1FV
RVJZX1VSSTogewogICAgICAgICBXVEY6OkdNdXRleExvY2tlcjxHTXV0ZXg+IGxvY2tlcigqR1NU
X09CSkVDVF9HRVRfTE9DSyhzcmMpKTsKICAgICAgICAgZ3N0X3F1ZXJ5X3NldF91cmkocXVlcnks
IHNyYy0+cHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpKTsKKyAgICAgICAgaWYgKCFzcmMtPnByaXYt
PnJlZGlyZWN0ZWRVUkkuaXNOdWxsKCkpCisgICAgICAgICAgICBnc3RfcXVlcnlfc2V0X3VyaV9y
ZWRpcmVjdGlvbihxdWVyeSwgc3JjLT5wcml2LT5yZWRpcmVjdGVkVVJJLmRhdGEoKSk7CiAgICAg
ICAgIHJlc3VsdCA9IFRSVUU7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTc0NSw2ICs3NDks
NyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU2V0VXJpKEdzdFVSSUhhbmRsZXIqIGhh
bmRsZXIsIGNvbnN0IGdjaGFyKiB1cmksIEdFcgogCiAgICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011
dGV4PiBsb2NrZXIoKkdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7CiAKKyAgICBwcml2LT5yZWRp
cmVjdGVkVVJJID0gQ1N0cmluZygpOwogICAgIHByaXYtPm9yaWdpbmFsVVJJID0gQ1N0cmluZygp
OwogICAgIGlmICghdXJpKQogICAgICAgICByZXR1cm4gVFJVRTsKQEAgLTg2MywxOSArODY4LDE5
IEBAIGJvb2wgd2ViS2l0U3JjUGFzc2VkQ09SU0FjY2Vzc0NoZWNrKFdlYktpdFdlYlNyYyogc3Jj
KQogICAgIHJldHVybiBzcmMtPnByaXYtPmRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2s7CiB9CiAK
LVN0cmVhbWluZ0NsaWVudDo6U3RyZWFtaW5nQ2xpZW50KFdlYktpdFdlYlNyYyogc3JjKQotICAg
IDogbV9zcmMoc3RhdGljX2Nhc3Q8R3N0RWxlbWVudCo+KGdzdF9vYmplY3RfcmVmKHNyYykpKQor
U3RyZWFtaW5nQ2xpZW50OjpTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiBzcmMsIFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QpCisgICAgOiBtX3NyYyhHU1RfRUxFTUVOVChzcmMpKQorICAg
ICwgbV9yZXF1ZXN0KFdURk1vdmUocmVxdWVzdCkpCiB7CiB9CiAKIFN0cmVhbWluZ0NsaWVudDo6
flN0cmVhbWluZ0NsaWVudCgpCiB7Ci0gICAgZ3N0X29iamVjdF91bnJlZihtX3NyYyk7CiB9CiAK
IGNoYXIqIFN0cmVhbWluZ0NsaWVudDo6Y3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVk
U2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKQogewotICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VC
S0lUX1dFQl9TUkMobV9zcmMpOworICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9T
UkMobV9zcmMuZ2V0KCkpOwogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnBy
aXY7CiAKICAgICBBU1NFUlQoIXByaXYtPmJ1ZmZlcik7CkBAIC04OTQsMTIgKzg5OSwxNCBAQCBj
aGFyKiBTdHJlYW1pbmdDbGllbnQ6OmNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNp
emUsIHNpemVfdCYgYWN0dWFsU2l6ZQogCiB2b2lkIFN0cmVhbWluZ0NsaWVudDo6aGFuZGxlUmVz
cG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBX
ZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKG1fc3JjKTsKKyAgICBXZWJLaXRXZWJT
cmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKG1fc3JjLmdldCgpKTsKICAgICBXZWJLaXRXZWJTcmNQ
cml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwogCiAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJS
ZWNlaXZlZCByZXNwb25zZTogJWQiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKIAotICAg
IHByaXYtPnJlc29sdmVkVVJJID0gcmVzcG9uc2UudXJsKCkuc3RyaW5nKCkudXRmOCgpOworICAg
IGF1dG8gcmVzb2x2ZWRVUkkgPSByZXNwb25zZS51cmwoKS5zdHJpbmcoKS51dGY4KCk7CisgICAg
aWYgKHByaXYtPm9yaWdpbmFsVVJJICE9IHJlc29sdmVkVVJJKQorICAgICAgICBwcml2LT5yZWRp
cmVjdGVkVVJJID0gV1RGTW92ZShyZXNvbHZlZFVSSSk7CiAKICAgICBpZiAocmVzcG9uc2UuaHR0
cFN0YXR1c0NvZGUoKSA+PSA0MDApIHsKICAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBS
RVNPVVJDRSwgUkVBRCwgKCJSZWNlaXZlZCAlZCBIVFRQIGVycm9yIGNvZGUiLCByZXNwb25zZS5o
dHRwU3RhdHVzQ29kZSgpKSwgKG51bGxwdHIpKTsKQEAgLTk0NiwxMSArOTUzLDI1IEBAIHZvaWQg
U3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVSZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQogICAgICAgICBnc3RfYXBwX3NyY19zZXRfc2l6ZShwcml2LT5hcHBz
cmMsIC0xKTsKIAogICAgIGdzdF9hcHBfc3JjX3NldF9jYXBzKHByaXYtPmFwcHNyYywgbnVsbHB0
cik7CisKKyAgICBHc3RTdHJ1Y3R1cmUqIGh0dHBIZWFkZXJzID0gZ3N0X3N0cnVjdHVyZV9uZXdf
ZW1wdHkoImh0dHAtaGVhZGVycyIpOworICAgIGdzdF9zdHJ1Y3R1cmVfc2V0KGh0dHBIZWFkZXJz
LCAidXJpIiwgR19UWVBFX1NUUklORywgcHJpdi0+b3JpZ2luYWxVUkkuZGF0YSgpLCBudWxscHRy
KTsKKyAgICBpZiAoIXByaXYtPnJlZGlyZWN0ZWRVUkkuaXNOdWxsKCkpCisgICAgICAgIGdzdF9z
dHJ1Y3R1cmVfc2V0KGh0dHBIZWFkZXJzLCAicmVkaXJlY3Rpb24tdXJpIiwgR19UWVBFX1NUUklO
RywgcHJpdi0+cmVkaXJlY3RlZFVSSS5kYXRhKCksIG51bGxwdHIpOworICAgIEdVbmlxdWVQdHI8
R3N0U3RydWN0dXJlPiBoZWFkZXJzKGdzdF9zdHJ1Y3R1cmVfbmV3X2VtcHR5KCJyZXF1ZXN0LWhl
YWRlcnMiKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBoZWFkZXIgOiBtX3JlcXVlc3QuaHR0cEhl
YWRlckZpZWxkcygpKQorICAgICAgICBnc3Rfc3RydWN0dXJlX3NldChoZWFkZXJzLmdldCgpLCBo
ZWFkZXIua2V5LnV0ZjgoKS5kYXRhKCksIEdfVFlQRV9TVFJJTkcsIGhlYWRlci52YWx1ZS51dGY4
KCkuZGF0YSgpLCBudWxscHRyKTsKKyAgICBnc3Rfc3RydWN0dXJlX3NldChodHRwSGVhZGVycywg
InJlcXVlc3QtaGVhZGVycyIsIEdTVF9UWVBFX1NUUlVDVFVSRSwgaGVhZGVycy5nZXQoKSwgbnVs
bHB0cik7CisgICAgaGVhZGVycy5yZXNldChnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgicmVzcG9u
c2UtaGVhZGVycyIpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGhlYWRlciA6IHJlc3BvbnNlLmh0
dHBIZWFkZXJGaWVsZHMoKSkKKyAgICAgICAgZ3N0X3N0cnVjdHVyZV9zZXQoaGVhZGVycy5nZXQo
KSwgaGVhZGVyLmtleS51dGY4KCkuZGF0YSgpLCBHX1RZUEVfU1RSSU5HLCBoZWFkZXIudmFsdWUu
dXRmOCgpLmRhdGEoKSwgbnVsbHB0cik7CisgICAgZ3N0X3N0cnVjdHVyZV9zZXQoaHR0cEhlYWRl
cnMsICJyZXNwb25zZS1oZWFkZXJzIiwgR1NUX1RZUEVfU1RSVUNUVVJFLCBoZWFkZXJzLmdldCgp
LCBudWxscHRyKTsKKyAgICBnc3RfcGFkX3B1c2hfZXZlbnQoR1NUX0JBU0VfU1JDX1BBRChwcml2
LT5hcHBzcmMpLCBnc3RfZXZlbnRfbmV3X2N1c3RvbShHU1RfRVZFTlRfQ1VTVE9NX0RPV05TVFJF
QU1fU1RJQ0tZLCBodHRwSGVhZGVycykpOwogfQogCiB2b2lkIFN0cmVhbWluZ0NsaWVudDo6aGFu
ZGxlRGF0YVJlY2VpdmVkKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiB7Ci0gICAgV2Vi
S2l0V2ViU3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyhtX3NyYyk7CisgICAgV2ViS2l0V2ViU3Jj
KiBzcmMgPSBXRUJLSVRfV0VCX1NSQyhtX3NyYy5nZXQoKSk7CiAgICAgV2ViS2l0V2ViU3JjUHJp
dmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKIAogICAgIFdURjo6R011dGV4TG9ja2VyPEdNdXRleD4g
bG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOwpAQCAtMTAxNyw3ICsxMDM4LDcgQEAg
dm9pZCBTdHJlYW1pbmdDbGllbnQ6OmhhbmRsZURhdGFSZWNlaXZlZChjb25zdCBjaGFyKiBkYXRh
LCBpbnQgbGVuZ3RoKQogCiB2b2lkIFN0cmVhbWluZ0NsaWVudDo6aGFuZGxlTm90aWZ5RmluaXNo
ZWQoKQogewotICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkMobV9zcmMpOwor
ICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkMobV9zcmMuZ2V0KCkpOwogICAg
IFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAKICAgICBHU1RfREVCVUdf
T0JKRUNUKHNyYywgIkhhdmUgRU9TIik7CkBAIC0xMDI5LDggKzEwNTAsOCBAQCB2b2lkIFN0cmVh
bWluZ0NsaWVudDo6aGFuZGxlTm90aWZ5RmluaXNoZWQoKQogICAgIH0KIH0KIAotQ2FjaGVkUmVz
b3VyY2VTdHJlYW1pbmdDbGllbnQ6OkNhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50KFdlYktp
dFdlYlNyYyogc3JjKQotICAgIDogU3RyZWFtaW5nQ2xpZW50KHNyYykKK0NhY2hlZFJlc291cmNl
U3RyZWFtaW5nQ2xpZW50OjpDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJT
cmMqIHNyYywgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKKyAgICA6IFN0cmVhbWluZ0NsaWVu
dChzcmMsIFdURk1vdmUocmVxdWVzdCkpCiB7CiB9CiAKQEAgLTEwNDcsNyArMTA2OCw3IEBAIGNo
YXIqIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIo
UGxhdGZvcm1NZWRpYVJlc291cmNlCiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGll
bnQ6OnJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9
IFdFQktJVF9XRUJfU1JDKG1fc3JjKS0+cHJpdjsKKyAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBw
cml2ID0gV0VCS0lUX1dFQl9TUkMobV9zcmMuZ2V0KCkpLT5wcml2OwogICAgIHByaXYtPmRpZFBh
c3NBY2Nlc3NDb250cm9sQ2hlY2sgPSBwcml2LT5yZXNvdXJjZS0+ZGlkUGFzc0FjY2Vzc0NvbnRy
b2xDaGVjaygpOwogICAgIGhhbmRsZVJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2UpOwogfQpAQCAt
MTA1OSw3ICsxMDgwLDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6ZGF0
YVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IGMKIAogdm9pZCBDYWNoZWRS
ZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAgIFdlYktp
dFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkMobV9zcmMpOworICAgIFdlYktpdFdlYlNyYyog
c3JjID0gV0VCS0lUX1dFQl9TUkMobV9zcmMuZ2V0KCkpOwogICAgIEdTVF9FTEVNRU5UX0VSUk9S
KHNyYywgUkVTT1VSQ0UsIFJFQUQsICgiJXMiLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigp
LnV0ZjgoKS5kYXRhKCkpLCAobnVsbHB0cikpOwogICAgIGdzdF9hcHBfc3JjX2VuZF9vZl9zdHJl
YW0oc3JjLT5wcml2LT5hcHBzcmMpOwogICAgIHdlYktpdFdlYlNyY1N0b3Aoc3JjKTsKQEAgLTEw
NjcsNyArMTA4OCw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OmFjY2Vz
c0NvbnRyb2xDaGVja0ZhaWxlZChQbGF0Zm9ybU1lZGlhUmVzb3VyCiAKIHZvaWQgQ2FjaGVkUmVz
b3VyY2VTdHJlYW1pbmdDbGllbnQ6OmxvYWRGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwg
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0gICAgV2ViS2l0V2ViU3JjKiBzcmMgPSBX
RUJLSVRfV0VCX1NSQyhtX3NyYyk7CisgICAgV2ViS2l0V2ViU3JjKiBzcmMgPSBXRUJLSVRfV0VC
X1NSQyhtX3NyYy5nZXQoKSk7CiAKICAgICBpZiAoIWVycm9yLmlzQ2FuY2VsbGF0aW9uKCkpIHsK
ICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzcmMsICJIYXZlIGZhaWx1cmU6ICVzIiwgZXJyb3Iu
bG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsKQEAgLTEwODMsMTkgKzExMDQs
MTkgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6bG9hZEZpbmlzaGVkKFBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYpCiB9CiAKIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50
OjpSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqIHNyYywgUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCkKLSAgICA6IFN0cmVhbWluZ0NsaWVudChzcmMpCisgICAgOiBT
dHJlYW1pbmdDbGllbnQoc3JjLCBXVEZNb3ZlKHJlcXVlc3QpKQogewogICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7Ci0gICAgbV90aHJlYWQg
PSBUaHJlYWQ6OmNyZWF0ZSgiUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQiLCBbdGhpcywg
cmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldIHsKKyAgICBtX3RocmVhZCA9IFRocmVhZDo6Y3Jl
YXRlKCJSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCIsIFt0aGlzXSB7CiAgICAgICAgIHsK
ICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRp
b25NdXRleCk7CiAgICAgICAgICAgICBtX3J1bkxvb3AgPSAmUnVuTG9vcDo6Y3VycmVudCgpOwog
I2lmIFVTRShTT1VQKQogICAgICAgICAgICAgbV9zZXNzaW9uID0gc3RkOjptYWtlX3VuaXF1ZTxT
b3VwTmV0d29ya1Nlc3Npb24+KCk7Ci0gICAgICAgICAgICBtX3Jlc291cmNlID0gUmVzb3VyY2VI
YW5kbGU6OmNyZWF0ZSgqbV9zZXNzaW9uLCByZXF1ZXN0LCB0aGlzLCB0cnVlLCBmYWxzZSk7Cisg
ICAgICAgICAgICBtX3Jlc291cmNlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSgqbV9zZXNzaW9u
LCBtX3JlcXVlc3QsIHRoaXMsIHRydWUsIGZhbHNlKTsKICNlbHNlCiAgICAgICAgICAgICAvLyBG
SVhNRTogVGhpcyBjcmVhdGUgd2lsbCBoaXQgYW4gYXNzZXJ0IGluIGRlYnVnIGJ1aWxkcy4gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcwMDMuCi0gICAgICAg
ICAgICBtX3Jlc291cmNlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShudWxscHRyIC8qY29udGV4
dCovLCByZXF1ZXN0LCB0aGlzLCB0cnVlLCBmYWxzZSk7CisgICAgICAgICAgICBtX3Jlc291cmNl
ID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShudWxscHRyIC8qY29udGV4dCovLCBtX3JlcXVlc3Qs
IHRoaXMsIHRydWUsIGZhbHNlKTsKICNlbmRpZgogICAgICAgICAgICAgbV9pbml0aWFsaXplUnVu
TG9vcENvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICAgICAgfQpAQCAtMTE5Niw3ICsxMjE3LDcg
QEAgdm9pZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6ZGlkRmluaXNoTG9hZGluZyhS
ZXNvdXJjZUhhbmRsZSopCiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OmRp
ZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKLSAg
ICBXZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKG1fc3JjKTsKKyAgICBXZWJLaXRX
ZWJTcmMqIHNyYyA9IFdFQktJVF9XRUJfU1JDKG1fc3JjLmdldCgpKTsKIAogICAgIEdTVF9FUlJP
Ul9PQkpFQ1Qoc3JjLCAiSGF2ZSBmYWlsdXJlOiAlcyIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0
aW9uKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBSRVNPVVJD
RSwgRkFJTEVELCAoIiVzIiwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0
YSgpKSwgKG51bGxwdHIpKTsKQEAgLTEyMDUsNyArMTIyNiw3IEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGVTdHJlYW1pbmdDbGllbnQ6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJj
ZUVycm9yCiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6Ondhc0Jsb2NrZWQo
UmVzb3VyY2VIYW5kbGUqKQogewotICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9T
UkMobV9zcmMpOworICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkMobV9zcmMu
Z2V0KCkpOwogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHVyaTsKIAogICAgIEdTVF9FUlJPUl9PQkpF
Q1Qoc3JjLCAiUmVxdWVzdCB3YXMgYmxvY2tlZCIpOwpAQCAtMTIxOSw3ICsxMjQwLDcgQEAgdm9p
ZCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6d2FzQmxvY2tlZChSZXNvdXJjZUhhbmRs
ZSopCiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OmNhbm5vdFNob3dVUkwo
UmVzb3VyY2VIYW5kbGUqKQogewotICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9T
UkMobV9zcmMpOworICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkMobV9zcmMu
Z2V0KCkpOwogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHVyaTsKIAogICAgIEdTVF9FUlJPUl9PQkpF
Q1Qoc3JjLCAiQ2Fubm90IHNob3cgVVJMIik7Cg==
</data>
<flag name="review"
          id="329969"
          type_id="1"
          status="+"
          setter="svillar"
    />
          </attachment>
      

    </bug>

</bugzilla>