<?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>193479</bug_id>
          
          <creation_ts>2019-01-15 19:00:04 -0800</creation_ts>
          <short_desc>[WHLSL] Add the function stage checker</short_desc>
          <delta_ts>2019-01-16 18:02: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>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="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jonlee</cc>
    
    <cc>justin_fan</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1494959</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-01-15 19:00:04 -0800</bug_when>
    <thetext>[WHLSL] Add the function stage checker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494960</commentid>
    <comment_count>1</comment_count>
      <attachid>359241</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-01-15 19:01:04 -0800</bug_when>
    <thetext>Created attachment 359241
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495118</commentid>
    <comment_count>2</comment_count>
      <attachid>359241</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-01-16 10:54:57 -0800</bug_when>
    <thetext>Comment on attachment 359241
Patch

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

LGTM, apart from the one question I added.

&gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLFunctionStageChecker.cpp:62
&gt; +        Visitor::visit(callExpression);

Does this recurse into the body of the callee, or do we need something like callExpression.function() here too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495340</commentid>
    <comment_count>3</comment_count>
      <attachid>359241</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-01-16 17:05:18 -0800</bug_when>
    <thetext>Comment on attachment 359241
Patch

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

&gt;&gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLFunctionStageChecker.cpp:62
&gt;&gt; +        Visitor::visit(callExpression);
&gt; 
&gt; Does this recurse into the body of the callee, or do we need something like callExpression.function() here too?

Good catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495341</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-01-16 17:08:32 -0800</bug_when>
    <thetext>Committed r240098: &lt;https://trac.webkit.org/changeset/240098&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495342</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-16 17:09:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/47335529&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495359</commentid>
    <comment_count>6</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-01-16 18:02:58 -0800</bug_when>
    <thetext>You probably want some kind of memoization per function to avoid an exponential worst case complexity. The problem as I see it is that if you recurse into the callee each time, if foo1 calls foo2 twice and foo2 calls foo3 twice, etc.., by foo10 you are running every check 1024 times.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359241</attachid>
            <date>2019-01-15 19:01:04 -0800</date>
            <delta_ts>2019-01-16 12:08:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193479-20190115190103.patch</filename>
            <type>text/plain</type>
            <size>25898</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTAwZDMxNDVjNzA3ODk3
