<?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>127587</bug_id>
          
          <creation_ts>2014-01-24 14:41:23 -0800</creation_ts>
          <short_desc>Get rid of WebLoaderClient</short_desc>
          <delta_ts>2014-01-24 15:09:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>971761</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-24 14:41:23 -0800</bug_when>
    <thetext>Get rid of WebLoaderClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971764</commentid>
    <comment_count>1</comment_count>
      <attachid>222158</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-24 14:43:29 -0800</bug_when>
    <thetext>Created attachment 222158
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971765</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-24 14:44:52 -0800</bug_when>
    <thetext>Attachment 222158 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:963:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971772</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-24 15:09:39 -0800</bug_when>
    <thetext>Committed r162728: &lt;http://trac.webkit.org/changeset/162728&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222158</attachid>
            <date>2014-01-24 14:43:29 -0800</date>
            <delta_ts>2014-01-24 15:03:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127587-20140124144328.patch</filename>
            <type>text/plain</type>
            <size>45523</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTgwNzA2NjdkZWJlMjk5
MzVlNjk2NDEwMjQ3OWZiNDhkZjhiNzlhNS4uNWFkMjljNGU1ZDRkYzJhZmVlZmMxMzIyNzFiNmM5
YWZhMjFjNWZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTAxLTI0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgR2V0IHJpZCBvZiBX
ZWJMb2FkZXJDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNzU4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1vdmUgV2ViTG9hZGVyQ2xpZW50IGludG8gV0tQYWdlLmNwcC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZUxvYWRl
ckNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBz
ZXRMb2FkRGVsZWdhdGU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oOiBSZW1v
dmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTQtMDEtMjQgIFbDrWN0b3IgTWFu
dWVsIErDoXF1ZXogTGVhbCAgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSB5
b3V0dWJlIEhUTUw1IHZpZGVvcyBpbiBmdWxsc2NyZWVuLCBhZnRlciA8RXNjPiwgY2FuJ3QgZ28g
ZnVsbHNjcmVlbiBhZ2FpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cAppbmRleCBmNDdhNGJhOThmNzhjYWM1MDdhYzhlZTllOTEyYTRiNDYzOTZjNjdjLi5mNjM5YWQy
M2VjYjg5MzAzMzhhYmUxNGY2YWE3OGRmMmU5NjlkMzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjksMTMgKzI5LDE1IEBACiAKICNpbmNsdWRlICJB
UElBcnJheS5oIgogI2luY2x1ZGUgIkFQSURhdGEuaCIKKyNpbmNsdWRlICJBUElMb2FkZXJDbGll
bnQuaCIKICNpbmNsdWRlICJBUElQb2xpY3lDbGllbnQuaCIKKyNpbmNsdWRlICJJbW11dGFibGVE
aWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiUGx1Z2luSW5mb3JtYXRpb24uaCIKICNpbmNsdWRlICJQ
cmludEluZm8uaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS1BhZ2VQb2xp
Y3lDbGllbnRJbnRlcm5hbC5oIgogI2luY2x1ZGUgIldLUGx1Z2luSW5mb3JtYXRpb24uaCIKICNp
bmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKLSNpbmNsdWRlICJXZWJMb2FkZXJDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHku
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKQEAgLTUzLDYgKzU1LDEwIEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNl
IEFQSSB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlTG9hZGVyQ2xpZW50
QmFzZT4geworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VMb2FkZXJDbGllbnRWMCwgV0tQ
YWdlTG9hZGVyQ2xpZW50VjEsIFdLUGFnZUxvYWRlckNsaWVudFYyLCBXS1BhZ2VMb2FkZXJDbGll
bnRWMywgV0tQYWdlTG9hZGVyQ2xpZW50VjQ+IFZlcnNpb25zOworfTsKKwogdGVtcGxhdGU8PiBz
dHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKICAgICB0eXBlZGVm
IHN0ZDo6dHVwbGU8V0tQYWdlUG9saWN5Q2xpZW50VjAsIFdLUGFnZVBvbGljeUNsaWVudFYxLCBX
S1BhZ2VQb2xpY3lDbGllbnRJbnRlcm5hbD4gVmVyc2lvbnM7CiB9OwpAQCAtNjc3LDkgKzY4Mywy
OTcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlRm9ybUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29u
c3QgV0tQYWdlRm9ybUNsaWVudEJhc2UqIHdrQ2wKIAogdm9pZCBXS1BhZ2VTZXRQYWdlTG9hZGVy
Q2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VMb2FkZXJDbGllbnRCYXNlKiB3
a0NsaWVudCkKIHsKKyAgICBjbGFzcyBMb2FkZXJDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8
V0tQYWdlTG9hZGVyQ2xpZW50QmFzZT4sIHB1YmxpYyBBUEk6OkxvYWRlckNsaWVudCB7CisgICAg
cHVibGljOgorICAgICAgICBleHBsaWNpdCBMb2FkZXJDbGllbnQoY29uc3QgV0tQYWdlTG9hZGVy
Q2xpZW50QmFzZSogY2xpZW50KQorICAgICAgICB7CisgICAgICAgICAgICBpbml0aWFsaXplKGNs
aWVudCk7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwgdm9pZCBk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJh
bWVQcm94eSogZnJhbWUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgb3ZlcnJpZGUKKyAgICAgICAg
eworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgbV9jbGllbnQuZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0
b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAoIW1fY2xpZW50LmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgbV9jbGllbnQu
ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodG9BUEko
cGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVu
dEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxQcm92aXNp
b25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJv
eHkqIGZyYW1lLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZEZh
aWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSkKKyAgICAgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJy
b3JGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShlcnJvciksIHRvQVBJ
KHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV2ViUGFnZVByb3h5KiBwYWdl
LCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENvbW1pdExvYWRGb3JGcmFt
ZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZENv
bW1pdExvYWRGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSSh1c2VyRGF0
YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV2ViUGFnZVByb3h5KiBwYWdl
LCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZEZpbmlzaERvY3VtZW50TG9h
ZEZvckZyYW1lKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgbV9jbGll
bnQuZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1l
KSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9
CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXZWJQYWdlUHJv
eHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92
ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkRmluaXNoTG9h
ZEZvckZyYW1lKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgbV9jbGll
bnQuZGlkRmluaXNoTG9hZEZvckZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJ
KHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdlYlBhZ2VQcm94
eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9y
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICghbV9jbGllbnQuZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZEZhaWxMb2FkV2l0aEVycm9y
Rm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkoZXJyb3IpLCB0b0FQSSh1
c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdlYlBhZ2VQ
cm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIFNhbWVEb2N1bWVudE5hdmlnYXRpb25U
eXBlIHR5cGUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgb3ZlcnJpZGUKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBtX2NsaWVudC5kaWRTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9B
UEkodHlwZSksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShX
ZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFdlYkZyYW1lUHJveHkqIGZy
YW1lLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbV9jbGllbnQuZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgICAgICBtX2NsaWVudC5kaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZSh0b0FQSShwYWdlKSwgdG9BUEkodGl0bGUuaW1wbCgpKSwgdG9BUEkoZnJhbWUpLCB0b0FQSSh1
c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZShXZWJQYWdlUHJveHkqIHBhZ2Us
IFdlYkZyYW1lUHJveHkqIGZyYW1lLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkRmlyc3RMYXlvdXRGb3JGcmFt
ZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZEZp
cnN0TGF5b3V0Rm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkodXNlckRh
dGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdmly
dHVhbCB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKFdlYlBhZ2VQ
cm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkg
b3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIG1fY2xpZW50LmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZy
YW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRM
YXlvdXQoV2ViUGFnZVByb3h5KiBwYWdlLCBMYXlvdXRNaWxlc3RvbmVzIG1pbGVzdG9uZXMsIEFQ
STo6T2JqZWN0KiB1c2VyRGF0YSkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KCFtX2NsaWVudC5kaWRMYXlvdXQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
ICAgICBtX2NsaWVudC5kaWRMYXlvdXQodG9BUEkocGFnZSksIHRvV0tMYXlvdXRNaWxlc3RvbmVz
KG1pbGVzdG9uZXMpLCB0b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGll
cmFyY2h5KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2Ns
aWVudC5kaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkpCisgICAgICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgICAgICBtX2NsaWVudC5kaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodG9B
UEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZERpc3BsYXlJ
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkq
IGZyYW1lLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghbV9jbGllbnQuZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgbV9jbGllbnQuZGlkRGlzcGxh
eUluc2VjdXJlQ29udGVudEZvckZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJ
KHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlUHJv
eHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92
ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkUnVuSW5zZWN1
cmVDb250ZW50Rm9yRnJhbWUpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAg
ICBtX2NsaWVudC5kaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9B
UEkoZnJhbWUpLCB0b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Cisg
ICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUoV2Vi
UGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZERl
dGVjdFhTU0ZvckZyYW1lKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAg
bV9jbGllbnQuZGlkRGV0ZWN0WFNTRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwg
dG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9CisK
KyAgICAgICAgdmlydHVhbCBib29sIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3Bh
Y2VJbkZyYW1lKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIFdlYlBy
b3RlY3Rpb25TcGFjZSogcHJvdGVjdGlvblNwYWNlKSBvdmVycmlkZQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoIW1fY2xpZW50LmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3Bh
Y2VJbkZyYW1lKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAg
cmV0dXJuIG1fY2xpZW50LmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VJbkZy
YW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJKHByb3RlY3Rpb25TcGFjZSksIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZShXZWJQYWdlUHJveHkq
IHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5
KiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKCFtX2NsaWVudC5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VJbkZyYW1l
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgbV9jbGllbnQuZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJh
bWUpLCB0b0FQSShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSksIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRQcm9ncmVz
cyhXZWJQYWdlUHJveHkqIHBhZ2UpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlm
ICghbV9jbGllbnQuZGlkU3RhcnRQcm9ncmVzcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIG1fY2xpZW50LmRpZFN0YXJ0UHJvZ3Jlc3ModG9BUEkocGFnZSksIG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2hhbmdlUHJvZ3Jlc3MoV2ViUGFnZVByb3h5KiBwYWdlKSBvdmVycmlkZQorICAgICAgICB7
CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZVByb2dyZXNzKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlUHJvZ3Jlc3Mo
dG9BUEkocGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoUHJvZ3Jlc3MoV2ViUGFnZVByb3h5KiBwYWdlKSBv
dmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZEZpbmlzaFBy
b2dyZXNzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgbV9jbGllbnQu
ZGlkRmluaXNoUHJvZ3Jlc3ModG9BUEkocGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVVucmVz
cG9uc2l2ZShXZWJQYWdlUHJveHkqIHBhZ2UpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbV9jbGllbnQucHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIG1fY2xpZW50LnByb2Nlc3NEaWRCZWNvbWVV
bnJlc3BvbnNpdmUodG9BUEkocGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAg
ICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgaW50ZXJhY3Rpb25PY2N1cnJlZFdoaWxlUHJv
Y2Vzc1VucmVzcG9uc2l2ZShXZWJQYWdlUHJveHkqIHBhZ2UpIG92ZXJyaWRlCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmICghbV9jbGllbnQuaW50ZXJhY3Rpb25PY2N1cnJlZFdoaWxlUHJvY2Vz
c1VucmVzcG9uc2l2ZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIG1f
Y2xpZW50LmludGVyYWN0aW9uT2NjdXJyZWRXaGlsZVByb2Nlc3NVbnJlc3BvbnNpdmUodG9BUEko
cGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2
aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoV2ViUGFnZVByb3h5KiBwYWdl
KSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LnByb2Nlc3NE
aWRCZWNvbWVSZXNwb25zaXZlKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgbV9jbGllbnQucHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUodG9BUEkocGFnZSksIG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQg
cHJvY2Vzc0RpZENyYXNoKFdlYlBhZ2VQcm94eSogcGFnZSkgb3ZlcnJpZGUKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5wcm9jZXNzRGlkQ3Jhc2gpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgICAgICBtX2NsaWVudC5wcm9jZXNzRGlkQ3Jhc2godG9BUEko
cGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYlBhZ2VQcm94eSogcGFnZSwg
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSogYWRkZWRJdGVtLCBWZWN0b3I8UmVmUHRyPEFQSTo6T2Jq
ZWN0Pj4qIHJlbW92ZWRJdGVtcykgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KCFtX2NsaWVudC5kaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgICAgICBSZWZQdHI8QVBJOjpBcnJheT4gcmVtb3ZlZEl0ZW1zQXJyYXk7
CisgICAgICAgICAgICBpZiAocmVtb3ZlZEl0ZW1zICYmICFyZW1vdmVkSXRlbXMtPmlzRW1wdHko
KSkKKyAgICAgICAgICAgICAgICByZW1vdmVkSXRlbXNBcnJheSA9IEFQSTo6QXJyYXk6OmNyZWF0
ZShzdGQ6Om1vdmUoKnJlbW92ZWRJdGVtcykpOworCisgICAgICAgICAgICBtX2NsaWVudC5kaWRD
aGFuZ2VCYWNrRm9yd2FyZExpc3QodG9BUEkocGFnZSksIHRvQVBJKGFkZGVkSXRlbSksIHRvQVBJ
KHJlbW92ZWRJdGVtc0FycmF5LmdldCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0oV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtLCBBUEk6
Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICht
X2NsaWVudC53aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0pCisgICAgICAgICAgICAgICAgbV9j
bGllbnQud2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHRvQVBJKHBhZ2UpLCB0b0FQSShpdGVt
KSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICB9
CisKKyNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKKyAgICAgICAgdmlydHVhbCB2b2lk
IGRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oV2ViUGFnZVByb3h5KiBwYWdlLCBJbW11dGFibGVE
aWN0aW9uYXJ5KiBwbHVnaW5JbmZvcm1hdGlvbikgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKG1fY2xpZW50LmRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW5fZGVwcmVjYXRlZEZv
clVzZVdpdGhWMCkKKyAgICAgICAgICAgICAgICBtX2NsaWVudC5kaWRGYWlsVG9Jbml0aWFsaXpl
UGx1Z2luX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAodG9BUEkocGFnZSksIHRvQVBJKHBsdWdpbklu
Zm9ybWF0aW9uLT5nZXQ8QVBJOjpTdHJpbmc+KHBsdWdpbkluZm9ybWF0aW9uTUlNRVR5cGVLZXko
KSkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworCisgICAgICAgICAgICBpZiAobV9jbGll
bnQucGx1Z2luRGlkRmFpbF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxKQorICAgICAgICAgICAgICAg
IG1fY2xpZW50LnBsdWdpbkRpZEZhaWxfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSh0b0FQSShwYWdl
KSwga1dLRXJyb3JDb2RlQ2Fubm90TG9hZFBsdWdJbiwgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24t
PmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25NSU1FVHlwZUtleSgpKSksIDAsIDAs
IG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisKKyAgICAgICAgICAgIGlmIChtX2NsaWVudC5w
bHVnaW5EaWRGYWlsKQorICAgICAgICAgICAgICAgIG1fY2xpZW50LnBsdWdpbkRpZEZhaWwodG9B
UEkocGFnZSksIGtXS0Vycm9yQ29kZUNhbm5vdExvYWRQbHVnSW4sIHRvQVBJKHBsdWdpbkluZm9y
bWF0aW9uKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbihXZWJQYWdlUHJveHkq
IHBhZ2UsIEltbXV0YWJsZURpY3Rpb25hcnkqIHBsdWdpbkluZm9ybWF0aW9uKSBvdmVycmlkZQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAobV9jbGllbnQucGx1Z2luRGlkRmFpbF9kZXByZWNh
dGVkRm9yVXNlV2l0aFYxKQorICAgICAgICAgICAgICAgIG1fY2xpZW50LnBsdWdpbkRpZEZhaWxf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMSh0b0FQSShwYWdlKSwga1dLRXJyb3JDb2RlSW5zZWN1cmVQ
bHVnSW5WZXJzaW9uLCB0b0FQSShwbHVnaW5JbmZvcm1hdGlvbi0+Z2V0PEFQSTo6U3RyaW5nPihw
bHVnaW5JbmZvcm1hdGlvbk1JTUVUeXBlS2V5KCkpKSwgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24t
PmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25CdW5kbGVJZGVudGlmaWVyS2V5KCkp
KSwgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24tPmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3Jt
YXRpb25CdW5kbGVWZXJzaW9uS2V5KCkpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKwor
ICAgICAgICAgICAgaWYgKG1fY2xpZW50LnBsdWdpbkRpZEZhaWwpCisgICAgICAgICAgICAgICAg
bV9jbGllbnQucGx1Z2luRGlkRmFpbCh0b0FQSShwYWdlKSwga1dLRXJyb3JDb2RlSW5zZWN1cmVQ
bHVnSW5WZXJzaW9uLCB0b0FQSShwbHVnaW5JbmZvcm1hdGlvbiksIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFBsdWdpbk1vZHVsZUxvYWRQ
b2xpY3kgcGx1Z2luTG9hZFBvbGljeShXZWJQYWdlUHJveHkqIHBhZ2UsIFBsdWdpbk1vZHVsZUxv
YWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIEltbXV0YWJsZURpY3Rpb25hcnkqIHBs
dWdpbkluZm9ybWF0aW9uLCBTdHJpbmcmIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIFN0cmlu
ZyYgdXNlQmxvY2tlZFBsdWdpblRpdGxlKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAg
ICBXS1N0cmluZ1JlZiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0ID0gMDsKKyAgICAgICAg
ICAgIFdLU3RyaW5nUmVmIHVzZUJsb2NrZWRQbHVnaW5UaXRsZU91dCA9IDA7CisgICAgICAgICAg
ICBQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IGxvYWRQb2xpY3kgPSBjdXJyZW50UGx1Z2luTG9hZFBv
bGljeTsKKworICAgICAgICAgICAgaWYgKG1fY2xpZW50LnBsdWdpbkxvYWRQb2xpY3lfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMikKKyAgICAgICAgICAgICAgICBsb2FkUG9saWN5ID0gdG9QbHVnaW5N
b2R1bGVMb2FkUG9saWN5KG1fY2xpZW50LnBsdWdpbkxvYWRQb2xpY3lfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMih0b0FQSShwYWdlKSwgdG9XS1BsdWdpbkxvYWRQb2xpY3koY3VycmVudFBsdWdpbkxv
YWRQb2xpY3kpLCB0b0FQSShwbHVnaW5JbmZvcm1hdGlvbiksIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbykpOworICAgICAgICAgICAgZWxzZSBpZiAobV9jbGllbnQucGx1Z2luTG9hZFBvbGljeV9k
ZXByZWNhdGVkRm9yVXNlV2l0aFYzKQorICAgICAgICAgICAgICAgIGxvYWRQb2xpY3kgPSB0b1Bs
dWdpbk1vZHVsZUxvYWRQb2xpY3kobV9jbGllbnQucGx1Z2luTG9hZFBvbGljeV9kZXByZWNhdGVk
Rm9yVXNlV2l0aFYzKHRvQVBJKHBhZ2UpLCB0b1dLUGx1Z2luTG9hZFBvbGljeShjdXJyZW50UGx1
Z2luTG9hZFBvbGljeSksIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9uKSwgJnVuYXZhaWxhYmlsaXR5
RGVzY3JpcHRpb25PdXQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOworICAgICAgICAgICAg
ZWxzZSBpZiAobV9jbGllbnQucGx1Z2luTG9hZFBvbGljeSkKKyAgICAgICAgICAgICAgICBsb2Fk
UG9saWN5ID0gdG9QbHVnaW5Nb2R1bGVMb2FkUG9saWN5KG1fY2xpZW50LnBsdWdpbkxvYWRQb2xp
Y3kodG9BUEkocGFnZSksIHRvV0tQbHVnaW5Mb2FkUG9saWN5KGN1cnJlbnRQbHVnaW5Mb2FkUG9s
aWN5KSwgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24pLCAmdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlv
bk91dCwgJnVzZUJsb2NrZWRQbHVnaW5UaXRsZU91dCwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZv
KSk7CisKKyAgICAgICAgICAgIGlmICh1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0KSB7Cisg
ICAgICAgICAgICAgICAgUmVmUHRyPEFQSTo6U3RyaW5nPiB3ZWJVbmF2YWlsYWJpbGl0eURlc2Ny
aXB0aW9uID0gYWRvcHRSZWYodG9JbXBsKHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb25PdXQpKTsK
KyAgICAgICAgICAgICAgICB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uID0gd2ViVW5hdmFpbGFi
aWxpdHlEZXNjcmlwdGlvbi0+c3RyaW5nKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGlmICh1c2VCbG9ja2VkUGx1Z2luVGl0bGVPdXQpIHsKKyAgICAgICAgICAgICAgICBSZWZQdHI8
QVBJOjpTdHJpbmc+IHdlYlVzZUJsb2NrZWRQbHVnaW5UaXRsZSA9IGFkb3B0UmVmKHRvSW1wbCh1
c2VCbG9ja2VkUGx1Z2luVGl0bGVPdXQpKTsKKyAgICAgICAgICAgICAgICB1c2VCbG9ja2VkUGx1
Z2luVGl0bGUgPSB3ZWJVc2VCbG9ja2VkUGx1Z2luVGl0bGUtPnN0cmluZygpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gbG9hZFBvbGljeTsKKyAgICAg
ICAgfQorI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQorCisjaWYgRU5BQkxF
KFdFQkdMKQorICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSB3ZWJHTExv
YWRQb2xpY3koV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmIHVybCkgY29uc3Qgb3Zl
cnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5IGxv
YWRQb2xpY3kgPSBXZWJHTEFsbG93OworCisgICAgICAgICAgICBpZiAobV9jbGllbnQud2ViR0xM
b2FkUG9saWN5KQorICAgICAgICAgICAgICAgIGxvYWRQb2xpY3kgPSB0b1dlYkdMTG9hZFBvbGlj
eShtX2NsaWVudC53ZWJHTExvYWRQb2xpY3kodG9BUEkocGFnZSksIHRvQVBJKHVybC5pbXBsKCkp
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pKTsKKworICAgICAgICAgICAgcmV0dXJuIGxvYWRQ
b2xpY3k7CisgICAgICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCisgICAgfTsKKwogICAg
IFdlYlBhZ2VQcm94eSogd2ViUGFnZVByb3h5ID0gdG9JbXBsKHBhZ2VSZWYpOwogCi0gICAgYXV0
byBsb2FkZXJDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkxvYWRlckNsaWVudD4od2tDbGll
bnQpOworICAgIGF1dG8gbG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxMb2FkZXJDbGll
bnQ+KHdrQ2xpZW50KTsKIAogICAgIC8vIEl0IHdvdWxkIGJlIG5pY2UgdG8gZ2V0IHJpZCBvZiB0
aGlzIGNvZGUgYW5kIHRyYW5zaXRpb24gYWxsIGNsaWVudHMgdG8gdXNpbmcgZGlkTGF5b3V0IGlu
c3RlYWQgb2YKICAgICAvLyBkaWRGaXJzdExheW91dEluRnJhbWUgYW5kIGRpZEZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEluRnJhbWUuIEluIHRoZSBtZWFudGltZSwgdGhpcyBpcyByZXF1aXJl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQppbmRleCA2MTZiZGNhZjJlNTY3Njcz
YWI2MzkwZjMyYWNhMTI3MTI3Njc3NDc4Li42YjMwODM1ZmJlNTcxZmRhNDA1MzIxMTg2M2QxNDg1
NjNlNmRjZWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQpAQCAtNzM3LDcg
KzczNyw3IEBAIHN0YXRpYyB2b2lkIHNldFVwUGFnZVBvbGljeUNsaWVudChXS0Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCwKICAgICBpZiAobG9hZERlbGVnYXRlKQog
ICAgICAgICBzZXRVcFBhZ2VMb2FkZXJDbGllbnQoc2VsZiwgKl9wYWdlKTsKICAgICBlbHNlCi0g
ICAgICAgIF9wYWdlLT5zZXRMb2FkZXJDbGllbnQobnVsbHB0cik7CisgICAgICAgIFdLUGFnZVNl
dFBhZ2VMb2FkZXJDbGllbnQodG9BUEkoX3BhZ2UuZ2V0KCkpLCBudWxscHRyKTsKIH0KIAogLSAo
aWQgPFdLQnJvd3NpbmdDb250ZXh0UG9saWN5RGVsZWdhdGU+KXBvbGljeURlbGVnYXRlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3NDA3MWFiNzBlNTMyMzFiZDQ0YzI0MjY5YWU1YzY5NmM4NmZkN2E1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MzUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
V2ViTG9hZGVyQ2xpZW50LmgiCi0KLSNpbmNsdWRlICJBUElBcnJheS5oIgotI2luY2x1ZGUgIklt
bXV0YWJsZURpY3Rpb25hcnkuaCIKLSNpbmNsdWRlICJQbHVnaW5JbmZvcm1hdGlvbi5oIgotI2lu
Y2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIK
LSNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJMb2FkZXJDbGll
bnQ6OldlYkxvYWRlckNsaWVudChjb25zdCBXS1BhZ2VMb2FkZXJDbGllbnRCYXNlKiBjbGllbnQp
Ci17Ci0gICAgaW5pdGlhbGl6ZShjbGllbnQpOwotfQotCi12b2lkIFdlYkxvYWRlckNsaWVudDo6
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZy
YW1lUHJveHkqIGZyYW1lLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCi17Ci0gICAgaWYgKCFtX2Ns
aWVudC5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBtX2NsaWVudC5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHRvQVBJKHBhZ2Up
LCB0b0FQSShmcmFtZSksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZv
KTsKLX0KLQotdm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94
eSogZnJhbWUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKLXsKLSAgICBpZiAoIW1fY2xpZW50LmRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBtX2NsaWVudC5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWRGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSSh1c2Vy
RGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci19Ci0KLXZvaWQgV2ViTG9hZGVyQ2xp
ZW50OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV2ViUGFnZVByb3h5
KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Is
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKLXsKLSAgICBpZiAoIW1fY2xpZW50LmRpZEZhaWxQcm92
aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9j
bGllbnQuZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKHRvQVBJKHBhZ2Up
LCB0b0FQSShmcmFtZSksIHRvQVBJKGVycm9yKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOwotfQotCi12b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlkQ29tbWl0TG9h
ZEZvckZyYW1lKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIEFQSTo6
T2JqZWN0KiB1c2VyRGF0YSkKLXsKLSAgICBpZiAoIW1fY2xpZW50LmRpZENvbW1pdExvYWRGb3JG
cmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jbGllbnQuZGlkQ29tbWl0TG9hZEZvckZy
YW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRpZEZpbmlzaERv
Y3VtZW50TG9hZEZvckZyYW1lKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJh
bWUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKLXsKLSAgICBpZiAoIW1fY2xpZW50LmRpZEZpbmlz
aERvY3VtZW50TG9hZEZvckZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NsaWVudC5k
aWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0
b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci19Ci0KLXZvaWQgV2Vi
TG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV2ViUGFnZVByb3h5KiBwYWdlLCBX
ZWJGcmFtZVByb3h5KiBmcmFtZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQotewotICAgIGlmICgh
bV9jbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X2NsaWVudC5kaWRGaW5pc2hMb2FkRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwg
dG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwotfQotCi12b2lkIFdl
YkxvYWRlckNsaWVudDo6ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXZWJQYWdlUHJveHkq
IHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhKQotewotICAgIGlmICghbV9jbGllbnQuZGlkRmFpbExvYWRX
aXRoRXJyb3JGb3JGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jbGllbnQuZGlkRmFp
bExvYWRXaXRoRXJyb3JGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShl
cnJvciksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQot
dm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShX
ZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uVHlwZSB0eXBlLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCi17Ci0gICAgaWYgKCFtX2Ns
aWVudC5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fY2xpZW50LmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh0b0FQSShw
YWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSSh0eXBlKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pOwotfQotCi12b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlkUmVjZWl2
ZVRpdGxlRm9yRnJhbWUoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBX
ZWJGcmFtZVByb3h5KiBmcmFtZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQotewotICAgIGlmICgh
bV9jbGllbnQuZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1fY2xpZW50LmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQSSh0aXRs
ZS5pbXBsKCkpLCB0b0FQSShmcmFtZSksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRpZEZpcnN0TGF5b3V0Rm9y
RnJhbWUoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhKQotewotICAgIGlmICghbV9jbGllbnQuZGlkRmlyc3RMYXlvdXRGb3JGcmFt
ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jbGllbnQuZGlkRmlyc3RMYXlvdXRGb3JGcmFt
ZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7Ci19Ci0KLXZvaWQgV2ViTG9hZGVyQ2xpZW50OjpkaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJv
eHkqIGZyYW1lLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5k
aWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgbV9jbGllbnQuZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodG9B
UEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOwotfQotCi12b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlkTGF5b3V0KFdlYlBhZ2VQ
cm94eSogcGFnZSwgTGF5b3V0TWlsZXN0b25lcyBtaWxlc3RvbmVzLCBBUEk6Ok9iamVjdCogdXNl
ckRhdGEpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWRMYXlvdXQpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fY2xpZW50LmRpZExheW91dCh0b0FQSShwYWdlKSwgdG9XS0xheW91dE1pbGVzdG9u
ZXMobWlsZXN0b25lcyksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZv
KTsKLX0KLQotdm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNo
eShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBBUEk6Ok9iamVjdCog
dXNlckRhdGEpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJj
aHkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY2xpZW50LmRpZFJlbW92ZUZyYW1lRnJvbUhp
ZXJhcmNoeSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSSh1c2VyRGF0YSksIG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7Ci19Ci0KLXZvaWQgV2ViTG9hZGVyQ2xpZW50OjpkaWREaXNw
bGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVBy
b3h5KiBmcmFtZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQotewotICAgIGlmICghbV9jbGllbnQu
ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBtX2NsaWVudC5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodG9BUEkocGFnZSks
IHRvQVBJKGZyYW1lKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OwotfQotCi12b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJh
bWUoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgQVBJOjpPYmplY3Qq
IHVzZXJEYXRhKQotewotICAgIGlmICghbV9jbGllbnQuZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9y
RnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY2xpZW50LmRpZFJ1bkluc2VjdXJlQ29u
dGVudEZvckZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJKHVzZXJEYXRhKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRp
ZERldGVjdFhTU0ZvckZyYW1lKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJh
bWUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKLXsKLSAgICBpZiAoIW1fY2xpZW50LmRpZERldGVj
dFhTU0ZvckZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NsaWVudC5kaWREZXRlY3RY
U1NGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSSh1c2VyRGF0YSksIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci19Ci0KLWJvb2wgV2ViTG9hZGVyQ2xpZW50OjpjYW5B
dXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlSW5GcmFtZShXZWJQYWdlUHJveHkqIHBh
Z2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBXZWJQcm90ZWN0aW9uU3BhY2UqIHByb3RlY3Rpb25T
cGFjZSkKLXsKLSAgICBpZiAoIW1fY2xpZW50LmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2VJbkZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9j
bGllbnQuY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUluRnJhbWUodG9BUEko
cGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkocHJvdGVjdGlvblNwYWNlKSwgbV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZUluRnJhbWUoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVBy
b3h5KiBmcmFtZSwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSogYXV0aGVudGljYXRpb25D
aGFsbGVuZ2UpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VJbkZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NsaWVudC5kaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VJbkZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFt
ZSksIHRvQVBJKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKLX0KLQotdm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRpZFN0YXJ0UHJvZ3Jlc3MoV2ViUGFn
ZVByb3h5KiBwYWdlKQotewotICAgIGlmICghbV9jbGllbnQuZGlkU3RhcnRQcm9ncmVzcykKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgbV9jbGllbnQuZGlkU3RhcnRQcm9ncmVzcyh0b0FQSShwYWdl
KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJMb2FkZXJDbGllbnQ6
OmRpZENoYW5nZVByb2dyZXNzKFdlYlBhZ2VQcm94eSogcGFnZSkKLXsKLSAgICBpZiAoIW1fY2xp
ZW50LmRpZENoYW5nZVByb2dyZXNzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NsaWVudC5k
aWRDaGFuZ2VQcm9ncmVzcyh0b0FQSShwYWdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
LX0KLQotdm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRpZEZpbmlzaFByb2dyZXNzKFdlYlBhZ2VQcm94
eSogcGFnZSkKLXsKLSAgICBpZiAoIW1fY2xpZW50LmRpZEZpbmlzaFByb2dyZXNzKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBtX2NsaWVudC5kaWRGaW5pc2hQcm9ncmVzcyh0b0FQSShwYWdlKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJMb2FkZXJDbGllbnQ6OnBy
b2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUoV2ViUGFnZVByb3h5KiBwYWdlKQotewotICAgIGlm
ICghbV9jbGllbnQucHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgbV9jbGllbnQucHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSh0b0FQSShwYWdl
KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJMb2FkZXJDbGllbnQ6
OmludGVyYWN0aW9uT2NjdXJyZWRXaGlsZVByb2Nlc3NVbnJlc3BvbnNpdmUoV2ViUGFnZVByb3h5
KiBwYWdlKQotewotICAgIGlmICghbV9jbGllbnQuaW50ZXJhY3Rpb25PY2N1cnJlZFdoaWxlUHJv
Y2Vzc1VucmVzcG9uc2l2ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jbGllbnQuaW50ZXJh
Y3Rpb25PY2N1cnJlZFdoaWxlUHJvY2Vzc1VucmVzcG9uc2l2ZSh0b0FQSShwYWdlKSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJMb2FkZXJDbGllbnQ6OnByb2Nlc3NE
aWRCZWNvbWVSZXNwb25zaXZlKFdlYlBhZ2VQcm94eSogcGFnZSkKLXsKLSAgICBpZiAoIW1fY2xp
ZW50LnByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X2NsaWVudC5wcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSh0b0FQSShwYWdlKSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJMb2FkZXJDbGllbnQ6OnByb2Nlc3NEaWRD
cmFzaChXZWJQYWdlUHJveHkqIHBhZ2UpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5wcm9jZXNzRGlk
Q3Jhc2gpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY2xpZW50LnByb2Nlc3NEaWRDcmFzaCh0
b0FQSShwYWdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJMb2Fk
ZXJDbGllbnQ6OmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXZWJQYWdlUHJveHkqIHBhZ2UsIFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkSXRlbSwgVmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVj
dD4+KiByZW1vdmVkSXRlbXMpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VCYWNrRm9y
d2FyZExpc3QpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlZlB0cjxBUEk6OkFycmF5PiByZW1v
dmVkSXRlbXNBcnJheTsKLSAgICBpZiAocmVtb3ZlZEl0ZW1zICYmICFyZW1vdmVkSXRlbXMtPmlz
RW1wdHkoKSkKLSAgICAgICAgcmVtb3ZlZEl0ZW1zQXJyYXkgPSBBUEk6OkFycmF5OjpjcmVhdGUo
c3RkOjptb3ZlKCpyZW1vdmVkSXRlbXMpKTsKLQotICAgIG1fY2xpZW50LmRpZENoYW5nZUJhY2tG
b3J3YXJkTGlzdCh0b0FQSShwYWdlKSwgdG9BUEkoYWRkZWRJdGVtKSwgdG9BUEkocmVtb3ZlZEl0
ZW1zQXJyYXkuZ2V0KCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwotfQotCi12b2lkIFdl
YkxvYWRlckNsaWVudDo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94eSog
cGFnZSwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogaXRlbSwgQVBJOjpPYmplY3QqIHVzZXJEYXRh
KQotewotICAgIGlmIChtX2NsaWVudC53aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0pCi0gICAg
ICAgIG1fY2xpZW50LndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh0b0FQSShwYWdlKSwgdG9B
UEkoaXRlbSksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0K
LQotI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotCi12b2lkIFdlYkxvYWRlckNsaWVu
dDo6ZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbihXZWJQYWdlUHJveHkqIHBhZ2UsIEltbXV0YWJs
ZURpY3Rpb25hcnkqIHBsdWdpbkluZm9ybWF0aW9uKQotewotICAgIGlmIChtX2NsaWVudC5kaWRG
YWlsVG9Jbml0aWFsaXplUGx1Z2luX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApCi0gICAgICAgIG1f
Y2xpZW50LmRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW5fZGVwcmVjYXRlZEZvclVzZVdpdGhWMCgK
LSAgICAgICAgICAgIHRvQVBJKHBhZ2UpLAotICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3Jt
YXRpb24tPmdldDxBUEk6OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25NSU1FVHlwZUtleSgpKSks
Ci0gICAgICAgICAgICBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwotCi0gICAgaWYgKG1fY2xp
ZW50LnBsdWdpbkRpZEZhaWxfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSkKLSAgICAgICAgbV9jbGll
bnQucGx1Z2luRGlkRmFpbF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxKAotICAgICAgICAgICAgdG9B
UEkocGFnZSksCi0gICAgICAgICAgICBrV0tFcnJvckNvZGVDYW5ub3RMb2FkUGx1Z0luLAotICAg
ICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24tPmdldDxBUEk6OlN0cmluZz4ocGx1Z2lu
SW5mb3JtYXRpb25NSU1FVHlwZUtleSgpKSksCi0gICAgICAgICAgICAwLAotICAgICAgICAgICAg
MCwKLSAgICAgICAgICAgIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci0KLSAgICBpZiAobV9j
bGllbnQucGx1Z2luRGlkRmFpbCkKLSAgICAgICAgbV9jbGllbnQucGx1Z2luRGlkRmFpbCgKLSAg
ICAgICAgICAgIHRvQVBJKHBhZ2UpLAotICAgICAgICAgICAga1dLRXJyb3JDb2RlQ2Fubm90TG9h
ZFBsdWdJbiwKLSAgICAgICAgICAgIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9uKSwKLSAgICAgICAg
ICAgIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci19Ci0KLXZvaWQgV2ViTG9hZGVyQ2xpZW50
OjpkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbihXZWJQYWdlUHJveHkqIHBhZ2UsIEltbXV0
YWJsZURpY3Rpb25hcnkqIHBsdWdpbkluZm9ybWF0aW9uKQotewotICAgIGlmIChtX2NsaWVudC5w
bHVnaW5EaWRGYWlsX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEpCi0gICAgICAgIG1fY2xpZW50LnBs
dWdpbkRpZEZhaWxfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSgKLSAgICAgICAgICAgIHRvQVBJKHBh
Z2UpLAotICAgICAgICAgICAga1dLRXJyb3JDb2RlSW5zZWN1cmVQbHVnSW5WZXJzaW9uLAotICAg
ICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24tPmdldDxBUEk6OlN0cmluZz4ocGx1Z2lu
SW5mb3JtYXRpb25NSU1FVHlwZUtleSgpKSksCi0gICAgICAgICAgICB0b0FQSShwbHVnaW5JbmZv
cm1hdGlvbi0+Z2V0PEFQSTo6U3RyaW5nPihwbHVnaW5JbmZvcm1hdGlvbkJ1bmRsZUlkZW50aWZp
ZXJLZXkoKSkpLAotICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24tPmdldDxBUEk6
OlN0cmluZz4ocGx1Z2luSW5mb3JtYXRpb25CdW5kbGVWZXJzaW9uS2V5KCkpKSwKLSAgICAgICAg
ICAgIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci0KLSAgICBpZiAobV9jbGllbnQucGx1Z2lu
RGlkRmFpbCkKLSAgICAgICAgbV9jbGllbnQucGx1Z2luRGlkRmFpbCgKLSAgICAgICAgICAgIHRv
QVBJKHBhZ2UpLAotICAgICAgICAgICAga1dLRXJyb3JDb2RlSW5zZWN1cmVQbHVnSW5WZXJzaW9u
LAotICAgICAgICAgICAgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24pLAotICAgICAgICAgICAgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBXZWJM
b2FkZXJDbGllbnQ6OnBsdWdpbkxvYWRQb2xpY3koV2ViUGFnZVByb3h5KiBwYWdlLCBQbHVnaW5N
b2R1bGVMb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5LCBJbW11dGFibGVEaWN0aW9u
YXJ5KiBwbHVnaW5JbmZvcm1hdGlvbiwgU3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9u
LCBTdHJpbmcmIHVzZUJsb2NrZWRQbHVnaW5UaXRsZSkKLXsKLSAgICBXS1N0cmluZ1JlZiB1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0ID0gMDsKLSAgICBXS1N0cmluZ1JlZiB1c2VCbG9ja2Vk
UGx1Z2luVGl0bGVPdXQgPSAwOwotICAgIFBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgbG9hZFBvbGlj
eSA9IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5OwotCi0gICAgaWYgKG1fY2xpZW50LnBsdWdpbkxv
YWRQb2xpY3lfZGVwcmVjYXRlZEZvclVzZVdpdGhWMikKLSAgICAgICAgbG9hZFBvbGljeSA9IHRv
UGx1Z2luTW9kdWxlTG9hZFBvbGljeShtX2NsaWVudC5wbHVnaW5Mb2FkUG9saWN5X2RlcHJlY2F0
ZWRGb3JVc2VXaXRoVjIodG9BUEkocGFnZSksIHRvV0tQbHVnaW5Mb2FkUG9saWN5KGN1cnJlbnRQ
bHVnaW5Mb2FkUG9saWN5KSwgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24pLCBtX2NsaWVudC5iYXNl
LmNsaWVudEluZm8pKTsKLSAgICBlbHNlIGlmIChtX2NsaWVudC5wbHVnaW5Mb2FkUG9saWN5X2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjMpCi0gICAgICAgIGxvYWRQb2xpY3kgPSB0b1BsdWdpbk1vZHVs
ZUxvYWRQb2xpY3kobV9jbGllbnQucGx1Z2luTG9hZFBvbGljeV9kZXByZWNhdGVkRm9yVXNlV2l0
aFYzKHRvQVBJKHBhZ2UpLCB0b1dLUGx1Z2luTG9hZFBvbGljeShjdXJyZW50UGx1Z2luTG9hZFBv
bGljeSksIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9uKSwgJnVuYXZhaWxhYmlsaXR5RGVzY3JpcHRp
b25PdXQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOwotICAgIGVsc2UgaWYgKG1fY2xpZW50
LnBsdWdpbkxvYWRQb2xpY3kpCi0gICAgICAgIGxvYWRQb2xpY3kgPSB0b1BsdWdpbk1vZHVsZUxv
YWRQb2xpY3kobV9jbGllbnQucGx1Z2luTG9hZFBvbGljeSh0b0FQSShwYWdlKSwgdG9XS1BsdWdp
bkxvYWRQb2xpY3koY3VycmVudFBsdWdpbkxvYWRQb2xpY3kpLCB0b0FQSShwbHVnaW5JbmZvcm1h
dGlvbiksICZ1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0LCAmdXNlQmxvY2tlZFBsdWdpblRp
dGxlT3V0LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pKTsKLQotICAgIGlmICh1bmF2YWlsYWJp
bGl0eURlc2NyaXB0aW9uT3V0KSB7Ci0gICAgICAgIFJlZlB0cjxBUEk6OlN0cmluZz4gd2ViVW5h
dmFpbGFiaWxpdHlEZXNjcmlwdGlvbiA9IGFkb3B0UmVmKHRvSW1wbCh1bmF2YWlsYWJpbGl0eURl
c2NyaXB0aW9uT3V0KSk7Ci0gICAgICAgIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24gPSB3ZWJV
bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLT5zdHJpbmcoKTsKLSAgICB9Ci0KLSAgICBpZiAodXNl
QmxvY2tlZFBsdWdpblRpdGxlT3V0KSB7Ci0gICAgICAgIFJlZlB0cjxBUEk6OlN0cmluZz4gd2Vi
VXNlQmxvY2tlZFBsdWdpblRpdGxlID0gYWRvcHRSZWYodG9JbXBsKHVzZUJsb2NrZWRQbHVnaW5U
aXRsZU91dCkpOwotICAgICAgICB1c2VCbG9ja2VkUGx1Z2luVGl0bGUgPSB3ZWJVc2VCbG9ja2Vk
UGx1Z2luVGl0bGUtPnN0cmluZygpOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gbG9hZFBvbGlj
eTsKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotCi0jaWYgRU5B
QkxFKFdFQkdMKQotV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5IFdlYkxvYWRlckNsaWVudDo6d2Vi
R0xMb2FkUG9saWN5KFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0
Ci17Ci0gICAgV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5IGxvYWRQb2xpY3kgPSBXZWJHTEFsbG93
OwotCi0gICAgaWYgKG1fY2xpZW50LndlYkdMTG9hZFBvbGljeSkKLSAgICAgICAgbG9hZFBvbGlj
eSA9IHRvV2ViR0xMb2FkUG9saWN5KG1fY2xpZW50LndlYkdMTG9hZFBvbGljeSh0b0FQSShwYWdl
KSwgdG9BUEkodXJsLmltcGwoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOwotCi0gICAg
cmV0dXJuIGxvYWRQb2xpY3k7Ci19Ci0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJM
b2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWFhOTFjNTZmYzE1ODZiZWQ0NmZkYzdl
MmMwYTJlNGRkODJhMjFkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmgKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViTG9hZGVy
Q2xpZW50X2gKLSNkZWZpbmUgV2ViTG9hZGVyQ2xpZW50X2gKLQotI2luY2x1ZGUgIkFQSUNsaWVu
dC5oIgotI2luY2x1ZGUgIkFQSUxvYWRlckNsaWVudC5oIgotI2luY2x1ZGUgIldLUGFnZUxvYWRl
ckNsaWVudC5oIgotCi1uYW1lc3BhY2UgQVBJIHsKLWNsYXNzIE9iamVjdDsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZUxvYWRlckNsaWVudEJhc2U+IHsKLSAgICB0eXBl
ZGVmIHN0ZDo6dHVwbGU8V0tQYWdlTG9hZGVyQ2xpZW50VjAsIFdLUGFnZUxvYWRlckNsaWVudFYx
LCBXS1BhZ2VMb2FkZXJDbGllbnRWMiwgV0tQYWdlTG9hZGVyQ2xpZW50VjMsIFdLUGFnZUxvYWRl
ckNsaWVudFY0PiBWZXJzaW9uczsKLX07Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNz
IFJlc291cmNlRXJyb3I7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5OwotY2xhc3MgQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3Rl
bmVyOwotY2xhc3MgSW1tdXRhYmxlRGljdGlvbmFyeTsKLWNsYXNzIFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW07Ci1jbGFzcyBXZWJGcmFtZVByb3h5OwotY2xhc3MgV2ViUGFnZVByb3h5OwotY2xhc3Mg
V2ViUHJvdGVjdGlvblNwYWNlOwotCi1jbGFzcyBXZWJMb2FkZXJDbGllbnQgOiBwdWJsaWMgQVBJ
OjpDbGllbnQ8V0tQYWdlTG9hZGVyQ2xpZW50QmFzZT4sIHB1YmxpYyBBUEk6OkxvYWRlckNsaWVu
dCB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgV2ViTG9hZGVyQ2xpZW50KGNvbnN0IFdLUGFnZUxv
YWRlckNsaWVudEJhc2UqKTsKLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgQVBJ
OjpPYmplY3QqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQ
cm94eSosIEFQSTo6T2JqZWN0Kik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWxQcm92aXNpb25h
bExvYWRXaXRoRXJyb3JGb3JGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFt
ZVByb3h5KiwgQVBJOjpPYmplY3QqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIEFQ
STo6T2JqZWN0Kikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRGb3JG
cmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgQVBJOjpPYmplY3QqKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXZWJQYWdl
UHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIEFQ
STo6T2JqZWN0Kikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFNhbWVEb2N1bWVudE5h
dmlnYXRpb25Gb3JGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgU2FtZURvY3Vt
ZW50TmF2aWdhdGlvblR5cGUsIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3Ry
aW5nJiwgV2ViRnJhbWVQcm94eSosIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94
eSosIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7Ci0KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNv
bnNpZGVyIHJlbW92aW5nIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lIHNp
bmNlIGl0IGlzIHJlcGxhY2VkIGJ5IGRpZExheW91dC4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQ
cm94eSosIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVt
b3ZlRnJhbWVGcm9tSGllcmFyY2h5KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBBUEk6
Ok9iamVjdCopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIEFQSTo6T2JqZWN0
Kikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZy
YW1lKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBBUEk6Ok9iamVjdCopIG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgdm9pZCBkaWREZXRlY3RYU1NGb3JGcmFtZShXZWJQYWdlUHJveHkqLCBX
ZWJGcmFtZVByb3h5KiwgQVBJOjpPYmplY3QqKSBvdmVycmlkZTsKLQotICAgIHZpcnR1YWwgdm9p
ZCBkaWRMYXlvdXQoV2ViUGFnZVByb3h5KiwgV2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lcywgQVBJ
OjpPYmplY3QqKSBvdmVycmlkZTsKLSAgICAKLSAgICBib29sIGNhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2VJbkZyYW1lKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBX
ZWJQcm90ZWN0aW9uU3BhY2UqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVBy
b3h5KiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSopIG92ZXJyaWRlOwotCi0gICAgdmly
dHVhbCB2b2lkIGRpZFN0YXJ0UHJvZ3Jlc3MoV2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZENoYW5nZVByb2dyZXNzKFdlYlBhZ2VQcm94eSopIG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcyhXZWJQYWdlUHJveHkqKSBvdmVycmlk
ZTsKLQotICAgIC8vIEZJWE1FOiBUaGVzZSB0aHJlZSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBiZSBw
YXJ0IG9mIHRoaXMgY2xpZW50LgotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQmVjb21lVW5y
ZXNwb25zaXZlKFdlYlBhZ2VQcm94eSopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBpbnRl
cmFjdGlvbk9jY3VycmVkV2hpbGVQcm9jZXNzVW5yZXNwb25zaXZlKFdlYlBhZ2VQcm94eSopIG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZShXZWJQ
YWdlUHJveHkqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENyYXNoKFdl
YlBhZ2VQcm94eSopIG92ZXJyaWRlOwotCi0gICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUJhY2tG
b3J3YXJkTGlzdChXZWJQYWdlUHJveHkqLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBhZGRlZEl0
ZW0sIFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+PiogcmVtb3ZlZEl0ZW1zKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94
eSosIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qLCBBUEk6Ok9iamVjdCopIG92ZXJyaWRlOwotCi0j
aWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgUGx1Z2luTW9kdWxlTG9hZFBvbGlj
eSBwbHVnaW5Mb2FkUG9saWN5KFdlYlBhZ2VQcm94eSosIFBsdWdpbk1vZHVsZUxvYWRQb2xpY3kg
Y3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIEltbXV0YWJsZURpY3Rpb25hcnkqLCBXVEY6OlN0cmlu
ZyYgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgV1RGOjpTdHJpbmcmIHVzZUJsb2NrZWRQbHVn
aW5UaXRsZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWxUb0luaXRpYWxpemVQ
bHVnaW4oV2ViUGFnZVByb3h5KiwgSW1tdXRhYmxlRGljdGlvbmFyeSopIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbihXZWJQYWdlUHJveHkq
LCBJbW11dGFibGVEaWN0aW9uYXJ5Kikgb3ZlcnJpZGU7Ci0jZW5kaWYgLy8gRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCi0KLSNpZiBFTkFCTEUoV0VCR0wpCi0gICAgV2ViQ29yZTo6V2ViR0xM
b2FkUG9saWN5IHdlYkdMTG9hZFBvbGljeShXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmlu
ZyYpIGNvbnN0OwotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYktpdAotCi0jZW5kaWYgLy8gV2ViTG9hZGVyQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3YWJiMjZmOTVmOTViNzNlMDZmN2JkZTVmNDY5MGQw
NWQ5ZTJiOWQyLi5iNWUxOGYzOGMzMjZiMDRjNjg1MWVjZTE2OGFkYTE4OWI4Zjk5MWZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01Miw3ICs1Miw2IEBACiAj
aW5jbHVkZSAiV2ViRnJhbWVQcm94eS5oIgogI2luY2x1ZGUgIldlYkhpc3RvcnlDbGllbnQuaCIK
ICNpbmNsdWRlICJXZWJIaXRUZXN0UmVzdWx0LmgiCi0jaW5jbHVkZSAiV2ViTG9hZGVyQ2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWx0ZXJuYXRpdmVU
ZXh0Q2xpZW50Lmg+IC8vIEZJWE1FOiBOZWVkZWQgYnkgV2ViUGFnZVByb3h5TWVzc2FnZXMuaCBm
b3IgRElDVEFUSU9OX0FMVEVSTkFUSVZFUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmZDA0MjU4ODdlNmJkMzEyNTIxYTVmYjJl
YzJmMDEwYjdkZjc2ZmExLi45MmE4ZDQ2YTNjN2FiOTFkZjRmYjQ1ZjM3YjdkNmY0OTliYTcxZTZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMDY5LDcgKzEwNjksNiBAQAogCQlCQzU3NTA5NzEyNjhGM0M2MDA2RjBGMTIgLyog
V2ViUG9wdXBNZW51UHJveHlNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDNTc1MDk1MTI2OEYzQzYwMDZGMEYxMiAvKiBXZWJQb3B1cE1lbnVQcm94
eU1hYy5oICovOyB9OwogCQlCQzU3NTA5ODEyNjhGM0M2MDA2RjBGMTIgLyogV2ViUG9wdXBNZW51
UHJveHlNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzU3NTA5NjEyNjhGM0M2MDA2RjBGMTIgLyogV2ViUG9wdXBNZW51UHJveHlNYWMubW0gKi87
IH07CiAJCUJDNTc1NjEzMTI2RTAxMzgwMDZGMEYxMiAvKiBBUElFcnJvci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU3NTYxMjEyNkUwMTM4MDA2
RjBGMTIgLyogQVBJRXJyb3IuY3BwICovOyB9OwotCQlCQzU5NTM0MjEwRkMwNDUyMDA5OEY4MkQg
LyogV2ViTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzU5NTM0MDEwRkMwNDUyMDA5OEY4MkQgLyogV2ViTG9hZGVyQ2xpZW50Lmgg
Ki87IH07CiAJCUJDNTk1NDg5MTVDNzg2ODUwMEZEMUUzRSAvKiBXZWJLaXQyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU5NTQ4ODE1Qzc4Njg1MDBG
RDFFM0UgLyogV2ViS2l0Mi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUJDNTk3MDc1MTE2NTkxRDAwMDU1MUZDQSAvKiBQcm9jZXNzTW9kZWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTk3MDc0MTE2
NTkxRDAwMDU1MUZDQSAvKiBQcm9jZXNzTW9kZWwuaCAqLzsgfTsKIAkJQkM1Qzc1QzgxNDk1NERB
NjAwQkM0Nzc1IC8qIFdLQ29ubmVjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVDNzVDNjE0OTU0REE2MDBCQzQ3NzUgLyogV0tD
b25uZWN0aW9uSW50ZXJuYWwuaCAqLzsgfTsKQEAgLTExOTEsNyArMTE5MCw2IEBACiAJCUJDQjlF
MjQ0MTEyMERBQ0EwMEExMzdFMCAvKiBXZWJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjlFMjQyMTEyMERBQ0EwMEExMzdFMCAvKiBX
ZWJDb250ZXh0LmNwcCAqLzsgfTsKIAkJQkNCOUUyNEIxMTIwRTE1QzAwQTEzN0UwIC8qIFdLQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNC
OUUyNDkxMTIwRTE1QzAwQTEzN0UwIC8qIFdLQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDQjlFMjRDMTEyMEUxNUMwMEExMzdFMCAv
KiBXS0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNCOUUyNEExMTIwRTE1QzAwQTEzN0UwIC8qIFdLQ29udGV4dC5jcHAgKi87IH07Ci0J
CUJDQjlFNzYyMTEyMzJCOUUwMEExMzdFMCAvKiBXZWJMb2FkZXJDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCOUU3NjExMTIzMkI5RTAw
QTEzN0UwIC8qIFdlYkxvYWRlckNsaWVudC5jcHAgKi87IH07CiAJCUJDQjlGNkEwMTEyM0E4NEIw
MEExMzdFMCAvKiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjlGNjlFMTEyM0E4NEIwMEExMzdFMCAv
KiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCAqLzsgfTsKIAkJQkNCOUY2QTExMTIzQTg0
QjAwQTEzN0UwIC8qIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0I5RjY5RjExMjNBODRCMDBBMTM3
RTAgLyogV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmNwcCAqLzsgfTsKIAkJQkNCOUY2QTUx
MTIzREQwRDAwQTEzN0UwIC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCOUY2QTMxMTIzREQwRDAwQTEzN0Uw
IC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0yNzkzLDcgKzI3OTEsNiBAQAogCQlCQzU3NTA5NTEyNjhG
M0M2MDA2RjBGMTIgLyogV2ViUG9wdXBNZW51UHJveHlNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViUG9wdXBNZW51UHJveHlNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkM1NzUwOTYxMjY4RjNDNjAwNkYwRjEyIC8qIFdlYlBvcHVwTWVudVByb3h5
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUG9wdXBN
ZW51UHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTc1NjEyMTI2
RTAxMzgwMDZGMEYxMiAvKiBBUElFcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBUElFcnJvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJD
NTk1MzQwMTBGQzA0NTIwMDk4RjgyRCAvKiBXZWJMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDNTk1NDg4MTVDNzg2ODUwMEZEMUUzRSAvKiBXZWJLaXQyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdDIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkM1OTcwNzQxMTY1OTFEMDAwNTUxRkNBIC8qIFByb2Nlc3NNb2RlbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzTW9kZWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1Qzc1QzYxNDk1NERBNjAwQkM0Nzc1IC8qIFdLQ29ubmVj
dGlvbkludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29ubmVj
dGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTE4LDcgKzI5
MTUsNiBAQAogCQlCQ0I5RTI0MjExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCOUUyNDkxMTIwRTE1QzAwQTEzN0UwIC8qIFdLQ29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0NvbnRleHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCOUUyNEExMTIwRTE1QzAwQTEzN0UwIC8qIFdL
Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0NvbnRl
eHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0I5RTc2MTExMjMyQjlFMDBB
MTM3RTAgLyogV2ViTG9hZGVyQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkxvYWRlckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDQjlGNjlFMTEyM0E4NEIwMEExMzdFMCAvKiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjlGNjlGMTEyM0E4
NEIwMEExMzdFMCAvKiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCOUY2QTMxMTIzREQwRDAwQTEzN0Uw
IC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS0ZyYW1lUG9saWN5TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTQ5NjksOCArNDk2NSw2IEBACiAJCQkJMUM3N0MxOTUxMjg4QTg3MjAwNkE3NDJGIC8qIFdl
Ykluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTUxQTlFMTAyMTMxNUNDRkMwMDlF
NzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLywKIAkJCQk1MUE5RTEwMzEz
MTVDQ0ZDMDA5RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oICovLAotCQkJCUJD
QjlFNzYxMTEyMzJCOUUwMEExMzdFMCAvKiBXZWJMb2FkZXJDbGllbnQuY3BwICovLAotCQkJCUJD
NTk1MzQwMTBGQzA0NTIwMDk4RjgyRCAvKiBXZWJMb2FkZXJDbGllbnQuaCAqLywKIAkJCQkzM0Qz
QTNCNzEzMzk2MDYyMDA3MDlCRTQgLyogV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHAgKi8s
CiAJCQkJMzNEM0EzQjgxMzM5NjA2MjAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJv
eHkuaCAqLywKIAkJCQkzM0QzQTNCOTEzMzk2MDYyMDA3MDlCRTQgLyogV2ViTWVkaWFDYWNoZU1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKQEAgLTY0NzMsNyArNjQ2Nyw2IEBACiAJCQkJMUFF
MDBENjExODMxNzkyMTAwMDg3REQ3IC8qIEZyYW1lTG9hZFN0YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0I2MzQ3ODExNkJGMTA2MDA2MDMyMTUgLyogV2ViS2l0Ml9DLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzlCQTUwNTE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0MkluaXRpYWxpemUuaCBp
biBIZWFkZXJzICovLAotCQkJCUJDNTk1MzQyMTBGQzA0NTIwMDk4RjgyRCAvKiBXZWJMb2FkZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzRDNBM0MyMTMzOTYwQjAwMDcwOUJFNCAvKiBX
ZWJNZWRpYUNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQxMjVDNUUxODU3RUEw
NTAwM0JBM0NCIC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzNEM0EzQzkxMzM5NjE3OTAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovLApAQCAtNzg2Myw3ICs3ODU2LDYgQEAKIAkJCQlDMDMzN0REMzEyN0Ey
QTBFMDA4RkY0RjQgLyogV2ViS2V5Ym9hcmRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MUE5RTEwNTEzMTVDQ0ZDMDA5RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzlCQTUwNDE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0Mklu
aXRpYWxpemUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNCOUU3NjIxMTIzMkI5RTAwQTEzN0Uw
IC8qIFdlYkxvYWRlckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzM0QzQTNDMTEzMzk2
MEIwMDA3MDlCRTQgLyogV2ViTWVkaWFDYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzNEM0EzQzgxMzM5NjE3OTAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEQTk0NEIzMTg4NEU5RUMwMEVEODZE
QiAvKiBXZWJQcm9jZXNzSU9TLm1tIGluIFNvdXJjZXMgKi8sCg==
</data>
<flag name="review"
          id="246124"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>