<?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>106505</bug_id>
          
          <creation_ts>2013-01-09 16:59:26 -0800</creation_ts>
          <short_desc>ComposedShadowTreeWalker shouldn&apos;t be exposed to non-ShadowDOM classes</short_desc>
          <delta_ts>2013-01-10 09:45:33 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103339</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>803842</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-01-09 16:59:26 -0800</bug_when>
    <thetext>There is a few places where ComposedShadowTreeWalker is used directly.
They should be push behind NodeRenderingTraversal to make CSTW usage optional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804041</commentid>
    <comment_count>1</comment_count>
      <attachid>182060</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-01-09 21:41:34 -0800</bug_when>
    <thetext>Created attachment 182060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804046</commentid>
    <comment_count>2</comment_count>
      <attachid>182060</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-09 21:52:23 -0800</bug_when>
    <thetext>Comment on attachment 182060
Patch

Attachment 182060 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15762805</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804071</commentid>
    <comment_count>3</comment_count>
      <attachid>182067</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-01-09 22:28:37 -0800</bug_when>
    <thetext>Created attachment 182067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804093</commentid>
    <comment_count>4</comment_count>
      <attachid>182071</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-01-09 23:07:47 -0800</bug_when>
    <thetext>Created attachment 182071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804460</commentid>
    <comment_count>5</comment_count>
      <attachid>182071</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 09:45:28 -0800</bug_when>
    <thetext>Comment on attachment 182071
Patch

Clearing flags on attachment: 182071

Committed r139325: &lt;http://trac.webkit.org/changeset/139325&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804461</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 09:45:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182060</attachid>
            <date>2013-01-09 21:41:34 -0800</date>
            <delta_ts>2013-01-09 22:28:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106505-20130110143837.patch</filename>
            <type>text/plain</type>
            <size>24656</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5Mjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDUxMjQ1
