<?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>192117</bug_id>
          
          <creation_ts>2018-11-28 15:32:03 -0800</creation_ts>
          <short_desc>Modernize BlobRegistry::writeBlobsToTemporaryFiles</short_desc>
          <delta_ts>2018-11-28 18:21:45 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1482707</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-11-28 15:32:03 -0800</bug_when>
    <thetext>Modernize BlobRegistry::writeBlobsToTemporaryFiles</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482708</commentid>
    <comment_count>1</comment_count>
      <attachid>355931</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-11-28 15:33:56 -0800</bug_when>
    <thetext>Created attachment 355931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482784</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-11-28 18:20:06 -0800</bug_when>
    <thetext>http://trac.webkit.org/r238655</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482786</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-28 18:21:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/46329136&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355931</attachid>
            <date>2018-11-28 15:33:56 -0800</date>
            <delta_ts>2018-11-28 17:35:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192117-20181128153356.patch</filename>
            <type>text/plain</type>
            <size>29062</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzODYzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE4LTExLTI4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXpl
IEJsb2JSZWdpc3RyeTo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjExNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4g
IEp1c3QgdXNlIENvbXBsZXRpb25IYW5kbGVycyBhbmQgdGhlIG5ldyBzZW5kV2l0aEFzeW5jUmVw
bHkgaW5zdGVhZCBvZiB0d28gd2F5IG1lc3NhZ2luZworICAgICAgICBhbmQgbWFudWFsIGNvbXBs
ZXRpb24gaGFuZGxlciBtYW5hZ2VtZW50LgorCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6d3JpdGVCbG9ic1RvRGlza0ZvckluZGV4ZWREQik6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9CbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZWdpc3RyeUltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5SW1wbDo6d3Jp
dGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxv
YlJlZ2lzdHJ5SW1wbC5oOgorCiAyMDE4LTExLTI4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGRlYWQgY29kZSBmcm9tIGFuIGVh
cmxpZXIgYXR0ZW1wdCBhdCBpbXBsZW1lbnRpbmcgc2FmZSBicm93c2luZwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
CShyZXZpc2lvbiAyMzg2MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTY2LDkgKzM1NjYsOCBAQCB2
b2lkIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6d3JpdGVCbG9ic1RvCiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKICAgICBBU1NFUlQoaGFzQmxvYlVSTHMoKSk7CiAKLSAgICBSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBwcm90ZWN0ZWRUaGlzKHRoaXMpOwogICAgIC8vIEZJWE1FOiBB
ZGQgbV9zZXNzaW9uSUQgYXMgYSBwYXJhbWV0ZXIgaGVyZS4KLSAgICBibG9iUmVnaXN0cnkoKS53
cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhtX2Jsb2JVUkxzLCBbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyldIChhdXRvJiBibG9iRmlsZVBhdGhzKSBtdXRhYmxlIHsKKyAgICBi
bG9iUmVnaXN0cnkoKS53cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhtX2Jsb2JVUkxzLCBbY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSAoYXV0byYmIGJsb2JGaWxlUGF0aHMpIG11dGFibGUg
ewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgICAgIGlmIChibG9iRmls
ZVBhdGhzLmlzRW1wdHkoKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9CbG9iUmVnaXN0cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCShyZXZpc2lvbiAyMzg2MzMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw5
ICszMSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTY3LDcgKzY1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB1
bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikgPSAwOwogCi0gICAgdmlydHVh
bCB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBi
bG9iVVJMcywgV1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZVBh
dGhzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZUJs
b2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSA9IDA7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNCbG9iUmVnaXN0cnlJbXBsKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0
cnlJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JSZWdpc3RyeUltcGwuY3BwCShyZXZpc2lvbiAyMzg2MzMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCisjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4K
QEAgLTMwMCw3ICszMDEsNyBAQCBzdGF0aWMgYm9vbCB3cml0ZUZpbGVQYXRoc09yRGF0YUJ1ZmZl
cnNUCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQmxvYlJlZ2lzdHJ5SW1wbDo6d3JpdGVC
bG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBGdW5j
dGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlUGF0aHMpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBCbG9iUmVnaXN0cnlJbXBsOjp3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
VmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IFZlY3RvcjxCbG9iRm9yRmlsZVdyaXRpbmc+IGJsb2JzRm9yV3JpdGluZzsKICAgICBpZiAoIXBv
cHVsYXRlQmxvYnNGb3JGaWxlV3JpdGluZyhibG9iVVJMcywgYmxvYnNGb3JXcml0aW5nKSkgewpA
QCAtMzIwLDggKzMyMSw4IEBAIHZvaWQgQmxvYlJlZ2lzdHJ5SW1wbDo6d3JpdGVCbG9ic1RvVGVt
cG8KICAgICAgICAgICAgIGZpbGVQYXRocy5hcHBlbmQodGVtcEZpbGVQYXRoLmlzb2xhdGVkQ29w
eSgpKTsKICAgICAgICAgfQogCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGZpbGVQYXRocyA9IFdURk1vdmUo
ZmlsZVBhdGhzKV0oKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmaWxlUGF0aHMp
OworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpLCBmaWxlUGF0aHMgPSBXVEZNb3ZlKGZpbGVQYXRocyldICgpIG11
dGFibGUgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShmaWxlUGF0aHMp
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuaAkocmV2aXNpb24gMjM4NjMzKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmgJKHdv
cmtpbmcgY29weSkKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKIAogICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBibG9iU2l6ZShjb25zdCBVUkwmKSBvdmVycmlkZTsKIAotICAgIHZvaWQgd3JpdGVC
bG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBGdW5j
dGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZVBhdGhzKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgb3ZlcnJpZGU7CisgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVj
dG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSBvdmVycmlkZTsKIAogICAgIHN0cnVjdCBCbG9i
Rm9yRmlsZVdyaXRpbmcgewogICAgICAgICBTdHJpbmcgYmxvYlVSTDsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyMzg2NDcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDQwIEBACisyMDE4LTExLTI4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXplIEJsb2JSZWdpc3RyeTo6d3Jp
dGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MjExNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lz
dHJ5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Jsb2JSZWdpc3RyeTo6d3JpdGVCbG9i
c1RvVGVtcG9yYXJ5RmlsZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQmxvYlJlZ2lzdHJ5
Ojp3cml0ZUJsb2JUb0ZpbGVQYXRoKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9GaWxlQVBJ
L05ldHdvcmtCbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjp3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjp3cml0ZUJsb2JUb0ZpbGVQYXRoKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
aGlsZFByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3NQcm94eTo6
c2VuZFdpdGhBc3luY1JlcGx5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6
ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp3cml0ZUJs
b2JUb0ZpbGVQYXRoKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlk
V3JpdGVCbG9iVG9GaWxlUGF0aCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9GaWxl
QVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmxvYlJlZ2lzdHJ5
UHJveHk6OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFdyaXRlQmxvYnNUb1RlbXBvcmFy
eUZpbGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKwogMjAxOC0xMS0yOCAgS2VpdGggUm9sbGlu
ICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGdlbmVyYXRlLXtkZXJpdmVk
LHVuaWZpZWR9LXNvdXJjZXMgc2NyaXB0cyB0byBzdXBwb3J0IGdlbmVyYXRpbmcgLnhjZmlsZWxp
c3QgZmlsZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAyMzg2
MzMpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMyLDcgKzUzMiw3IEBAIHZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmJsb2IKICAgICByZXN1bHRTaXplID0gTmV0d29y
a0Jsb2JSZWdpc3RyeTo6c2luZ2xldG9uKCkuYmxvYlNpemUodGhpcywgdXJsKTsKIH0KIAotdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5Rmls
ZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCB1aW50NjRfdCByZXF1ZXN0SWRlbnRp
ZmllcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndyaXRlQmxvYnNUb1Rl
bXBvcmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBWZWN0b3I8UmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4+IGZpbGVSZWZlcmVuY2VzOwog
ICAgIGZvciAoYXV0byYgdXJsIDogYmxvYlVSTHMpCkBAIC01NDEsMTEgKzU0MSwxMCBAQCB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp3cml0CiAgICAgZm9yIChhdXRvJiBmaWxl
IDogZmlsZVJlZmVyZW5jZXMpCiAgICAgICAgIGZpbGUtPnByZXBhcmVGb3JGaWxlQWNjZXNzKCk7
CiAKLSAgICBOZXR3b3JrQmxvYlJlZ2lzdHJ5OjpzaW5nbGV0b24oKS53cml0ZUJsb2JzVG9UZW1w
b3JhcnlGaWxlcyhibG9iVVJMcywgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgcmVxdWVzdElkZW50aWZpZXIsIGZpbGVSZWZlcmVuY2VzID0gV1RGTW92ZShmaWxlUmVmZXJl
bmNlcyldKGF1dG8mIGZpbGVOYW1lcykgbXV0YWJsZSB7CisgICAgTmV0d29ya0Jsb2JSZWdpc3Ry
eTo6c2luZ2xldG9uKCkud3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoYmxvYlVSTHMsIFtmaWxl
UmVmZXJlbmNlcyA9IFdURk1vdmUoZmlsZVJlZmVyZW5jZXMpLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiYgZmlsZU5hbWVzKSBtdXRhYmxlIHsK
ICAgICAgICAgZm9yIChhdXRvJiBmaWxlIDogZmlsZVJlZmVyZW5jZXMpCiAgICAgICAgICAgICBm
aWxlLT5yZXZva2VGaWxlQWNjZXNzKCk7Ci0KLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRpZFdyaXRlQmxvYnNUb1RlbXBvcmFy
eUZpbGVzKHJlcXVlc3RJZGVudGlmaWVyLCBmaWxlTmFtZXMpLCAwKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShmaWxlTmFtZXMpKTsKICAgICB9KTsKIH0KIApJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaAkocmV2aXNpb24gMjM4NjMzKQorKysgU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjgsNyArMTY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVS
TEZvclNsaWNlKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgc3JjVVJM
LCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCk7CiAgICAgdm9pZCBibG9iU2l6ZShjb25zdCBX
ZWJDb3JlOjpVUkwmLCB1aW50NjRfdCYgcmVzdWx0U2l6ZSk7CiAgICAgdm9pZCB1bnJlZ2lzdGVy
QmxvYlVSTChjb25zdCBXZWJDb3JlOjpVUkwmKTsKLSAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBv
cmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgdWludDY0X3QgcmVxdWVz
dElkZW50aWZpZXIpOworICAgIHZvaWQgd3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxT
dHJpbmc+JiYpPiYmKTsKIAogICAgIHZvaWQgc3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3Qg
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGFLZXkmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
KTsKIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCShy
ZXZpc2lvbiAyMzg2MzMpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3
ICs0OCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXMKICAgICBS
ZWdpc3RlckJsb2JVUkxGb3JTbGljZShXZWJDb3JlOjpVUkwgdXJsLCBXZWJDb3JlOjpVUkwgc3Jj
VVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCkKICAgICBVbnJlZ2lzdGVyQmxvYlVSTChX
ZWJDb3JlOjpVUkwgdXJsKQogICAgIEJsb2JTaXplKFdlYkNvcmU6OlVSTCB1cmwpIC0+ICh1aW50
NjRfdCByZXN1bHRTaXplKSBMZWdhY3lTeW5jCi0gICAgV3JpdGVCbG9ic1RvVGVtcG9yYXJ5Rmls
ZXMoVmVjdG9yPFN0cmluZz4gYmxvYlVSTHMsIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyKQor
ICAgIFdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFZlY3RvcjxTdHJpbmc+IGJsb2JVUkxzKSAt
PiAoVmVjdG9yPFN0cmluZz4gZmlsZU5hbWVzKSBBc3luYwogCiAgICAgU3RvcmVEZXJpdmVkRGF0
YVRvQ2FjaGUoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGFLZXkga2V5LCBJUEM6OlNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSkKIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDIzODYzMykKKysrIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00ODMsMTggKzQ4MywxOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lv
bihQQUw6CiAjZW5kaWYKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6d3JpdGVCbG9iVG9GaWxl
UGF0aChjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXRoLCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmJiBoYW5kbGVGb3JXcml0aW5nLCB1aW50NjRfdCByZXF1ZXN0SUQp
Cit2b2lkIE5ldHdvcmtQcm9jZXNzOjp3cml0ZUJsb2JUb0ZpbGVQYXRoKGNvbnN0IFdlYkNvcmU6
OlVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYm
IGhhbmRsZUZvcldyaXRpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBleHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGUoV1RGTW92ZShoYW5kbGVGb3JXcml0aW5nKSk7CiAgICAgaWYgKCFleHRlbnNpb24pIHsK
LSAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6RGlkV3JpdGVCbG9iVG9GaWxlUGF0aChmYWxzZSwgcmVxdWVzdElEKSwg
MCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIGV4dGVuc2lvbi0+Y29uc3VtZSgpOwotICAgIE5ldHdvcmtCbG9iUmVnaXN0
cnk6OnNpbmdsZXRvbigpLndyaXRlQmxvYlRvRmlsZVBhdGgodXJsLCBwYXRoLCBbdGhpcywgZXh0
ZW5zaW9uID0gV1RGTW92ZShleHRlbnNpb24pLCByZXF1ZXN0SURdIChib29sIHN1Y2Nlc3MpIHsK
KyAgICBOZXR3b3JrQmxvYlJlZ2lzdHJ5OjpzaW5nbGV0b24oKS53cml0ZUJsb2JUb0ZpbGVQYXRo
KHVybCwgcGF0aCwgW2V4dGVuc2lvbiA9IFdURk1vdmUoZXh0ZW5zaW9uKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJs
ZSB7CiAgICAgICAgIGV4dGVuc2lvbi0+cmV2b2tlKCk7Ci0gICAgICAgIHBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkRpZFdyaXRl
QmxvYlRvRmlsZVBhdGgoc3VjY2VzcywgcmVxdWVzdElEKSwgMCk7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHN1Y2Nlc3MpOwogICAgIH0pOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCShyZXZpc2lvbiAyMzg2MzMpCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI4OSw3ICsyODksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3luY0FsbENvb2tpZXMo
KTsKICAgICB2b2lkIGRpZFN5bmNBbGxDb29raWVzKCk7CiAKLSAgICB2b2lkIHdyaXRlQmxvYlRv
RmlsZVBhdGgoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmJiwgdWludDY0X3QgcmVxdWVzdElEKTsKKyAgICB2b2lkIHdyaXRl
QmxvYlRvRmlsZVBhdGgoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CiAKICNpZiBVU0UoU09VUCkKICAgICB2b2lkIHNldElnbm9yZVRMU0Vycm9ycyhib29sKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjM4NjMzKQorKysgU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpA
QCAtNzcsNyArNzcsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZl
CiAgICAgQ2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpCiAgICAgUHJvY2Vzc0RpZFJlc3VtZSgpCiAK
LSAgICBXcml0ZUJsb2JUb0ZpbGVQYXRoKFdlYkNvcmU6OlVSTCBibG9iVVJMLCBTdHJpbmcgcGF0
aCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlLCB1aW50NjRfdCBjYWxs
YmFja0lEKQorICAgIFdyaXRlQmxvYlRvRmlsZVBhdGgoV2ViQ29yZTo6VVJMIGJsb2JVUkwsIFN0
cmluZyBwYXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpIC0+IChi
b29sIHN1Y2Nlc3MpIEFzeW5jCiAKICAgICBQcmVjb25uZWN0VG8oV2ViQ29yZTo6VVJMIHVybCwg
ZW51bTpib29sIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5KTsKIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJ
L05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcAkocmV2aXNpb24gMjM4
NjMzKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9i
UmVnaXN0cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsMTIgKzEzMCwxMiBAQCB1aW50NjRf
dCBOZXR3b3JrQmxvYlJlZ2lzdHJ5OjpibG9iU2l6ZShOCiAgICAgcmV0dXJuIGJsb2JSZWdpc3Ry
eSgpLmJsb2JTaXplKHVybCk7CiB9CiAKLXZvaWQgTmV0d29ya0Jsb2JSZWdpc3RyeTo6d3JpdGVC
bG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBGdW5j
dGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIE5ldHdvcmtCbG9iUmVnaXN0cnk6OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8
U3RyaW5nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBibG9iUmVnaXN0cnkoKS53
cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhibG9iVVJMcywgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCi12b2lkIE5ldHdvcmtCbG9iUmVnaXN0cnk6OndyaXRlQmxvYlRvRmlsZVBh
dGgoY29uc3QgVVJMJiBibG9iVVJMLCBjb25zdCBTdHJpbmcmIHBhdGgsIEZ1bmN0aW9uPHZvaWQo
Ym9vbCBzdWNjZXNzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Jsb2JSZWdp
c3RyeTo6d3JpdGVCbG9iVG9GaWxlUGF0aChjb25zdCBVUkwmIGJsb2JVUkwsIGNvbnN0IFN0cmlu
ZyYgcGF0aCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2Nlc3MpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIGlmICghYmxvYlJlZ2lzdHJ5KCkuaXNCbG9iUmVnaXN0cnlJbXBs
KCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwpAQCAtMTQ3LDcgKzE0Nyw3
IEBAIHZvaWQgTmV0d29ya0Jsb2JSZWdpc3RyeTo6d3JpdGVCbG9iVG9GaWwKICAgICBmb3IgKGF1
dG8mIGZpbGUgOiBibG9iRmlsZXMpCiAgICAgICAgIGZpbGUtPnByZXBhcmVGb3JGaWxlQWNjZXNz
KCk7CiAKLSAgICBzdGF0aWNfY2FzdDxCbG9iUmVnaXN0cnlJbXBsJj4oYmxvYlJlZ2lzdHJ5KCkp
LndyaXRlQmxvYlRvRmlsZVBhdGgoYmxvYlVSTCwgcGF0aCwgW2Jsb2JGaWxlcyA9IFdURk1vdmUo
YmxvYkZpbGVzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKGJvb2wgc3VjY2VzcykgeworICAgIHN0YXRpY19jYXN0PEJsb2JSZWdpc3RyeUltcGwmPihi
bG9iUmVnaXN0cnkoKSkud3JpdGVCbG9iVG9GaWxlUGF0aChibG9iVVJMLCBwYXRoLCBbYmxvYkZp
bGVzID0gV1RGTW92ZShibG9iRmlsZXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXSAoYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKICAgICAgICAgZm9yIChh
dXRvJiBmaWxlIDogYmxvYkZpbGVzKQogICAgICAgICAgICAgZmlsZS0+cmV2b2tlRmlsZUFjY2Vz
cygpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZXNzKTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9i
UmVnaXN0cnkuaAkocmV2aXNpb24gMjM4NjMzKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuaAkod29ya2luZyBjb3B5KQpAQCAtNTMs
OCArNTMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyosIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCk7CiAgICAgdm9p
ZCB1bnJlZ2lzdGVyQmxvYlVSTChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyosIGNvbnN0
IFdlYkNvcmU6OlVSTCYpOwogICAgIHVpbnQ2NF90IGJsb2JTaXplKE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKiwgY29uc3QgV2ViQ29yZTo6VVJMJik7Ci0gICAgdm9pZCB3cml0ZUJsb2Jz
VG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIEZ1bmN0aW9u
PHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpOwotICAg
IHZvaWQgd3JpdGVCbG9iVG9GaWxlUGF0aChjb25zdCBXZWJDb3JlOjpVUkwmIGJsb2JVUkwsIGNv
bnN0IFN0cmluZyYgcGF0aCwgRnVuY3Rpb248dm9pZChib29sIHN1Y2Nlc3MpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKTsKKyAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3Ry
aW5nPiYmKT4mJik7CisgICAgdm9pZCB3cml0ZUJsb2JUb0ZpbGVQYXRoKGNvbnN0IFdlYkNvcmU6
OlVSTCYgYmxvYlVSTCwgY29uc3QgU3RyaW5nJiBwYXRoLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wgc3VjY2Vzcyk+JiYpOwogCiAgICAgdm9pZCBjb25uZWN0aW9uVG9XZWJQcm9jZXNzRGlk
Q2xvc2UoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqKTsKIApJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5oCShyZXZpc2lvbiAyMzg2MzMpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNv
cHkpCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IGJvb2wgc2VuZChUJiYgbWVzc2FnZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgT3B0aW9uU2V0
PElQQzo6U2VuZE9wdGlvbj4gc2VuZE9wdGlvbnMgPSB7IH0pOwogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGJvb2wgc2VuZFN5bmMoVCYmIG1lc3NhZ2UsIHR5cGVuYW1lIFQ6OlJlcGx5JiYsIHVp
bnQ2NF90IGRlc3RpbmF0aW9uSUQsIFNlY29uZHMgdGltZW91dCA9IDFfcywgT3B0aW9uU2V0PElQ
Qzo6U2VuZFN5bmNPcHRpb24+IHNlbmRTeW5jT3B0aW9ucyA9IHsgfSk7CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gQXJncz4gdm9pZCBzZW5kV2l0aEFzeW5jUmVwbHkoVCYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEFyZ3MuLi4pPiYmKTsKIAogICAgIElQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbigpIGNvbnN0CiAgICAgewpAQCAtMTMxLDQgKzEzMiwxNSBAQCBib29s
IENoaWxkUHJvY2Vzc1Byb3h5OjpzZW5kU3luYyhVJiYgbWVzCiAgICAgcmV0dXJuIGNvbm5lY3Rp
b24oKS0+c2VuZFN5bmMoc3RkOjpmb3J3YXJkPFU+KG1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5KSwg
ZGVzdGluYXRpb25JRCwgdGltZW91dCwgc2VuZFN5bmNPcHRpb25zKTsKIH0KIAordGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gQXJncz4KK3ZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6OnNl
bmRXaXRoQXN5bmNSZXBseShUJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChBcmdz
Li4uKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikgewor
ICAgICAgICBUOjpjYW5jZWxSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBs
eShzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
K30KKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCShyZXZp
c2lvbiAyMzg2MzMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzIsMTAgKzI3Miw2IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjoKICAgICBtX3N5bmNBbGxDb29raWVz
VG9rZW4gPSBudWxscHRyOwogICAgIG1fc3luY0FsbENvb2tpZXNDb3VudGVyID0gMDsKIAotICAg
IGZvciAoYXV0byYgY2FsbGJhY2sgOiBtX3dyaXRlQmxvYlRvRmlsZVBhdGhDYWxsYmFja01hcC52
YWx1ZXMoKSkKLSAgICAgICAgY2FsbGJhY2soZmFsc2UpOwotICAgIG1fd3JpdGVCbG9iVG9GaWxl
UGF0aENhbGxiYWNrTWFwLmNsZWFyKCk7Ci0KICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogbV9y
ZW1vdmVBbGxTdG9yYWdlQWNjZXNzQ2FsbGJhY2tNYXAudmFsdWVzKCkpCiAgICAgICAgIGNhbGxi
YWNrKCk7CiAgICAgbV9yZW1vdmVBbGxTdG9yYWdlQWNjZXNzQ2FsbGJhY2tNYXAuY2xlYXIoKTsK
QEAgLTU2NCwyOCArNTYwLDE2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nl
c3NEaWQKICAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlByb2Nlc3NEaWRS
ZXN1bWUoKSwgMCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6d3JpdGVCbG9iVG9G
aWxlUGF0aChjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXRoLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQordm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5Ojp3cml0ZUJsb2JUb0ZpbGVQYXRoKGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHBhdGgsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKSB7Ci0gICAgICAgIGNhbGxi
YWNrKGZhbHNlKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgc3RhdGljIHVpbnQ2NF90IHdyaXRlQmxvYlRvRmlsZVBhdGhD
YWxsYmFja0lkZW50aWZpZXJzID0gMDsKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gKyt3cml0
ZUJsb2JUb0ZpbGVQYXRoQ2FsbGJhY2tJZGVudGlmaWVyczsKLSAgICBtX3dyaXRlQmxvYlRvRmls
ZVBhdGhDYWxsYmFja01hcC5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOwotCiAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZUZvcldyaXRpbmc7CiAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKHBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJl
YWRXcml0ZSwgaGFuZGxlRm9yV3JpdGluZyk7Ci0gICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OldyaXRlQmxvYlRvRmlsZVBhdGgodXJsLCBwYXRoLCBoYW5kbGVGb3JXcml0aW5nLCBj
YWxsYmFja0lEKSwgMCk7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkV3JpdGVC
bG9iVG9GaWxlUGF0aChib29sIHN1Y2Nlc3MsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi17Ci0gICAg
aWYgKGF1dG8gaGFuZGxlciA9IG1fd3JpdGVCbG9iVG9GaWxlUGF0aENhbGxiYWNrTWFwLnRha2Uo
Y2FsbGJhY2tJRCkpCi0gICAgICAgIGhhbmRsZXIoc3VjY2Vzcyk7Ci0gICAgZWxzZQotICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpXcml0ZUJsb2JUb0ZpbGVQYXRoKHVybCwgcGF0aCwgaGFuZGxlRm9y
V3JpdGluZyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQpJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgJKHJl
dmlzaW9uIDIzODYzMykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpT
ZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAjZW5kaWYKIAotICAgIHZv
aWQgd3JpdGVCbG9iVG9GaWxlUGF0aChjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcm
IHBhdGgsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOworICAgIHZv
aWQgd3JpdGVCbG9iVG9GaWxlUGF0aChjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcm
IHBhdGgsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCiAgICAgdm9pZCBwcm9j
ZXNzUmVhZHlUb1N1c3BlbmQoKTsKICAgICAKQEAgLTEzOSw3ICsxMzksNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBX
ZWJzaXRlRGF0YSYpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2Fs
bGJhY2tJRCk7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWludDY0
X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkaWRXcml0ZUJsb2JUb0ZpbGVQYXRoKGJvb2wgc3Vj
Y2VzcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2Fn
ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKICAgICB2b2lkIGxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0LCBXZWJDb3JlOjpT
aG91bGRTYW1wbGUpOwogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWlu
dDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBXZWJDb3Jl
OjpTaG91bGRTYW1wbGUpOwpAQCAtMTkxLDcgKzE5MCw2IEBAIHByaXZhdGU6CiAgICAgCiAgICAg
dW5zaWduZWQgbV9zeW5jQWxsQ29va2llc0NvdW50ZXIgeyAwIH07CiAKLSAgICBIYXNoTWFwPHVp
bnQ2NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2Vzcyk+PiBtX3dyaXRlQmxv
YlRvRmlsZVBhdGhDYWxsYmFja01hcDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+PiBtX3VwZGF0ZUJsb2NrQ29va2llc0NhbGxiYWNrTWFwOwogICAgIEhh
c2hNYXA8dWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCB3YXNHcmFudGVkKT4+
IG1fc3RvcmFnZUFjY2Vzc1Jlc3BvbnNlQ2FsbGJhY2tNYXA7CiAgICAgSGFzaE1hcDx1aW50NjRf
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4gbV9yZW1vdmVBbGxTdG9yYWdlQWNjZXNzQ2Fs
bGJhY2tNYXA7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAy
Mzg2MzMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDYgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZQogCiAgICAgRGlkU3luY0FsbENvb2tp
ZXMoKQogCi0gICAgRGlkV3JpdGVCbG9iVG9GaWxlUGF0aChib29sIHN1Y2Nlc3MsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpCi0KICAgICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogICAgIFNldElzSG9s
ZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94
eS5jcHAJKHJldmlzaW9uIDIzODYzMykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxl
QVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsNyBA
QCB1bnNpZ25lZCBsb25nIGxvbmcgQmxvYlJlZ2lzdHJ5UHJveHk6OmJsCiAgICAgcmV0dXJuIHJl
c3VsdFNpemU7CiB9CiAKLXZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OndyaXRlQmxvYnNUb1RlbXBv
cmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgRnVuY3Rpb248dm9pZCAo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVQYXRocyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIEJsb2JSZWdpc3RyeVByb3h5Ojp3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0
cmluZz4mJiBmaWxlUGF0aHMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLndyaXRlQmxv
YnNUb1RlbXBvcmFyeUZpbGVzKGJsb2JVUkxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Js
b2JSZWdpc3RyeVByb3h5LmgJKHJldmlzaW9uIDIzODYzMykKKysrIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4
LDcgKzM4LDcgQEAgcHVibGljOgogICAgIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoY29uc3QgV2Vi
Q29yZTo6VVJMJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShj
b25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXZWJDb3JlOjpVUkwmIHNyY1VSTCwgbG9uZyBsb25n
IHN0YXJ0LCBsb25nIGxvbmcgZW5kKSBvdmVycmlkZTsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcg
YmxvYlNpemUoY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3cml0ZUJs
b2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIEZ1bmN0
aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlUGF0aHMpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKSBvdmVycmlkZTsKKyAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0
b3I8U3RyaW5nPiYmIGZpbGVQYXRocyk+JiYpIG92ZXJyaWRlOwogfTsKIAogfQpJbmRleDogU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyMzg2MzMpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjQsMTMgKzE2NCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
OjpkaWRDbG9zZSgKICAgICBSZWY8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiBwcm90ZWN0b3Io
KnRoaXMpOwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbkNsb3NlZCh0aGlzKTsKIAotICAgIFZlY3RvcjxTdHJpbmc+IGR1bW15RmlsZW5hbWVzOwot
ICAgIGZvciAoYXV0byYgaGFuZGxlciA6IG1fd3JpdGVCbG9iVG9GaWxlQ29tcGxldGlvbkhhbmRs
ZXJzLnZhbHVlcygpKQotICAgICAgICBoYW5kbGVyKGR1bW15RmlsZW5hbWVzKTsKLQotICAgIG1f
d3JpdGVCbG9iVG9GaWxlQ29tcGxldGlvbkhhbmRsZXJzLmNsZWFyKCk7Ci0KLQogI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQogICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1fd2ViSURC
Q29ubmVjdGlvbnNCeUlkZW50aWZpZXIudmFsdWVzKCkpCiAgICAgICAgIGNvbm5lY3Rpb24tPmNv
bm5lY3Rpb25Ub1NlcnZlckxvc3QoKTsKQEAgLTE5MiwyMSArMTg1LDkgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdgogewogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGJsb2JVUkxzLCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZVBh
dGhzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBzdGF0aWMgdWludDY0X3Qgd3JpdGVC
bG9iVG9GaWxlSWRlbnRpZmllcjsKLSAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsr
d3JpdGVCbG9iVG9GaWxlSWRlbnRpZmllcjsKLQotICAgIG1fd3JpdGVCbG9iVG9GaWxlQ29tcGxl
dGlvbkhhbmRsZXJzLnNldChyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwotCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpXcml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhibG9iVVJMcywgcmVx
dWVzdElkZW50aWZpZXIpLCAwKTsKLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVy
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKQordm9pZCBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGZpbGVQ
YXRocyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgYXV0byBoYW5kbGVyID0gbV93cml0
ZUJsb2JUb0ZpbGVDb21wbGV0aW9uSGFuZGxlcnMudGFrZShyZXF1ZXN0SWRlbnRpZmllcik7Ci0g
ICAgaWYgKGhhbmRsZXIpCi0gICAgICAgIGhhbmRsZXIoZmlsZW5hbWVzKTsKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6V3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoYmxvYlVSTHMpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpk
aWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFJlc291cmNlRXJy
b3ImJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQpJbmRleDogU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmgJKHJldmlzaW9uIDIzODYzMykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NCw3ICs2NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKLSAg
ICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBi
bG9iVVJMcywgRnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVQYXRocyk+
JiYgY29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgd3JpdGVCbG9ic1RvVGVtcG9yYXJ5Rmls
ZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxTdHJpbmc+JiYgZmlsZVBhdGhzKT4mJik7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKICAgICBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIqIGV4aXN0aW5nSURCQ29ubmVj
dGlvblRvU2VydmVyRm9ySWRlbnRpZmllcih1aW50NjRfdCBpZGVudGlmaWVyKSBjb25zdCB7IHJl
dHVybiBtX3dlYklEQkNvbm5lY3Rpb25zQnlJZGVudGlmaWVyLmdldChpZGVudGlmaWVyKTsgfTsK
QEAgLTg1LDcgKzg1LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVj
dGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKIAotICAgIHZvaWQgZGlk
V3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpOwogICAgIHZvaWQgZGlkRmluaXNoUGluZ0xv
YWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYs
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CiAgICAgdm9pZCBkaWRGaW5pc2hQcmVjb25u
ZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiYpOwogICAgIHZvaWQgc2V0T25MaW5lU3RhdGUoYm9vbCBpc09uTGluZSk7CkBAIC05
OCw4ICs5Nyw2IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUgd2Vi
IHByb2Nlc3MgdG8gdGhlIG5ldHdvcmsgcHJvY2Vzcy4KICAgICBSZWY8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBGdW5jdGlvbjx2b2lkIChj
b25zdCBWZWN0b3I8U3RyaW5nPiYpPj4gbV93cml0ZUJsb2JUb0ZpbGVDb21wbGV0aW9uSGFuZGxl
cnM7Ci0KICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBIYXNoTWFwPFBBTDo6U2Vz
c2lvbklELCBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPj4gbV93ZWJJREJDb25uZWN0
aW9uc0J5U2Vzc2lvbjsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViSURCQ29ubmVj
dGlvblRvU2VydmVyPj4gbV93ZWJJREJDb25uZWN0aW9uc0J5SWRlbnRpZmllcjsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4JKHJldmlzaW9uIDIzODYzMykK
KysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNiBAQCBtZXNzYWdl
cyAtPiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnCiAgICAgRGlkQ2FjaGVSZXNvdXJjZShX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJj
ZTo6SGFuZGxlIHJlc291cmNlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAjZW5kaWYKIAot
ICAgIERpZFdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyLCBWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXMpCiAgICAgRGlkRmluaXNoUGluZ0xvYWQodWlu
dDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogICAgIERpZEZpbmlzaFByZWNvbm5l
Y3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgZXJyb3IpCiAgICAgU2V0T25MaW5lU3RhdGUoYm9vbCBpc09uTGluZSk7Cg==
</data>
<flag name="review"
          id="373005"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>