<?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>147956</bug_id>
          
          <creation_ts>2015-08-12 15:16:52 -0700</creation_ts>
          <short_desc>Use WTF::Optional in WindowFeatures</short_desc>
          <delta_ts>2015-08-13 10:37:47 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1117078</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-12 15:16:52 -0700</bug_when>
    <thetext>Use WTF::Optional in WindowFeatures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117080</commentid>
    <comment_count>1</comment_count>
      <attachid>258850</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-12 15:18:34 -0700</bug_when>
    <thetext>Created attachment 258850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117086</commentid>
    <comment_count>2</comment_count>
      <attachid>258852</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-12 16:50:52 -0700</bug_when>
    <thetext>Created attachment 258852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117278</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-13 10:37:47 -0700</bug_when>
    <thetext>Committed r188386: &lt;http://trac.webkit.org/changeset/188386&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258850</attachid>
            <date>2015-08-12 15:18:34 -0700</date>
            <delta_ts>2015-08-12 16:50:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147956-20150812151818.patch</filename>
            <type>text/plain</type>
            <size>20864</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk4MjQwNGQ4M2NiNTcyYjRmNDc5MTk4
ODFhYTlhMTgxODM5ODEzYWYuLmNkYjg3YmQ2OWM4MzAwNTE1NzVmOWZlOTIwNzE0NzNiM2QxOTQ2
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDgtMTIgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgV1RGOjpPcHRpb25hbCBpbiBXaW5kb3dG
ZWF0dXJlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ3OTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIG5ldyBvcGVyYXRvcnMgdG8gV1RGOjpPcHRpb25hbCB0byBtYWtlIGl0IG1vcmUgbGlrZSBz
dGQ6Om9wdGlvbmFsLgorCisgICAgICAgICogd3RmL09wdGlvbmFsLmg6CisgICAgICAgIChXVEY6
Ok9wdGlvbmFsOjpvcGVyYXRvci0+KToKKyAgICAgICAgKFdURjo6T3B0aW9uYWw6Om9wZXJhdG9y
Kik6CisKIDIwMTUtMDgtMTEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBbHdheXMgdXNlIGEgYnl0ZS1zaXplZCBsb2NrIGltcGxlbWVudGF0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggMTc4NTdkZDRkMTEzNzRkODY0MWYzMjRkODRmNTA4OGI2OTEwYjI2Ni4uODYzZmEzNGZm
MDBmOGI1MWViOGJmZjY4ZGRhMTFkMjRhNmZiMzc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDE1LTA4LTEyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisK
KyAgICAgICAgVXNlIFdURjo6T3B0aW9uYWwgaW4gV2luZG93RmVhdHVyZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzk1NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgICogcGFnZS9X
aW5kb3dGZWF0dXJlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dGZWF0dXJlczo6V2lu
ZG93RmVhdHVyZXMpOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93RmVhdHVyZXM6OnNldFdpbmRv
d0ZlYXR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93RmVhdHVyZXM6OmJvb2xGZWF0dXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzOjpmbG9hdEZlYXR1cmUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2luZG93RmVhdHVyZXM6OnBhcnNlRGlhbG9nRmVhdHVyZXMpOgorICAg
ICAgICAqIHBhZ2UvV2luZG93RmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd0Zl
YXR1cmVzOjpXaW5kb3dGZWF0dXJlcyk6CisKIDIwMTUtMDgtMTIgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBSZW1vdmUgcHJvbWlzZSBhdHRy
aWJ1dGUgc3BlY2lmaWMgaGFuZGxpbmcgZnJvbSBiaW5kaW5nIGdlbmVyYXRvcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IDQ5NDNiYWY5M2VjM2ViMGQ5ZjJlMjJlN2NlMjA2NGU2NmRlMzQ4MWIuLjFlZDQw
MjEyZjcyNTg2ZDg0NmUxNmZkZWJjYzAwYzY0ZWQwOTBiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxNS0wOC0xMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgorCisgICAgICAgIFVzZSBXVEY6Ok9wdGlvbmFsIGluIFdpbmRvd0ZlYXR1cmVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc5NTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlV2luZG93KToKKwogMjAxNS0wOC0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIEFsaWduIFdlYktpdDEncyBQYWdlQ2FjaGUgc2l6ZSB3aXRoIFdlYktpdDIn
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDIwN2E1Y2I2ZWMxZDhmMjhkZjM5YzE1MzExOTBhOWVhNjlmOGNmZDMu
LmM4ZDhmZGMzNzk5YWVmZmYwMzU0NzhmNDEwMTUwZGIyODEyYzlhMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxNS0wOC0xMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgorCisgICAgICAgIFVzZSBXVEY6Ok9wdGlvbmFsIGluIFdpbmRvd0ZlYXR1cmVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc5NTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdp
bmRvd0ZlYXR1cmVzPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxXaW5kb3dGZWF0dXJlcz46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJlcy5tbToKKyAgICAg
ICAgKC1bV0tXaW5kb3dGZWF0dXJlcyBfaW5pdFdpdGhXaW5kb3dGZWF0dXJlczpdKToKKwogMjAx
NS0wOC0xMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgTmV0d29ya1Byb2Nlc3M6IEROUyBwcmVmZXRjaCBoYXBwZW5zIGluIHRoZSBXZWIgUHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaCBiL1NvdXJjZS9XVEYv
d3RmL09wdGlvbmFsLmgKaW5kZXggZDY4NmI5OTRmMjY3ZGNhOGQ1ZmEzMzE4OTUyYzcwM2I5Yjll
MzJlMS4uM2I1YzhkZDA4ZjMzYmI5NzAyYzhkNGQyY2YyZmI0MmM5OTNmNmJiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25h
bC5oCkBAIC0xMzMsNiArMTMzLDIxIEBAIHB1YmxpYzoKIAogICAgIGV4cGxpY2l0IG9wZXJhdG9y
IGJvb2woKSBjb25zdCB7IHJldHVybiBtX2lzRW5nYWdlZDsgfQogCisgICAgY29uc3QgVCogb3Bl
cmF0b3ItPigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9pc0VuZ2FnZWQpOworICAg
ICAgICByZXR1cm4gYXNQdHIoKS0+b3BlcmF0b3ItPigpOworICAgIH0KKworICAgIFQqIG9wZXJh
dG9yLT4oKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1faXNFbmdhZ2VkKTsKKyAgICAgICAgcmV0
dXJuIGFzUHRyKCktPm9wZXJhdG9yLT4oKTsKKyAgICB9CisKKyAgICBjb25zdCBUJiBvcGVyYXRv
ciooKSBjb25zdCB7IHJldHVybiB2YWx1ZSgpOyB9CisgICAgVCYgb3BlcmF0b3IqKCkgeyByZXR1
cm4gdmFsdWUoKTsgfQorCiAgICAgVCYgdmFsdWUoKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1f
aXNFbmdhZ2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDYxMWFh
NDhhNDliNDFlNzYyM2JlNzEzMWY2MTJhYzliMmRjZTM3ZmIuLjQ1YWE2MDZiMzlkODNiZjNmZDM2
ZmViNDdhZTQ4MWRhYzI4MGE1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cApAQCAtMzU1MSwxNSArMzU1MSwxNSBAQCBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhGcmFt
ZSYgb3BlbmVyRnJhbWUsIEZyYW1lJiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMbwogI2lmICFQ
TEFURk9STShJT1MpCiAgICAgRmxvYXRTaXplIHZpZXdwb3J0U2l6ZSA9IHBhZ2UtPmNocm9tZSgp
LnBhZ2VSZWN0KCkuc2l6ZSgpOwogICAgIEZsb2F0UmVjdCB3aW5kb3dSZWN0ID0gcGFnZS0+Y2hy
b21lKCkud2luZG93UmVjdCgpOwotICAgIGlmIChmZWF0dXJlcy54U2V0KQotICAgICAgICB3aW5k
b3dSZWN0LnNldFgoZmVhdHVyZXMueCk7Ci0gICAgaWYgKGZlYXR1cmVzLnlTZXQpCi0gICAgICAg
IHdpbmRvd1JlY3Quc2V0WShmZWF0dXJlcy55KTsKKyAgICBpZiAoZmVhdHVyZXMueCkKKyAgICAg
ICAgd2luZG93UmVjdC5zZXRYKCpmZWF0dXJlcy54KTsKKyAgICBpZiAoZmVhdHVyZXMueSkKKyAg
ICAgICAgd2luZG93UmVjdC5zZXRZKCpmZWF0dXJlcy55KTsKICAgICAvLyBaZXJvIHdpZHRoIGFu
ZCBoZWlnaHQgbWVhbiB1c2luZyBkZWZhdWx0IHNpemUsIG5vdCBtaW51bXVtIG9uZS4KLSAgICBp
ZiAoZmVhdHVyZXMud2lkdGhTZXQgJiYgZmVhdHVyZXMud2lkdGgpCi0gICAgICAgIHdpbmRvd1Jl
Y3Quc2V0V2lkdGgoZmVhdHVyZXMud2lkdGggKyAod2luZG93UmVjdC53aWR0aCgpIC0gdmlld3Bv
cnRTaXplLndpZHRoKCkpKTsKLSAgICBpZiAoZmVhdHVyZXMuaGVpZ2h0U2V0ICYmIGZlYXR1cmVz
LmhlaWdodCkKLSAgICAgICAgd2luZG93UmVjdC5zZXRIZWlnaHQoZmVhdHVyZXMuaGVpZ2h0ICsg
KHdpbmRvd1JlY3QuaGVpZ2h0KCkgLSB2aWV3cG9ydFNpemUuaGVpZ2h0KCkpKTsKKyAgICBpZiAo
ZmVhdHVyZXMud2lkdGggJiYgKmZlYXR1cmVzLndpZHRoKQorICAgICAgICB3aW5kb3dSZWN0LnNl
dFdpZHRoKCpmZWF0dXJlcy53aWR0aCArICh3aW5kb3dSZWN0LndpZHRoKCkgLSB2aWV3cG9ydFNp
emUud2lkdGgoKSkpOworICAgIGlmIChmZWF0dXJlcy5oZWlnaHQgJiYgKmZlYXR1cmVzLmhlaWdo
dCkKKyAgICAgICAgd2luZG93UmVjdC5zZXRIZWlnaHQoKmZlYXR1cmVzLmhlaWdodCArICh3aW5k
b3dSZWN0LmhlaWdodCgpIC0gdmlld3BvcnRTaXplLmhlaWdodCgpKSk7CiAKICAgICAvLyBFbnN1
cmUgbm9uLU5hTiB2YWx1ZXMsIG1pbmltdW0gc2l6ZSBhcyB3ZWxsIGFzIGJlaW5nIHdpdGhpbiB2
YWxpZCBzY3JlZW4gYXJlYS4KICAgICBGbG9hdFJlY3QgbmV3V2luZG93UmVjdCA9IERPTVdpbmRv
dzo6YWRqdXN0V2luZG93UmVjdChwYWdlLCB3aW5kb3dSZWN0KTsKQEAgLTM1NzEsMTAgKzM1NzEs
MTAgQEAgUmVmUHRyPEZyYW1lPiBjcmVhdGVXaW5kb3coRnJhbWUmIG9wZW5lckZyYW1lLCBGcmFt
ZSYgbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG8KICAgICAvLyBPbiBpT1MsIHdpZHRoIGFuZCBo
ZWlnaHQgcmVmZXIgdG8gdGhlIHZpZXdwb3J0IGRpbWVuc2lvbnMuCiAgICAgVmlld3BvcnRBcmd1
bWVudHMgYXJndW1lbnRzOwogICAgIC8vIFplcm8gd2lkdGggYW5kIGhlaWdodCBtZWFuIHVzaW5n
IGRlZmF1bHQgc2l6ZSwgbm90IG1pbmltdW0gb25lLgotICAgIGlmIChmZWF0dXJlcy53aWR0aFNl
dCAmJiBmZWF0dXJlcy53aWR0aCkKLSAgICAgICAgYXJndW1lbnRzLndpZHRoID0gZmVhdHVyZXMu
d2lkdGg7Ci0gICAgaWYgKGZlYXR1cmVzLmhlaWdodFNldCAmJiBmZWF0dXJlcy5oZWlnaHQpCi0g
ICAgICAgIGFyZ3VtZW50cy5oZWlnaHQgPSBmZWF0dXJlcy5oZWlnaHQ7CisgICAgaWYgKGZlYXR1
cmVzLndpZHRoICYmICpmZWF0dXJlcy53aWR0aCkKKyAgICAgICAgYXJndW1lbnRzLndpZHRoID0g
KmZlYXR1cmVzLndpZHRoOworICAgIGlmIChmZWF0dXJlcy5oZWlnaHQgJiYgKmZlYXR1cmVzLmhl
aWdodCkKKyAgICAgICAgYXJndW1lbnRzLmhlaWdodCA9ICpmZWF0dXJlcy5oZWlnaHQ7CiAgICAg
ZnJhbWUtPnNldFZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyk7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaW5kb3dGZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1dpbmRvd0ZlYXR1cmVzLmNwcAppbmRleCAxNzc0ZGNmNGYwYjJlOWZiYjk2NGFl
OWFlYjE1ODVlZTQwOGQ2NGY5Li5jMGRkODZjYWEwM2Y2MzlmZTI0MzA3NGJkMTMwODNmOWJkZmQz
MjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd0ZlYXR1cmVzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd0ZlYXR1cmVzLmNwcApAQCAtMzcsMTUgKzM3
LDcgQEAgc3RhdGljIGJvb2wgaXNXaW5kb3dGZWF0dXJlc1NlcGFyYXRvcihVQ2hhciBjKQogfQog
CiBXaW5kb3dGZWF0dXJlczo6V2luZG93RmVhdHVyZXMoY29uc3QgU3RyaW5nJiBmZWF0dXJlcykK
LSAgICA6IHgoMCkKLSAgICAsIHhTZXQoZmFsc2UpCi0gICAgLCB5KDApCi0gICAgLCB5U2V0KGZh
bHNlKQotICAgICwgd2lkdGgoMCkKLSAgICAsIHdpZHRoU2V0KGZhbHNlKQotICAgICwgaGVpZ2h0
KDApCi0gICAgLCBoZWlnaHRTZXQoZmFsc2UpCi0gICAgLCByZXNpemFibGUodHJ1ZSkKKyAgICA6
IHJlc2l6YWJsZSh0cnVlKQogICAgICwgZnVsbHNjcmVlbihmYWxzZSkKICAgICAsIGRpYWxvZyhm
YWxzZSkKIHsKQEAgLTEzNCwxOSArMTI2LDE1IEBAIHZvaWQgV2luZG93RmVhdHVyZXM6OnNldFdp
bmRvd0ZlYXR1cmUoY29uc3QgU3RyaW5nJiBrZXlTdHJpbmcsIGNvbnN0IFN0cmluZyYgdmFsCiAg
ICAgLy8gV2UgdHJlYXQga2V5U3RyaW5nIG9mICJyZXNpemFibGUiIGhlcmUgYXMgYW4gYWRkaXRp
b25hbCBmZWF0dXJlIHJhdGhlciB0aGFuIHNldHRpbmcgcmVzaXplYWJsZSB0byB0cnVlLgogICAg
IC8vIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIEZpcmVmb3gsIGJ1dCBjb3VsZCBhbHNvIGJlIGhh
bmRsZWQgYXQgYW5vdGhlciBsZXZlbC4KIAotICAgIGlmIChrZXlTdHJpbmcgPT0gImxlZnQiIHx8
IGtleVN0cmluZyA9PSAic2NyZWVueCIpIHsKLSAgICAgICAgeFNldCA9IHRydWU7CisgICAgaWYg
KGtleVN0cmluZyA9PSAibGVmdCIgfHwga2V5U3RyaW5nID09ICJzY3JlZW54IikKICAgICAgICAg
eCA9IHZhbHVlOwotICAgIH0gZWxzZSBpZiAoa2V5U3RyaW5nID09ICJ0b3AiIHx8IGtleVN0cmlu
ZyA9PSAic2NyZWVueSIpIHsKLSAgICAgICAgeVNldCA9IHRydWU7CisgICAgZWxzZSBpZiAoa2V5
U3RyaW5nID09ICJ0b3AiIHx8IGtleVN0cmluZyA9PSAic2NyZWVueSIpCiAgICAgICAgIHkgPSB2
YWx1ZTsKLSAgICB9IGVsc2UgaWYgKGtleVN0cmluZyA9PSAid2lkdGgiIHx8IGtleVN0cmluZyA9
PSAiaW5uZXJ3aWR0aCIpIHsKLSAgICAgICAgd2lkdGhTZXQgPSB0cnVlOworICAgIGVsc2UgaWYg
KGtleVN0cmluZyA9PSAid2lkdGgiIHx8IGtleVN0cmluZyA9PSAiaW5uZXJ3aWR0aCIpCiAgICAg
ICAgIHdpZHRoID0gdmFsdWU7Ci0gICAgfSBlbHNlIGlmIChrZXlTdHJpbmcgPT0gImhlaWdodCIg
fHwga2V5U3RyaW5nID09ICJpbm5lcmhlaWdodCIpIHsKLSAgICAgICAgaGVpZ2h0U2V0ID0gdHJ1
ZTsKKyAgICBlbHNlIGlmIChrZXlTdHJpbmcgPT0gImhlaWdodCIgfHwga2V5U3RyaW5nID09ICJp
bm5lcmhlaWdodCIpCiAgICAgICAgIGhlaWdodCA9IHZhbHVlOwotICAgIH0gZWxzZSBpZiAoa2V5
U3RyaW5nID09ICJtZW51YmFyIikKKyAgICBlbHNlIGlmIChrZXlTdHJpbmcgPT0gIm1lbnViYXIi
KQogICAgICAgICBtZW51QmFyVmlzaWJsZSA9IHZhbHVlOwogICAgIGVsc2UgaWYgKGtleVN0cmlu
ZyA9PSAidG9vbGJhciIpCiAgICAgICAgIHRvb2xCYXJWaXNpYmxlID0gdmFsdWU7CkBAIC0xNjMs
MTYgKzE1MSwxMyBAQCB2b2lkIFdpbmRvd0ZlYXR1cmVzOjpzZXRXaW5kb3dGZWF0dXJlKGNvbnN0
IFN0cmluZyYga2V5U3RyaW5nLCBjb25zdCBTdHJpbmcmIHZhbAogfQogCiBXaW5kb3dGZWF0dXJl
czo6V2luZG93RmVhdHVyZXMoY29uc3QgU3RyaW5nJiBkaWFsb2dGZWF0dXJlc1N0cmluZywgY29u
c3QgRmxvYXRSZWN0JiBzY3JlZW5BdmFpbGFibGVSZWN0KQotICAgIDogd2lkdGhTZXQodHJ1ZSkK
LSAgICAsIGhlaWdodFNldCh0cnVlKQotICAgICwgbWVudUJhclZpc2libGUoZmFsc2UpCisgICAg
OiBtZW51QmFyVmlzaWJsZShmYWxzZSkKICAgICAsIHRvb2xCYXJWaXNpYmxlKGZhbHNlKQogICAg
ICwgbG9jYXRpb25CYXJWaXNpYmxlKGZhbHNlKQogICAgICwgZnVsbHNjcmVlbihmYWxzZSkKICAg
ICAsIGRpYWxvZyh0cnVlKQogewotICAgIERpYWxvZ0ZlYXR1cmVzTWFwIGZlYXR1cmVzOwotICAg
IHBhcnNlRGlhbG9nRmVhdHVyZXMoZGlhbG9nRmVhdHVyZXNTdHJpbmcsIGZlYXR1cmVzKTsKKyAg
ICBhdXRvIGZlYXR1cmVzID0gcGFyc2VEaWFsb2dGZWF0dXJlcyhkaWFsb2dGZWF0dXJlc1N0cmlu
Zyk7CiAKICAgICBjb25zdCBib29sIHRydXN0ZWQgPSBmYWxzZTsKIApAQCAtMTg3LDIwICsxNzIs
MjAgQEAgV2luZG93RmVhdHVyZXM6OldpbmRvd0ZlYXR1cmVzKGNvbnN0IFN0cmluZyYgZGlhbG9n
RmVhdHVyZXNTdHJpbmcsIGNvbnN0IEZsb2F0UmUKICAgICB3aWR0aCA9IGZsb2F0RmVhdHVyZShm
ZWF0dXJlcywgImRpYWxvZ3dpZHRoIiwgMTAwLCBzY3JlZW5BdmFpbGFibGVSZWN0LndpZHRoKCks
IDYyMCk7IC8vIGRlZmF1bHQgaGVyZSBjYW1lIGZyb20gZnJhbWUgc2l6ZSBvZiBkaWFsb2cgaW4g
TWFjSUUKICAgICBoZWlnaHQgPSBmbG9hdEZlYXR1cmUoZmVhdHVyZXMsICJkaWFsb2doZWlnaHQi
LCAxMDAsIHNjcmVlbkF2YWlsYWJsZVJlY3QuaGVpZ2h0KCksIDQ1MCk7IC8vIGRlZmF1bHQgaGVy
ZSBjYW1lIGZyb20gZnJhbWUgc2l6ZSBvZiBkaWFsb2cgaW4gTWFjSUUKIAotICAgIHggPSBmbG9h
dEZlYXR1cmUoZmVhdHVyZXMsICJkaWFsb2dsZWZ0Iiwgc2NyZWVuQXZhaWxhYmxlUmVjdC54KCks
IHNjcmVlbkF2YWlsYWJsZVJlY3QubWF4WCgpIC0gd2lkdGgsIC0xKTsKLSAgICB4U2V0ID0geCA+
IDA7Ci0gICAgeSA9IGZsb2F0RmVhdHVyZShmZWF0dXJlcywgImRpYWxvZ3RvcCIsIHNjcmVlbkF2
YWlsYWJsZVJlY3QueSgpLCBzY3JlZW5BdmFpbGFibGVSZWN0Lm1heFkoKSAtIGhlaWdodCwgLTEp
OwotICAgIHlTZXQgPSB5ID4gMDsKKyAgICBhdXRvIGRpYWxvZ0xlZnQgPSBmbG9hdEZlYXR1cmUo
ZmVhdHVyZXMsICJkaWFsb2dsZWZ0Iiwgc2NyZWVuQXZhaWxhYmxlUmVjdC54KCksIHNjcmVlbkF2
YWlsYWJsZVJlY3QubWF4WCgpIC0gKndpZHRoLCAtMSk7CisgICAgaWYgKGRpYWxvZ0xlZnQgPiAw
KQorICAgICAgICB4ID0gZGlhbG9nTGVmdDsKKworICAgIGF1dG8gZGlhbG9nVG9wID0gZmxvYXRG
ZWF0dXJlKGZlYXR1cmVzLCAiZGlhbG9ndG9wIiwgc2NyZWVuQXZhaWxhYmxlUmVjdC55KCksIHNj
cmVlbkF2YWlsYWJsZVJlY3QubWF4WSgpIC0gKmhlaWdodCwgLTEpOworICAgIGlmIChkaWFsb2dU
b3AgPiAwKQorICAgICAgICB5ID0gZGlhbG9nVG9wOwogCiAgICAgaWYgKGJvb2xGZWF0dXJlKGZl
YXR1cmVzLCAiY2VudGVyIiwgdHJ1ZSkpIHsKLSAgICAgICAgaWYgKCF4U2V0KSB7Ci0gICAgICAg
ICAgICB4ID0gc2NyZWVuQXZhaWxhYmxlUmVjdC54KCkgKyAoc2NyZWVuQXZhaWxhYmxlUmVjdC53
aWR0aCgpIC0gd2lkdGgpIC8gMjsKLSAgICAgICAgICAgIHhTZXQgPSB0cnVlOwotICAgICAgICB9
Ci0gICAgICAgIGlmICgheVNldCkgewotICAgICAgICAgICAgeSA9IHNjcmVlbkF2YWlsYWJsZVJl
Y3QueSgpICsgKHNjcmVlbkF2YWlsYWJsZVJlY3QuaGVpZ2h0KCkgLSBoZWlnaHQpIC8gMjsKLSAg
ICAgICAgICAgIHlTZXQgPSB0cnVlOwotICAgICAgICB9CisgICAgICAgIGlmICgheCkKKyAgICAg
ICAgICAgIHggPSBzY3JlZW5BdmFpbGFibGVSZWN0LngoKSArIChzY3JlZW5BdmFpbGFibGVSZWN0
LndpZHRoKCkgLSAqd2lkdGgpIC8gMjsKKworICAgICAgICBpZiAoIXkpCisgICAgICAgICAgICB5
ID0gc2NyZWVuQXZhaWxhYmxlUmVjdC55KCkgKyAoc2NyZWVuQXZhaWxhYmxlUmVjdC5oZWlnaHQo
KSAtICpoZWlnaHQpIC8gMjsKICAgICB9CiAKICAgICByZXNpemFibGUgPSBib29sRmVhdHVyZShm
ZWF0dXJlcywgInJlc2l6YWJsZSIpOwpAQCAtMjA4LDIwICsxOTMsMjIgQEAgV2luZG93RmVhdHVy
ZXM6OldpbmRvd0ZlYXR1cmVzKGNvbnN0IFN0cmluZyYgZGlhbG9nRmVhdHVyZXNTdHJpbmcsIGNv
bnN0IEZsb2F0UmUKICAgICBzdGF0dXNCYXJWaXNpYmxlID0gYm9vbEZlYXR1cmUoZmVhdHVyZXMs
ICJzdGF0dXMiLCAhdHJ1c3RlZCk7CiB9CiAKLWJvb2wgV2luZG93RmVhdHVyZXM6OmJvb2xGZWF0
dXJlKGNvbnN0IERpYWxvZ0ZlYXR1cmVzTWFwJiBmZWF0dXJlcywgY29uc3QgY2hhcioga2V5LCBi
b29sIGRlZmF1bHRWYWx1ZSkKK2Jvb2wgV2luZG93RmVhdHVyZXM6OmJvb2xGZWF0dXJlKGNvbnN0
IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBmZWF0dXJlcywgY29uc3QgY2hhcioga2V5LCBib29s
IGRlZmF1bHRWYWx1ZSkKIHsKLSAgICBEaWFsb2dGZWF0dXJlc01hcDo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBmZWF0dXJlcy5maW5kKGtleSk7CisgICAgYXV0byBpdCA9IGZlYXR1cmVzLmZpbmQoa2V5
KTsKICAgICBpZiAoaXQgPT0gZmVhdHVyZXMuZW5kKCkpCiAgICAgICAgIHJldHVybiBkZWZhdWx0
VmFsdWU7CisKICAgICBjb25zdCBTdHJpbmcmIHZhbHVlID0gaXQtPnZhbHVlOwogICAgIHJldHVy
biB2YWx1ZS5pc051bGwoKSB8fCB2YWx1ZSA9PSAiMSIgfHwgdmFsdWUgPT0gInllcyIgfHwgdmFs
dWUgPT0gIm9uIjsKIH0KIAotZmxvYXQgV2luZG93RmVhdHVyZXM6OmZsb2F0RmVhdHVyZShjb25z
dCBEaWFsb2dGZWF0dXJlc01hcCYgZmVhdHVyZXMsIGNvbnN0IGNoYXIqIGtleSwgZmxvYXQgbWlu
LCBmbG9hdCBtYXgsIGZsb2F0IGRlZmF1bHRWYWx1ZSkKK2Zsb2F0IFdpbmRvd0ZlYXR1cmVzOjpm
bG9hdEZlYXR1cmUoY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGZlYXR1cmVzLCBjb25z
dCBjaGFyKiBrZXksIGZsb2F0IG1pbiwgZmxvYXQgbWF4LCBmbG9hdCBkZWZhdWx0VmFsdWUpCiB7
Ci0gICAgRGlhbG9nRmVhdHVyZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZmVhdHVyZXMuZmlu
ZChrZXkpOworICAgIGF1dG8gaXQgPSBmZWF0dXJlcy5maW5kKGtleSk7CiAgICAgaWYgKGl0ID09
IGZlYXR1cmVzLmVuZCgpKQogICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworCiAgICAgLy8g
RklYTUU6IFRoZSB0b0RvdWJsZSBmdW5jdGlvbiBkb2VzIG5vdCBvZmZlciBhIHdheSB0byB0ZWxs
ICIwcSIgZnJvbSBzdHJpbmcgd2l0aCBubyBkaWdpdHMgaW4gaXQ6IEJvdGgKICAgICAvLyByZXR1
cm4gdGhlIG51bWJlciAwIGFuZCBmYWxzZSBmb3Igb2suIEJ1dCAiMHEiIHNob3VsZCB5aWVsZCB0
aGUgbWluaW11bSByYXRoZXIgdGhhbiB0aGUgZGVmYXVsdC4KICAgICBib29sIG9rOwpAQCAtMjMy
LDE0ICsyMTksMTggQEAgZmxvYXQgV2luZG93RmVhdHVyZXM6OmZsb2F0RmVhdHVyZShjb25zdCBE
aWFsb2dGZWF0dXJlc01hcCYgZmVhdHVyZXMsIGNvbnN0IGNoYXIKICAgICAgICAgcmV0dXJuIG1p
bjsKICAgICBpZiAocGFyc2VkTnVtYmVyID4gbWF4KQogICAgICAgICByZXR1cm4gbWF4OworCiAg
ICAgLy8gRklYTUU6IFNlZW1zIHN0cmFuZ2UgdG8gY2FzdCBhIGRvdWJsZSB0byBpbnQgYW5kIHRo
ZW4gY29udmVydCBiYWNrIHRvIGEgZmxvYXQuIFdoeSBpcyB0aGlzIGEgZ29vZCBpZGVhPwogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHBhcnNlZE51bWJlcik7CiB9CiAKLXZvaWQgV2luZG93
RmVhdHVyZXM6OnBhcnNlRGlhbG9nRmVhdHVyZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcsIERpYWxv
Z0ZlYXR1cmVzTWFwJiBtYXApCitIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBXaW5kb3dGZWF0dXJl
czo6cGFyc2VEaWFsb2dGZWF0dXJlcyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKKyAgICBIYXNo
TWFwPFN0cmluZywgU3RyaW5nPiBmZWF0dXJlczsKKwogICAgIFZlY3RvcjxTdHJpbmc+IHZlY3Rv
cjsKICAgICBzdHJpbmcuc3BsaXQoJzsnLCB2ZWN0b3IpOworCiAgICAgZm9yIChhdXRvJiBmZWF0
dXJlU3RyaW5nIDogdmVjdG9yKSB7CiAgICAgICAgIHNpemVfdCBzZXBhcmF0b3JQb3NpdGlvbiA9
IGZlYXR1cmVTdHJpbmcuZmluZCgnPScpOwogICAgICAgICBzaXplX3QgY29sb25Qb3NpdGlvbiA9
IGZlYXR1cmVTdHJpbmcuZmluZCgnOicpOwpAQCAtMjU3LDggKzI0OCwxMCBAQCB2b2lkIFdpbmRv
d0ZlYXR1cmVzOjpwYXJzZURpYWxvZ0ZlYXR1cmVzKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBEaWFs
b2dGZWF0dXJlc01hcAogICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5sZWZ0KHZhbHVlLmZpbmQo
JyAnKSk7CiAgICAgICAgIH0KIAotICAgICAgICBtYXAuc2V0KGtleSwgdmFsdWUpOworICAgICAg
ICBmZWF0dXJlcy5zZXQoa2V5LCB2YWx1ZSk7CiAgICAgfQorCisgICAgcmV0dXJuIGZlYXR1cmVz
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1dpbmRvd0ZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd0ZlYXR1
cmVzLmgKaW5kZXggNmM4NzJlMjI2YThmZmM1YjFmMmE4YWFkNzVhMjAyNzE2NDM1NmEyYi4uODdm
NmE4Yjk3MDNiMjc5ODA5N2NjMDFhY2VkYzI0MDQ5NWNmMWUxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9XaW5kb3dGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
V2luZG93RmVhdHVyZXMuaApAQCAtMjksOCArMjksMTEgQEAKICNpZm5kZWYgV2luZG93RmVhdHVy
ZXNfaAogI2RlZmluZSBXaW5kb3dGZWF0dXJlc19oCiAKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0zOCwxNSArNDEsNyBAQCBjbGFzcyBGbG9hdFJlY3Q7CiAKIHN0cnVjdCBXaW5kb3dGZWF0
dXJlcyB7CiAgICAgV2luZG93RmVhdHVyZXMoKQotICAgICAgICA6IHgoMCkKLSAgICAgICAgLCB4
U2V0KGZhbHNlKQotICAgICAgICAsIHkoMCkKLSAgICAgICAgLCB5U2V0KGZhbHNlKQotICAgICAg
ICAsIHdpZHRoKDApCi0gICAgICAgICwgd2lkdGhTZXQoZmFsc2UpCi0gICAgICAgICwgaGVpZ2h0
KDApCi0gICAgICAgICwgaGVpZ2h0U2V0KGZhbHNlKQotICAgICAgICAsIG1lbnVCYXJWaXNpYmxl
KHRydWUpCisgICAgICAgIDogbWVudUJhclZpc2libGUodHJ1ZSkKICAgICAgICAgLCBzdGF0dXNC
YXJWaXNpYmxlKHRydWUpCiAgICAgICAgICwgdG9vbEJhclZpc2libGUodHJ1ZSkKICAgICAgICAg
LCBsb2NhdGlvbkJhclZpc2libGUodHJ1ZSkKQEAgLTU5LDE0ICs1NCwxMCBAQCBzdHJ1Y3QgV2lu
ZG93RmVhdHVyZXMgewogICAgIGV4cGxpY2l0IFdpbmRvd0ZlYXR1cmVzKGNvbnN0IFN0cmluZyYg
d2luZG93RmVhdHVyZXNTdHJpbmcpOwogICAgIFdpbmRvd0ZlYXR1cmVzKGNvbnN0IFN0cmluZyYg
ZGlhbG9nRmVhdHVyZXNTdHJpbmcsIGNvbnN0IEZsb2F0UmVjdCYgc2NyZWVuQXZhaWxhYmxlUmVj
dCk7CiAKLSAgICBmbG9hdCB4OwotICAgIGJvb2wgeFNldDsKLSAgICBmbG9hdCB5OwotICAgIGJv
b2wgeVNldDsKLSAgICBmbG9hdCB3aWR0aDsKLSAgICBib29sIHdpZHRoU2V0OwotICAgIGZsb2F0
IGhlaWdodDsKLSAgICBib29sIGhlaWdodFNldDsKKyAgICBPcHRpb25hbDxmbG9hdD4geDsKKyAg
ICBPcHRpb25hbDxmbG9hdD4geTsKKyAgICBPcHRpb25hbDxmbG9hdD4gd2lkdGg7CisgICAgT3B0
aW9uYWw8ZmxvYXQ+IGhlaWdodDsKIAogICAgIGJvb2wgbWVudUJhclZpc2libGU7CiAgICAgYm9v
bCBzdGF0dXNCYXJWaXNpYmxlOwpAQCAtODEsMTAgKzcyLDkgQEAgc3RydWN0IFdpbmRvd0ZlYXR1
cmVzIHsKICAgICBWZWN0b3I8U3RyaW5nPiBhZGRpdGlvbmFsRmVhdHVyZXM7CiAKIHByaXZhdGU6
Ci0gICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBEaWFsb2dGZWF0dXJlc01hcDsK
LSAgICBzdGF0aWMgdm9pZCBwYXJzZURpYWxvZ0ZlYXR1cmVzKGNvbnN0IFN0cmluZyYsIEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+Jik7Ci0gICAgc3RhdGljIGJvb2wgYm9vbEZlYXR1cmUoY29uc3Qg
RGlhbG9nRmVhdHVyZXNNYXAmLCBjb25zdCBjaGFyKiBrZXksIGJvb2wgZGVmYXVsdFZhbHVlID0g
ZmFsc2UpOwotICAgIHN0YXRpYyBmbG9hdCBmbG9hdEZlYXR1cmUoY29uc3QgRGlhbG9nRmVhdHVy
ZXNNYXAmLCBjb25zdCBjaGFyKiBrZXksIGZsb2F0IG1pbiwgZmxvYXQgbWF4LCBmbG9hdCBkZWZh
dWx0VmFsdWUpOworICAgIHN0YXRpYyBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBwYXJzZURpYWxv
Z0ZlYXR1cmVzKGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBib29sIGJvb2xGZWF0dXJlKGNv
bnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiwgY29uc3QgY2hhcioga2V5LCBib29sIGRlZmF1
bHRWYWx1ZSA9IGZhbHNlKTsKKyAgICBzdGF0aWMgZmxvYXQgZmxvYXRGZWF0dXJlKGNvbnN0IEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+JiwgY29uc3QgY2hhcioga2V5LCBmbG9hdCBtaW4sIGZsb2F0
IG1heCwgZmxvYXQgZGVmYXVsdFZhbHVlKTsKICAgICB2b2lkIHNldFdpbmRvd0ZlYXR1cmUoY29u
c3QgU3RyaW5nJiBrZXlTdHJpbmcsIGNvbnN0IFN0cmluZyYgdmFsdWVTdHJpbmcpOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lm1tCmluZGV4IDFiOWNmOWMzYTdhMjYyNTIzMGU0MjMzZGMwNzkzNmUwOTk4MDFhYzguLjUwOWVi
OTVhYjBhNjNiMTQzYzkxNjY5NzdmMjdjNzc4MWNjZDQ4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTI0MCwxMCAr
MjQwLDEwIEBAIFBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFt
ZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0CiAjZW5kaWYKICAgICAKICAgICBpZiAo
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpjcmVhdGVXZWJW
aWV3V2l0aFJlcXVlc3Q6d2luZG93RmVhdHVyZXM6KV0pIHsKLSAgICAgICAgTlNOdW1iZXIgKngg
PSBmZWF0dXJlcy54U2V0ID8gW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhGbG9hdDpmZWF0dXJl
cy54XSA6IG5pbDsKLSAgICAgICAgTlNOdW1iZXIgKnkgPSBmZWF0dXJlcy55U2V0ID8gW1tOU051
bWJlciBhbGxvY10gaW5pdFdpdGhGbG9hdDpmZWF0dXJlcy55XSA6IG5pbDsKLSAgICAgICAgTlNO
dW1iZXIgKndpZHRoID0gZmVhdHVyZXMud2lkdGhTZXQgPyBbW05TTnVtYmVyIGFsbG9jXSBpbml0
V2l0aEZsb2F0OmZlYXR1cmVzLndpZHRoXSA6IG5pbDsKLSAgICAgICAgTlNOdW1iZXIgKmhlaWdo
dCA9IGZlYXR1cmVzLmhlaWdodFNldCA/IFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoRmxvYXQ6
ZmVhdHVyZXMuaGVpZ2h0XSA6IG5pbDsKKyAgICAgICAgTlNOdW1iZXIgKnggPSBmZWF0dXJlcy54
ID8gW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhGbG9hdDoqZmVhdHVyZXMueF0gOiBuaWw7Cisg
ICAgICAgIE5TTnVtYmVyICp5ID0gZmVhdHVyZXMueSA/IFtbTlNOdW1iZXIgYWxsb2NdIGluaXRX
aXRoRmxvYXQ6KmZlYXR1cmVzLnldIDogbmlsOworICAgICAgICBOU051bWJlciAqd2lkdGggPSBm
ZWF0dXJlcy53aWR0aCA/IFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoRmxvYXQ6KmZlYXR1cmVz
LndpZHRoXSA6IG5pbDsKKyAgICAgICAgTlNOdW1iZXIgKmhlaWdodCA9IGZlYXR1cmVzLmhlaWdo
dCA/IFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoRmxvYXQ6KmZlYXR1cmVzLmhlaWdodF0gOiBu
aWw7CiAgICAgICAgIE5TTnVtYmVyICptZW51QmFyVmlzaWJsZSA9IFtbTlNOdW1iZXIgYWxsb2Nd
IGluaXRXaXRoQm9vbDpmZWF0dXJlcy5tZW51QmFyVmlzaWJsZV07CiAgICAgICAgIE5TTnVtYmVy
ICpzdGF0dXNCYXJWaXNpYmxlID0gW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhCb29sOmZlYXR1
cmVzLnN0YXR1c0JhclZpc2libGVdOwogICAgICAgICBOU051bWJlciAqdG9vbEJhclZpc2libGUg
PSBbW05TTnVtYmVyIGFsbG9jXSBpbml0V2l0aEJvb2w6ZmVhdHVyZXMudG9vbEJhclZpc2libGVd
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApp
bmRleCA5NjA3NzRhYTZiZjIyMmM0MmE5YTFmZmFkYTc5ZDhlNTRlNGY2MGQ2Li5kM2YzYjkyNGIy
MWJlMWMyZTZmOTQ4NzA2MDE1ZTExOTdmNjNhMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtOTU2LDEwICs5NTYsNiBAQCB2b2lk
IEFyZ3VtZW50Q29kZXI8V2luZG93RmVhdHVyZXM+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBXaW5kbwogICAgIGVuY29kZXIgPDwgd2luZG93RmVhdHVyZXMueTsKICAg
ICBlbmNvZGVyIDw8IHdpbmRvd0ZlYXR1cmVzLndpZHRoOwogICAgIGVuY29kZXIgPDwgd2luZG93
RmVhdHVyZXMuaGVpZ2h0OwotICAgIGVuY29kZXIgPDwgd2luZG93RmVhdHVyZXMueFNldDsKLSAg
ICBlbmNvZGVyIDw8IHdpbmRvd0ZlYXR1cmVzLnlTZXQ7Ci0gICAgZW5jb2RlciA8PCB3aW5kb3dG
ZWF0dXJlcy53aWR0aFNldDsKLSAgICBlbmNvZGVyIDw8IHdpbmRvd0ZlYXR1cmVzLmhlaWdodFNl
dDsKICAgICBlbmNvZGVyIDw8IHdpbmRvd0ZlYXR1cmVzLm1lbnVCYXJWaXNpYmxlOwogICAgIGVu
Y29kZXIgPDwgd2luZG93RmVhdHVyZXMuc3RhdHVzQmFyVmlzaWJsZTsKICAgICBlbmNvZGVyIDw8
IHdpbmRvd0ZlYXR1cmVzLnRvb2xCYXJWaXNpYmxlOwpAQCAtOTgwLDE0ICs5NzYsNiBAQCBib29s
IEFyZ3VtZW50Q29kZXI8V2luZG93RmVhdHVyZXM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBXaW5kb3dGZWF0dQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZSh3aW5kb3dGZWF0dXJlcy5oZWlnaHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh3aW5kb3dGZWF0dXJlcy54U2V0KSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUod2luZG93RmVhdHVyZXMueVNl
dCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHdpbmRv
d0ZlYXR1cmVzLndpZHRoU2V0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVj
b2Rlci5kZWNvZGUod2luZG93RmVhdHVyZXMuaGVpZ2h0U2V0KSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUod2luZG93RmVhdHVyZXMubWVudUJhclZpc2li
bGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh3aW5k
b3dGZWF0dXJlcy5zdGF0dXNCYXJWaXNpYmxlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHAKaW5kZXggYzJmZTMyZjE3OGQxOTNiYzY2ZTE3ODM5NDViOTJmMTViMDli
YzlhOC4uZGQ1MTk5ODk3NzY1M2NmNjEyNDc1NGM4MGEyMDA5MTEwYmVjNTVmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTEzNTAsMTQgKzEzNTAsMTQg
QEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdL
UGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAog
ICAgICAgICAgICAgQVBJOjpEaWN0aW9uYXJ5OjpNYXBUeXBlIG1hcDsKLSAgICAgICAgICAgIGlm
ICh3aW5kb3dGZWF0dXJlcy54U2V0KQotICAgICAgICAgICAgICAgIG1hcC5zZXQoIngiLCBBUEk6
OkRvdWJsZTo6Y3JlYXRlKHdpbmRvd0ZlYXR1cmVzLngpKTsKLSAgICAgICAgICAgIGlmICh3aW5k
b3dGZWF0dXJlcy55U2V0KQotICAgICAgICAgICAgICAgIG1hcC5zZXQoInkiLCBBUEk6OkRvdWJs
ZTo6Y3JlYXRlKHdpbmRvd0ZlYXR1cmVzLnkpKTsKLSAgICAgICAgICAgIGlmICh3aW5kb3dGZWF0
dXJlcy53aWR0aFNldCkKLSAgICAgICAgICAgICAgICBtYXAuc2V0KCJ3aWR0aCIsIEFQSTo6RG91
YmxlOjpjcmVhdGUod2luZG93RmVhdHVyZXMud2lkdGgpKTsKLSAgICAgICAgICAgIGlmICh3aW5k
b3dGZWF0dXJlcy5oZWlnaHRTZXQpCi0gICAgICAgICAgICAgICAgbWFwLnNldCgiaGVpZ2h0Iiwg
QVBJOjpEb3VibGU6OmNyZWF0ZSh3aW5kb3dGZWF0dXJlcy5oZWlnaHQpKTsKKyAgICAgICAgICAg
IGlmICh3aW5kb3dGZWF0dXJlcy54KQorICAgICAgICAgICAgICAgIG1hcC5zZXQoIngiLCBBUEk6
OkRvdWJsZTo6Y3JlYXRlKCp3aW5kb3dGZWF0dXJlcy54KSk7CisgICAgICAgICAgICBpZiAod2lu
ZG93RmVhdHVyZXMueSkKKyAgICAgICAgICAgICAgICBtYXAuc2V0KCJ5IiwgQVBJOjpEb3VibGU6
OmNyZWF0ZSgqd2luZG93RmVhdHVyZXMueSkpOworICAgICAgICAgICAgaWYgKHdpbmRvd0ZlYXR1
cmVzLndpZHRoKQorICAgICAgICAgICAgICAgIG1hcC5zZXQoIndpZHRoIiwgQVBJOjpEb3VibGU6
OmNyZWF0ZSgqd2luZG93RmVhdHVyZXMud2lkdGgpKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3dG
ZWF0dXJlcy5oZWlnaHQpCisgICAgICAgICAgICAgICAgbWFwLnNldCgiaGVpZ2h0IiwgQVBJOjpE
b3VibGU6OmNyZWF0ZSgqd2luZG93RmVhdHVyZXMuaGVpZ2h0KSk7CiAgICAgICAgICAgICBtYXAu
c2V0KCJtZW51QmFyVmlzaWJsZSIsIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKHdpbmRvd0ZlYXR1cmVz
Lm1lbnVCYXJWaXNpYmxlKSk7CiAgICAgICAgICAgICBtYXAuc2V0KCJzdGF0dXNCYXJWaXNpYmxl
IiwgQVBJOjpCb29sZWFuOjpjcmVhdGUod2luZG93RmVhdHVyZXMuc3RhdHVzQmFyVmlzaWJsZSkp
OwogICAgICAgICAgICAgbWFwLnNldCgidG9vbEJhclZpc2libGUiLCBBUEk6OkJvb2xlYW46OmNy
ZWF0ZSh3aW5kb3dGZWF0dXJlcy50b29sQmFyVmlzaWJsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzLm1tCmluZGV4IDU4
ZGNhNDY0NTVjYjg0NzUxOTlkNmUwNTRjMWQwMDJjMmVlYzVlN2YuLmI5NWU2ODJjMzEyN2JkYjEx
ZjE2NzgyYTEzOWZmNDg5MjA5YmIyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2luZG93RmVhdHVyZXMubW0KQEAgLTU1LDE0ICs1NSwxNCBA
QAogICAgIF90b29sYmFyc1Zpc2liaWxpdHkgPSBAKHdpbmRvd0ZlYXR1cmVzLnRvb2xCYXJWaXNp
YmxlIHx8IHdpbmRvd0ZlYXR1cmVzLmxvY2F0aW9uQmFyVmlzaWJsZSk7CiAgICAgX2FsbG93c1Jl
c2l6aW5nID0gQCh3aW5kb3dGZWF0dXJlcy5yZXNpemFibGUpOwogCi0gICAgaWYgKHdpbmRvd0Zl
YXR1cmVzLnhTZXQpCi0gICAgICAgIF94ID0gQCh3aW5kb3dGZWF0dXJlcy54KTsKLSAgICBpZiAo
d2luZG93RmVhdHVyZXMueVNldCkKLSAgICAgICAgX3kgPSBAKHdpbmRvd0ZlYXR1cmVzLnkpOwot
ICAgIGlmICh3aW5kb3dGZWF0dXJlcy53aWR0aFNldCkKLSAgICAgICAgX3dpZHRoID0gQCh3aW5k
b3dGZWF0dXJlcy53aWR0aCk7Ci0gICAgaWYgKHdpbmRvd0ZlYXR1cmVzLmhlaWdodFNldCkKLSAg
ICAgICAgX2hlaWdodCA9IEAod2luZG93RmVhdHVyZXMuaGVpZ2h0KTsKKyAgICBpZiAod2luZG93
RmVhdHVyZXMueCkKKyAgICAgICAgX3ggPSBAKCp3aW5kb3dGZWF0dXJlcy54KTsKKyAgICBpZiAo
d2luZG93RmVhdHVyZXMueSkKKyAgICAgICAgX3kgPSBAKCp3aW5kb3dGZWF0dXJlcy55KTsKKyAg
ICBpZiAod2luZG93RmVhdHVyZXMud2lkdGgpCisgICAgICAgIF93aWR0aCA9IEAoKndpbmRvd0Zl
YXR1cmVzLndpZHRoKTsKKyAgICBpZiAod2luZG93RmVhdHVyZXMuaGVpZ2h0KQorICAgICAgICBf
aGVpZ2h0ID0gQCgqd2luZG93RmVhdHVyZXMuaGVpZ2h0KTsKIAogICAgIHJldHVybiBzZWxmOwog
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258852</attachid>
            <date>2015-08-12 16:50:52 -0700</date>
            <delta_ts>2015-08-12 20:51:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147956-20150812165035.patch</filename>
            <type>text/plain</type>
            <size>22955</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk4MjQwNGQ4M2NiNTcyYjRmNDc5MTk4