NDVmOTM2NGY3Njc4OTcxZmU5NTExNjFmZjkzMzRhMmE3ZGUuLjBjNDIwYWZmZDg5ZmE1N2M0Yzlk
OWJkNzFhZjE4NmJhYzAwNWM2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTEwLDYgKzEx
MTAsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVs
ZS5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwCisgICAgZG9tL0FuY2VzdG9yQ2hh
aW5XYWxrZXIuY3BwCiAgICAgZG9tL0F0dHIuY3BwCiAgICAgZG9tL0JlZm9yZVRleHRJbnNlcnRl
ZEV2ZW50LmNwcAogICAgIGRvbS9CZWZvcmVVbmxvYWRFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDAyMjU5YzQzYzUyMDQwY2IxNGNjYmEzN2E5NWYxMmM0MDQ5YzE5
YzYuLjRlN2U3YTIyZDdjYjhlYTFmY2I1NjU1NDUxMjhhNDE3YzQ0MDdjMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjY5OCw2ICsyNjk4LDggQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vQWN0aXZlRE9NT2JqZWN0LmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9BbmNlc3RvckNoYWlu
V2Fsa2VyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0FuY2VzdG9yQ2hhaW5XYWxrZXIuaCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQXR0
ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQXR0cmlidXRlLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXgg
NTE5ZDk1NDE5YjMxMzZlMDM5ZjRlMTdlYzA3YTljYTM0ODM2NTJjYi4uM2E2OWM0Yjc0Mzc2OWNj
ZmI3MzA3NTgxZDA3M2I0NGQwM2IyZDM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0zMzUsNiArMzM1LDcg
QEAgU09VUkNFUyArPSBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAg
ICAgY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgXAogICAgIGRvbS9BY3RpdmVET01PYmpl
Y3QuY3BwIFwKKyAgICBkb20vQW5jZXN0b3JDaGFpbldhbGtlci5jcHAgXAogICAgIGRvbS9BdHRy
LmNwcCBcCiAgICAgZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcCBcCiAgICAgZG9tL0Jl
Zm9yZVVubG9hZEV2ZW50LmNwcCBcCkBAIC0xNTQyLDYgKzE1NDMsNyBAQCBIRUFERVJTICs9IFwK
ICAgICBjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCiAgICAgY3NzL1dlYktpdENTU1Zp
ZXdwb3J0UnVsZS5oIFwKICAgICBkb20vQWN0aXZlRE9NT2JqZWN0LmggXAorICAgIGRvbS9BbmNl
c3RvckNoYWluV2Fsa2VyLmggXAogICAgIGRvbS9BdHRyLmggXAogICAgIGRvbS9BdHRyaWJ1dGUu
aCBcCiAgICAgZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IGNmNGU5ZDJmYjYzOTNmMmJlZGQ3ODY2MDU2ZGM0NTViMTMyMzI0MjYuLjUxNWMwNGJhZjlm
NmU2ZWMyMzkwMDYyNjhlNjE4M2QwYTEwNGNmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI3MDYs
NiArMjcwNiw4IEBACiAgICAgICAgIF0sCiAgICAgICAgICd3ZWJjb3JlX2RvbV9maWxlcyc6IFsK
ICAgICAgICAgICAgICdkb20vQWN0aXZlRE9NT2JqZWN0LmNwcCcsCisgICAgICAgICAgICAnZG9t
L0FuY2VzdG9yQ2hhaW5XYWxrZXIuY3BwJywKKyAgICAgICAgICAgICdkb20vQW5jZXN0b3JDaGFp
bldhbGtlci5oJywKICAgICAgICAgICAgICdkb20vQXR0ci5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9CZWZvcmVMb2FkRXZlbnQuaCcsCiAgICAgICAgICAgICAnZG9tL0JlZm9yZVRleHRJbnNlcnRl
ZEV2ZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQW5jZXN0b3JDaGFp
bldhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQW5jZXN0b3JDaGFpbldhbGtlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTcwY2RjMjA1OTdjNTBiMjE4ZGY0MzEwMzhlNmM1OGI5ZWFiYWFlNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BbmNlc3RvckNoYWluV2Fsa2VyLmNw
cApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFuY2Vz
dG9yQ2hhaW5XYWxrZXIuaCIKKworI2luY2x1ZGUgIkNvbnRlbnREaXN0cmlidXRvci5oIgorI2lu
Y2x1ZGUgIkluc2VydGlvblBvaW50LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0FuY2VzdG9yQ2hhaW5XYWxrZXI6OkFuY2VzdG9yQ2hhaW5XYWxr
ZXIoY29uc3QgTm9kZSogbm9kZSkKKyAgICA6IG1fbm9kZShub2RlKQorICAgICwgbV9kaXN0cmli
dXRlZE5vZGUobm9kZSkKKyAgICAsIG1faXNDcm9zc2luZ0luc2VydGlvblBvaW50KGZhbHNlKQor
eworICAgIEFTU0VSVChub2RlKTsKK30KKwordm9pZCBBbmNlc3RvckNoYWluV2Fsa2VyOjpwYXJl
bnQoKQoreworICAgIEFTU0VSVChtX25vZGUpOworICAgIEFTU0VSVChtX2Rpc3RyaWJ1dGVkTm9k
ZSk7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHNoYWRvd09mUGFyZW50KG1fbm9k
ZSkpIHsKKyAgICAgICAgaWYgKEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCA9IHNoYWRv
dy0+ZGlzdHJpYnV0b3IoKS5maW5kSW5zZXJ0aW9uUG9pbnRGb3IobV9kaXN0cmlidXRlZE5vZGUp
KSB7CisgICAgICAgICAgICBtX25vZGUgPSBpbnNlcnRpb25Qb2ludDsKKyAgICAgICAgICAgIG1f
aXNDcm9zc2luZ0luc2VydGlvblBvaW50ID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBpZiAoIW1fbm9kZS0+aXNTaGFkb3dSb290KCkpIHsKKyAgICAg
ICAgbV9ub2RlID0gbV9ub2RlLT5wYXJlbnROb2RlKCk7CisgICAgICAgIGlmICghKG1fbm9kZSAm
JiBtX25vZGUtPmlzU2hhZG93Um9vdCgpICYmIFNjb3BlQ29udGVudERpc3RyaWJ1dGlvbjo6YXNz
aWduZWRUbyh0b1NoYWRvd1Jvb3QobV9ub2RlKSkpKQorICAgICAgICAgICAgbV9kaXN0cmlidXRl
ZE5vZGUgPSBtX25vZGU7CisgICAgICAgIG1faXNDcm9zc2luZ0luc2VydGlvblBvaW50ID0gZmFs
c2U7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBTaGFkb3dSb290KiBzaGFk
b3dSb290ID0gdG9TaGFkb3dSb290KG1fbm9kZSk7CisgICAgaWYgKEluc2VydGlvblBvaW50KiBp
bnNlcnRpb25Qb2ludCA9IFNjb3BlQ29udGVudERpc3RyaWJ1dGlvbjo6YXNzaWduZWRUbyhzaGFk
b3dSb290KSkgeworICAgICAgICBtX25vZGUgPSBpbnNlcnRpb25Qb2ludDsKKyAgICAgICAgbV9p
c0Nyb3NzaW5nSW5zZXJ0aW9uUG9pbnQgPSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIG1fbm9kZSA9IHNoYWRvd1Jvb3QtPmhvc3QoKTsKKyAgICBtX2Rpc3RyaWJ1dGVkTm9kZSA9
IG1fbm9kZTsKKyAgICBtX2lzQ3Jvc3NpbmdJbnNlcnRpb25Qb2ludCA9IGZhbHNlOworfQorCit9
IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FuY2VzdG9yQ2hh
aW5XYWxrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BbmNlc3RvckNoYWluV2Fsa2VyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWY1NTJlYjlhYjk2OTNmYjQ3OGE3NzNkOTY0Y2Y0MzZhOGFlNDk4NAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BbmNlc3RvckNoYWluV2Fsa2VyLmgKQEAg
LTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgQW5jZXN0b3JDaGFpbldhbGtlcl9oCisjZGVmaW5lIEFu
Y2VzdG9yQ2hhaW5XYWxrZXJfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5vZGU7
CisKK2NsYXNzIEFuY2VzdG9yQ2hhaW5XYWxrZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IEFu
Y2VzdG9yQ2hhaW5XYWxrZXIoY29uc3QgTm9kZSopOworICAgIHZvaWQgcGFyZW50KCk7CisgICAg
Tm9kZSogZ2V0KCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxOb2RlKj4obV9ub2RlKTsgfQor
ICAgIGJvb2wgY3Jvc3NpbmdJbnNlcnRpb25Qb2ludCgpIHsgcmV0dXJuIG1faXNDcm9zc2luZ0lu
c2VydGlvblBvaW50OyB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgTm9kZSogbV9ub2RlOworICAg
IGNvbnN0IE5vZGUqIG1fZGlzdHJpYnV0ZWROb2RlOworICAgIGJvb2wgbV9pc0Nyb3NzaW5nSW5z
ZXJ0aW9uUG9pbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKaW5kZXggNjViMTMzY2Zi
MjI1OGVlZjIyNzlhZTVhYTZkNTg3YmQzOTZlZWNlNi4uYWI1OGQ2MTUyYmM2MGQ5MDUxN2FlNGFi
OGNlZWEwN2I0OGZjYjE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlci5jcHAKQEAgLTQ1LDE2ICs0NSw2IEBAIHN0YXRpYyBpbmxpbmUgRWxlbWVu
dFNoYWRvdyogc2hhZG93Rm9yKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIDA7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgRWxlbWVudFNoYWRvdyogc2hhZG93T2ZQYXJlbnQoY29uc3QgTm9kZSog
bm9kZSkKLXsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJldHVybiAwOwotICAgIGlmIChOb2Rl
KiBwYXJlbnQgPSBub2RlLT5wYXJlbnROb2RlKCkpCi0gICAgICAgIGlmIChwYXJlbnQtPmlzRWxl
bWVudE5vZGUoKSkKLSAgICAgICAgICAgIHJldHVybiB0b0VsZW1lbnQocGFyZW50KS0+c2hhZG93
KCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgYm9vbCBub2RlQ2FuQmVEaXN0
cmlidXRlZChjb25zdCBOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKQEAgLTMyMiw0
MiArMzEyLDQgQEAgdm9pZCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnByZXZpb3VzKCkKICAg
ICBhc3NlcnRQb3N0Y29uZGl0aW9uKCk7CiB9CiAKLUFuY2VzdG9yQ2hhaW5XYWxrZXI6OkFuY2Vz
dG9yQ2hhaW5XYWxrZXIoY29uc3QgTm9kZSogbm9kZSkKLSAgICA6IG1fbm9kZShub2RlKQotICAg
ICwgbV9kaXN0cmlidXRlZE5vZGUobm9kZSkKLSAgICAsIG1faXNDcm9zc2luZ0luc2VydGlvblBv
aW50KGZhbHNlKQotewotICAgIEFTU0VSVChub2RlKTsKLX0KLQotdm9pZCBBbmNlc3RvckNoYWlu
V2Fsa2VyOjpwYXJlbnQoKQotewotICAgIEFTU0VSVChtX25vZGUpOwotICAgIEFTU0VSVChtX2Rp
c3RyaWJ1dGVkTm9kZSk7Ci0gICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHNoYWRvd09m
UGFyZW50KG1fbm9kZSkpIHsKLSAgICAgICAgaWYgKEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Q
b2ludCA9IHNoYWRvdy0+ZGlzdHJpYnV0b3IoKS5maW5kSW5zZXJ0aW9uUG9pbnRGb3IobV9kaXN0
cmlidXRlZE5vZGUpKSB7Ci0gICAgICAgICAgICBtX25vZGUgPSBpbnNlcnRpb25Qb2ludDsKLSAg
ICAgICAgICAgIG1faXNDcm9zc2luZ0luc2VydGlvblBvaW50ID0gdHJ1ZTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoIW1fbm9kZS0+aXNTaGFkb3dSb290
KCkpIHsKLSAgICAgICAgbV9ub2RlID0gbV9ub2RlLT5wYXJlbnROb2RlKCk7Ci0gICAgICAgIGlm
ICghKG1fbm9kZSAmJiBtX25vZGUtPmlzU2hhZG93Um9vdCgpICYmIFNjb3BlQ29udGVudERpc3Ry
aWJ1dGlvbjo6YXNzaWduZWRUbyh0b1NoYWRvd1Jvb3QobV9ub2RlKSkpKQotICAgICAgICAgICAg
bV9kaXN0cmlidXRlZE5vZGUgPSBtX25vZGU7Ci0gICAgICAgIG1faXNDcm9zc2luZ0luc2VydGlv
blBvaW50ID0gZmFsc2U7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjb25zdCBTaGFk
b3dSb290KiBzaGFkb3dSb290ID0gdG9TaGFkb3dSb290KG1fbm9kZSk7Ci0gICAgaWYgKEluc2Vy
dGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCA9IFNjb3BlQ29udGVudERpc3RyaWJ1dGlvbjo6YXNz
aWduZWRUbyhzaGFkb3dSb290KSkgewotICAgICAgICBtX25vZGUgPSBpbnNlcnRpb25Qb2ludDsK
LSAgICAgICAgbV9pc0Nyb3NzaW5nSW5zZXJ0aW9uUG9pbnQgPSB0cnVlOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotICAgIG1fbm9kZSA9IHNoYWRvd1Jvb3QtPmhvc3QoKTsKLSAgICBtX2Rpc3Ry
aWJ1dGVkTm9kZSA9IG1fbm9kZTsKLSAgICBtX2lzQ3Jvc3NpbmdJbnNlcnRpb25Qb2ludCA9IGZh
bHNlOwotfQotCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlci5oCmluZGV4IGI4MDlhMjZhYzQ5OTJhODU1YWU0ZWIyOTQwM2Y4MTM5
MjdiNTNiMTIuLjgzNDllMjFhYTk4M2YwYTg0YTExM2MxNjc4MGU0OWVjNjc2NjRmM2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgKQEAgLTE0MSwx
OSArMTQxLDYgQEAgaW5saW5lIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6Q29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyKGNvbnN0IE5vZGUqIG5vZGUsIFBvbGkKICNlbmRpZgogfQogCi1jbGFzcyBB
bmNlc3RvckNoYWluV2Fsa2VyIHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBBbmNlc3RvckNoYWlu
V2Fsa2VyKGNvbnN0IE5vZGUqKTsKLSAgICB2b2lkIHBhcmVudCgpOwotICAgIE5vZGUqIGdldCgp
IGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Tm9kZSo+KG1fbm9kZSk7IH0KLSAgICBib29sIGNy
b3NzaW5nSW5zZXJ0aW9uUG9pbnQoKSB7IHJldHVybiBtX2lzQ3Jvc3NpbmdJbnNlcnRpb25Qb2lu
dDsgfQotCi1wcml2YXRlOgotICAgIGNvbnN0IE5vZGUqIG1fbm9kZTsKLSAgICBjb25zdCBOb2Rl
KiBtX2Rpc3RyaWJ1dGVkTm9kZTsKLSAgICBib29sIG1faXNDcm9zc2luZ0luc2VydGlvblBvaW50
OwotfTsKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25l
LmNwcAppbmRleCA3MmU0YTQ4NTVmZmY0Y2RjM2ZjZTJmZjkyMTQzMGQyNDg5NzM3Y2E4Li4xOWQ4
OWJjZDNmZDZmYjcyYmQ5ZjcyZWE4MzliM2FiY2UxMzI4Yzg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01B
bGxJbk9uZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIC8vIFRoaXMgYWxsLWluLW9uZSBjcHAgZmls
ZSBjdXRzIGRvd24gb24gdGVtcGxhdGUgYmxvYXQgdG8gYWxsb3cgdXMgdG8gYnVpbGQgb3VyIFdp
bmRvd3MgcmVsZWFzZSBidWlsZC4KIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5jcHAiCisj
aW5jbHVkZSAiQW5jZXN0b3JDaGFpbldhbGtlci5jcHAiCiAjaW5jbHVkZSAiQXR0ci5jcHAiCiAj
aW5jbHVkZSAiQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwIgogI2luY2x1ZGUgIkJlZm9yZVVu
bG9hZEV2ZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hh
ZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oCmluZGV4IDkzOWU5YjY5
ZjljNjY1N2RhYWI1OGYwMjNkZTE4ZjkwNTAxMDY3YmUuLjkxZjY3OTE2ODg2ZDRhOTM0YjEzYWU3
NzQ5NmI3MDFiNmQyZWE2MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
U2hhZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaApAQCAtMTMw
LDYgKzEzMCwxNyBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAoraW5saW5lIEVsZW1lbnRTaGFkb3cq
IHNoYWRvd09mUGFyZW50KGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICBpZiAoTm9kZSogcGFyZW50ID0gbm9kZS0+cGFyZW50Tm9kZSgp
KQorICAgICAgICBpZiAocGFyZW50LT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICByZXR1
cm4gdG9FbGVtZW50KHBhcmVudCktPnNoYWRvdygpOworICAgIHJldHVybiAwOworfQorCisKIH0g
Ly8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNw
cAppbmRleCBkYmYyNGQ1MGJkZmVkZDdmM2NkZjIwYzllNTg0YTg0ZTc5ZmZjZjE4Li4zY2E5Mzhm
ZmIzOTA5MjAyODBkMmUzOThhNDdkNzUxNTc4MTg1ZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnREaXNwYXRjaGVyLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlci5oIgogCi0jaW5jbHVkZSAiQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyLmgiCisjaW5jbHVkZSAiQW5jZXN0b3JDaGFpbldhbGtlci5oIgogI2luY2x1ZGUg
IkNvbnRhaW5lck5vZGUuaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAi
RXZlbnRDb250ZXh0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggNjQ4MWQ5MDVkMjgyMmZiNTJmZjFk
ZTlkNDNlNWJmMTUyMWNkMDA1NC4uM2RhNWU4ODU3MDExYzgzMTcyODFiMzczYjgzNzM3YjhlNmEy
M2I2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkNTU1N0
eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDaGlsZE5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiQ2xhc3NO
b2RlTGlzdC5oIgotI2luY2x1ZGUgIkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oIgogI2luY2x1
ZGUgIkNvbnRhaW5lck5vZGVBbGdvcml0aG1zLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nVHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nVHJhdmVyc2FsLmNwcAppbmRleCA5NTZhMGJhYzJkNjhjZWY2
NDJjZGQ5YWM4OWY2NzkxYjVkZmY5ZjVkLi44M2JiN2VjN2U3OWVmMmYyMTYzZWYwNzc1Mzc5ZDc3
N2U2OWVmZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ1Ry
YXZlcnNhbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdUcmF2ZXJz
YWwuY3BwCkBAIC05Miw2ICs5MiwzOCBAQCBOb2RlKiBwcmV2aW91c1NpYmxpbmdTbG93KGNvbnN0
IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIDA7CiB9CiAKK05vZGUqIG5leHRJblNjb3BlKGNvbnN0
IE5vZGUqIG5vZGUpCit7CisgICAgLy8gRklYTUU6IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBz
aG91bGRuJ3QgYmUgdXNlZCB3aGVuICFFTkFCTEUoU0hBRE9XX0RPTSkgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzMzOQorICAgIENvbXBvc2VkU2hhZG93VHJlZVdh
bGtlciB3YWxrZXIgPSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIobm9kZSwgQ29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyOjpEb05vdENyb3NzVXBwZXJCb3VuZGFyeSk7CisgICAgd2Fsa2VyLm5leHQo
KTsKKyAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworfQorCitOb2RlKiBwcmV2aW91c0luU2NvcGUo
Y29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICAvLyBGSVhNRTogQ29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyIHNob3VsZG4ndCBiZSB1c2VkIHdoZW4gIUVOQUJMRShTSEFET1dfRE9NKSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMzM5CisgICAgQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyIHdhbGtlciA9IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcihub2RlLCBDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXI6OkRvTm90Q3Jvc3NVcHBlckJvdW5kYXJ5KTsKKyAgICB3YWxrZXIu
cHJldmlvdXMoKTsKKyAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworfQorCitOb2RlKiBwYXJlbnRJ
blNjb3BlKGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgLy8gRklYTUU6IENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlciBzaG91bGRuJ3QgYmUgdXNlZCB3aGVuICFFTkFCTEUoU0hBRE9XX0RPTSkgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzMzOQorICAgIENvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlciB3YWxrZXIgPSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIobm9kZSwg
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpEb05vdENyb3NzVXBwZXJCb3VuZGFyeSk7CisgICAg
d2Fsa2VyLnBhcmVudCgpOworICAgIHJldHVybiB3YWxrZXIuZ2V0KCk7Cit9CisKK05vZGUqIGxh
c3RDaGlsZEluU2NvcGUoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICAvLyBGSVhNRTogQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyIHNob3VsZG4ndCBiZSB1c2VkIHdoZW4gIUVOQUJMRShTSEFET1df
RE9NKSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMzM5CisgICAg
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlciA9IENvbXBvc2VkU2hhZG93VHJlZVdhbGtl
cihub2RlLCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OkRvTm90Q3Jvc3NVcHBlckJvdW5kYXJ5
KTsKKyAgICB3YWxrZXIubGFzdENoaWxkKCk7CisgICAgcmV0dXJuIHdhbGtlci5nZXQoKTsKK30K
KwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSZW5kZXJpbmdUcmF2ZXJzYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5n
VHJhdmVyc2FsLmgKaW5kZXggNDQwNDNkZTI3ZjA5MzRjZWU1OTVkMTI0YzU0YTNkYTRjODgwYjc5
ZS4uMmRiM2U3NTk1Y2FjYzBmOWMwNWY4NmZmYTExN2JhZTQ4OGQ1ODgwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5oCkBAIC03MSw2ICs3MSwxMCBAQCBO
b2RlKiBuZXh0U2libGluZ1Nsb3coY29uc3QgTm9kZSopOwogTm9kZSogcHJldmlvdXNTaWJsaW5n
KGNvbnN0IE5vZGUqKTsKIE5vZGUqIHByZXZpb3VzU2libGluZ1Nsb3coY29uc3QgTm9kZSopOwog
CitOb2RlKiBuZXh0SW5TY29wZShjb25zdCBOb2RlKik7CitOb2RlKiBwcmV2aW91c0luU2NvcGUo
Y29uc3QgTm9kZSopOworTm9kZSogcGFyZW50SW5TY29wZShjb25zdCBOb2RlKik7CitOb2RlKiBs
YXN0Q2hpbGRJblNjb3BlKGNvbnN0IE5vZGUqKTsKIAogaW5saW5lIENvbnRhaW5lck5vZGUqIHBh
cmVudChjb25zdCBOb2RlKiBub2RlLCBQYXJlbnREZXRhaWxzKiBkZXRhaWxzKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVNjb3BlLmNwcAppbmRleCBkOTI3ZWU5MmMxZGNkNWIyZTEwNDdiNDg0ZTk2OGUzNDVj
NGFkYWE5Li42YTU3N2MyN2I1OTFjNzE2ZGNiYTFkNTNhZWY4NDVlMmY1YmQ4ZWVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgogCi0jaW5jbHVkZSAiQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyLmgiCisjaW5jbHVkZSAiQW5jZXN0b3JDaGFpbldhbGtlci5oIgogI2luY2x1ZGUgIkNv
bnRhaW5lck5vZGUuaCIKICNpbmNsdWRlICJET01TZWxlY3Rpb24uaCIKICNpbmNsdWRlICJET01X
aW5kb3cuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuY3BwCmluZGV4IDY3NTM2NTI0
MzBmYTM3M2U4MTQwMDI3YjYzZDE5NmY1ZmUzZDEwYzIuLjg1OTBhZTEwMjlkMTRlOTdmYjg5MzNh
YjFlZGEyOTBhOTA3MWRmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJ
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcApA
QCAtMjMsMTAgKzIzLDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTExJ
RWxlbWVudC5oIgogCisjaW5jbHVkZSAiQW5jZXN0b3JDaGFpbldhbGtlci5oIgogI2luY2x1ZGUg
IkF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJD
U1NWYWx1ZUtleXdvcmRzLmgiCi0jaW5jbHVkZSAiQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKIApA
QCAtOTYsNyArOTYsNyBAQCB2b2lkIEhUTUxMSUVsZW1lbnQ6OmF0dGFjaCgpCiAKICAgICAgICAg
Ly8gRmluZCB0aGUgZW5jbG9zaW5nIGxpc3Qgbm9kZS4KICAgICAgICAgTm9kZSogbGlzdE5vZGUg
PSAwOwotICAgICAgICBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyKHRoaXMpOworICAg
ICAgICBBbmNlc3RvckNoYWluV2Fsa2VyIHdhbGtlcih0aGlzKTsKICAgICAgICAgd2hpbGUgKCFs
aXN0Tm9kZSkgewogICAgICAgICAgICAgd2Fsa2VyLnBhcmVudCgpOwogICAgICAgICAgICAgaWYg
KCF3YWxrZXIuZ2V0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMDIx
N2EwMmM4NGM0MzA5NWFiYmMzNTc4MDQ0ZGJhZmJiMTRiYzM2Zi4uMjU3NmM5ZGU3ODEyMWY3ZDg1
M2RmY2JmZDBmNDlhMzA5YTc2ZDQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cApAQCAtMjksMTEgKzI5LDExIEBACiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAKICNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQW5jZXN0b3JDaGFpbldhbGtlci5oIgog
I2luY2x1ZGUgIkF1dG9zY3JvbGxDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2Uu
aCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNs
dWRlICJDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaCIKICNpbmNsdWRlICJDdXJzb3IuaCIKICNp
bmNsdWRlICJDdXJzb3JMaXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCBhZWY0ZTU0OGEzMWYwZDAwN2YyYjYxY2Iw
MDg1ZjlkNjQ2YWU5MTJhLi4xNjUzZGY2ZGVlNTg4ZGUzZDI1ZjE4NmUyZTg4NDc2NzI3YWE3YjFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0yOSw3ICsyOSw2
IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCi0j
aW5jbHVkZSAiQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKQEAgLTQ4
LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVz
dWx0LmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIk5vZGVSZW5kZXJp
bmdUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCkBAIC02NiwzNSArNjYsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
IAotc3RhdGljIGlubGluZSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyRnJvbShjb25z
dCBOb2RlKiBub2RlKQotewotICAgIHJldHVybiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIobm9k
ZSwgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpEb05vdENyb3NzVXBwZXJCb3VuZGFyeSk7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlckZyb21OZXh0
KGNvbnN0IE5vZGUqIG5vZGUpCi17Ci0gICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtl
ciA9IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcihub2RlLCBDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXI6OkRvTm90Q3Jvc3NVcHBlckJvdW5kYXJ5KTsKLSAgICB3YWxrZXIubmV4dCgpOwotICAgIHJl
dHVybiB3YWxrZXI7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2Vy
IHdhbGtlckZyb21QcmV2aW91cyhjb25zdCBOb2RlKiBub2RlKQotewotICAgIENvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlciB3YWxrZXIgPSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIobm9kZSwgQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpEb05vdENyb3NzVXBwZXJCb3VuZGFyeSk7Ci0gICAgd2Fs
a2VyLnByZXZpb3VzKCk7Ci0gICAgcmV0dXJuIHdhbGtlcjsKLX0KLQotc3RhdGljIGlubGluZSBO
b2RlKiBuZXh0Tm9kZShjb25zdCBOb2RlKiBub2RlKQotewotICAgIHJldHVybiB3YWxrZXJGcm9t
TmV4dChub2RlKS5nZXQoKTsKLX0KLQotc3RhdGljIGlubGluZSBOb2RlKiBwcmV2aW91c05vZGUo
Y29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICByZXR1cm4gd2Fsa2VyRnJvbVByZXZpb3VzKG5vZGUp
LmdldCgpOwotfQotCiBGb2N1c05hdmlnYXRpb25TY29wZTo6Rm9jdXNOYXZpZ2F0aW9uU2NvcGUo
VHJlZVNjb3BlKiB0cmVlU2NvcGUpCiAgICAgOiBtX3Jvb3RUcmVlU2NvcGUodHJlZVNjb3BlKQog
ewpAQCAtMTIwLDEyICs5MSw5IEBAIEVsZW1lbnQqIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpvd25l
cigpIGNvbnN0CiBGb2N1c05hdmlnYXRpb25TY29wZSBGb2N1c05hdmlnYXRpb25TY29wZTo6Zm9j
dXNOYXZpZ2F0aW9uU2NvcGVPZihOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKLSAg
ICBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyKG5vZGUsIENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlcjo6RG9Ob3RDcm9zc1VwcGVyQm91bmRhcnkpOwogICAgIE5vZGUqIHJvb3QgPSBub2Rl
OwotICAgIHdoaWxlICh3YWxrZXIuZ2V0KCkpIHsKLSAgICAgICAgcm9vdCA9IHdhbGtlci5nZXQo
KTsKLSAgICAgICAgd2Fsa2VyLnBhcmVudCgpOwotICAgIH0KKyAgICBmb3IgKE5vZGUqIG4gPSBu
b2RlOyBuOyBuID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6cGFyZW50SW5TY29wZShuKSkKKyAg
ICAgICAgcm9vdCA9IG47CiAgICAgLy8gVGhlIHJlc3VsdCBpcyBub3QgYWx3YXlzIGEgU2hhZG93
Um9vdCBub3IgYSBEb2N1bWVudE5vZGUgc2luY2UKICAgICAvLyBhIHN0YXJ0aW5nIG5vZGUgaXMg
aW4gYW4gb3JwaGFuZWQgdHJlZSBpbiBjb21wb3NlZCBzaGFkb3cgdHJlZS4KICAgICByZXR1cm4g
Rm9jdXNOYXZpZ2F0aW9uU2NvcGUocm9vdC0+dHJlZVNjb3BlKCkpOwpAQCAtNDQ5LDkgKzQxNywx
MCBAQCBOb2RlKiBGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2FibGVOb2RlKEZvY3VzRGlyZWN0
aW9uIGRpcmVjdGlvbiwgRm9jdXNOYXZpZ2F0aQogTm9kZSogRm9jdXNDb250cm9sbGVyOjpmaW5k
Tm9kZVdpdGhFeGFjdFRhYkluZGV4KE5vZGUqIHN0YXJ0LCBpbnQgdGFiSW5kZXgsIEtleWJvYXJk
RXZlbnQqIGV2ZW50LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgLy8gU2VhcmNo
IGlzIGluY2x1c2l2ZSBvZiBzdGFydAotICAgIGZvciAoQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2Vy
IHdhbGtlciA9IHdhbGtlckZyb20oc3RhcnQpOyB3YWxrZXIuZ2V0KCk7IGRpcmVjdGlvbiA9PSBG
b2N1c0RpcmVjdGlvbkZvcndhcmQgPyB3YWxrZXIubmV4dCgpIDogd2Fsa2VyLnByZXZpb3VzKCkp
IHsKLSAgICAgICAgaWYgKHNob3VsZFZpc2l0KHdhbGtlci5nZXQoKSwgZXZlbnQpICYmIGFkanVz
dGVkVGFiSW5kZXgod2Fsa2VyLmdldCgpLCBldmVudCkgPT0gdGFiSW5kZXgpCi0gICAgICAgICAg
ICByZXR1cm4gd2Fsa2VyLmdldCgpOworICAgIHVzaW5nIG5hbWVzcGFjZSBOb2RlUmVuZGVyaW5n
VHJhdmVyc2FsOworICAgIGZvciAoTm9kZSogbm9kZSA9IHN0YXJ0OyBub2RlOyBub2RlID0gZGly
ZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA/IG5leHRJblNjb3BlKG5vZGUpIDogcHJl
dmlvdXNJblNjb3BlKG5vZGUpKSB7CisgICAgICAgIGlmIChzaG91bGRWaXNpdChub2RlLCBldmVu
dCkgJiYgYWRqdXN0ZWRUYWJJbmRleChub2RlLCBldmVudCkgPT0gdGFiSW5kZXgpCisgICAgICAg
ICAgICByZXR1cm4gbm9kZTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CkBAIC00NjEsOCArNDMw
LDcgQEAgc3RhdGljIE5vZGUqIG5leHROb2RlV2l0aEdyZWF0ZXJUYWJJbmRleChOb2RlKiBzdGFy
dCwgaW50IHRhYkluZGV4LCBLZXlib2FyZEV2ZW4KICAgICAvLyBTZWFyY2ggaXMgaW5jbHVzaXZl
IG9mIHN0YXJ0CiAgICAgaW50IHdpbm5pbmdUYWJJbmRleCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8
c2hvcnQ+OjptYXgoKSArIDE7CiAgICAgTm9kZSogd2lubmVyID0gMDsKLSAgICBmb3IgKENvbXBv
c2VkU2hhZG93VHJlZVdhbGtlciB3YWxrZXIgPSB3YWxrZXJGcm9tKHN0YXJ0KTsgd2Fsa2VyLmdl
dCgpOyB3YWxrZXIubmV4dCgpKSB7Ci0gICAgICAgIE5vZGUqIG5vZGUgPSB3YWxrZXIuZ2V0KCk7
CisgICAgZm9yIChOb2RlKiBub2RlID0gc3RhcnQ7IG5vZGU7IG5vZGUgPSBOb2RlUmVuZGVyaW5n
VHJhdmVyc2FsOjpuZXh0SW5TY29wZShub2RlKSkgewogICAgICAgICBpZiAoc2hvdWxkVmlzaXQo
bm9kZSwgZXZlbnQpICYmIG5vZGUtPnRhYkluZGV4KCkgPiB0YWJJbmRleCAmJiBub2RlLT50YWJJ
bmRleCgpIDwgd2lubmluZ1RhYkluZGV4KSB7CiAgICAgICAgICAgICB3aW5uZXIgPSBub2RlOwog
ICAgICAgICAgICAgd2lubmluZ1RhYkluZGV4ID0gbm9kZS0+dGFiSW5kZXgoKTsKQEAgLTQ3Nyw4
ICs0NDUsNyBAQCBzdGF0aWMgTm9kZSogcHJldmlvdXNOb2RlV2l0aExvd2VyVGFiSW5kZXgoTm9k
ZSogc3RhcnQsIGludCB0YWJJbmRleCwgS2V5Ym9hcmRFdgogICAgIC8vIFNlYXJjaCBpcyBpbmNs
dXNpdmUgb2Ygc3RhcnQKICAgICBpbnQgd2lubmluZ1RhYkluZGV4ID0gMDsKICAgICBOb2RlKiB3
aW5uZXIgPSAwOwotICAgIGZvciAoQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlciA9IHdh
bGtlckZyb20oc3RhcnQpOyB3YWxrZXIuZ2V0KCk7IHdhbGtlci5wcmV2aW91cygpKSB7Ci0gICAg
ICAgIE5vZGUqIG5vZGUgPSB3YWxrZXIuZ2V0KCk7CisgICAgZm9yIChOb2RlKiBub2RlID0gc3Rh
cnQ7IG5vZGU7IG5vZGUgPSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpwcmV2aW91c0luU2NvcGUo
bm9kZSkpIHsKICAgICAgICAgaW50IGN1cnJlbnRUYWJJbmRleCA9IGFkanVzdGVkVGFiSW5kZXgo
bm9kZSwgZXZlbnQpOwogICAgICAgICBpZiAoKHNob3VsZFZpc2l0KG5vZGUsIGV2ZW50KSB8fCBp
c05vbkZvY3VzYWJsZVNoYWRvd0hvc3Qobm9kZSwgZXZlbnQpKSAmJiBjdXJyZW50VGFiSW5kZXgg
PCB0YWJJbmRleCAmJiBjdXJyZW50VGFiSW5kZXggPiB3aW5uaW5nVGFiSW5kZXgpIHsKICAgICAg
ICAgICAgIHdpbm5lciA9IG5vZGU7CkBAIC00OTAsMTggKzQ1NywyMCBAQCBzdGF0aWMgTm9kZSog
cHJldmlvdXNOb2RlV2l0aExvd2VyVGFiSW5kZXgoTm9kZSogc3RhcnQsIGludCB0YWJJbmRleCwg
S2V5Ym9hcmRFdgogCiBOb2RlKiBGb2N1c0NvbnRyb2xsZXI6Om5leHRGb2N1c2FibGVOb2RlKEZv
Y3VzTmF2aWdhdGlvblNjb3BlIHNjb3BlLCBOb2RlKiBzdGFydCwgS2V5Ym9hcmRFdmVudCogZXZl
bnQpCiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw7CisKICAg
ICBpZiAoc3RhcnQpIHsKICAgICAgICAgaW50IHRhYkluZGV4ID0gYWRqdXN0ZWRUYWJJbmRleChz
dGFydCwgZXZlbnQpOwogICAgICAgICAvLyBJZiBhIG5vZGUgaXMgZXhjbHVkZWQgZnJvbSB0aGUg
bm9ybWFsIHRhYmJpbmcgY3ljbGUsIHRoZSBuZXh0IGZvY3VzYWJsZSBub2RlIGlzIGRldGVybWlu
ZWQgYnkgdHJlZSBvcmRlcgogICAgICAgICBpZiAodGFiSW5kZXggPCAwKSB7Ci0gICAgICAgICAg
ICBmb3IgKENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxrZXIgPSB3YWxrZXJGcm9tTmV4dChz
dGFydCk7IHdhbGtlci5nZXQoKTsgd2Fsa2VyLm5leHQoKSkgewotICAgICAgICAgICAgICAgIGlm
IChzaG91bGRWaXNpdCh3YWxrZXIuZ2V0KCksIGV2ZW50KSAmJiBhZGp1c3RlZFRhYkluZGV4KHdh
bGtlci5nZXQoKSwgZXZlbnQpID49IDApCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiB3YWxr
ZXIuZ2V0KCk7CisgICAgICAgICAgICBmb3IgKE5vZGUqIG5vZGUgPSBuZXh0SW5TY29wZShzdGFy
dCk7IG5vZGU7IG5vZGUgPSBuZXh0SW5TY29wZShub2RlKSkgeworICAgICAgICAgICAgICAgIGlm
IChzaG91bGRWaXNpdChub2RlLCBldmVudCkgJiYgYWRqdXN0ZWRUYWJJbmRleChub2RlLCBldmVu
dCkgPj0gMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KIAogICAgICAgICAvLyBGaXJzdCB0cnkgdG8gZmluZCBhIG5vZGUgd2l0aCB0
aGUgc2FtZSB0YWJpbmRleCBhcyBzdGFydCB0aGF0IGNvbWVzIGFmdGVyIHN0YXJ0IGluIHRoZSBz
Y29wZS4KLSAgICAgICAgaWYgKE5vZGUqIHdpbm5lciA9IGZpbmROb2RlV2l0aEV4YWN0VGFiSW5k
ZXgobmV4dE5vZGUoc3RhcnQpLCB0YWJJbmRleCwgZXZlbnQsIEZvY3VzRGlyZWN0aW9uRm9yd2Fy
ZCkpCisgICAgICAgIGlmIChOb2RlKiB3aW5uZXIgPSBmaW5kTm9kZVdpdGhFeGFjdFRhYkluZGV4
KG5leHRJblNjb3BlKHN0YXJ0KSwgdGFiSW5kZXgsIGV2ZW50LCBGb2N1c0RpcmVjdGlvbkZvcndh
cmQpKQogICAgICAgICAgICAgcmV0dXJuIHdpbm5lcjsKIAogICAgICAgICBpZiAoIXRhYkluZGV4
KQpAQCAtNTIyLDkgKzQ5MSwxMSBAQCBOb2RlKiBGb2N1c0NvbnRyb2xsZXI6Om5leHRGb2N1c2Fi
bGVOb2RlKEZvY3VzTmF2aWdhdGlvblNjb3BlIHNjb3BlLCBOb2RlKiBzdGFydAogCiBOb2RlKiBG
b2N1c0NvbnRyb2xsZXI6OnByZXZpb3VzRm9jdXNhYmxlTm9kZShGb2N1c05hdmlnYXRpb25TY29w
ZSBzY29wZSwgTm9kZSogc3RhcnQsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogeworICAgIHVzaW5n
IG5hbWVzcGFjZSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOworCiAgICAgTm9kZSogbGFzdCA9IDA7
Ci0gICAgZm9yIChDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyID0gd2Fsa2VyRnJvbShz
Y29wZS5yb290Tm9kZSgpKTsgd2Fsa2VyLmdldCgpOyB3YWxrZXIubGFzdENoaWxkKCkpCi0gICAg
ICAgIGxhc3QgPSB3YWxrZXIuZ2V0KCk7CisgICAgZm9yIChOb2RlKiBub2RlID0gc2NvcGUucm9v
dE5vZGUoKTsgbm9kZTsgbm9kZSA9IGxhc3RDaGlsZEluU2NvcGUobm9kZSkpCisgICAgICAgIGxh
c3QgPSBub2RlOwogICAgIEFTU0VSVChsYXN0KTsKIAogICAgIC8vIEZpcnN0IHRyeSB0byBmaW5k
IHRoZSBsYXN0IG5vZGUgaW4gdGhlIHNjb3BlIHRoYXQgY29tZXMgYmVmb3JlIHN0YXJ0IGFuZCBo
YXMgdGhlIHNhbWUgdGFiaW5kZXggYXMgc3RhcnQuCkBAIC01MzIsNyArNTAzLDcgQEAgTm9kZSog
Rm9jdXNDb250cm9sbGVyOjpwcmV2aW91c0ZvY3VzYWJsZU5vZGUoRm9jdXNOYXZpZ2F0aW9uU2Nv
cGUgc2NvcGUsIE5vZGUqIHMKICAgICBOb2RlKiBzdGFydGluZ05vZGU7CiAgICAgaW50IHN0YXJ0
aW5nVGFiSW5kZXg7CiAgICAgaWYgKHN0YXJ0KSB7Ci0gICAgICAgIHN0YXJ0aW5nTm9kZSA9IHBy
ZXZpb3VzTm9kZShzdGFydCk7CisgICAgICAgIHN0YXJ0aW5nTm9kZSA9IHByZXZpb3VzSW5TY29w
ZShzdGFydCk7CiAgICAgICAgIHN0YXJ0aW5nVGFiSW5kZXggPSBhZGp1c3RlZFRhYkluZGV4KHN0
YXJ0LCBldmVudCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgc3RhcnRpbmdOb2RlID0gbGFzdDsK
QEAgLTU0MSw5ICs1MTIsOSBAQCBOb2RlKiBGb2N1c0NvbnRyb2xsZXI6OnByZXZpb3VzRm9jdXNh
YmxlTm9kZShGb2N1c05hdmlnYXRpb25TY29wZSBzY29wZSwgTm9kZSogcwogCiAgICAgLy8gSG93
ZXZlciwgaWYgYSBub2RlIGlzIGV4Y2x1ZGVkIGZyb20gdGhlIG5vcm1hbCB0YWJiaW5nIGN5Y2xl
LCB0aGUgcHJldmlvdXMgZm9jdXNhYmxlIG5vZGUgaXMgZGV0ZXJtaW5lZCBieSB0cmVlIG9yZGVy
CiAgICAgaWYgKHN0YXJ0aW5nVGFiSW5kZXggPCAwKSB7Ci0gICAgICAgIGZvciAoQ29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyIHdhbGtlciA9IHdhbGtlckZyb20oc3RhcnRpbmdOb2RlKTsgd2Fsa2Vy
LmdldCgpOyB3YWxrZXIucHJldmlvdXMoKSkgewotICAgICAgICAgICAgaWYgKHNob3VsZFZpc2l0
KHdhbGtlci5nZXQoKSwgZXZlbnQpICYmIGFkanVzdGVkVGFiSW5kZXgod2Fsa2VyLmdldCgpLCBl
dmVudCkgPj0gMCkKLSAgICAgICAgICAgICAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworICAgICAg
ICBmb3IgKE5vZGUqIG5vZGUgPSBzdGFydGluZ05vZGU7IG5vZGU7IG5vZGUgPSBwcmV2aW91c0lu
U2NvcGUobm9kZSkpIHsKKyAgICAgICAgICAgIGlmIChzaG91bGRWaXNpdChub2RlLCBldmVudCkg
JiYgYWRqdXN0ZWRUYWJJbmRleChub2RlLCBldmVudCkgPj0gMCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbm9kZTsKICAgICAgICAgfQogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182067</attachid>
            <date>2013-01-09 22:28:37 -0800</date>
            <delta_ts>2013-01-09 23:07:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106505-20130110152540.patch</filename>
            <type>text/plain</type>
            <size>36476</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDUxMjQ1
