<?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>125020</bug_id>
          
          <creation_ts>2013-11-29 13:15:46 -0800</creation_ts>
          <short_desc>[Cocoa] Add a way to recover from load errors</short_desc>
          <delta_ts>2013-11-29 15:18:38 -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>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>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>955023</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2013-11-29 13:15:46 -0800</bug_when>
    <thetext>[Cocoa] Add a way to recover from load errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955024</commentid>
    <comment_count>1</comment_count>
      <attachid>218079</attachid>
    <who name="">mitz</who>
    <bug_when>2013-11-29 13:25:59 -0800</bug_when>
    <thetext>Created attachment 218079
Define WKErrorRecoveryAttempting and include an object conforming to it in the user info dictionary of load errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955027</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2013-11-29 15:18:38 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r159876&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218079</attachid>
            <date>2013-11-29 13:25:59 -0800</date>
            <delta_ts>2013-11-29 13:43:25 -0800</delta_ts>
            <desc>Define WKErrorRecoveryAttempting and include an object conforming to it in the user info dictionary of load errors</desc>
            <filename>bug-125020-20131129132608.patch</filename>
            <type>text/plain</type>
            <size>18910</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTg3NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDEzLTExLTI5ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgYSB3YXkgdG8g
cmVjb3ZlciBmcm9tIGxvYWQgZXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjUwMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyLm1tOgorICAgICAgICAoY3JlYXRlRXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIp
OiBBZGRlZCB0aGlzIGhlbHBlciBmdW5jdGlvbi4gSXQgY3JlYXRlcyBhbiBOU0Vycm9yIGZyb20K
KyAgICAgICAgdGhlIGdpdmVuIGVycm9yLCBhZGRpbmcgdHdvIGtleXMgdG8gdGhlIHVzZXIgaW5m
byBkaWN0aW9uYXJ5OiB0aGUgY29udGV4dCBjb250cm9sbGVyIHVuZGVyCisgICAgICAgIHRoZSBy
ZWNvdmVyeSBhdHRlbXB0ZXIga2V5LCBhbmQgdGhlIGZyYW1lIHVuZGVyIGEgcHJpdmF0ZSBrZXku
CisgICAgICAgIChkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOiBDaGFu
Z2VkIHRvIHVzZSBjcmVhdGVFcnJvcldpdGhSZWNvdmVyeUF0dGVtcHRlci4KKyAgICAgICAgKGRp
ZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOiBEaXR0by4KKyAgICAgICAgKC1bV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyIGF0dGVtcHRSZWNvdmVyeUZyb21FcnJvcjpdKTogSW1wbGVtZW50
ZWQgdGhpcworICAgICAgICBXS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nIHByb3RvY29sIG1ldGhv
ZCBieSBsb2FkaW5nIHRoZSBmYWlsaW5nIFVSTCBmcm9tIHRoZSBlcnJvciBpbnRvIHRoZQorICAg
ICAgICBmcmFtZSBmcm9tIHRoZSBlcnJvci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZy5oOiBBZGRlZC4gRGVmaW5lcyBhIHByb3RvY29s
IGZvciBhdHRlbXB0aW5nCisgICAgICAgIHJlY292ZXJ5IGZyb20gZXJyb3JzIGFuZCBkZWNsYXJl
cyB0aGUgZXJyb3IgdXNlciBpbmZvIGRpY3Rpb25hcnkga2V5IHVuZGVyIHdoaWNoIGFuIG9iamVj
dAorICAgICAgICBjb25mb3JtaW5nIHRvIHRoaXMgcHJvdG9jb2wgbWF5IGJlIHN0b3JlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcubTog
QWRkZWQuIERlZmluZXMKKyAgICAgICAgV0tSZWNvdmVyeUF0dGVtcHRlckVycm9yS2V5LgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZVByb3h5Ojpsb2FkVVJMKTogQWRkZWQuIFNlbmRzIHRoZSBMb2FkVVJMSW5GcmFtZSBt
ZXNzYWdlIHRvIHRoZSBwYWdlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5Lmg6
CisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIHJl
ZmVyZW5jZXMgdG8gbmV3IGZpbGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZSk6IEFk
ZGVkLiBMb2FkcyB0aGUgVVJMIGluIHRoZSBnaXZlbiBmcmFtZS4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluOiBBZGRlZCBMb2FkVVJMSW5GcmFtZS4KKwogMjAxMy0xMS0yOSAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gRXhwb3NlIGxv
YWRBbHRlcm5hdGVIVE1MU3RyaW5nIHZpYSB0aGUgQVBJCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCShyZXZpc2lvbiAxNTk4NzQpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcz
LDYgKzczLDE0IEBAIGJvb2wgV2ViRnJhbWVQcm94eTo6aXNNYWluRnJhbWUoKSBjb25zdAogICAg
IHJldHVybiB0aGlzID09IG1fcGFnZS0+bWFpbkZyYW1lKCk7CiB9CiAKK3ZvaWQgV2ViRnJhbWVQ
cm94eTo6bG9hZFVSTChjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9wYWdlLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OkxvYWRVUkxJbkZyYW1lKHVybCwgbV9mcmFtZUlEKSwgbV9wYWdlLT5wYWdlSUQoKSk7
Cit9CisKIHZvaWQgV2ViRnJhbWVQcm94eTo6c3RvcExvYWRpbmcoKSBjb25zdAogewogICAgIGlm
ICghbV9wYWdlKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5o
CShyZXZpc2lvbiAxNTk4NzQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MSw2ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIEZy
YW1lTG9hZFN0YXRlJiBmcmFtZUxvYWRTdGF0ZSgpIHsgcmV0dXJuIG1fZnJhbWVMb2FkU3RhdGU7
IH0KIAorICAgIHZvaWQgbG9hZFVSTChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHN0b3BMb2Fk
aW5nKCkgY29uc3Q7CiAKICAgICBjb25zdCBTdHJpbmcmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZnJhbWVMb2FkU3RhdGUubV91cmw7IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9s
bGVyLm1tCShyZXZpc2lvbiAxNTk4NzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAt
MzIsOSArMzIsMTEgQEAKICNpbXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaCIKICNp
bXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SXRlbUludGVybmFsLmgiCiAjaW1wb3J0ICJXS0Vycm9y
Q0YuaCIKKyNpbXBvcnQgIldLRXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcuaCIKICNpbXBvcnQgIldL
RnJhbWUuaCIKICNpbXBvcnQgIldLRnJhbWVQb2xpY3lMaXN0ZW5lci5oIgogI2ltcG9ydCAiV0tO
U0FycmF5LmgiCisjaW1wb3J0ICJXS05TRXJyb3IuaCIKICNpbXBvcnQgIldLTlNVUkxFeHRyYXMu
aCIKICNpbXBvcnQgIldLUGFnZVByaXZhdGUuaCIKICNpbXBvcnQgIldLUmV0YWluUHRyLmgiCkBA
IC0xMDEsNiArMTAzLDExIEBAIE5TU3RyaW5nICogY29uc3QgV0tBY3Rpb25GcmFtZU5hbWVLZXkg
PSAKIE5TU3RyaW5nICogY29uc3QgV0tBY3Rpb25PcmlnaW5hdGluZ0ZyYW1lVVJMS2V5ID0gQCJX
S0FjdGlvbk9yaWdpbmF0aW5nRnJhbWVVUkxLZXkiOwogTlNTdHJpbmcgKiBjb25zdCBXS0FjdGlv
bkNhblNob3dNSU1FVHlwZUtleSA9IEAiV0tBY3Rpb25DYW5TaG93TUlNRVR5cGVLZXkiOwogCitz
dGF0aWMgTlNTdHJpbmcgKiBjb25zdCBmcmFtZUVycm9yS2V5ID0gQCJXS0Jyb3dzaW5nQ29udGV4
dEZyYW1lRXJyb3JLZXkiOworCitAaW50ZXJmYWNlIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ciAoKSA8V0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZz4KK0BlbmQKKwogQGltcGxlbWVudGF0aW9u
IFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciB7CiAgICAgLy8gVW5kZXJseWluZyBXS1BhZ2VS
ZWYuCiAgICAgV0tSZXRhaW5QdHI8V0tQYWdlUmVmPiBfcGFnZVJlZjsKQEAgLTM3Myw2ICszODAs
MjAgQEAgLSAodm9pZClzZXRQYWdlWm9vbTooQ0dGbG9hdClwYWdlWm9vbQogICAgIHJldHVybiBX
S1BhZ2VTZXRQYWdlWm9vbUZhY3RvcihfcGFnZVJlZi5nZXQoKSwgcGFnZVpvb20pOwogfQogCitz
dGF0aWMgTlNFcnJvciAqY3JlYXRlRXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIoV0tFcnJvclJl
ZiB3a0Vycm9yLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIg
KmJyb3dzaW5nQ29udGV4dCkKK3sKKyAgICBOU0Vycm9yICplcnJvciA9IHdyYXBwZXIoKnRvSW1w
bCh3a0Vycm9yKSk7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbTlNNdXRh
YmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOgorICAgICAgICBicm93
c2luZ0NvbnRleHQsIFdLUmVjb3ZlcnlBdHRlbXB0ZXJFcnJvcktleSwKKyAgICAgICAgdG9JbXBs
KGZyYW1lKS0+d3JhcHBlcigpLCBmcmFtZUVycm9yS2V5LAorICAgIG5pbF07CisKKyAgICBpZiAo
TlNEaWN0aW9uYXJ5ICpvcmlnaW5hbFVzZXJJbmZvID0gZXJyb3IudXNlckluZm8pCisgICAgICAg
IFt1c2VySW5mbyBhZGRFbnRyaWVzRnJvbURpY3Rpb25hcnk6b3JpZ2luYWxVc2VySW5mb107CisK
KyAgICByZXR1cm4gW1tOU0Vycm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjplcnJvci5kb21haW4g
Y29kZTplcnJvci5jb2RlIHVzZXJJbmZvOnVzZXJJbmZvXTsKK30KKwogc3RhdGljIHZvaWQgZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKQEAgLTQwMCw4ICs0MjEsOCBAQCBzdGF0
aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVyCiAKICAgICBXS0Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCA9IChXS0Jyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXIgKiljbGllbnRJbmZvOwogICAgIGlmIChbYnJvd3NpbmdDb250ZXh0LmxvYWREZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJE
aWRGYWlsUHJvdmlzaW9uYWxMb2FkOndpdGhFcnJvcjopXSkgewotICAgICAgICBSZXRhaW5QdHI8
Q0ZFcnJvclJlZj4gY2ZFcnJvciA9IGFkb3B0Q0YoV0tFcnJvckNvcHlDRkVycm9yKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGVycm9yKSk7Ci0gICAgICAgIFticm93c2luZ0NvbnRleHQubG9hZERlbGVn
YXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRGYWlsUHJvdmlzaW9uYWxMb2FkOmJyb3dz
aW5nQ29udGV4dCB3aXRoRXJyb3I6KE5TRXJyb3IgKiljZkVycm9yLmdldCgpXTsKKyAgICAgICAg
UmV0YWluUHRyPE5TRXJyb3I+IG5zRXJyb3IgPSBhZG9wdE5TKGNyZWF0ZUVycm9yV2l0aFJlY292
ZXJ5QXR0ZW1wdGVyKGVycm9yLCBmcmFtZSwgYnJvd3NpbmdDb250ZXh0KSk7CisgICAgICAgIFti
cm93c2luZ0NvbnRleHQubG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRG
YWlsUHJvdmlzaW9uYWxMb2FkOmJyb3dzaW5nQ29udGV4dCB3aXRoRXJyb3I6bnNFcnJvci5nZXQo
KV07CiAgICAgfQogfQogCkBAIC00MzIsOCArNDUzLDggQEAgc3RhdGljIHZvaWQgZGlkRmFpbExv
YWRXaXRoRXJyb3JGb3JGcmFtZQogCiAgICAgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpi
cm93c2luZ0NvbnRleHQgPSAoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5m
bzsKICAgICBpZiAoW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkRmFpbExvYWQ6d2l0aEVy
cm9yOildKSB7Ci0gICAgICAgIFJldGFpblB0cjxDRkVycm9yUmVmPiBjZkVycm9yID0gYWRvcHRD
RihXS0Vycm9yQ29weUNGRXJyb3Ioa0NGQWxsb2NhdG9yRGVmYXVsdCwgZXJyb3IpKTsKLSAgICAg
ICAgW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ckRpZEZhaWxMb2FkOmJyb3dzaW5nQ29udGV4dCB3aXRoRXJyb3I6KE5TRXJyb3IgKiljZkVycm9y
LmdldCgpXTsKKyAgICAgICAgUmV0YWluUHRyPE5TRXJyb3I+IG5zRXJyb3IgPSBhZG9wdE5TKGNy
ZWF0ZUVycm9yV2l0aFJlY292ZXJ5QXR0ZW1wdGVyKGVycm9yLCBmcmFtZSwgYnJvd3NpbmdDb250
ZXh0KSk7CisgICAgICAgIFticm93c2luZ0NvbnRleHQubG9hZERlbGVnYXRlIGJyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXJEaWRGYWlsTG9hZDpicm93c2luZ0NvbnRleHQgd2l0aEVycm9yOm5zRXJy
b3IuZ2V0KCldOwogICAgIH0KIH0KIApAQCAtNjEwLDcgKzYzMSwzMCBAQCArIChOU011dGFibGVT
ZXQgKiljdXN0b21TY2hlbWVzCiAgICAgc3RhdGljIE5TTXV0YWJsZVNldCAqY3VzdG9tU2NoZW1l
cyA9IFtbTlNNdXRhYmxlU2V0IGFsbG9jXSBpbml0XTsKICAgICByZXR1cm4gY3VzdG9tU2NoZW1l
czsKIH0KLSAKKworI3ByYWdtYSBtYXJrIFdLRXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcKKworLSAo
Qk9PTClhdHRlbXB0UmVjb3ZlcnlGcm9tRXJyb3I6KE5TRXJyb3IgKillcnJvcgoreworICAgIE5T
RGljdGlvbmFyeSAqdXNlckluZm8gPSBlcnJvci51c2VySW5mbzsKKworICAgIE5TU3RyaW5nICpm
YWlsaW5nVVJMU3RyaW5nID0gdXNlckluZm9bTlNVUkxFcnJvckZhaWxpbmdVUkxTdHJpbmdFcnJv
cktleV07CisgICAgaWYgKCFmYWlsaW5nVVJMU3RyaW5nKQorICAgICAgICByZXR1cm4gTk87CisK
KyAgICBOU09iamVjdCA8V0tPYmplY3Q+ICpmcmFtZSA9IHVzZXJJbmZvW2ZyYW1lRXJyb3JLZXld
OworICAgIGlmICghW2ZyYW1lIGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9jb2woV0tPYmplY3Qp
XSkKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgaWYgKGZyYW1lLl9hcGlPYmplY3QudHlwZSgp
ICE9IEFQSTo6T2JqZWN0OjpUeXBlOjpGcmFtZSkKKyAgICAgICAgcmV0dXJuIE5POworCisgICAg
V2ViRnJhbWVQcm94eSYgd2ViRnJhbWUgPSAqc3RhdGljX2Nhc3Q8V2ViRnJhbWVQcm94eSo+KCZm
cmFtZS5fYXBpT2JqZWN0KTsKKyAgICB3ZWJGcmFtZS5sb2FkVVJMKGZhaWxpbmdVUkxTdHJpbmcp
OworCisgICAgcmV0dXJuIFlFUzsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyIChQcml2YXRlKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yUmVjb3ZlcnlBdHRl
bXB0aW5nLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViS2l0Mi9XS0ZvdW5kYXRpb24uaD4KKwor
I2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgor
I2ltcG9ydCA8V2ViS2l0Mi9XS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oPgorCitXS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgV0tSZWNvdmVyeUF0dGVtcHRlckVycm9yS2V5OworCitA
cHJvdG9jb2wgV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZyA8TlNPYmplY3Q+CisKKy0gKEJPT0wp
YXR0ZW1wdFJlY292ZXJ5RnJvbUVycm9yOihOU0Vycm9yICopZXJyb3I7CisKK0BlbmQKKworI2Vu
ZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLRXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcubQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcubQko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJv
clJlY292ZXJ5QXR0ZW1wdGluZy5tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLRXJyb3JSZWNvdmVyeUF0
dGVtcHRpbmcuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKK05TU3RyaW5nICogY29uc3QgV0tS
ZWNvdmVyeUF0dGVtcHRlckVycm9yS2V5ID0gQCJXS1JlY292ZXJ5QXR0ZW1wdGVyRXJyb3JLZXki
OworCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE1OTg3NCkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtNDUzLDYgKzQ1Myw4IEBACiAJCTM3QzRDMDk0MTgxNEIzQUYwMDM2ODhCOSAv
KiBXS05TQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDM3QzRDMDkyMTgxNEIzQUYwMDM2ODhCOSAvKiBXS05TQXJyYXkuaCAqLzsgfTsKIAkJMzdD
NEMwOTUxODE0QjlFNjAwMzY4OEI5IC8qIFdLQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QzRDMDhFMTgxNEFG
M0EwMDM2ODhCOSAvKiBXS0JhY2tGb3J3YXJkTGlzdEludGVybmFsLmggKi87IH07CiAJCTM3QzRF
OUY2MTMxQzZFN0UwMDI5QkQ1QSAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOTZFQTU1MTJFMEVEMkQwMEY0RkVCNyAvKiBjb25maWcu
aCAqLzsgfTsKKwkJMzdEMEI1QzYxODQ1MjE4NDAwRjZDRTdEIC8qIFdLRXJyb3JSZWNvdmVyeUF0
dGVtcHRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDM3RDBCNUM1MTg0NTIxODQwMEY2Q0U3RCAvKiBXS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQkzN0QwQjVD
ODE4NDUyMzI3MDBGNkNFN0QgLyogV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZy5tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdEMEI1QzcxODQ1MjMyNzAw
RjZDRTdEIC8qIFdLRXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcubSAqLzsgfTsKIAkJMzdERkE3MDAx
ODEwQkI5MjAwMUY0QTlGIC8qIFdLRm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdERkE2RkYxODEwQkI5MjAwMUY0QTlGIC8qIFdLRm91
bmRhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsK
IAkJMzdGNjIzQjgxMkE1N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RjYyM0I3MTJBNTdCNjIwMEUz
RkRGNiAvKiBXS0ZpbmRPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMzdGOTBERTMxMzc2NTYwRTAwNTFDRjY4IC8qIEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY2Mzg5NTRGMTMzQkVGMzgwMDg5NDFENSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5Lmgg
Ki87IH07CkBAIC0xOTc3LDYgKzE5NzksOCBAQAogCQkzN0M0QzA4RTE4MTRBRjNBMDAzNjg4Qjkg
LyogV0tCYWNrRm9yd2FyZExpc3RJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS0JhY2tGb3J3YXJkTGlzdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTM3QzRDMDkxMTgxNEIzQUYwMDM2ODhCOSAvKiBXS05TQXJyYXkubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS05TQXJyYXkubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3QzRDMDkyMTgxNEIzQUYwMDM2ODhCOSAvKiBXS05TQXJy
YXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOU0FycmF5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM3RDBCNUM1MTg0NTIxODQwMEY2Q0U3RCAvKiBXS0Vy
cm9yUmVjb3ZlcnlBdHRlbXB0aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLRXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzdEMEI1QzcxODQ1MjMyNzAwRjZDRTdEIC8qIFdLRXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcu
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gV0tFcnJvclJlY292ZXJ5QXR0
ZW1wdGluZy5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzN0RGQTZGRjE4MTBCQjky
MDAxRjRBOUYgLyogV0tGb3VuZGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLRm91bmRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzN0Y2MjNC
NzEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0ZpbmRPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTNGODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM3NTgsNiArMzc2Miw4IEBACiAJCQkJQkNBMjg0
RDUxNDkyRjJDNzAwMUY5MDQyIC8qIFdLQ29ubmVjdGlvbi5oICovLAogCQkJCUJDQTI4NEQ0MTQ5
MkYyQzcwMDFGOTA0MiAvKiBXS0Nvbm5lY3Rpb24ubW0gKi8sCiAJCQkJQkM1Qzc1QzYxNDk1NERB
NjAwQkM0Nzc1IC8qIFdLQ29ubmVjdGlvbkludGVybmFsLmggKi8sCisJCQkJMzdEMEI1QzUxODQ1
MjE4NDAwRjZDRTdEIC8qIFdLRXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcuaCAqLywKKwkJCQkzN0Qw
QjVDNzE4NDUyMzI3MDBGNkNFN0QgLyogV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZy5tICovLAog
CQkJCTM3MEYzNEExMTgyOUJFMUUwMDkwMjdDOCAvKiBXS05hdmlnYXRpb25EYXRhLmggKi8sCiAJ
CQkJMzcwRjM0QTAxODI5QkUxRTAwOTAyN0M4IC8qIFdLTmF2aWdhdGlvbkRhdGEubW0gKi8sCiAJ
CQkJMzcwRjM0QTQxODI5QkVBMzAwOTAyN0M4IC8qIFdLTmF2aWdhdGlvbkRhdGFJbnRlcm5hbC5o
ICovLApAQCAtNTkyNyw2ICs1OTMzLDcgQEAKIAkJCQk1MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIg
LyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDNCOTQ4
NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRjYzNDQ0NTYxMkE4ODVDODAwMDYxMkQ4IC8qIFdlYlNlY3VyaXR5T3JpZ2luLmggaW4g
SGVhZGVycyAqLywKKwkJCQkzN0QwQjVDNjE4NDUyMTg0MDBGNkNFN0QgLyogV0tFcnJvclJlY292
ZXJ5QXR0ZW1wdGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDNTcxNUIxMTVBREFFRjAwMUND
QUY5IC8qIFdlYlN5c3RlbUludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1OTRBQkIx
MTJBMUZCNjAwOURFN0M3IC8qIFdlYlVJQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Ew
RUY3RjEyMzMxRTc4MDA3RDNDRkIgLyogV2ViVW5kb1N0ZXAuaCBpbiBIZWFkZXJzICovLApAQCAt
NjkyNSw2ICs2OTMyLDcgQEAKIAkJCQlDRDY3RDMwRTE1QzA4RjlBMDA4NDNBREYgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTFFRTUzRTcxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNs
aWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzE0RTEwOTEyMEI5MDVFMDA4MjZDMEMgLyog
SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzN0Qw
QjVDODE4NDUyMzI3MDBGNkNFN0QgLyogV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZy5tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQ0Q1QzY2QTAxMzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxl
UGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU1NDIyQ0IxODA2
NTAwMjAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDQThDNkE4MTFFM0JBNUYwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJD
bGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAxNTk4NzQpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1
Myw2ICs4NTMsMTUgQEAgdm9pZCBXZWJQYWdlOjpsb2FkVVJMKGNvbnN0IFN0cmluZyYgdXJsLAog
ICAgIGxvYWRVUkxSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChVUkwoVVJMKCksIHVybCkpLCBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlLCBkZWNvZGVyKTsKIH0KIAordm9pZCBXZWJQYWdlOjpsb2FkVVJM
SW5GcmFtZShjb25zdCBTdHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCkKK3sKKyAgICBXZWJG
cmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS53ZWJGcmFtZShmcmFtZUlEKTsKKyAg
ICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBmcmFtZS0+Y29yZUZyYW1lKCkt
PmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+Y29yZUZyYW1lKCksIFJlc291
cmNlUmVxdWVzdChVUkwoVVJMKCksIHVybCkpKSk7Cit9CisKIHZvaWQgV2ViUGFnZTo6bG9hZFVS
TFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciBzdG9w
cGVyKHRoaXMpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCShyZXZpc2lvbiAxNTk4NzQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MzgsNiArNzM4LDggQEAgcHJpdmF0
ZToKICAgICBzdGF0aWMgYm9vbCBzY3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9s
bERpcmVjdGlvbiwgV2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJpdHkpOwogICAgIHN0YXRpYyBib29s
IGxvZ2ljYWxTY3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbExvZ2ljYWxEaXJl
Y3Rpb24sIFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5KTsKIAorICAgIHZvaWQgbG9hZFVSTElu
RnJhbWUoY29uc3QgU3RyaW5nJiwgdWludDY0X3QgZnJhbWVJRCk7CisKICAgICB1aW50NjRfdCBy
ZXN0b3JlU2Vzc2lvbihjb25zdCBTZXNzaW9uU3RhdGUmKTsKICAgICB2b2lkIHJlc3RvcmVTZXNz
aW9uQW5kTmF2aWdhdGVUb0N1cnJlbnRJdGVtKGNvbnN0IFNlc3Npb25TdGF0ZSYpOwogCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgkocmV2aXNpb24gMTU5ODc0KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcy
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgVHJ5UmVzdG9y
ZVNjcm9sbFBvc2l0aW9uKCkKIAogICAgIExvYWRVUkwoV1RGOjpTdHJpbmcgdXJsLCBXZWJLaXQ6
OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBXZWJLaXQ6
OldlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCisgICAgTG9h
ZFVSTEluRnJhbWUoV1RGOjpTdHJpbmcgdXJsLCB1aW50NjRfdCBmcmFtZUlEKQogICAgIExvYWRV
UkxSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBXZWJLaXQ6OldlYkNv
bnRleHRVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCiAgICAgTG9hZERhdGEo
Q29yZUlQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBXVEY6OlN0cmluZyBNSU1FVHlwZSwgV1RGOjpT
dHJpbmcgZW5jb2RpbmcsIFdURjo6U3RyaW5nIGJhc2VVUkwsIFdlYktpdDo6V2ViQ29udGV4dFVz
ZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFkaWMKICAgICBMb2FkSFRNTFN0cmluZyhX
VEY6OlN0cmluZyBodG1sU3RyaW5nLCBXVEY6OlN0cmluZyBiYXNlVVJMLCBXZWJLaXQ6OldlYkNv
bnRleHRVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCg==
</data>
<flag name="review"
          id="241394"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>