ODFhYTlhMTgxODM5ODEzYWYuLmNkYjg3YmQ2OWM4MzAwNTE1NzVmOWZlOTIwNzE0NzNiM2QxOTQ2
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDgtMTIgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgV1RGOjpPcHRpb25hbCBpbiBXaW5kb3dG
ZWF0dXJlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ3OTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIG5ldyBvcGVyYXRvcnMgdG8gV1RGOjpPcHRpb25hbCB0byBtYWtlIGl0IG1vcmUgbGlrZSBz
dGQ6Om9wdGlvbmFsLgorCisgICAgICAgICogd3RmL09wdGlvbmFsLmg6CisgICAgICAgIChXVEY6
Ok9wdGlvbmFsOjpvcGVyYXRvci0+KToKKyAgICAgICAgKFdURjo6T3B0aW9uYWw6Om9wZXJhdG9y
Kik6CisKIDIwMTUtMDgtMTEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBbHdheXMgdXNlIGEgYnl0ZS1zaXplZCBsb2NrIGltcGxlbWVudGF0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggMTc4NTdkZDRkMTEzNzRkODY0MWYzMjRkODRmNTA4OGI2OTEwYjI2Ni4uODYzZmEzNGZm
MDBmOGI1MWViOGJmZjY4ZGRhMTFkMjRhNmZiMzc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDE1LTA4LTEyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisK
KyAgICAgICAgVXNlIFdURjo6T3B0aW9uYWwgaW4gV2luZG93RmVhdHVyZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzk1NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgICogcGFnZS9X
aW5kb3dGZWF0dXJlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dGZWF0dXJlczo6V2lu
ZG93RmVhdHVyZXMpOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93RmVhdHVyZXM6OnNldFdpbmRv
d0ZlYXR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93RmVhdHVyZXM6OmJvb2xGZWF0dXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzOjpmbG9hdEZlYXR1cmUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2luZG93RmVhdHVyZXM6OnBhcnNlRGlhbG9nRmVhdHVyZXMpOgorICAg
ICAgICAqIHBhZ2UvV2luZG93RmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd0Zl
YXR1cmVzOjpXaW5kb3dGZWF0dXJlcyk6CisKIDIwMTUtMDgtMTIgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBSZW1vdmUgcHJvbWlzZSBhdHRy
aWJ1dGUgc3BlY2lmaWMgaGFuZGxpbmcgZnJvbSBiaW5kaW5nIGdlbmVyYXRvcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IDQ5NDNiYWY5M2VjM2ViMGQ5ZjJlMjJlN2NlMjA2NGU2NmRlMzQ4MWIuLjFlZDQw
MjEyZjcyNTg2ZDg0NmUxNmZkZWJjYzAwYzY0ZWQwOTBiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxNS0wOC0xMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgorCisgICAgICAgIFVzZSBXVEY6Ok9wdGlvbmFsIGluIFdpbmRvd0ZlYXR1cmVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc5NTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlV2luZG93KToKKwogMjAxNS0wOC0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIEFsaWduIFdlYktpdDEncyBQYWdlQ2FjaGUgc2l6ZSB3aXRoIFdlYktpdDIn
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCmluZGV4IDk1MTQzZjBkNTg1YWE4NTIyYmJhODczODZkZjUzMzdlMDEy
ZjRmYmEuLjBhMmRjNDlmNDc1ZTk1MmVmYjYyOWRiZWNiYzI3MjYwZTY4OWQ3YzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNS0wOC0xMiAgQW5kZXJzIENhcmxzc29uICA8
YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBXVEY6Ok9wdGlvbmFsIGluIFdpbmRv
d0ZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDc5NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChjcmVhdGVX
aW5kb3dGZWF0dXJlc1Byb3BlcnR5QmFnKToKKwogMjAxNS0wOC0xMCAgUGVyIEFybmUgVm9sbGFu
ICA8cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW1dpbl0gU21hbGwgcmVwYWludCBpc3N1
ZXMgd2hlbiBkZXZpY2Ugc2NhbGUgZmFjdG9yICE9IDEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjA3YTVjYjZl
YzFkOGYyOGRmMzljMTUzMTE5MGE5ZWE2OWY4Y2ZkMy4uYzhkOGZkYzM3OTlhZWZmZjAzNTQ3OGY0
MTAxNTBkYjI4MTJjOWExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA4LTEy
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdU
Rjo6T3B0aW9uYWwgaW4gV2luZG93RmVhdHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzk1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2luZG93RmVhdHVyZXM+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdpbmRvd0ZlYXR1cmVzPjo6ZGVj
b2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAg
ICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dpbmRvd0ZlYXR1cmVzLm1tOgorICAgICAgICAoLVtXS1dpbmRvd0ZlYXR1cmVzIF9p
bml0V2l0aFdpbmRvd0ZlYXR1cmVzOl0pOgorCiAyMDE1LTA4LTExICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBOZXR3b3JrUHJvY2VzczogRE5T
IHByZWZldGNoIGhhcHBlbnMgaW4gdGhlIFdlYiBQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9PcHRpb25hbC5oIGIvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAppbmRleCBkNjg2
Yjk5NGYyNjdkY2E4ZDVmYTMzMTg5NTJjNzAzYjliOWUzMmUxLi4zYjVjOGRkMDhmMzNiYjk3MDJj
OGQ0ZDJjZjJmYjQyYzk5M2Y2YmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25h
bC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKQEAgLTEzMyw2ICsxMzMsMjEgQEAg
cHVibGljOgogCiAgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNFbmdhZ2VkOyB9CiAKKyAgICBjb25zdCBUKiBvcGVyYXRvci0+KCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX2lzRW5nYWdlZCk7CisgICAgICAgIHJldHVybiBhc1B0cigpLT5vcGVy
YXRvci0+KCk7CisgICAgfQorCisgICAgVCogb3BlcmF0b3ItPigpCisgICAgeworICAgICAgICBB
U1NFUlQobV9pc0VuZ2FnZWQpOworICAgICAgICByZXR1cm4gYXNQdHIoKS0+b3BlcmF0b3ItPigp
OworICAgIH0KKworICAgIGNvbnN0IFQmIG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuIHZhbHVl
KCk7IH0KKyAgICBUJiBvcGVyYXRvciooKSB7IHJldHVybiB2YWx1ZSgpOyB9CisKICAgICBUJiB2
YWx1ZSgpCiAgICAgewogICAgICAgICBBU1NFUlQobV9pc0VuZ2FnZWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNjExYWE0OGE0OWI0MWU3NjIzYmU3MTMxZjYxMmFj
OWIyZGNlMzdmYi4uNDVhYTYwNmIzOWQ4M2JmM2ZkMzZmZWI0N2FlNDgxZGFjMjgwYTViMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zNTUxLDE1ICszNTUxLDE1IEBA
IFJlZlB0cjxGcmFtZT4gY3JlYXRlV2luZG93KEZyYW1lJiBvcGVuZXJGcmFtZSwgRnJhbWUmIGxv
b2t1cEZyYW1lLCBjb25zdCBGcmFtZUxvCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBGbG9hdFNp
emUgdmlld3BvcnRTaXplID0gcGFnZS0+Y2hyb21lKCkucGFnZVJlY3QoKS5zaXplKCk7CiAgICAg
RmxvYXRSZWN0IHdpbmRvd1JlY3QgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7Ci0gICAg
aWYgKGZlYXR1cmVzLnhTZXQpCi0gICAgICAgIHdpbmRvd1JlY3Quc2V0WChmZWF0dXJlcy54KTsK
LSAgICBpZiAoZmVhdHVyZXMueVNldCkKLSAgICAgICAgd2luZG93UmVjdC5zZXRZKGZlYXR1cmVz
LnkpOworICAgIGlmIChmZWF0dXJlcy54KQorICAgICAgICB3aW5kb3dSZWN0LnNldFgoKmZlYXR1
cmVzLngpOworICAgIGlmIChmZWF0dXJlcy55KQorICAgICAgICB3aW5kb3dSZWN0LnNldFkoKmZl
YXR1cmVzLnkpOwogICAgIC8vIFplcm8gd2lkdGggYW5kIGhlaWdodCBtZWFuIHVzaW5nIGRlZmF1
bHQgc2l6ZSwgbm90IG1pbnVtdW0gb25lLgotICAgIGlmIChmZWF0dXJlcy53aWR0aFNldCAmJiBm
ZWF0dXJlcy53aWR0aCkKLSAgICAgICAgd2luZG93UmVjdC5zZXRXaWR0aChmZWF0dXJlcy53aWR0
aCArICh3aW5kb3dSZWN0LndpZHRoKCkgLSB2aWV3cG9ydFNpemUud2lkdGgoKSkpOwotICAgIGlm
IChmZWF0dXJlcy5oZWlnaHRTZXQgJiYgZmVhdHVyZXMuaGVpZ2h0KQotICAgICAgICB3aW5kb3dS
ZWN0LnNldEhlaWdodChmZWF0dXJlcy5oZWlnaHQgKyAod2luZG93UmVjdC5oZWlnaHQoKSAtIHZp
ZXdwb3J0U2l6ZS5oZWlnaHQoKSkpOworICAgIGlmIChmZWF0dXJlcy53aWR0aCAmJiAqZmVhdHVy
ZXMud2lkdGgpCisgICAgICAgIHdpbmRvd1JlY3Quc2V0V2lkdGgoKmZlYXR1cmVzLndpZHRoICsg
KHdpbmRvd1JlY3Qud2lkdGgoKSAtIHZpZXdwb3J0U2l6ZS53aWR0aCgpKSk7CisgICAgaWYgKGZl
YXR1cmVzLmhlaWdodCAmJiAqZmVhdHVyZXMuaGVpZ2h0KQorICAgICAgICB3aW5kb3dSZWN0LnNl
dEhlaWdodCgqZmVhdHVyZXMuaGVpZ2h0ICsgKHdpbmRvd1JlY3QuaGVpZ2h0KCkgLSB2aWV3cG9y
dFNpemUuaGVpZ2h0KCkpKTsKIAogICAgIC8vIEVuc3VyZSBub24tTmFOIHZhbHVlcywgbWluaW11
bSBzaXplIGFzIHdlbGwgYXMgYmVpbmcgd2l0aGluIHZhbGlkIHNjcmVlbiBhcmVhLgogICAgIEZs
b2F0UmVjdCBuZXdXaW5kb3dSZWN0ID0gRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KHBhZ2Us
IHdpbmRvd1JlY3QpOwpAQCAtMzU3MSwxMCArMzU3MSwxMCBAQCBSZWZQdHI8RnJhbWU+IGNyZWF0
ZVdpbmRvdyhGcmFtZSYgb3BlbmVyRnJhbWUsIEZyYW1lJiBsb29rdXBGcmFtZSwgY29uc3QgRnJh
bWVMbwogICAgIC8vIE9uIGlPUywgd2lkdGggYW5kIGhlaWdodCByZWZlciB0byB0aGUgdmlld3Bv
cnQgZGltZW5zaW9ucy4KICAgICBWaWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHM7CiAgICAgLy8g
WmVybyB3aWR0aCBhbmQgaGVpZ2h0IG1lYW4gdXNpbmcgZGVmYXVsdCBzaXplLCBub3QgbWluaW11
bSBvbmUuCi0gICAgaWYgKGZlYXR1cmVzLndpZHRoU2V0ICYmIGZlYXR1cmVzLndpZHRoKQotICAg
ICAgICBhcmd1bWVudHMud2lkdGggPSBmZWF0dXJlcy53aWR0aDsKLSAgICBpZiAoZmVhdHVyZXMu
aGVpZ2h0U2V0ICYmIGZlYXR1cmVzLmhlaWdodCkKLSAgICAgICAgYXJndW1lbnRzLmhlaWdodCA9
IGZlYXR1cmVzLmhlaWdodDsKKyAgICBpZiAoZmVhdHVyZXMud2lkdGggJiYgKmZlYXR1cmVzLndp
ZHRoKQorICAgICAgICBhcmd1bWVudHMud2lkdGggPSAqZmVhdHVyZXMud2lkdGg7CisgICAgaWYg
KGZlYXR1cmVzLmhlaWdodCAmJiAqZmVhdHVyZXMuaGVpZ2h0KQorICAgICAgICBhcmd1bWVudHMu
aGVpZ2h0ID0gKmZlYXR1cmVzLmhlaWdodDsKICAgICBmcmFtZS0+c2V0Vmlld3BvcnRBcmd1bWVu
dHMoYXJndW1lbnRzKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1dpbmRvd0ZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93RmVhdHVyZXMu
Y3BwCmluZGV4IDE3NzRkY2Y0ZjBiMmU5ZmJiOTY0YWU5YWViMTU4NWVlNDA4ZDY0ZjkuLmMwZGQ4
NmNhYTAzZjYzOWZlMjQzMDc0YmQxMzA4M2Y5YmRmZDMyNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvV2luZG93RmVhdHVyZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
V2luZG93RmVhdHVyZXMuY3BwCkBAIC0zNywxNSArMzcsNyBAQCBzdGF0aWMgYm9vbCBpc1dpbmRv
d0ZlYXR1cmVzU2VwYXJhdG9yKFVDaGFyIGMpCiB9CiAKIFdpbmRvd0ZlYXR1cmVzOjpXaW5kb3dG
ZWF0dXJlcyhjb25zdCBTdHJpbmcmIGZlYXR1cmVzKQotICAgIDogeCgwKQotICAgICwgeFNldChm
YWxzZSkKLSAgICAsIHkoMCkKLSAgICAsIHlTZXQoZmFsc2UpCi0gICAgLCB3aWR0aCgwKQotICAg
ICwgd2lkdGhTZXQoZmFsc2UpCi0gICAgLCBoZWlnaHQoMCkKLSAgICAsIGhlaWdodFNldChmYWxz
ZSkKLSAgICAsIHJlc2l6YWJsZSh0cnVlKQorICAgIDogcmVzaXphYmxlKHRydWUpCiAgICAgLCBm
dWxsc2NyZWVuKGZhbHNlKQogICAgICwgZGlhbG9nKGZhbHNlKQogewpAQCAtMTM0LDE5ICsxMjYs
MTUgQEAgdm9pZCBXaW5kb3dGZWF0dXJlczo6c2V0V2luZG93RmVhdHVyZShjb25zdCBTdHJpbmcm
IGtleVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWwKICAgICAvLyBXZSB0cmVhdCBrZXlTdHJpbmcg
b2YgInJlc2l6YWJsZSIgaGVyZSBhcyBhbiBhZGRpdGlvbmFsIGZlYXR1cmUgcmF0aGVyIHRoYW4g
c2V0dGluZyByZXNpemVhYmxlIHRvIHRydWUuCiAgICAgLy8gVGhpcyBpcyBjb25zaXN0ZW50IHdp
dGggRmlyZWZveCwgYnV0IGNvdWxkIGFsc28gYmUgaGFuZGxlZCBhdCBhbm90aGVyIGxldmVsLgog
Ci0gICAgaWYgKGtleVN0cmluZyA9PSAibGVmdCIgfHwga2V5U3RyaW5nID09ICJzY3JlZW54Iikg
ewotICAgICAgICB4U2V0ID0gdHJ1ZTsKKyAgICBpZiAoa2V5U3RyaW5nID09ICJsZWZ0IiB8fCBr
ZXlTdHJpbmcgPT0gInNjcmVlbngiKQogICAgICAgICB4ID0gdmFsdWU7Ci0gICAgfSBlbHNlIGlm
IChrZXlTdHJpbmcgPT0gInRvcCIgfHwga2V5U3RyaW5nID09ICJzY3JlZW55IikgewotICAgICAg
ICB5U2V0ID0gdHJ1ZTsKKyAgICBlbHNlIGlmIChrZXlTdHJpbmcgPT0gInRvcCIgfHwga2V5U3Ry
aW5nID09ICJzY3JlZW55IikKICAgICAgICAgeSA9IHZhbHVlOwotICAgIH0gZWxzZSBpZiAoa2V5
U3RyaW5nID09ICJ3aWR0aCIgfHwga2V5U3RyaW5nID09ICJpbm5lcndpZHRoIikgewotICAgICAg
ICB3aWR0aFNldCA9IHRydWU7CisgICAgZWxzZSBpZiAoa2V5U3RyaW5nID09ICJ3aWR0aCIgfHwg
a2V5U3RyaW5nID09ICJpbm5lcndpZHRoIikKICAgICAgICAgd2lkdGggPSB2YWx1ZTsKLSAgICB9
IGVsc2UgaWYgKGtleVN0cmluZyA9PSAiaGVpZ2h0IiB8fCBrZXlTdHJpbmcgPT0gImlubmVyaGVp
Z2h0IikgewotICAgICAgICBoZWlnaHRTZXQgPSB0cnVlOworICAgIGVsc2UgaWYgKGtleVN0cmlu
ZyA9PSAiaGVpZ2h0IiB8fCBrZXlTdHJpbmcgPT0gImlubmVyaGVpZ2h0IikKICAgICAgICAgaGVp
Z2h0ID0gdmFsdWU7Ci0gICAgfSBlbHNlIGlmIChrZXlTdHJpbmcgPT0gIm1lbnViYXIiKQorICAg
IGVsc2UgaWYgKGtleVN0cmluZyA9PSAibWVudWJhciIpCiAgICAgICAgIG1lbnVCYXJWaXNpYmxl
ID0gdmFsdWU7CiAgICAgZWxzZSBpZiAoa2V5U3RyaW5nID09ICJ0b29sYmFyIikKICAgICAgICAg
dG9vbEJhclZpc2libGUgPSB2YWx1ZTsKQEAgLTE2MywxNiArMTUxLDEzIEBAIHZvaWQgV2luZG93
RmVhdHVyZXM6OnNldFdpbmRvd0ZlYXR1cmUoY29uc3QgU3RyaW5nJiBrZXlTdHJpbmcsIGNvbnN0
IFN0cmluZyYgdmFsCiB9CiAKIFdpbmRvd0ZlYXR1cmVzOjpXaW5kb3dGZWF0dXJlcyhjb25zdCBT
dHJpbmcmIGRpYWxvZ0ZlYXR1cmVzU3RyaW5nLCBjb25zdCBGbG9hdFJlY3QmIHNjcmVlbkF2YWls
YWJsZVJlY3QpCi0gICAgOiB3aWR0aFNldCh0cnVlKQotICAgICwgaGVpZ2h0U2V0KHRydWUpCi0g
ICAgLCBtZW51QmFyVmlzaWJsZShmYWxzZSkKKyAgICA6IG1lbnVCYXJWaXNpYmxlKGZhbHNlKQog
ICAgICwgdG9vbEJhclZpc2libGUoZmFsc2UpCiAgICAgLCBsb2NhdGlvbkJhclZpc2libGUoZmFs
c2UpCiAgICAgLCBmdWxsc2NyZWVuKGZhbHNlKQogICAgICwgZGlhbG9nKHRydWUpCiB7Ci0gICAg
RGlhbG9nRmVhdHVyZXNNYXAgZmVhdHVyZXM7Ci0gICAgcGFyc2VEaWFsb2dGZWF0dXJlcyhkaWFs
b2dGZWF0dXJlc1N0cmluZywgZmVhdHVyZXMpOworICAgIGF1dG8gZmVhdHVyZXMgPSBwYXJzZURp
YWxvZ0ZlYXR1cmVzKGRpYWxvZ0ZlYXR1cmVzU3RyaW5nKTsKIAogICAgIGNvbnN0IGJvb2wgdHJ1
c3RlZCA9IGZhbHNlOwogCkBAIC0xODcsMjAgKzE3MiwyMCBAQCBXaW5kb3dGZWF0dXJlczo6V2lu
ZG93RmVhdHVyZXMoY29uc3QgU3RyaW5nJiBkaWFsb2dGZWF0dXJlc1N0cmluZywgY29uc3QgRmxv
YXRSZQogICAgIHdpZHRoID0gZmxvYXRGZWF0dXJlKGZlYXR1cmVzLCAiZGlhbG9nd2lkdGgiLCAx
MDAsIHNjcmVlbkF2YWlsYWJsZVJlY3Qud2lkdGgoKSwgNjIwKTsgLy8gZGVmYXVsdCBoZXJlIGNh
bWUgZnJvbSBmcmFtZSBzaXplIG9mIGRpYWxvZyBpbiBNYWNJRQogICAgIGhlaWdodCA9IGZsb2F0
RmVhdHVyZShmZWF0dXJlcywgImRpYWxvZ2hlaWdodCIsIDEwMCwgc2NyZWVuQXZhaWxhYmxlUmVj
dC5oZWlnaHQoKSwgNDUwKTsgLy8gZGVmYXVsdCBoZXJlIGNhbWUgZnJvbSBmcmFtZSBzaXplIG9m
IGRpYWxvZyBpbiBNYWNJRQogCi0gICAgeCA9IGZsb2F0RmVhdHVyZShmZWF0dXJlcywgImRpYWxv
Z2xlZnQiLCBzY3JlZW5BdmFpbGFibGVSZWN0LngoKSwgc2NyZWVuQXZhaWxhYmxlUmVjdC5tYXhY
KCkgLSB3aWR0aCwgLTEpOwotICAgIHhTZXQgPSB4ID4gMDsKLSAgICB5ID0gZmxvYXRGZWF0dXJl
KGZlYXR1cmVzLCAiZGlhbG9ndG9wIiwgc2NyZWVuQXZhaWxhYmxlUmVjdC55KCksIHNjcmVlbkF2
YWlsYWJsZVJlY3QubWF4WSgpIC0gaGVpZ2h0LCAtMSk7Ci0gICAgeVNldCA9IHkgPiAwOworICAg
IGF1dG8gZGlhbG9nTGVmdCA9IGZsb2F0RmVhdHVyZShmZWF0dXJlcywgImRpYWxvZ2xlZnQiLCBz
Y3JlZW5BdmFpbGFibGVSZWN0LngoKSwgc2NyZWVuQXZhaWxhYmxlUmVjdC5tYXhYKCkgLSAqd2lk
dGgsIC0xKTsKKyAgICBpZiAoZGlhbG9nTGVmdCA+IDApCisgICAgICAgIHggPSBkaWFsb2dMZWZ0
OworCisgICAgYXV0byBkaWFsb2dUb3AgPSBmbG9hdEZlYXR1cmUoZmVhdHVyZXMsICJkaWFsb2d0
b3AiLCBzY3JlZW5BdmFpbGFibGVSZWN0LnkoKSwgc2NyZWVuQXZhaWxhYmxlUmVjdC5tYXhZKCkg
LSAqaGVpZ2h0LCAtMSk7CisgICAgaWYgKGRpYWxvZ1RvcCA+IDApCisgICAgICAgIHkgPSBkaWFs
b2dUb3A7CiAKICAgICBpZiAoYm9vbEZlYXR1cmUoZmVhdHVyZXMsICJjZW50ZXIiLCB0cnVlKSkg
ewotICAgICAgICBpZiAoIXhTZXQpIHsKLSAgICAgICAgICAgIHggPSBzY3JlZW5BdmFpbGFibGVS
ZWN0LngoKSArIChzY3JlZW5BdmFpbGFibGVSZWN0LndpZHRoKCkgLSB3aWR0aCkgLyAyOwotICAg
ICAgICAgICAgeFNldCA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCF5U2V0KSB7Ci0g
ICAgICAgICAgICB5ID0gc2NyZWVuQXZhaWxhYmxlUmVjdC55KCkgKyAoc2NyZWVuQXZhaWxhYmxl
UmVjdC5oZWlnaHQoKSAtIGhlaWdodCkgLyAyOwotICAgICAgICAgICAgeVNldCA9IHRydWU7Ci0g
ICAgICAgIH0KKyAgICAgICAgaWYgKCF4KQorICAgICAgICAgICAgeCA9IHNjcmVlbkF2YWlsYWJs
ZVJlY3QueCgpICsgKHNjcmVlbkF2YWlsYWJsZVJlY3Qud2lkdGgoKSAtICp3aWR0aCkgLyAyOwor
CisgICAgICAgIGlmICgheSkKKyAgICAgICAgICAgIHkgPSBzY3JlZW5BdmFpbGFibGVSZWN0Lnko
KSArIChzY3JlZW5BdmFpbGFibGVSZWN0LmhlaWdodCgpIC0gKmhlaWdodCkgLyAyOwogICAgIH0K
IAogICAgIHJlc2l6YWJsZSA9IGJvb2xGZWF0dXJlKGZlYXR1cmVzLCAicmVzaXphYmxlIik7CkBA
IC0yMDgsMjAgKzE5MywyMiBAQCBXaW5kb3dGZWF0dXJlczo6V2luZG93RmVhdHVyZXMoY29uc3Qg
U3RyaW5nJiBkaWFsb2dGZWF0dXJlc1N0cmluZywgY29uc3QgRmxvYXRSZQogICAgIHN0YXR1c0Jh
clZpc2libGUgPSBib29sRmVhdHVyZShmZWF0dXJlcywgInN0YXR1cyIsICF0cnVzdGVkKTsKIH0K
IAotYm9vbCBXaW5kb3dGZWF0dXJlczo6Ym9vbEZlYXR1cmUoY29uc3QgRGlhbG9nRmVhdHVyZXNN
YXAmIGZlYXR1cmVzLCBjb25zdCBjaGFyKiBrZXksIGJvb2wgZGVmYXVsdFZhbHVlKQorYm9vbCBX
aW5kb3dGZWF0dXJlczo6Ym9vbEZlYXR1cmUoY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4m
IGZlYXR1cmVzLCBjb25zdCBjaGFyKiBrZXksIGJvb2wgZGVmYXVsdFZhbHVlKQogewotICAgIERp
YWxvZ0ZlYXR1cmVzTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGZlYXR1cmVzLmZpbmQoa2V5KTsK
KyAgICBhdXRvIGl0ID0gZmVhdHVyZXMuZmluZChrZXkpOwogICAgIGlmIChpdCA9PSBmZWF0dXJl
cy5lbmQoKSkKICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKwogICAgIGNvbnN0IFN0cmlu
ZyYgdmFsdWUgPSBpdC0+dmFsdWU7CiAgICAgcmV0dXJuIHZhbHVlLmlzTnVsbCgpIHx8IHZhbHVl
ID09ICIxIiB8fCB2YWx1ZSA9PSAieWVzIiB8fCB2YWx1ZSA9PSAib24iOwogfQogCi1mbG9hdCBX
aW5kb3dGZWF0dXJlczo6ZmxvYXRGZWF0dXJlKGNvbnN0IERpYWxvZ0ZlYXR1cmVzTWFwJiBmZWF0
dXJlcywgY29uc3QgY2hhcioga2V5LCBmbG9hdCBtaW4sIGZsb2F0IG1heCwgZmxvYXQgZGVmYXVs
dFZhbHVlKQorZmxvYXQgV2luZG93RmVhdHVyZXM6OmZsb2F0RmVhdHVyZShjb25zdCBIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiYgZmVhdHVyZXMsIGNvbnN0IGNoYXIqIGtleSwgZmxvYXQgbWluLCBm
bG9hdCBtYXgsIGZsb2F0IGRlZmF1bHRWYWx1ZSkKIHsKLSAgICBEaWFsb2dGZWF0dXJlc01hcDo6
Y29uc3RfaXRlcmF0b3IgaXQgPSBmZWF0dXJlcy5maW5kKGtleSk7CisgICAgYXV0byBpdCA9IGZl
YXR1cmVzLmZpbmQoa2V5KTsKICAgICBpZiAoaXQgPT0gZmVhdHVyZXMuZW5kKCkpCiAgICAgICAg
IHJldHVybiBkZWZhdWx0VmFsdWU7CisKICAgICAvLyBGSVhNRTogVGhlIHRvRG91YmxlIGZ1bmN0
aW9uIGRvZXMgbm90IG9mZmVyIGEgd2F5IHRvIHRlbGwgIjBxIiBmcm9tIHN0cmluZyB3aXRoIG5v
IGRpZ2l0cyBpbiBpdDogQm90aAogICAgIC8vIHJldHVybiB0aGUgbnVtYmVyIDAgYW5kIGZhbHNl
IGZvciBvay4gQnV0ICIwcSIgc2hvdWxkIHlpZWxkIHRoZSBtaW5pbXVtIHJhdGhlciB0aGFuIHRo
ZSBkZWZhdWx0LgogICAgIGJvb2wgb2s7CkBAIC0yMzIsMTQgKzIxOSwxOCBAQCBmbG9hdCBXaW5k
b3dGZWF0dXJlczo6ZmxvYXRGZWF0dXJlKGNvbnN0IERpYWxvZ0ZlYXR1cmVzTWFwJiBmZWF0dXJl
cywgY29uc3QgY2hhcgogICAgICAgICByZXR1cm4gbWluOwogICAgIGlmIChwYXJzZWROdW1iZXIg
PiBtYXgpCiAgICAgICAgIHJldHVybiBtYXg7CisKICAgICAvLyBGSVhNRTogU2VlbXMgc3RyYW5n
ZSB0byBjYXN0IGEgZG91YmxlIHRvIGludCBhbmQgdGhlbiBjb252ZXJ0IGJhY2sgdG8gYSBmbG9h
dC4gV2h5IGlzIHRoaXMgYSBnb29kIGlkZWE/CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4o
cGFyc2VkTnVtYmVyKTsKIH0KIAotdm9pZCBXaW5kb3dGZWF0dXJlczo6cGFyc2VEaWFsb2dGZWF0
dXJlcyhjb25zdCBTdHJpbmcmIHN0cmluZywgRGlhbG9nRmVhdHVyZXNNYXAmIG1hcCkKK0hhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+IFdpbmRvd0ZlYXR1cmVzOjpwYXJzZURpYWxvZ0ZlYXR1cmVzKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQogeworICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGZlYXR1
cmVzOworCiAgICAgVmVjdG9yPFN0cmluZz4gdmVjdG9yOwogICAgIHN0cmluZy5zcGxpdCgnOycs
IHZlY3Rvcik7CisKICAgICBmb3IgKGF1dG8mIGZlYXR1cmVTdHJpbmcgOiB2ZWN0b3IpIHsKICAg
ICAgICAgc2l6ZV90IHNlcGFyYXRvclBvc2l0aW9uID0gZmVhdHVyZVN0cmluZy5maW5kKCc9Jyk7
CiAgICAgICAgIHNpemVfdCBjb2xvblBvc2l0aW9uID0gZmVhdHVyZVN0cmluZy5maW5kKCc6Jyk7
CkBAIC0yNTcsOCArMjQ4LDEwIEBAIHZvaWQgV2luZG93RmVhdHVyZXM6OnBhcnNlRGlhbG9nRmVh
dHVyZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcsIERpYWxvZ0ZlYXR1cmVzTWFwCiAgICAgICAgICAg
ICB2YWx1ZSA9IHZhbHVlLmxlZnQodmFsdWUuZmluZCgnICcpKTsKICAgICAgICAgfQogCi0gICAg
ICAgIG1hcC5zZXQoa2V5LCB2YWx1ZSk7CisgICAgICAgIGZlYXR1cmVzLnNldChrZXksIHZhbHVl
KTsKICAgICB9CisKKyAgICByZXR1cm4gZmVhdHVyZXM7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93RmVhdHVyZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93RmVhdHVyZXMuaAppbmRleCA2Yzg3MmUyMjZhOGZm
YzViMWYyYThhYWQ3NWEyMDI3MTY0MzU2YTJiLi44N2Y2YThiOTcwM2IyNzk4MDk3Y2MwMWFjZWRj
MjQwNDk1Y2YxZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd0ZlYXR1
cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaW5kb3dGZWF0dXJlcy5oCkBAIC0yOSw4
ICsyOSwxMSBAQAogI2lmbmRlZiBXaW5kb3dGZWF0dXJlc19oCiAjZGVmaW5lIFdpbmRvd0ZlYXR1
cmVzX2gKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM4LDE1ICs0MSw3IEBAIGNsYXNz
IEZsb2F0UmVjdDsKIAogc3RydWN0IFdpbmRvd0ZlYXR1cmVzIHsKICAgICBXaW5kb3dGZWF0dXJl
cygpCi0gICAgICAgIDogeCgwKQotICAgICAgICAsIHhTZXQoZmFsc2UpCi0gICAgICAgICwgeSgw
KQotICAgICAgICAsIHlTZXQoZmFsc2UpCi0gICAgICAgICwgd2lkdGgoMCkKLSAgICAgICAgLCB3
aWR0aFNldChmYWxzZSkKLSAgICAgICAgLCBoZWlnaHQoMCkKLSAgICAgICAgLCBoZWlnaHRTZXQo
ZmFsc2UpCi0gICAgICAgICwgbWVudUJhclZpc2libGUodHJ1ZSkKKyAgICAgICAgOiBtZW51QmFy
VmlzaWJsZSh0cnVlKQogICAgICAgICAsIHN0YXR1c0JhclZpc2libGUodHJ1ZSkKICAgICAgICAg
LCB0b29sQmFyVmlzaWJsZSh0cnVlKQogICAgICAgICAsIGxvY2F0aW9uQmFyVmlzaWJsZSh0cnVl
KQpAQCAtNTksMTQgKzU0LDEwIEBAIHN0cnVjdCBXaW5kb3dGZWF0dXJlcyB7CiAgICAgZXhwbGlj
aXQgV2luZG93RmVhdHVyZXMoY29uc3QgU3RyaW5nJiB3aW5kb3dGZWF0dXJlc1N0cmluZyk7CiAg
ICAgV2luZG93RmVhdHVyZXMoY29uc3QgU3RyaW5nJiBkaWFsb2dGZWF0dXJlc1N0cmluZywgY29u
c3QgRmxvYXRSZWN0JiBzY3JlZW5BdmFpbGFibGVSZWN0KTsKIAotICAgIGZsb2F0IHg7Ci0gICAg
Ym9vbCB4U2V0OwotICAgIGZsb2F0IHk7Ci0gICAgYm9vbCB5U2V0OwotICAgIGZsb2F0IHdpZHRo
OwotICAgIGJvb2wgd2lkdGhTZXQ7Ci0gICAgZmxvYXQgaGVpZ2h0OwotICAgIGJvb2wgaGVpZ2h0
U2V0OworICAgIE9wdGlvbmFsPGZsb2F0PiB4OworICAgIE9wdGlvbmFsPGZsb2F0PiB5OworICAg
IE9wdGlvbmFsPGZsb2F0PiB3aWR0aDsKKyAgICBPcHRpb25hbDxmbG9hdD4gaGVpZ2h0OwogCiAg
ICAgYm9vbCBtZW51QmFyVmlzaWJsZTsKICAgICBib29sIHN0YXR1c0JhclZpc2libGU7CkBAIC04
MSwxMCArNzIsOSBAQCBzdHJ1Y3QgV2luZG93RmVhdHVyZXMgewogICAgIFZlY3RvcjxTdHJpbmc+
IGFkZGl0aW9uYWxGZWF0dXJlczsKIAogcHJpdmF0ZToKLSAgICB0eXBlZGVmIEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IERpYWxvZ0ZlYXR1cmVzTWFwOwotICAgIHN0YXRpYyB2b2lkIHBhcnNlRGlh
bG9nRmVhdHVyZXMoY29uc3QgU3RyaW5nJiwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mKTsKLSAg
ICBzdGF0aWMgYm9vbCBib29sRmVhdHVyZShjb25zdCBEaWFsb2dGZWF0dXJlc01hcCYsIGNvbnN0
IGNoYXIqIGtleSwgYm9vbCBkZWZhdWx0VmFsdWUgPSBmYWxzZSk7Ci0gICAgc3RhdGljIGZsb2F0
IGZsb2F0RmVhdHVyZShjb25zdCBEaWFsb2dGZWF0dXJlc01hcCYsIGNvbnN0IGNoYXIqIGtleSwg
ZmxvYXQgbWluLCBmbG9hdCBtYXgsIGZsb2F0IGRlZmF1bHRWYWx1ZSk7CisgICAgc3RhdGljIEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+IHBhcnNlRGlhbG9nRmVhdHVyZXMoY29uc3QgU3RyaW5nJik7
CisgICAgc3RhdGljIGJvb2wgYm9vbEZlYXR1cmUoY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmlu
Zz4mLCBjb25zdCBjaGFyKiBrZXksIGJvb2wgZGVmYXVsdFZhbHVlID0gZmFsc2UpOworICAgIHN0
YXRpYyBmbG9hdCBmbG9hdEZlYXR1cmUoY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mLCBj
b25zdCBjaGFyKiBrZXksIGZsb2F0IG1pbiwgZmxvYXQgbWF4LCBmbG9hdCBkZWZhdWx0VmFsdWUp
OwogICAgIHZvaWQgc2V0V2luZG93RmVhdHVyZShjb25zdCBTdHJpbmcmIGtleVN0cmluZywgY29u
c3QgU3RyaW5nJiB2YWx1ZVN0cmluZyk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggMWI5Y2Y5YzNhN2EyNjI1
MjMwZTQyMzNkYzA3OTM2ZTA5OTgwMWFjOC4uNTA5ZWI5NWFiMGE2M2IxNDNjOTE2Njk3N2YyN2M3
NzgxY2NkNDhlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtMjQwLDEwICsyNDAsMTAgQEAgUGFnZSogV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0
JiwgY29uc3QKICNlbmRpZgogICAgIAogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcih3ZWJWaWV3OmNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdDp3aW5kb3dGZWF0
dXJlczopXSkgewotICAgICAgICBOU051bWJlciAqeCA9IGZlYXR1cmVzLnhTZXQgPyBbW05TTnVt
YmVyIGFsbG9jXSBpbml0V2l0aEZsb2F0OmZlYXR1cmVzLnhdIDogbmlsOwotICAgICAgICBOU051
bWJlciAqeSA9IGZlYXR1cmVzLnlTZXQgPyBbW05TTnVtYmVyIGFsbG9jXSBpbml0V2l0aEZsb2F0
OmZlYXR1cmVzLnldIDogbmlsOwotICAgICAgICBOU051bWJlciAqd2lkdGggPSBmZWF0dXJlcy53
aWR0aFNldCA/IFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoRmxvYXQ6ZmVhdHVyZXMud2lkdGhd
IDogbmlsOwotICAgICAgICBOU051bWJlciAqaGVpZ2h0ID0gZmVhdHVyZXMuaGVpZ2h0U2V0ID8g
W1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhGbG9hdDpmZWF0dXJlcy5oZWlnaHRdIDogbmlsOwor
ICAgICAgICBOU051bWJlciAqeCA9IGZlYXR1cmVzLnggPyBbW05TTnVtYmVyIGFsbG9jXSBpbml0
V2l0aEZsb2F0OipmZWF0dXJlcy54XSA6IG5pbDsKKyAgICAgICAgTlNOdW1iZXIgKnkgPSBmZWF0
dXJlcy55ID8gW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhGbG9hdDoqZmVhdHVyZXMueV0gOiBu
aWw7CisgICAgICAgIE5TTnVtYmVyICp3aWR0aCA9IGZlYXR1cmVzLndpZHRoID8gW1tOU051bWJl
ciBhbGxvY10gaW5pdFdpdGhGbG9hdDoqZmVhdHVyZXMud2lkdGhdIDogbmlsOworICAgICAgICBO
U051bWJlciAqaGVpZ2h0ID0gZmVhdHVyZXMuaGVpZ2h0ID8gW1tOU051bWJlciBhbGxvY10gaW5p
dFdpdGhGbG9hdDoqZmVhdHVyZXMuaGVpZ2h0XSA6IG5pbDsKICAgICAgICAgTlNOdW1iZXIgKm1l
bnVCYXJWaXNpYmxlID0gW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhCb29sOmZlYXR1cmVzLm1l
bnVCYXJWaXNpYmxlXTsKICAgICAgICAgTlNOdW1iZXIgKnN0YXR1c0JhclZpc2libGUgPSBbW05T
TnVtYmVyIGFsbG9jXSBpbml0V2l0aEJvb2w6ZmVhdHVyZXMuc3RhdHVzQmFyVmlzaWJsZV07CiAg
ICAgICAgIE5TTnVtYmVyICp0b29sQmFyVmlzaWJsZSA9IFtbTlNOdW1iZXIgYWxsb2NdIGluaXRX
aXRoQm9vbDpmZWF0dXJlcy50b29sQmFyVmlzaWJsZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAxODkwNmRmMDQ2
OTlhYmI3N2Q0Mjg0YTFmODliYzhhOWY3ZDExYmYxLi45Zjk1MmJkMjZhZWJmNmVlMDM1ZGZhYmMw
NWM4ZGFlMTY1MjM2MDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTE3MCwxNCArMTcwLDE0IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKikKIHN0YXRpYyBDT01QdHI8
SVByb3BlcnR5QmFnPiBjcmVhdGVXaW5kb3dGZWF0dXJlc1Byb3BlcnR5QmFnKGNvbnN0IFdpbmRv
d0ZlYXR1cmVzJiBmZWF0dXJlcykKIHsKICAgICBIYXNoTWFwPFN0cmluZywgQ09NVmFyaWFudD4g
bWFwOwotICAgIGlmIChmZWF0dXJlcy54U2V0KQotICAgICAgICBtYXAuc2V0KFdlYldpbmRvd0Zl
YXR1cmVzWEtleSwgZmVhdHVyZXMueCk7Ci0gICAgaWYgKGZlYXR1cmVzLnlTZXQpCi0gICAgICAg
IG1hcC5zZXQoV2ViV2luZG93RmVhdHVyZXNZS2V5LCBmZWF0dXJlcy55KTsKLSAgICBpZiAoZmVh
dHVyZXMud2lkdGhTZXQpCi0gICAgICAgIG1hcC5zZXQoV2ViV2luZG93RmVhdHVyZXNXaWR0aEtl
eSwgZmVhdHVyZXMud2lkdGgpOwotICAgIGlmIChmZWF0dXJlcy5oZWlnaHRTZXQpCi0gICAgICAg
IG1hcC5zZXQoV2ViV2luZG93RmVhdHVyZXNIZWlnaHRLZXksIGZlYXR1cmVzLmhlaWdodCk7Cisg
ICAgaWYgKGZlYXR1cmVzLngpCisgICAgICAgIG1hcC5zZXQoV2ViV2luZG93RmVhdHVyZXNYS2V5
LCAqZmVhdHVyZXMueCk7CisgICAgaWYgKGZlYXR1cmVzLnkpCisgICAgICAgIG1hcC5zZXQoV2Vi
V2luZG93RmVhdHVyZXNZS2V5LCAqZmVhdHVyZXMueSk7CisgICAgaWYgKGZlYXR1cmVzLndpZHRo
KQorICAgICAgICBtYXAuc2V0KFdlYldpbmRvd0ZlYXR1cmVzV2lkdGhLZXksICpmZWF0dXJlcy53
aWR0aCk7CisgICAgaWYgKGZlYXR1cmVzLmhlaWdodCkKKyAgICAgICAgbWFwLnNldChXZWJXaW5k
b3dGZWF0dXJlc0hlaWdodEtleSwgKmZlYXR1cmVzLmhlaWdodCk7CiAgICAgbWFwLnNldChXZWJX
aW5kb3dGZWF0dXJlc01lbnVCYXJWaXNpYmxlS2V5LCBmZWF0dXJlcy5tZW51QmFyVmlzaWJsZSk7
CiAgICAgbWFwLnNldChXZWJXaW5kb3dGZWF0dXJlc1N0YXR1c0JhclZpc2libGVLZXksIGZlYXR1
cmVzLnN0YXR1c0JhclZpc2libGUpOwogICAgIG1hcC5zZXQoV2ViV2luZG93RmVhdHVyZXNUb29s
QmFyVmlzaWJsZUtleSwgZmVhdHVyZXMudG9vbEJhclZpc2libGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA5NjA3NzRhYTZiZjIy
MmM0MmE5YTFmZmFkYTc5ZDhlNTRlNGY2MGQ2Li5kM2YzYjkyNGIyMWJlMWMyZTZmOTQ4NzA2MDE1
ZTExOTdmNjNhMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcApAQCAtOTU2LDEwICs5NTYsNiBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8V2lu
ZG93RmVhdHVyZXM+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXaW5k
bwogICAgIGVuY29kZXIgPDwgd2luZG93RmVhdHVyZXMueTsKICAgICBlbmNvZGVyIDw8IHdpbmRv
d0ZlYXR1cmVzLndpZHRoOwogICAgIGVuY29kZXIgPDwgd2luZG93RmVhdHVyZXMuaGVpZ2h0Owot
ICAgIGVuY29kZXIgPDwgd2luZG93RmVhdHVyZXMueFNldDsKLSAgICBlbmNvZGVyIDw8IHdpbmRv
d0ZlYXR1cmVzLnlTZXQ7Ci0gICAgZW5jb2RlciA8PCB3aW5kb3dGZWF0dXJlcy53aWR0aFNldDsK
LSAgICBlbmNvZGVyIDw8IHdpbmRvd0ZlYXR1cmVzLmhlaWdodFNldDsKICAgICBlbmNvZGVyIDw8
IHdpbmRvd0ZlYXR1cmVzLm1lbnVCYXJWaXNpYmxlOwogICAgIGVuY29kZXIgPDwgd2luZG93RmVh
dHVyZXMuc3RhdHVzQmFyVmlzaWJsZTsKICAgICBlbmNvZGVyIDw8IHdpbmRvd0ZlYXR1cmVzLnRv
b2xCYXJWaXNpYmxlOwpAQCAtOTgwLDE0ICs5NzYsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2lu
ZG93RmVhdHVyZXM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXaW5kb3dGZWF0
dQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh3aW5kb3dG
ZWF0dXJlcy5oZWlnaHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZSh3aW5kb3dGZWF0dXJlcy54U2V0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUod2luZG93RmVhdHVyZXMueVNldCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHdpbmRvd0ZlYXR1cmVzLndpZHRoU2V0
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUod2luZG93
RmVhdHVyZXMuaGVpZ2h0U2V0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUod2luZG93RmVhdHVyZXMubWVudUJhclZpc2libGUpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh3aW5kb3dGZWF0dXJlcy5zdGF0dXNC
YXJWaXNpYmxlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5k
ZXggYzJmZTMyZjE3OGQxOTNiYzY2ZTE3ODM5NDViOTJmMTViMDliYzlhOC4uZGQ1MTk5ODk3NzY1
M2NmNjEyNDc1NGM4MGEyMDA5MTEwYmVjNTVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKQEAgLTEzNTAsMTQgKzEzNTAsMTQgQEAgdm9pZCBXS1BhZ2VTZXRQ
YWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSog
d2tDbGllbnQKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICAgICAgQVBJOjpE
aWN0aW9uYXJ5OjpNYXBUeXBlIG1hcDsKLSAgICAgICAgICAgIGlmICh3aW5kb3dGZWF0dXJlcy54
U2V0KQotICAgICAgICAgICAgICAgIG1hcC5zZXQoIngiLCBBUEk6OkRvdWJsZTo6Y3JlYXRlKHdp
bmRvd0ZlYXR1cmVzLngpKTsKLSAgICAgICAgICAgIGlmICh3aW5kb3dGZWF0dXJlcy55U2V0KQot
ICAgICAgICAgICAgICAgIG1hcC5zZXQoInkiLCBBUEk6OkRvdWJsZTo6Y3JlYXRlKHdpbmRvd0Zl
YXR1cmVzLnkpKTsKLSAgICAgICAgICAgIGlmICh3aW5kb3dGZWF0dXJlcy53aWR0aFNldCkKLSAg
ICAgICAgICAgICAgICBtYXAuc2V0KCJ3aWR0aCIsIEFQSTo6RG91YmxlOjpjcmVhdGUod2luZG93
RmVhdHVyZXMud2lkdGgpKTsKLSAgICAgICAgICAgIGlmICh3aW5kb3dGZWF0dXJlcy5oZWlnaHRT
ZXQpCi0gICAgICAgICAgICAgICAgbWFwLnNldCgiaGVpZ2h0IiwgQVBJOjpEb3VibGU6OmNyZWF0
ZSh3aW5kb3dGZWF0dXJlcy5oZWlnaHQpKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3dGZWF0dXJl
cy54KQorICAgICAgICAgICAgICAgIG1hcC5zZXQoIngiLCBBUEk6OkRvdWJsZTo6Y3JlYXRlKCp3
aW5kb3dGZWF0dXJlcy54KSk7CisgICAgICAgICAgICBpZiAod2luZG93RmVhdHVyZXMueSkKKyAg
ICAgICAgICAgICAgICBtYXAuc2V0KCJ5IiwgQVBJOjpEb3VibGU6OmNyZWF0ZSgqd2luZG93RmVh
dHVyZXMueSkpOworICAgICAgICAgICAgaWYgKHdpbmRvd0ZlYXR1cmVzLndpZHRoKQorICAgICAg
ICAgICAgICAgIG1hcC5zZXQoIndpZHRoIiwgQVBJOjpEb3VibGU6OmNyZWF0ZSgqd2luZG93RmVh
dHVyZXMud2lkdGgpKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3dGZWF0dXJlcy5oZWlnaHQpCisg
ICAgICAgICAgICAgICAgbWFwLnNldCgiaGVpZ2h0IiwgQVBJOjpEb3VibGU6OmNyZWF0ZSgqd2lu
ZG93RmVhdHVyZXMuaGVpZ2h0KSk7CiAgICAgICAgICAgICBtYXAuc2V0KCJtZW51QmFyVmlzaWJs
ZSIsIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKHdpbmRvd0ZlYXR1cmVzLm1lbnVCYXJWaXNpYmxlKSk7
CiAgICAgICAgICAgICBtYXAuc2V0KCJzdGF0dXNCYXJWaXNpYmxlIiwgQVBJOjpCb29sZWFuOjpj
cmVhdGUod2luZG93RmVhdHVyZXMuc3RhdHVzQmFyVmlzaWJsZSkpOwogICAgICAgICAgICAgbWFw
LnNldCgidG9vbEJhclZpc2libGUiLCBBUEk6OkJvb2xlYW46OmNyZWF0ZSh3aW5kb3dGZWF0dXJl
cy50b29sQmFyVmlzaWJsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzLm1tCmluZGV4IDU4ZGNhNDY0NTVjYjg0NzUxOTlk
NmUwNTRjMWQwMDJjMmVlYzVlN2YuLmI5NWU2ODJjMzEyN2JkYjExZjE2NzgyYTEzOWZmNDg5MjA5
YmIyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
aW5kb3dGZWF0dXJlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2luZG93RmVhdHVyZXMubW0KQEAgLTU1LDE0ICs1NSwxNCBAQAogICAgIF90b29sYmFyc1Zp
c2liaWxpdHkgPSBAKHdpbmRvd0ZlYXR1cmVzLnRvb2xCYXJWaXNpYmxlIHx8IHdpbmRvd0ZlYXR1
cmVzLmxvY2F0aW9uQmFyVmlzaWJsZSk7CiAgICAgX2FsbG93c1Jlc2l6aW5nID0gQCh3aW5kb3dG
ZWF0dXJlcy5yZXNpemFibGUpOwogCi0gICAgaWYgKHdpbmRvd0ZlYXR1cmVzLnhTZXQpCi0gICAg
ICAgIF94ID0gQCh3aW5kb3dGZWF0dXJlcy54KTsKLSAgICBpZiAod2luZG93RmVhdHVyZXMueVNl
dCkKLSAgICAgICAgX3kgPSBAKHdpbmRvd0ZlYXR1cmVzLnkpOwotICAgIGlmICh3aW5kb3dGZWF0
dXJlcy53aWR0aFNldCkKLSAgICAgICAgX3dpZHRoID0gQCh3aW5kb3dGZWF0dXJlcy53aWR0aCk7
Ci0gICAgaWYgKHdpbmRvd0ZlYXR1cmVzLmhlaWdodFNldCkKLSAgICAgICAgX2hlaWdodCA9IEAo
d2luZG93RmVhdHVyZXMuaGVpZ2h0KTsKKyAgICBpZiAod2luZG93RmVhdHVyZXMueCkKKyAgICAg
ICAgX3ggPSBAKCp3aW5kb3dGZWF0dXJlcy54KTsKKyAgICBpZiAod2luZG93RmVhdHVyZXMueSkK
KyAgICAgICAgX3kgPSBAKCp3aW5kb3dGZWF0dXJlcy55KTsKKyAgICBpZiAod2luZG93RmVhdHVy
ZXMud2lkdGgpCisgICAgICAgIF93aWR0aCA9IEAoKndpbmRvd0ZlYXR1cmVzLndpZHRoKTsKKyAg
ICBpZiAod2luZG93RmVhdHVyZXMuaGVpZ2h0KQorICAgICAgICBfaGVpZ2h0ID0gQCgqd2luZG93
RmVhdHVyZXMuaGVpZ2h0KTsKIAogICAgIHJldHVybiBzZWxmOwogfQo=
</data>
<flag name="review"
          id="284037"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>