NDVmOTM2NGY3Njc4OTcxZmU5NTExNjFmZjkzMzRhMmE3ZGUuLjBjNDIwYWZmZDg5ZmE1N2M0Yzlk
OWJkNzFhZjE4NmJhYzAwNWM2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTEwLDYgKzEx
MTAsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVs
ZS5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwCisgICAgZG9tL0FuY2VzdG9yQ2hh
aW5XYWxrZXIuY3BwCiAgICAgZG9tL0F0dHIuY3BwCiAgICAgZG9tL0JlZm9yZVRleHRJbnNlcnRl
ZEV2ZW50LmNwcAogICAgIGRvbS9CZWZvcmVVbmxvYWRFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDAyMjU5YzQzYzUyMDQwY2IxNGNjYmEzN2E5NWYxMmM0MDQ5YzE5
YzYuLjRlN2U3YTIyZDdjYjhlYTFmY2I1NjU1NDUxMjhhNDE3YzQ0MDdjMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjY5OCw2ICsyNjk4LDggQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vQWN0aXZlRE9NT2JqZWN0LmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9BbmNlc3RvckNoYWlu
V2Fsa2VyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0FuY2VzdG9yQ2hhaW5XYWxrZXIuaCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQXR0
ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQXR0cmlidXRlLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXgg
NTE5ZDk1NDE5YjMxMzZlMDM5ZjRlMTdlYzA3YTljYTM0ODM2NTJjYi4uM2E2OWM0Yjc0Mzc2OWNj
ZmI3MzA3NTgxZDA3M2I0NGQwM2IyZDM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0zMzUsNiArMzM1LDcg
QEAgU09VUkNFUyArPSBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAg
ICAgY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgXAogICAgIGRvbS9BY3RpdmVET01PYmpl
Y3QuY3BwIFwKKyAgICBkb20vQW5jZXN0b3JDaGFpbldhbGtlci5jcHAgXAogICAgIGRvbS9BdHRy
LmNwcCBcCiAgICAgZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcCBcCiAgICAgZG9tL0Jl
Zm9yZVVubG9hZEV2ZW50LmNwcCBcCkBAIC0xNTQyLDYgKzE1NDMsNyBAQCBIRUFERVJTICs9IFwK
ICAgICBjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCiAgICAgY3NzL1dlYktpdENTU1Zp
ZXdwb3J0UnVsZS5oIFwKICAgICBkb20vQWN0aXZlRE9NT2JqZWN0LmggXAorICAgIGRvbS9BbmNl
c3RvckNoYWluV2Fsa2VyLmggXAogICAgIGRvbS9BdHRyLmggXAogICAgIGRvbS9BdHRyaWJ1dGUu
aCBcCiAgICAgZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IGNmNGU5ZDJmYjYzOTNmMmJlZGQ3ODY2MDU2ZGM0NTViMTMyMzI0MjYuLjUxNWMwNGJhZjlm
NmU2ZWMyMzkwMDYyNjhlNjE4M2QwYTEwNGNmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI3MDYs
NiArMjcwNiw4IEBACiAgICAgICAgIF0sCiAgICAgICAgICd3ZWJjb3JlX2RvbV9maWxlcyc6IFsK
ICAgICAgICAgICAgICdkb20vQWN0aXZlRE9NT2JqZWN0LmNwcCcsCisgICAgICAgICAgICAnZG9t
L0FuY2VzdG9yQ2hhaW5XYWxrZXIuY3BwJywKKyAgICAgICAgICAgICdkb20vQW5jZXN0b3JDaGFp
bldhbGtlci5oJywKICAgICAgICAgICAgICdkb20vQXR0ci5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9CZWZvcmVMb2FkRXZlbnQuaCcsCiAgICAgICAgICAgICAnZG9tL0JlZm9yZVRleHRJbnNlcnRl
ZEV2ZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggN2E5YzYwODE1MWZhZGJkOTIxOWUyYjM1MDU2NThmMTliYTczNDY0
NS4uNzVmODg1M2U3ZjQ5NzQxZjQ1NmQwM2UyMDIxNDczZTIwNDUxYWQ4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI4OCw4
ICsxMjg4LDggQEAKIAkJNDk0ODRGQzExMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0
RkIzMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5jcHAgKi87IH07CiAJCTQ5NDg0
RkMyMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQjQxMDJDRjIzQzAwMTg3REQzIC8q
IENhbnZhc0dyYWRpZW50LmggKi87IH07CiAJCTQ5NDg0RkM0MTAyQ0YyM0MwMDE4N0REMyAvKiBD
YW52YXNQYXR0ZXJuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ5NDg0RkI2MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQYXR0ZXJuLmNwcCAqLzsg
fTsKLQkJNDk0ODRGQzUxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BhdHRlcm4uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkI3MTAyQ0YyM0Mw
MDE4N0REMyAvKiBDYW52YXNQYXR0ZXJuLmggKi87IH07CiAJCTQ5NDg0RkM0MTAyQ0YyM0MwMDE4
OEREMyAvKiBDYW52YXNQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0OTQ4NEZCNjEwMkNGMjNDMDAxODhERDMgLyogQ2FudmFzUHJveHkuY3Bw
ICovOyB9OworCQk0OTQ4NEZDNTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0ODRGQjcxMDJD
RjIzQzAwMTg3REQzIC8qIENhbnZhc1BhdHRlcm4uaCAqLzsgfTsKIAkJNDk0ODRGQzUxMDJDRjIz
QzAwMTg4REQzIC8qIENhbnZhc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCNzEwMkNGMjNDMDAxODhERDMgLyogQ2FudmFzUHJveHku
aCAqLzsgfTsKIAkJNDk0ODRGQ0ExMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTQ4NEZCQzEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cCAqLzsgfTsKIAkJNDk0ODRGQ0IxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDk0ODRGQkQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oICov
OyB9OwpAQCAtMTg1OSw4ICsxODU5LDggQEAKIAkJNjVERjMyMzkwOUQxREU2NTAwMEJFMzI1IC8q
IEpTQ2FudmFzR3JhZGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjVERjMyMzMwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzR3JhZGllbnQu
Y3BwICovOyB9OwogCQk2NURGMzIzQTA5RDFERTY1MDAwQkUzMjUgLyogSlNDYW52YXNHcmFkaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVERjMy
MzQwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzR3JhZGllbnQuaCAqLzsgfTsKIAkJNjVERjMy
M0IwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUGF0dGVybi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NURGMzIzNTA5RDFERTY1MDAwQkUzMjUg
LyogSlNDYW52YXNQYXR0ZXJuLmNwcCAqLzsgfTsKLQkJNjVERjMyM0MwOUQxREU2NTAwMEJFMzI1
IC8qIEpTQ2FudmFzUGF0dGVybi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjVERjMyMzYwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUGF0dGVybi5o
ICovOyB9OwogCQk2NURGMzIzQjA5RDFERTY1MDAxQkUzMjUgLyogSlNDYW52YXNQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NURGMzIzNTA5
RDFERTY1MDAxQkUzMjUgLyogSlNDYW52YXNQcm94eS5jcHAgKi87IH07CisJCTY1REYzMjNDMDlE
MURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc1BhdHRlcm4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1REYzMjM2MDlEMURFNjUwMDBCRTMyNSAvKiBKU0Nh
bnZhc1BhdHRlcm4uaCAqLzsgfTsKIAkJNjVERjMyM0MwOUQxREU2NTAwMUJFMzI1IC8qIEpTQ2Fu
dmFzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDY1REYzMjM2MDlEMURFNjUwMDFCRTMyNSAvKiBKU0NhbnZhc1Byb3h5LmggKi87IH07CiAJCTY1
REYzMjYxMDlEMUUxOTkwMDBCRTMyNSAvKiBVc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgxQUYwOUQx
NEVFNjAwMEU2MUQ3IC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHAgKi87IH07CiAJCTY1
RTBFOTQ0MTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RTBFOTQzMTEzM0M4OUYwMEI0Q0IxMCAv
KiBKU0RPTVdyYXBwZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMzkzNCw2ICszOTM0LDggQEAKIAkJQTc3RTFGRjAxNEFBQ0I2RTAwNUI3Q0I2
IC8qIFRyZWVTY29wZUFkb3B0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3N0UxRkVFMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVy
LmggKi87IH07CiAJCUE3ODFDNkE3MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzgxQzZB
NjEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwICovOyB9OwogCQlBNzg0OTQx
QjBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlw
Ym9hcmQuY3BwICovOyB9OworCQlBNzhDREQyRTE2OUU5MUExMDA5MTM2RjMgLyogQW5jZXN0b3JD
aGFpbldhbGtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzVDQkU0MzE2OUU5MTNEMDAwM0E2MEYgLyogQW5jZXN0b3JDaGFpbldhbGtlci5jcHAg
Ki87IH07CisJCUE3OENERDMwMTY5RTkxQTQwMDkxMzZGMyAvKiBBbmNlc3RvckNoYWluV2Fsa2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVDQkU0
NDE2OUU5MTNEMDAwM0E2MEYgLyogQW5jZXN0b3JDaGFpbldhbGtlci5oICovOyB9OwogCQlBNzhF
NTI2RjEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEU1MjZEMTM0NkJEMTcwMEFE
OUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuY3BwICovOyB9OwogCQlBNzhFNTI3MDEzNDZCRDE3
MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhFNTI2RTEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJT
aGFkb3dFbGVtZW50LmggKi87IH07CiAJCUE3OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVs
bENoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5jcHAgKi87IH07CkBA
IC04NTc1LDEwICs4NTc3LDEwIEBACiAJCTQ5NDg0RkI0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52
YXNHcmFkaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYW52YXNHcmFk
aWVudC5oOyBwYXRoID0gY2FudmFzL0NhbnZhc0dyYWRpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ5NDg0RkI1MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gQ2FudmFzR3JhZGllbnQuaWRsOyBwYXRoID0gY2Fu
dmFzL0NhbnZhc0dyYWRpZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk0
ODRGQjYxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BhdHRlcm4uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ2FudmFzUGF0dGVybi5jcHA7IHBhdGggPSBjYW52YXMv
Q2FudmFzUGF0dGVybi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5NDg0RkI3
MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IENhbnZhc1BhdHRlcm4uaDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQYXR0ZXJu
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5NDg0RkI4MTAyQ0YyM0MwMDE4N0RE
MyAvKiBDYW52YXNQYXR0ZXJuLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBDYW52YXNQYXR0
ZXJuLmlkbDsgcGF0aCA9IGNhbnZhcy9DYW52YXNQYXR0ZXJuLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDk0ODRGQjYxMDJDRjIzQzAwMTg4REQzIC8qIENhbnZhc1Byb3h5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENhbnZhc1Byb3h5LmNwcDsg
cGF0aCA9IGNhbnZhcy9DYW52YXNQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ5NDg0RkI3MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNQYXR0ZXJuLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENhbnZhc1BhdHRlcm4uaDsgcGF0aCA9IGNhbnZhcy9D
YW52YXNQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NDg0RkI3MTAy
Q0YyM0MwMDE4OEREMyAvKiBDYW52YXNQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBDYW52YXNQcm94eS5oOyBwYXRoID0gY2FudmFzL0NhbnZhc1Byb3h5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5NDg0RkI4MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52
YXNQYXR0ZXJuLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBDYW52YXNQYXR0ZXJuLmlkbDsg
cGF0aCA9IGNhbnZhcy9DYW52YXNQYXR0ZXJuLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDk0ODRGQjgxMDJDRjIzQzAwMTg4REQzIC8qIENhbnZhc1Byb3h5LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IG5hbWUgPSBDYW52YXNQcm94eS5pZGw7IHBhdGggPSBjYW52YXMvQ2FudmFzUHJv
eHkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTQ4NEZCQzEwMkNGMjNDMDAx
ODdERDMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA7IHBhdGggPSBj
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDk0ODRGQkQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaDsgcGF0aCA9IGNhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkxOTMsOCArOTE5NSw4IEBACiAJCTY1REYzMjMz
MDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc0dyYWRpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NhbnZhc0dyYWRpZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjVERjMyMzQwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzR3Jh
ZGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ2FudmFzR3JhZGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjVERjMyMzUwOUQxREU2NTAwMEJF
MzI1IC8qIEpTQ2FudmFzUGF0dGVybi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNDYW52YXNQYXR0ZXJuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNjVERjMyMzYwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUGF0dGVybi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDYW52YXNQYXR0ZXJuLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTY1REYzMjM1MDlEMURFNjUwMDFCRTMyNSAvKiBKU0NhbnZhc1By
b3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NhbnZhc1By
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjVERjMyMzYwOUQxREU2NTAw
MEJFMzI1IC8qIEpTQ2FudmFzUGF0dGVybi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNDYW52YXNQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1
REYzMjM2MDlEMURFNjUwMDFCRTMyNSAvKiBKU0NhbnZhc1Byb3h5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0NhbnZhc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTY1RTBFOTQzMTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01XcmFwcGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTY1RjgwNjk3MDU0RDlGODYwMDhCRjc3NiAvKiBCbG9ja0V4Y2Vw
dGlvbnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBCbG9ja0V4Y2VwdGlvbnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTEyODcsNiArMTEyODksOCBAQAogCQlB
NzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUm91bmRlZFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUm91bmRlZFJlY3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlv
bkNvZGVQbGFjZWhvbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNl
cHRpb25Db2RlUGxhY2Vob2xkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc1
Q0JFNDMxNjlFOTEzRDAwMDNBNjBGIC8qIEFuY2VzdG9yQ2hhaW5XYWxrZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQW5jZXN0b3JDaGFpbldhbGtlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3NUNCRTQ0MTY5RTkxM0QwMDAzQTYwRiAvKiBB
bmNlc3RvckNoYWluV2Fsa2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFu
Y2VzdG9yQ2hhaW5XYWxrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5
NzQxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzVFOEI4MDBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBGRUJsZW5kLmNwcDsgcGF0aCA9IGZpbHRlcnMvRkVCbGVuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTk5Niw2ICsyMjAwMCw4IEBACiAJ
CQljaGlsZHJlbiA9ICgKIAkJCQlFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9N
T2JqZWN0LmNwcCAqLywKIAkJCQlFMUM0REU2ODBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9N
T2JqZWN0LmggKi8sCisJCQkJQTc1Q0JFNDMxNjlFOTEzRDAwMDNBNjBGIC8qIEFuY2VzdG9yQ2hh
aW5XYWxrZXIuY3BwICovLAorCQkJCUE3NUNCRTQ0MTY5RTkxM0QwMDAzQTYwRiAvKiBBbmNlc3Rv
ckNoYWluV2Fsa2VyLmggKi8sCiAJCQkJQThDNEE3RkMwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIu
Y3BwICovLAogCQkJCUE4QzRBN0ZCMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmggKi8sCiAJCQkJ
OTNFRUMxRTUwOUMyODc3NzAwQzUxNUQxIC8qIEF0dHIuaWRsICovLApAQCAtMjI3NjksNiArMjI3
NzUsNyBAQAogCQkJCUNFMDhDM0QyMTUyQjU5OUEwMDIxQjhDMiAvKiBBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTdCMkRCMzE1ODZBQkFEMDA5OEIzRkEg
LyogQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMx
NjAzRTEyQjAyNjc2MDBDMUEzNTkgLyogQW5hbHlzZXJOb2RlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBNzhDREQzMDE2OUU5MUE0MDA5MTM2RjMgLyogQW5jZXN0b3JDaGFpbldhbGtlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDkwNzA3RTcxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJp
ZGdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUU5MTJBQjBFRkFDOTA2MDA5RDBDQUYgLyogQW5p
bWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTExMjBFNkUxREE3MDBCRjYwODggLyog
QW5pbWF0aW9uQmFzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjQ1MSw2ICsyNjQ1OCw3IEBACiAJ
CQkJQ0UwOEMzRDExNTJCNTk5QTAwMjFCOEMyIC8qIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0U3QjJEQjQxNTg2QUJBRDAwOThCM0ZBIC8qIEFsdGVy
bmF0aXZlVGV4dFVJQ29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MDNEMTJC
MDI2NzYwMEMxQTM1OSAvKiBBbmFseXNlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTc4
Q0REMkUxNjlFOTFBMTAwOTEzNkYzIC8qIEFuY2VzdG9yQ2hhaW5XYWxrZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDkwNzA3RTYxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5RTkxMkFBMEVGQUM5MDYwMDlEMENBRiAvKiBBbmlt
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE2RkUxMTEwRTZFMURBNzAwQkY2MDg4IC8q
IEFuaW1hdGlvbkJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQW5jZXN0b3JDaGFpbldhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQW5j
ZXN0b3JDaGFpbldhbGtlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTcwY2RjMjA1OTdjNTBiMjE4ZGY0MzEw
MzhlNmM1OGI5ZWFiYWFlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9B
bmNlc3RvckNoYWluV2Fsa2VyLmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFuY2VzdG9yQ2hhaW5XYWxrZXIuaCIKKworI2luY2x1ZGUgIkNvbnRl
bnREaXN0cmlidXRvci5oIgorI2luY2x1ZGUgIkluc2VydGlvblBvaW50LmgiCisjaW5jbHVkZSAi
U2hhZG93Um9vdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0FuY2VzdG9yQ2hhaW5XYWxr
ZXI6OkFuY2VzdG9yQ2hhaW5XYWxrZXIoY29uc3QgTm9kZSogbm9kZSkKKyAgICA6IG1fbm9kZShu
b2RlKQorICAgICwgbV9kaXN0cmlidXRlZE5vZGUobm9kZSkKKyAgICAsIG1faXNDcm9zc2luZ0lu
c2VydGlvblBvaW50KGZhbHNlKQoreworICAgIEFTU0VSVChub2RlKTsKK30KKwordm9pZCBBbmNl
c3RvckNoYWluV2Fsa2VyOjpwYXJlbnQoKQoreworICAgIEFTU0VSVChtX25vZGUpOworICAgIEFT
U0VSVChtX2Rpc3RyaWJ1dGVkTm9kZSk7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9
IHNoYWRvd09mUGFyZW50KG1fbm9kZSkpIHsKKyAgICAgICAgaWYgKEluc2VydGlvblBvaW50KiBp
bnNlcnRpb25Qb2ludCA9IHNoYWRvdy0+ZGlzdHJpYnV0b3IoKS5maW5kSW5zZXJ0aW9uUG9pbnRG
b3IobV9kaXN0cmlidXRlZE5vZGUpKSB7CisgICAgICAgICAgICBtX25vZGUgPSBpbnNlcnRpb25Q
b2ludDsKKyAgICAgICAgICAgIG1faXNDcm9zc2luZ0luc2VydGlvblBvaW50ID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIW1fbm9kZS0+aXNT
aGFkb3dSb290KCkpIHsKKyAgICAgICAgbV9ub2RlID0gbV9ub2RlLT5wYXJlbnROb2RlKCk7Cisg
ICAgICAgIGlmICghKG1fbm9kZSAmJiBtX25vZGUtPmlzU2hhZG93Um9vdCgpICYmIFNjb3BlQ29u
dGVudERpc3RyaWJ1dGlvbjo6YXNzaWduZWRUbyh0b1NoYWRvd1Jvb3QobV9ub2RlKSkpKQorICAg
ICAgICAgICAgbV9kaXN0cmlidXRlZE5vZGUgPSBtX25vZGU7CisgICAgICAgIG1faXNDcm9zc2lu
Z0luc2VydGlvblBvaW50ID0gZmFsc2U7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBj
b25zdCBTaGFkb3dSb290KiBzaGFkb3dSb290ID0gdG9TaGFkb3dSb290KG1fbm9kZSk7CisgICAg
aWYgKEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCA9IFNjb3BlQ29udGVudERpc3RyaWJ1
dGlvbjo6YXNzaWduZWRUbyhzaGFkb3dSb290KSkgeworICAgICAgICBtX25vZGUgPSBpbnNlcnRp
b25Qb2ludDsKKyAgICAgICAgbV9pc0Nyb3NzaW5nSW5zZXJ0aW9uUG9pbnQgPSB0cnVlOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIG1fbm9kZSA9IHNoYWRvd1Jvb3QtPmhvc3QoKTsKKyAg
ICBtX2Rpc3RyaWJ1dGVkTm9kZSA9IG1fbm9kZTsKKyAgICBtX2lzQ3Jvc3NpbmdJbnNlcnRpb25Q
b2ludCA9IGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0FuY2VzdG9yQ2hhaW5XYWxrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BbmNl
c3RvckNoYWluV2Fsa2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY1NTJlYjlhYjk2OTNmYjQ3OGE3NzNkOTY0
Y2Y0MzZhOGFlNDk4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BbmNl
c3RvckNoYWluV2Fsa2VyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQW5jZXN0b3JDaGFp
bldhbGtlcl9oCisjZGVmaW5lIEFuY2VzdG9yQ2hhaW5XYWxrZXJfaAorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIE5vZGU7CisKK2NsYXNzIEFuY2VzdG9yQ2hhaW5XYWxrZXIgeworcHVi
bGljOgorICAgIGV4cGxpY2l0IEFuY2VzdG9yQ2hhaW5XYWxrZXIoY29uc3QgTm9kZSopOworICAg
IHZvaWQgcGFyZW50KCk7CisgICAgTm9kZSogZ2V0KCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2Fz
dDxOb2RlKj4obV9ub2RlKTsgfQorICAgIGJvb2wgY3Jvc3NpbmdJbnNlcnRpb25Qb2ludCgpIHsg
cmV0dXJuIG1faXNDcm9zc2luZ0luc2VydGlvblBvaW50OyB9CisKK3ByaXZhdGU6CisgICAgY29u
c3QgTm9kZSogbV9ub2RlOworICAgIGNvbnN0IE5vZGUqIG1fZGlzdHJpYnV0ZWROb2RlOworICAg
IGJvb2wgbV9pc0Nyb3NzaW5nSW5zZXJ0aW9uUG9pbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtl
ci5jcHAKaW5kZXggNjViMTMzY2ZiMjI1OGVlZjIyNzlhZTVhYTZkNTg3YmQzOTZlZWNlNi4uYWI1
OGQ2MTUyYmM2MGQ5MDUxN2FlNGFiOGNlZWEwN2I0OGZjYjE4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKQEAgLTQ1LDE2ICs0NSw2IEBA
IHN0YXRpYyBpbmxpbmUgRWxlbWVudFNoYWRvdyogc2hhZG93Rm9yKGNvbnN0IE5vZGUqIG5vZGUp
CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRWxlbWVudFNoYWRvdyogc2hhZG93
T2ZQYXJlbnQoY29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJl
dHVybiAwOwotICAgIGlmIChOb2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnROb2RlKCkpCi0gICAg
ICAgIGlmIChwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgICAgIHJldHVybiB0b0Vs
ZW1lbnQocGFyZW50KS0+c2hhZG93KCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbmxp
bmUgYm9vbCBub2RlQ2FuQmVEaXN0cmlidXRlZChjb25zdCBOb2RlKiBub2RlKQogewogICAgIEFT
U0VSVChub2RlKTsKQEAgLTMyMiw0MiArMzEyLDQgQEAgdm9pZCBDb21wb3NlZFNoYWRvd1RyZWVX
YWxrZXI6OnByZXZpb3VzKCkKICAgICBhc3NlcnRQb3N0Y29uZGl0aW9uKCk7CiB9CiAKLUFuY2Vz
dG9yQ2hhaW5XYWxrZXI6OkFuY2VzdG9yQ2hhaW5XYWxrZXIoY29uc3QgTm9kZSogbm9kZSkKLSAg
ICA6IG1fbm9kZShub2RlKQotICAgICwgbV9kaXN0cmlidXRlZE5vZGUobm9kZSkKLSAgICAsIG1f
aXNDcm9zc2luZ0luc2VydGlvblBvaW50KGZhbHNlKQotewotICAgIEFTU0VSVChub2RlKTsKLX0K
LQotdm9pZCBBbmNlc3RvckNoYWluV2Fsa2VyOjpwYXJlbnQoKQotewotICAgIEFTU0VSVChtX25v
ZGUpOwotICAgIEFTU0VSVChtX2Rpc3RyaWJ1dGVkTm9kZSk7Ci0gICAgaWYgKEVsZW1lbnRTaGFk
b3cqIHNoYWRvdyA9IHNoYWRvd09mUGFyZW50KG1fbm9kZSkpIHsKLSAgICAgICAgaWYgKEluc2Vy
dGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCA9IHNoYWRvdy0+ZGlzdHJpYnV0b3IoKS5maW5kSW5z
ZXJ0aW9uUG9pbnRGb3IobV9kaXN0cmlidXRlZE5vZGUpKSB7Ci0gICAgICAgICAgICBtX25vZGUg
PSBpbnNlcnRpb25Qb2ludDsKLSAgICAgICAgICAgIG1faXNDcm9zc2luZ0luc2VydGlvblBvaW50
ID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAo
IW1fbm9kZS0+aXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAgbV9ub2RlID0gbV9ub2RlLT5wYXJl
bnROb2RlKCk7Ci0gICAgICAgIGlmICghKG1fbm9kZSAmJiBtX25vZGUtPmlzU2hhZG93Um9vdCgp
ICYmIFNjb3BlQ29udGVudERpc3RyaWJ1dGlvbjo6YXNzaWduZWRUbyh0b1NoYWRvd1Jvb3QobV9u
b2RlKSkpKQotICAgICAgICAgICAgbV9kaXN0cmlidXRlZE5vZGUgPSBtX25vZGU7Ci0gICAgICAg
IG1faXNDcm9zc2luZ0luc2VydGlvblBvaW50ID0gZmFsc2U7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBjb25zdCBTaGFkb3dSb290KiBzaGFkb3dSb290ID0gdG9TaGFkb3dSb290KG1f
bm9kZSk7Ci0gICAgaWYgKEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCA9IFNjb3BlQ29u
dGVudERpc3RyaWJ1dGlvbjo6YXNzaWduZWRUbyhzaGFkb3dSb290KSkgewotICAgICAgICBtX25v
ZGUgPSBpbnNlcnRpb25Qb2ludDsKLSAgICAgICAgbV9pc0Nyb3NzaW5nSW5zZXJ0aW9uUG9pbnQg
PSB0cnVlOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1fbm9kZSA9IHNoYWRvd1Jvb3Qt
Pmhvc3QoKTsKLSAgICBtX2Rpc3RyaWJ1dGVkTm9kZSA9IG1fbm9kZTsKLSAgICBtX2lzQ3Jvc3Np
bmdJbnNlcnRpb25Qb2ludCA9IGZhbHNlOwotfQotCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oCmluZGV4IGI4MDlhMjZhYzQ5
OTJhODU1YWU0ZWIyOTQwM2Y4MTM5MjdiNTNiMTIuLjgzNDllMjFhYTk4M2YwYTg0YTExM2MxNjc4
MGU0OWVjNjc2NjRmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyLmgKQEAgLTE0MSwxOSArMTQxLDYgQEAgaW5saW5lIENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlcjo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyKGNvbnN0IE5vZGUqIG5vZGUsIFBvbGkK
ICNlbmRpZgogfQogCi1jbGFzcyBBbmNlc3RvckNoYWluV2Fsa2VyIHsKLXB1YmxpYzoKLSAgICBl
eHBsaWNpdCBBbmNlc3RvckNoYWluV2Fsa2VyKGNvbnN0IE5vZGUqKTsKLSAgICB2b2lkIHBhcmVu
dCgpOwotICAgIE5vZGUqIGdldCgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Tm9kZSo+KG1f
bm9kZSk7IH0KLSAgICBib29sIGNyb3NzaW5nSW5zZXJ0aW9uUG9pbnQoKSB7IHJldHVybiBtX2lz
Q3Jvc3NpbmdJbnNlcnRpb25Qb2ludDsgfQotCi1wcml2YXRlOgotICAgIGNvbnN0IE5vZGUqIG1f
bm9kZTsKLSAgICBjb25zdCBOb2RlKiBtX2Rpc3RyaWJ1dGVkTm9kZTsKLSAgICBib29sIG1faXND
cm9zc2luZ0luc2VydGlvblBvaW50OwotfTsKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCA3MmU0YTQ4NTVmZmY0Y2RjM2ZjZTJmZjky
MTQzMGQyNDg5NzM3Y2E4Li4xOWQ4OWJjZDNmZDZmYjcyYmQ5ZjcyZWE4MzliM2FiY2UxMzI4Yzg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIC8vIFRo
aXMgYWxsLWluLW9uZSBjcHAgZmlsZSBjdXRzIGRvd24gb24gdGVtcGxhdGUgYmxvYXQgdG8gYWxs
b3cgdXMgdG8gYnVpbGQgb3VyIFdpbmRvd3MgcmVsZWFzZSBidWlsZC4KIAogI2luY2x1ZGUgIkFj
dGl2ZURPTU9iamVjdC5jcHAiCisjaW5jbHVkZSAiQW5jZXN0b3JDaGFpbldhbGtlci5jcHAiCiAj
aW5jbHVkZSAiQXR0ci5jcHAiCiAjaW5jbHVkZSAiQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3Bw
IgogI2luY2x1ZGUgIkJlZm9yZVVubG9hZEV2ZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNo
YWRvdy5oCmluZGV4IDkzOWU5YjY5ZjljNjY1N2RhYWI1OGYwMjNkZTE4ZjkwNTAxMDY3YmUuLjkx
ZjY3OTE2ODg2ZDRhOTM0YjEzYWU3NzQ5NmI3MDFiNmQyZWE2MjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRTaGFkb3cuaApAQCAtMTMwLDYgKzEzMCwxNyBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAor
aW5saW5lIEVsZW1lbnRTaGFkb3cqIHNoYWRvd09mUGFyZW50KGNvbnN0IE5vZGUqIG5vZGUpCit7
CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoTm9kZSogcGFyZW50
ID0gbm9kZS0+cGFyZW50Tm9kZSgpKQorICAgICAgICBpZiAocGFyZW50LT5pc0VsZW1lbnROb2Rl
KCkpCisgICAgICAgICAgICByZXR1cm4gdG9FbGVtZW50KHBhcmVudCktPnNoYWRvdygpOworICAg
IHJldHVybiAwOworfQorCisKIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCBkYmYyNGQ1MGJkZmVkZDdmM2NkZjIwYzllNTg0
YTg0ZTc5ZmZjZjE4Li4zY2E5MzhmZmIzOTA5MjAyODBkMmUzOThhNDdkNzUxNTc4MTg1ZTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtMjYsNyArMjYsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlci5oIgogCi0jaW5j
bHVkZSAiQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgiCisjaW5jbHVkZSAiQW5jZXN0b3JDaGFp
bldhbGtlci5oIgogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKICNpbmNsdWRlICJFbGVtZW50
U2hhZG93LmgiCiAjaW5jbHVkZSAiRXZlbnRDb250ZXh0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXgg
NjQ4MWQ5MDVkMjgyMmZiNTJmZjFkZTlkNDNlNWJmMTUyMWNkMDA1NC4uM2RhNWU4ODU3MDExYzgz
MTcyODFiMzczYjgzNzM3YjhlNmEyM2I2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNDAsNyArNDAs
NiBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDaGlsZE5vZGVMaXN0
LmgiCiAjaW5jbHVkZSAiQ2xhc3NOb2RlTGlzdC5oIgotI2luY2x1ZGUgIkNvbXBvc2VkU2hhZG93
VHJlZVdhbGtlci5oIgogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGVBbGdvcml0aG1zLmgiCiAjaW5j
bHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRp
b24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nVHJhdmVy
c2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nVHJhdmVyc2FsLmNwcApp
bmRleCA5NTZhMGJhYzJkNjhjZWY2NDJjZGQ5YWM4OWY2NzkxYjVkZmY5ZjVkLi44M2JiN2VjN2U3
OWVmMmYyMTYzZWYwNzc1Mzc5ZDc3N2U2OWVmZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuY3BwCkBAIC05Miw2ICs5MiwzOCBAQCBOb2RlKiBwcmV2
aW91c1NpYmxpbmdTbG93KGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIDA7CiB9CiAKK05v
ZGUqIG5leHRJblNjb3BlKGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgLy8gRklYTUU6IENvbXBv
c2VkU2hhZG93VHJlZVdhbGtlciBzaG91bGRuJ3QgYmUgdXNlZCB3aGVuICFFTkFCTEUoU0hBRE9X
X0RPTSkgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzMzOQorICAg
IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxrZXIgPSBDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXIobm9kZSwgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpEb05vdENyb3NzVXBwZXJCb3VuZGFy
eSk7CisgICAgd2Fsa2VyLm5leHQoKTsKKyAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworfQorCitO
b2RlKiBwcmV2aW91c0luU2NvcGUoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICAvLyBGSVhNRTog
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHNob3VsZG4ndCBiZSB1c2VkIHdoZW4gIUVOQUJMRShT
SEFET1dfRE9NKSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMzM5
CisgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlciA9IENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlcihub2RlLCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OkRvTm90Q3Jvc3NVcHBlckJv
dW5kYXJ5KTsKKyAgICB3YWxrZXIucHJldmlvdXMoKTsKKyAgICByZXR1cm4gd2Fsa2VyLmdldCgp
OworfQorCitOb2RlKiBwYXJlbnRJblNjb3BlKGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgLy8g
RklYTUU6IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBzaG91bGRuJ3QgYmUgdXNlZCB3aGVuICFF
TkFCTEUoU0hBRE9XX0RPTSkgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMzMzOQorICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxrZXIgPSBDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIobm9kZSwgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpEb05vdENyb3Nz
VXBwZXJCb3VuZGFyeSk7CisgICAgd2Fsa2VyLnBhcmVudCgpOworICAgIHJldHVybiB3YWxrZXIu
Z2V0KCk7Cit9CisKK05vZGUqIGxhc3RDaGlsZEluU2NvcGUoY29uc3QgTm9kZSogbm9kZSkKK3sK
KyAgICAvLyBGSVhNRTogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHNob3VsZG4ndCBiZSB1c2Vk
IHdoZW4gIUVOQUJMRShTSEFET1dfRE9NKSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzMzM5CisgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlciA9IENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlcihub2RlLCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OkRv
Tm90Q3Jvc3NVcHBlckJvdW5kYXJ5KTsKKyAgICB3YWxrZXIubGFzdENoaWxkKCk7CisgICAgcmV0
dXJuIHdhbGtlci5nZXQoKTsKK30KKwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nVHJhdmVyc2FsLmgKaW5kZXggNDQwNDNkZTI3ZjA5MzRjZWU1
OTVkMTI0YzU0YTNkYTRjODgwYjc5ZS4uMmRiM2U3NTk1Y2FjYzBmOWMwNWY4NmZmYTExN2JhZTQ4
OGQ1ODgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdUcmF2
ZXJzYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5o
CkBAIC03MSw2ICs3MSwxMCBAQCBOb2RlKiBuZXh0U2libGluZ1Nsb3coY29uc3QgTm9kZSopOwog
Tm9kZSogcHJldmlvdXNTaWJsaW5nKGNvbnN0IE5vZGUqKTsKIE5vZGUqIHByZXZpb3VzU2libGlu
Z1Nsb3coY29uc3QgTm9kZSopOwogCitOb2RlKiBuZXh0SW5TY29wZShjb25zdCBOb2RlKik7CitO
b2RlKiBwcmV2aW91c0luU2NvcGUoY29uc3QgTm9kZSopOworTm9kZSogcGFyZW50SW5TY29wZShj
b25zdCBOb2RlKik7CitOb2RlKiBsYXN0Q2hpbGRJblNjb3BlKGNvbnN0IE5vZGUqKTsKIAogaW5s
aW5lIENvbnRhaW5lck5vZGUqIHBhcmVudChjb25zdCBOb2RlKiBub2RlLCBQYXJlbnREZXRhaWxz
KiBkZXRhaWxzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCBkOTI3ZWU5MmMxZGNk
NWIyZTEwNDdiNDg0ZTk2OGUzNDVjNGFkYWE5Li42YTU3N2MyN2I1OTFjNzE2ZGNiYTFkNTNhZWY4
NDVlMmY1YmQ4ZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMjcsNyArMjcsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgogCi0jaW5jbHVk
ZSAiQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgiCisjaW5jbHVkZSAiQW5jZXN0b3JDaGFpbldh
bGtlci5oIgogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKICNpbmNsdWRlICJET01TZWxlY3Rp
b24uaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExJRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1l
bnQuY3BwCmluZGV4IDY3NTM2NTI0MzBmYTM3M2U4MTQwMDI3YjYzZDE5NmY1ZmUzZDEwYzIuLjg1
OTBhZTEwMjlkMTRlOTdmYjg5MzNhYjFlZGEyOTBhOTA3MWRmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTElFbGVtZW50LmNwcApAQCAtMjMsMTAgKzIzLDEwIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiSFRNTExJRWxlbWVudC5oIgogCisjaW5jbHVkZSAiQW5jZXN0b3JDaGFp
bldhbGtlci5oIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5
TmFtZXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCi0jaW5jbHVkZSAiQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAi
UmVuZGVyTGlzdEl0ZW0uaCIKIApAQCAtOTYsNyArOTYsNyBAQCB2b2lkIEhUTUxMSUVsZW1lbnQ6
OmF0dGFjaCgpCiAKICAgICAgICAgLy8gRmluZCB0aGUgZW5jbG9zaW5nIGxpc3Qgbm9kZS4KICAg
ICAgICAgTm9kZSogbGlzdE5vZGUgPSAwOwotICAgICAgICBDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXIgd2Fsa2VyKHRoaXMpOworICAgICAgICBBbmNlc3RvckNoYWluV2Fsa2VyIHdhbGtlcih0aGlz
KTsKICAgICAgICAgd2hpbGUgKCFsaXN0Tm9kZSkgewogICAgICAgICAgICAgd2Fsa2VyLnBhcmVu
dCgpOwogICAgICAgICAgICAgaWYgKCF3YWxrZXIuZ2V0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKaW5kZXggMDIxN2EwMmM4NGM0MzA5NWFiYmMzNTc4MDQ0ZGJhZmJiMTRiYzM2
Zi4uMjU3NmM5ZGU3ODEyMWY3ZDg1M2RmY2JmZDBmNDlhMzA5YTc2ZDQ3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjksMTEgKzI5LDExIEBACiAjaW5jbHVkZSAiRXZl
bnRIYW5kbGVyLmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQW5j
ZXN0b3JDaGFpbldhbGtlci5oIgogI2luY2x1ZGUgIkF1dG9zY3JvbGxDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJD
aHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaCIKICNp
bmNsdWRlICJDdXJzb3IuaCIKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCBhZWY0
ZTU0OGEzMWYwZDAwN2YyYjYxY2IwMDg1ZjlkNjQ2YWU5MTJhLi4xNjUzZGY2ZGVlNTg4ZGUzZDI1
ZjE4NmUyZTg4NDc2NzI3YWE3YjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiQ2hyb21lLmgiCi0jaW5jbHVkZSAiQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJF
ZGl0b3JDbGllbnQuaCIKQEAgLTQ4LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgor
I2luY2x1ZGUgIk5vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJOb2RlVHJhdmVy
c2FsLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCkBAIC02NiwzNSAr
NjYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotc3RhdGljIGlubGluZSBDb21wb3NlZFNoYWRvd1RyZWVX
YWxrZXIgd2Fsa2VyRnJvbShjb25zdCBOb2RlKiBub2RlKQotewotICAgIHJldHVybiBDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIobm9kZSwgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpEb05vdENy
b3NzVXBwZXJCb3VuZGFyeSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyIHdhbGtlckZyb21OZXh0KGNvbnN0IE5vZGUqIG5vZGUpCi17Ci0gICAgQ29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyIHdhbGtlciA9IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcihub2RlLCBD
b21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OkRvTm90Q3Jvc3NVcHBlckJvdW5kYXJ5KTsKLSAgICB3
YWxrZXIubmV4dCgpOwotICAgIHJldHVybiB3YWxrZXI7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlckZyb21QcmV2aW91cyhjb25zdCBOb2RlKiBub2Rl
KQotewotICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxrZXIgPSBDb21wb3NlZFNoYWRv
d1RyZWVXYWxrZXIobm9kZSwgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpEb05vdENyb3NzVXBw
ZXJCb3VuZGFyeSk7Ci0gICAgd2Fsa2VyLnByZXZpb3VzKCk7Ci0gICAgcmV0dXJuIHdhbGtlcjsK
LX0KLQotc3RhdGljIGlubGluZSBOb2RlKiBuZXh0Tm9kZShjb25zdCBOb2RlKiBub2RlKQotewot
ICAgIHJldHVybiB3YWxrZXJGcm9tTmV4dChub2RlKS5nZXQoKTsKLX0KLQotc3RhdGljIGlubGlu
ZSBOb2RlKiBwcmV2aW91c05vZGUoY29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICByZXR1cm4gd2Fs
a2VyRnJvbVByZXZpb3VzKG5vZGUpLmdldCgpOwotfQotCiBGb2N1c05hdmlnYXRpb25TY29wZTo6
Rm9jdXNOYXZpZ2F0aW9uU2NvcGUoVHJlZVNjb3BlKiB0cmVlU2NvcGUpCiAgICAgOiBtX3Jvb3RU
cmVlU2NvcGUodHJlZVNjb3BlKQogewpAQCAtMTIwLDEyICs5MSw5IEBAIEVsZW1lbnQqIEZvY3Vz
TmF2aWdhdGlvblNjb3BlOjpvd25lcigpIGNvbnN0CiBGb2N1c05hdmlnYXRpb25TY29wZSBGb2N1
c05hdmlnYXRpb25TY29wZTo6Zm9jdXNOYXZpZ2F0aW9uU2NvcGVPZihOb2RlKiBub2RlKQogewog
ICAgIEFTU0VSVChub2RlKTsKLSAgICBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyKG5v
ZGUsIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6RG9Ob3RDcm9zc1VwcGVyQm91bmRhcnkpOwog
ICAgIE5vZGUqIHJvb3QgPSBub2RlOwotICAgIHdoaWxlICh3YWxrZXIuZ2V0KCkpIHsKLSAgICAg
ICAgcm9vdCA9IHdhbGtlci5nZXQoKTsKLSAgICAgICAgd2Fsa2VyLnBhcmVudCgpOwotICAgIH0K
KyAgICBmb3IgKE5vZGUqIG4gPSBub2RlOyBuOyBuID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6
cGFyZW50SW5TY29wZShuKSkKKyAgICAgICAgcm9vdCA9IG47CiAgICAgLy8gVGhlIHJlc3VsdCBp
cyBub3QgYWx3YXlzIGEgU2hhZG93Um9vdCBub3IgYSBEb2N1bWVudE5vZGUgc2luY2UKICAgICAv
LyBhIHN0YXJ0aW5nIG5vZGUgaXMgaW4gYW4gb3JwaGFuZWQgdHJlZSBpbiBjb21wb3NlZCBzaGFk
b3cgdHJlZS4KICAgICByZXR1cm4gRm9jdXNOYXZpZ2F0aW9uU2NvcGUocm9vdC0+dHJlZVNjb3Bl
KCkpOwpAQCAtNDQ5LDkgKzQxNywxMCBAQCBOb2RlKiBGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1
c2FibGVOb2RlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgRm9jdXNOYXZpZ2F0aQogTm9kZSog
Rm9jdXNDb250cm9sbGVyOjpmaW5kTm9kZVdpdGhFeGFjdFRhYkluZGV4KE5vZGUqIHN0YXJ0LCBp
bnQgdGFiSW5kZXgsIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rp
b24pCiB7CiAgICAgLy8gU2VhcmNoIGlzIGluY2x1c2l2ZSBvZiBzdGFydAotICAgIGZvciAoQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlciA9IHdhbGtlckZyb20oc3RhcnQpOyB3YWxrZXIu
Z2V0KCk7IGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkZvcndhcmQgPyB3YWxrZXIubmV4dCgp
IDogd2Fsa2VyLnByZXZpb3VzKCkpIHsKLSAgICAgICAgaWYgKHNob3VsZFZpc2l0KHdhbGtlci5n
ZXQoKSwgZXZlbnQpICYmIGFkanVzdGVkVGFiSW5kZXgod2Fsa2VyLmdldCgpLCBldmVudCkgPT0g
dGFiSW5kZXgpCi0gICAgICAgICAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworICAgIHVzaW5nIG5h
bWVzcGFjZSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOworICAgIGZvciAoTm9kZSogbm9kZSA9IHN0
YXJ0OyBub2RlOyBub2RlID0gZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA/IG5l
eHRJblNjb3BlKG5vZGUpIDogcHJldmlvdXNJblNjb3BlKG5vZGUpKSB7CisgICAgICAgIGlmIChz
aG91bGRWaXNpdChub2RlLCBldmVudCkgJiYgYWRqdXN0ZWRUYWJJbmRleChub2RlLCBldmVudCkg
PT0gdGFiSW5kZXgpCisgICAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICB9CiAgICAgcmV0dXJu
IDA7CiB9CkBAIC00NjEsOCArNDMwLDcgQEAgc3RhdGljIE5vZGUqIG5leHROb2RlV2l0aEdyZWF0
ZXJUYWJJbmRleChOb2RlKiBzdGFydCwgaW50IHRhYkluZGV4LCBLZXlib2FyZEV2ZW4KICAgICAv
LyBTZWFyY2ggaXMgaW5jbHVzaXZlIG9mIHN0YXJ0CiAgICAgaW50IHdpbm5pbmdUYWJJbmRleCA9
IHN0ZDo6bnVtZXJpY19saW1pdHM8c2hvcnQ+OjptYXgoKSArIDE7CiAgICAgTm9kZSogd2lubmVy
ID0gMDsKLSAgICBmb3IgKENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxrZXIgPSB3YWxrZXJG
cm9tKHN0YXJ0KTsgd2Fsa2VyLmdldCgpOyB3YWxrZXIubmV4dCgpKSB7Ci0gICAgICAgIE5vZGUq
IG5vZGUgPSB3YWxrZXIuZ2V0KCk7CisgICAgZm9yIChOb2RlKiBub2RlID0gc3RhcnQ7IG5vZGU7
IG5vZGUgPSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpuZXh0SW5TY29wZShub2RlKSkgewogICAg
ICAgICBpZiAoc2hvdWxkVmlzaXQobm9kZSwgZXZlbnQpICYmIG5vZGUtPnRhYkluZGV4KCkgPiB0
YWJJbmRleCAmJiBub2RlLT50YWJJbmRleCgpIDwgd2lubmluZ1RhYkluZGV4KSB7CiAgICAgICAg
ICAgICB3aW5uZXIgPSBub2RlOwogICAgICAgICAgICAgd2lubmluZ1RhYkluZGV4ID0gbm9kZS0+
dGFiSW5kZXgoKTsKQEAgLTQ3Nyw4ICs0NDUsNyBAQCBzdGF0aWMgTm9kZSogcHJldmlvdXNOb2Rl
V2l0aExvd2VyVGFiSW5kZXgoTm9kZSogc3RhcnQsIGludCB0YWJJbmRleCwgS2V5Ym9hcmRFdgog
ICAgIC8vIFNlYXJjaCBpcyBpbmNsdXNpdmUgb2Ygc3RhcnQKICAgICBpbnQgd2lubmluZ1RhYklu
ZGV4ID0gMDsKICAgICBOb2RlKiB3aW5uZXIgPSAwOwotICAgIGZvciAoQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyIHdhbGtlciA9IHdhbGtlckZyb20oc3RhcnQpOyB3YWxrZXIuZ2V0KCk7IHdhbGtl
ci5wcmV2aW91cygpKSB7Ci0gICAgICAgIE5vZGUqIG5vZGUgPSB3YWxrZXIuZ2V0KCk7CisgICAg
Zm9yIChOb2RlKiBub2RlID0gc3RhcnQ7IG5vZGU7IG5vZGUgPSBOb2RlUmVuZGVyaW5nVHJhdmVy
c2FsOjpwcmV2aW91c0luU2NvcGUobm9kZSkpIHsKICAgICAgICAgaW50IGN1cnJlbnRUYWJJbmRl
eCA9IGFkanVzdGVkVGFiSW5kZXgobm9kZSwgZXZlbnQpOwogICAgICAgICBpZiAoKHNob3VsZFZp
c2l0KG5vZGUsIGV2ZW50KSB8fCBpc05vbkZvY3VzYWJsZVNoYWRvd0hvc3Qobm9kZSwgZXZlbnQp
KSAmJiBjdXJyZW50VGFiSW5kZXggPCB0YWJJbmRleCAmJiBjdXJyZW50VGFiSW5kZXggPiB3aW5u
aW5nVGFiSW5kZXgpIHsKICAgICAgICAgICAgIHdpbm5lciA9IG5vZGU7CkBAIC00OTAsMTggKzQ1
NywyMCBAQCBzdGF0aWMgTm9kZSogcHJldmlvdXNOb2RlV2l0aExvd2VyVGFiSW5kZXgoTm9kZSog
c3RhcnQsIGludCB0YWJJbmRleCwgS2V5Ym9hcmRFdgogCiBOb2RlKiBGb2N1c0NvbnRyb2xsZXI6
Om5leHRGb2N1c2FibGVOb2RlKEZvY3VzTmF2aWdhdGlvblNjb3BlIHNjb3BlLCBOb2RlKiBzdGFy
dCwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIE5vZGVSZW5k
ZXJpbmdUcmF2ZXJzYWw7CisKICAgICBpZiAoc3RhcnQpIHsKICAgICAgICAgaW50IHRhYkluZGV4
ID0gYWRqdXN0ZWRUYWJJbmRleChzdGFydCwgZXZlbnQpOwogICAgICAgICAvLyBJZiBhIG5vZGUg
aXMgZXhjbHVkZWQgZnJvbSB0aGUgbm9ybWFsIHRhYmJpbmcgY3ljbGUsIHRoZSBuZXh0IGZvY3Vz
YWJsZSBub2RlIGlzIGRldGVybWluZWQgYnkgdHJlZSBvcmRlcgogICAgICAgICBpZiAodGFiSW5k
ZXggPCAwKSB7Ci0gICAgICAgICAgICBmb3IgKENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxr
ZXIgPSB3YWxrZXJGcm9tTmV4dChzdGFydCk7IHdhbGtlci5nZXQoKTsgd2Fsa2VyLm5leHQoKSkg
ewotICAgICAgICAgICAgICAgIGlmIChzaG91bGRWaXNpdCh3YWxrZXIuZ2V0KCksIGV2ZW50KSAm
JiBhZGp1c3RlZFRhYkluZGV4KHdhbGtlci5nZXQoKSwgZXZlbnQpID49IDApCi0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiB3YWxrZXIuZ2V0KCk7CisgICAgICAgICAgICBmb3IgKE5vZGUqIG5v
ZGUgPSBuZXh0SW5TY29wZShzdGFydCk7IG5vZGU7IG5vZGUgPSBuZXh0SW5TY29wZShub2RlKSkg
eworICAgICAgICAgICAgICAgIGlmIChzaG91bGRWaXNpdChub2RlLCBldmVudCkgJiYgYWRqdXN0
ZWRUYWJJbmRleChub2RlLCBldmVudCkgPj0gMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG5vZGU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICAvLyBGaXJzdCB0cnkg
dG8gZmluZCBhIG5vZGUgd2l0aCB0aGUgc2FtZSB0YWJpbmRleCBhcyBzdGFydCB0aGF0IGNvbWVz
IGFmdGVyIHN0YXJ0IGluIHRoZSBzY29wZS4KLSAgICAgICAgaWYgKE5vZGUqIHdpbm5lciA9IGZp
bmROb2RlV2l0aEV4YWN0VGFiSW5kZXgobmV4dE5vZGUoc3RhcnQpLCB0YWJJbmRleCwgZXZlbnQs
IEZvY3VzRGlyZWN0aW9uRm9yd2FyZCkpCisgICAgICAgIGlmIChOb2RlKiB3aW5uZXIgPSBmaW5k
Tm9kZVdpdGhFeGFjdFRhYkluZGV4KG5leHRJblNjb3BlKHN0YXJ0KSwgdGFiSW5kZXgsIGV2ZW50
LCBGb2N1c0RpcmVjdGlvbkZvcndhcmQpKQogICAgICAgICAgICAgcmV0dXJuIHdpbm5lcjsKIAog
ICAgICAgICBpZiAoIXRhYkluZGV4KQpAQCAtNTIyLDkgKzQ5MSwxMSBAQCBOb2RlKiBGb2N1c0Nv
bnRyb2xsZXI6Om5leHRGb2N1c2FibGVOb2RlKEZvY3VzTmF2aWdhdGlvblNjb3BlIHNjb3BlLCBO
b2RlKiBzdGFydAogCiBOb2RlKiBGb2N1c0NvbnRyb2xsZXI6OnByZXZpb3VzRm9jdXNhYmxlTm9k
ZShGb2N1c05hdmlnYXRpb25TY29wZSBzY29wZSwgTm9kZSogc3RhcnQsIEtleWJvYXJkRXZlbnQq
IGV2ZW50KQogeworICAgIHVzaW5nIG5hbWVzcGFjZSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOwor
CiAgICAgTm9kZSogbGFzdCA9IDA7Ci0gICAgZm9yIChDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIg
d2Fsa2VyID0gd2Fsa2VyRnJvbShzY29wZS5yb290Tm9kZSgpKTsgd2Fsa2VyLmdldCgpOyB3YWxr
ZXIubGFzdENoaWxkKCkpCi0gICAgICAgIGxhc3QgPSB3YWxrZXIuZ2V0KCk7CisgICAgZm9yIChO
b2RlKiBub2RlID0gc2NvcGUucm9vdE5vZGUoKTsgbm9kZTsgbm9kZSA9IGxhc3RDaGlsZEluU2Nv
cGUobm9kZSkpCisgICAgICAgIGxhc3QgPSBub2RlOwogICAgIEFTU0VSVChsYXN0KTsKIAogICAg
IC8vIEZpcnN0IHRyeSB0byBmaW5kIHRoZSBsYXN0IG5vZGUgaW4gdGhlIHNjb3BlIHRoYXQgY29t
ZXMgYmVmb3JlIHN0YXJ0IGFuZCBoYXMgdGhlIHNhbWUgdGFiaW5kZXggYXMgc3RhcnQuCkBAIC01
MzIsNyArNTAzLDcgQEAgTm9kZSogRm9jdXNDb250cm9sbGVyOjpwcmV2aW91c0ZvY3VzYWJsZU5v
ZGUoRm9jdXNOYXZpZ2F0aW9uU2NvcGUgc2NvcGUsIE5vZGUqIHMKICAgICBOb2RlKiBzdGFydGlu
Z05vZGU7CiAgICAgaW50IHN0YXJ0aW5nVGFiSW5kZXg7CiAgICAgaWYgKHN0YXJ0KSB7Ci0gICAg
ICAgIHN0YXJ0aW5nTm9kZSA9IHByZXZpb3VzTm9kZShzdGFydCk7CisgICAgICAgIHN0YXJ0aW5n
Tm9kZSA9IHByZXZpb3VzSW5TY29wZShzdGFydCk7CiAgICAgICAgIHN0YXJ0aW5nVGFiSW5kZXgg
PSBhZGp1c3RlZFRhYkluZGV4KHN0YXJ0LCBldmVudCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
c3RhcnRpbmdOb2RlID0gbGFzdDsKQEAgLTU0MSw5ICs1MTIsOSBAQCBOb2RlKiBGb2N1c0NvbnRy
b2xsZXI6OnByZXZpb3VzRm9jdXNhYmxlTm9kZShGb2N1c05hdmlnYXRpb25TY29wZSBzY29wZSwg
Tm9kZSogcwogCiAgICAgLy8gSG93ZXZlciwgaWYgYSBub2RlIGlzIGV4Y2x1ZGVkIGZyb20gdGhl
IG5vcm1hbCB0YWJiaW5nIGN5Y2xlLCB0aGUgcHJldmlvdXMgZm9jdXNhYmxlIG5vZGUgaXMgZGV0
ZXJtaW5lZCBieSB0cmVlIG9yZGVyCiAgICAgaWYgKHN0YXJ0aW5nVGFiSW5kZXggPCAwKSB7Ci0g
ICAgICAgIGZvciAoQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlciA9IHdhbGtlckZyb20o
c3RhcnRpbmdOb2RlKTsgd2Fsa2VyLmdldCgpOyB3YWxrZXIucHJldmlvdXMoKSkgewotICAgICAg
ICAgICAgaWYgKHNob3VsZFZpc2l0KHdhbGtlci5nZXQoKSwgZXZlbnQpICYmIGFkanVzdGVkVGFi
SW5kZXgod2Fsa2VyLmdldCgpLCBldmVudCkgPj0gMCkKLSAgICAgICAgICAgICAgICByZXR1cm4g
d2Fsa2VyLmdldCgpOworICAgICAgICBmb3IgKE5vZGUqIG5vZGUgPSBzdGFydGluZ05vZGU7IG5v
ZGU7IG5vZGUgPSBwcmV2aW91c0luU2NvcGUobm9kZSkpIHsKKyAgICAgICAgICAgIGlmIChzaG91
bGRWaXNpdChub2RlLCBldmVudCkgJiYgYWRqdXN0ZWRUYWJJbmRleChub2RlLCBldmVudCkgPj0g
MCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgICAgfQogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182071</attachid>
            <date>2013-01-09 23:07:47 -0800</date>
            <delta_ts>2013-01-10 09:45:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106505-20130110160450.patch</filename>
            <type>text/plain</type>
            <size>32263</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5Mjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWMxMmEwMzM4Yjg0YmJh
