<?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>49404</bug_id>
          
          <creation_ts>2010-11-11 13:52:24 -0800</creation_ts>
          <short_desc>Move the remaining API client classes to use the APIClient base class.</short_desc>
          <delta_ts>2010-11-11 14:07: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>WebKit2</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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>308120</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-11-11 13:52:24 -0800</bug_when>
    <thetext>Move the remaining API client classes to use the APIClient base class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308127</commentid>
    <comment_count>1</comment_count>
      <attachid>73656</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-11-11 13:57:29 -0800</bug_when>
    <thetext>Created attachment 73656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308136</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-11-11 14:07:43 -0800</bug_when>
    <thetext>Landed in r71850.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73656</attachid>
            <date>2010-11-11 13:57:29 -0800</date>
            <delta_ts>2010-11-11 14:06:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>23303</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTg0OSkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMTAtMTEtMTEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRo
ZSByZW1haW5pbmcgQVBJIGNsaWVudCBjbGFzc2VzIHRvIHVzZSB0aGUgQVBJQ2xpZW50IGJhc2Ug
Y2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
OTQwNAorCisgICAgICAgIEFsc28gbW92ZXMgSW5qZWN0ZWRCdW5kbGVDbGllbnQgaW50byBpdHMg
b3duIGNsYXNzIHRvIG1hdGNoIG90aGVyIEFQSSBjbGllbnRzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJIaXN0b3J5Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSGlzdG9yeUNsaWVu
dDo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJI
aXN0b3J5Q2xpZW50OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJIaXN0b3J5Q2xpZW50OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJIaXN0b3J5Q2xpZW50OjpkaWRVcGRhdGVIaXN0b3J5VGl0bGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJIaXN0b3J5Q2xpZW50Ojpwb3B1bGF0ZVZpc2l0ZWRMaW5rcyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkhpc3RvcnlDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SGlzdG9yeUNsaWVudDo6c2hvdWxkVHJhY2tWaXNpdGVkTGlua3MpOgorICAgICAgICAqIFdlYktp
dDIucHJvOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OmluaXRpYWxpemVDbGllbnQpOgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6cmVwb3J0RXhjZXB0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6SW5qZWN0ZWRCdW5kbGU6OmRpZENyZWF0ZVBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZTo6d2lsbERlc3Ryb3lQYWdlKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0
ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUNsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZUNsaWVudDo6ZGlkQ3JlYXRlUGFnZSk6CisgICAgICAgIChXZWJLaXQ6
OkluamVjdGVkQnVuZGxlQ2xpZW50Ojp3aWxsRGVzdHJveVBhZ2UpOgorICAgICAgICAoV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZUNsaWVudDo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVDbGllbnQuaDogQWRkZWQuCisg
ICAgICAgICogd2luL1dlYktpdDIudmNwcm9qOgorCiAyMDEwLTExLTExICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jl
bi4KSW5kZXg6IFdlYktpdDIvV2ViS2l0Mi5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJL
aXQyLnBybwkocmV2aXNpb24gNzE4MzQpCisrKyBXZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC0zMjAsNiArMzIwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmggXAogICAgIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCBcCiAg
ICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oIFwKKyAgICBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlQ2xpZW50LmggXAogICAgIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmggXAogICAg
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVD
bGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VGb3JtQ2xpZW50LmggXApAQCAtNDkxLDYgKzQ5Miw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAg
XAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VI
YW5kbGUuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUNsaWVu
dC5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVCYWNr
Rm9yd2FyZExpc3QuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcCBcICAgIApJbmRleDogV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3Bw
CShyZXZpc2lvbiA3MTgzNCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHRJbmplY3Rl
ZEJ1bmRsZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE5ICszMiw2IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViQ29udGV4dElu
amVjdGVkQnVuZGxlQ2xpZW50OjpXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQoKQotewot
ICAgIGluaXRpYWxpemUoMCk7Ci19Ci0KLXZvaWQgV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xp
ZW50Ojppbml0aWFsaXplKGNvbnN0IFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50KiBjbGll
bnQpCi17Ci0gICAgaWYgKGNsaWVudCAmJiAhY2xpZW50LT52ZXJzaW9uKQotICAgICAgICBtX2Ns
aWVudCA9ICpjbGllbnQ7Ci0gICAgZWxzZSAKLSAgICAgICAgbWVtc2V0KCZtX2NsaWVudCwgMCwg
c2l6ZW9mKG1fY2xpZW50KSk7Ci19Ci0KIHZvaWQgV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xp
ZW50OjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXZWJDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBBUElPYmplY3QqIG1lc3NhZ2VCb2R5KQog
ewogICAgIGlmICghbV9jbGllbnQuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUp
CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0SW5qZWN0ZWRCdW5k
bGVDbGllbnQuaAkocmV2aXNpb24gNzE4MzQpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRfaAogI2RlZmluZSBXZWJD
b250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRfaAogCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCiAj
aW5jbHVkZSAiV0tDb250ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtMzQs
MTYgKzM1LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgQVBJT2JqZWN0OwogY2xhc3Mg
V2ViQ29udGV4dDsKIAotY2xhc3MgV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50IHsKK2Ns
YXNzIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCA6IHB1YmxpYyBBUElDbGllbnQ8V0tD
b250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQ+IHsKIHB1YmxpYzoKLSAgICBXZWJDb250ZXh0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQoKTsKLSAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgV0tDb250ZXh0
SW5qZWN0ZWRCdW5kbGVDbGllbnQqKTsKLQogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9t
SW5qZWN0ZWRCdW5kbGUoV2ViQ29udGV4dCosIGNvbnN0IFN0cmluZyYsIEFQSU9iamVjdCopOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShX
ZWJDb250ZXh0KiwgY29uc3QgU3RyaW5nJiwgQVBJT2JqZWN0KiwgUmVmUHRyPEFQSU9iamVjdD4m
IHJldHVybkRhdGEpOwotCi1wcml2YXRlOgotICAgIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xp
ZW50IG1fY2xpZW50OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQy
L1VJUHJvY2Vzcy9XZWJIaXN0b3J5Q2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJIaXN0b3J5Q2xpZW50LmNwcAkocmV2aXNpb24gNzE4MzQpCisrKyBXZWJLaXQy
L1VJUHJvY2Vzcy9XZWJIaXN0b3J5Q2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNTgg
KzMzLDQ1IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotV2ViSGlzdG9yeUNsaWVudDo6V2ViSGlzdG9yeUNsaWVudCgpCi17Ci0gICAgaW5pdGlhbGl6
ZSgwKTsKLX0KLQotdm9pZCBXZWJIaXN0b3J5Q2xpZW50Ojppbml0aWFsaXplKGNvbnN0IFdLQ29u
dGV4dEhpc3RvcnlDbGllbnQqIGNsaWVudCkKLXsKLSAgICBpZiAoY2xpZW50ICYmICFjbGllbnQt
PnZlcnNpb24pCi0gICAgICAgIG1fY29udGV4dEhpc3RvcnlDbGllbnQgPSAqY2xpZW50OwotICAg
IGVsc2UgCi0gICAgICAgIG1lbXNldCgmbV9jb250ZXh0SGlzdG9yeUNsaWVudCwgMCwgc2l6ZW9m
KG1fY29udGV4dEhpc3RvcnlDbGllbnQpKTsKLX0KLQogdm9pZCBXZWJIaXN0b3J5Q2xpZW50Ojpk
aWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJQYWdl
UHJveHkqIHBhZ2UsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIG5hdmlnYXRpb25EYXRh
U3RvcmUsIFdlYkZyYW1lUHJveHkqIGZyYW1lKQogewotICAgIGlmICghbV9jb250ZXh0SGlzdG9y
eUNsaWVudC5kaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSkKKyAgICBpZiAoIW1fY2xpZW50
LmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKQogICAgICAgICByZXR1cm47CiAKICAgICBS
ZWZQdHI8V2ViTmF2aWdhdGlvbkRhdGE+IG5hdmlnYXRpb25EYXRhID0gV2ViTmF2aWdhdGlvbkRh
dGE6OmNyZWF0ZShuYXZpZ2F0aW9uRGF0YVN0b3JlKTsgCi0gICAgbV9jb250ZXh0SGlzdG9yeUNs
aWVudC5kaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSh0b0FQSShjb250ZXh0KSwgdG9BUEko
cGFnZSksIHRvQVBJKG5hdmlnYXRpb25EYXRhLmdldCgpKSwgdG9BUEkoZnJhbWUpLCBtX2NvbnRl
eHRIaXN0b3J5Q2xpZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LmRpZE5hdmlnYXRlV2l0
aE5hdmlnYXRpb25EYXRhKHRvQVBJKGNvbnRleHQpLCB0b0FQSShwYWdlKSwgdG9BUEkobmF2aWdh
dGlvbkRhdGEuZ2V0KCkpLCB0b0FQSShmcmFtZSksIG1fY2xpZW50LmNsaWVudEluZm8pOwogfQog
CiB2b2lkIFdlYkhpc3RvcnlDbGllbnQ6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChXZWJDb250
ZXh0KiBjb250ZXh0LCBXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
LCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCBXZWJGcmFtZVByb3h5KiBmcmFtZSkKIHsK
LSAgICBpZiAoIW1fY29udGV4dEhpc3RvcnlDbGllbnQuZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0
KQorICAgIGlmICghbV9jbGllbnQuZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBtX2NvbnRleHRIaXN0b3J5Q2xpZW50LmRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdCh0b0FQSShjb250ZXh0KSwgdG9BUEkocGFnZSksIHRvVVJMUmVmKHNvdXJjZVVSTC5pbXBs
KCkpLCB0b1VSTFJlZihkZXN0aW5hdGlvblVSTC5pbXBsKCkpLCB0b0FQSShmcmFtZSksIG1fY29u
dGV4dEhpc3RvcnlDbGllbnQuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQuZGlkUGVyZm9ybUNs
aWVudFJlZGlyZWN0KHRvQVBJKGNvbnRleHQpLCB0b0FQSShwYWdlKSwgdG9VUkxSZWYoc291cmNl
VVJMLmltcGwoKSksIHRvVVJMUmVmKGRlc3RpbmF0aW9uVVJMLmltcGwoKSksIHRvQVBJKGZyYW1l
KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CiB9CiAKIHZvaWQgV2ViSGlzdG9yeUNsaWVudDo6ZGlk
UGVyZm9ybVNlcnZlclJlZGlyZWN0KFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VQcm94eSog
cGFnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25V
UkwsIFdlYkZyYW1lUHJveHkqIGZyYW1lKQogewotICAgIGlmICghbV9jb250ZXh0SGlzdG9yeUNs
aWVudC5kaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QpCisgICAgaWYgKCFtX2NsaWVudC5kaWRQZXJm
b3JtU2VydmVyUmVkaXJlY3QpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY29udGV4dEhpc3Rv
cnlDbGllbnQuZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KHRvQVBJKGNvbnRleHQpLCB0b0FQSShw
YWdlKSwgdG9VUkxSZWYoc291cmNlVVJMLmltcGwoKSksIHRvVVJMUmVmKGRlc3RpbmF0aW9uVVJM
LmltcGwoKSksIHRvQVBJKGZyYW1lKSwgbV9jb250ZXh0SGlzdG9yeUNsaWVudC5jbGllbnRJbmZv
KTsKKyAgICBtX2NsaWVudC5kaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QodG9BUEkoY29udGV4dCks
IHRvQVBJKHBhZ2UpLCB0b1VSTFJlZihzb3VyY2VVUkwuaW1wbCgpKSwgdG9VUkxSZWYoZGVzdGlu
YXRpb25VUkwuaW1wbCgpKSwgdG9BUEkoZnJhbWUpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0K
IAogdm9pZCBXZWJIaXN0b3J5Q2xpZW50OjpkaWRVcGRhdGVIaXN0b3J5VGl0bGUoV2ViQ29udGV4
dCogY29udGV4dCwgV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25z
dCBTdHJpbmcmIHVybCwgV2ViRnJhbWVQcm94eSogZnJhbWUpCiB7Ci0gICAgaWYgKCFtX2NvbnRl
eHRIaXN0b3J5Q2xpZW50LmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSkKKyAgICBpZiAoIW1fY2xpZW50
LmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jb250ZXh0
SGlzdG9yeUNsaWVudC5kaWRVcGRhdGVIaXN0b3J5VGl0bGUodG9BUEkoY29udGV4dCksIHRvQVBJ
KHBhZ2UpLCB0b0FQSSh0aXRsZS5pbXBsKCkpLCB0b1VSTFJlZih1cmwuaW1wbCgpKSwgdG9BUEko
ZnJhbWUpLCBtX2NvbnRleHRIaXN0b3J5Q2xpZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50
LmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSh0b0FQSShjb250ZXh0KSwgdG9BUEkocGFnZSksIHRvQVBJ
KHRpdGxlLmltcGwoKSksIHRvVVJMUmVmKHVybC5pbXBsKCkpLCB0b0FQSShmcmFtZSksIG1fY2xp
ZW50LmNsaWVudEluZm8pOwogfQogCiB2b2lkIFdlYkhpc3RvcnlDbGllbnQ6OnBvcHVsYXRlVmlz
aXRlZExpbmtzKFdlYkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgaWYgKCFtX2NvbnRleHRIaXN0
b3J5Q2xpZW50LnBvcHVsYXRlVmlzaXRlZExpbmtzKQorICAgIGlmICghbV9jbGllbnQucG9wdWxh
dGVWaXNpdGVkTGlua3MpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY29udGV4dEhpc3RvcnlD
bGllbnQucG9wdWxhdGVWaXNpdGVkTGlua3ModG9BUEkoY29udGV4dCksIG1fY29udGV4dEhpc3Rv
cnlDbGllbnQuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQucG9wdWxhdGVWaXNpdGVkTGlua3Mo
dG9BUEkoY29udGV4dCksIG1fY2xpZW50LmNsaWVudEluZm8pOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkhpc3RvcnlDbGllbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJIaXN0b3J5Q2xpZW50LmgJKHJldmlzaW9u
IDcxODM0KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSGlzdG9yeUNsaWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFdlYkhpc3RvcnlDbGllbnRfaAogI2Rl
ZmluZSBXZWJIaXN0b3J5Q2xpZW50X2gKIAorI2luY2x1ZGUgIkFQSUNsaWVudC5oIgogI2luY2x1
ZGUgIldLQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKQEAgLTMzLDI0ICsz
NCwxOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGV4dDsKIGNsYXNzIFdl
YkZyYW1lUHJveHk7Ci1zdHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZTsKIGNsYXNzIFdlYlBh
Z2VQcm94eTsKK3N0cnVjdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlOwogCi1jbGFzcyBXZWJIaXN0
b3J5Q2xpZW50IHsKK2NsYXNzIFdlYkhpc3RvcnlDbGllbnQgOiBwdWJsaWMgQVBJQ2xpZW50PFdL
Q29udGV4dEhpc3RvcnlDbGllbnQ+IHsKIHB1YmxpYzoKLSAgICBXZWJIaXN0b3J5Q2xpZW50KCk7
Ci0gICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdLQ29udGV4dEhpc3RvcnlDbGllbnQqKTsKLQog
ICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoV2ViQ29udGV4dCosIFdlYlBh
Z2VQcm94eSosIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJGcmFtZVByb3h5Kik7
CiAgICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoV2ViQ29udGV4dCosIFdlYlBhZ2VQ
cm94eSosIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMLCBXZWJGcmFtZVByb3h5Kik7CiAgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Qo
V2ViQ29udGV4dCosIFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBjb25z
dCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCBXZWJGcmFtZVByb3h5Kik7CiAgICAgdm9pZCBkaWRV
cGRhdGVIaXN0b3J5VGl0bGUoV2ViQ29udGV4dCosIFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBXZWJGcmFtZVByb3h5Kik7CiAgICAgdm9pZCBw
b3B1bGF0ZVZpc2l0ZWRMaW5rcyhXZWJDb250ZXh0Kik7CiAKLSAgICBib29sIHNob3VsZFRyYWNr
VmlzaXRlZExpbmtzKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0SGlzdG9yeUNsaWVudC5wb3B1
bGF0ZVZpc2l0ZWRMaW5rczsgfQotICAgIAotcHJpdmF0ZToKLSAgICBXS0NvbnRleHRIaXN0b3J5
Q2xpZW50IG1fY29udGV4dEhpc3RvcnlDbGllbnQ7CisgICAgYm9vbCBzaG91bGRUcmFja1Zpc2l0
ZWRMaW5rcygpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50LnBvcHVsYXRlVmlzaXRlZExpbmtzOyB9
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA3MTgzNCkKKysrIFdlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NzksNiArNDc5
LDggQEAKIAkJQkNFRTdBRDExMjgxNzk4ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VF
N0FDRDEyODE3OTg4MDA5ODI3REEgLyogV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLzsgfTsK
IAkJQkNFRTdEMEQxMjg0NkY2OTAwOTgyN0RBIC8qIFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRTdE
MEIxMjg0NkY2OTAwOTgyN0RBIC8qIFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OwogCQlCQ0VFN0QwRTEyODQ2RjY5MDA5ODI3REEgLyogV2ViQ29udGV4dE1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VFN0QwQzEyODQ2
RjY5MDA5ODI3REEgLyogV2ViQ29udGV4dE1lc3NhZ2VzLmggKi87IH07CisJCUJDRUU3REM1MTI4
QjY0NUQwMDk4MjdEQSAvKiBJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRTdEQzMxMjhCNjQ1RDAwOTgyN0RBIC8q
IEluamVjdGVkQnVuZGxlQ2xpZW50LmggKi87IH07CisJCUJDRUU3REM2MTI4QjY0NUQwMDk4MjdE
QSAvKiBJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VFN0RDNDEyOEI2NDVEMDA5ODI3REEgLyogSW5qZWN0ZWRC
dW5kbGVDbGllbnQuY3BwICovOyB9OwogCQlCQ0VFOTY2QzExMkZBRjU3MDA2QkNDMjQgLyogQXR0
YWNobWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0VFOTY2QTExMkZBRjU3MDA2QkNDMjQgLyogQXR0YWNobWVudC5jcHAgKi87IH07CiAJCUJD
RUU5NjZEMTEyRkFGNTcwMDZCQ0MyNCAvKiBBdHRhY2htZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VFOTY2QjExMkZBRjU3MDA2QkNDMjQgLyog
QXR0YWNobWVudC5oICovOyB9OwogCQlCQ0VFOThDNjExMzMxNEQ3MDA2QkNDMjQgLyogV2ViUGFn
ZU5hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0VFOThDNDExMzMxNEQ3MDA2QkNDMjQgLyogV2ViUGFnZU5hbWVzcGFjZS5jcHAgKi87
IH07CkBAIC0xMDM5LDYgKzEwNDEsOCBAQAogCQlCQ0VFN0QwOTEyODQ2QUVEMDA5ODI3REEgLyog
V2ViQ29udGV4dC5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJDb250ZXh0
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VFN0QwQjEyODQ2
RjY5MDA5ODI3REEgLyogV2ViQ29udGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFRTdEMEMxMjg0NkY2OTAwOTgyN0RBIC8q
IFdlYkNvbnRleHRNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJDb250ZXh0TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNFRTdE
QzMxMjhCNjQ1RDAwOTgyN0RBIC8qIEluamVjdGVkQnVuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDRUU3REM0MTI4QjY0NUQwMDk4MjdEQSAvKiBJbmplY3RlZEJ1
bmRsZUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmpl
Y3RlZEJ1bmRsZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRUU5
NjZBMTEyRkFGNTcwMDZCQ0MyNCAvKiBBdHRhY2htZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEF0dGFjaG1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQ0VFOTY2QjExMkZBRjU3MDA2QkNDMjQgLyogQXR0YWNobWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdHRhY2htZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRUU5OEM0MTEzMzE0RDcwMDZCQ0MyNCAvKiBXZWJQYWdlTmFtZXNwYWNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBhZ2VOYW1lc3Bh
Y2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgxOSw2ICsxODIzLDggQEAK
IAkJCQlCQzRCRUU5NjEyMEEwOTE3MDBGQkEwQzcgLyogRE9NICovLAogCQkJCUJDMjA0RUUwMTFD
ODNFOTgwMDhGMzM3NSAvKiBJbmplY3RlZEJ1bmRsZS5jcHAgKi8sCiAJCQkJQkMyMDRFRTExMUM4
M0U5ODAwOEYzMzc1IC8qIEluamVjdGVkQnVuZGxlLmggKi8sCisJCQkJQkNFRTdEQzQxMjhCNjQ1
RDAwOTgyN0RBIC8qIEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCAqLywKKwkJCQlCQ0VFN0RDMzEy
OEI2NDVEMDA5ODI3REEgLyogSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLywKIAkJCQk5MzVFRUI4
RjEyNzc2MTVEMDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwICov
LAogCQkJCTkzNUVFQjkwMTI3NzYxNUQwMDMzMjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3
YXJkTGlzdC5oICovLAogCQkJCTkzNUVFQjkxMTI3NzYxNUQwMDMzMjJCOCAvKiBJbmplY3RlZEJ1
bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovLApAQCAtMjM4MSw2ICsyMzg3LDcgQEAKIAkJ
CQk1MTI5MzVFNDEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1l
bnVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjdENzJDMTI4OENBQUQwMENGRDA4QyAv
KiBXZWJEb3dubG9hZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCN0Q3OEQxMjg4Q0Q5
QTAwQ0ZEMDhDIC8qIFdLRG93bmxvYWQuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDRUU3REM1MTI4
QjY0NUQwMDk4MjdEQSAvKiBJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0yNzM0LDYgKzI3NDEsNyBAQAogCQkJCTUxMjkzNUUzMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QUI3RDcyRDEyODhDQUFEMDBDRkQwOEMgLyogV2ViRG93bmxvYWRDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFCN0Q3OEUxMjg4Q0Q5QTAwQ0ZEMDhDIC8qIFdLRG93bmxvYWQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQkNFRTdEQzYxMjhCNjQ1RDAwOTgyN0RBIC8qIEluamVjdGVkQnVu
ZGxlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCShyZXZpc2lvbiA3MTgz
NCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDEwICs2NSw3IEBAIEluamVjdGVkQnVuZGxlOjp+SW5q
ZWN0ZWRCdW5kbGUoKQogCiB2b2lkIEluamVjdGVkQnVuZGxlOjppbml0aWFsaXplQ2xpZW50KFdL
QnVuZGxlQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAgaWYgKGNsaWVudCAmJiAhY2xpZW50LT52ZXJz
aW9uKQotICAgICAgICBtX2NsaWVudCA9ICpjbGllbnQ7Ci0gICAgZWxzZQotICAgICAgICBtZW1z
ZXQoJm1fY2xpZW50LCAwLCBzaXplb2YobV9jbGllbnQpKTsKKyAgICBtX2NsaWVudC5pbml0aWFs
aXplKGNsaWVudCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBvc3RNZXNzYWdlKGNvbnN0
IFN0cmluZyYgbWVzc2FnZU5hbWUsIEFQSU9iamVjdCogbWVzc2FnZUJvZHkpCkBAIC0xODIsMjIg
KzE3OSwzNCBAQCBzaXplX3QgSW5qZWN0ZWRCdW5kbGU6OmphdmFTY3JpcHRPYmplY3RzCiAgICAg
cmV0dXJuIEpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKS0+aGVhcC5vYmplY3RDb3Vu
dCgpOwogfQogCit2b2lkIEluamVjdGVkQnVuZGxlOjpyZXBvcnRFeGNlcHRpb24oSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgZXhjZXB0aW9uKQoreworICAgIGlmICghY29udGV4dCB8
fCAhZXhjZXB0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBKU0xvY2sgbG9jayhKU0M6OlNp
bGVuY2VBc3NlcnRpb25zT25seSk7CisgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWNTdGF0ZSA9IHRv
SlMoY29udGV4dCk7CisKKyAgICAvLyBNYWtlIHN1cmUgdGhlIGNvbnRleHQgaGFzIGEgRE9NV2lu
ZG93IGdsb2JhbCBvYmplY3QsIG90aGVyd2lzZSB0aGlzIGNvbnRleHQgZGlkbid0IG9yaWdpbmF0
ZSBmcm9tIGEgUGFnZS4KKyAgICBpZiAoIXRvSlNET01XaW5kb3coZXhlY1N0YXRlLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCkpKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb3JlOjpyZXBvcnRF
eGNlcHRpb24oZXhlY1N0YXRlLCB0b0pTKGV4ZWNTdGF0ZSwgZXhjZXB0aW9uKSk7Cit9CisKIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OmRpZENyZWF0ZVBhZ2UoV2ViUGFnZSogcGFnZSkKIHsKLSAgICBp
ZiAobV9jbGllbnQuZGlkQ3JlYXRlUGFnZSkKLSAgICAgICAgbV9jbGllbnQuZGlkQ3JlYXRlUGFn
ZSh0b0FQSSh0aGlzKSwgdG9BUEkocGFnZSksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIG1f
Y2xpZW50LmRpZENyZWF0ZVBhZ2UodGhpcywgcGFnZSk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5k
bGU6OndpbGxEZXN0cm95UGFnZShXZWJQYWdlKiBwYWdlKQogewotICAgIGlmIChtX2NsaWVudC53
aWxsRGVzdHJveVBhZ2UpCi0gICAgICAgIG1fY2xpZW50LndpbGxEZXN0cm95UGFnZSh0b0FQSSh0
aGlzKSwgdG9BUEkocGFnZSksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIG1fY2xpZW50Lndp
bGxEZXN0cm95UGFnZSh0aGlzLCBwYWdlKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQVBJT2JqZWN0KiBtZXNz
YWdlQm9keSkKIHsKLSAgICBpZiAobV9jbGllbnQuZGlkUmVjZWl2ZU1lc3NhZ2UpCi0gICAgICAg
IG1fY2xpZW50LmRpZFJlY2VpdmVNZXNzYWdlKHRvQVBJKHRoaXMpLCB0b0FQSShtZXNzYWdlTmFt
ZS5pbXBsKCkpLCB0b0FQSShtZXNzYWdlQm9keSksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAg
IG1fY2xpZW50LmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIG1lc3NhZ2VOYW1lLCBtZXNzYWdlQm9k
eSk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQpAQCAtMjE4LDE5ICsyMjcsNCBAQCB2
b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZShDCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGU6OnJlcG9ydEV4Y2VwdGlvbihKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBleGNlcHRpb24pCi17Ci0gICAgaWYgKCFjb250
ZXh0IHx8ICFleGNlcHRpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIEpTTG9jayBsb2NrKEpT
Qzo6U2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKLSAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlY1N0YXRl
ID0gdG9KUyhjb250ZXh0KTsKLQotICAgIC8vIE1ha2Ugc3VyZSB0aGUgY29udGV4dCBoYXMgYSBE
T01XaW5kb3cgZ2xvYmFsIG9iamVjdCwgb3RoZXJ3aXNlIHRoaXMgY29udGV4dCBkaWRuJ3Qgb3Jp
Z2luYXRlIGZyb20gYSBQYWdlLgotICAgIGlmICghdG9KU0RPTVdpbmRvdyhleGVjU3RhdGUtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdlYkNvcmU6OnJl
cG9ydEV4Y2VwdGlvbihleGVjU3RhdGUsIHRvSlMoZXhlY1N0YXRlLCBleGNlcHRpb24pKTsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAkocmV2aXNpb24gNzE4MzQpCisrKyBX
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBJbmplY3RlZEJ1bmRsZV9oCiAKICNp
bmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUNsaWVudC5oIgog
I2luY2x1ZGUgIldLQnVuZGxlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQ29udGVudFR5cGVz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU2NyaXB0VHlwZXMuaD4KQEAgLTEyMSw3ICsxMjIs
NyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3NhbmRib3hUb2tlbjsKICNlbmRpZgogCi0gICAg
V0tCdW5kbGVDbGllbnQgbV9jbGllbnQ7CisgICAgSW5qZWN0ZWRCdW5kbGVDbGllbnQgbV9jbGll
bnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlQ2xpZW50LmNw
cAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZUNsaWVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIKKworI2luY2x1ZGUgIldL
QnVuZGxlQVBJQ2FzdC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBJbmplY3RlZEJ1
bmRsZUNsaWVudDo6ZGlkQ3JlYXRlUGFnZShJbmplY3RlZEJ1bmRsZSogYnVuZGxlLCBXZWJQYWdl
KiBwYWdlKQoreworICAgIGlmICghbV9jbGllbnQuZGlkQ3JlYXRlUGFnZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9jbGllbnQuZGlkQ3JlYXRlUGFnZSh0b0FQSShidW5kbGUpLCB0b0FQSShw
YWdlKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVDbGll
bnQ6OndpbGxEZXN0cm95UGFnZShJbmplY3RlZEJ1bmRsZSogYnVuZGxlLCBXZWJQYWdlKiBwYWdl
KQoreworICAgIGlmICghbV9jbGllbnQud2lsbERlc3Ryb3lQYWdlKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2NsaWVudC53aWxsRGVzdHJveVBhZ2UodG9BUEkoYnVuZGxlKSwgdG9BUEkocGFn
ZSksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlQ2xpZW50
OjpkaWRSZWNlaXZlTWVzc2FnZShJbmplY3RlZEJ1bmRsZSogYnVuZGxlLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2VOYW1lLCBBUElPYmplY3QqIG1lc3NhZ2VCb2R5KQoreworICAgIGlmICghbV9jbGll
bnQuZGlkUmVjZWl2ZU1lc3NhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LmRp
ZFJlY2VpdmVNZXNzYWdlKHRvQVBJKGJ1bmRsZSksIHRvQVBJKG1lc3NhZ2VOYW1lLmltcGwoKSks
IHRvQVBJKG1lc3NhZ2VCb2R5KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlQ2xpZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVDbGllbnQuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSW5qZWN0ZWRC
dW5kbGVDbGllbnRfaAorI2RlZmluZSBJbmplY3RlZEJ1bmRsZUNsaWVudF9oCisKKyNpbmNsdWRl
ICJBUElDbGllbnQuaCIKKyNpbmNsdWRlICJXS0J1bmRsZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBBUElPYmplY3Q7CitjbGFzcyBJ
bmplY3RlZEJ1bmRsZTsKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIEluamVjdGVkQnVuZGxlQ2xp
ZW50IDogcHVibGljIEFQSUNsaWVudDxXS0J1bmRsZUNsaWVudD4geworcHVibGljOgorICAgIHZv
aWQgZGlkQ3JlYXRlUGFnZShJbmplY3RlZEJ1bmRsZSosIFdlYlBhZ2UqKTsKKyAgICB2b2lkIHdp
bGxEZXN0cm95UGFnZShJbmplY3RlZEJ1bmRsZSosIFdlYlBhZ2UqKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKEluamVjdGVkQnVuZGxlKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwg
QVBJT2JqZWN0KiBtZXNzYWdlQm9keSk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
CisjZW5kaWYgLy8gSW5qZWN0ZWRCdW5kbGVDbGllbnRfaApJbmRleDogV2ViS2l0Mi93aW4vV2Vi
S2l0Mi52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHJl
dmlzaW9uIDcxODM0KQorKysgV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTEzMjgsNiArMTMyOCwxNCBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZp
bGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxJbmpl
Y3RlZEJ1bmRsZUNsaWVudC5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUN
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxJbmplY3Rl
ZEJ1bmRsZUNsaWVudC5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcSW5qZWN0ZWRCdW5k
bGVCYWNrRm9yd2FyZExpc3QuY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQo=
</data>
<flag name="review"
          id="64128"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>