YjY5MmY1ODBiZTMyNjlhYjZkMTg5ZWQ0OC4uMmM4MGQ2YzBjODc3NmY4YTgxZGZhNmQzZTYyMjI2
ZThkYzRkOTk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTAxLTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dITFNMXSBB
ZGQgdGhlIGZ1bmN0aW9uIHN0YWdlIGNoZWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYSB0cmFuc2xhdGlvbiBvZiBodHRwczovL2dp
dGh1Yi5jb20vZ3B1d2ViL1dITFNML2Jsb2IvbWFzdGVyL1NvdXJjZS9DaGVja05hdGl2ZUZ1bmNT
dGFnZXMubWpzIGludG8gQysrLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIGl0IGlz
bid0IGhvb2tlZCB1cCB5ZXQuIE5vdCBlbm91Z2ggb2YgdGhlIGNvbXBpbGVyIGV4aXN0cyB0byBo
YXZlIGFueSBtZWFuaW5nZnVsIHNvcnQKKyAgICAgICAgb2YgdGVzdC4gV2hlbiBlbm91Z2ggb2Yg
dGhlIGNvbXBpbGVyIGlzIHByZXNlbnQsIEknbGwgcG9ydCB0aGUgcmVmZXJlbmNlIGltcGxlbWVu
dGF0aW9uJ3MgdGVzdCBzdWl0ZS4KKworICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FT
VC9XSExTTENhbGxFeHByZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6QVNUOjpD
YWxsRXhwcmVzc2lvbjo6ZnVuY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNM
L1dITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldITFNMOjpGdW5jdGlvblN0YWdlQ2hlY2tlcjo6RnVuY3Rpb25TdGFnZUNoZWNrZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6V0hMU0w6OmNoZWNrRnVuY3Rpb25TdGFnZXMpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuaDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xJbnRyaW5zaWNzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldITFNMOjpJbnRyaW5zaWNzOjphZGQpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZ3B1L1dITFNML1dITFNMSW50cmluc2ljcy5oOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6
OkludHJpbnNpY3M6OmRkeCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6SW50cmlu
c2ljczo6ZGR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpJbnRyaW5zaWNzOjph
bGxNZW1vcnlCYXJyaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpJbnRyaW5z
aWNzOjpkZXZpY2VNZW1vcnlCYXJyaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpJbnRyaW5zaWNzOjpncm91cE1lbW9yeUJhcnJpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V0hMU0w6OkludHJpbnNpY3M6OldURl9BUlJBWV9MRU5HVEgpOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAxOS0wMS0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRoZSBsb29wIGNoZWNrZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTENhbGxFeHByZXNzaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xDYWxsRXhw
cmVzc2lvbi5oCmluZGV4IDA0NDZhZGE4MjVhNDRjMzhjOTI1ZGMzYTY3MThlODViY2M5ZjVmYTgu
Ljc0YjllMDk3NmEwZmFjY2NmMjFmOWVhOTlmZTQ0MjQ0ZjE0ZDQ4ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTENhbGxFeHByZXNzaW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMQ2Fs
bEV4cHJlc3Npb24uaApAQCAtODEsNiArODEsOCBAQCBwdWJsaWM6CiAgICAgICAgIG1fZnVuY3Rp
b24gPSAmZnVuY3Rpb25EZWNsYXJhdGlvbjsKICAgICB9CiAKKyAgICBGdW5jdGlvbkRlY2xhcmF0
aW9uKiBmdW5jdGlvbigpIHsgcmV0dXJuIG1fZnVuY3Rpb247IH0KKwogcHJpdmF0ZToKICAgICBT
dHJpbmcgbV9uYW1lOwogICAgIFZlY3RvcjxVbmlxdWVSZWY8RXhwcmVzc2lvbj4+IG1fYXJndW1l
bnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hM
U0xGdW5jdGlvblN0YWdlQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XSExTTC9XSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTkyODdj
ODAxOTVkODMzYjZmNTFlYWFkYjRkNjBkZTBmNzcxY2YxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tl
ci5jcHAKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmgiCisKKyNpZiBFTkFCTEUoV0VC
R1BVKQorCisjaW5jbHVkZSAiV0hMU0xDYWxsRXhwcmVzc2lvbi5oIgorI2luY2x1ZGUgIldITFNM
RW50cnlQb2ludFR5cGUuaCIKKyNpbmNsdWRlICJXSExTTEludHJpbnNpY3MuaCIKKyNpbmNsdWRl
ICJXSExTTFByb2dyYW0uaCIKKyNpbmNsdWRlICJXSExTTFZpc2l0b3IuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCituYW1lc3BhY2UgV0hMU0wgeworCitjbGFzcyBGdW5jdGlvblN0YWdlQ2hl
Y2tlciA6IHB1YmxpYyBWaXNpdG9yIHsKK3B1YmxpYzoKKyAgICBGdW5jdGlvblN0YWdlQ2hlY2tl
cihBU1Q6OkVudHJ5UG9pbnRUeXBlIGVudHJ5UG9pbnRUeXBlLCBjb25zdCBJbnRyaW5zaWNzJiBp
bnRyaW5zaWNzKQorICAgICAgICA6IG1fZW50cnlQb2ludFR5cGUoZW50cnlQb2ludFR5cGUpCisg
ICAgICAgICwgbV9pbnRyaW5zaWNzKGludHJpbnNpY3MpCisgICAgeworICAgIH0KKworcHVibGlj
OgorICAgIHZvaWQgdmlzaXQoQVNUOjpDYWxsRXhwcmVzc2lvbiYgY2FsbEV4cHJlc3Npb24pIG92
ZXJyaWRlCisgICAgeworICAgICAgICBBU1NFUlQoY2FsbEV4cHJlc3Npb24uZnVuY3Rpb24oKSk7
CisgICAgICAgIGlmICgoY2FsbEV4cHJlc3Npb24uZnVuY3Rpb24oKSA9PSAmbV9pbnRyaW5zaWNz
LmRkeCgpIHx8IGNhbGxFeHByZXNzaW9uLmZ1bmN0aW9uKCkgPT0gJm1faW50cmluc2ljcy5kZHko
KSkgJiYgbV9lbnRyeVBvaW50VHlwZSAhPSBBU1Q6OkVudHJ5UG9pbnRUeXBlOjpGcmFnbWVudCkg
eworICAgICAgICAgICAgc2V0RXJyb3IoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBpZiAoKGNhbGxFeHByZXNzaW9uLmZ1bmN0aW9uKCkgPT0gJm1faW50cmluc2lj
cy5hbGxNZW1vcnlCYXJyaWVyKCkgfHwgY2FsbEV4cHJlc3Npb24uZnVuY3Rpb24oKSA9PSAmbV9p
bnRyaW5zaWNzLmRldmljZU1lbW9yeUJhcnJpZXIoKSB8fCBjYWxsRXhwcmVzc2lvbi5mdW5jdGlv
bigpID09ICZtX2ludHJpbnNpY3MuZ3JvdXBNZW1vcnlCYXJyaWVyKCkpCisgICAgICAgICAgICAm
JiBtX2VudHJ5UG9pbnRUeXBlICE9IEFTVDo6RW50cnlQb2ludFR5cGU6OkNvbXB1dGUpIHsKKyAg
ICAgICAgICAgIHNldEVycm9yKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgVmlzaXRvcjo6dmlzaXQoY2FsbEV4cHJlc3Npb24pOworICAgIH0KKworICAgIEFTVDo6
RW50cnlQb2ludFR5cGUgbV9lbnRyeVBvaW50VHlwZTsKKyAgICBjb25zdCBJbnRyaW5zaWNzJiBt
X2ludHJpbnNpY3M7Cit9OworCitib29sIGNoZWNrRnVuY3Rpb25TdGFnZXMoUHJvZ3JhbSYgcHJv
Z3JhbSkKK3sKKyAgICBmb3IgKGF1dG8mIGZ1bmN0aW9uRGVmaW5pdGlvbiA6IHByb2dyYW0uZnVu
Y3Rpb25EZWZpbml0aW9ucygpKSB7CisgICAgICAgIGlmICghZnVuY3Rpb25EZWZpbml0aW9uLT5l
bnRyeVBvaW50VHlwZSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIEZ1bmN0aW9u
U3RhZ2VDaGVja2VyIGZ1bmN0aW9uU3RhZ2VDaGVja2VyKCpmdW5jdGlvbkRlZmluaXRpb24tPmVu
dHJ5UG9pbnRUeXBlKCksIHByb2dyYW0uaW50cmluc2ljcygpKTsKKyAgICAgICAgZnVuY3Rpb25T
dGFnZUNoZWNrZXIuVmlzaXRvcjo6dmlzaXQoZnVuY3Rpb25EZWZpbml0aW9uKTsKKyAgICAgICAg
aWYgKGZ1bmN0aW9uU3RhZ2VDaGVja2VyLmVycm9yKCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit9CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTEZ1bmN0aW9u
U3RhZ2VDaGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExT
TEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE5NTZiYjU3NjA1NzA1NmIzN2Iw
MzdlNzVlNjgwYjMxMjcyZTUyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuaApAQCAtMCwwICsx
LDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR1BVKQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBXSExTTCB7CisKK2NsYXNzIFByb2dy
YW07CisKK2Jvb2wgY2hlY2tGdW5jdGlvblN0YWdlcyhQcm9ncmFtJik7CisKK30KKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dI
TFNMSW50cmluc2ljcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9X
SExTTEludHJpbnNpY3MuY3BwCmluZGV4IDQ3Njg3ODUwYjQ3ZjVlZTRlMjY0OWY0OWZmNjgwNjBm
ZDY5MjA2OTEuLmMyMjNmYmMwZTQ2NzUwNmE3MjJiYmM3MTdjMDYzOTQ1ZmUzZDRhMGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMSW50cmluc2lj
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xJbnRy
aW5zaWNzLmNwcApAQCAtNDYsOSArNDYsMTggQEAgSW50cmluc2ljczo6SW50cmluc2ljcygpCiB7
CiB9CiAKLXZvaWQgSW50cmluc2ljczo6YWRkKEFTVDo6TmF0aXZlRnVuY3Rpb25EZWNsYXJhdGlv
biYpCit2b2lkIEludHJpbnNpY3M6OmFkZChBU1Q6Ok5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24m
IG5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24pCiB7Ci0gICAgLy8gRklYTUU6IFBvcHVsYXRlIHRo
aXMuCisgICAgaWYgKG5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24ubmFtZSgpID09ICJkZHgiKQor
ICAgICAgICBtX2RkeCA9ICZuYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uOworICAgIGVsc2UgaWYg
KG5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24ubmFtZSgpID09ICJkZHkiKQorICAgICAgICBtX2Rk
eSA9ICZuYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uOworICAgIGVsc2UgaWYgKG5hdGl2ZUZ1bmN0
aW9uRGVjbGFyYXRpb24ubmFtZSgpID09ICJBbGxNZW1vcnlCYXJyaWVyV2l0aEdyb3VwU3luYyIp
CisgICAgICAgIG1fYWxsTWVtb3J5QmFycmllciA9ICZuYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9u
OworICAgIGVsc2UgaWYgKG5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24ubmFtZSgpID09ICJEZXZp
Y2VNZW1vcnlCYXJyaWVyV2l0aEdyb3VwU3luYyIpCisgICAgICAgIG1fZGV2aWNlTWVtb3J5QmFy
cmllciA9ICZuYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uOworICAgIGVsc2UgaWYgKG5hdGl2ZUZ1
bmN0aW9uRGVjbGFyYXRpb24ubmFtZSgpID09ICJHcm91cE1lbW9yeUJhcnJpZXJXaXRoR3JvdXBT
eW5jIikKKyAgICAgICAgbV9ncm91cE1lbW9yeUJhcnJpZXIgPSAmbmF0aXZlRnVuY3Rpb25EZWNs
YXJhdGlvbjsKIH0KIAogYm9vbCBJbnRyaW5zaWNzOjphZGRQcmltaXRpdmUoQVNUOjpOYXRpdmVU
eXBlRGVjbGFyYXRpb24mIG5hdGl2ZVR5cGVEZWNsYXJhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMSW50cmluc2ljcy5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xJbnRyaW5zaWNzLmgKaW5kZXggZWIy
YzA0NTU2YjAwZjM4OTBhYmZmMTlmYjYzNjM2MWEzODkwMTE0MC4uNmU4ZWI1NWU5ZDJmM2JhNWQ1
Yzk4NTAxOTAwMTFmMzNiYTEwNWE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV0hMU0wvV0hMU0xJbnRyaW5zaWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xJbnRyaW5zaWNzLmgKQEAgLTk0LDYgKzk0LDM2IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuICptX3ZlY3RvckZsb2F0WzJdOwogICAgIH0KIAorICAgIEFT
VDo6TmF0aXZlRnVuY3Rpb25EZWNsYXJhdGlvbiYgZGR4KCkgY29uc3QKKyAgICB7CisgICAgICAg
IEFTU0VSVChtX2RkeCk7CisgICAgICAgIHJldHVybiAqbV9kZHg7CisgICAgfQorCisgICAgQVNU
OjpOYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uJiBkZHkoKSBjb25zdAorICAgIHsKKyAgICAgICAg
QVNTRVJUKG1fZGR5KTsKKyAgICAgICAgcmV0dXJuICptX2RkeTsKKyAgICB9CisKKyAgICBBU1Q6
Ok5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb24mIGFsbE1lbW9yeUJhcnJpZXIoKSBjb25zdAorICAg
IHsKKyAgICAgICAgQVNTRVJUKG1fYWxsTWVtb3J5QmFycmllcik7CisgICAgICAgIHJldHVybiAq
bV9hbGxNZW1vcnlCYXJyaWVyOworICAgIH0KKworICAgIEFTVDo6TmF0aXZlRnVuY3Rpb25EZWNs
YXJhdGlvbiYgZGV2aWNlTWVtb3J5QmFycmllcigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NF
UlQobV9kZXZpY2VNZW1vcnlCYXJyaWVyKTsKKyAgICAgICAgcmV0dXJuICptX2RldmljZU1lbW9y
eUJhcnJpZXI7CisgICAgfQorCisgICAgQVNUOjpOYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uJiBn
cm91cE1lbW9yeUJhcnJpZXIoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fZ3JvdXBN
ZW1vcnlCYXJyaWVyKTsKKyAgICAgICAgcmV0dXJuICptX2dyb3VwTWVtb3J5QmFycmllcjsKKyAg
ICB9CisKIHByaXZhdGU6CiAgICAgYm9vbCBhZGRQcmltaXRpdmUoQVNUOjpOYXRpdmVUeXBlRGVj
bGFyYXRpb24mKTsKICAgICBib29sIGFkZFZlY3RvcihBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlv
biYpOwpAQCAtMTA0LDQ2ICsxMzQsNTIgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hTZXQ8Y29uc3Qg
QVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qPiBtX3RleHR1cmVTZXQ7CiAKLSAgICBBU1Q6Ok5h
dGl2ZVR5cGVEZWNsYXJhdGlvbiogbV92b2lkVHlwZTsKLSAgICBBU1Q6Ok5hdGl2ZVR5cGVEZWNs
YXJhdGlvbiogbV9ib29sVHlwZTsKLSAgICBBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbiogbV91
Y2hhclR5cGU7Ci0gICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fdXNob3J0VHlwZTsK
LSAgICBBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbiogbV91aW50VHlwZTsKLSAgICBBU1Q6Ok5h
dGl2ZVR5cGVEZWNsYXJhdGlvbiogbV9jaGFyVHlwZTsKLSAgICBBU1Q6Ok5hdGl2ZVR5cGVEZWNs
YXJhdGlvbiogbV9zaG9ydFR5cGU7Ci0gICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1f
aW50VHlwZTsKLSAgICBBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbiogbV9oYWxmVHlwZTsKLSAg
ICBBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbiogbV9mbG9hdFR5cGU7Ci0gICAgQVNUOjpOYXRp
dmVUeXBlRGVjbGFyYXRpb24qIG1fYXRvbWljSW50VHlwZTsKLSAgICBBU1Q6Ok5hdGl2ZVR5cGVE
ZWNsYXJhdGlvbiogbV9hdG9taWNVaW50VHlwZTsKLSAgICBBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJh
dGlvbiogbV9zYW1wbGVyVHlwZTsKLQotICAgIEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uKiBt
X3ZlY3RvckJvb2xbM107Ci0gICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fdmVjdG9y
VWNoYXJbM107Ci0gICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fdmVjdG9yVXNob3J0
WzNdOwotICAgIEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uKiBtX3ZlY3RvclVpbnRbM107Ci0g
ICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fdmVjdG9yQ2hhclszXTsKLSAgICBBU1Q6
Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbiogbV92ZWN0b3JTaG9ydFszXTsKLSAgICBBU1Q6Ok5hdGl2
ZVR5cGVEZWNsYXJhdGlvbiogbV92ZWN0b3JJbnRbM107Ci0gICAgQVNUOjpOYXRpdmVUeXBlRGVj
bGFyYXRpb24qIG1fdmVjdG9ySGFsZlszXTsKLSAgICBBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlv
biogbV92ZWN0b3JGbG9hdFszXTsKLQotICAgIEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uKiBt
X21hdHJpeEhhbGZbM11bM107Ci0gICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fbWF0
cml4RmxvYXRbM11bM107CisgICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fdm9pZFR5
cGUgeyBudWxscHRyIH07CisgICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fYm9vbFR5
cGUgeyBudWxscHRyIH07CisgICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fdWNoYXJU
eXBlIHsgbnVsbHB0ciB9OworICAgIEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uKiBtX3VzaG9y
dFR5cGUgeyBudWxscHRyIH07CisgICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fdWlu
dFR5cGUgeyBudWxscHRyIH07CisgICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fY2hh
clR5cGUgeyBudWxscHRyIH07CisgICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fc2hv
cnRUeXBlIHsgbnVsbHB0ciB9OworICAgIEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uKiBtX2lu
dFR5cGUgeyBudWxscHRyIH07CisgICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1faGFs
ZlR5cGUgeyBudWxscHRyIH07CisgICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fZmxv
YXRUeXBlIHsgbnVsbHB0ciB9OworICAgIEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uKiBtX2F0
b21pY0ludFR5cGUgeyBudWxscHRyIH07CisgICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24q
IG1fYXRvbWljVWludFR5cGUgeyBudWxscHRyIH07CisgICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFy
YXRpb24qIG1fc2FtcGxlclR5cGUgeyBudWxscHRyIH07CisKKyAgICBBU1Q6Ok5hdGl2ZVR5cGVE
ZWNsYXJhdGlvbiogbV92ZWN0b3JCb29sWzNdIHsgMCB9OworICAgIEFTVDo6TmF0aXZlVHlwZURl
Y2xhcmF0aW9uKiBtX3ZlY3RvclVjaGFyWzNdIHsgMCB9OworICAgIEFTVDo6TmF0aXZlVHlwZURl
Y2xhcmF0aW9uKiBtX3ZlY3RvclVzaG9ydFszXSB7IDAgfTsKKyAgICBBU1Q6Ok5hdGl2ZVR5cGVE
ZWNsYXJhdGlvbiogbV92ZWN0b3JVaW50WzNdIHsgMCB9OworICAgIEFTVDo6TmF0aXZlVHlwZURl
Y2xhcmF0aW9uKiBtX3ZlY3RvckNoYXJbM10geyAwIH07CisgICAgQVNUOjpOYXRpdmVUeXBlRGVj
bGFyYXRpb24qIG1fdmVjdG9yU2hvcnRbM10geyAwIH07CisgICAgQVNUOjpOYXRpdmVUeXBlRGVj
bGFyYXRpb24qIG1fdmVjdG9ySW50WzNdIHsgMCB9OworICAgIEFTVDo6TmF0aXZlVHlwZURlY2xh
cmF0aW9uKiBtX3ZlY3RvckhhbGZbM10geyAwIH07CisgICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFy
YXRpb24qIG1fdmVjdG9yRmxvYXRbM10geyAwIH07CisKKyAgICBBU1Q6Ok5hdGl2ZVR5cGVEZWNs
YXJhdGlvbiogbV9tYXRyaXhIYWxmWzNdWzNdIHt7IDAgfX07CisgICAgQVNUOjpOYXRpdmVUeXBl
RGVjbGFyYXRpb24qIG1fbWF0cml4RmxvYXRbM11bM10ge3sgMCB9fTsKIAogICAgIHN0YXRpYyBj
b25zdGV4cHIgY29uc3QgY2hhciogbV90ZXh0dXJlVHlwZU5hbWVzW10gPSB7ICJUZXh0dXJlMUQi
LCAiUldUZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJyYXkiLCAiUldUZXh0dXJlMURBcnJheSIsICJU
ZXh0dXJlMkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4dHVyZTJEQXJyYXkiLCAiUldUZXh0dXJlMkRB
cnJheSIsICJUZXh0dXJlM0QiLCAiUldUZXh0dXJlM0QiLCAiVGV4dHVyZUN1YmUiIH07CiAKICAg
ICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIG1fdGV4dHVyZUlubmVyVHlwZU5hbWVzW10g
PSB7ICJ1Y2hhciIsICJ1c2hvcnQiLCAgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAi
aGFsZiIsICJmbG9hdCIgfTsKIAotICAgIEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uKiBtX2Z1
bGxUZXh0dXJlc1tXVEZfQVJSQVlfTEVOR1RIKG1fdGV4dHVyZVR5cGVOYW1lcyldW1dURl9BUlJB
WV9MRU5HVEgobV90ZXh0dXJlSW5uZXJUeXBlTmFtZXMpXVs0XTsKKyAgICBBU1Q6Ok5hdGl2ZVR5
cGVEZWNsYXJhdGlvbiogbV9mdWxsVGV4dHVyZXNbV1RGX0FSUkFZX0xFTkdUSChtX3RleHR1cmVU
eXBlTmFtZXMpXVtXVEZfQVJSQVlfTEVOR1RIKG1fdGV4dHVyZUlubmVyVHlwZU5hbWVzKV1bNF0g
e3t7IDAgfX19OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBtX2RlcHRoVGV4
dHVyZUlubmVyVHlwZXNbXSA9ICB7ICJoYWxmIiwgImZsb2F0IiB9OwogCi0gICAgQVNUOjpOYXRp
dmVUeXBlRGVjbGFyYXRpb24qIG1fdGV4dHVyZURlcHRoMkRbV1RGX0FSUkFZX0xFTkdUSChtX2Rl
cHRoVGV4dHVyZUlubmVyVHlwZXMpXTsKLSAgICBBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbiog
bV9yd1RleHR1cmVEZXB0aDJEW1dURl9BUlJBWV9MRU5HVEgobV9kZXB0aFRleHR1cmVJbm5lclR5
cGVzKV07Ci0gICAgQVNUOjpOYXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fdGV4dHVyZURlcHRoMkRB
cnJheVtXVEZfQVJSQVlfTEVOR1RIKG1fZGVwdGhUZXh0dXJlSW5uZXJUeXBlcyldOwotICAgIEFT
VDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uKiBtX3J3VGV4dHVyZURlcHRoMkRBcnJheVtXVEZfQVJS
QVlfTEVOR1RIKG1fZGVwdGhUZXh0dXJlSW5uZXJUeXBlcyldOwotICAgIEFTVDo6TmF0aXZlVHlw
ZURlY2xhcmF0aW9uKiBtX3RleHR1cmVEZXB0aEN1YmVbV1RGX0FSUkFZX0xFTkdUSChtX2RlcHRo
VGV4dHVyZUlubmVyVHlwZXMpXTsKKyAgICBBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbiogbV90
ZXh0dXJlRGVwdGgyRFtXVEZfQVJSQVlfTEVOR1RIKG1fZGVwdGhUZXh0dXJlSW5uZXJUeXBlcyld
IHsgMCB9OworICAgIEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uKiBtX3J3VGV4dHVyZURlcHRo
MkRbV1RGX0FSUkFZX0xFTkdUSChtX2RlcHRoVGV4dHVyZUlubmVyVHlwZXMpXSB7IDAgfTsKKyAg
ICBBU1Q6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbiogbV90ZXh0dXJlRGVwdGgyREFycmF5W1dURl9B
UlJBWV9MRU5HVEgobV9kZXB0aFRleHR1cmVJbm5lclR5cGVzKV0geyAwIH07CisgICAgQVNUOjpO
YXRpdmVUeXBlRGVjbGFyYXRpb24qIG1fcndUZXh0dXJlRGVwdGgyREFycmF5W1dURl9BUlJBWV9M
RU5HVEgobV9kZXB0aFRleHR1cmVJbm5lclR5cGVzKV0geyAwIH07CisgICAgQVNUOjpOYXRpdmVU
eXBlRGVjbGFyYXRpb24qIG1fdGV4dHVyZURlcHRoQ3ViZVtXVEZfQVJSQVlfTEVOR1RIKG1fZGVw
dGhUZXh0dXJlSW5uZXJUeXBlcyldIHsgMCB9OworCisgICAgQVNUOjpOYXRpdmVGdW5jdGlvbkRl
Y2xhcmF0aW9uKiBtX2RkeCB7IG51bGxwdHIgfTsKKyAgICBBU1Q6Ok5hdGl2ZUZ1bmN0aW9uRGVj
bGFyYXRpb24qIG1fZGR5IHsgbnVsbHB0ciB9OworICAgIEFTVDo6TmF0aXZlRnVuY3Rpb25EZWNs
YXJhdGlvbiogbV9hbGxNZW1vcnlCYXJyaWVyIHsgbnVsbHB0ciB9OworICAgIEFTVDo6TmF0aXZl
RnVuY3Rpb25EZWNsYXJhdGlvbiogbV9kZXZpY2VNZW1vcnlCYXJyaWVyIHsgbnVsbHB0ciB9Owor
ICAgIEFTVDo6TmF0aXZlRnVuY3Rpb25EZWNsYXJhdGlvbiogbV9ncm91cE1lbW9yeUJhcnJpZXIg
eyBudWxscHRyIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDQ0NmE4MDZhODc4YTUxYWI5
ODdiYjdkMWMzNzMyOGNkOGVlOTdjMTQuLmIzNjUxMjM2OWQwM2ZkNTY1NjViNTZjNGMxZGQyMzg0
OTAxMDJhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zMjMsNiArMzIzLDcgQEAgTW9kdWxlcy93ZWJn
cHUvV0hMU0wvV0hMU0xOYW1lUmVzb2x2ZXIuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExT
TFJlc29sdmVPdmVybG9hZEltcGwuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFZpc2l0
b3IuY3BwCiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTExvb3BDaGVja2VyLmNwcAorTW9kdWxl
cy93ZWJncHUvV0hMU0wvV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5jcHAKIE1vZHVsZXMvd2Vi
Z3B1L1dITFNML0FTVC9XSExTTFR5cGVBcmd1bWVudC5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dITFNM
L0FTVC9XSExTTEJ1aWx0SW5TZW1hbnRpYy5jcHAKIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9X
SExTTFJlc291cmNlU2VtYW50aWMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjk2ZmEyZGVjNDFlNDllMzE0MTQyZDBiNjQ1
MjJiYTNjNzkyNGM2YS4uMGZiNGQ4ZDgyMGUzMzVmMTIzNTZhNjQ1ZGM3NjM4YTRhMTg0ZmJmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjU4NSw5ICsyNTg1LDkgQEAKIAkJOTEyNzhENUUyMURFREFENjAwQjU3MTg0IC8qIFBh
Z2VBdWRpdEFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MTI3OEQ1QzIxREVEQUQ1MDBCNTcxODQgLyogUGFnZUF1ZGl0QWdlbnQuaCAqLzsgfTsK
IAkJOTEyNzhENjIyMURFREFGMDAwQjU3MTg0IC8qIFdvcmtlckF1ZGl0QWdlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxMjc4RDYwMjFERURBRjAw
MEI1NzE4NCAvKiBXb3JrZXJBdWRpdEFnZW50LmggKi87IH07CiAJCTkxNzVDRTVDMjFFMjgxRUQw
MERGMkMyNyAvKiBJbnNwZWN0b3JBdWRpdERPTU9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE3NUNFNTgyMUUyODFFQzAwREYyQzI3IC8qIElu
c3BlY3RvckF1ZGl0RE9NT2JqZWN0LmggKi87IH07Ci0JCTkxNzVDRTVDMjFFMjgxRUQwMERGMkMy
OCAvKiBKU0luc3BlY3RvckF1ZGl0RE9NT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTc1Q0U1ODIxRTI4MUVDMDBERjJDMjggLyogSW5zcGVj
dG9yQXVkaXRET01PYmplY3QuaCAqLzsgfTsKKwkJOTE3NUNFNUMyMUUyODFFRDAwREYyQzI4IC8q
IEluc3BlY3RvckF1ZGl0RE9NT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MTc1Q0U1ODIxRTI4MUVDMDBERjJDMjggLyogSW5zcGVjdG9yQXVk
aXRET01PYmplY3QuaCAqLzsgfTsKIAkJOTE3NUNFNUUyMUUyODFFRDAwREYyQzI3IC8qIEluc3Bl
Y3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTE3NUNFNUEyMUUyODFFRDAwREYyQzI3IC8qIEluc3BlY3Rv
ckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oICovOyB9OwotCQk5MTc1Q0U1RTIxRTI4MUVEMDBE
RjJDMjggLyogSlNJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxNzVDRTVBMjFFMjgxRUQwMERG
MkMyOCAvKiBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaCAqLzsgfTsKKwkJOTE3
NUNFNUUyMUUyODFFRDAwREYyQzI4IC8qIEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTE3NUNF
NUEyMUUyODFFRDAwREYyQzI4IC8qIEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5o
ICovOyB9OwogCQk5MUI4RjBCNTIxOTUzRDY1MDAwQzJCMDAgLyogQ2VydGlmaWNhdGVJbmZvQmFz
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTFCOEYw
QjMyMTk1M0Q2NTAwMEMyQjAwIC8qIENlcnRpZmljYXRlSW5mb0Jhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MUI5NTIyNDFGNThBNThGMDA5
MzFEQzIgLyogUmVjb3JkaW5nU3dpenpsZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MUI5NTIyMjFGNThBNTgwMDA5MzFEQzIgLyogUmVjb3Jk
aW5nU3dpenpsZVR5cGVzLmggKi87IH07CiAJCTkxQzlGMkY5MUFFM0JFQjAwMDk1QjYxQyAvKiBB
WFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTY0MjksNiArNjQyOSw4IEBACiAJCTFDOTA0REY5MEJBOUQyQzgwMDgxRTlEMCAvKiBW
ZXJzaW9uLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFZlcnNpb24u
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOUFFNUNGMjFFREEyN0Uw
MDY5RDVGMiAvKiBXSExTTExvb3BDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdITFNM
TG9vcENoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzlBRTVEMDIx
RURBMjdFMDA2OUQ1RjIgLyogV0hMU0xMb29wQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExT
TExvb3BDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQTBDMkU0MjFF
RUQxMkEwMEExMTg2MCAvKiBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQ0EwQzJFNTIxRUVEMTJBMDBBMTE4NjAgLyogV0hMU0xGdW5jdGlvblN0
YWdlQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTEZ1bmN0aW9uU3RhZ2VDaGVja2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTE5RTAzMERDMjU1OTUwMDY1QTk5NCAv
KiBFdmVudExvb3BNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBFdmVudExvb3BNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTE5RTE1
MERDMjU1Q0EwMDY1QTk5NCAvKiBFdmVudExvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRXZlbnRMb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUYz
NDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViU2NyaXB0T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMDM5NCwxMyArMTAzOTYsMTMgQEAKIAkJOTEyNzhENUYyMURFREFFRjAwQjU3
MTg0IC8qIFdvcmtlckF1ZGl0QWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV29ya2VyQXVkaXRBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkxMjc4RDYwMjFERURBRjAwMEI1NzE4NCAvKiBXb3JrZXJBdWRpdEFnZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlckF1ZGl0QWdlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTE3NUNFNTcyMUUyODFFQjAwREYyQzI3IC8qIEluc3BlY3Rv
ckF1ZGl0RE9NT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEluc3BlY3RvckF1ZGl0RE9NT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTE3NUNFNTcyMUUyODFFQjAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRET01PYmplY3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRE
T01PYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MTc1Q0U1NzIxRTI4
MUVCMDBERjJDMjggLyogSW5zcGVjdG9yQXVkaXRET01PYmplY3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRET01PYmplY3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTc1Q0U1ODIxRTI4MUVDMDBERjJDMjcgLyogSW5z
cGVjdG9yQXVkaXRET01PYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5zcGVjdG9yQXVkaXRET01PYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
OTE3NUNFNTgyMUUyODFFQzAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRET01PYmplY3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRET01PYmplY3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTE3NUNFNTgyMUUyODFFQzAwREYyQzI4
IC8qIEluc3BlY3RvckF1ZGl0RE9NT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEluc3BlY3RvckF1ZGl0RE9NT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkxNzVDRTU5MjFFMjgxRUMwMERGMkMyNyAvKiBJbnNwZWN0b3JBdWRpdEFjY2Vzc2li
aWxpdHlPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5z
cGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTE3NUNFNTkyMUUyODFFQzAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRBY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkxNzVDRTU5MjFFMjgxRUMwMERGMkMyOCAvKiBJbnNwZWN0b3JBdWRpdEFj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTE3NUNFNUEyMUUyODFFRDAwREYyQzI3IC8qIEluc3BlY3RvckF1ZGl0
QWNjZXNzaWJpbGl0eU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTE3NUNFNUEyMUUyODFFRDAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRBY2Nl
c3NpYmlsaXR5T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3Bl
Y3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MTc1Q0U1QTIxRTI4MUVEMDBERjJDMjggLyogSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmls
aXR5T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckF1
ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MUI4RjBCMzIxOTUzRDY1MDAwQzJCMDAgLyogQ2VydGlmaWNhdGVJbmZvQmFzZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDZXJ0aWZpY2F0ZUluZm9CYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxQjk1MjIyMUY1OEE1ODAwMDkzMURDMiAvKiBSZWNvcmRp
bmdTd2l6emxlVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVjb3JkaW5nU3dpenpsZVR5cGVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAv
KiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBWFRleHRTdGF0ZUNo
YW5nZUludGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5MzcsMTIgKzE2
OTM5LDEyIEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUE1ODRG
RTI1MTg2MzdEQUIwMDg0M0IxMCAvKiBDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5oICovLAor
CQkJCTkxNzVDRTU5MjFFMjgxRUMwMERGMkMyOCAvKiBJbnNwZWN0b3JBdWRpdEFjY2Vzc2liaWxp
dHlPYmplY3QuY3BwICovLAorCQkJCTkxNzVDRTVBMjFFMjgxRUQwMERGMkMyOCAvKiBJbnNwZWN0
b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaCAqLywKKwkJCQk5MTc1Q0U1NzIxRTI4MUVCMDBE
RjJDMjggLyogSW5zcGVjdG9yQXVkaXRET01PYmplY3QuY3BwICovLAorCQkJCTkxNzVDRTU4MjFF
MjgxRUMwMERGMkMyOCAvKiBJbnNwZWN0b3JBdWRpdERPTU9iamVjdC5oICovLAogCQkJCUE1ODRG
RTM5MTg2NEUyRDgwMDg0M0IxMCAvKiBKU0NvbW1hbmRMaW5lQVBJSG9zdC5jcHAgKi8sCiAJCQkJ
QTU4NEZFM0ExODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0LmggKi8sCi0J
CQkJOTE3NUNFNTkyMUUyODFFQzAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcCAqLywKLQkJCQk5MTc1Q0U1QTIxRTI4MUVEMDBERjJDMjggLyogSlNJbnNw
ZWN0b3JBdWRpdEFjY2Vzc2liaWxpdHlPYmplY3QuaCAqLywKLQkJCQk5MTc1Q0U1NzIxRTI4MUVC
MDBERjJDMjggLyogSlNJbnNwZWN0b3JBdWRpdERPTU9iamVjdC5jcHAgKi8sCi0JCQkJOTE3NUNF
NTgyMUUyODFFQzAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRET01PYmplY3QuaCAqLywKIAkJ
CQk3QTBFNzcxQzEwQzAwREIxMDBBMDI3NkUgLyogSlNJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
ICovLAogCQkJCTdBMEU3NzFEMTBDMDBEQjEwMEEwMjc2RSAvKiBKU0luc3BlY3RvckZyb250ZW5k
SG9zdC5oICovLAogCQkJKTsKQEAgLTI1NDU0LDYgKzI1NDU2LDggQEAKIAkJCQlDMjM0QTlBRTIx
RTkyQzFBMDAzQzk4NEQgLyogV0hMU0xDaGVja0R1cGxpY2F0ZUZ1bmN0aW9ucy5oICovLAogCQkJ
CTFDODQwQjlCMjFFQzQwMDkwMEQwNTAwRCAvKiBXSExTTENoZWNrZXIuY3BwICovLAogCQkJCTFD
ODQwQjk3MjFFQzQwMDcwMEQwNTAwRCAvKiBXSExTTENoZWNrZXIuaCAqLywKKwkJCQkxQ0EwQzJF
NDIxRUVEMTJBMDBBMTE4NjAgLyogV0hMU0xGdW5jdGlvblN0YWdlQ2hlY2tlci5jcHAgKi8sCisJ
CQkJMUNBMEMyRTUyMUVFRDEyQTAwQTExODYwIC8qIFdITFNMRnVuY3Rpb25TdGFnZUNoZWNrZXIu
aCAqLywKIAkJCQkxQzg0MEI5OTIxRUM0MDA4MDBEMDUwMEQgLyogV0hMU0xHYXRoZXJFbnRyeVBv
aW50SXRlbXMuY3BwICovLAogCQkJCTFDODQwQjlBMjFFQzQwMDkwMEQwNTAwRCAvKiBXSExTTEdh
dGhlckVudHJ5UG9pbnRJdGVtcy5oICovLAogCQkJCUMyMzRBOTlBMjFFOTBGNTYwMDNDOTg0RCAv
KiBXSExTTEluZmVyVHlwZXMuY3BwICovLApAQCAtMjk1NTIsNyArMjk1NTYsOSBAQAogCQkJCTkz
MzA5REYyMDk5RTY0OTIwMDU2RTU4MSAvKiBJbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTVCODFDQTcxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTE3NUNFNUUyMUUyODFFRDAwREYyQzI3
IC8qIEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTE3NUNFNUUyMUUyODFFRDAwREYyQzI4IC8qIEluc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0
eU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTE3NUNFNUMyMUUyODFFRDAwREYyQzI3IC8q
IEluc3BlY3RvckF1ZGl0RE9NT2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MTc1Q0U1QzIx
RTI4MUVEMDBERjJDMjggLyogSW5zcGVjdG9yQXVkaXRET01PYmplY3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTZBMjJFODcwMUYxMDQxODYwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE1QjgxQ0E4MUZBQTQ0NjIwMDM3RDFFNiAvKiBJbnNwZWN0b3JDYW52
YXNBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4MUI5NUMwRTk3MzMwODAwMjY2RTA3IC8q
IEluc3BlY3RvckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTk4NSw4ICsyOTk5MSw2IEBA
CiAJCQkJQTc3OTc5MjkwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QzE5M0MwMTFGNUUxMTA1MDA4OEYzRTYgLyogSlNJbWFnZVNtb290aGluZ1F1
YWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NjYyOUQzMDlEQTJCNDgwMDk2MzNBNiAvKiBK
U0lucHV0RXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTkxNzVDRTVFMjFFMjgxRUQwMERGMkMy
OCAvKiBKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJpbGl0eU9iamVjdC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJOTE3NUNFNUMyMUUyODFFRDAwREYyQzI4IC8qIEpTSW5zcGVjdG9yQXVkaXRET01PYmpl
Y3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBMEU3NzFGMTBDMDBEQjEwMEEwMjc2RSAvKiBKU0lu
c3BlY3RvckZyb250ZW5kSG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NzEwRTYxREI3MDBD
NzAwMkRDRUMzIC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGOEI0NTc2MURDNDFEQkEwMDQ0M0MzRiAvKiBKU0ludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLAo=
</data>
<flag name="review"
          id="376044"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>