<?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>214593</bug_id>
          
          <creation_ts>2020-07-21 06:39:48 -0700</creation_ts>
          <short_desc>Use one socket server for the whole network process instead of one socket server per web process connection</short_desc>
          <delta_ts>2020-07-24 02:59:14 -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>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1673431</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-07-21 06:39:48 -0700</bug_when>
    <thetext>Use one socket server for the whole network process instead of one socket server per web process connection.
This will reduce the use of sockets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673452</commentid>
    <comment_count>1</comment_count>
      <attachid>404822</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-07-21 09:01:46 -0700</bug_when>
    <thetext>Created attachment 404822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674187</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-07-23 05:53:45 -0700</bug_when>
    <thetext>Ping review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674571</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-24 02:58:50 -0700</bug_when>
    <thetext>Committed r264814: &lt;https://trac.webkit.org/changeset/264814&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404822.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674572</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-24 02:59:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/66043243&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404822</attachid>
            <date>2020-07-21 09:01:46 -0700</date>
            <delta_ts>2020-07-24 02:58:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214593-20200721180145.patch</filename>
            <type>text/plain</type>
            <size>17861</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAwM2Y4MjMzZmNjZjc1ZWY3
ZmQzM2VjMGEyMDg2ZDA1YjNkOTAyMDkuLmM0YzYwYTk3OGY2ZGQyM2QyMDljMjQ4Zjg1ODkwYzMy
MWM4M2UxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjAtMDctMjEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBvbmUgc29ja2V0IHNlcnZl
ciBmb3IgdGhlIHdob2xlIG5ldHdvcmsgcHJvY2VzcyBpbnN0ZWFkIG9mIG9uZSBzb2NrZXQgc2Vy
dmVyIHBlciB3ZWIgcHJvY2VzcyBjb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ1OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIGEgc29ja2V0IHNlcnZlciBwZXIgd2Vi
IHByb2Nlc3MsIHdlIHdpbGwgb25seSBjcmVhdGUgb25lIGZvciBhbGwgd2ViIHByb2Nlc3Nlcy4K
KyAgICAgICAgQ29udmVyc2VseSwgd2UgZG8gdGhlIHNhbWUgZm9yIHRoZSBuZXR3b3JrIG1hbmFn
ZXIuCisgICAgICAgIFRoaXMgc2hvdWxkIGFsbG93IHRvIHJlZHVjZSBvdXIgdXNlIG9mIHNvY2tl
dHMgaW4gbmV0d29yayBwcm9jZXNzIGFuZCBob3BlZnVsbHkgcmVkdWNlIHRoZSBvY2N1cmVuY2Ug
b2Ygc29ja2V0cyBmZCBhYm92ZSBGRF9TRVRTSVpFLgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENN
b25pdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bmV0d29ya01hbmFnZXIpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrTWFuYWdlcldyYXBwZXI6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya01hbmFnZXJXcmFwcGVyOjpyZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtNYW5hZ2VyV3JhcHBlcjo6b25OZXR3b3Jrc0NoYW5nZWQpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUlRDTW9uaXRvcjo6fk5ldHdvcmtSVENNb25pdG9yKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1JUQ01vbml0b3I6OnN0YXJ0VXBkYXRpbmdJZk5lZWRlZCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENNb25pdG9yOjpzdG9wVXBkYXRpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUlRDTW9uaXRvcjo6b25OZXR3b3Jrc0NoYW5nZWQpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDTW9uaXRvci5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpydGNOZXR3b3JrVGhyZWFkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1By
b3ZpZGVyOjpOZXR3b3JrUlRDUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRD
UHJvdmlkZXI6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpj
cmVhdGVTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0
ZVVEUFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRl
U2VydmVyVENQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjp3
cmFwTmV3VENQQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRl
cjo6c2VuZFRvU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpj
bG9zZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6c2V0U29j
a2V0T3B0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjphZGRTb2Nr
ZXQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OnRha2VTb2NrZXQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6Om5ld0Nvbm5lY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxPblJUQ05ldHdvcmtUaHJlYWQp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjb25uZWN0aW9uKToKKwogMjAy
MC0wNy0yMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRmV0
Y2gvWEhSIGxvYWRzIGRvbmUgYnkgZXh0ZW5zaW9ucyBzaG91bGQgb3B0IG91dCBvZiByZXNwb25z
ZSBzYW5pdGlzYXRpb24gZG9uZSBpbiBuZXR3b3JrIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENNb25pdG9yLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENNb25pdG9yLmNwcApp
bmRleCAyMzEyZDE4OTgwNmM4ZDBjOWRjMzJiOTg1NWE4YzM3YmRjYTZlYjRlLi5lYzgwMDM4NWRm
YTJmOGE5YmUwYWMxMGVmMWViMWY2MmJjZWVhZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDTW9uaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0b3IuY3BwCkBAIC0z
Miw3ICszMiw5IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSVENQ
cm92aWRlci5oIgogI2luY2x1ZGUgIldlYlJUQ01vbml0b3JNZXNzYWdlcy5oIgorI2luY2x1ZGUg
PHdlYnJ0Yy9ydGNfYmFzZS90aGlyZF9wYXJ0eS9zaWdzbG90L3NpZ3Nsb3QuaD4KICNpbmNsdWRl
IDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKQEAgLTQwLDY2ICs0MiwxMTUgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
ICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYo
bV9ydGNQcm92aWRlci5jYW5Mb2coKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya1JUQ01vbml0b3I6
OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQogCi1OZXR3b3JrUlRDTW9uaXRvcjo6fk5ldHdv
cmtSVENNb25pdG9yKCkKK2NsYXNzIE5ldHdvcmtNYW5hZ2VyV3JhcHBlciBmaW5hbCA6IHB1Ymxp
YyBzaWdzbG90OjpoYXNfc2xvdHM8PiB7CitwdWJsaWM6CisgICAgdm9pZCBhZGRMaXN0ZW5lcihO
ZXR3b3JrUlRDTW9uaXRvciYpOworICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoTmV0d29ya1JUQ01v
bml0b3ImKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIG9uTmV0d29ya3NDaGFuZ2VkKCk7CisKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpCYXNpY05ldHdvcmtNYW5hZ2VyPiBtX21hbmFnZXI7Cisg
ICAgV2Vha0hhc2hTZXQ8TmV0d29ya1JUQ01vbml0b3I+IG1fb2JzZXJ2ZXJzOworCisgICAgYm9v
bCBtX2RpZFJlY2VpdmVSZXN1bHRzIHsgZmFsc2UgfTsKKyAgICBWZWN0b3I8UlRDTmV0d29yaz4g
bV9uZXR3b3JrTGlzdDsKKyAgICBSVENOZXR3b3JrOjpJUEFkZHJlc3MgbV9pcHY0OworICAgIFJU
Q05ldHdvcms6OklQQWRkcmVzcyBtX2lwdjY7Cit9OworCitzdGF0aWMgTmV0d29ya01hbmFnZXJX
cmFwcGVyJiBuZXR3b3JrTWFuYWdlcigpCiB7Ci0gICAgQVNTRVJUKCFtX21hbmFnZXIpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxOZXR3b3JrTWFuYWdlcldyYXBwZXI+IG5ldHdvcmtNYW5h
Z2VyOworICAgIHJldHVybiBuZXR3b3JrTWFuYWdlci5nZXQoKTsKIH0KIAotdm9pZCBOZXR3b3Jr
UlRDTW9uaXRvcjo6c3RhcnRVcGRhdGluZ0lmTmVlZGVkKCkKK3ZvaWQgTmV0d29ya01hbmFnZXJX
cmFwcGVyOjphZGRMaXN0ZW5lcihOZXR3b3JrUlRDTW9uaXRvciYgbW9uaXRvcikKIHsKLSAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydFVwZGF0aW5nSWZOZWVkZWQgJWQiLCBtX2lzU3Rh
cnRlZCk7Ci0gICAgaWYgKG1faXNTdGFydGVkKQorICAgIGJvb2wgc2hvdWxkU3RhcnQgPSBtX29i
c2VydmVycy5jb21wdXRlc0VtcHR5KCk7CisgICAgbV9vYnNlcnZlcnMuYWRkKG1vbml0b3IpOwor
ICAgIGlmICghc2hvdWxkU3RhcnQpIHsKKyAgICAgICAgaWYgKG1fZGlkUmVjZWl2ZVJlc3VsdHMp
CisgICAgICAgICAgICBtb25pdG9yLm9uTmV0d29ya3NDaGFuZ2VkKG1fbmV0d29ya0xpc3QsIG1f
aXB2NCwgbV9pcHY2KTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIG1faXNTdGFydGVk
ID0gdHJ1ZTsKLSAgICBtX3J0Y1Byb3ZpZGVyLmNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXNd
KCkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydFVwZGF0aW5nIGZyb20g
bmV0d29yayB0aHJlYWQiKTsKKyAgICBtb25pdG9yLnJ0Y1Byb3ZpZGVyKCkuY2FsbE9uUlRDTmV0
d29ya1RocmVhZChbdGhpc10oKSB7CisgICAgICAgIGlmIChtX21hbmFnZXIpCisgICAgICAgICAg
ICByZXR1cm47CiAKKyAgICAgICAgUkVMRUFTRV9MT0coV2ViUlRDLCAiTmV0d29ya01hbmFnZXJX
cmFwcGVyIHN0YXJ0VXBkYXRpbmciKTsKICAgICAgICAgbV9tYW5hZ2VyID0gbWFrZVVuaXF1ZVdp
dGhvdXRGYXN0TWFsbG9jQ2hlY2s8cnRjOjpCYXNpY05ldHdvcmtNYW5hZ2VyPigpOwotICAgICAg
ICBtX21hbmFnZXItPlNpZ25hbE5ldHdvcmtzQ2hhbmdlZC5jb25uZWN0KHRoaXMsICZOZXR3b3Jr
UlRDTW9uaXRvcjo6b25OZXR3b3Jrc0NoYW5nZWQpOworICAgICAgICBtX21hbmFnZXItPlNpZ25h
bE5ldHdvcmtzQ2hhbmdlZC5jb25uZWN0KHRoaXMsICZOZXR3b3JrTWFuYWdlcldyYXBwZXI6Om9u
TmV0d29ya3NDaGFuZ2VkKTsKICAgICAgICAgbV9tYW5hZ2VyLT5TdGFydFVwZGF0aW5nKCk7CiAg
ICAgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ01vbml0b3I6OnN0b3BVcGRhdGluZygpCit2b2lk
IE5ldHdvcmtNYW5hZ2VyV3JhcHBlcjo6cmVtb3ZlTGlzdGVuZXIoTmV0d29ya1JUQ01vbml0b3Im
IG1vbml0b3IpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RvcFVwZGF0aW5nIik7
Ci0gICAgbV9pc1N0YXJ0ZWQgPSBmYWxzZTsKLSAgICBtX3J0Y1Byb3ZpZGVyLmNhbGxPblJUQ05l
dHdvcmtUaHJlYWQoW3RoaXNdKCkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJz
dG9wVXBkYXRpbmcgZnJvbSBuZXR3b3JrIHRocmVhZCAlcCIsIG1fbWFuYWdlci5nZXQoKSk7Cisg
ICAgbV9vYnNlcnZlcnMucmVtb3ZlKG1vbml0b3IpOworICAgIGlmICghbV9vYnNlcnZlcnMuY29t
cHV0ZXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CiAKKyAgICBtb25pdG9yLnJ0Y1Byb3ZpZGVy
KCkuY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhpc10oKSB7CiAgICAgICAgIGlmICghbV9tYW5h
Z2VyKQogICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFJFTEVBU0VfTE9HKFdlYlJUQywg
Ik5ldHdvcmtNYW5hZ2VyV3JhcHBlciBzdG9wVXBkYXRpbmciKTsKICAgICAgICAgbV9tYW5hZ2Vy
LT5TdG9wVXBkYXRpbmcoKTsKICAgICAgICAgbV9tYW5hZ2VyID0gbnVsbHB0cjsKICAgICB9KTsK
IH0KIAotdm9pZCBOZXR3b3JrUlRDTW9uaXRvcjo6b25OZXR3b3Jrc0NoYW5nZWQoKQordm9pZCBO
ZXR3b3JrTWFuYWdlcldyYXBwZXI6Om9uTmV0d29ya3NDaGFuZ2VkKCkKIHsKLSAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJvbk5ldHdvcmtzQ2hhbmdlZCIpOworICAgIFJFTEVBU0VfTE9HKFdl
YlJUQywgIk5ldHdvcmtNYW5hZ2VyV3JhcHBlcjo6b25OZXR3b3Jrc0NoYW5nZWQiKTsKIAogICAg
IHJ0Yzo6QmFzaWNOZXR3b3JrTWFuYWdlcjo6TmV0d29ya0xpc3QgbmV0d29ya3M7CiAgICAgbV9t
YW5hZ2VyLT5HZXROZXR3b3JrcygmbmV0d29ya3MpOworICAgIGF1dG8gbmV0d29ya0xpc3QgPSBX
VEY6Om1hcChuZXR3b3JrcywgW10oYXV0byYgbmV0d29yaykgeyByZXR1cm4gUlRDTmV0d29yayB7
ICpuZXR3b3JrIH07IH0pOwogCiAgICAgUlRDTmV0d29yazo6SVBBZGRyZXNzIGlwdjQ7CiAgICAg
bV9tYW5hZ2VyLT5HZXREZWZhdWx0TG9jYWxBZGRyZXNzKEFGX0lORVQsICZpcHY0LnZhbHVlKTsK
ICAgICBSVENOZXR3b3JrOjpJUEFkZHJlc3MgaXB2NjsKICAgICBtX21hbmFnZXItPkdldERlZmF1
bHRMb2NhbEFkZHJlc3MoQUZfSU5FVDYsICZpcHY2LnZhbHVlKTsKIAotICAgIFZlY3RvcjxSVENO
ZXR3b3JrPiBuZXR3b3JrTGlzdDsKLSAgICBuZXR3b3JrTGlzdC5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KG5ldHdvcmtzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvKiBuZXR3b3JrIDogbmV0d29ya3Mp
IHsKLSAgICAgICAgQVNTRVJUKG5ldHdvcmspOwotICAgICAgICBuZXR3b3JrTGlzdC51bmNoZWNr
ZWRBcHBlbmQoUlRDTmV0d29yayB7ICpuZXR3b3JrIH0pOwotICAgIH0KKyAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzLCBuZXR3b3JrTGlzdCA9IFdURk1vdmUobmV0d29ya0xpc3QpLCBpcHY0ID0g
V1RGTW92ZShpcHY0KSwgaXB2NiA9IFdURk1vdmUoaXB2NildKCkgbXV0YWJsZSB7CisgICAgICAg
IG1fZGlkUmVjZWl2ZVJlc3VsdHMgPSB0cnVlOwogCi0gICAgbV9ydGNQcm92aWRlci5zZW5kRnJv
bU1haW5UaHJlYWQoW3RoaXMsIG5ldHdvcmtMaXN0ID0gV1RGTW92ZShuZXR3b3JrTGlzdCksIGlw
djQgPSBXVEZNb3ZlKGlwdjQpLCBpcHY2ID0gV1RGTW92ZShpcHY2KV0oSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIm9uTmV0d29y
a3NDaGFuZ2VkIHNlbnQiKTsKLSAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpXZWJS
VENNb25pdG9yOjpOZXR3b3Jrc0NoYW5nZWQobmV0d29ya0xpc3QsIGlwdjQsIGlwdjYpLCAwKTsK
KyAgICAgICAgbV9uZXR3b3JrTGlzdCA9IFdURk1vdmUobmV0d29ya0xpc3QpOworICAgICAgICBt
X2lwdjQgPSBXVEZNb3ZlKGlwdjQpOworICAgICAgICBtX2lwdjYgPSBXVEZNb3ZlKGlwdjYpOwor
CisgICAgICAgIG1fb2JzZXJ2ZXJzLmZvckVhY2goW3RoaXNdKGF1dG8mIG9ic2VydmVyKSB7Cisg
ICAgICAgICAgICBvYnNlcnZlci5vbk5ldHdvcmtzQ2hhbmdlZChtX25ldHdvcmtMaXN0LCBtX2lw
djQsIG1faXB2Nik7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCitOZXR3b3JrUlRDTW9uaXRv
cjo6fk5ldHdvcmtSVENNb25pdG9yKCkKK3sKKyAgICBBU1NFUlQoIW1fbWFuYWdlcik7Cit9CisK
K3ZvaWQgTmV0d29ya1JUQ01vbml0b3I6OnN0YXJ0VXBkYXRpbmdJZk5lZWRlZCgpCit7CisgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnRVcGRhdGluZ0lmTmVlZGVkICVkIiwgbV9pc1N0
YXJ0ZWQpOworICAgIG5ldHdvcmtNYW5hZ2VyKCkuYWRkTGlzdGVuZXIoKnRoaXMpOworfQorCit2
b2lkIE5ldHdvcmtSVENNb25pdG9yOjpzdG9wVXBkYXRpbmcoKQoreworICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoInN0b3BVcGRhdGluZyIpOworICAgIG5ldHdvcmtNYW5hZ2VyKCkucmVtb3Zl
TGlzdGVuZXIoKnRoaXMpOworfQorCit2b2lkIE5ldHdvcmtSVENNb25pdG9yOjpvbk5ldHdvcmtz
Q2hhbmdlZChjb25zdCBWZWN0b3I8UlRDTmV0d29yaz4mIG5ldHdvcmtMaXN0LCBjb25zdCBSVENO
ZXR3b3JrOjpJUEFkZHJlc3MmIGlwdjQsIGNvbnN0IFJUQ05ldHdvcms6OklQQWRkcmVzcyYgaXB2
NikKK3sKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJvbk5ldHdvcmtzQ2hhbmdlZCBzZW50
Iik7CisgICAgbV9ydGNQcm92aWRlci5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6V2ViUlRD
TW9uaXRvcjo6TmV0d29ya3NDaGFuZ2VkKG5ldHdvcmtMaXN0LCBpcHY0LCBpcHY2KSwgMCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gVVNFKExJQldFQlJUQykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENN
b25pdG9yLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
TW9uaXRvci5oCmluZGV4IGQ1YzE3MjVjMDM5MGJmMjg2ZDI4YmQ1NTZmYTA1MGU1ZDllZjQ3NDcu
LmYxODRlNjhhOTQ2MzE3ODU2OTA4MzZkYWRjYzk1MjUxNTY0OWU0ZGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENNb25pdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0b3Iu
aApAQCAtMjcsMTAgKzI3LDExIEBACiAKICNpZiBVU0UoTElCV0VCUlRDKQogCisjaW5jbHVkZSAi
UlRDTmV0d29yay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CiAjaW5j
bHVkZSA8d2VicnRjL3J0Y19iYXNlL25ldHdvcmsuaD4KLSNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jh
c2UvdGhpcmRfcGFydHkvc2lnc2xvdC9zaWdzbG90Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19i
YXNlL3RocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBJUEMg
ewogY2xhc3MgQ29ubmVjdGlvbjsKQEAgLTQxLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIE5ldHdvcmtSVENQcm92aWRlcjsKIAotY2xhc3MgTmV0d29ya1JUQ01vbml0b3Ig
ZmluYWwgOiBwdWJsaWMgc2lnc2xvdDo6aGFzX3Nsb3RzPD4geworY2xhc3MgTmV0d29ya1JUQ01v
bml0b3IgZmluYWwgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TmV0d29ya1JUQ01vbml0b3I+IHsK
IHB1YmxpYzoKICAgICBleHBsaWNpdCBOZXR3b3JrUlRDTW9uaXRvcihOZXR3b3JrUlRDUHJvdmlk
ZXImIHJ0Y1Byb3ZpZGVyKSA6IG1fcnRjUHJvdmlkZXIocnRjUHJvdmlkZXIpIHsgfQogICAgIH5O
ZXR3b3JrUlRDTW9uaXRvcigpOwpAQCAtNDksMTIgKzUwLDEzIEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogICAg
IHZvaWQgc3RvcFVwZGF0aW5nKCk7CiAgICAgYm9vbCBpc1N0YXJ0ZWQoKSBjb25zdCB7IHJldHVy
biBtX2lzU3RhcnRlZDsgfQorICAgIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIoKSB7
IHJldHVybiBtX3J0Y1Byb3ZpZGVyOyB9CisKKyAgICB2b2lkIG9uTmV0d29ya3NDaGFuZ2VkKGNv
bnN0IFZlY3RvcjxSVENOZXR3b3JrPiYsIGNvbnN0IFJUQ05ldHdvcms6OklQQWRkcmVzcyYsIGNv
bnN0IFJUQ05ldHdvcms6OklQQWRkcmVzcyYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRV
cGRhdGluZ0lmTmVlZGVkKCk7CiAKLSAgICB2b2lkIG9uTmV0d29ya3NDaGFuZ2VkKCk7Ci0KICAg
ICBOZXR3b3JrUlRDUHJvdmlkZXImIG1fcnRjUHJvdmlkZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PHJ0Yzo6QmFzaWNOZXR3b3JrTWFuYWdlcj4gbV9tYW5hZ2VyOwogICAgIGJvb2wgbV9pc1N0YXJ0
ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKaW5kZXggZThlOTNjMzU0YjhkMTEyNzkx
OWQ3NGQ5ODczMTkwMTE2Y2VlMmVlYi4uYTM4NjU5NGE2MmFhMzZlMGE4YTU4YjQwZWM0YjJlNjQy
ZmI4YjI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMv
TmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCkBAIC01NiwxMyArNTYsMTggQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoZm10LCAu
Li4pIFJFTEVBU0VfTE9HX0lGKGNhbkxvZygpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrUlRDUHJv
dmlkZXI6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQogI2RlZmluZSBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihjYW5Mb2coKSwg
TmV0d29yaywgIiVwIC0gTmV0d29ya1JUQ1Byb3ZpZGVyOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FS
R1NfXykKIAotc3RhdGljIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpUaHJlYWQ+IGNyZWF0
ZVRocmVhZCgpCitzdGF0aWMgcnRjOjpUaHJlYWQmIHJ0Y05ldHdvcmtUaHJlYWQoKQogewotICAg
IGF1dG8gdGhyZWFkID0gcnRjOjpUaHJlYWQ6OkNyZWF0ZVdpdGhTb2NrZXRTZXJ2ZXIoKTsKLSAg
ICBhdXRvIHJlc3VsdCA9IHRocmVhZC0+U3RhcnQoKTsKLSAgICBBU1NFUlRfVU5VU0VEKHJlc3Vs
dCwgcmVzdWx0KTsKLSAgICAvLyBGSVhNRTogU2V0IHRocmVhZCBuYW1lLgotICAgIHJldHVybiB0
aHJlYWQ7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxydGM6OlRo
cmVhZD4+IG5ldHdvcmtUaHJlYWQ7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7
CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgW10geworICAgICAgICBuZXR3b3JrVGhyZWFk
LmdldCgpID0gcnRjOjpUaHJlYWQ6OkNyZWF0ZVdpdGhTb2NrZXRTZXJ2ZXIoKTsKKyAgICAgICAg
bmV0d29ya1RocmVhZC5nZXQoKS0+U2V0TmFtZSgiUlRDIE5ldHdvcmsgVGhyZWFkIiwgbnVsbHB0
cik7CisKKyAgICAgICAgYXV0byByZXN1bHQgPSBuZXR3b3JrVGhyZWFkLmdldCgpLT5TdGFydCgp
OworICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0KTsKKyAgICB9KTsKKyAgICBy
ZXR1cm4gKm5ldHdvcmtUaHJlYWQuZ2V0KCk7CiB9CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKQEAgLTc5LDggKzg0LDggQEAgTmV0d29ya1JUQ1Byb3ZpZGVyOjpOZXR3b3JrUlRDUHJvdmlk
ZXIoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24KICAgICA6IG1fY29u
bmVjdGlvbigmY29ubmVjdGlvbikKICAgICAsIG1faXBjQ29ubmVjdGlvbihtYWtlUmVmKGNvbm5l
Y3Rpb24uY29ubmVjdGlvbigpKSkKICAgICAsIG1fcnRjTW9uaXRvcigqdGhpcykKLSAgICAsIG1f
cnRjTmV0d29ya1RocmVhZChjcmVhdGVUaHJlYWQoKSkKLSAgICAsIG1fcGFja2V0U29ja2V0RmFj
dG9yeShtYWtlVW5pcXVlUmVmV2l0aG91dEZhc3RNYWxsb2NDaGVjazxydGM6OkJhc2ljUGFja2V0
U29ja2V0RmFjdG9yeT4obV9ydGNOZXR3b3JrVGhyZWFkLmdldCgpKSkKKyAgICAsIG1fcnRjTmV0
d29ya1RocmVhZChydGNOZXR3b3JrVGhyZWFkKCkpCisgICAgLCBtX3BhY2tldFNvY2tldEZhY3Rv
cnkobWFrZVVuaXF1ZVJlZldpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8cnRjOjpCYXNpY1BhY2tldFNv
Y2tldEZhY3Rvcnk+KCZtX3J0Y05ldHdvcmtUaHJlYWQpKQogICAgICwgbV9jYW5Mb2coY29ubmVj
dGlvbi5zZXNzaW9uSUQoKS5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSkKIHsKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKQEAgLTExMCwxNiArMTE1LDEyIEBAIHZvaWQgTmV0d29ya1JUQ1By
b3ZpZGVyOjpjbG9zZSgpCiAKICAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzXSgpIHsK
ICAgICAgICAgbV9zb2NrZXRzLmNsZWFyKCk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3By
b3ZpZGVyID0gbWFrZVJlZigqdGhpcyldKCkgewotICAgICAgICAgICAgaWYgKHByb3ZpZGVyLT5t
X3J0Y05ldHdvcmtUaHJlYWQpCi0gICAgICAgICAgICAgICAgcHJvdmlkZXItPm1fcnRjTmV0d29y
a1RocmVhZC0+U3RvcCgpOwotICAgICAgICB9KTsKICAgICB9KTsKIH0KIAogdm9pZCBOZXR3b3Jr
UlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50
aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmIHNvY2tldCwg
U29ja2V0OjpUeXBlIHR5cGUsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsK
LSAgICBBU1NFUlQobV9ydGNOZXR3b3JrVGhyZWFkLT5Jc0N1cnJlbnQoKSk7CisgICAgQVNTRVJU
KG1fcnRjTmV0d29ya1RocmVhZC5Jc0N1cnJlbnQoKSk7CiAgICAgaWYgKCFzb2NrZXQpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiY3JlYXRlU29ja2V0IHdpdGggJXUg
c29ja2V0cyBpcyB1bmFibGUgdG8gY3JlYXRlIGEgbmV3IHNvY2tldCIsIG1fc29ja2V0cy5zaXpl
KCkpOwogICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENOZXR3b3Jr
OjpTaWduYWxDbG9zZShpZGVudGlmaWVyLCAxKSwgMCk7CkBAIC0xMzAsMTQgKzEzMSwxNCBAQCB2
b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIgaWRlbnRpZmllciwgc3RkOgogCiB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRl
VURQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgUlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2
X3QgbWF4UG9ydCkKIHsKLSAgICBBU1NFUlQobV9ydGNOZXR3b3JrVGhyZWFkLT5Jc0N1cnJlbnQo
KSk7CisgICAgQVNTRVJUKG1fcnRjTmV0d29ya1RocmVhZC5Jc0N1cnJlbnQoKSk7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tldFNvY2tl
dEZhY3RvcnktPkNyZWF0ZVVkcFNvY2tldChhZGRyZXNzLnZhbHVlLCBtaW5Qb3J0LCBtYXhQb3J0
KSk7CiAgICAgY3JlYXRlU29ja2V0KGlkZW50aWZpZXIsIFdURk1vdmUoc29ja2V0KSwgU29ja2V0
OjpUeXBlOjpVRFAsIG1faXBjQ29ubmVjdGlvbi5jb3B5UmVmKCkpOwogfQogCiB2b2lkIE5ldHdv
cmtSVENQcm92aWRlcjo6Y3JlYXRlU2VydmVyVENQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVz
cywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiB7Ci0g
ICAgQVNTRVJUKG1fcnRjTmV0d29ya1RocmVhZC0+SXNDdXJyZW50KCkpOworICAgIEFTU0VSVCht
X3J0Y05ldHdvcmtUaHJlYWQuSXNDdXJyZW50KCkpOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciwgYWRkcmVzcywg
bWluUG9ydCwgbWF4UG9ydCwgb3B0aW9uc10gewogICAgICAgICBpZiAoIW1faXNMaXN0ZW5pbmdT
b2NrZXRBdXRob3JpemVkKSB7CiAgICAgICAgICAgICBpZiAobV9jb25uZWN0aW9uKQpAQCAtMTc4
LDcgKzE3OSw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2Nr
ZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmCiAKIHZvaWQgTmV0d29ya1JUQ1By
b3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlvbihMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElk
ZW50aWZpZXIpCiB7Ci0gICAgQVNTRVJUKG1fcnRjTmV0d29ya1RocmVhZC0+SXNDdXJyZW50KCkp
OworICAgIEFTU0VSVChtX3J0Y05ldHdvcmtUaHJlYWQuSXNDdXJyZW50KCkpOwogICAgIGF1dG8g
c29ja2V0ID0gbV9wZW5kaW5nSW5jb21pbmdTb2NrZXRzLnRha2UobmV3Q29ubmVjdGlvblNvY2tl
dElkZW50aWZpZXIpOwogICAgIFJFTEVBU0VfTE9HX0lGKCFzb2NrZXQsIFdlYlJUQywgIk5ldHdv
cmtSVENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5lY3Rpb24gcmVjZWl2ZWQgYW4gaW52YWxpZCBz
b2NrZXQgaWRlbnRpZmllciIpOwogICAgIGlmIChzb2NrZXQpCkBAIC0xODcsNyArMTg4LDcgQEAg
dm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OndyYXBOZXdUQ1BDb25uZWN0aW9uKExpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgaWRlbnRpZmkKIAogdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OnNlbmRU
b1NvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgZGF0YSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYmIGFkZHJlc3Ms
IFJUQ1BhY2tldE9wdGlvbnMmJiBvcHRpb25zKQogewotICAgIEFTU0VSVChtX3J0Y05ldHdvcmtU
aHJlYWQtPklzQ3VycmVudCgpKTsKKyAgICBBU1NFUlQobV9ydGNOZXR3b3JrVGhyZWFkLklzQ3Vy
cmVudCgpKTsKICAgICBhdXRvKiBzb2NrZXQgPSBtX3NvY2tldHMuZ2V0KGlkZW50aWZpZXIpOwog
ICAgIGlmICghc29ja2V0KQogICAgICAgICByZXR1cm47CkBAIC0xOTcsNyArMTk4LDcgQEAgdm9p
ZCBOZXR3b3JrUlRDUHJvdmlkZXI6OnNlbmRUb1NvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnMKIAogdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNsb3NlU29j
a2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICBBU1NFUlQo
bV9ydGNOZXR3b3JrVGhyZWFkLT5Jc0N1cnJlbnQoKSk7CisgICAgQVNTRVJUKG1fcnRjTmV0d29y
a1RocmVhZC5Jc0N1cnJlbnQoKSk7CiAgICAgYXV0byogc29ja2V0ID0gbV9zb2NrZXRzLmdldChp
ZGVudGlmaWVyKTsKICAgICBpZiAoIXNvY2tldCkKICAgICAgICAgcmV0dXJuOwpAQCAtMjA2LDcg
KzIwNyw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZVNvY2tldChMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpz
ZXRTb2NrZXRPcHRpb24oTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBpbnQg
b3B0aW9uLCBpbnQgdmFsdWUpCiB7Ci0gICAgQVNTRVJUKG1fcnRjTmV0d29ya1RocmVhZC0+SXND
dXJyZW50KCkpOworICAgIEFTU0VSVChtX3J0Y05ldHdvcmtUaHJlYWQuSXNDdXJyZW50KCkpOwog
ICAgIGF1dG8qIHNvY2tldCA9IG1fc29ja2V0cy5nZXQoaWRlbnRpZmllcik7CiAgICAgaWYgKCFz
b2NrZXQpCiAgICAgICAgIHJldHVybjsKQEAgLTIxNSwxOSArMjE2LDE5IEBAIHZvaWQgTmV0d29y
a1JUQ1Byb3ZpZGVyOjpzZXRTb2NrZXRPcHRpb24oTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBp
ZGVudGlmaWVyLCBpCiAKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjphZGRTb2NrZXQoTGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0PiYm
IHNvY2tldCkKIHsKLSAgICBBU1NFUlQobV9ydGNOZXR3b3JrVGhyZWFkLT5Jc0N1cnJlbnQoKSk7
CisgICAgQVNTRVJUKG1fcnRjTmV0d29ya1RocmVhZC5Jc0N1cnJlbnQoKSk7CiAgICAgbV9zb2Nr
ZXRzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHNvY2tldCkpOwogfQogCiBzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IE5ldHdvcmtSVENQcm92aWRlcjo6dGFrZVNv
Y2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgQVNTRVJU
KG1fcnRjTmV0d29ya1RocmVhZC0+SXNDdXJyZW50KCkpOworICAgIEFTU0VSVChtX3J0Y05ldHdv
cmtUaHJlYWQuSXNDdXJyZW50KCkpOwogICAgIHJldHVybiBtX3NvY2tldHMudGFrZShpZGVudGlm
aWVyKTsKIH0KIAogdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6Om5ld0Nvbm5lY3Rpb24oU29ja2V0
JiBzZXJ2ZXJTb2NrZXQsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYm
IG5ld1NvY2tldCkKIHsKLSAgICBBU1NFUlQobV9ydGNOZXR3b3JrVGhyZWFkLT5Jc0N1cnJlbnQo
KSk7CisgICAgQVNTRVJUKG1fcnRjTmV0d29ya1RocmVhZC5Jc0N1cnJlbnQoKSk7CiAgICAgYXV0
byBpbmNvbWluZ1NvY2tldElkZW50aWZpZXIgPSBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpOwogICAgIG1faXBjQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRD
TmV0d29yazo6U2lnbmFsTmV3Q29ubmVjdGlvbihzZXJ2ZXJTb2NrZXQuaWRlbnRpZmllcigpLCBp
bmNvbWluZ1NvY2tldElkZW50aWZpZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MobmV3U29j
a2V0LT5HZXRSZW1vdGVBZGRyZXNzKCkpKSwgMCk7CiAgICAgbV9wZW5kaW5nSW5jb21pbmdTb2Nr
ZXRzLmFkZChpbmNvbWluZ1NvY2tldElkZW50aWZpZXIsIFdURk1vdmUobmV3U29ja2V0KSk7CkBA
IC0zMzcsNyArMzM4LDcgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6Ok9uTWVzc2FnZShydGM6
Ok1lc3NhZ2UqIG1lc3NhZ2UpCiAKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjYWxsT25SVENO
ZXR3b3JrVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKLSAgICBtX3J0Y05l
dHdvcmtUaHJlYWQtPlBvc3QoUlRDX0ZST01fSEVSRSwgdGhpcywgMSwgbmV3IE5ldHdvcmtNZXNz
YWdlRGF0YSgqdGhpcywgV1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICBtX3J0Y05ldHdvcmtUaHJl
YWQuUG9zdChSVENfRlJPTV9IRVJFLCB0aGlzLCAxLCBuZXcgTmV0d29ya01lc3NhZ2VEYXRhKCp0
aGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpOwogfQogCiB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6
c2VuZEZyb21NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoSVBDOjpDb25uZWN0aW9uJik+JiYgY2Fs
bGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4IDY0NDgwMjllY2M0NDliODk4MzhmYzc5OWZmNzI3
YTA0ZTI1Y2U5NDguLmFhYzZlMjBlMDRiODRlODY3NTE5NzNmMjhjNmUyYjJiYzBiODgxNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENQcm92aWRlci5oCkBAIC05Niw2ICs5Niw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgY2Fu
TG9nKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Mb2c7IH0KIAorICAgIElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbigpIHsgcmV0dXJuIG1faXBjQ29ubmVjdGlvbi5nZXQoKTsgfQorCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYpOwogCkBAIC0xMjksNyArMTMxLDcgQEAgcHJpdmF0ZToKIAogICAgIE5ldHdvcmtS
VENNb25pdG9yIG1fcnRjTW9uaXRvcjsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlRocmVh
ZD4gbV9ydGNOZXR3b3JrVGhyZWFkOworICAgIHJ0Yzo6VGhyZWFkJiBtX3J0Y05ldHdvcmtUaHJl
YWQ7CiAgICAgVW5pcXVlUmVmPHJ0Yzo6QmFzaWNQYWNrZXRTb2NrZXRGYWN0b3J5PiBtX3BhY2tl
dFNvY2tldEZhY3Rvcnk7CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0Pj4gbV9wZW5k
aW5nSW5jb21pbmdTb2NrZXRzOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>