<?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>23439</bug_id>
          
          <creation_ts>2009-01-20 12:50:56 -0800</creation_ts>
          <short_desc>Remove SVGPaintServerPlatform&apos;s</short_desc>
          <delta_ts>2009-01-21 12:09:43 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>106372</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-01-20 12:50:56 -0800</bug_when>
    <thetext>Remove the platform dependent SVGPaintServer&apos;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106379</commentid>
    <comment_count>1</comment_count>
      <attachid>26869</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-01-20 13:10:52 -0800</bug_when>
    <thetext>Created attachment 26869
Remove platform paintServers

Remove all platform SVGPaintServer&apos;s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106479</commentid>
    <comment_count>2</comment_count>
      <attachid>26898</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-01-21 11:57:40 -0800</bug_when>
    <thetext>Created attachment 26898
Remove platform paintServers

this one fixes a crasher in renderPath() if no path is specified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106480</commentid>
    <comment_count>3</comment_count>
      <attachid>26898</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-21 11:59:48 -0800</bug_when>
    <thetext>Comment on attachment 26898
Remove platform paintServers

Great patch r=me, assuming no regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106485</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-01-21 12:09:43 -0800</bug_when>
    <thetext>landed in r40088.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26869</attachid>
            <date>2009-01-20 13:10:52 -0800</date>
            <delta_ts>2009-01-21 11:57:40 -0800</delta_ts>
            <desc>Remove platform paintServers</desc>
            <filename>paintserver.patch</filename>
            <type>text/plain</type>
            <size>25966</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDA2NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMDktMDEtMjAgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1v
