<?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>221034</bug_id>
          
          <creation_ts>2021-01-27 05:09:16 -0800</creation_ts>
          <short_desc>[SOUP] Use a GInputStream to set the request body in preparation for libsoup3</short_desc>
          <delta_ts>2021-01-29 00:49:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>220764</dependson>
          <blocked>220508</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jbedard</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1722915</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-27 05:09:16 -0800</bug_when>
    <thetext>In libsoup3, the request body can be set using a stream. Add the stream now, that can still be used in libsoup2 to set the body data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722916</commentid>
    <comment_count>1</comment_count>
      <attachid>418532</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-27 05:17:35 -0800</bug_when>
    <thetext>Created attachment 418532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723649</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-01-29 00:49:58 -0800</bug_when>
    <thetext>Committed r272051: &lt;https://trac.webkit.org/changeset/272051&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418532</attachid>
            <date>2021-01-27 05:17:35 -0800</date>
            <delta_ts>2021-01-27 13:47:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-request-body-stream.diff</filename>
            <type>text/plain</type>
            <size>20641</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZGZkNzQzZTkyZWUuLmVlMTMyODQ3NmJjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIxLTAxLTI3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
KworICAgICAgICBbU09VUF0gVXNlIGEgR0lucHV0U3RyZWFtIHRvIHNldCB0aGUgcmVxdWVzdCBi
b2R5IGluIHByZXBhcmF0aW9uIGZvciBsaWJzb3VwMworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMDM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGV4cGVjdGF0aW9ucyBvZiBodHRwL3Rlc3Rz
L2xvY2FsL2Jsb2Ivc2VuZC1oeWJyaWQtYmxvYi11c2luZy1vcGVuLXBhbmVsLmh0bWwgdGhhdCBp
cyBub3cgcGFzc2luZy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
OgorCiAyMDIxLTAxLTI3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBOdWxscHRyIGNyYXNoIGluIGVkaXRpbmdJZ25vcmVzQ29udGVudCB2aWEg
SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6ZG9BcHBseQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0ODM3MDFmYWI4ZGIuLjJhZTY3NjMxMmMy
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI1NjQs
OCArMjU2NCw2IEBAIHdlYmtpdC5vcmcvYi8xOTM2MzggbWVkaWEvdmlkZW8td2Via2l0LXBsYXlz
aW5saW5lLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xOTQzODQgY29tcG9zaXRpbmcv
Y2xpcHBpbmcvYm9yZGVyLXJhZGl1cy1hc3luYy1vdmVyZmxvdy1jbGlwcGluZy1sYXllci5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjA2MDAwIGNvbXBvc2l0aW5nL2NsaXBwaW5nL2Jv
cmRlci1yYWRpdXMtYXN5bmMtb3ZlcmZsb3ctbm9uLXN0YWNraW5nLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzE5NDYwOSBodHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2Vu
ZC1oeWJyaWQtYmxvYi11c2luZy1vcGVuLXBhbmVsLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0
Lm9yZy9iLzE5NTI1OSBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3Np
dGVkLXBhZ2Utc2NhbGUtc21hbGxlci10aGFuLXZpZXdwb3J0Lmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIAogd2Via2l0Lm9yZy9iLzE5NTcxMiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy1o
dG1sLTJkLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MmJkMzE5YjhiMGIuLjlhMmFl
M2JhNWI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAxLTI3ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbU09VUF0gVXNl
IGEgR0lucHV0U3RyZWFtIHRvIHNldCB0aGUgcmVxdWVzdCBib2R5IGluIHByZXBhcmF0aW9uIGZv
ciBsaWJzb3VwMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIxMDM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW4gbGlic291cDMsIHRoZSByZXF1ZXN0IGJvZHkgY2FuIGJlIHNldCB1c2luZyBhIHN0cmVh
bS4gQWRkIHRoZSBzdHJlYW0gbm93LCB0aGF0IGNhbiBzdGlsbCBiZSB1c2VkIGluIGxpYnNvdXAy
CisgICAgICAgIHRvIHNldCB0aGUgYm9keSBkYXRhLiBUaGlzIG1vdmVzIHRoZSBGb3JtRGF0YSBw
cm9jZXNzaW5nIGNvZGUgdG8gV2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbSBhbmQgYWxzbyBpbXBs
ZW1lbnRzCisgICAgICAgIHRoZSBmaWxlIHNlZWsgYW5kIHJhbmdlIGxlbmd0aCwgd2hpY2ggbWFr
ZXMgdGVzdCBodHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2VuZC1oeWJyaWQtYmxvYi11c2luZy1vcGVu
LXBhbmVsLmh0bWwgcGFzcy4KKworICAgICAgICAqIHBsYXRmb3JtL1NvdXJjZXNTb3VwLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdlQm9k
eSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1dlYktpdEZvcm1EYXRh
SW5wdXRTdHJlYW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKHdlYmtpdEZvcm1EYXRhSW5wdXRTdHJl
YW1DcmVhdGVOZXh0U3RyZWFtKToKKyAgICAgICAgKHdlYmtpdEZvcm1EYXRhSW5wdXRTdHJlYW1S
ZWFkKToKKyAgICAgICAgKHdlYmtpdEZvcm1EYXRhSW5wdXRTdHJlYW1DbG9zZSk6CisgICAgICAg
ICh3ZWJraXRfZm9ybV9kYXRhX2lucHV0X3N0cmVhbV9jbGFzc19pbml0KToKKyAgICAgICAgKHdl
YmtpdEZvcm1EYXRhSW5wdXRTdHJlYW1OZXcpOgorICAgICAgICAod2Via2l0Rm9ybURhdGFJbnB1
dFN0cmVhbVJlYWRBbGwpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9XZWJLaXRG
b3JtRGF0YUlucHV0U3RyZWFtLmg6IEFkZGVkLgorCiAyMDIxLTAxLTI3ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBOdWxscHRyIGNyYXNoIGlu
IGVkaXRpbmdJZ25vcmVzQ29udGVudCB2aWEgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFu
ZDo6ZG9BcHBseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291cmNlc1Nv
dXAudHh0IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291cmNlc1NvdXAudHh0CmluZGV4IDBj
ODU1YzNjOWY4Yi4uODdkYzE2Nzc1ZjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Tb3VyY2VzU291cC50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291cmNl
c1NvdXAudHh0CkBAIC0zNiw2ICszNiw3IEBAIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAKIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Np
b24uY3BwCiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU3luY2hyb25vdXNMb2FkZXJDbGllbnRTb3Vw
LmNwcAogcGxhdGZvcm0vbmV0d29yay9zb3VwL1VSTFNvdXAuY3BwCitwbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvV2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbS5jcHAgQG5vLXVuaWZ5CiAKIHBsYXRmb3Jt
L3NvdXAvUHVibGljU3VmZml4U291cC5jcHAKIHBsYXRmb3JtL3NvdXAvU2hhcmVkQnVmZmVyU291
cC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9S
ZXNvdXJjZVJlcXVlc3RTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAppbmRleCAyN2Y5YmUyNzIyNjEuLmM3MDFiY2Q5
YWZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlUmVxdWVzdFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcApAQCAtMzAsNzcgKzMwLDQ4IEBACiAjaW5j
bHVkZSAiUmVnaXN0cmFibGVEb21haW4uaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNp
bmNsdWRlICJVUkxTb3VwLmgiCisjaW5jbHVkZSAiV2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbS5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgdWludDY0X3QgYXBwZW5k
RW5jb2RlZEJsb2JJdGVtVG9Tb3VwTWVzc2FnZUJvZHkoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdl
LCBjb25zdCBCbG9iRGF0YUl0ZW0mIGJsb2JJdGVtKQordm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVw
ZGF0ZVNvdXBNZXNzYWdlQm9keShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIEJsb2JSZWdpc3Ry
eUltcGwmIGJsb2JSZWdpc3RyeSkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKGJsb2JJdGVtLnR5cGUo
KSkgewotICAgIGNhc2UgQmxvYkRhdGFJdGVtOjpUeXBlOjpEYXRhOgotICAgICAgICBzb3VwX21l
c3NhZ2VfYm9keV9hcHBlbmQoc291cE1lc3NhZ2UtPnJlcXVlc3RfYm9keSwgU09VUF9NRU1PUllf
VEVNUE9SQVJZLCBibG9iSXRlbS5kYXRhKCkuZGF0YSgpLT5kYXRhKCkgKyBibG9iSXRlbS5vZmZz
ZXQoKSwgYmxvYkl0ZW0ubGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4gYmxvYkl0ZW0ubGVuZ3Ro
KCk7Ci0gICAgY2FzZSBCbG9iRGF0YUl0ZW06OlR5cGU6OkZpbGU6IHsKLSAgICAgICAgaWYgKCFi
bG9iSXRlbS5maWxlKCktPmV4cGVjdGVkTW9kaWZpY2F0aW9uVGltZSgpKQotICAgICAgICAgICAg
cmV0dXJuIDA7Ci0KLSAgICAgICAgYXV0byBmaWxlTW9kaWZpY2F0aW9uVGltZSA9IEZpbGVTeXN0
ZW06OmdldEZpbGVNb2RpZmljYXRpb25UaW1lKGJsb2JJdGVtLmZpbGUoKS0+cGF0aCgpKTsKLSAg
ICAgICAgaWYgKCFmaWxlTW9kaWZpY2F0aW9uVGltZSkKLSAgICAgICAgICAgIHJldHVybiAwOwot
Ci0gICAgICAgIGlmIChmaWxlTW9kaWZpY2F0aW9uVGltZS0+c2Vjb25kc1NpbmNlRXBvY2goKS5z
ZWNvbmRzQXM8dGltZV90PigpICE9IGJsb2JJdGVtLmZpbGUoKS0+ZXhwZWN0ZWRNb2RpZmljYXRp
b25UaW1lKCktPnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kc0FzPHRpbWVfdD4oKSkKLSAgICAg
ICAgICAgIHJldHVybiAwOwotCi0gICAgICAgIGlmIChhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKGJsb2JJdGVtLmZpbGUoKS0+cGF0aCgpKSkgewot
ICAgICAgICAgICAgaWYgKGJ1ZmZlci0+aXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJldHVy
biAwOwotCi0gICAgICAgICAgICBHVW5pcXVlUHRyPFNvdXBCdWZmZXI+IHNvdXBCdWZmZXIoYnVm
ZmVyLT5jcmVhdGVTb3VwQnVmZmVyKGJsb2JJdGVtLm9mZnNldCgpLCBibG9iSXRlbS5sZW5ndGgo
KSA9PSBCbG9iRGF0YUl0ZW06OnRvRW5kT2ZGaWxlID8gMCA6IGJsb2JJdGVtLmxlbmd0aCgpKSk7
Ci0gICAgICAgICAgICBpZiAoc291cEJ1ZmZlci0+bGVuZ3RoKQotICAgICAgICAgICAgICAgIHNv
dXBfbWVzc2FnZV9ib2R5X2FwcGVuZF9idWZmZXIoc291cE1lc3NhZ2UtPnJlcXVlc3RfYm9keSwg
c291cEJ1ZmZlci5nZXQoKSk7Ci0gICAgICAgICAgICByZXR1cm4gc291cEJ1ZmZlci0+bGVuZ3Ro
OworICAgIGF1dG8qIGZvcm1EYXRhID0gaHR0cEJvZHkoKTsKKyAgICBpZiAoIWZvcm1EYXRhIHx8
IGZvcm1EYXRhLT5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEhhbmRsZSB0
aGUgY29tbW9uIHNwZWNpYWwgY2FzZSBvZiBvbmUgcGllY2Ugb2YgZm9ybSBkYXRhLCB3aXRoIG5v
IGZpbGVzLgorICAgIGF1dG8mIGVsZW1lbnRzID0gZm9ybURhdGEtPmVsZW1lbnRzKCk7CisgICAg
aWYgKGVsZW1lbnRzLnNpemUoKSA9PSAxICYmICFmb3JtRGF0YS0+YWx3YXlzU3RyZWFtKCkpIHsK
KyAgICAgICAgaWYgKGF1dG8qIHZlY3RvciA9IFdURjo6Z2V0X2lmPFZlY3RvcjxjaGFyPj4oZWxl
bWVudHNbMF0uZGF0YSkpIHsKKyAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZChz
b3VwTWVzc2FnZS0+cmVxdWVzdF9ib2R5LCBTT1VQX01FTU9SWV9URU1QT1JBUlksIHZlY3Rvci0+
ZGF0YSgpLCB2ZWN0b3ItPnNpemUoKSk7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgYnJlYWs7Ci0gICAgfQogICAgIH0KIAotICAgIHJldHVybiAwOwotfQorICAgIC8v
IFByZWNvbXB1dGUgdGhlIGNvbnRlbnQgbGVuZ3RoLgorICAgIGF1dG8gcmVzb2x2ZWRGb3JtRGF0
YSA9IGZvcm1EYXRhLT5yZXNvbHZlQmxvYlJlZmVyZW5jZXMoKTsKKyAgICB1aW50NjRfdCBsZW5n
dGggPSAwOworICAgIGZvciAoYXV0byYgZWxlbWVudCA6IHJlc29sdmVkRm9ybURhdGEtPmVsZW1l
bnRzKCkpIHsKKyAgICAgICAgbGVuZ3RoICs9IGVsZW1lbnQubGVuZ3RoSW5CeXRlcyhbJl0oYXV0
byYgdXJsKSB7CisgICAgICAgICAgICByZXR1cm4gYmxvYlJlZ2lzdHJ5LmJsb2JTaXplKHVybCk7
CisgICAgICAgIH0pOworICAgIH0KIAotdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBN
ZXNzYWdlQm9keShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIEJsb2JSZWdpc3RyeUltcGwmIGJs
b2JSZWdpc3RyeSkgY29uc3QKLXsKLSAgICBhdXRvKiBmb3JtRGF0YSA9IGh0dHBCb2R5KCk7Ci0g
ICAgaWYgKCFmb3JtRGF0YSB8fCBmb3JtRGF0YS0+aXNFbXB0eSgpKQorICAgIGlmICghbGVuZ3Ro
KQogICAgICAgICByZXR1cm47CiAKLSAgICBzb3VwX21lc3NhZ2VfYm9keV9zZXRfYWNjdW11bGF0
ZShzb3VwTWVzc2FnZS0+cmVxdWVzdF9ib2R5LCBGQUxTRSk7Ci0gICAgdWludDY0X3QgYm9keVNp
emUgPSAwOwotICAgIGZvciAoY29uc3QgYXV0byYgZWxlbWVudCA6IGZvcm1EYXRhLT5lbGVtZW50
cygpKSB7Ci0gICAgICAgIHN3aXRjaE9uKGVsZW1lbnQuZGF0YSwKLSAgICAgICAgICAgIFsmXSAo
Y29uc3QgVmVjdG9yPGNoYXI+JiBieXRlcykgewotICAgICAgICAgICAgICAgIGJvZHlTaXplICs9
IGJ5dGVzLnNpemUoKTsKLSAgICAgICAgICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQo
c291cE1lc3NhZ2UtPnJlcXVlc3RfYm9keSwgU09VUF9NRU1PUllfVEVNUE9SQVJZLCBieXRlcy5k
YXRhKCksIGJ5dGVzLnNpemUoKSk7Ci0gICAgICAgICAgICB9LCBbJl0gKGNvbnN0IEZvcm1EYXRh
RWxlbWVudDo6RW5jb2RlZEZpbGVEYXRhJiBmaWxlRGF0YSkgewotICAgICAgICAgICAgICAgIGlm
IChhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKGZp
bGVEYXRhLmZpbGVuYW1lKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoYnVmZmVyLT5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgICAgICBHVW5pcXVlUHRyPFNvdXBCdWZmZXI+IHNvdXBCdWZm
ZXIoYnVmZmVyLT5jcmVhdGVTb3VwQnVmZmVyKCkpOwotICAgICAgICAgICAgICAgICAgICBib2R5
U2l6ZSArPSBidWZmZXItPnNpemUoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXBCdWZm
ZXItPmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2Fw
cGVuZF9idWZmZXIoc291cE1lc3NhZ2UtPnJlcXVlc3RfYm9keSwgc291cEJ1ZmZlci5nZXQoKSk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSwgWyZdIChjb25zdCBGb3JtRGF0YUVs
ZW1lbnQ6OkVuY29kZWRCbG9iRGF0YSYgYmxvYikgewotICAgICAgICAgICAgICAgIGlmIChhdXRv
KiBibG9iRGF0YSA9IGJsb2JSZWdpc3RyeS5nZXRCbG9iRGF0YUZyb21VUkwoYmxvYi51cmwpKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgaXRlbSA6IGJsb2JEYXRhLT5p
dGVtcygpKQotICAgICAgICAgICAgICAgICAgICAgICAgYm9keVNpemUgKz0gYXBwZW5kRW5jb2Rl
ZEJsb2JJdGVtVG9Tb3VwTWVzc2FnZUJvZHkoc291cE1lc3NhZ2UsIGl0ZW0pOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKKyAgICBHUmVmUHRyPEdJbnB1dFN0
cmVhbT4gc3RyZWFtID0gd2Via2l0Rm9ybURhdGFJbnB1dFN0cmVhbU5ldyhXVEZNb3ZlKHJlc29s
dmVkRm9ybURhdGEpKTsKKyAgICBpZiAoR0J5dGVzKiBkYXRhID0gd2Via2l0Rm9ybURhdGFJbnB1
dFN0cmVhbVJlYWRBbGwoV0VCS0lUX0ZPUk1fREFUQV9JTlBVVF9TVFJFQU0oc3RyZWFtLmdldCgp
KSkpIHsKKyAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfc2V0X2FjY3VtdWxhdGUoc291cE1lc3Nh
Z2UtPnJlcXVlc3RfYm9keSwgRkFMU0UpOworICAgICAgICBHVW5pcXVlUHRyPFNvdXBCdWZmZXI+
IHNvdXBCdWZmZXIoc291cF9idWZmZXJfbmV3X3dpdGhfb3duZXIoZ19ieXRlc19nZXRfZGF0YShk
YXRhLCBudWxscHRyKSwKKyAgICAgICAgICAgIGdfYnl0ZXNfZ2V0X3NpemUoZGF0YSksIGRhdGEs
IHJlaW50ZXJwcmV0X2Nhc3Q8R0Rlc3Ryb3lOb3RpZnk+KGdfYnl0ZXNfdW5yZWYpKSk7CisgICAg
ICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZF9idWZmZXIoc291cE1lc3NhZ2UtPnJlcXVlc3Rf
Ym9keSwgc291cEJ1ZmZlci5nZXQoKSk7CiAgICAgfQogCi0gICAgQVNTRVJUKGJvZHlTaXplID09
IHN0YXRpY19jYXN0PHVpbnQ2NF90Pihzb3VwTWVzc2FnZS0+cmVxdWVzdF9ib2R5LT5sZW5ndGgp
KTsKKyAgICBBU1NFUlQobGVuZ3RoID09IHN0YXRpY19jYXN0PHVpbnQ2NF90Pihzb3VwTWVzc2Fn
ZS0+cmVxdWVzdF9ib2R5LT5sZW5ndGgpKTsKIH0KIAogdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVw
ZGF0ZVNvdXBNZXNzYWdlTWVtYmVycyhTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvV2ViS2l0Rm9y
bURhdGFJbnB1dFN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvV2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi4xOTA5NTA1OTg2ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvV2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbS5j
cHAKQEAgLTAsMCArMSwxNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdEZvcm1E
YXRhSW5wdXRTdHJlYW0uaCIKKworI2luY2x1ZGUgIkJsb2JEYXRhLmgiCisjaW5jbHVkZSA8d3Rm
L0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworc3RydWN0IF9XZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtUHJp
dmF0ZSB7CisgICAgUmVmUHRyPEZvcm1EYXRhPiBmb3JtRGF0YTsKKyAgICBHUmVmUHRyPEdJbnB1
dFN0cmVhbT4gY3VycmVudFN0cmVhbTsKKyAgICB1bnNpZ25lZCBuZXh0SW5kZXg7CisgICAgbG9u
ZyBsb25nIGN1cnJlbnRTdHJlYW1SYW5nZUxlbmd0aDsKK307CisKK1dFQktJVF9ERUZJTkVfVFlQ
RShXZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtLCB3ZWJraXRfZm9ybV9kYXRhX2lucHV0X3N0cmVh
bSwgR19UWVBFX0lOUFVUX1NUUkVBTSkKKworc3RhdGljIGJvb2wgd2Via2l0Rm9ybURhdGFJbnB1
dFN0cmVhbUNyZWF0ZU5leHRTdHJlYW0oV2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbSogc3RyZWFt
LCBHQ2FuY2VsbGFibGUqIGNhbmNlbGxhYmxlKQoreworICAgIGF1dG8qIHByaXYgPSBzdHJlYW0t
PnByaXY7CisgICAgaWYgKHByaXYtPmN1cnJlbnRTdHJlYW0pIHsKKyAgICAgICAgZ19pbnB1dF9z
dHJlYW1fY2xvc2UoR19JTlBVVF9TVFJFQU0ocHJpdi0+Y3VycmVudFN0cmVhbS5nZXQoKSksIGNh
bmNlbGxhYmxlLCBudWxscHRyKTsKKyAgICAgICAgcHJpdi0+Y3VycmVudFN0cmVhbSA9IG51bGxw
dHI7CisgICAgICAgIHByaXYtPmN1cnJlbnRTdHJlYW1SYW5nZUxlbmd0aCA9IEJsb2JEYXRhSXRl
bTo6dG9FbmRPZkZpbGU7CisgICAgfQorCisgICAgY29uc3QgYXV0byYgZWxlbWVudHMgPSBwcml2
LT5mb3JtRGF0YS0+ZWxlbWVudHMoKTsKKyAgICBpZiAoZWxlbWVudHMuc2l6ZSgpID09IHByaXYt
Pm5leHRJbmRleCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjb25zdCBhdXRvJiBlbGVt
ZW50ID0gZWxlbWVudHNbcHJpdi0+bmV4dEluZGV4KytdOworICAgIHN3aXRjaE9uKGVsZW1lbnQu
ZGF0YSwKKyAgICAgICAgW3ByaXZdIChjb25zdCBWZWN0b3I8Y2hhcj4mIGRhdGEpIHsKKyAgICAg
ICAgICAgIEdSZWZQdHI8R0J5dGVzPiBieXRlcyA9IGFkb3B0R1JlZihnX2J5dGVzX25ld19zdGF0
aWMoZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKSk7CisgICAgICAgICAgICBwcml2LT5jdXJyZW50
U3RyZWFtID0gYWRvcHRHUmVmKGdfbWVtb3J5X2lucHV0X3N0cmVhbV9uZXdfZnJvbV9ieXRlcyhi
eXRlcy5nZXQoKSkpOworICAgICAgICB9LCBbcHJpdiwgY2FuY2VsbGFibGVdIChjb25zdCBGb3Jt
RGF0YUVsZW1lbnQ6OkVuY29kZWRGaWxlRGF0YSYgZmlsZURhdGEpIHsKKyAgICAgICAgICAgIGlm
IChmaWxlRGF0YS5maWxlTW9kaWZpY2F0aW9uVGltZU1hdGNoZXNFeHBlY3RhdGlvbigpKSB7Cisg
ICAgICAgICAgICAgICAgR1JlZlB0cjxHRmlsZT4gZmlsZSA9IGFkb3B0R1JlZihnX2ZpbGVfbmV3
X2Zvcl9wYXRoKEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihmaWxlRGF0YS5m
aWxlbmFtZSkuZGF0YSgpKSk7CisgICAgICAgICAgICAgICAgcHJpdi0+Y3VycmVudFN0cmVhbSA9
IGFkb3B0R1JlZihHX0lOUFVUX1NUUkVBTShnX2ZpbGVfcmVhZChmaWxlLmdldCgpLCBjYW5jZWxs
YWJsZSwgbnVsbHB0cikpKTsKKyAgICAgICAgICAgICAgICBpZiAoR19JU19TRUVLQUJMRShwcml2
LT5jdXJyZW50U3RyZWFtLmdldCgpKSAmJiBmaWxlRGF0YS5maWxlU3RhcnQgPiAwKQorICAgICAg
ICAgICAgICAgICAgICBnX3NlZWthYmxlX3NlZWsoR19TRUVLQUJMRShwcml2LT5jdXJyZW50U3Ry
ZWFtLmdldCgpKSwgZmlsZURhdGEuZmlsZVN0YXJ0LCBHX1NFRUtfU0VULCBjYW5jZWxsYWJsZSwg
bnVsbHB0cik7CisgICAgICAgICAgICAgICAgaWYgKHByaXYtPmN1cnJlbnRTdHJlYW0pCisgICAg
ICAgICAgICAgICAgICAgIHByaXYtPmN1cnJlbnRTdHJlYW1SYW5nZUxlbmd0aCA9IGZpbGVEYXRh
LmZpbGVMZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgIH0sIFtdIChjb25zdCBGb3JtRGF0
YUVsZW1lbnQ6OkVuY29kZWRCbG9iRGF0YSYpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICB9CisgICAgKTsKKworICAgIHJldHVybiAhIXByaXYtPmN1cnJlbnRT
dHJlYW07Cit9CisKK3N0YXRpYyBnc3NpemUgd2Via2l0Rm9ybURhdGFJbnB1dFN0cmVhbVJlYWQo
R0lucHV0U3RyZWFtKiBpbnB1dCwgdm9pZCogYnVmZmVyLCBnc2l6ZSBjb3VudCwgR0NhbmNlbGxh
YmxlKiBjYW5jZWxsYWJsZSwgR0Vycm9yKiogZXJyb3IpCit7CisgICAgYXV0byogc3RyZWFtID0g
V0VCS0lUX0ZPUk1fREFUQV9JTlBVVF9TVFJFQU0oaW5wdXQpOworICAgIGF1dG8qIHByaXYgPSBz
dHJlYW0tPnByaXY7CisgICAgaWYgKCFwcml2LT5jdXJyZW50U3RyZWFtKQorICAgICAgICB3aGls
ZSAoIXdlYmtpdEZvcm1EYXRhSW5wdXRTdHJlYW1DcmVhdGVOZXh0U3RyZWFtKHN0cmVhbSwgY2Fu
Y2VsbGFibGUpKSB7IH0KKworICAgIHdoaWxlIChwcml2LT5jdXJyZW50U3RyZWFtKSB7CisgICAg
ICAgIGF1dG8gYnl0ZXNUb1JlYWQgPSBjb3VudDsKKyAgICAgICAgaWYgKHByaXYtPmN1cnJlbnRT
dHJlYW1SYW5nZUxlbmd0aCAhPSBCbG9iRGF0YUl0ZW06OnRvRW5kT2ZGaWxlICYmIHN0YXRpY19j
YXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4ocHJpdi0+Y3VycmVudFN0cmVhbVJhbmdlTGVuZ3RoKSA8
IGNvdW50KQorICAgICAgICAgICAgYnl0ZXNUb1JlYWQgPSBwcml2LT5jdXJyZW50U3RyZWFtUmFu
Z2VMZW5ndGg7CisKKyAgICAgICAgYXV0byBieXRlc1JlYWQgPSBnX2lucHV0X3N0cmVhbV9yZWFk
KHByaXYtPmN1cnJlbnRTdHJlYW0uZ2V0KCksIGJ1ZmZlciwgYnl0ZXNUb1JlYWQsIGNhbmNlbGxh
YmxlLCBlcnJvcik7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJldHVybiBieXRl
c1JlYWQ7CisKKyAgICAgICAgaWYgKGJ5dGVzUmVhZCkgeworICAgICAgICAgICAgaWYgKHByaXYt
PmN1cnJlbnRTdHJlYW1SYW5nZUxlbmd0aCAhPSBCbG9iRGF0YUl0ZW06OnRvRW5kT2ZGaWxlKQor
ICAgICAgICAgICAgICAgIHByaXYtPmN1cnJlbnRTdHJlYW1SYW5nZUxlbmd0aCAtPSBieXRlc1Jl
YWQ7CisgICAgICAgICAgICByZXR1cm4gYnl0ZXNSZWFkOworICAgICAgICB9CisKKyAgICAgICAg
d2hpbGUgKCF3ZWJraXRGb3JtRGF0YUlucHV0U3RyZWFtQ3JlYXRlTmV4dFN0cmVhbShzdHJlYW0s
IGNhbmNlbGxhYmxlKSkgeyB9CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBn
Ym9vbGVhbiB3ZWJraXRGb3JtRGF0YUlucHV0U3RyZWFtQ2xvc2UoR0lucHV0U3RyZWFtKiBpbnB1
dCwgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJsZSwgR0Vycm9yKiopCit7CisgICAgYXV0byogcHJp
diA9IFdFQktJVF9GT1JNX0RBVEFfSU5QVVRfU1RSRUFNKGlucHV0KS0+cHJpdjsKKyAgICBpZiAo
cHJpdi0+Y3VycmVudFN0cmVhbSkgeworICAgICAgICBnX2lucHV0X3N0cmVhbV9jbG9zZShHX0lO
UFVUX1NUUkVBTShwcml2LT5jdXJyZW50U3RyZWFtLmdldCgpKSwgY2FuY2VsbGFibGUsIG51bGxw
dHIpOworICAgICAgICBwcml2LT5jdXJyZW50U3RyZWFtID0gbnVsbHB0cjsKKyAgICAgICAgcHJp
di0+Y3VycmVudFN0cmVhbVJhbmdlTGVuZ3RoID0gQmxvYkRhdGFJdGVtOjp0b0VuZE9mRmlsZTsK
KyAgICB9CisgICAgcHJpdi0+bmV4dEluZGV4ID0gcHJpdi0+Zm9ybURhdGEtPmVsZW1lbnRzKCku
c2l6ZSgpOworCisgICAgcmV0dXJuIFRSVUU7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9mb3Jt
X2RhdGFfaW5wdXRfc3RyZWFtX2NsYXNzX2luaXQoV2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbUNs
YXNzKiBrbGFzcykKK3sKKyAgICBhdXRvKiBpbnB1dFN0cmVhbUNsYXNzID0gR19JTlBVVF9TVFJF
QU1fQ0xBU1Moa2xhc3MpOworICAgIGlucHV0U3RyZWFtQ2xhc3MtPnJlYWRfZm4gPSB3ZWJraXRG
b3JtRGF0YUlucHV0U3RyZWFtUmVhZDsKKyAgICBpbnB1dFN0cmVhbUNsYXNzLT5jbG9zZV9mbiA9
IHdlYmtpdEZvcm1EYXRhSW5wdXRTdHJlYW1DbG9zZTsKK30KKworR1JlZlB0cjxHSW5wdXRTdHJl
YW0+IHdlYmtpdEZvcm1EYXRhSW5wdXRTdHJlYW1OZXcoUmVmPEZvcm1EYXRhPiYmIGZvcm1EYXRh
KQoreworICAgIGF1dG8qIHN0cmVhbSA9IFdFQktJVF9GT1JNX0RBVEFfSU5QVVRfU1RSRUFNKGdf
b2JqZWN0X25ldyhXRUJLSVRfVFlQRV9GT1JNX0RBVEFfSU5QVVRfU1RSRUFNLCBudWxscHRyKSk7
CisgICAgc3RyZWFtLT5wcml2LT5mb3JtRGF0YSA9IFdURk1vdmUoZm9ybURhdGEpOworICAgIHN0
cmVhbS0+cHJpdi0+Y3VycmVudFN0cmVhbVJhbmdlTGVuZ3RoID0gQmxvYkRhdGFJdGVtOjp0b0Vu
ZE9mRmlsZTsKKworICAgIHJldHVybiBhZG9wdEdSZWYoR19JTlBVVF9TVFJFQU0oKHN0cmVhbSkp
KTsKK30KKworR0J5dGVzKiB3ZWJraXRGb3JtRGF0YUlucHV0U3RyZWFtUmVhZEFsbChXZWJLaXRG
b3JtRGF0YUlucHV0U3RyZWFtKiBzdHJlYW0pCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0lTX0ZPUk1fREFUQV9JTlBVVF9TVFJFQU0oc3RyZWFtKSwgbnVsbHB0cik7CisKKyAg
ICBHUmVmUHRyPEdPdXRwdXRTdHJlYW0+IG91dHB1dFN0cmVhbSA9IGFkb3B0R1JlZihnX21lbW9y
eV9vdXRwdXRfc3RyZWFtX25ldyhudWxscHRyLCAwLCBnX3JlYWxsb2MsIGdfZnJlZSkpOworICAg
IGF1dG8gYnl0ZXNXcml0dGVuID0gZ19vdXRwdXRfc3RyZWFtX3NwbGljZShvdXRwdXRTdHJlYW0u
Z2V0KCksIEdfSU5QVVRfU1RSRUFNKHN0cmVhbSksCisgICAgICAgIHN0YXRpY19jYXN0PEdPdXRw
dXRTdHJlYW1TcGxpY2VGbGFncz4oR19PVVRQVVRfU1RSRUFNX1NQTElDRV9DTE9TRV9TT1VSQ0Ug
fCBHX09VVFBVVF9TVFJFQU1fU1BMSUNFX0NMT1NFX1RBUkdFVCksIG51bGxwdHIsIG51bGxwdHIp
OworICAgIGlmIChieXRlc1dyaXR0ZW4gPD0gMCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICByZXR1cm4gZ19tZW1vcnlfb3V0cHV0X3N0cmVhbV9zdGVhbF9hc19ieXRlcyhHX01FTU9S
WV9PVVRQVVRfU1RSRUFNKG91dHB1dFN0cmVhbS5nZXQoKSkpOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1dlYktpdEZvcm1EYXRhSW5wdXRTdHJl
YW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9XZWJLaXRGb3JtRGF0
YUlucHV0U3RyZWFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45
ZmFlYzNlZmM5MjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvV2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbS5oCkBAIC0wLDAgKzEsNjIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJGb3JtRGF0YS5oIgorI2luY2x1ZGUgPGdpby9naW8uaD4KKyNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKwor
R19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX0ZPUk1fREFUQV9JTlBVVF9TVFJF
QU0gICAgICAgICAgICAod2Via2l0X2Zvcm1fZGF0YV9pbnB1dF9zdHJlYW1fZ2V0X3R5cGUgKCkp
CisjZGVmaW5lIFdFQktJVF9GT1JNX0RBVEFfSU5QVVRfU1RSRUFNKG9iaikgICAgICAgICAgICAo
R19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvYmopLCBXRUJLSVRfVFlQRV9GT1JNX0RBVEFf
SU5QVVRfU1RSRUFNLCBXZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtKSkKKyNkZWZpbmUgV0VCS0lU
X0lTX0ZPUk1fREFUQV9JTlBVVF9TVFJFQU0ob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5T
VEFOQ0VfVFlQRSAoKG9iaiksIFdFQktJVF9UWVBFX0ZPUk1fREFUQV9JTlBVVF9TVFJFQU0pKQor
I2RlZmluZSBXRUJLSVRfRk9STV9EQVRBX0lOUFVUX1NUUkVBTV9DTEFTUyhrbGFzcykgICAgKEdf
VFlQRV9DSEVDS19DTEFTU19DQVNUICgoa2xhc3MpLCBXRUJLSVRfVFlQRV9GT1JNX0RBVEFfSU5Q
VVRfU1RSRUFNLCBXZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtQ2xhc3MpKQorI2RlZmluZSBXRUJL
SVRfSVNfRk9STV9EQVRBX0lOUFVUX1NUUkVBTV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19D
TEFTU19UWVBFICgob2JqKSwgV0VCS0lUX1RZUEVfRk9STV9EQVRBX0lOUFVUX1NUUkVBTSkpCisj
ZGVmaW5lIFdFQktJVF9GT1JNX0RBVEFfSU5QVVRfU1RSRUFNX0dFVF9DTEFTUyhvYmopICAoR19U
WVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG9iaiksIFdFQktJVF9UWVBFX0ZPUk1fREFUQV9JTlBV
VF9TVFJFQU0sIFdlYktpdEZvcm1EYXRhSW5wdXRTdHJlYW1DbGFzcykpCisKK3R5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtIFdlYktpdEZvcm1EYXRhSW5wdXRTdHJlYW07
Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbUNsYXNzIFdlYktpdEZv
cm1EYXRhSW5wdXRTdHJlYW1DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRGb3JtRGF0YUlu
cHV0U3RyZWFtUHJpdmF0ZSBXZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtUHJpdmF0ZTsKKworc3Ry
dWN0IF9XZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtIHsKKyAgICBHSW5wdXRTdHJlYW0gcGFyZW50
OworCisgICAgV2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbVByaXZhdGUqIHByaXY7Cit9OworCitz
dHJ1Y3QgX1dlYktpdEZvcm1EYXRhSW5wdXRTdHJlYW1DbGFzcyB7CisgICAgR0lucHV0U3RyZWFt
Q2xhc3MgcGFyZW50Q2xhc3M7Cit9OworCitHVHlwZSB3ZWJraXRfZm9ybV9kYXRhX2lucHV0X3N0
cmVhbV9nZXRfdHlwZSh2b2lkKTsKKworR1JlZlB0cjxHSW5wdXRTdHJlYW0+IHdlYmtpdEZvcm1E
YXRhSW5wdXRTdHJlYW1OZXcoUmVmPFdlYkNvcmU6OkZvcm1EYXRhPiYmKTsKK0dCeXRlcyogd2Vi
a2l0Rm9ybURhdGFJbnB1dFN0cmVhbVJlYWRBbGwoV2ViS2l0Rm9ybURhdGFJbnB1dFN0cmVhbSop
OworCitHX0VORF9ERUNMUworCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggM2FkMmE3MmIxYjU5Li4wM2I5ZDc1Y2YyMTggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
MS0wMS0yNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW1NPVVBdIFVzZSBhIEdJbnB1dFN0cmVhbSB0byBzZXQgdGhlIHJlcXVlc3QgYm9keSBp
biBwcmVwYXJhdGlvbiBmb3IgbGlic291cDMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMTAzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBXZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtIGFzIGFuIGV4
Y2VwdGlvbiBmb3Igc29tZSBzdHlsZSBjaGVja2VyIHJ1bGVzLgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5OgorCiAyMDIxLTAxLTI3ICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4gYW5kIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0ZsYXRwYWsgU0RLXSBGbGF0cGFrIDEuMTAgZW52aXJvbm1lbnQg
dmFyaWFibGUgaXNzdWVzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5k
ZXggNjgxOTg4MTdkNGJkLi45OGM2MDNiMWI1ZTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXIucHkKQEAgLTIzNCw2ICsyMzQsOCBAQCBfUEFUSF9SVUxFU19TUEVDSUZJRVIg
PSBbCiAgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywg
J21lZGlhc3RyZWFtJywgJ2dzdHJlYW1lcicsICdHU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5j
cHAnKSwKICAgICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYkNvcmUnLCAncGxhdGZvcm0n
LCAnbmV0d29yaycsICdzb3VwJywgJ1Byb3h5UmVzb2x2ZXJTb3VwLmNwcCcpLAogICAgICAgb3Mu
cGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViQ29yZScsICdwbGF0Zm9ybScsICduZXR3b3JrJywgJ3Nv
dXAnLCAnUHJveHlSZXNvbHZlclNvdXAuaCcpLAorICAgICAgb3MucGF0aC5qb2luKCdTb3VyY2Un
LCAnV2ViQ29yZScsICdwbGF0Zm9ybScsICduZXR3b3JrJywgJ3NvdXAnLCAnV2ViS2l0Rm9ybURh
dGFJbnB1dFN0cmVhbS5jcHAnKSwKKyAgICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYkNv
cmUnLCAncGxhdGZvcm0nLCAnbmV0d29yaycsICdzb3VwJywgJ1dlYktpdEZvcm1EYXRhSW5wdXRT
dHJlYW0uaCcpLAogICAgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ05ldHdv
cmtQcm9jZXNzJywgJ3NvdXAnLCAnV2ViS2l0RGlyZWN0b3J5SW5wdXRTdHJlYW0uaCcpXSwKICAg
ICAgWyItcmVhZGFiaWxpdHkvbmFtaW5nIiwKICAgICAgICItcmVhZGFiaWxpdHkvZW51bV9jYXNp
bmciXSksCg==
</data>
<flag name="review"
          id="436526"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>