ZDQ1MmFjYmE1ZGUwMzJhNGIxMjlkODQzMS4uMjBmMTJjZWE2OTVlMjU1NWE3M2E4MGYxZjZjOTli
ZTE5MmZkMzk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTAxLTA5ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBDb21wb3NlZFNoYWRv
d1RyZWVXYWxrZXIgc2hvdWxkbid0IGJlIGV4cG9zZWQgdG8gbm9uLVNoYWRvd0RPTSBjbGFzc2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY1MDUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNo
YW5nZSBoaWRlcyBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgZnJvbSBub24tU2hhZG93RE9NIGNs
YXNzZXMgYnkKKworICAgICAgICAtIGludHJvZHVjaW5nIHRoaW4gd3JhcHBlciBmdW5jdGlvbnMg
b24gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbCBhbmQgcmVsYWNpbmcKKyAgICAgICAgICBDU1RXIGNh
bGxzaXRlcyB3aXRoIGl0LAorICAgICAgICAtIHJlcGxhY2luZyBDb21wb3NlZFNoYWRvd1RyZWVX
YWxrZXIgdXNhZ2Ugd2l0aCBBbmNlc3RvckNoYWluV2Fsa2VyIGlmIHBvc3NpYmxlIGFuZAorICAg
ICAgICAtIG1vdmluZyBBbmNlc3RvckNoYWluV2Fsa2VyIHRvIGl0cyBvd24gZmlsZSBhbmQgaW5j
bHVkaW5nIGl0IG9uIGZpbGVzCisgICAgICAgICAgd2hpY2ggbmVlZHMgb25seSBBbmNlc3RvckNo
YWluV2Fsa2VyLiBUaGlzIGVsaW1pbmF0ZXMgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggaW5j
bHVzaW9ucy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yIGNoYW5nZS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9BbmNl
c3RvckNoYWluV2Fsa2VyLmNwcDogQWRkZWQuIEV4dHJhY3RlZCBmcm9tIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlci5jcHAKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6QW5j
ZXN0b3JDaGFpbldhbGtlcjo6QW5jZXN0b3JDaGFpbldhbGtlcik6CisgICAgICAgIChXZWJDb3Jl
OjpBbmNlc3RvckNoYWluV2Fsa2VyOjpwYXJlbnQpOgorICAgICAgICAqIGRvbS9BbmNlc3RvckNo
YWluV2Fsa2VyLmg6IEFkZGVkLiBFeHRyYWN0ZWQgZnJvbSBDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXIuaAorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChBbmNlc3RvckNoYWluV2Fsa2VyKToK
KyAgICAgICAgKFdlYkNvcmU6OkFuY2VzdG9yQ2hhaW5XYWxrZXI6OmdldCk6CisgICAgICAgIChX
ZWJDb3JlOjpBbmNlc3RvckNoYWluV2Fsa2VyOjpjcm9zc2luZ0luc2VydGlvblBvaW50KToKKyAg
ICAgICAgKiBkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcDoKKyAgICAgICAgKiBkb20v
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmg6CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNw
cDoKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5oOgorICAgICAgICAoV2ViQ29yZTo6c2hh
ZG93T2ZQYXJlbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL0V2ZW50RGlz
cGF0Y2hlci5jcHA6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAqIGRvbS9Ob2Rl
UmVuZGVyaW5nVHJhdmVyc2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdU
cmF2ZXJzYWw6Om5leHRJblNjb3BlKToKKyAgICAgICAgKE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWwp
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6cHJldmlvdXNJblNj
b3BlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpw
YXJlbnRJblNjb3BlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nVHJh
dmVyc2FsOjpsYXN0Q2hpbGRJblNjb3BlKTogQWRkZWQuCisgICAgICAgICogZG9tL05vZGVSZW5k
ZXJpbmdUcmF2ZXJzYWwuaDoKKyAgICAgICAgKE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWwpOgorICAg
ICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTExJRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTElFbGVtZW50OjphdHRhY2gpOgorICAgICAgICAq
IHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHA6IFJlcGxhY2luZyBDU1RXIHdpdGggTlJUCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZvY3VzTmF2aWdhdGlvblNjb3BlOjpmb2N1c05hdmlnYXRpb25TY29wZU9mKToK
KyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6ZmluZE5vZGVXaXRoRXhhY3RUYWJJ
bmRleCk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0Tm9kZVdpdGhHcmVhdGVyVGFiSW5kZXgpOgor
ICAgICAgICAoV2ViQ29yZTo6cHJldmlvdXNOb2RlV2l0aExvd2VyVGFiSW5kZXgpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpuZXh0Rm9jdXNhYmxlTm9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OnByZXZpb3VzRm9jdXNhYmxlTm9kZSk6CisKIDIw
MTMtMDEtMDkgIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhc0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogW05ldHdvcmtdIERhdGEgZ3JpZCBoZWFkZXIgYW5kIGNvbnRl
bnQgY2VsbHMgYXJlIG1pc2FsaWduZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDUxMjQ1NDVm
OTM2NGY3Njc4OTcxZmU5NTExNjFmZjkzMzRhMmE3ZGUuLjBjNDIwYWZmZDg5ZmE1N2M0YzlkOWJk
NzFhZjE4NmJhYzAwNWM2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTEwLDYgKzExMTAs
NyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5j
cHAKIAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwCisgICAgZG9tL0FuY2VzdG9yQ2hhaW5X
YWxrZXIuY3BwCiAgICAgZG9tL0F0dHIuY3BwCiAgICAgZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2
ZW50LmNwcAogICAgIGRvbS9CZWZvcmVVbmxvYWRFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDAyMjU5YzQzYzUyMDQwY2IxNGNjYmEzN2E5NWYxMmM0MDQ5YzE5YzYu
LjRlN2U3YTIyZDdjYjhlYTFmY2I1NjU1NDUxMjhhNDE3YzQ0MDdjMmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtMjY5OCw2ICsyNjk4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
QWN0aXZlRE9NT2JqZWN0LmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9BbmNlc3RvckNoYWluV2Fs
a2VyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0FuY2VzdG9yQ2hhaW5XYWxrZXIuaCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQXR0cmlidXRlLmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNTE5
ZDk1NDE5YjMxMzZlMDM5ZjRlMTdlYzA3YTljYTM0ODM2NTJjYi4uM2E2OWM0Yjc0Mzc2OWNjZmI3
MzA3NTgxZDA3M2I0NGQwM2IyZDM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0zMzUsNiArMzM1LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAgICAg
Y3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgXAogICAgIGRvbS9BY3RpdmVET01PYmplY3Qu
Y3BwIFwKKyAgICBkb20vQW5jZXN0b3JDaGFpbldhbGtlci5jcHAgXAogICAgIGRvbS9BdHRyLmNw
cCBcCiAgICAgZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcCBcCiAgICAgZG9tL0JlZm9y
ZVVubG9hZEV2ZW50LmNwcCBcCkBAIC0xNTQyLDYgKzE1NDMsNyBAQCBIRUFERVJTICs9IFwKICAg
ICBjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCiAgICAgY3NzL1dlYktpdENTU1ZpZXdw
b3J0UnVsZS5oIFwKICAgICBkb20vQWN0aXZlRE9NT2JqZWN0LmggXAorICAgIGRvbS9BbmNlc3Rv
ckNoYWluV2Fsa2VyLmggXAogICAgIGRvbS9BdHRyLmggXAogICAgIGRvbS9BdHRyaWJ1dGUuaCBc
CiAgICAgZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IGNmNGU5ZDJmYjYzOTNmMmJlZGQ3ODY2MDU2ZGM0NTViMTMyMzI0MjYuLjUxNWMwNGJhZjlmNmU2
ZWMyMzkwMDYyNjhlNjE4M2QwYTEwNGNmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI3MDYsNiAr
MjcwNiw4IEBACiAgICAgICAgIF0sCiAgICAgICAgICd3ZWJjb3JlX2RvbV9maWxlcyc6IFsKICAg
ICAgICAgICAgICdkb20vQWN0aXZlRE9NT2JqZWN0LmNwcCcsCisgICAgICAgICAgICAnZG9tL0Fu
Y2VzdG9yQ2hhaW5XYWxrZXIuY3BwJywKKyAgICAgICAgICAgICdkb20vQW5jZXN0b3JDaGFpbldh
bGtlci5oJywKICAgICAgICAgICAgICdkb20vQXR0ci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9C
ZWZvcmVMb2FkRXZlbnQuaCcsCiAgICAgICAgICAgICAnZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2
ZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggN2E5YzYwODE1MWZhZGJkOTIxOWUyYjM1MDU2NThmMTliYTczNDY0NS4u
YjY5NjhmMGU0MjQzZWY1NWU0Njg3ZTcxYWE5MjU4NDgwYWRiNTI2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzkzNCw2ICsz
OTM0LDggQEAKIAkJQTc3RTFGRjAxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZUFkb3B0ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0UxRkVF
MTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmggKi87IH07CiAJCUE3ODFDNkE3
MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzgxQzZBNjEzODI4QjVEMDAxMkE2MkEgLyog
RG9jdW1lbnRNYXJrZXIuY3BwICovOyB9OwogCQlBNzg0OTQxQjBCNUZFNTA3MDAxRTIzN0EgLyog
Q2xpcGJvYXJkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovOyB9OworCQlB
NzhDREQyRTE2OUU5MUExMDA5MTM2RjMgLyogQW5jZXN0b3JDaGFpbldhbGtlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVDQkU0MzE2OUU5MTNE
MDAwM0E2MEYgLyogQW5jZXN0b3JDaGFpbldhbGtlci5jcHAgKi87IH07CisJCUE3OENERDMwMTY5
RTkxQTQwMDkxMzZGMyAvKiBBbmNlc3RvckNoYWluV2Fsa2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVDQkU0NDE2OUU5MTNEMDAwM0E2MEYgLyog
QW5jZXN0b3JDaGFpbldhbGtlci5oICovOyB9OwogCQlBNzhFNTI2RjEzNDZCRDE3MDBBRDlDMzEg
LyogTWV0ZXJTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3OEU1MjZEMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0Vs
ZW1lbnQuY3BwICovOyB9OwogCQlBNzhFNTI3MDEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFk
b3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzhFNTI2RTEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggKi87IH07
CiAJCUE3OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4RkUxMzkxMjM2NkIxMDAw
QUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5jcHAgKi87IH07CkBAIC0xMTI4Nyw2ICsxMTI4OSw4IEBA
CiAJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSb3VuZGVkUmVjdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVj
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSb3VuZGVkUmVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzRCQjc2QTEzQkRBODYzMDBGRjdCRjAgLyogRXhj
ZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBNzVDQkU0MzE2OUU5MTNEMDAwM0E2MEYgLyogQW5jZXN0b3JDaGFpbldhbGtlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBbmNlc3RvckNoYWluV2Fsa2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc1Q0JFNDQxNjlFOTEzRDAwMDNBNjBG
IC8qIEFuY2VzdG9yQ2hhaW5XYWxrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQW5jZXN0b3JDaGFpbldhbGtlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzVFNDk3NDEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzVFNDk3NTEwNzUyQUNCMDBDOUI4OTYgLyogU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3NUU4QjgwMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZFQmxlbmQuY3BwOyBwYXRoID0gZmlsdGVycy9GRUJs
ZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxOTk2LDYgKzIyMDAwLDgg
QEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUUxQzRERTZEMEVBNzVDNjUwMDIzQ0NENiAvKiBBY3Rp
dmVET01PYmplY3QuY3BwICovLAogCQkJCUUxQzRERTY4MEVBNzVDMUUwMDIzQ0NENiAvKiBBY3Rp
dmVET01PYmplY3QuaCAqLywKKwkJCQlBNzVDQkU0MzE2OUU5MTNEMDAwM0E2MEYgLyogQW5jZXN0
b3JDaGFpbldhbGtlci5jcHAgKi8sCisJCQkJQTc1Q0JFNDQxNjlFOTEzRDAwMDNBNjBGIC8qIEFu
Y2VzdG9yQ2hhaW5XYWxrZXIuaCAqLywKIAkJCQlBOEM0QTdGQzA5RDU2MzI3MDAwM0FDOEQgLyog
QXR0ci5jcHAgKi8sCiAJCQkJQThDNEE3RkIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuaCAqLywK
IAkJCQk5M0VFQzFFNTA5QzI4Nzc3MDBDNTE1RDEgLyogQXR0ci5pZGwgKi8sCkBAIC0yMjc2OSw2
ICsyMjc3NSw3IEBACiAJCQkJQ0UwOEMzRDIxNTJCNTk5QTAwMjFCOEMyIC8qIEFsdGVybmF0aXZl
VGV4dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFN0IyREIzMTU4NkFCQUQwMDk4
QjNGQSAvKiBBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MDNFMTJCMDI2NzYwMEMxQTM1OSAvKiBBbmFseXNlck5vZGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCUE3OENERDMwMTY5RTkxQTQwMDkxMzZGMyAvKiBBbmNlc3RvckNoYWluV2Fsa2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0OTA3MDdFNzEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJL
aXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RTkxMkFCMEVGQUM5MDYwMDlEMENBRiAv
KiBBbmltYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMTEyMEU2RTFEQTcwMEJGNjA4
OCAvKiBBbmltYXRpb25CYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTI2NDUxLDYgKzI2NDU4LDcg
QEAKIAkJCQlDRTA4QzNEMTE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRpdmVUZXh0Q29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRTdCMkRCNDE1ODZBQkFEMDA5OEIzRkEgLyog
QWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYw
M0QxMkIwMjY3NjAwQzFBMzU5IC8qIEFuYWx5c2VyTm9kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlBNzhDREQyRTE2OUU5MUExMDA5MTM2RjMgLyogQW5jZXN0b3JDaGFpbldhbGtlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0OTA3MDdFNjEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRC
cmlkZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlFOTEyQUEwRUZBQzkwNjAwOUQwQ0FGIC8q
IEFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTZGRTExMTBFNkUxREE3MDBCRjYw
ODggLyogQW5pbWF0aW9uQmFzZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9BbmNlc3RvckNoYWluV2Fsa2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9BbmNlc3RvckNoYWluV2Fsa2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzBjZGMyMDU5N2M1MGIyMThk
ZjQzMTAzOGU2YzU4YjllYWJhYWU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0FuY2VzdG9yQ2hhaW5XYWxrZXIuY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiQW5jZXN0b3JDaGFpbldhbGtlci5oIgorCisjaW5jbHVkZSAi
Q29udGVudERpc3RyaWJ1dG9yLmgiCisjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKKyNpbmNs
dWRlICJTaGFkb3dSb290LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQW5jZXN0b3JDaGFp
bldhbGtlcjo6QW5jZXN0b3JDaGFpbldhbGtlcihjb25zdCBOb2RlKiBub2RlKQorICAgIDogbV9u
b2RlKG5vZGUpCisgICAgLCBtX2Rpc3RyaWJ1dGVkTm9kZShub2RlKQorICAgICwgbV9pc0Nyb3Nz
aW5nSW5zZXJ0aW9uUG9pbnQoZmFsc2UpCit7CisgICAgQVNTRVJUKG5vZGUpOworfQorCit2b2lk
IEFuY2VzdG9yQ2hhaW5XYWxrZXI6OnBhcmVudCgpCit7CisgICAgQVNTRVJUKG1fbm9kZSk7Cisg
ICAgQVNTRVJUKG1fZGlzdHJpYnV0ZWROb2RlKTsKKyAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hh
ZG93ID0gc2hhZG93T2ZQYXJlbnQobV9ub2RlKSkgeworICAgICAgICBpZiAoSW5zZXJ0aW9uUG9p
bnQqIGluc2VydGlvblBvaW50ID0gc2hhZG93LT5kaXN0cmlidXRvcigpLmZpbmRJbnNlcnRpb25Q
b2ludEZvcihtX2Rpc3RyaWJ1dGVkTm9kZSkpIHsKKyAgICAgICAgICAgIG1fbm9kZSA9IGluc2Vy
dGlvblBvaW50OworICAgICAgICAgICAgbV9pc0Nyb3NzaW5nSW5zZXJ0aW9uUG9pbnQgPSB0cnVl
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIGlmICghbV9ub2Rl
LT5pc1NoYWRvd1Jvb3QoKSkgeworICAgICAgICBtX25vZGUgPSBtX25vZGUtPnBhcmVudE5vZGUo
KTsKKyAgICAgICAgaWYgKCEobV9ub2RlICYmIG1fbm9kZS0+aXNTaGFkb3dSb290KCkgJiYgU2Nv
cGVDb250ZW50RGlzdHJpYnV0aW9uOjphc3NpZ25lZFRvKHRvU2hhZG93Um9vdChtX25vZGUpKSkp
CisgICAgICAgICAgICBtX2Rpc3RyaWJ1dGVkTm9kZSA9IG1fbm9kZTsKKyAgICAgICAgbV9pc0Ny
b3NzaW5nSW5zZXJ0aW9uUG9pbnQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGNvbnN0IFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSB0b1NoYWRvd1Jvb3QobV9ub2RlKTsK
KyAgICBpZiAoSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50ID0gU2NvcGVDb250ZW50RGlz
dHJpYnV0aW9uOjphc3NpZ25lZFRvKHNoYWRvd1Jvb3QpKSB7CisgICAgICAgIG1fbm9kZSA9IGlu
c2VydGlvblBvaW50OworICAgICAgICBtX2lzQ3Jvc3NpbmdJbnNlcnRpb25Qb2ludCA9IHRydWU7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9ub2RlID0gc2hhZG93Um9vdC0+aG9zdCgp
OworICAgIG1fZGlzdHJpYnV0ZWROb2RlID0gbV9ub2RlOworICAgIG1faXNDcm9zc2luZ0luc2Vy
dGlvblBvaW50ID0gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQW5jZXN0b3JDaGFpbldhbGtlci5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0FuY2VzdG9yQ2hhaW5XYWxrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjU1MmViOWFiOTY5M2ZiNDc4YTc3
M2Q5NjRjZjQzNmE4YWU0OTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0FuY2VzdG9yQ2hhaW5XYWxrZXIuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBbmNlc3Rv
ckNoYWluV2Fsa2VyX2gKKyNkZWZpbmUgQW5jZXN0b3JDaGFpbldhbGtlcl9oCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgTm9kZTsKKworY2xhc3MgQW5jZXN0b3JDaGFpbldhbGtlciB7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgQW5jZXN0b3JDaGFpbldhbGtlcihjb25zdCBOb2RlKik7
CisgICAgdm9pZCBwYXJlbnQoKTsKKyAgICBOb2RlKiBnZXQoKSBjb25zdCB7IHJldHVybiBjb25z
dF9jYXN0PE5vZGUqPihtX25vZGUpOyB9CisgICAgYm9vbCBjcm9zc2luZ0luc2VydGlvblBvaW50
KCkgeyByZXR1cm4gbV9pc0Nyb3NzaW5nSW5zZXJ0aW9uUG9pbnQ7IH0KKworcHJpdmF0ZToKKyAg
ICBjb25zdCBOb2RlKiBtX25vZGU7CisgICAgY29uc3QgTm9kZSogbV9kaXN0cmlidXRlZE5vZGU7
CisgICAgYm9vbCBtX2lzQ3Jvc3NpbmdJbnNlcnRpb25Qb2ludDsKK307CisKK30gLy8gbmFtZXNw
YWNlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyLmNwcAppbmRleCA2NWIxMzNjZmIyMjU4ZWVmMjI3OWFlNWFhNmQ1ODdiZDM5NmVlY2U2
Li5hYjU4ZDYxNTJiYzYwZDkwNTE3YWU0YWI4Y2VlYTA3YjQ4ZmNiMThjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcApAQCAtNDUsMTYgKzQ1
LDYgQEAgc3RhdGljIGlubGluZSBFbGVtZW50U2hhZG93KiBzaGFkb3dGb3IoY29uc3QgTm9kZSog
bm9kZSkKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGlubGluZSBFbGVtZW50U2hhZG93KiBz
aGFkb3dPZlBhcmVudChjb25zdCBOb2RlKiBub2RlKQotewotICAgIGlmICghbm9kZSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgaWYgKE5vZGUqIHBhcmVudCA9IG5vZGUtPnBhcmVudE5vZGUoKSkK
LSAgICAgICAgaWYgKHBhcmVudC0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICAgICAgcmV0dXJu
IHRvRWxlbWVudChwYXJlbnQpLT5zaGFkb3coKTsKLSAgICByZXR1cm4gMDsKLX0KLQogc3RhdGlj
IGlubGluZSBib29sIG5vZGVDYW5CZURpc3RyaWJ1dGVkKGNvbnN0IE5vZGUqIG5vZGUpCiB7CiAg
ICAgQVNTRVJUKG5vZGUpOwpAQCAtMzIyLDQyICszMTIsNCBAQCB2b2lkIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6cHJldmlvdXMoKQogICAgIGFzc2VydFBvc3Rjb25kaXRpb24oKTsKIH0KIAot
QW5jZXN0b3JDaGFpbldhbGtlcjo6QW5jZXN0b3JDaGFpbldhbGtlcihjb25zdCBOb2RlKiBub2Rl
KQotICAgIDogbV9ub2RlKG5vZGUpCi0gICAgLCBtX2Rpc3RyaWJ1dGVkTm9kZShub2RlKQotICAg
ICwgbV9pc0Nyb3NzaW5nSW5zZXJ0aW9uUG9pbnQoZmFsc2UpCi17Ci0gICAgQVNTRVJUKG5vZGUp
OwotfQotCi12b2lkIEFuY2VzdG9yQ2hhaW5XYWxrZXI6OnBhcmVudCgpCi17Ci0gICAgQVNTRVJU
KG1fbm9kZSk7Ci0gICAgQVNTRVJUKG1fZGlzdHJpYnV0ZWROb2RlKTsKLSAgICBpZiAoRWxlbWVu
dFNoYWRvdyogc2hhZG93ID0gc2hhZG93T2ZQYXJlbnQobV9ub2RlKSkgewotICAgICAgICBpZiAo
SW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50ID0gc2hhZG93LT5kaXN0cmlidXRvcigpLmZp
bmRJbnNlcnRpb25Qb2ludEZvcihtX2Rpc3RyaWJ1dGVkTm9kZSkpIHsKLSAgICAgICAgICAgIG1f
bm9kZSA9IGluc2VydGlvblBvaW50OwotICAgICAgICAgICAgbV9pc0Nyb3NzaW5nSW5zZXJ0aW9u
UG9pbnQgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotICAg
IGlmICghbV9ub2RlLT5pc1NoYWRvd1Jvb3QoKSkgewotICAgICAgICBtX25vZGUgPSBtX25vZGUt
PnBhcmVudE5vZGUoKTsKLSAgICAgICAgaWYgKCEobV9ub2RlICYmIG1fbm9kZS0+aXNTaGFkb3dS
b290KCkgJiYgU2NvcGVDb250ZW50RGlzdHJpYnV0aW9uOjphc3NpZ25lZFRvKHRvU2hhZG93Um9v
dChtX25vZGUpKSkpCi0gICAgICAgICAgICBtX2Rpc3RyaWJ1dGVkTm9kZSA9IG1fbm9kZTsKLSAg
ICAgICAgbV9pc0Nyb3NzaW5nSW5zZXJ0aW9uUG9pbnQgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGNvbnN0IFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSB0b1NoYWRvd1Jv
b3QobV9ub2RlKTsKLSAgICBpZiAoSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50ID0gU2Nv
cGVDb250ZW50RGlzdHJpYnV0aW9uOjphc3NpZ25lZFRvKHNoYWRvd1Jvb3QpKSB7Ci0gICAgICAg
IG1fbm9kZSA9IGluc2VydGlvblBvaW50OwotICAgICAgICBtX2lzQ3Jvc3NpbmdJbnNlcnRpb25Q
b2ludCA9IHRydWU7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgbV9ub2RlID0gc2hhZG93
Um9vdC0+aG9zdCgpOwotICAgIG1fZGlzdHJpYnV0ZWROb2RlID0gbV9ub2RlOwotICAgIG1faXND
cm9zc2luZ0luc2VydGlvblBvaW50ID0gZmFsc2U7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgKaW5kZXggYjgwOWEy
NmFjNDk5MmE4NTVhZTRlYjI5NDAzZjgxMzkyN2I1M2IxMi4uODM0OWUyMWFhOTgzZjBhODRhMTEz
YzE2NzgwZTQ5ZWM2NzY2NGYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBv
c2VkU2hhZG93VHJlZVdhbGtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuaApAQCAtMTQxLDE5ICsxNDEsNiBAQCBpbmxpbmUgQ29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIoY29uc3QgTm9kZSogbm9kZSwg
UG9saQogI2VuZGlmCiB9CiAKLWNsYXNzIEFuY2VzdG9yQ2hhaW5XYWxrZXIgewotcHVibGljOgot
ICAgIGV4cGxpY2l0IEFuY2VzdG9yQ2hhaW5XYWxrZXIoY29uc3QgTm9kZSopOwotICAgIHZvaWQg
cGFyZW50KCk7Ci0gICAgTm9kZSogZ2V0KCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxOb2Rl
Kj4obV9ub2RlKTsgfQotICAgIGJvb2wgY3Jvc3NpbmdJbnNlcnRpb25Qb2ludCgpIHsgcmV0dXJu
IG1faXNDcm9zc2luZ0luc2VydGlvblBvaW50OyB9Ci0KLXByaXZhdGU6Ci0gICAgY29uc3QgTm9k
ZSogbV9ub2RlOwotICAgIGNvbnN0IE5vZGUqIG1fZGlzdHJpYnV0ZWROb2RlOwotICAgIGJvb2wg
bV9pc0Nyb3NzaW5nSW5zZXJ0aW9uUG9pbnQ7Ci19OwotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IDcyZTRhNDg1NWZmZjRjZGMzZmNl
MmZmOTIxNDMwZDI0ODk3MzdjYTguLjE5ZDg5YmNkM2ZkNmZiNzJiZDlmNzJlYTgzOWIzYWJjZTEz
MjhjODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtMjYsNiArMjYsNyBAQAog
Ly8gVGhpcyBhbGwtaW4tb25lIGNwcCBmaWxlIGN1dHMgZG93biBvbiB0ZW1wbGF0ZSBibG9hdCB0
byBhbGxvdyB1cyB0byBidWlsZCBvdXIgV2luZG93cyByZWxlYXNlIGJ1aWxkLgogCiAjaW5jbHVk
ZSAiQWN0aXZlRE9NT2JqZWN0LmNwcCIKKyNpbmNsdWRlICJBbmNlc3RvckNoYWluV2Fsa2VyLmNw
cCIKICNpbmNsdWRlICJBdHRyLmNwcCIKICNpbmNsdWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVu
dC5jcHAiCiAjaW5jbHVkZSAiQmVmb3JlVW5sb2FkRXZlbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50U2hhZG93LmgKaW5kZXggOTM5ZTliNjlmOWM2NjU3ZGFhYjU4ZjAyM2RlMThmOTA1MDEwNjdi
ZS4uOTFmNjc5MTY4ODZkNGE5MzRiMTNhZTc3NDk2YjcwMWI2ZDJlYTYyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFNoYWRvdy5oCkBAIC0xMzAsNiArMTMwLDE3IEBAIHB1YmxpYzoKICAgICB9CiB9
OwogCitpbmxpbmUgRWxlbWVudFNoYWRvdyogc2hhZG93T2ZQYXJlbnQoY29uc3QgTm9kZSogbm9k
ZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChOb2RlKiBw
YXJlbnQgPSBub2RlLT5wYXJlbnROb2RlKCkpCisgICAgICAgIGlmIChwYXJlbnQtPmlzRWxlbWVu
dE5vZGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0b0VsZW1lbnQocGFyZW50KS0+c2hhZG93KCk7
CisgICAgcmV0dXJuIDA7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IGRiZjI0ZDUwYmRmZWRkN2YzY2RmMjBj
OWU1ODRhODRlNzlmZmNmMTguLjNjYTkzOGZmYjM5MDkyMDI4MGQyZTM5OGE0N2Q3NTE1NzgxODVl
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0yNiw3ICsyNiw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCiAK
LSNpbmNsdWRlICJDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaCIKKyNpbmNsdWRlICJBbmNlc3Rv
ckNoYWluV2Fsa2VyLmgiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgogI2luY2x1ZGUgIkVs
ZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJFdmVudENvbnRleHQuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApp
bmRleCA2NDgxZDkwNWQyODIyZmI1MmZmMWRlOWQ0M2U1YmYxNTIxY2QwMDU0Li4zZGE1ZTg4NTcw
MTFjODMxNzI4MWIzNzNiODM3MzdiOGU2YTIzYjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC00MCw3
ICs0MCw2IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNoaWxkTm9k
ZUxpc3QuaCIKICNpbmNsdWRlICJDbGFzc05vZGVMaXN0LmgiCi0jaW5jbHVkZSAiQ29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyLmgiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCIK
ICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJET01JbXBsZW1l
bnRhdGlvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdU
cmF2ZXJzYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdUcmF2ZXJzYWwu
Y3BwCmluZGV4IDk1NmEwYmFjMmQ2OGNlZjY0MmNkZDlhYzg5ZjY3OTFiNWRmZjlmNWQuLjgzYmI3
ZWM3ZTc5ZWYyZjIxNjNlZjA3NzUzNzlkNzc3ZTY5ZWZmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nVHJhdmVyc2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5jcHAKQEAgLTkyLDYgKzkyLDM4IEBAIE5vZGUq
IHByZXZpb3VzU2libGluZ1Nsb3coY29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1cm4gMDsKIH0K
IAorTm9kZSogbmV4dEluU2NvcGUoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICAvLyBGSVhNRTog
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHNob3VsZG4ndCBiZSB1c2VkIHdoZW4gIUVOQUJMRShT
SEFET1dfRE9NKSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMzM5
CisgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlciA9IENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlcihub2RlLCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OkRvTm90Q3Jvc3NVcHBlckJv
dW5kYXJ5KTsKKyAgICB3YWxrZXIubmV4dCgpOworICAgIHJldHVybiB3YWxrZXIuZ2V0KCk7Cit9
CisKK05vZGUqIHByZXZpb3VzSW5TY29wZShjb25zdCBOb2RlKiBub2RlKQoreworICAgIC8vIEZJ
WE1FOiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgc2hvdWxkbid0IGJlIHVzZWQgd2hlbiAhRU5B
QkxFKFNIQURPV19ET00pIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDMzMzkKKyAgICBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyID0gQ29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyKG5vZGUsIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6RG9Ob3RDcm9zc1Vw
cGVyQm91bmRhcnkpOworICAgIHdhbGtlci5wcmV2aW91cygpOworICAgIHJldHVybiB3YWxrZXIu
Z2V0KCk7Cit9CisKK05vZGUqIHBhcmVudEluU2NvcGUoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAg
ICAvLyBGSVhNRTogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHNob3VsZG4ndCBiZSB1c2VkIHdo
ZW4gIUVOQUJMRShTSEFET1dfRE9NKSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAzMzM5CisgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlciA9IENvbXBv
c2VkU2hhZG93VHJlZVdhbGtlcihub2RlLCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OkRvTm90
Q3Jvc3NVcHBlckJvdW5kYXJ5KTsKKyAgICB3YWxrZXIucGFyZW50KCk7CisgICAgcmV0dXJuIHdh
bGtlci5nZXQoKTsKK30KKworTm9kZSogbGFzdENoaWxkSW5TY29wZShjb25zdCBOb2RlKiBub2Rl
KQoreworICAgIC8vIEZJWE1FOiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgc2hvdWxkbid0IGJl
IHVzZWQgd2hlbiAhRU5BQkxFKFNIQURPV19ET00pIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDMzMzkKKyAgICBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2Vy
ID0gQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyKG5vZGUsIENvbXBvc2VkU2hhZG93VHJlZVdhbGtl
cjo6RG9Ob3RDcm9zc1VwcGVyQm91bmRhcnkpOworICAgIHdhbGtlci5sYXN0Q2hpbGQoKTsKKyAg
ICByZXR1cm4gd2Fsa2VyLmdldCgpOworfQorCiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuaAppbmRleCA0NDA0M2RlMjdmMDkz
NGNlZTU5NWQxMjRjNTRhM2RhNGM4ODBiNzllLi4yZGIzZTc1OTVjYWNjMGY5YzA1Zjg2ZmZhMTE3
YmFlNDg4ZDU4ODA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmlu
Z1RyYXZlcnNhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nVHJhdmVy
c2FsLmgKQEAgLTcxLDYgKzcxLDEwIEBAIE5vZGUqIG5leHRTaWJsaW5nU2xvdyhjb25zdCBOb2Rl
Kik7CiBOb2RlKiBwcmV2aW91c1NpYmxpbmcoY29uc3QgTm9kZSopOwogTm9kZSogcHJldmlvdXNT
aWJsaW5nU2xvdyhjb25zdCBOb2RlKik7CiAKK05vZGUqIG5leHRJblNjb3BlKGNvbnN0IE5vZGUq
KTsKK05vZGUqIHByZXZpb3VzSW5TY29wZShjb25zdCBOb2RlKik7CitOb2RlKiBwYXJlbnRJblNj
b3BlKGNvbnN0IE5vZGUqKTsKK05vZGUqIGxhc3RDaGlsZEluU2NvcGUoY29uc3QgTm9kZSopOwog
CiBpbmxpbmUgQ29udGFpbmVyTm9kZSogcGFyZW50KGNvbnN0IE5vZGUqIG5vZGUsIFBhcmVudERl
dGFpbHMqIGRldGFpbHMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNj
b3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCmluZGV4IGQ5MjdlZTky
YzFkY2Q1YjJlMTA0N2I0ODRlOTY4ZTM0NWM0YWRhYTkuLjZhNTc3YzI3YjU5MWM3MTZkY2JhMWQ1
M2FlZjg0NWUyZjViZDhlZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2Nv
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCkBAIC0yNyw3ICsy
Nyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCiAKLSNp
bmNsdWRlICJDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaCIKKyNpbmNsdWRlICJBbmNlc3RvckNo
YWluV2Fsa2VyLmgiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgogI2luY2x1ZGUgIkRPTVNl
bGVjdGlvbi5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJ
RWxlbWVudC5jcHAKaW5kZXggNjc1MzY1MjQzMGZhMzczZTgxNDAwMjdiNjNkMTk2ZjVmZTNkMTBj
Mi4uODU5MGFlMTAyOWQxNGU5N2ZiODkzM2FiMWVkYTI5MGE5MDcxZGZiOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMSUVsZW1lbnQuY3BwCkBAIC0yMywxMCArMjMsMTAgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJIVE1MTElFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJBbmNlc3Rv
ckNoYWluV2Fsa2VyLmgiCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQ1NTUHJv
cGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKLSNpbmNsdWRlICJD
b21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNs
dWRlICJSZW5kZXJMaXN0SXRlbS5oIgogCkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgSFRNTExJRWxl
bWVudDo6YXR0YWNoKCkKIAogICAgICAgICAvLyBGaW5kIHRoZSBlbmNsb3NpbmcgbGlzdCBub2Rl
LgogICAgICAgICBOb2RlKiBsaXN0Tm9kZSA9IDA7Ci0gICAgICAgIENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlciB3YWxrZXIodGhpcyk7CisgICAgICAgIEFuY2VzdG9yQ2hhaW5XYWxrZXIgd2Fsa2Vy
KHRoaXMpOwogICAgICAgICB3aGlsZSAoIWxpc3ROb2RlKSB7CiAgICAgICAgICAgICB3YWxrZXIu
cGFyZW50KCk7CiAgICAgICAgICAgICBpZiAoIXdhbGtlci5nZXQoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCAwMjE3YTAyYzg0YzQzMDk1YWJiYzM1NzgwNDRkYmFmYmIx
NGJjMzZmLi4yNTc2YzlkZTc4MTIxZjdkODUzZGZjYmZkMGY0OWEzMDlhNzZkNDc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yOSwxMSArMjksMTEgQEAKICNpbmNsdWRl
ICJFdmVudEhhbmRsZXIuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRl
ICJBbmNlc3RvckNoYWluV2Fsa2VyLmgiCiAjaW5jbHVkZSAiQXV0b3Njcm9sbENvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1
ZGUgIkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5o
IgogI2luY2x1ZGUgIkN1cnNvci5oIgogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4
IGFlZjRlNTQ4YTMxZjBkMDA3ZjJiNjFjYjAwODVmOWQ2NDZhZTkxMmEuLjE2NTNkZjZkZWU1ODhk
ZTNkMjVmMTg2ZTJlODg0NzY3MjdhYTdiMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJDaHJvbWUuaCIKLSNpbmNsdWRlICJDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1
ZGUgIkVkaXRvckNsaWVudC5oIgpAQCAtNDgsNiArNDcsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50
LmgiCisjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5oIgogI2luY2x1ZGUgIk5vZGVU
cmF2ZXJzYWwuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAgLTY2
LDM1ICs2Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi1zdGF0aWMgaW5saW5lIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlciB3YWxrZXJGcm9tKGNvbnN0IE5vZGUqIG5vZGUpCi17Ci0gICAgcmV0dXJuIENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlcihub2RlLCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OkRv
Tm90Q3Jvc3NVcHBlckJvdW5kYXJ5KTsKLX0KLQotc3RhdGljIGlubGluZSBDb21wb3NlZFNoYWRv
d1RyZWVXYWxrZXIgd2Fsa2VyRnJvbU5leHQoY29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICBDb21w
b3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyID0gQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyKG5v
ZGUsIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6RG9Ob3RDcm9zc1VwcGVyQm91bmRhcnkpOwot
ICAgIHdhbGtlci5uZXh0KCk7Ci0gICAgcmV0dXJuIHdhbGtlcjsKLX0KLQotc3RhdGljIGlubGlu
ZSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyRnJvbVByZXZpb3VzKGNvbnN0IE5vZGUq
IG5vZGUpCi17Ci0gICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlciA9IENvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlcihub2RlLCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OkRvTm90Q3Jv
c3NVcHBlckJvdW5kYXJ5KTsKLSAgICB3YWxrZXIucHJldmlvdXMoKTsKLSAgICByZXR1cm4gd2Fs
a2VyOwotfQotCi1zdGF0aWMgaW5saW5lIE5vZGUqIG5leHROb2RlKGNvbnN0IE5vZGUqIG5vZGUp
Ci17Ci0gICAgcmV0dXJuIHdhbGtlckZyb21OZXh0KG5vZGUpLmdldCgpOwotfQotCi1zdGF0aWMg
aW5saW5lIE5vZGUqIHByZXZpb3VzTm9kZShjb25zdCBOb2RlKiBub2RlKQotewotICAgIHJldHVy
biB3YWxrZXJGcm9tUHJldmlvdXMobm9kZSkuZ2V0KCk7Ci19Ci0KIEZvY3VzTmF2aWdhdGlvblNj
b3BlOjpGb2N1c05hdmlnYXRpb25TY29wZShUcmVlU2NvcGUqIHRyZWVTY29wZSkKICAgICA6IG1f
cm9vdFRyZWVTY29wZSh0cmVlU2NvcGUpCiB7CkBAIC0xMjAsMTIgKzkxLDkgQEAgRWxlbWVudCog
Rm9jdXNOYXZpZ2F0aW9uU2NvcGU6Om93bmVyKCkgY29uc3QKIEZvY3VzTmF2aWdhdGlvblNjb3Bl
IEZvY3VzTmF2aWdhdGlvblNjb3BlOjpmb2N1c05hdmlnYXRpb25TY29wZU9mKE5vZGUqIG5vZGUp
CiB7CiAgICAgQVNTRVJUKG5vZGUpOwotICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxr
ZXIobm9kZSwgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpEb05vdENyb3NzVXBwZXJCb3VuZGFy
eSk7CiAgICAgTm9kZSogcm9vdCA9IG5vZGU7Ci0gICAgd2hpbGUgKHdhbGtlci5nZXQoKSkgewot
ICAgICAgICByb290ID0gd2Fsa2VyLmdldCgpOwotICAgICAgICB3YWxrZXIucGFyZW50KCk7Ci0g
ICAgfQorICAgIGZvciAoTm9kZSogbiA9IG5vZGU7IG47IG4gPSBOb2RlUmVuZGVyaW5nVHJhdmVy
c2FsOjpwYXJlbnRJblNjb3BlKG4pKQorICAgICAgICByb290ID0gbjsKICAgICAvLyBUaGUgcmVz
dWx0IGlzIG5vdCBhbHdheXMgYSBTaGFkb3dSb290IG5vciBhIERvY3VtZW50Tm9kZSBzaW5jZQog
ICAgIC8vIGEgc3RhcnRpbmcgbm9kZSBpcyBpbiBhbiBvcnBoYW5lZCB0cmVlIGluIGNvbXBvc2Vk
IHNoYWRvdyB0cmVlLgogICAgIHJldHVybiBGb2N1c05hdmlnYXRpb25TY29wZShyb290LT50cmVl
U2NvcGUoKSk7CkBAIC00NDksOSArNDE3LDEwIEBAIE5vZGUqIEZvY3VzQ29udHJvbGxlcjo6Zmlu
ZEZvY3VzYWJsZU5vZGUoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBGb2N1c05hdmlnYXRpCiBO
b2RlKiBGb2N1c0NvbnRyb2xsZXI6OmZpbmROb2RlV2l0aEV4YWN0VGFiSW5kZXgoTm9kZSogc3Rh
cnQsIGludCB0YWJJbmRleCwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIEZvY3VzRGlyZWN0aW9uIGRp
cmVjdGlvbikKIHsKICAgICAvLyBTZWFyY2ggaXMgaW5jbHVzaXZlIG9mIHN0YXJ0Ci0gICAgZm9y
IChDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyID0gd2Fsa2VyRnJvbShzdGFydCk7IHdh
bGtlci5nZXQoKTsgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA/IHdhbGtlci5u
ZXh0KCkgOiB3YWxrZXIucHJldmlvdXMoKSkgewotICAgICAgICBpZiAoc2hvdWxkVmlzaXQod2Fs
a2VyLmdldCgpLCBldmVudCkgJiYgYWRqdXN0ZWRUYWJJbmRleCh3YWxrZXIuZ2V0KCksIGV2ZW50
KSA9PSB0YWJJbmRleCkKLSAgICAgICAgICAgIHJldHVybiB3YWxrZXIuZ2V0KCk7CisgICAgdXNp
bmcgbmFtZXNwYWNlIE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw7CisgICAgZm9yIChOb2RlKiBub2Rl
ID0gc3RhcnQ7IG5vZGU7IG5vZGUgPSBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Gb3J3YXJk
ID8gbmV4dEluU2NvcGUobm9kZSkgOiBwcmV2aW91c0luU2NvcGUobm9kZSkpIHsKKyAgICAgICAg
aWYgKHNob3VsZFZpc2l0KG5vZGUsIGV2ZW50KSAmJiBhZGp1c3RlZFRhYkluZGV4KG5vZGUsIGV2
ZW50KSA9PSB0YWJJbmRleCkKKyAgICAgICAgICAgIHJldHVybiBub2RlOwogICAgIH0KICAgICBy
ZXR1cm4gMDsKIH0KQEAgLTQ2MSw4ICs0MzAsNyBAQCBzdGF0aWMgTm9kZSogbmV4dE5vZGVXaXRo
R3JlYXRlclRhYkluZGV4KE5vZGUqIHN0YXJ0LCBpbnQgdGFiSW5kZXgsIEtleWJvYXJkRXZlbgog
ICAgIC8vIFNlYXJjaCBpcyBpbmNsdXNpdmUgb2Ygc3RhcnQKICAgICBpbnQgd2lubmluZ1RhYklu
ZGV4ID0gc3RkOjpudW1lcmljX2xpbWl0czxzaG9ydD46Om1heCgpICsgMTsKICAgICBOb2RlKiB3
aW5uZXIgPSAwOwotICAgIGZvciAoQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlciA9IHdh
bGtlckZyb20oc3RhcnQpOyB3YWxrZXIuZ2V0KCk7IHdhbGtlci5uZXh0KCkpIHsKLSAgICAgICAg
Tm9kZSogbm9kZSA9IHdhbGtlci5nZXQoKTsKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSBzdGFydDsg
bm9kZTsgbm9kZSA9IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6Om5leHRJblNjb3BlKG5vZGUpKSB7
CiAgICAgICAgIGlmIChzaG91bGRWaXNpdChub2RlLCBldmVudCkgJiYgbm9kZS0+dGFiSW5kZXgo
KSA+IHRhYkluZGV4ICYmIG5vZGUtPnRhYkluZGV4KCkgPCB3aW5uaW5nVGFiSW5kZXgpIHsKICAg
ICAgICAgICAgIHdpbm5lciA9IG5vZGU7CiAgICAgICAgICAgICB3aW5uaW5nVGFiSW5kZXggPSBu
b2RlLT50YWJJbmRleCgpOwpAQCAtNDc3LDggKzQ0NSw3IEBAIHN0YXRpYyBOb2RlKiBwcmV2aW91
c05vZGVXaXRoTG93ZXJUYWJJbmRleChOb2RlKiBzdGFydCwgaW50IHRhYkluZGV4LCBLZXlib2Fy
ZEV2CiAgICAgLy8gU2VhcmNoIGlzIGluY2x1c2l2ZSBvZiBzdGFydAogICAgIGludCB3aW5uaW5n
VGFiSW5kZXggPSAwOwogICAgIE5vZGUqIHdpbm5lciA9IDA7Ci0gICAgZm9yIChDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIgd2Fsa2VyID0gd2Fsa2VyRnJvbShzdGFydCk7IHdhbGtlci5nZXQoKTsg
d2Fsa2VyLnByZXZpb3VzKCkpIHsKLSAgICAgICAgTm9kZSogbm9kZSA9IHdhbGtlci5nZXQoKTsK
KyAgICBmb3IgKE5vZGUqIG5vZGUgPSBzdGFydDsgbm9kZTsgbm9kZSA9IE5vZGVSZW5kZXJpbmdU
cmF2ZXJzYWw6OnByZXZpb3VzSW5TY29wZShub2RlKSkgewogICAgICAgICBpbnQgY3VycmVudFRh
YkluZGV4ID0gYWRqdXN0ZWRUYWJJbmRleChub2RlLCBldmVudCk7CiAgICAgICAgIGlmICgoc2hv
dWxkVmlzaXQobm9kZSwgZXZlbnQpIHx8IGlzTm9uRm9jdXNhYmxlU2hhZG93SG9zdChub2RlLCBl
dmVudCkpICYmIGN1cnJlbnRUYWJJbmRleCA8IHRhYkluZGV4ICYmIGN1cnJlbnRUYWJJbmRleCA+
IHdpbm5pbmdUYWJJbmRleCkgewogICAgICAgICAgICAgd2lubmVyID0gbm9kZTsKQEAgLTQ5MCwx
OCArNDU3LDIwIEBAIHN0YXRpYyBOb2RlKiBwcmV2aW91c05vZGVXaXRoTG93ZXJUYWJJbmRleChO
b2RlKiBzdGFydCwgaW50IHRhYkluZGV4LCBLZXlib2FyZEV2CiAKIE5vZGUqIEZvY3VzQ29udHJv
bGxlcjo6bmV4dEZvY3VzYWJsZU5vZGUoRm9jdXNOYXZpZ2F0aW9uU2NvcGUgc2NvcGUsIE5vZGUq
IHN0YXJ0LCBLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKKyAgICB1c2luZyBuYW1lc3BhY2UgTm9k
ZVJlbmRlcmluZ1RyYXZlcnNhbDsKKwogICAgIGlmIChzdGFydCkgewogICAgICAgICBpbnQgdGFi
SW5kZXggPSBhZGp1c3RlZFRhYkluZGV4KHN0YXJ0LCBldmVudCk7CiAgICAgICAgIC8vIElmIGEg
bm9kZSBpcyBleGNsdWRlZCBmcm9tIHRoZSBub3JtYWwgdGFiYmluZyBjeWNsZSwgdGhlIG5leHQg
Zm9jdXNhYmxlIG5vZGUgaXMgZGV0ZXJtaW5lZCBieSB0cmVlIG9yZGVyCiAgICAgICAgIGlmICh0
YWJJbmRleCA8IDApIHsKLSAgICAgICAgICAgIGZvciAoQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2Vy
IHdhbGtlciA9IHdhbGtlckZyb21OZXh0KHN0YXJ0KTsgd2Fsa2VyLmdldCgpOyB3YWxrZXIubmV4
dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNob3VsZFZpc2l0KHdhbGtlci5nZXQoKSwgZXZl
bnQpICYmIGFkanVzdGVkVGFiSW5kZXgod2Fsa2VyLmdldCgpLCBldmVudCkgPj0gMCkKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHdhbGtlci5nZXQoKTsKKyAgICAgICAgICAgIGZvciAoTm9k
ZSogbm9kZSA9IG5leHRJblNjb3BlKHN0YXJ0KTsgbm9kZTsgbm9kZSA9IG5leHRJblNjb3BlKG5v
ZGUpKSB7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZFZpc2l0KG5vZGUsIGV2ZW50KSAmJiBh
ZGp1c3RlZFRhYkluZGV4KG5vZGUsIGV2ZW50KSA+PSAwKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbm9kZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIC8vIEZpcnN0
IHRyeSB0byBmaW5kIGEgbm9kZSB3aXRoIHRoZSBzYW1lIHRhYmluZGV4IGFzIHN0YXJ0IHRoYXQg
Y29tZXMgYWZ0ZXIgc3RhcnQgaW4gdGhlIHNjb3BlLgotICAgICAgICBpZiAoTm9kZSogd2lubmVy
ID0gZmluZE5vZGVXaXRoRXhhY3RUYWJJbmRleChuZXh0Tm9kZShzdGFydCksIHRhYkluZGV4LCBl
dmVudCwgRm9jdXNEaXJlY3Rpb25Gb3J3YXJkKSkKKyAgICAgICAgaWYgKE5vZGUqIHdpbm5lciA9
IGZpbmROb2RlV2l0aEV4YWN0VGFiSW5kZXgobmV4dEluU2NvcGUoc3RhcnQpLCB0YWJJbmRleCwg
ZXZlbnQsIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCkpCiAgICAgICAgICAgICByZXR1cm4gd2lubmVy
OwogCiAgICAgICAgIGlmICghdGFiSW5kZXgpCkBAIC01MjIsOSArNDkxLDExIEBAIE5vZGUqIEZv
Y3VzQ29udHJvbGxlcjo6bmV4dEZvY3VzYWJsZU5vZGUoRm9jdXNOYXZpZ2F0aW9uU2NvcGUgc2Nv
cGUsIE5vZGUqIHN0YXJ0CiAKIE5vZGUqIEZvY3VzQ29udHJvbGxlcjo6cHJldmlvdXNGb2N1c2Fi
bGVOb2RlKEZvY3VzTmF2aWdhdGlvblNjb3BlIHNjb3BlLCBOb2RlKiBzdGFydCwgS2V5Ym9hcmRF
dmVudCogZXZlbnQpCiB7CisgICAgdXNpbmcgbmFtZXNwYWNlIE5vZGVSZW5kZXJpbmdUcmF2ZXJz
YWw7CisKICAgICBOb2RlKiBsYXN0ID0gMDsKLSAgICBmb3IgKENvbXBvc2VkU2hhZG93VHJlZVdh
bGtlciB3YWxrZXIgPSB3YWxrZXJGcm9tKHNjb3BlLnJvb3ROb2RlKCkpOyB3YWxrZXIuZ2V0KCk7
IHdhbGtlci5sYXN0Q2hpbGQoKSkKLSAgICAgICAgbGFzdCA9IHdhbGtlci5nZXQoKTsKKyAgICBm
b3IgKE5vZGUqIG5vZGUgPSBzY29wZS5yb290Tm9kZSgpOyBub2RlOyBub2RlID0gbGFzdENoaWxk
SW5TY29wZShub2RlKSkKKyAgICAgICAgbGFzdCA9IG5vZGU7CiAgICAgQVNTRVJUKGxhc3QpOwog
CiAgICAgLy8gRmlyc3QgdHJ5IHRvIGZpbmQgdGhlIGxhc3Qgbm9kZSBpbiB0aGUgc2NvcGUgdGhh
dCBjb21lcyBiZWZvcmUgc3RhcnQgYW5kIGhhcyB0aGUgc2FtZSB0YWJpbmRleCBhcyBzdGFydC4K
QEAgLTUzMiw3ICs1MDMsNyBAQCBOb2RlKiBGb2N1c0NvbnRyb2xsZXI6OnByZXZpb3VzRm9jdXNh
YmxlTm9kZShGb2N1c05hdmlnYXRpb25TY29wZSBzY29wZSwgTm9kZSogcwogICAgIE5vZGUqIHN0
YXJ0aW5nTm9kZTsKICAgICBpbnQgc3RhcnRpbmdUYWJJbmRleDsKICAgICBpZiAoc3RhcnQpIHsK
LSAgICAgICAgc3RhcnRpbmdOb2RlID0gcHJldmlvdXNOb2RlKHN0YXJ0KTsKKyAgICAgICAgc3Rh
cnRpbmdOb2RlID0gcHJldmlvdXNJblNjb3BlKHN0YXJ0KTsKICAgICAgICAgc3RhcnRpbmdUYWJJ
bmRleCA9IGFkanVzdGVkVGFiSW5kZXgoc3RhcnQsIGV2ZW50KTsKICAgICB9IGVsc2UgewogICAg
ICAgICBzdGFydGluZ05vZGUgPSBsYXN0OwpAQCAtNTQxLDkgKzUxMiw5IEBAIE5vZGUqIEZvY3Vz
Q29udHJvbGxlcjo6cHJldmlvdXNGb2N1c2FibGVOb2RlKEZvY3VzTmF2aWdhdGlvblNjb3BlIHNj
b3BlLCBOb2RlKiBzCiAKICAgICAvLyBIb3dldmVyLCBpZiBhIG5vZGUgaXMgZXhjbHVkZWQgZnJv
bSB0aGUgbm9ybWFsIHRhYmJpbmcgY3ljbGUsIHRoZSBwcmV2aW91cyBmb2N1c2FibGUgbm9kZSBp
cyBkZXRlcm1pbmVkIGJ5IHRyZWUgb3JkZXIKICAgICBpZiAoc3RhcnRpbmdUYWJJbmRleCA8IDAp
IHsKLSAgICAgICAgZm9yIChDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyID0gd2Fsa2Vy
RnJvbShzdGFydGluZ05vZGUpOyB3YWxrZXIuZ2V0KCk7IHdhbGtlci5wcmV2aW91cygpKSB7Ci0g
ICAgICAgICAgICBpZiAoc2hvdWxkVmlzaXQod2Fsa2VyLmdldCgpLCBldmVudCkgJiYgYWRqdXN0
ZWRUYWJJbmRleCh3YWxrZXIuZ2V0KCksIGV2ZW50KSA+PSAwKQotICAgICAgICAgICAgICAgIHJl
dHVybiB3YWxrZXIuZ2V0KCk7CisgICAgICAgIGZvciAoTm9kZSogbm9kZSA9IHN0YXJ0aW5nTm9k
ZTsgbm9kZTsgbm9kZSA9IHByZXZpb3VzSW5TY29wZShub2RlKSkgeworICAgICAgICAgICAgaWYg
KHNob3VsZFZpc2l0KG5vZGUsIGV2ZW50KSAmJiBhZGp1c3RlZFRhYkluZGV4KG5vZGUsIGV2ZW50
KSA+PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAgICB9CiAgICAgfQog
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>