dmUgbGFzdCByZWxpY3Mgb2YgcGxhdGZvcm0gZGVwZW5kZW50IFBhaW50U2VydmVyIGluIFNWRy4K
KyAgICAgICAgV2UgZHJhdyBldmVyeXRoaW5nIHdpdGggdGhlIGhlbHAgb2YgR3JhcGhpY3NDb250
ZXh0LgorCisgICAgICAgIFJlbW92ZSBTVkdQYWludFNlcnZlclBsYXRmb3JtJ3MKKyAgICAgICAg
W2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQzOV0KKworICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGFpbnRTZXJ2ZXI6OmRyYXcpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGFpbnRTZXJ2ZXI6OnJlbmRlclBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGFpbnRTZXJ2ZXI6OnRlYXJkb3duKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHUGFp
bnRTZXJ2ZXIuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXJHcmFkaWVu
dC5jcHA6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR1BhaW50U2VydmVyR3JhZGllbnQuaDoK
KyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJuLmNwcDoKKyAgICAg
ICAgKiBzdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJuLmg6CisgICAgICAgICogc3Zn
L2dyYXBoaWNzL1NWR1BhaW50U2VydmVyU29saWQuY3BwOgorICAgICAgICAqIHN2Zy9ncmFwaGlj
cy9TVkdQYWludFNlcnZlclNvbGlkLmg6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2NhaXJvL1NW
R1BhaW50U2VydmVyQ2Fpcm8uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9j
Zy9TVkdQYWludFNlcnZlckNnLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3Mv
cXQvU1ZHUGFpbnRTZXJ2ZXJRdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL2dyYXBoaWNz
L3NraWEvU1ZHUGFpbnRTZXJ2ZXJTa2lhLmNwcDogUmVtb3ZlZC4KKwogMjAwOS0wMS0yMCAgRGly
ayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5pa29s
YXMgWmltbWVybWFubi4KSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNDAwNjMpCisrKyBXZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yODM1LDcgKzI4MzUsNiBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHU3BvdExpZ2h0
U291cmNlLmgKIAogd2ViY29yZWd0a19zb3VyY2VzICs9IFwKLQlXZWJDb3JlL3N2Zy9ncmFwaGlj
cy9jYWlyby9TVkdQYWludFNlcnZlckNhaXJvLmNwcCBcCiAJV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
Y2Fpcm8vU1ZHUmVzb3VyY2VGaWx0ZXJDYWlyby5jcHAgXAogCVdlYkNvcmUvc3ZnL2dyYXBoaWNz
L2NhaXJvL1NWR1Jlc291cmNlTWFza2VyQ2Fpcm8uY3BwCiAKSW5kZXg6IFdlYkNvcmUvV2ViQ29y
ZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gNDAwNjMp
CisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xNzk2LDcgKzE3OTYs
NiBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAgICAgcmVuZGVyaW5n
L1NWR1Jvb3RJbmxpbmVCb3guY3BwCiAKIFNPVVJDRVMgKz0gXAotICAgICAgICBzdmcvZ3JhcGhp
Y3MvcXQvU1ZHUGFpbnRTZXJ2ZXJRdC5jcHAgXAogICAgICAgICBzdmcvZ3JhcGhpY3MvcXQvU1ZH
UmVzb3VyY2VGaWx0ZXJRdC5jcHAgXAogICAgICAgICBzdmcvZ3JhcGhpY3MvcXQvU1ZHUmVzb3Vy
Y2VNYXNrZXJRdC5jcHAKIApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CShyZXZpc2lvbiA0MDA2MykKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oJKHdvcmtpbmcgY29weSkKQEAgLTE1NDI4LDI2ICsxNTQyOCw2IEBACiAJCQkJCU5hbWU9ImNn
Ig0KIAkJCQkJPg0KIAkJCQkJPEZpbGUNCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xncmFw
aGljc1xjZ1xTVkdQYWludFNlcnZlckNnLmNwcCINCi0JCQkJCQk+DQotCQkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQotCQkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQkJPg0KLQkJCQkJCQk8VG9vbA0KLQkJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkJLz4NCi0JCQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPg0KLQkJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCQlOYW1lPSJSZWxlYXNl
X0NhaXJvfFdpbjMyIg0KLQkJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQkJ
Pg0KLQkJCQkJCQk8VG9vbA0KLQkJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJ
CQkJLz4NCi0JCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPC9GaWxlPg0KLQkJCQkJ
PEZpbGUNCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xncmFwaGljc1xjZ1xTVkdSZXNvdXJj
ZUZpbHRlckNnLmNwcCINCiAJCQkJCQk+DQogCQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAt
MTU2NDgsNDIgKzE1NjI4LDYgQEAKIAkJCQkJTmFtZT0iY2Fpcm8iDQogCQkJCQk+DQogCQkJCQk8
RmlsZQ0KLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXGdyYXBoaWNzXGNhaXJvXFNWR1BhaW50
U2VydmVyQ2Fpcm8uY3BwIg0KLQkJCQkJCT4NCi0JCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0J
CQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KLQkJCQkJCQk+DQotCQkJCQkJCTxUb29sDQotCQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KLQkJCQkJCQkvPg0KLQkJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQotCQkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCQk+DQotCQkJCQkJCTxUb29sDQotCQkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCQkvPg0KLQkJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQotCQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJCU5hbWU9IkRlYnVn
X0ludGVybmFsfFdpbjMyIg0KLQkJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJ
CQkJPg0KLQkJCQkJCQk8VG9vbA0KLQkJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0J
CQkJCQkJLz4NCi0JCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KLQkJCQkJCQlOYW1lPSJSZWxlYXNlX1BHT3xXaW4zMiINCi0JCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJCT4NCi0JCQkJCQkJPFRvb2wNCi0JCQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJCS8+DQotCQkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCi0JCQkJCTwvRmlsZT4NCi0JCQkJCTxGaWxlDQogCQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxzdmdcZ3JhcGhpY3NcY2Fpcm9cU1ZHUmVzb3VyY2VGaWx0ZXJDYWlyby5jcHAiDQogCQkJCQkJ
Pg0KIAkJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA0MDA2MykKKysrIFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMjAzLDcgKzMy
MDMsNiBAQAogCQlCMjM3QzhBODBEMzQ0RDExMDAxM0Y3MDcgLyogU1ZHRm9udERhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMzdDOEE2MEQzNDRE
MTEwMDEzRjcwNyAvKiBTVkdGb250RGF0YS5oICovOyB9OwogCQlCMjQwNTU2NTBCNUJFNjQwMDAy
QTI4QzAgLyogRE9NU1ZHRWxlbWVudEluc3RhbmNlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNDA1NTYzMEI1QkU2NDAwMDJBMjhDMCAv
KiBET01TVkdFbGVtZW50SW5zdGFuY2VJbnRlcm5hbC5oICovOyB9OwogCQlCMjQwNTU2NjBCNUJF
NjQwMDAyQTI4QzAgLyogRE9NU1ZHRWxlbWVudEluc3RhbmNlTGlzdEludGVybmFsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjQwNTU2NDBCNUJFNjQw
MDAyQTI4QzAgLyogRE9NU1ZHRWxlbWVudEluc3RhbmNlTGlzdEludGVybmFsLmggKi87IH07Ci0J
CUIyNTU5OTJGMEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdQYWludFNlcnZlckNnLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNTU5ODkzMEQwMEQ4Qjgw
MEJCODI1QyAvKiBTVkdQYWludFNlcnZlckNnLmNwcCAqLzsgfTsKIAkJQjI1NTk5MzUwRDAwRDhC
QTAwQkI4MjVDIC8qIFNWR1Jlc291cmNlRmlsdGVyQ2cubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1OTg5OTBEMDBEOEI4MDBCQjgyNUMgLyogU1ZH
UmVzb3VyY2VGaWx0ZXJDZy5tbSAqLzsgfTsKIAkJQjI1NTk5MzcwRDAwRDhCQTAwQkI4MjVDIC8q
IFNWR1Jlc291cmNlTWFza2VyQ2cubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCMjU1OTg5QjBEMDBEOEI4MDBCQjgyNUMgLyogU1ZHUmVzb3VyY2VNYXNr
ZXJDZy5tbSAqLzsgfTsKIAkJQjI1NTk5NDAwRDAwRDhCQTAwQkI4MjVDIC8qIFNWR0ZFSGVscGVy
c0NnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1
OThBNjBEMDBEOEI4MDBCQjgyNUMgLyogU1ZHRkVIZWxwZXJzQ2cuaCAqLzsgfTsKQEAgLTc5MTks
NyArNzkxOCw2IEBACiAJCUIyMzdDOEE2MEQzNDREMTEwMDEzRjcwNyAvKiBTVkdGb250RGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRm9udERhdGEuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI0MDU1NjMwQjVCRTY0MDAwMkEyOEMwIC8qIERPTVNW
R0VsZW1lbnRJbnN0YW5jZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01TVkdFbGVtZW50SW5zdGFuY2VJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCMjQwNTU2NDBCNUJFNjQwMDAyQTI4QzAgLyogRE9NU1ZHRWxlbWVudEluc3Rh
bmNlTGlzdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01T
VkdFbGVtZW50SW5zdGFuY2VMaXN0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQjI1NTk4OTMwRDAwRDhCODAwQkI4MjVDIC8qIFNWR1BhaW50U2VydmVyQ2cuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1BhaW50U2VydmVyQ2cuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjU1OTg5OTBEMDBEOEI4MDBCQjgyNUMg
LyogU1ZHUmVzb3VyY2VGaWx0ZXJDZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBTVkdSZXNvdXJjZUZpbHRlckNnLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCMjU1OTg5QjBEMDBEOEI4MDBCQjgyNUMgLyogU1ZHUmVzb3VyY2VNYXNrZXJDZy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTVkdSZXNvdXJjZU1h
c2tlckNnLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjU1OThBNjBEMDBEOEI4
MDBCQjgyNUMgLyogU1ZHRkVIZWxwZXJzQ2cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR0ZFSGVscGVyc0NnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
Mjc1MSw3ICsxMjc0OSw2IEBACiAJCUIyNTU5ODhGMEQwMEQ4QjgwMEJCODI1QyAvKiBjZyAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQjI1NTk4OTMwRDAw
RDhCODAwQkI4MjVDIC8qIFNWR1BhaW50U2VydmVyQ2cuY3BwICovLAogCQkJCUIyNTU5ODk5MEQw
MEQ4QjgwMEJCODI1QyAvKiBTVkdSZXNvdXJjZUZpbHRlckNnLm1tICovLAogCQkJCUIyNTU5ODlC
MEQwMEQ4QjgwMEJCODI1QyAvKiBTVkdSZXNvdXJjZU1hc2tlckNnLm1tICovLAogCQkJKTsKQEAg
LTE4MTg4LDcgKzE4MTg1LDYgQEAKIAkJCQlCMjIyN0E1MDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
TnVtYmVyTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0E1MzBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUGFpbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI1NTk5QTYwRDAwRDhCQTAw
QkI4MjVDIC8qIFNWR1BhaW50U2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUIyNTU5OTJG
MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdQYWludFNlcnZlckNnLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUIyNTU5OUE4MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdQYWludFNlcnZlckdyYWRpZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyNTU5OUFBMEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdQYWlu
dFNlcnZlckxpbmVhckdyYWRpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNTU5OUFDMEQw
MEQ4QkEwMEJCODI1QyAvKiBTVkdQYWludFNlcnZlclBhdHRlcm4uY3BwIGluIFNvdXJjZXMgKi8s
CkluZGV4OiBXZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdQYWludFNlcnZlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXIuY3BwCShyZXZpc2lvbiA0
MDA2MikKKysrIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR1BhaW50U2VydmVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTmlrb2xh
cyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiAgICAgICAgICAgICAgIDIwMDcg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqICAgICAgICAgICAgICAgMjAwOCBEaXJrIFNjaHVs
emUgPGtyaXRAd2Via2l0Lm9yZz4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MTU4LDYgKzE1OSw0MCBAQCB2b2lkIGFwcGx5U3Ryb2tlU3R5bGVUb0NvbnRleHQoR3JhcGhpY3ND
CiAgICAgY29udGV4dC0+c2V0TGluZURhc2goZGFzaGVzLCBkYXNoT2Zmc2V0KTsKIH0KIAordm9p
ZCBTVkdQYWludFNlcnZlcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0LCBjb25zdCBS
ZW5kZXJPYmplY3QqIHBhdGgsIFNWR1BhaW50VGFyZ2V0VHlwZSB0eXBlKSBjb25zdAoreworICAg
IGlmICghc2V0dXAoY29udGV4dCwgcGF0aCwgdHlwZSkpCisgICAgICAgIHJldHVybjsKKworICAg
IHJlbmRlclBhdGgoY29udGV4dCwgcGF0aCwgdHlwZSk7CisgICAgdGVhcmRvd24oY29udGV4dCwg
cGF0aCwgdHlwZSk7Cit9CisKK3ZvaWQgU1ZHUGFpbnRTZXJ2ZXI6OnJlbmRlclBhdGgoR3JhcGhp
Y3NDb250ZXh0KiYgY29udGV4dCwgY29uc3QgUmVuZGVyT2JqZWN0KiBwYXRoLCBTVkdQYWludFRh
cmdldFR5cGUgdHlwZSkgY29uc3QKK3sKKyAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3R5bGUg
PSBwYXRoLT5zdHlsZSgpLT5zdmdTdHlsZSgpOworCisgICAgaWYgKCh0eXBlICYgQXBwbHlUb0Zp
bGxUYXJnZXRUeXBlKSAmJiBzdHlsZS0+aGFzRmlsbCgpKQorICAgICAgICBjb250ZXh0LT5maWxs
UGF0aCgpOworCisgICAgaWYgKCh0eXBlICYgQXBwbHlUb1N0cm9rZVRhcmdldFR5cGUpICYmIHN0
eWxlLT5oYXNTdHJva2UoKSkKKyAgICAgICAgY29udGV4dC0+c3Ryb2tlUGF0aCgpOworfQorCit2
b2lkIFNWR1BhaW50U2VydmVyOjp0ZWFyZG93bihHcmFwaGljc0NvbnRleHQqJiwgY29uc3QgUmVu
ZGVyT2JqZWN0KiwgU1ZHUGFpbnRUYXJnZXRUeXBlLCBib29sKSBjb25zdAoreworI2lmIFBMQVRG
T1JNKFNLSUEpCisgICAgLy8gRklYTUU6IE1vdmUgdGhpcyBpbnRvIHRoZSBHcmFwaGljc0NvbnRl
eHQKKyAgICAvLyBXZWJLaXQgaW1wbGljaXRseSBleHBlY3RzIHVzIHRvIHJlc2V0IHRoZSBwYXRo
LgorICAgIC8vIEZvciBleGFtcGxlIGluIGZpbGxBbmRTdHJva2VQYXRoKCkgb2YgUmVuZGVyUGF0
aC5jcHAgdGhlIHBhdGggaXMgCisgICAgLy8gYWRkZWQgYmFjayB0byB0aGUgY29udGV4dCBhZnRl
ciBmaWxsaW5nLiBUaGlzIGlzIGJlY2F1c2UgaW50ZXJuYWxseSBpdAorICAgIC8vIGNhbGxzIENH
Q29udGV4dEZpbGxQYXRoKCkgd2hpY2ggY2xvc2VzIHRoZSBwYXRoLgorICAgIGNvbnRleHQtPmJl
Z2luUGF0aCgpOworICAgIGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXRHcmFkaWVudCgw
KTsKKyAgICBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+c2V0UGF0dGVybigwKTsKKyNlbmRp
ZgorfQorCiBEYXNoQXJyYXkgZGFzaEFycmF5RnJvbVJlbmRlcmluZ1N0eWxlKGNvbnN0IFJlbmRl
clN0eWxlKiBzdHlsZSkKIHsKICAgICBEYXNoQXJyYXkgYXJyYXk7CkluZGV4OiBXZWJDb3JlL3N2
Zy9ncmFwaGljcy9TVkdQYWludFNlcnZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL2dy
YXBoaWNzL1NWR1BhaW50U2VydmVyLmgJKHJldmlzaW9uIDQwMDYyKQorKysgV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsMTIgKzc3LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgU1ZHUGFpbnRTZXJ2ZXJTb2xp
ZCogc2hhcmVkU29saWRQYWludFNlcnZlcigpOwogCiAgICAgcHJvdGVjdGVkOgotI2lmIFBMQVRG
T1JNKENHKQotICAgICAgICB2b2lkIHN0cm9rZVBhdGgoQ0dDb250ZXh0UmVmLCBjb25zdCBSZW5k
ZXJPYmplY3QqKSBjb25zdDsKLSAgICAgICAgdm9pZCBmaWxsUGF0aChDR0NvbnRleHRSZWYsIGNv
bnN0IFJlbmRlck9iamVjdCopIGNvbnN0OwotI2VuZGlmCi0KLSAgICBwcm90ZWN0ZWQ6CiAgICAg
ICAgIFNWR1BhaW50U2VydmVyKCk7ICAgICAgICAKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL3N2
Zy9ncmFwaGljcy9TVkdQYWludFNlcnZlckdyYWRpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdQYWludFNlcnZlckdyYWRpZW50LmNwcAkocmV2aXNpb24gNDAw
NjIpCisrKyBXZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdQYWludFNlcnZlckdyYWRpZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjU3LDE3ICsyNTcsNiBAQCBib29sIFNWR1BhaW50U2VydmVyR3Jh
ZGllbnQ6OnNldHVwKEdyYXBoCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU1ZHUGFpbnRT
ZXJ2ZXJHcmFkaWVudDo6cmVuZGVyUGF0aChHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0LCBjb25z
dCBSZW5kZXJPYmplY3QqIHBhdGgsIFNWR1BhaW50VGFyZ2V0VHlwZSB0eXBlKSBjb25zdAotewot
ICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlKiBzdHlsZSA9IHBhdGgtPnN0eWxlKCktPnN2Z1N0eWxl
KCk7Ci0KLSAgICBpZiAoKHR5cGUgJiBBcHBseVRvRmlsbFRhcmdldFR5cGUpICYmIHN0eWxlLT5o
YXNGaWxsKCkpCi0gICAgICAgIGNvbnRleHQtPmZpbGxQYXRoKCk7Ci0KLSAgICBpZiAoKHR5cGUg
JiBBcHBseVRvU3Ryb2tlVGFyZ2V0VHlwZSkgJiYgc3R5bGUtPmhhc1N0cm9rZSgpKQotICAgICAg
ICBjb250ZXh0LT5zdHJva2VQYXRoKCk7Ci19Ci0KIHZvaWQgU1ZHUGFpbnRTZXJ2ZXJHcmFkaWVu
dDo6dGVhcmRvd24oR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwgY29uc3QgUmVuZGVyT2JqZWN0
KiBvYmplY3QsIFNWR1BhaW50VGFyZ2V0VHlwZSwgYm9vbCBpc1BhaW50aW5nVGV4dCkgY29uc3QK
IHsKICNpZiBQTEFURk9STShDRykKSW5kZXg6IFdlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR1BhaW50
U2VydmVyR3JhZGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdQ
YWludFNlcnZlckdyYWRpZW50LmgJKHJldmlzaW9uIDQwMDYyKQorKysgV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvU1ZHUGFpbnRTZXJ2ZXJHcmFkaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MSw3ICs3
MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgc2V0dXAo
R3JhcGhpY3NDb250ZXh0KiYsIGNvbnN0IFJlbmRlck9iamVjdCosIFNWR1BhaW50VGFyZ2V0VHlw
ZSwgYm9vbCBpc1BhaW50aW5nVGV4dCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0ZWFy
ZG93bihHcmFwaGljc0NvbnRleHQqJiwgY29uc3QgUmVuZGVyT2JqZWN0KiwgU1ZHUGFpbnRUYXJn
ZXRUeXBlLCBib29sIGlzUGFpbnRpbmdUZXh0KSBjb25zdDsKLSAgICAgICAgdmlydHVhbCB2b2lk
IHJlbmRlclBhdGgoR3JhcGhpY3NDb250ZXh0KiYsIGNvbnN0IFJlbmRlck9iamVjdCosIFNWR1Bh
aW50VGFyZ2V0VHlwZSkgY29uc3Q7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIFNWR1BhaW50
U2VydmVyR3JhZGllbnQoY29uc3QgU1ZHR3JhZGllbnRFbGVtZW50KiBvd25lcik7CkluZGV4OiBX
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdQYWludFNlcnZlclBhdHRlcm4uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR1BhaW50U2VydmVyUGF0dGVybi5jcHAJKHJldmlz
aW9uIDQwMDYzKQorKysgV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTczLDE3ICsxNzMsNiBAQCBib29sIFNWR1BhaW50U2Vy
dmVyUGF0dGVybjo6c2V0dXAoR3JhcGhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU1ZH
UGFpbnRTZXJ2ZXJQYXR0ZXJuOjpyZW5kZXJQYXRoKEdyYXBoaWNzQ29udGV4dComIGNvbnRleHQs
IGNvbnN0IFJlbmRlck9iamVjdCogcGF0aCwgU1ZHUGFpbnRUYXJnZXRUeXBlIHR5cGUpIGNvbnN0
Ci17Ci0gICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN0eWxlID0gcGF0aC0+c3R5bGUoKS0+c3Zn
U3R5bGUoKTsKLQotICAgIGlmICgodHlwZSAmIEFwcGx5VG9GaWxsVGFyZ2V0VHlwZSkgJiYgc3R5
bGUtPmhhc0ZpbGwoKSkKLSAgICAgICAgY29udGV4dC0+ZmlsbFBhdGgoKTsKLQotICAgIGlmICgo
dHlwZSAmIEFwcGx5VG9TdHJva2VUYXJnZXRUeXBlKSAmJiBzdHlsZS0+aGFzU3Ryb2tlKCkpCi0g
ICAgICAgIGNvbnRleHQtPnN0cm9rZVBhdGgoKTsKLX0KLQogdm9pZCBTVkdQYWludFNlcnZlclBh
dHRlcm46OnRlYXJkb3duKEdyYXBoaWNzQ29udGV4dComIGNvbnRleHQsIGNvbnN0IFJlbmRlck9i
amVjdCosIFNWR1BhaW50VGFyZ2V0VHlwZSwgYm9vbCkgY29uc3QKIHsKICAgICBtX3BhdHRlcm4g
PSAwOwpJbmRleDogV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJuLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJu
LmgJKHJldmlzaW9uIDQwMDYzKQorKysgV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2
ZXJQYXR0ZXJuLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRp
b24oVGV4dFN0cmVhbSYpIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZXR1cChHcmFw
aGljc0NvbnRleHQqJiwgY29uc3QgUmVuZGVyT2JqZWN0KiwgU1ZHUGFpbnRUYXJnZXRUeXBlLCBi
b29sIGlzUGFpbnRpbmdUZXh0KSBjb25zdDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlbmRlclBh
dGgoR3JhcGhpY3NDb250ZXh0KiYsIGNvbnN0IFJlbmRlck9iamVjdCosIFNWR1BhaW50VGFyZ2V0
VHlwZSkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0ZWFyZG93bihHcmFwaGljc0NvbnRl
eHQqJiwgY29uc3QgUmVuZGVyT2JqZWN0KiwgU1ZHUGFpbnRUYXJnZXRUeXBlLCBib29sIGlzUGFp
bnRpbmdUZXh0KSBjb25zdDsKIAogICAgIHByaXZhdGU6CkluZGV4OiBXZWJDb3JlL3N2Zy9ncmFw
aGljcy9TVkdQYWludFNlcnZlclNvbGlkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdQYWludFNlcnZlclNvbGlkLmNwcAkocmV2aXNpb24gNDAwNjIpCisrKyBXZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdQYWludFNlcnZlclNvbGlkLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODgsMTcgKzg4LDYgQEAgYm9vbCBTVkdQYWludFNlcnZlclNvbGlkOjpzZXR1cChHcmFwaGlj
cwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFNWR1BhaW50U2VydmVyU29saWQ6OnJlbmRl
clBhdGgoR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwgY29uc3QgUmVuZGVyT2JqZWN0KiBwYXRo
LCBTVkdQYWludFRhcmdldFR5cGUgdHlwZSkgY29uc3QKLXsKLSAgICBjb25zdCBTVkdSZW5kZXJT
dHlsZSogc3ZnU3R5bGUgPSBwYXRoID8gcGF0aC0+c3R5bGUoKS0+c3ZnU3R5bGUoKSA6IDA7Ci0K
LSAgICBpZiAoKHR5cGUgJiBBcHBseVRvRmlsbFRhcmdldFR5cGUpICYmICghc3ZnU3R5bGUgfHwg
c3ZnU3R5bGUtPmhhc0ZpbGwoKSkpCi0gICAgICAgIGNvbnRleHQtPmZpbGxQYXRoKCk7Ci0KLSAg
ICBpZiAoKHR5cGUgJiBBcHBseVRvU3Ryb2tlVGFyZ2V0VHlwZSkgJiYgKCFzdmdTdHlsZSB8fCBz
dmdTdHlsZS0+aGFzU3Ryb2tlKCkpKQotICAgICAgICBjb250ZXh0LT5zdHJva2VQYXRoKCk7Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdQYWludFNlcnZlclNvbGlkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXJTb2xpZC5oCShyZXZpc2lvbiA0MDA2MikKKysrIFdlYkNv
cmUvc3ZnL2dyYXBoaWNzL1NWR1BhaW50U2VydmVyU29saWQuaAkod29ya2luZyBjb3B5KQpAQCAt
NDYsNyArNDYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgVGV4dFN0
cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJikgY29uc3Q7CiAKICAgICAg
ICAgdmlydHVhbCBib29sIHNldHVwKEdyYXBoaWNzQ29udGV4dComLCBjb25zdCBSZW5kZXJPYmpl
Y3QqLCBTVkdQYWludFRhcmdldFR5cGUsIGJvb2wgaXNQYWludGluZ1RleHQpIGNvbnN0OwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyUGF0aChHcmFwaGljc0NvbnRleHQqJiwgY29uc3QgUmVu
ZGVyT2JqZWN0KiwgU1ZHUGFpbnRUYXJnZXRUeXBlKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAg
ICAgICAgIFNWR1BhaW50U2VydmVyU29saWQoKTsKSW5kZXg6IFdlYkNvcmUvc3ZnL2dyYXBoaWNz
L2NhaXJvL1NWR1BhaW50U2VydmVyQ2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L2dyYXBoaWNzL2NhaXJvL1NWR1BhaW50U2VydmVyQ2Fpcm8uY3BwCShyZXZpc2lvbiA0MDA2MikK
KysrIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2NhaXJvL1NWR1BhaW50U2VydmVyQ2Fpcm8uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcg
QWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5B
QkxFKFNWRykKLSNpbmNsdWRlICJTVkdQYWludFNlcnZlci5oIgotCi0jaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiU1ZHUGFpbnRTZXJ2ZXIuaCIKLSNpbmNsdWRlICJSZW5k
ZXJQYXRoLmgiCi0KLSNpbmNsdWRlIDxjYWlyby5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LXZvaWQgU1ZHUGFpbnRTZXJ2ZXI6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwgY29u
c3QgUmVuZGVyT2JqZWN0KiBwYXRoLCBTVkdQYWludFRhcmdldFR5cGUgdHlwZSkgY29uc3QKLXsK
LSAgICBpZiAoIXNldHVwKGNvbnRleHQsIHBhdGgsIHR5cGUpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICByZW5kZXJQYXRoKGNvbnRleHQsIHBhdGgsIHR5cGUpOwotICAgIHRlYXJkb3duKGNvbnRl
eHQsIHBhdGgsIHR5cGUpOwotfQotCi12b2lkIFNWR1BhaW50U2VydmVyOjp0ZWFyZG93bihHcmFw
aGljc0NvbnRleHQqJiwgY29uc3QgUmVuZGVyT2JqZWN0KiwgU1ZHUGFpbnRUYXJnZXRUeXBlLCBi
b29sIGlzUGFpbnRpbmdUZXh0KSBjb25zdAotewotICAgIC8vIG5vLW9wCi19Ci0KLXZvaWQgU1ZH
UGFpbnRTZXJ2ZXI6OnJlbmRlclBhdGgoR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwgY29uc3Qg
UmVuZGVyT2JqZWN0KiBwYXRoLCBTVkdQYWludFRhcmdldFR5cGUgdHlwZSkgY29uc3QKLXsKLSAg
ICBjYWlyb190KiBjciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwotICAgIGNvbnN0IFNW
R1JlbmRlclN0eWxlKiBzdHlsZSA9IHBhdGggPyBwYXRoLT5zdHlsZSgpLT5zdmdTdHlsZSgpOiAw
OwotCi0gICAgaWYgKCh0eXBlICYgQXBwbHlUb0ZpbGxUYXJnZXRUeXBlKSAmJiAoIXN0eWxlIHx8
IHN0eWxlLT5oYXNGaWxsKCkpKQotICAgICAgICBjYWlyb19maWxsX3ByZXNlcnZlKGNyKTsKLQot
ICAgIGlmICgodHlwZSAmIEFwcGx5VG9TdHJva2VUYXJnZXRUeXBlKSAmJiAoIXN0eWxlIHx8IHN0
eWxlLT5oYXNTdHJva2UoKSkpCi0gICAgICAgIGNhaXJvX3N0cm9rZV9wcmVzZXJ2ZShjcik7Ci0K
LSAgICBjYWlyb19uZXdfcGF0aChjcik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmCkluZGV4OiBXZWJDb3JlL3N2Zy9ncmFwaGljcy9jZy9TVkdQYWludFNlcnZlckNnLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9ncmFwaGljcy9jZy9TVkdQYWludFNlcnZlckNn
LmNwcAkocmV2aXNpb24gNDAwNjIpCisrKyBXZWJDb3JlL3N2Zy9ncmFwaGljcy9jZy9TVkdQYWlu
dFNlcnZlckNnLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3NSArMCwwIEBACi0vKgotICAgIENv
cHlyaWdodCAoQykgMjAwNiBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KLQot
ICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotCi0jaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJTVkdQYWludFNlcnZlci5oIgot
Ci0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiUmVuZGVyT2JqZWN0Lmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBTVkdQYWludFNlcnZlcjo6ZHJhdyhHcmFw
aGljc0NvbnRleHQqJiBjb250ZXh0LCBjb25zdCBSZW5kZXJPYmplY3QqIHBhdGgsIFNWR1BhaW50
VGFyZ2V0VHlwZSB0eXBlKSBjb25zdAotewotICAgIGlmICghc2V0dXAoY29udGV4dCwgcGF0aCwg
dHlwZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHJlbmRlclBhdGgoY29udGV4dCwgcGF0aCwg
dHlwZSk7Ci0gICAgdGVhcmRvd24oY29udGV4dCwgcGF0aCwgdHlwZSk7Ci19Ci0KLXZvaWQgU1ZH
UGFpbnRTZXJ2ZXI6OnRlYXJkb3duKEdyYXBoaWNzQ29udGV4dComLCBjb25zdCBSZW5kZXJPYmpl
Y3QqLCBTVkdQYWludFRhcmdldFR5cGUsIGJvb2wpIGNvbnN0Ci17Ci0gICAgLy8gbm8tb3AKLX0K
LQotdm9pZCBTVkdQYWludFNlcnZlcjo6cmVuZGVyUGF0aChHcmFwaGljc0NvbnRleHQqJiBjb250
ZXh0LCBjb25zdCBSZW5kZXJPYmplY3QqIHBhdGgsIFNWR1BhaW50VGFyZ2V0VHlwZSB0eXBlKSBj
b25zdAotewotICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IHBhdGggPyBwYXRoLT5zdHlsZSgpIDog
MDsKLSAgICBDR0NvbnRleHRSZWYgY29udGV4dFJlZiA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4
dCgpOwotCi0gICAgaWYgKCh0eXBlICYgQXBwbHlUb0ZpbGxUYXJnZXRUeXBlKSAmJiAoIXN0eWxl
IHx8IHN0eWxlLT5zdmdTdHlsZSgpLT5oYXNGaWxsKCkpKQotICAgICAgICBmaWxsUGF0aChjb250
ZXh0UmVmLCBwYXRoKTsKLQotICAgIGlmICgodHlwZSAmIEFwcGx5VG9TdHJva2VUYXJnZXRUeXBl
KSAmJiAoIXN0eWxlIHx8IHN0eWxlLT5zdmdTdHlsZSgpLT5oYXNTdHJva2UoKSkpCi0gICAgICAg
IHN0cm9rZVBhdGgoY29udGV4dFJlZiwgcGF0aCk7Ci19Ci0KLXZvaWQgU1ZHUGFpbnRTZXJ2ZXI6
OnN0cm9rZVBhdGgoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IFJlbmRlck9iamVjdCopIGNv
bnN0Ci17Ci0gICAgQ0dDb250ZXh0U3Ryb2tlUGF0aChjb250ZXh0KTsKLX0KLQotdm9pZCBTVkdQ
YWludFNlcnZlcjo6ZmlsbFBhdGgoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IFJlbmRlck9i
amVjdCogcGF0aCkgY29uc3QKLXsKLSAgICBpZiAoIXBhdGggfHwgcGF0aC0+c3R5bGUoKS0+c3Zn
U3R5bGUoKS0+ZmlsbFJ1bGUoKSA9PSBSVUxFX0VWRU5PREQpCi0gICAgICAgIENHQ29udGV4dEVP
RmlsbFBhdGgoY29udGV4dCk7Ci0gICAgZWxzZQotICAgICAgICBDR0NvbnRleHRGaWxsUGF0aChj
b250ZXh0KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKLQotLy8gdmlt
OnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9zdmcvZ3JhcGhpY3MvcXQvU1ZHUGFpbnRTZXJ2ZXJR
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvZ3JhcGhpY3MvcXQvU1ZHUGFpbnRTZXJ2
ZXJRdC5jcHAJKHJldmlzaW9uIDQwMDYyKQorKysgV2ViQ29yZS9zdmcvZ3JhcGhpY3MvcXQvU1ZH
UGFpbnRTZXJ2ZXJRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNzIgKzAsMCBAQAotLyoKLSAg
ICBDb3B5cmlnaHQgKEMpIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+
Ci0gICAgQ29weXJpZ2h0IChDKSAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCi0KLSAg
ICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQotICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLQotI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiU1ZHUGFpbnRTZXJ2ZXIuaCIKLQot
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgi
Ci0jaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCi0KLSNpbmNsdWRlIDxRUGFpbnRlcj4KLSNpbmNs
dWRlIDxRVmVjdG9yPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgU1ZHUGFpbnRTZXJ2
ZXI6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwgY29uc3QgUmVuZGVyT2JqZWN0KiBw
YXRoLCBTVkdQYWludFRhcmdldFR5cGUgdHlwZSkgY29uc3QKLXsKLSAgICBpZiAoIXNldHVwKGNv
bnRleHQsIHBhdGgsIHR5cGUpKQotICAgICAgICByZXR1cm47Ci0KLSAgICByZW5kZXJQYXRoKGNv
bnRleHQsIHBhdGgsIHR5cGUpOwotICAgIHRlYXJkb3duKGNvbnRleHQsIHBhdGgsIHR5cGUpOwot
fQotCi12b2lkIFNWR1BhaW50U2VydmVyOjp0ZWFyZG93bihHcmFwaGljc0NvbnRleHQqJiwgY29u
c3QgUmVuZGVyT2JqZWN0KiwgU1ZHUGFpbnRUYXJnZXRUeXBlLCBib29sIGlzUGFpbnRpbmdUZXh0
KSBjb25zdAotewotICAgIC8vIG5vLW9wCi19Ci0KLXZvaWQgU1ZHUGFpbnRTZXJ2ZXI6OnJlbmRl
clBhdGgoR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwgY29uc3QgUmVuZGVyT2JqZWN0KiBwYXRo
LCBTVkdQYWludFRhcmdldFR5cGUgdHlwZSkgY29uc3QKLXsKLSAgICBSZW5kZXJTdHlsZSogcmVu
ZGVyU3R5bGUgPSBwYXRoID8gcGF0aC0+c3R5bGUoKTogMDsKLQotICAgIFFQYWludGVyKiBwYWlu
dGVyKGNvbnRleHQgPyBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSA6IDApOwotICAgIFFfQVNT
RVJUKHBhaW50ZXIpOwotCi0gICAgUVBhaW50ZXJQYXRoKiBwYWludGVyUGF0aChjb250ZXh0ID8g
Y29udGV4dC0+Y3VycmVudFBhdGgoKSA6IDApOwotICAgIFFfQVNTRVJUKHBhaW50ZXJQYXRoKTsK
LQotICAgIGlmICgodHlwZSAmIEFwcGx5VG9GaWxsVGFyZ2V0VHlwZSkgJiYgKCFyZW5kZXJTdHls
ZSB8fCByZW5kZXJTdHlsZS0+c3ZnU3R5bGUoKS0+aGFzRmlsbCgpKSkKLSAgICAgICAgcGFpbnRl
ci0+ZmlsbFBhdGgoKnBhaW50ZXJQYXRoLCBwYWludGVyLT5icnVzaCgpKTsKLQotICAgIGlmICgo
dHlwZSAmIEFwcGx5VG9TdHJva2VUYXJnZXRUeXBlKSAmJiAoIXJlbmRlclN0eWxlIHx8IHJlbmRl
clN0eWxlLT5zdmdTdHlsZSgpLT5oYXNTdHJva2UoKSkpCi0gICAgICAgIHBhaW50ZXItPnN0cm9r
ZVBhdGgoKnBhaW50ZXJQYXRoLCBwYWludGVyLT5wZW4oKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmCi0KLS8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUvc3Zn
L2dyYXBoaWNzL3NraWEvU1ZHUGFpbnRTZXJ2ZXJTa2lhLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N2Zy9ncmFwaGljcy9za2lhL1NWR1BhaW50U2VydmVyU2tpYS5jcHAJKHJldmlzaW9uIDQw
MDYyKQorKysgV2ViQ29yZS9zdmcvZ3JhcGhpY3Mvc2tpYS9TVkdQYWludFNlcnZlclNraWEuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDc2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MDgsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICogCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
Ci0jaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJTVkdQYWludFNlcnZlci5oIgotCi0jaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiUmVuZGVyUGF0aC5oIgotI2luY2x1ZGUg
IlBsYXRmb3JtQ29udGV4dFNraWEuaCIKLSNpbmNsdWRlICJTa2lhVXRpbHMuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi12b2lkIFNWR1BhaW50U2VydmVyOjpkcmF3KEdyYXBoaWNzQ29udGV4
dComIGNvbnRleHQsIGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBTVkdQYWludFRhcmdldFR5
cGUgdHlwZSkgY29uc3QKLXsKLSAgICBpZiAoIXNldHVwKGNvbnRleHQsIG9iamVjdCwgdHlwZSkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIHJlbmRlclBhdGgoY29udGV4dCwgb2JqZWN0LCB0eXBl
KTsKLSAgICB0ZWFyZG93bihjb250ZXh0LCBvYmplY3QsIHR5cGUpOwotfQotCi12b2lkIFNWR1Bh
aW50U2VydmVyOjp0ZWFyZG93bihHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0LCBjb25zdCBSZW5k
ZXJPYmplY3QqLCBTVkdQYWludFRhcmdldFR5cGUsIGJvb2wgaXNQYWludGluZ1RleHQpIGNvbnN0
Ci17Ci0gICAgLy8gV2ViS2l0IGltcGxpY2l0bHkgZXhwZWN0cyB1cyB0byByZXNldCB0aGUgcGF0
aC4KLSAgICAvLyBGb3IgZXhhbXBsZSBpbiBmaWxsQW5kU3Ryb2tlUGF0aCgpIG9mIFJlbmRlclBh
dGguY3BwIHRoZSBwYXRoIGlzIAotICAgIC8vIGFkZGVkIGJhY2sgdG8gdGhlIGNvbnRleHQgYWZ0
ZXIgZmlsbGluZy4gVGhpcyBpcyBiZWNhdXNlIGludGVybmFsbHkgaXQKLSAgICAvLyBjYWxscyBD
R0NvbnRleHRGaWxsUGF0aCgpIHdoaWNoIGNsb3NlcyB0aGUgcGF0aC4KLSAgICBjb250ZXh0LT5i
ZWdpblBhdGgoKTsKLSAgICBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+c2V0R3JhZGllbnQo
MCk7Ci0gICAgY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPnNldFBhdHRlcm4oMCk7Ci19Ci0K
LXZvaWQgU1ZHUGFpbnRTZXJ2ZXI6OnJlbmRlclBhdGgoR3JhcGhpY3NDb250ZXh0KiYgY29udGV4
dCwgY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIFNWR1BhaW50VGFyZ2V0VHlwZSB0eXBlKSBj
b25zdAotewotICAgIFJlbmRlclN0eWxlKiByZW5kZXJTdHlsZSA9IG9iamVjdCA/IG9iamVjdC0+
c3R5bGUoKSA6IDA7Ci0KLSAgICBpZiAoKHR5cGUgJiBBcHBseVRvRmlsbFRhcmdldFR5cGUpICYm
ICghcmVuZGVyU3R5bGUgfHwgcmVuZGVyU3R5bGUtPnN2Z1N0eWxlKCktPmhhc0ZpbGwoKSkpCi0g
ICAgICAgIGNvbnRleHQtPmZpbGxQYXRoKCk7Ci0KLSAgICBpZiAoKHR5cGUgJiBBcHBseVRvU3Ry
b2tlVGFyZ2V0VHlwZSkgJiYgKCFyZW5kZXJTdHlsZSB8fCByZW5kZXJTdHlsZS0+c3ZnU3R5bGUo
KS0+aGFzU3Ryb2tlKCkpKQotICAgICAgICBjb250ZXh0LT5zdHJva2VQYXRoKCk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26898</attachid>
            <date>2009-01-21 11:57:40 -0800</date>
            <delta_ts>2009-01-21 11:59:48 -0800</delta_ts>
            <desc>Remove platform paintServers</desc>
            <filename>paintserver.patch</filename>
            <type>text/plain</type>
            <size>26022</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDA4NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMDktMDEtMjEgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1v
dmUgbGFzdCByZWxpY3Mgb2YgcGxhdGZvcm0gZGVwZW5kZW50IFBhaW50U2VydmVyIGluIFNWRy4K
KyAgICAgICAgV2UgZHJhdyBldmVyeXRoaW5nIHdpdGggdGhlIGhlbHAgb2YgR3JhcGhpY3NDb250
ZXh0LgorCisgICAgICAgIFJlbW92ZSBTVkdQYWludFNlcnZlclBsYXRmb3JtJ3MKKyAgICAgICAg
W2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQzOV0KKworICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGFpbnRTZXJ2ZXI6OmRyYXcpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUGFpbnRTZXJ2ZXI6OnJlbmRlclBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGFpbnRTZXJ2ZXI6OnRlYXJkb3duKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHUGFp
bnRTZXJ2ZXIuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXJHcmFkaWVu
dC5jcHA6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR1BhaW50U2VydmVyR3JhZGllbnQuaDoK
KyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJuLmNwcDoKKyAgICAg
ICAgKiBzdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJuLmg6CisgICAgICAgICogc3Zn
L2dyYXBoaWNzL1NWR1BhaW50U2VydmVyU29saWQuY3BwOgorICAgICAgICAqIHN2Zy9ncmFwaGlj
cy9TVkdQYWludFNlcnZlclNvbGlkLmg6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2NhaXJvL1NW
R1BhaW50U2VydmVyQ2Fpcm8uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9j
Zy9TVkdQYWludFNlcnZlckNnLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3Mv
cXQvU1ZHUGFpbnRTZXJ2ZXJRdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL2dyYXBoaWNz
L3NraWEvU1ZHUGFpbnRTZXJ2ZXJTa2lhLmNwcDogUmVtb3ZlZC4KKwogMjAwOS0wMS0yMCAgTmlr
b2xhcyBaaW1tZXJtYW5uICA8bmlrb2xhcy56aW1tZXJtYW5uQHRvcmNobW9iaWxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBHZW9yZ2UgU3RhaWtvcy4KSW5kZXg6IFdlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24g
NDAwODYpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yODQz
LDcgKzI4NDMsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvc3ZnL2dyYXBoaWNz
L2ZpbHRlcnMvU1ZHU3BvdExpZ2h0U291cmNlLmgKIAogd2ViY29yZWd0a19zb3VyY2VzICs9IFwK
LQlXZWJDb3JlL3N2Zy9ncmFwaGljcy9jYWlyby9TVkdQYWludFNlcnZlckNhaXJvLmNwcCBcCiAJ
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvY2Fpcm8vU1ZHUmVzb3VyY2VGaWx0ZXJDYWlyby5jcHAgXAog
CVdlYkNvcmUvc3ZnL2dyYXBoaWNzL2NhaXJvL1NWR1Jlc291cmNlTWFza2VyQ2Fpcm8uY3BwCiAK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LnBybwkocmV2aXNpb24gNDAwODYpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC0xODAxLDcgKzE4MDEsNiBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEp
IHsKICAgICAgICAgcmVuZGVyaW5nL1NWR1Jvb3RJbmxpbmVCb3guY3BwCiAKIFNPVVJDRVMgKz0g
XAotICAgICAgICBzdmcvZ3JhcGhpY3MvcXQvU1ZHUGFpbnRTZXJ2ZXJRdC5jcHAgXAogICAgICAg
ICBzdmcvZ3JhcGhpY3MvcXQvU1ZHUmVzb3VyY2VGaWx0ZXJRdC5jcHAgXAogICAgICAgICBzdmcv
Z3JhcGhpY3MvcXQvU1ZHUmVzb3VyY2VNYXNrZXJRdC5jcHAKIApJbmRleDogV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA0MDA4NikKKysrIFdlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTE1NDg4LDI2ICsxNTQ4
OCw2IEBACiAJCQkJCU5hbWU9ImNnIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGUNCi0JCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHN2Z1xncmFwaGljc1xjZ1xTVkdQYWludFNlcnZlckNnLmNwcCINCi0JCQkJ
CQk+DQotCQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJCU5hbWU9IkRlYnVnX0NhaXJv
fFdpbjMyIg0KLQkJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQkJPg0KLQkJ
CQkJCQk8VG9vbA0KLQkJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkJLz4N
Ci0JCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
LQkJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KLQkJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCi0JCQkJCQkJPg0KLQkJCQkJCQk8VG9vbA0KLQkJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCi0JCQkJCQkJLz4NCi0JCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0K
LQkJCQkJPC9GaWxlPg0KLQkJCQkJPEZpbGUNCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xn
cmFwaGljc1xjZ1xTVkdSZXNvdXJjZUZpbHRlckNnLmNwcCINCiAJCQkJCQk+DQogCQkJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQpAQCAtMTU3MDgsNDIgKzE1Njg4LDYgQEAKIAkJCQkJTmFtZT0iY2Fp
cm8iDQogCQkJCQk+DQogCQkJCQk8RmlsZQ0KLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXGdy
YXBoaWNzXGNhaXJvXFNWR1BhaW50U2VydmVyQ2Fpcm8uY3BwIg0KLQkJCQkJCT4NCi0JCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCQk+DQotCQkJCQkJCTxUb29sDQotCQkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCQkvPg0KLQkJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQotCQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiDQotCQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCQk+DQot
CQkJCQkJCTxUb29sDQotCQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCQkv
Pg0KLQkJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQkJPEZpbGVDb25maWd1cmF0aW9u
DQotCQkJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KLQkJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCi0JCQkJCQkJPg0KLQkJCQkJCQk8VG9vbA0KLQkJCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkJLz4NCi0JCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KLQkJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCQlOYW1lPSJSZWxlYXNlX1BHT3xX
aW4zMiINCi0JCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJCT4NCi0JCQkJ
CQkJPFRvb2wNCi0JCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJCS8+DQot
CQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTwvRmlsZT4NCi0JCQkJCTxGaWxlDQog
CQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcZ3JhcGhpY3NcY2Fpcm9cU1ZHUmVzb3VyY2VGaWx0
ZXJDYWlyby5jcHAiDQogCQkJCQkJPg0KIAkJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KSW5kZXg6
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA0MDA4
NikKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0zMjEyLDcgKzMyMTIsNiBAQAogCQlCMjM3QzhBODBEMzQ0RDExMDAxM0Y3MDcg
LyogU1ZHRm9udERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIyMzdDOEE2MEQzNDREMTEwMDEzRjcwNyAvKiBTVkdGb250RGF0YS5oICovOyB9Owog
CQlCMjQwNTU2NTBCNUJFNjQwMDAyQTI4QzAgLyogRE9NU1ZHRWxlbWVudEluc3RhbmNlSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNDA1
NTYzMEI1QkU2NDAwMDJBMjhDMCAvKiBET01TVkdFbGVtZW50SW5zdGFuY2VJbnRlcm5hbC5oICov
OyB9OwogCQlCMjQwNTU2NjBCNUJFNjQwMDAyQTI4QzAgLyogRE9NU1ZHRWxlbWVudEluc3RhbmNl
TGlzdEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCMjQwNTU2NDBCNUJFNjQwMDAyQTI4QzAgLyogRE9NU1ZHRWxlbWVudEluc3RhbmNlTGlz
dEludGVybmFsLmggKi87IH07Ci0JCUIyNTU5OTJGMEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdQYWlu
dFNlcnZlckNnLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyNTU5ODkzMEQwMEQ4QjgwMEJCODI1QyAvKiBTVkdQYWludFNlcnZlckNnLmNwcCAqLzsg
fTsKIAkJQjI1NTk5MzUwRDAwRDhCQTAwQkI4MjVDIC8qIFNWR1Jlc291cmNlRmlsdGVyQ2cubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1OTg5OTBE
MDBEOEI4MDBCQjgyNUMgLyogU1ZHUmVzb3VyY2VGaWx0ZXJDZy5tbSAqLzsgfTsKIAkJQjI1NTk5
MzcwRDAwRDhCQTAwQkI4MjVDIC8qIFNWR1Jlc291cmNlTWFza2VyQ2cubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1OTg5QjBEMDBEOEI4MDBCQjgy
NUMgLyogU1ZHUmVzb3VyY2VNYXNrZXJDZy5tbSAqLzsgfTsKIAkJQjI1NTk5NDAwRDAwRDhCQTAw
QkI4MjVDIC8qIFNWR0ZFSGVscGVyc0NnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMjU1OThBNjBEMDBEOEI4MDBCQjgyNUMgLyogU1ZHRkVIZWxwZXJz
Q2cuaCAqLzsgfTsKQEAgLTc5MzcsNyArNzkzNiw2IEBACiAJCUIyMzdDOEE2MEQzNDREMTEwMDEz
RjcwNyAvKiBTVkdGb250RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U1ZHRm9udERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjI0MDU1NjMwQjVC
RTY0MDAwMkEyOEMwIC8qIERPTVNWR0VsZW1lbnRJbnN0YW5jZUludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TVkdFbGVtZW50SW5zdGFuY2VJbnRlcm5hbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjQwNTU2NDBCNUJFNjQwMDAyQTI4QzAg
LyogRE9NU1ZHRWxlbWVudEluc3RhbmNlTGlzdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01TVkdFbGVtZW50SW5zdGFuY2VMaXN0SW50ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjI1NTk4OTMwRDAwRDhCODAwQkI4MjVDIC8qIFNW
R1BhaW50U2VydmVyQ2cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNWR1BhaW50U2VydmVyQ2cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjU1
OTg5OTBEMDBEOEI4MDBCQjgyNUMgLyogU1ZHUmVzb3VyY2VGaWx0ZXJDZy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTVkdSZXNvdXJjZUZpbHRlckNnLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjU1OTg5QjBEMDBEOEI4MDBCQjgyNUMgLyog
U1ZHUmVzb3VyY2VNYXNrZXJDZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBTVkdSZXNvdXJjZU1hc2tlckNnLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCMjU1OThBNjBEMDBEOEI4MDBCQjgyNUMgLyogU1ZHRkVIZWxwZXJzQ2cuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ZFSGVscGVyc0NnLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMjc3MSw3ICsxMjc2OSw2IEBACiAJCUIyNTU5ODhGMEQwMEQ4
QjgwMEJCODI1QyAvKiBjZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCi0JCQkJQjI1NTk4OTMwRDAwRDhCODAwQkI4MjVDIC8qIFNWR1BhaW50U2VydmVyQ2cuY3Bw
ICovLAogCQkJCUIyNTU5ODk5MEQwMEQ4QjgwMEJCODI1QyAvKiBTVkdSZXNvdXJjZUZpbHRlckNn
Lm1tICovLAogCQkJCUIyNTU5ODlCMEQwMEQ4QjgwMEJCODI1QyAvKiBTVkdSZXNvdXJjZU1hc2tl
ckNnLm1tICovLAogCQkJKTsKQEAgLTE4MjIzLDcgKzE4MjIwLDYgQEAKIAkJCQlCMjIyN0E1MDBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHTnVtYmVyTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
MjIyN0E1MzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGFpbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjI1NTk5QTYwRDAwRDhCQTAwQkI4MjVDIC8qIFNWR1BhaW50U2VydmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUIyNTU5OTJGMEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdQYWludFNlcnZlckNn
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNTU5OUE4MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdQ
YWludFNlcnZlckdyYWRpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNTU5OUFBMEQwMEQ4
QkEwMEJCODI1QyAvKiBTVkdQYWludFNlcnZlckxpbmVhckdyYWRpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUIyNTU5OUFDMEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdQYWludFNlcnZlclBhdHRl
cm4uY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBXZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdQYWlu
dFNlcnZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHUGFpbnRT
ZXJ2ZXIuY3BwCShyZXZpc2lvbiA0MDA4NikKKysrIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR1Bh
aW50U2VydmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAg
KiAgICAgICAgICAgICAgIDIwMDcgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqICAgICAgICAg
ICAgICAgMjAwOCBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTU4LDYgKzE1OSw0MCBAQCB2b2lkIGFwcGx5U3Ryb2tlU3R5
bGVUb0NvbnRleHQoR3JhcGhpY3NDCiAgICAgY29udGV4dC0+c2V0TGluZURhc2goZGFzaGVzLCBk
YXNoT2Zmc2V0KTsKIH0KIAordm9pZCBTVkdQYWludFNlcnZlcjo6ZHJhdyhHcmFwaGljc0NvbnRl
eHQqJiBjb250ZXh0LCBjb25zdCBSZW5kZXJPYmplY3QqIHBhdGgsIFNWR1BhaW50VGFyZ2V0VHlw
ZSB0eXBlKSBjb25zdAoreworICAgIGlmICghc2V0dXAoY29udGV4dCwgcGF0aCwgdHlwZSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIHJlbmRlclBhdGgoY29udGV4dCwgcGF0aCwgdHlwZSk7Cisg
ICAgdGVhcmRvd24oY29udGV4dCwgcGF0aCwgdHlwZSk7Cit9CisKK3ZvaWQgU1ZHUGFpbnRTZXJ2
ZXI6OnJlbmRlclBhdGgoR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwgY29uc3QgUmVuZGVyT2Jq
ZWN0KiBwYXRoLCBTVkdQYWludFRhcmdldFR5cGUgdHlwZSkgY29uc3QKK3sKKyAgICBjb25zdCBT
VkdSZW5kZXJTdHlsZSogc3R5bGUgPSBwYXRoID8gcGF0aC0+c3R5bGUoKS0+c3ZnU3R5bGUoKSA6
IDA7CisKKyAgICBpZiAoKHR5cGUgJiBBcHBseVRvRmlsbFRhcmdldFR5cGUpICYmICghc3R5bGUg
fHwgc3R5bGUtPmhhc0ZpbGwoKSkpCisgICAgICAgIGNvbnRleHQtPmZpbGxQYXRoKCk7CisKKyAg
ICBpZiAoKHR5cGUgJiBBcHBseVRvU3Ryb2tlVGFyZ2V0VHlwZSkgJiYgKCFzdHlsZSB8fCBzdHls
ZS0+aGFzU3Ryb2tlKCkpKQorICAgICAgICBjb250ZXh0LT5zdHJva2VQYXRoKCk7Cit9CisKK3Zv
aWQgU1ZHUGFpbnRTZXJ2ZXI6OnRlYXJkb3duKEdyYXBoaWNzQ29udGV4dComLCBjb25zdCBSZW5k
ZXJPYmplY3QqLCBTVkdQYWludFRhcmdldFR5cGUsIGJvb2wpIGNvbnN0Cit7CisjaWYgUExBVEZP
Uk0oU0tJQSkKKyAgICAvLyBGSVhNRTogTW92ZSB0aGlzIGludG8gdGhlIEdyYXBoaWNzQ29udGV4
dAorICAgIC8vIFdlYktpdCBpbXBsaWNpdGx5IGV4cGVjdHMgdXMgdG8gcmVzZXQgdGhlIHBhdGgu
CisgICAgLy8gRm9yIGV4YW1wbGUgaW4gZmlsbEFuZFN0cm9rZVBhdGgoKSBvZiBSZW5kZXJQYXRo
LmNwcCB0aGUgcGF0aCBpcyAKKyAgICAvLyBhZGRlZCBiYWNrIHRvIHRoZSBjb250ZXh0IGFmdGVy
IGZpbGxpbmcuIFRoaXMgaXMgYmVjYXVzZSBpbnRlcm5hbGx5IGl0CisgICAgLy8gY2FsbHMgQ0dD
b250ZXh0RmlsbFBhdGgoKSB3aGljaCBjbG9zZXMgdGhlIHBhdGguCisgICAgY29udGV4dC0+YmVn
aW5QYXRoKCk7CisgICAgY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPnNldEdyYWRpZW50KDAp
OworICAgIGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXRQYXR0ZXJuKDApOworI2VuZGlm
Cit9CisKIERhc2hBcnJheSBkYXNoQXJyYXlGcm9tUmVuZGVyaW5nU3R5bGUoY29uc3QgUmVuZGVy
U3R5bGUqIHN0eWxlKQogewogICAgIERhc2hBcnJheSBhcnJheTsKSW5kZXg6IFdlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR1BhaW50U2VydmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvU1ZHUGFpbnRTZXJ2ZXIuaAkocmV2aXNpb24gNDAwODYpCisrKyBXZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdQYWludFNlcnZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03NywxMiArNzcsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBTVkdQYWludFNlcnZlclNvbGlk
KiBzaGFyZWRTb2xpZFBhaW50U2VydmVyKCk7CiAKICAgICBwcm90ZWN0ZWQ6Ci0jaWYgUExBVEZP
Uk0oQ0cpCi0gICAgICAgIHZvaWQgc3Ryb2tlUGF0aChDR0NvbnRleHRSZWYsIGNvbnN0IFJlbmRl
ck9iamVjdCopIGNvbnN0OwotICAgICAgICB2b2lkIGZpbGxQYXRoKENHQ29udGV4dFJlZiwgY29u
c3QgUmVuZGVyT2JqZWN0KikgY29uc3Q7Ci0jZW5kaWYKLQotICAgIHByb3RlY3RlZDoKICAgICAg
ICAgU1ZHUGFpbnRTZXJ2ZXIoKTsgICAgICAgIAogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR1BhaW50U2VydmVyR3JhZGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3ZnL2dyYXBoaWNzL1NWR1BhaW50U2VydmVyR3JhZGllbnQuY3BwCShyZXZpc2lvbiA0MDA4
NikKKysrIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR1BhaW50U2VydmVyR3JhZGllbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTcsMTcgKzI1Nyw2IEBAIGJvb2wgU1ZHUGFpbnRTZXJ2ZXJHcmFk
aWVudDo6c2V0dXAoR3JhcGgKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTVkdQYWludFNl
cnZlckdyYWRpZW50OjpyZW5kZXJQYXRoKEdyYXBoaWNzQ29udGV4dComIGNvbnRleHQsIGNvbnN0
IFJlbmRlck9iamVjdCogcGF0aCwgU1ZHUGFpbnRUYXJnZXRUeXBlIHR5cGUpIGNvbnN0Ci17Ci0g
ICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN0eWxlID0gcGF0aC0+c3R5bGUoKS0+c3ZnU3R5bGUo
KTsKLQotICAgIGlmICgodHlwZSAmIEFwcGx5VG9GaWxsVGFyZ2V0VHlwZSkgJiYgc3R5bGUtPmhh
c0ZpbGwoKSkKLSAgICAgICAgY29udGV4dC0+ZmlsbFBhdGgoKTsKLQotICAgIGlmICgodHlwZSAm
IEFwcGx5VG9TdHJva2VUYXJnZXRUeXBlKSAmJiBzdHlsZS0+aGFzU3Ryb2tlKCkpCi0gICAgICAg
IGNvbnRleHQtPnN0cm9rZVBhdGgoKTsKLX0KLQogdm9pZCBTVkdQYWludFNlcnZlckdyYWRpZW50
Ojp0ZWFyZG93bihHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0LCBjb25zdCBSZW5kZXJPYmplY3Qq
IG9iamVjdCwgU1ZHUGFpbnRUYXJnZXRUeXBlLCBib29sIGlzUGFpbnRpbmdUZXh0KSBjb25zdAog
ewogI2lmIFBMQVRGT1JNKENHKQpJbmRleDogV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHUGFpbnRT
ZXJ2ZXJHcmFkaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR1Bh
aW50U2VydmVyR3JhZGllbnQuaAkocmV2aXNpb24gNDAwODYpCisrKyBXZWJDb3JlL3N2Zy9ncmFw
aGljcy9TVkdQYWludFNlcnZlckdyYWRpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcx
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZXR1cChH
cmFwaGljc0NvbnRleHQqJiwgY29uc3QgUmVuZGVyT2JqZWN0KiwgU1ZHUGFpbnRUYXJnZXRUeXBl
LCBib29sIGlzUGFpbnRpbmdUZXh0KSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIHRlYXJk
b3duKEdyYXBoaWNzQ29udGV4dComLCBjb25zdCBSZW5kZXJPYmplY3QqLCBTVkdQYWludFRhcmdl
dFR5cGUsIGJvb2wgaXNQYWludGluZ1RleHQpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZvaWQg
cmVuZGVyUGF0aChHcmFwaGljc0NvbnRleHQqJiwgY29uc3QgUmVuZGVyT2JqZWN0KiwgU1ZHUGFp
bnRUYXJnZXRUeXBlKSBjb25zdDsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgU1ZHUGFpbnRT
ZXJ2ZXJHcmFkaWVudChjb25zdCBTVkdHcmFkaWVudEVsZW1lbnQqIG93bmVyKTsKSW5kZXg6IFdl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR1BhaW50U2VydmVyUGF0dGVybi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJuLmNwcAkocmV2aXNp
b24gNDAwODYpCisrKyBXZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdQYWludFNlcnZlclBhdHRlcm4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsMTcgKzE3Myw2IEBAIGJvb2wgU1ZHUGFpbnRTZXJ2
ZXJQYXR0ZXJuOjpzZXR1cChHcmFwaGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTVkdQ
YWludFNlcnZlclBhdHRlcm46OnJlbmRlclBhdGgoR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwg
Y29uc3QgUmVuZGVyT2JqZWN0KiBwYXRoLCBTVkdQYWludFRhcmdldFR5cGUgdHlwZSkgY29uc3QK
LXsKLSAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSogc3R5bGUgPSBwYXRoLT5zdHlsZSgpLT5zdmdT
dHlsZSgpOwotCi0gICAgaWYgKCh0eXBlICYgQXBwbHlUb0ZpbGxUYXJnZXRUeXBlKSAmJiBzdHls
ZS0+aGFzRmlsbCgpKQotICAgICAgICBjb250ZXh0LT5maWxsUGF0aCgpOwotCi0gICAgaWYgKCh0
eXBlICYgQXBwbHlUb1N0cm9rZVRhcmdldFR5cGUpICYmIHN0eWxlLT5oYXNTdHJva2UoKSkKLSAg
ICAgICAgY29udGV4dC0+c3Ryb2tlUGF0aCgpOwotfQotCiB2b2lkIFNWR1BhaW50U2VydmVyUGF0
dGVybjo6dGVhcmRvd24oR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwgY29uc3QgUmVuZGVyT2Jq
ZWN0KiwgU1ZHUGFpbnRUYXJnZXRUeXBlLCBib29sKSBjb25zdAogewogICAgIG1fcGF0dGVybiA9
IDA7CkluZGV4OiBXZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdQYWludFNlcnZlclBhdHRlcm4uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdQYWludFNlcnZlclBhdHRlcm4u
aAkocmV2aXNpb24gNDAwODYpCisrKyBXZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdQYWludFNlcnZl
clBhdHRlcm4uaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlv
bihUZXh0U3RyZWFtJikgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCBib29sIHNldHVwKEdyYXBo
aWNzQ29udGV4dComLCBjb25zdCBSZW5kZXJPYmplY3QqLCBTVkdQYWludFRhcmdldFR5cGUsIGJv
b2wgaXNQYWludGluZ1RleHQpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyUGF0
aChHcmFwaGljc0NvbnRleHQqJiwgY29uc3QgUmVuZGVyT2JqZWN0KiwgU1ZHUGFpbnRUYXJnZXRU
eXBlKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIHRlYXJkb3duKEdyYXBoaWNzQ29udGV4
dComLCBjb25zdCBSZW5kZXJPYmplY3QqLCBTVkdQYWludFRhcmdldFR5cGUsIGJvb2wgaXNQYWlu
dGluZ1RleHQpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKSW5kZXg6IFdlYkNvcmUvc3ZnL2dyYXBo
aWNzL1NWR1BhaW50U2VydmVyU29saWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL2dy
YXBoaWNzL1NWR1BhaW50U2VydmVyU29saWQuY3BwCShyZXZpc2lvbiA0MDA4NikKKysrIFdlYkNv
cmUvc3ZnL2dyYXBoaWNzL1NWR1BhaW50U2VydmVyU29saWQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04OCwxNyArODgsNiBAQCBib29sIFNWR1BhaW50U2VydmVyU29saWQ6OnNldHVwKEdyYXBoaWNz
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU1ZHUGFpbnRTZXJ2ZXJTb2xpZDo6cmVuZGVy
UGF0aChHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0LCBjb25zdCBSZW5kZXJPYmplY3QqIHBhdGgs
IFNWR1BhaW50VGFyZ2V0VHlwZSB0eXBlKSBjb25zdAotewotICAgIGNvbnN0IFNWR1JlbmRlclN0
eWxlKiBzdmdTdHlsZSA9IHBhdGggPyBwYXRoLT5zdHlsZSgpLT5zdmdTdHlsZSgpIDogMDsKLQot
ICAgIGlmICgodHlwZSAmIEFwcGx5VG9GaWxsVGFyZ2V0VHlwZSkgJiYgKCFzdmdTdHlsZSB8fCBz
dmdTdHlsZS0+aGFzRmlsbCgpKSkKLSAgICAgICAgY29udGV4dC0+ZmlsbFBhdGgoKTsKLQotICAg
IGlmICgodHlwZSAmIEFwcGx5VG9TdHJva2VUYXJnZXRUeXBlKSAmJiAoIXN2Z1N0eWxlIHx8IHN2
Z1N0eWxlLT5oYXNTdHJva2UoKSkpCi0gICAgICAgIGNvbnRleHQtPnN0cm9rZVBhdGgoKTsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvc3ZnL2dy
YXBoaWNzL1NWR1BhaW50U2VydmVyU29saWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdQYWludFNlcnZlclNvbGlkLmgJKHJldmlzaW9uIDQwMDg2KQorKysgV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvU1ZHUGFpbnRTZXJ2ZXJTb2xpZC5oCSh3b3JraW5nIGNvcHkpCkBAIC00
Niw3ICs0Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBUZXh0U3Ry
ZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mKSBjb25zdDsKIAogICAgICAg
ICB2aXJ0dWFsIGJvb2wgc2V0dXAoR3JhcGhpY3NDb250ZXh0KiYsIGNvbnN0IFJlbmRlck9iamVj
dCosIFNWR1BhaW50VGFyZ2V0VHlwZSwgYm9vbCBpc1BhaW50aW5nVGV4dCkgY29uc3Q7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCByZW5kZXJQYXRoKEdyYXBoaWNzQ29udGV4dComLCBjb25zdCBSZW5k
ZXJPYmplY3QqLCBTVkdQYWludFRhcmdldFR5cGUpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgU1ZHUGFpbnRTZXJ2ZXJTb2xpZCgpOwpJbmRleDogV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
Y2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvY2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJDYWlyby5jcHAJKHJldmlzaW9uIDQwMDg2KQor
KysgV2ViQ29yZS9zdmcvZ3JhcGhpY3MvY2Fpcm8vU1ZHUGFpbnRTZXJ2ZXJDYWlyby5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBB
bHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFC
TEUoU1ZHKQotI2luY2x1ZGUgIlNWR1BhaW50U2VydmVyLmgiCi0KLSNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQuaCIKLSNpbmNsdWRlICJTVkdQYWludFNlcnZlci5oIgotI2luY2x1ZGUgIlJlbmRl
clBhdGguaCIKLQotI2luY2x1ZGUgPGNhaXJvLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
dm9pZCBTVkdQYWludFNlcnZlcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0LCBjb25z
dCBSZW5kZXJPYmplY3QqIHBhdGgsIFNWR1BhaW50VGFyZ2V0VHlwZSB0eXBlKSBjb25zdAotewot
ICAgIGlmICghc2V0dXAoY29udGV4dCwgcGF0aCwgdHlwZSkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIHJlbmRlclBhdGgoY29udGV4dCwgcGF0aCwgdHlwZSk7Ci0gICAgdGVhcmRvd24oY29udGV4
dCwgcGF0aCwgdHlwZSk7Ci19Ci0KLXZvaWQgU1ZHUGFpbnRTZXJ2ZXI6OnRlYXJkb3duKEdyYXBo
aWNzQ29udGV4dComLCBjb25zdCBSZW5kZXJPYmplY3QqLCBTVkdQYWludFRhcmdldFR5cGUsIGJv
b2wgaXNQYWludGluZ1RleHQpIGNvbnN0Ci17Ci0gICAgLy8gbm8tb3AKLX0KLQotdm9pZCBTVkdQ
YWludFNlcnZlcjo6cmVuZGVyUGF0aChHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0LCBjb25zdCBS
ZW5kZXJPYmplY3QqIHBhdGgsIFNWR1BhaW50VGFyZ2V0VHlwZSB0eXBlKSBjb25zdAotewotICAg
IGNhaXJvX3QqIGNyID0gY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgY29uc3QgU1ZH
UmVuZGVyU3R5bGUqIHN0eWxlID0gcGF0aCA/IHBhdGgtPnN0eWxlKCktPnN2Z1N0eWxlKCk6IDA7
Ci0KLSAgICBpZiAoKHR5cGUgJiBBcHBseVRvRmlsbFRhcmdldFR5cGUpICYmICghc3R5bGUgfHwg
c3R5bGUtPmhhc0ZpbGwoKSkpCi0gICAgICAgIGNhaXJvX2ZpbGxfcHJlc2VydmUoY3IpOwotCi0g
ICAgaWYgKCh0eXBlICYgQXBwbHlUb1N0cm9rZVRhcmdldFR5cGUpICYmICghc3R5bGUgfHwgc3R5
bGUtPmhhc1N0cm9rZSgpKSkKLSAgICAgICAgY2Fpcm9fc3Ryb2tlX3ByZXNlcnZlKGNyKTsKLQot
ICAgIGNhaXJvX25ld19wYXRoKGNyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYKSW5kZXg6IFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2NnL1NWR1BhaW50U2VydmVyQ2cuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2NnL1NWR1BhaW50U2VydmVyQ2cu
Y3BwCShyZXZpc2lvbiA0MDA4NikKKysrIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2NnL1NWR1BhaW50
U2VydmVyQ2cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc1ICswLDAgQEAKLS8qCi0gICAgQ29w
eXJpZ2h0IChDKSAyMDA2IE5pa29sYXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgotCi0g
ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KLSAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWludCB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0qLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0KLSNpZiBFTkFCTEUoU1ZHKQotI2luY2x1ZGUgIlNWR1BhaW50U2VydmVyLmgiCi0K
LSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFNWR1BhaW50U2VydmVyOjpkcmF3KEdyYXBo
aWNzQ29udGV4dComIGNvbnRleHQsIGNvbnN0IFJlbmRlck9iamVjdCogcGF0aCwgU1ZHUGFpbnRU
YXJnZXRUeXBlIHR5cGUpIGNvbnN0Ci17Ci0gICAgaWYgKCFzZXR1cChjb250ZXh0LCBwYXRoLCB0
eXBlKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcmVuZGVyUGF0aChjb250ZXh0LCBwYXRoLCB0
eXBlKTsKLSAgICB0ZWFyZG93bihjb250ZXh0LCBwYXRoLCB0eXBlKTsKLX0KLQotdm9pZCBTVkdQ
YWludFNlcnZlcjo6dGVhcmRvd24oR3JhcGhpY3NDb250ZXh0KiYsIGNvbnN0IFJlbmRlck9iamVj
dCosIFNWR1BhaW50VGFyZ2V0VHlwZSwgYm9vbCkgY29uc3QKLXsKLSAgICAvLyBuby1vcAotfQot
Ci12b2lkIFNWR1BhaW50U2VydmVyOjpyZW5kZXJQYXRoKEdyYXBoaWNzQ29udGV4dComIGNvbnRl
eHQsIGNvbnN0IFJlbmRlck9iamVjdCogcGF0aCwgU1ZHUGFpbnRUYXJnZXRUeXBlIHR5cGUpIGNv
bnN0Ci17Ci0gICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gcGF0aCA/IHBhdGgtPnN0eWxlKCkgOiAw
OwotICAgIENHQ29udGV4dFJlZiBjb250ZXh0UmVmID0gY29udGV4dC0+cGxhdGZvcm1Db250ZXh0
KCk7Ci0KLSAgICBpZiAoKHR5cGUgJiBBcHBseVRvRmlsbFRhcmdldFR5cGUpICYmICghc3R5bGUg
fHwgc3R5bGUtPnN2Z1N0eWxlKCktPmhhc0ZpbGwoKSkpCi0gICAgICAgIGZpbGxQYXRoKGNvbnRl
eHRSZWYsIHBhdGgpOwotCi0gICAgaWYgKCh0eXBlICYgQXBwbHlUb1N0cm9rZVRhcmdldFR5cGUp
ICYmICghc3R5bGUgfHwgc3R5bGUtPnN2Z1N0eWxlKCktPmhhc1N0cm9rZSgpKSkKLSAgICAgICAg
c3Ryb2tlUGF0aChjb250ZXh0UmVmLCBwYXRoKTsKLX0KLQotdm9pZCBTVkdQYWludFNlcnZlcjo6
c3Ryb2tlUGF0aChDR0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgUmVuZGVyT2JqZWN0KikgY29u
c3QKLXsKLSAgICBDR0NvbnRleHRTdHJva2VQYXRoKGNvbnRleHQpOwotfQotCi12b2lkIFNWR1Bh
aW50U2VydmVyOjpmaWxsUGF0aChDR0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgUmVuZGVyT2Jq
ZWN0KiBwYXRoKSBjb25zdAotewotICAgIGlmICghcGF0aCB8fCBwYXRoLT5zdHlsZSgpLT5zdmdT
dHlsZSgpLT5maWxsUnVsZSgpID09IFJVTEVfRVZFTk9ERCkKLSAgICAgICAgQ0dDb250ZXh0RU9G
aWxsUGF0aChjb250ZXh0KTsKLSAgICBlbHNlCi0gICAgICAgIENHQ29udGV4dEZpbGxQYXRoKGNv
bnRleHQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgotCi0vLyB2aW06
dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL3N2Zy9ncmFwaGljcy9xdC9TVkdQYWludFNlcnZlclF0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9ncmFwaGljcy9xdC9TVkdQYWludFNlcnZl
clF0LmNwcAkocmV2aXNpb24gNDAwODYpCisrKyBXZWJDb3JlL3N2Zy9ncmFwaGljcy9xdC9TVkdQ
YWludFNlcnZlclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3MiArMCwwIEBACi0vKgotICAg
IENvcHlyaWdodCAoQykgMjAwNiBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4K
LSAgICBDb3B5cmlnaHQgKEMpIDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKLQotICAg
IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCi0gICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAotICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotCi0jaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJTVkdQYWludFNlcnZlci5oIgotCi0j
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIK
LSNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKLQotI2luY2x1ZGUgPFFQYWludGVyPgotI2luY2x1
ZGUgPFFWZWN0b3I+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBTVkdQYWludFNlcnZl
cjo6ZHJhdyhHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0LCBjb25zdCBSZW5kZXJPYmplY3QqIHBh
dGgsIFNWR1BhaW50VGFyZ2V0VHlwZSB0eXBlKSBjb25zdAotewotICAgIGlmICghc2V0dXAoY29u
dGV4dCwgcGF0aCwgdHlwZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHJlbmRlclBhdGgoY29u
dGV4dCwgcGF0aCwgdHlwZSk7Ci0gICAgdGVhcmRvd24oY29udGV4dCwgcGF0aCwgdHlwZSk7Ci19
Ci0KLXZvaWQgU1ZHUGFpbnRTZXJ2ZXI6OnRlYXJkb3duKEdyYXBoaWNzQ29udGV4dComLCBjb25z
dCBSZW5kZXJPYmplY3QqLCBTVkdQYWludFRhcmdldFR5cGUsIGJvb2wgaXNQYWludGluZ1RleHQp
IGNvbnN0Ci17Ci0gICAgLy8gbm8tb3AKLX0KLQotdm9pZCBTVkdQYWludFNlcnZlcjo6cmVuZGVy
UGF0aChHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0LCBjb25zdCBSZW5kZXJPYmplY3QqIHBhdGgs
IFNWR1BhaW50VGFyZ2V0VHlwZSB0eXBlKSBjb25zdAotewotICAgIFJlbmRlclN0eWxlKiByZW5k
ZXJTdHlsZSA9IHBhdGggPyBwYXRoLT5zdHlsZSgpOiAwOwotCi0gICAgUVBhaW50ZXIqIHBhaW50
ZXIoY29udGV4dCA/IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpIDogMCk7Ci0gICAgUV9BU1NF
UlQocGFpbnRlcik7Ci0KLSAgICBRUGFpbnRlclBhdGgqIHBhaW50ZXJQYXRoKGNvbnRleHQgPyBj
b250ZXh0LT5jdXJyZW50UGF0aCgpIDogMCk7Ci0gICAgUV9BU1NFUlQocGFpbnRlclBhdGgpOwot
Ci0gICAgaWYgKCh0eXBlICYgQXBwbHlUb0ZpbGxUYXJnZXRUeXBlKSAmJiAoIXJlbmRlclN0eWxl
IHx8IHJlbmRlclN0eWxlLT5zdmdTdHlsZSgpLT5oYXNGaWxsKCkpKQotICAgICAgICBwYWludGVy
LT5maWxsUGF0aCgqcGFpbnRlclBhdGgsIHBhaW50ZXItPmJydXNoKCkpOwotCi0gICAgaWYgKCh0
eXBlICYgQXBwbHlUb1N0cm9rZVRhcmdldFR5cGUpICYmICghcmVuZGVyU3R5bGUgfHwgcmVuZGVy
U3R5bGUtPnN2Z1N0eWxlKCktPmhhc1N0cm9rZSgpKSkKLSAgICAgICAgcGFpbnRlci0+c3Ryb2tl
UGF0aCgqcGFpbnRlclBhdGgsIHBhaW50ZXItPnBlbigpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9zdmcv
Z3JhcGhpY3Mvc2tpYS9TVkdQYWludFNlcnZlclNraWEuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3ZnL2dyYXBoaWNzL3NraWEvU1ZHUGFpbnRTZXJ2ZXJTa2lhLmNwcAkocmV2aXNpb24gNDAw
ODYpCisrKyBXZWJDb3JlL3N2Zy9ncmFwaGljcy9za2lhL1NWR1BhaW50U2VydmVyU2tpYS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAw
OCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKiAKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0K
LSNpZiBFTkFCTEUoU1ZHKQotI2luY2x1ZGUgIlNWR1BhaW50U2VydmVyLmgiCi0KLSNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXRoLmgiCi0jaW5jbHVkZSAi
UGxhdGZvcm1Db250ZXh0U2tpYS5oIgotI2luY2x1ZGUgIlNraWFVdGlscy5oIgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLXZvaWQgU1ZHUGFpbnRTZXJ2ZXI6OmRyYXcoR3JhcGhpY3NDb250ZXh0
KiYgY29udGV4dCwgY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIFNWR1BhaW50VGFyZ2V0VHlw
ZSB0eXBlKSBjb25zdAotewotICAgIGlmICghc2V0dXAoY29udGV4dCwgb2JqZWN0LCB0eXBlKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgcmVuZGVyUGF0aChjb250ZXh0LCBvYmplY3QsIHR5cGUp
OwotICAgIHRlYXJkb3duKGNvbnRleHQsIG9iamVjdCwgdHlwZSk7Ci19Ci0KLXZvaWQgU1ZHUGFp
bnRTZXJ2ZXI6OnRlYXJkb3duKEdyYXBoaWNzQ29udGV4dComIGNvbnRleHQsIGNvbnN0IFJlbmRl
ck9iamVjdCosIFNWR1BhaW50VGFyZ2V0VHlwZSwgYm9vbCBpc1BhaW50aW5nVGV4dCkgY29uc3QK
LXsKLSAgICAvLyBXZWJLaXQgaW1wbGljaXRseSBleHBlY3RzIHVzIHRvIHJlc2V0IHRoZSBwYXRo
LgotICAgIC8vIEZvciBleGFtcGxlIGluIGZpbGxBbmRTdHJva2VQYXRoKCkgb2YgUmVuZGVyUGF0
aC5jcHAgdGhlIHBhdGggaXMgCi0gICAgLy8gYWRkZWQgYmFjayB0byB0aGUgY29udGV4dCBhZnRl
ciBmaWxsaW5nLiBUaGlzIGlzIGJlY2F1c2UgaW50ZXJuYWxseSBpdAotICAgIC8vIGNhbGxzIENH
Q29udGV4dEZpbGxQYXRoKCkgd2hpY2ggY2xvc2VzIHRoZSBwYXRoLgotICAgIGNvbnRleHQtPmJl
Z2luUGF0aCgpOwotICAgIGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXRHcmFkaWVudCgw
KTsKLSAgICBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+c2V0UGF0dGVybigwKTsKLX0KLQot
dm9pZCBTVkdQYWludFNlcnZlcjo6cmVuZGVyUGF0aChHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0
LCBjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgU1ZHUGFpbnRUYXJnZXRUeXBlIHR5cGUpIGNv
bnN0Ci17Ci0gICAgUmVuZGVyU3R5bGUqIHJlbmRlclN0eWxlID0gb2JqZWN0ID8gb2JqZWN0LT5z
dHlsZSgpIDogMDsKLQotICAgIGlmICgodHlwZSAmIEFwcGx5VG9GaWxsVGFyZ2V0VHlwZSkgJiYg
KCFyZW5kZXJTdHlsZSB8fCByZW5kZXJTdHlsZS0+c3ZnU3R5bGUoKS0+aGFzRmlsbCgpKSkKLSAg
ICAgICAgY29udGV4dC0+ZmlsbFBhdGgoKTsKLQotICAgIGlmICgodHlwZSAmIEFwcGx5VG9TdHJv
a2VUYXJnZXRUeXBlKSAmJiAoIXJlbmRlclN0eWxlIHx8IHJlbmRlclN0eWxlLT5zdmdTdHlsZSgp
LT5oYXNTdHJva2UoKSkpCi0gICAgICAgIGNvbnRleHQtPnN0cm9rZVBhdGgoKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYK
</data>
<flag name="review"
          id="12871"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>