<?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>95510</bug_id>
          
          <creation_ts>2012-08-30 16:34:28 -0700</creation_ts>
          <short_desc>Remove uses of ClassInfo from SpeculativeJIT::compileObjectOrOtherLogicalNot</short_desc>
          <delta_ts>2012-09-04 11:46:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>709140</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-08-30 16:34:28 -0700</bug_when>
    <thetext>More refactoring to get rid of ClassInfo checks in the DFG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709316</commentid>
    <comment_count>1</comment_count>
      <attachid>161620</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-08-30 22:35:16 -0700</bug_when>
    <thetext>Created attachment 161620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710088</commentid>
    <comment_count>2</comment_count>
      <attachid>161796</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-08-31 17:26:13 -0700</bug_when>
    <thetext>Created attachment 161796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711302</commentid>
    <comment_count>3</comment_count>
      <attachid>161796</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-04 11:46:00 -0700</bug_when>
    <thetext>Comment on attachment 161796
Patch

Clearing flags on attachment: 161796

Committed r127479: &lt;http://trac.webkit.org/changeset/127479&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711303</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-04 11:46:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161620</attachid>
            <date>2012-08-30 22:35:16 -0700</date>
            <delta_ts>2012-08-31 17:26:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95510-20120830223505.patch</filename>
            <type>text/plain</type>
            <size>14353</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI3MjMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDEyLTA4LTMwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIHVzZXMgb2YgQ2xhc3NJbmZvIGZyb20gU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVPYmplY3RPck90aGVyTG9naWNhbE5vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU1MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNb3JlIHJlZmFjdG9yaW5nIHRvIGdldCByaWQgb2YgQ2xhc3NJ
bmZvIGNoZWNrcyBpbiB0aGUgREZHLgorCisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5
cGUuaDoKKyAgICAgICAgKEpTQzo6aXNDZWxsT3JPdGhlclNwZWN1bGF0aW9uKToKKyAgICAgICAg
KEpTQyk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwOgorICAgICAgICAoSlND
OjpERkc6OkFic3RyYWN0U3RhdGU6OmV4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6
CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRlQ2VsbE9yT3RoZXIpOgor
ICAgICAgICAoTm9kZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAg
ICAgIChTcGVjdWxhdGl2ZUpJVCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTm9uU3Ry
aW5nQ2VsbE9yT3RoZXJMb2dpY2FsTm90KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUxvZ2ljYWxOb3QpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5vblN0
cmluZ0NlbGxPck90aGVyTG9naWNhbE5vdCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVMb2dpY2FsTm90KToKKwogMjAxMi0wOC0zMCAgRmlsaXAgUGl6bG8gIDxm
cGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMVVJFIGluIEpTQzo6SlNH
bG9iYWxEYXRhOjpmbG9hdDMyQXJyYXlEZXNjcmlwdG9yIHdoZW4gcnVubmluZyBmYXN0L2pzL2Rm
Zy1mbG9hdDY0YXJyYXkuaHRtbApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1NwZWN1bGF0ZWRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgJKHJldmlzaW9uIDEyNzE4OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05
Miw2ICs5MiwxMSBAQCBpbmxpbmUgYm9vbCBpc05vblN0cmluZ0NlbGxPck90aGVyU3BlY3VsCiAg
ICAgcmV0dXJuICEhKHZhbHVlICYgKChTcGVjQ2VsbCAmIH5TcGVjU3RyaW5nKSB8IFNwZWNPdGhl
cikpICYmICEodmFsdWUgJiB+KChTcGVjQ2VsbCAmIH5TcGVjU3RyaW5nKSB8IFNwZWNPdGhlcikp
OwogfQogCitpbmxpbmUgYm9vbCBpc0NlbGxPck90aGVyU3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5
cGUgdmFsdWUpCit7CisgICAgcmV0dXJuICEhKHZhbHVlICYgKFNwZWNDZWxsIHwgU3BlY090aGVy
KSkgJiYgISh2YWx1ZSAmIH4oU3BlY0NlbGwgfCBTcGVjT3RoZXIpKTsKK30KKwogaW5saW5lIGJv
b2wgaXNPYmplY3RTcGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKIHsKICAgICByZXR1
cm4gISEodmFsdWUgJiBTcGVjT2JqZWN0TWFzaykgJiYgISh2YWx1ZSAmIH5TcGVjT2JqZWN0TWFz
ayk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0
ZS5jcHAJKHJldmlzaW9uIDEyNzE4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwOCwxNCArNjA4LDkgQEAgYm9v
bCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZAogICAgICAgICBOb2RlJiBjaGls
ZCA9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV07CiAgICAgICAgIGlmIChpc0Jvb2xlYW5TcGVjdWxh
dGlvbihjaGlsZC5wcmVkaWN0aW9uKCkpKQogICAgICAgICAgICAgc3BlY3VsYXRlQm9vbGVhblVu
YXJ5KG5vZGUpOwotICAgICAgICBlbHNlIGlmIChjaGlsZC5zaG91bGRTcGVjdWxhdGVGaW5hbE9i
amVjdE9yT3RoZXIoKSkgewotICAgICAgICAgICAgbm9kZS5zZXRDYW5FeGl0KAotICAgICAgICAg
ICAgICAgICFpc0ZpbmFsT2JqZWN0T3JPdGhlclNwZWN1bGF0aW9uKGZvck5vZGUobm9kZS5jaGls
ZDEoKSkubV90eXBlKSk7Ci0gICAgICAgICAgICBmb3JOb2RlKG5vZGUuY2hpbGQxKCkpLmZpbHRl
cihTcGVjRmluYWxPYmplY3QgfCBTcGVjT3RoZXIpOwotICAgICAgICB9IGVsc2UgaWYgKGNoaWxk
LnNob3VsZFNwZWN1bGF0ZUFycmF5T3JPdGhlcigpKSB7Ci0gICAgICAgICAgICBub2RlLnNldENh
bkV4aXQoCi0gICAgICAgICAgICAgICAgIWlzQXJyYXlPck90aGVyU3BlY3VsYXRpb24oZm9yTm9k
ZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKTsKLSAgICAgICAgICAgIGZvck5vZGUobm9kZS5jaGls
ZDEoKSkuZmlsdGVyKFNwZWNBcnJheSB8IFNwZWNPdGhlcik7CisgICAgICAgIGVsc2UgaWYgKGNo
aWxkLnNob3VsZFNwZWN1bGF0ZU5vblN0cmluZ0NlbGxPck90aGVyKCkpIHsKKyAgICAgICAgICAg
IG5vZGUuc2V0Q2FuRXhpdCh0cnVlKTsKKyAgICAgICAgICAgIGZvck5vZGUobm9kZS5jaGlsZDEo
KSkuZmlsdGVyKChTcGVjQ2VsbCAmIH5TcGVjU3RyaW5nKSB8IFNwZWNPdGhlcik7CiAgICAgICAg
IH0gZWxzZSBpZiAoY2hpbGQuc2hvdWxkU3BlY3VsYXRlSW50ZWdlcigpKQogICAgICAgICAgICAg
c3BlY3VsYXRlSW50MzJVbmFyeShub2RlKTsKICAgICAgICAgZWxzZSBpZiAoY2hpbGQuc2hvdWxk
U3BlY3VsYXRlTnVtYmVyKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAko
cmV2aXNpb24gMTI3MTg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEwMTIsNiArMTAxMiwxMSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAg
ICAgIHJldHVybiBpc0NlbGxTcGVjdWxhdGlvbihwcmVkaWN0aW9uKCkpOwogICAgIH0KICAgICAK
KyAgICBib29sIHNob3VsZFNwZWN1bGF0ZUNlbGxPck90aGVyKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBpc0NlbGxPck90aGVyU3BlY3VsYXRpb24ocHJlZGljdGlvbigpKTsKKyAgICB9CisKICAg
ICBzdGF0aWMgYm9vbCBzaG91bGRTcGVjdWxhdGVJbnRlZ2VyKE5vZGUmIG9wMSwgTm9kZSYgb3Ay
KQogICAgIHsKICAgICAgICAgcmV0dXJuIG9wMS5zaG91bGRTcGVjdWxhdGVJbnRlZ2VyKCkgJiYg
b3AyLnNob3VsZFNwZWN1bGF0ZUludGVnZXIoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMTI3
MTg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc5MSw3ICsxNzkxLDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKE5vZAogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0VGFnLmdw
cigpLCByZXN1bHRQYXlsb2FkLmdwcigpLCBtX2NvbXBpbGVJbmRleCk7CiB9CiAKLXZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RPck90aGVyTG9naWNhbE5vdChFZGdlIG5vZGVVc2Us
IGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvLCBib29sIG5lZWRTcGVjdWxhdGlvbkNoZWNrKQor
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5vblN0cmluZ0NlbGxPck90aGVyTG9naWNhbE5v
dChFZGdlIG5vZGVVc2UsIGJvb2wgbmVlZFNwZWN1bGF0aW9uQ2hlY2spCiB7CiAgICAgSlNWYWx1
ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZVVzZSk7CiAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFBh
eWxvYWQodGhpcyk7CkBAIC0xODAwLDggKzE4MDAsNDAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZU9iamVjdE9yT3RoZQogICAgIEdQUlJlZyByZXN1bHRQYXlsb2FkR1BSID0gcmVzdWx0
UGF5bG9hZC5ncHIoKTsKICAgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RDZWxsID0g
bV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCB2YWx1ZVRhZ0dQUiwgVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKLSAgICBpZiAobmVlZFNwZWN1bGF0aW9uQ2hl
Y2spCi0gICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3ModmFsdWVU
YWdHUFIsIHZhbHVlUGF5bG9hZEdQUiksIG5vZGVVc2UsIG1faml0LmJyYW5jaFB0cihNYWNyb0Fz
c2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHZhbHVlUGF5bG9hZEdQ
UiwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKGNsYXNzSW5mbykpKTsKKyAgICBpZiAobV9qaXQuZ3JhcGgoKS5nbG9iYWxPYmplY3RGb3Io
bV9qaXQuZ3JhcGgoKVtub2RlVXNlLmluZGV4KCldLmNvZGVPcmlnaW4pLT5tYXNxdWVyYWRlc0Fz
VW5kZWZpbmVkV2F0Y2hwb2ludCgpLT5pc1N0aWxsVmFsaWQoKSkgeworICAgICAgICBtX2ppdC5n
cmFwaCgpLmdsb2JhbE9iamVjdEZvcihtX2ppdC5ncmFwaCgpW25vZGVVc2UuaW5kZXgoKV0uY29k
ZU9yaWdpbiktPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KCktPmFkZChzcGVjdWxh
dGlvbldhdGNocG9pbnQoKSk7CisKKyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBK
U1ZhbHVlUmVncyh2YWx1ZVRhZ0dQUiwgdmFsdWVQYXlsb2FkR1BSKSwgbm9kZVVzZSwKKyAgICAg
ICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
RXF1YWwsCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3ModmFsdWVQYXls
b2FkR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwKKyAgICAgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPnN0cmluZ1N0cnVj
dHVyZS5nZXQoKSkpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBHUFJUZW1wb3Jhcnkgc3RydWN0
dXJlKHRoaXMpOworICAgICAgICBHUFJSZWcgc3RydWN0dXJlR1BSID0gc3RydWN0dXJlLmdwcigp
OworCisgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3ModmFsdWVQ
YXlsb2FkR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgc3RydWN0dXJlR1BSKTsKKwor
ICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVSZWdzKHZhbHVlVGFnR1BS
LCB2YWx1ZVBheWxvYWRHUFIpLCBub2RlVXNlLAorICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRy
KAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwKKyAgICAgICAgICAgICAg
ICBzdHJ1Y3R1cmVHUFIsCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7CisKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaXNOb3RNYXNxdWVyYWRlc0FzVW5kZWZpbmVkID0g
CisgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0OCgKKyAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6WmVybywgCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
c3RydWN0dXJlR1BSLCBTdHJ1Y3R1cmU6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIAorICAgICAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoTWFzcXVlcmFkZXNBc1VuZGVm
aW5lZCkpOworCisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3Mo
dmFsdWVUYWdHUFIsIHZhbHVlUGF5bG9hZEdQUiksIG5vZGVVc2UsIAorICAgICAgICAgICAgbV9q
aXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgCisg
ICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RydWN0dXJlR1BSLCBTdHJ1
Y3R1cmU6Omdsb2JhbE9iamVjdE9mZnNldCgpKSwgCisgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ3JhcGgoKS5nbG9iYWxPYmplY3RGb3IobV9qaXQu
Z3JhcGgoKVtub2RlVXNlLmluZGV4KCldLmNvZGVPcmlnaW4pKSkpOworCisgICAgICAgIGlzTm90
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5saW5rKCZtX2ppdCk7CisgICAgfQogICAgIG1faml0Lm1v
dmUoVHJ1c3RlZEltbTMyKDApLCByZXN1bHRQYXlsb2FkR1BSKTsKICAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOwogICAgIApAQCAtMTgxMSw3ICsxODQzLDExIEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RPck90aGUKICAgICBpZiAobmVlZFNw
ZWN1bGF0aW9uQ2hlY2spIHsKICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZVRhZ0dQUiwgcmVzdWx0
UGF5bG9hZEdQUik7CiAgICAgICAgIG1faml0Lm9yMzIoVHJ1c3RlZEltbTMyKDEpLCByZXN1bHRQ
YXlsb2FkR1BSKTsKLSAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlUmVn
cyh2YWx1ZVRhZ0dQUiwgdmFsdWVQYXlsb2FkR1BSKSwgbm9kZVVzZSwgbV9qaXQuYnJhbmNoMzIo
TWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCByZXN1bHRQYXlsb2FkR1BSLCBUcnVzdGVkSW1tMzIo
SlNWYWx1ZTo6TnVsbFRhZykpKTsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBK
U1ZhbHVlUmVncyh2YWx1ZVRhZ0dQUiwgdmFsdWVQYXlsb2FkR1BSKSwgbm9kZVVzZSwgCisgICAg
ICAgICAgICBtX2ppdC5icmFuY2gzMigKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Tm90RXF1YWwsIAorICAgICAgICAgICAgICAgIHJlc3VsdFBheWxvYWRHUFIsIAorICAgICAgICAg
ICAgICAgIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpOdWxsVGFnKSkpOwogICAgIH0KICAgICBtX2pp
dC5tb3ZlKFRydXN0ZWRJbW0zMigxKSwgcmVzdWx0UGF5bG9hZEdQUik7CiAgICAgCkBAIC0xODI5
LDEyICsxODY1LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvZ2ljYWxOb3QoTgog
ICAgICAgICBib29sZWFuUmVzdWx0KHJlc3VsdC5ncHIoKSwgbV9jb21waWxlSW5kZXgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVj
dWxhdGVGaW5hbE9iamVjdE9yT3RoZXIoKSkgewotICAgICAgICBjb21waWxlT2JqZWN0T3JPdGhl
ckxvZ2ljYWxOb3Qobm9kZS5jaGlsZDEoKSwgJkpTRmluYWxPYmplY3Q6OnNfaW5mbywgIWlzRmlu
YWxPYmplY3RPck90aGVyU3BlY3VsYXRpb24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkp
Lm1fdHlwZSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChhdChub2RlLmNoaWxk
MSgpKS5zaG91bGRTcGVjdWxhdGVBcnJheU9yT3RoZXIoKSkgewotICAgICAgICBjb21waWxlT2Jq
ZWN0T3JPdGhlckxvZ2ljYWxOb3Qobm9kZS5jaGlsZDEoKSwgJkpTQXJyYXk6OnNfaW5mbywgIWlz
QXJyYXlPck90aGVyU3BlY3VsYXRpb24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1f
dHlwZSkpOworICAgIGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVOb25TdHJp
bmdDZWxsT3JPdGhlcigpKSB7CisgICAgICAgIGNvbXBpbGVOb25TdHJpbmdDZWxsT3JPdGhlckxv
Z2ljYWxOb3Qobm9kZS5jaGlsZDEoKSwgCisgICAgICAgICAgICAhaXNOb25TdHJpbmdDZWxsT3JP
dGhlclNwZWN1bGF0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hvdWxk
U3BlY3VsYXRlSW50ZWdlcigpKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDEyNzE4OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE4MzUsNyArMTgzNSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1
ZUFkZChOb2QKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIoKSwgbV9jb21waWxlSW5kZXgp
OwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0T3JPdGhlckxvZ2ljYWxO
b3QoRWRnZSBub2RlVXNlLCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbywgYm9vbCBuZWVkU3Bl
Y3VsYXRpb25DaGVjaykKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOb25TdHJpbmdDZWxs
T3JPdGhlckxvZ2ljYWxOb3QoRWRnZSBub2RlVXNlLCBib29sIG5lZWRTcGVjdWxhdGlvbkNoZWNr
KQogewogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGVVc2UpOwogICAgIEdQUlRl
bXBvcmFyeSByZXN1bHQodGhpcyk7CkBAIC0xODQzLDE5ICsxODQzLDU1IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RPck90aGUKICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVz
dWx0LmdwcigpOwogICAgIAogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5vdENlbGwgPSBtX2pp
dC5icmFuY2hUZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCB2YWx1ZUdQUiwgR1BSSW5m
bzo6dGFnTWFza1JlZ2lzdGVyKTsKLSAgICBpZiAobmVlZFNwZWN1bGF0aW9uQ2hlY2spCi0gICAg
ICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBub2Rl
VXNlLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyh2YWx1ZUdQUiwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKGNsYXNzSW5mbykpKTsKLSAgICBtX2ppdC5tb3ZlKFRy
dXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90PihWYWx1ZUZhbHNlKSksIHJlc3VsdEdQUik7
CisgICAgaWYgKG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG1faml0LmdyYXBoKClbbm9k
ZVVzZS5pbmRleCgpXS5jb2RlT3JpZ2luKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9p
bnQoKS0+aXNTdGlsbFZhbGlkKCkpIHsKKyAgICAgICAgbV9qaXQuZ3JhcGgoKS5nbG9iYWxPYmpl
Y3RGb3IobV9qaXQuZ3JhcGgoKVtub2RlVXNlLmluZGV4KCldLmNvZGVPcmlnaW4pLT5tYXNxdWVy
YWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludCgpLT5hZGQoc3BlY3VsYXRpb25XYXRjaHBvaW50KCkp
OworCisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3ModmFsdWVH
UFIpLCBub2RlVXNlLAorICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyh2YWx1ZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksCisgICAgICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgp
LT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgR1BSVGVt
cG9yYXJ5IHN0cnVjdHVyZSh0aGlzKTsKKyAgICAgICAgR1BSUmVnIHN0cnVjdHVyZUdQUiA9IHN0
cnVjdHVyZS5ncHIoKTsKKworICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKHZhbHVlR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgc3RydWN0dXJlR1BS
KTsKKworICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVSZWdzKHZhbHVl
R1BSKSwgbm9kZVVzZSwKKyAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsCisgICAgICAgICAgICAgICAgc3RydWN0dXJlR1BS
LAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmds
b2JhbERhdGEoKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOworCisgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIGlzTm90TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IAorICAgICAgICAgICAg
bV9qaXQuYnJhbmNoVGVzdDgoCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Olplcm8s
IAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0cnVjdHVyZUdQUiwg
U3RydWN0dXJlOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCAKKyAgICAgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQpKTsKKworICAg
ICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgbm9k
ZVVzZSwgCisgICAgICAgICAgICBtX2ppdC5icmFuY2hQdHIoCisgICAgICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkVxdWFsLCAKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhzdHJ1Y3R1cmVHUFIsIFN0cnVjdHVyZTo6Z2xvYmFsT2JqZWN0T2Zmc2V0KCkpLCAKKyAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5ncmFwaCgp
Lmdsb2JhbE9iamVjdEZvcihtX2ppdC5ncmFwaCgpW25vZGVVc2UuaW5kZXgoKV0uY29kZU9yaWdp
bikpKSk7CisKKyAgICAgICAgaXNOb3RNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmxpbmsoJm1faml0
KTsKKyAgICB9CisgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoVmFsdWVGYWxzZSksIHJlc3Vs
dEdQUik7CiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKICAg
ICAKICAgICBub3RDZWxsLmxpbmsoJm1faml0KTsKLSAgICAKKwogICAgIGlmIChuZWVkU3BlY3Vs
YXRpb25DaGVjaykgewogICAgICAgICBtX2ppdC5tb3ZlKHZhbHVlR1BSLCByZXN1bHRHUFIpOwog
ICAgICAgICBtX2ppdC5hbmRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMih+VGFnQml0
VW5kZWZpbmVkKSwgcmVzdWx0R1BSKTsKLSAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBl
LCBKU1ZhbHVlUmVncyh2YWx1ZUdQUiksIG5vZGVVc2UsIG1faml0LmJyYW5jaFB0cihNYWNyb0Fz
c2VtYmxlcjo6Tm90RXF1YWwsIHJlc3VsdEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1Q
dHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oVmFsdWVOdWxsKSkpKTsKKyAgICAgICAgc3BlY3Vs
YXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlUmVncyh2YWx1ZUdQUiksIG5vZGVVc2UsIAorICAg
ICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpOb3RFcXVhbCwgCisgICAgICAgICAgICAgICAgcmVzdWx0R1BSLCAKKyAgICAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihW
YWx1ZU51bGwpKSkpOwogICAgIH0KLSAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihzdGF0aWNf
Y2FzdDxpbnQzMl90PihWYWx1ZVRydWUpKSwgcmVzdWx0R1BSKTsKKyAgICBtX2ppdC5tb3ZlKFRy
dXN0ZWRJbW0zMihWYWx1ZVRydWUpLCByZXN1bHRHUFIpOwogICAgIAogICAgIGRvbmUubGluaygm
bV9qaXQpOwogICAgIApAQCAtMTg2NCwxMiArMTkwMCw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVPYmplY3RPck90aGUKIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvZ2lj
YWxOb3QoTm9kZSYgbm9kZSkKIHsKLSAgICBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hvdWxkU3Bl
Y3VsYXRlRmluYWxPYmplY3RPck90aGVyKCkpIHsKLSAgICAgICAgY29tcGlsZU9iamVjdE9yT3Ro
ZXJMb2dpY2FsTm90KG5vZGUuY2hpbGQxKCksICZKU0ZpbmFsT2JqZWN0OjpzX2luZm8sICFpc0Zp
bmFsT2JqZWN0T3JPdGhlclNwZWN1bGF0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgp
KS5tX3R5cGUpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoYXQobm9kZS5jaGls
ZDEoKSkuc2hvdWxkU3BlY3VsYXRlQXJyYXlPck90aGVyKCkpIHsKLSAgICAgICAgY29tcGlsZU9i
amVjdE9yT3RoZXJMb2dpY2FsTm90KG5vZGUuY2hpbGQxKCksICZKU0FycmF5OjpzX2luZm8sICFp
c0FycmF5T3JPdGhlclNwZWN1bGF0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5t
X3R5cGUpKTsKKyAgICBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlTm9uU3Ry
aW5nQ2VsbE9yT3RoZXIoKSkgeworICAgICAgICBjb21waWxlTm9uU3RyaW5nQ2VsbE9yT3RoZXJM
b2dpY2FsTm90KG5vZGUuY2hpbGQxKCksCisgICAgICAgICAgICAhaXNOb25TdHJpbmdDZWxsT3JP
dGhlclNwZWN1bGF0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hvdWxk
U3BlY3VsYXRlSW50ZWdlcigpKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oCShyZXZpc2lvbiAxMjcxODkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTIwNTks
NyArMjA1OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVPYmplY3RFcXVhbGl0eShOb2Rl
Jik7CiAgICAgdm9pZCBjb21waWxlT2JqZWN0VG9PYmplY3RPck90aGVyRXF1YWxpdHkoRWRnZSBs
ZWZ0Q2hpbGQsIEVkZ2UgcmlnaHRDaGlsZCk7CiAgICAgdm9pZCBjb21waWxlVmFsdWVBZGQoTm9k
ZSYpOwotICAgIHZvaWQgY29tcGlsZU9iamVjdE9yT3RoZXJMb2dpY2FsTm90KEVkZ2UgdmFsdWUs
IGNvbnN0IENsYXNzSW5mbyosIGJvb2wgbmVlZFNwZWN1bGF0aW9uQ2hlY2spOworICAgIHZvaWQg
Y29tcGlsZU5vblN0cmluZ0NlbGxPck90aGVyTG9naWNhbE5vdChFZGdlIHZhbHVlLCBib29sIG5l
ZWRTcGVjdWxhdGlvbkNoZWNrKTsKICAgICB2b2lkIGNvbXBpbGVMb2dpY2FsTm90KE5vZGUmKTsK
ICAgICB2b2lkIGVtaXRPYmplY3RPck90aGVyQnJhbmNoKEVkZ2UgdmFsdWUsIEJsb2NrSW5kZXgg
dGFrZW4sIEJsb2NrSW5kZXggbm90VGFrZW4sIGNvbnN0IENsYXNzSW5mbyosIGJvb2wgbmVlZFNw
ZWN1bGF0aW9uQ2hlY2spOwogICAgIHZvaWQgZW1pdEJyYW5jaChOb2RlJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161796</attachid>
            <date>2012-08-31 17:26:13 -0700</date>
            <delta_ts>2012-09-04 11:46:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95510-20120831172600.patch</filename>
            <type>text/plain</type>
            <size>13056</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI3MjkzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDEyLTA4LTMwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIHVzZXMgb2YgQ2xhc3NJbmZvIGZyb20gU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVPYmplY3RPck90aGVyTG9naWNhbE5vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU1MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNb3JlIHJlZmFjdG9yaW5nIHRvIGdldCByaWQgb2YgQ2xhc3NJ
bmZvIGNoZWNrcyBpbiB0aGUgREZHLgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0U3RhdGUu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0U3RhdGU6OmV4ZWN1dGUpOgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoU3BlY3VsYXRpdmVKSVQpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5vblN0cmluZ0NlbGxPck90aGVyTG9naWNhbE5v
dCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2dpY2FsTm90
KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOb25TdHJpbmdDZWxsT3JPdGhlckxvZ2ljYWxO
b3QpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTG9naWNhbE5v
dCk6CisKIDIwMTItMDgtMzEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBTaHJpbmsgYWN0aXZhdGlvbiBvYmplY3RzIGJ5IGhhbGYKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkocmV2aXNpb24gMTI3
MjkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjA4LDE0ICs2MDgsOSBAQCBib29sIEFic3RyYWN0U3RhdGU6OmV4
ZWN1dGUodW5zaWduZWQgaW5kCiAgICAgICAgIE5vZGUmIGNoaWxkID0gbV9ncmFwaFtub2RlLmNo
aWxkMSgpXTsKICAgICAgICAgaWYgKGlzQm9vbGVhblNwZWN1bGF0aW9uKGNoaWxkLnByZWRpY3Rp
b24oKSkpCiAgICAgICAgICAgICBzcGVjdWxhdGVCb29sZWFuVW5hcnkobm9kZSk7Ci0gICAgICAg
IGVsc2UgaWYgKGNoaWxkLnNob3VsZFNwZWN1bGF0ZUZpbmFsT2JqZWN0T3JPdGhlcigpKSB7Ci0g
ICAgICAgICAgICBub2RlLnNldENhbkV4aXQoCi0gICAgICAgICAgICAgICAgIWlzRmluYWxPYmpl
Y3RPck90aGVyU3BlY3VsYXRpb24oZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKTsKLSAg
ICAgICAgICAgIGZvck5vZGUobm9kZS5jaGlsZDEoKSkuZmlsdGVyKFNwZWNGaW5hbE9iamVjdCB8
IFNwZWNPdGhlcik7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2hpbGQuc2hvdWxkU3BlY3VsYXRlQXJy
YXlPck90aGVyKCkpIHsKLSAgICAgICAgICAgIG5vZGUuc2V0Q2FuRXhpdCgKLSAgICAgICAgICAg
ICAgICAhaXNBcnJheU9yT3RoZXJTcGVjdWxhdGlvbihmb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1f
dHlwZSkpOwotICAgICAgICAgICAgZm9yTm9kZShub2RlLmNoaWxkMSgpKS5maWx0ZXIoU3BlY0Fy
cmF5IHwgU3BlY090aGVyKTsKKyAgICAgICAgZWxzZSBpZiAoY2hpbGQuc2hvdWxkU3BlY3VsYXRl
Tm9uU3RyaW5nQ2VsbE9yT3RoZXIoKSkgeworICAgICAgICAgICAgbm9kZS5zZXRDYW5FeGl0KHRy
dWUpOworICAgICAgICAgICAgZm9yTm9kZShub2RlLmNoaWxkMSgpKS5maWx0ZXIoKFNwZWNDZWxs
ICYgflNwZWNTdHJpbmcpIHwgU3BlY090aGVyKTsKICAgICAgICAgfSBlbHNlIGlmIChjaGlsZC5z
aG91bGRTcGVjdWxhdGVJbnRlZ2VyKCkpCiAgICAgICAgICAgICBzcGVjdWxhdGVJbnQzMlVuYXJ5
KG5vZGUpOwogICAgICAgICBlbHNlIGlmIChjaGlsZC5zaG91bGRTcGVjdWxhdGVOdW1iZXIoKSkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMTI3MjkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc5MSw3
ICsxNzkxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKE5vZAogICAg
IGpzVmFsdWVSZXN1bHQocmVzdWx0VGFnLmdwcigpLCByZXN1bHRQYXlsb2FkLmdwcigpLCBtX2Nv
bXBpbGVJbmRleCk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RPck90
aGVyTG9naWNhbE5vdChFZGdlIG5vZGVVc2UsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvLCBi
b29sIG5lZWRTcGVjdWxhdGlvbkNoZWNrKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5v
blN0cmluZ0NlbGxPck90aGVyTG9naWNhbE5vdChFZGdlIG5vZGVVc2UsIGJvb2wgbmVlZFNwZWN1
bGF0aW9uQ2hlY2spCiB7CiAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZVVzZSk7
CiAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFBheWxvYWQodGhpcyk7CkBAIC0xODAwLDggKzE4MDAs
NDQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdE9yT3RoZQogICAgIEdQUlJl
ZyByZXN1bHRQYXlsb2FkR1BSID0gcmVzdWx0UGF5bG9hZC5ncHIoKTsKICAgICAKICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBub3RDZWxsID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6
Ok5vdEVxdWFsLCB2YWx1ZVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsK
LSAgICBpZiAobmVlZFNwZWN1bGF0aW9uQ2hlY2spCi0gICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
QmFkVHlwZSwgSlNWYWx1ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlUGF5bG9hZEdQUiksIG5vZGVV
c2UsIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKHZhbHVlUGF5bG9hZEdQUiwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSks
IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKGNsYXNzSW5mbykpKTsKKyAgICBpZiAobV9q
aXQuZ3JhcGgoKS5nbG9iYWxPYmplY3RGb3IobV9qaXQuZ3JhcGgoKVtub2RlVXNlLmluZGV4KCld
LmNvZGVPcmlnaW4pLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludCgpLT5pc1N0aWxs
VmFsaWQoKSkgeworICAgICAgICBtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVjdEZvcihtX2ppdC5n
cmFwaCgpW25vZGVVc2UuaW5kZXgoKV0uY29kZU9yaWdpbiktPm1hc3F1ZXJhZGVzQXNVbmRlZmlu
ZWRXYXRjaHBvaW50KCktPmFkZChzcGVjdWxhdGlvbldhdGNocG9pbnQoKSk7CisKKyAgICAgICAg
aWYgKG5lZWRTcGVjdWxhdGlvbkNoZWNrKSB7CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNr
KEJhZFR5cGUsIEpTVmFsdWVSZWdzKHZhbHVlVGFnR1BSLCB2YWx1ZVBheWxvYWRHUFIpLCBub2Rl
VXNlLAorICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLAorICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyh2YWx1ZVBheWxvYWRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkp
LAorICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2pp
dC5nbG9iYWxEYXRhKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpKTsKKyAgICAgICAgfQorICAg
IH0gZWxzZSB7CisgICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7CisgICAgICAg
IEdQUlJlZyBzdHJ1Y3R1cmVHUFIgPSBzdHJ1Y3R1cmUuZ3ByKCk7CisKKyAgICAgICAgbV9qaXQu
bG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh2YWx1ZVBheWxvYWRHUFIsIEpTQ2VsbDo6
c3RydWN0dXJlT2Zmc2V0KCkpLCBzdHJ1Y3R1cmVHUFIpOworCisgICAgICAgIGlmIChuZWVkU3Bl
Y3VsYXRpb25DaGVjaykgeworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBK
U1ZhbHVlUmVncyh2YWx1ZVRhZ0dQUiwgdmFsdWVQYXlsb2FkR1BSKSwgbm9kZVVzZSwKKyAgICAg
ICAgICAgICAgICBtX2ppdC5icmFuY2hQdHIoCisgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpFcXVhbCwKKyAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlR1BSLAorICAgICAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9iYWxE
YXRhKCktPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpKTsKKyAgICAgICAgfQorCisgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wIGlzTm90TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IAorICAgICAg
ICAgICAgbV9qaXQuYnJhbmNoVGVzdDgoCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
Olplcm8sIAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0cnVjdHVy
ZUdQUiwgU3RydWN0dXJlOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCAKKyAgICAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQpKTsK
KworICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVSZWdzKHZhbHVlVGFn
R1BSLCB2YWx1ZVBheWxvYWRHUFIpLCBub2RlVXNlLCAKKyAgICAgICAgICAgIG1faml0LmJyYW5j
aFB0cigKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIAorICAgICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0cnVjdHVyZUdQUiwgU3RydWN0dXJlOjpn
bG9iYWxPYmplY3RPZmZzZXQoKSksIAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tUHRyKG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG1faml0LmdyYXBoKClb
bm9kZVVzZS5pbmRleCgpXS5jb2RlT3JpZ2luKSkpKTsKKworICAgICAgICBpc05vdE1hc3F1ZXJh
ZGVzQXNVbmRlZmluZWQubGluaygmbV9qaXQpOworICAgIH0KICAgICBtX2ppdC5tb3ZlKFRydXN0
ZWRJbW0zMigwKSwgcmVzdWx0UGF5bG9hZEdQUik7CiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
ZG9uZSA9IG1faml0Lmp1bXAoKTsKICAgICAKQEAgLTE4MTEsNyArMTg0NywxMSBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0T3JPdGhlCiAgICAgaWYgKG5lZWRTcGVjdWxhdGlv
bkNoZWNrKSB7CiAgICAgICAgIG1faml0Lm1vdmUodmFsdWVUYWdHUFIsIHJlc3VsdFBheWxvYWRH
UFIpOwogICAgICAgICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMigxKSwgcmVzdWx0UGF5bG9hZEdQ
Uik7Ci0gICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3ModmFsdWVU
YWdHUFIsIHZhbHVlUGF5bG9hZEdQUiksIG5vZGVVc2UsIG1faml0LmJyYW5jaDMyKE1hY3JvQXNz
ZW1ibGVyOjpOb3RFcXVhbCwgcmVzdWx0UGF5bG9hZEdQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6
Ok51bGxUYWcpKSk7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJl
Z3ModmFsdWVUYWdHUFIsIHZhbHVlUGF5bG9hZEdQUiksIG5vZGVVc2UsIAorICAgICAgICAgICAg
bV9qaXQuYnJhbmNoMzIoCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFs
LCAKKyAgICAgICAgICAgICAgICByZXN1bHRQYXlsb2FkR1BSLCAKKyAgICAgICAgICAgICAgICBU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6TnVsbFRhZykpKTsKICAgICB9CiAgICAgbV9qaXQubW92ZShU
cnVzdGVkSW1tMzIoMSksIHJlc3VsdFBheWxvYWRHUFIpOwogICAgIApAQCAtMTgyOSwxMiArMTg2
OSw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2dpY2FsTm90KE4KICAgICAgICAg
Ym9vbGVhblJlc3VsdChyZXN1bHQuZ3ByKCksIG1fY29tcGlsZUluZGV4KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlRmlu
YWxPYmplY3RPck90aGVyKCkpIHsKLSAgICAgICAgY29tcGlsZU9iamVjdE9yT3RoZXJMb2dpY2Fs
Tm90KG5vZGUuY2hpbGQxKCksICZKU0ZpbmFsT2JqZWN0OjpzX2luZm8sICFpc0ZpbmFsT2JqZWN0
T3JPdGhlclNwZWN1bGF0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUp
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hv
dWxkU3BlY3VsYXRlQXJyYXlPck90aGVyKCkpIHsKLSAgICAgICAgY29tcGlsZU9iamVjdE9yT3Ro
ZXJMb2dpY2FsTm90KG5vZGUuY2hpbGQxKCksICZKU0FycmF5OjpzX2luZm8sICFpc0FycmF5T3JP
dGhlclNwZWN1bGF0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKTsK
KyAgICBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlTm9uU3RyaW5nQ2VsbE9y
T3RoZXIoKSkgeworICAgICAgICBjb21waWxlTm9uU3RyaW5nQ2VsbE9yT3RoZXJMb2dpY2FsTm90
KG5vZGUuY2hpbGQxKCksIAorICAgICAgICAgICAgIWlzTm9uU3RyaW5nQ2VsbE9yT3RoZXJTcGVj
dWxhdGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgaWYgKGF0KG5vZGUuY2hpbGQxKCkpLnNob3VsZFNwZWN1bGF0
ZUludGVnZXIoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxMjcyOTMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODM1LDcgKzE4MzUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVBZGQoTm9k
CiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG1fY29tcGlsZUluZGV4KTsKIH0KIAot
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdE9yT3RoZXJMb2dpY2FsTm90KEVkZ2Ug
bm9kZVVzZSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8sIGJvb2wgbmVlZFNwZWN1bGF0aW9u
Q2hlY2spCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTm9uU3RyaW5nQ2VsbE9yT3RoZXJM
b2dpY2FsTm90KEVkZ2Ugbm9kZVVzZSwgYm9vbCBuZWVkU3BlY3VsYXRpb25DaGVjaykKIHsKICAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlVXNlKTsKICAgICBHUFJUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMpOwpAQCAtMTg0MywxOSArMTg0Myw1OSBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlT2JqZWN0T3JPdGhlCiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIo
KTsKICAgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RDZWxsID0gbV9qaXQuYnJhbmNo
VGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgdmFsdWVHUFIsIEdQUkluZm86OnRhZ01h
c2tSZWdpc3Rlcik7Ci0gICAgaWYgKG5lZWRTcGVjdWxhdGlvbkNoZWNrKQotICAgICAgICBzcGVj
dWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgbm9kZVVzZSwgbV9q
aXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3ModmFsdWVHUFIsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0cihjbGFzc0luZm8pKSk7Ci0gICAgbV9qaXQubW92ZShUcnVzdGVkSW1t
MzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oVmFsdWVGYWxzZSkpLCByZXN1bHRHUFIpOworICAgIGlm
IChtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVjdEZvcihtX2ppdC5ncmFwaCgpW25vZGVVc2UuaW5k
ZXgoKV0uY29kZU9yaWdpbiktPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50KCktPmlz
U3RpbGxWYWxpZCgpKSB7CisgICAgICAgIG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG1f
aml0LmdyYXBoKClbbm9kZVVzZS5pbmRleCgpXS5jb2RlT3JpZ2luKS0+bWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZFdhdGNocG9pbnQoKS0+YWRkKHNwZWN1bGF0aW9uV2F0Y2hwb2ludCgpKTsKKworICAg
ICAgICBpZiAobmVlZFNwZWN1bGF0aW9uQ2hlY2spIHsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9u
Q2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBub2RlVXNlLAorICAgICAgICAg
ICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkVxdWFsLAorICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh2
YWx1ZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksCisgICAgICAgICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2JhbERhdGEoKS0+c3RyaW5n
U3RydWN0dXJlLmdldCgpKSkpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgR1BS
VGVtcG9yYXJ5IHN0cnVjdHVyZSh0aGlzKTsKKyAgICAgICAgR1BSUmVnIHN0cnVjdHVyZUdQUiA9
IHN0cnVjdHVyZS5ncHIoKTsKKworICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHZhbHVlR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgc3RydWN0dXJl
R1BSKTsKKworICAgICAgICBpZiAobmVlZFNwZWN1bGF0aW9uQ2hlY2spIHsKKyAgICAgICAgICAg
IHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBub2RlVXNl
LAorICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkVxdWFsLAorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmVHUFIs
CisgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0
Lmdsb2JhbERhdGEoKS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOworICAgICAgICB9CisKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaXNOb3RNYXNxdWVyYWRlc0FzVW5kZWZpbmVkID0g
CisgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0OCgKKyAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6WmVybywgCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
c3RydWN0dXJlR1BSLCBTdHJ1Y3R1cmU6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIAorICAgICAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoTWFzcXVlcmFkZXNBc1VuZGVm
aW5lZCkpOworCisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3Mo
dmFsdWVHUFIpLCBub2RlVXNlLCAKKyAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIAorICAgICAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHN0cnVjdHVyZUdQUiwgU3RydWN0dXJlOjpnbG9iYWxPYmplY3RP
ZmZzZXQoKSksIAorICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRy
KG1faml0LmdyYXBoKCkuZ2xvYmFsT2JqZWN0Rm9yKG1faml0LmdyYXBoKClbbm9kZVVzZS5pbmRl
eCgpXS5jb2RlT3JpZ2luKSkpKTsKKworICAgICAgICBpc05vdE1hc3F1ZXJhZGVzQXNVbmRlZmlu
ZWQubGluaygmbV9qaXQpOworICAgIH0KKyAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihWYWx1
ZUZhbHNlKSwgcmVzdWx0R1BSKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkb25lID0gbV9q
aXQuanVtcCgpOwogICAgIAogICAgIG5vdENlbGwubGluaygmbV9qaXQpOwotICAgIAorCiAgICAg
aWYgKG5lZWRTcGVjdWxhdGlvbkNoZWNrKSB7CiAgICAgICAgIG1faml0Lm1vdmUodmFsdWVHUFIs
IHJlc3VsdEdQUik7CiAgICAgICAgIG1faml0LmFuZFB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKH5UYWdCaXRVbmRlZmluZWQpLCByZXN1bHRHUFIpOwotICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgbm9kZVVzZSwgbV9qaXQuYnJh
bmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgcmVzdWx0R1BSLCBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihWYWx1ZU51bGwpKSkpOwor
ICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwg
bm9kZVVzZSwgCisgICAgICAgICAgICBtX2ppdC5icmFuY2hQdHIoCisgICAgICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCAKKyAgICAgICAgICAgICAgICByZXN1bHRHUFIsIAor
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KFZhbHVlTnVsbCkpKSk7CiAgICAgfQotICAgIG1faml0Lm1vdmUoVHJ1c3Rl
ZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KFZhbHVlVHJ1ZSkpLCByZXN1bHRHUFIpOworICAg
IG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKFZhbHVlVHJ1ZSksIHJlc3VsdEdQUik7CiAgICAgCiAg
ICAgZG9uZS5saW5rKCZtX2ppdCk7CiAgICAgCkBAIC0xODY0LDEyICsxOTA0LDkgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdE9yT3RoZQogCiB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlTG9naWNhbE5vdChOb2RlJiBub2RlKQogewotICAgIGlmIChhdChub2RlLmNoaWxk
MSgpKS5zaG91bGRTcGVjdWxhdGVGaW5hbE9iamVjdE9yT3RoZXIoKSkgewotICAgICAgICBjb21w
aWxlT2JqZWN0T3JPdGhlckxvZ2ljYWxOb3Qobm9kZS5jaGlsZDEoKSwgJkpTRmluYWxPYmplY3Q6
OnNfaW5mbywgIWlzRmluYWxPYmplY3RPck90aGVyU3BlY3VsYXRpb24obV9zdGF0ZS5mb3JOb2Rl
KG5vZGUuY2hpbGQxKCkpLm1fdHlwZSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlm
IChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVBcnJheU9yT3RoZXIoKSkgewotICAg
ICAgICBjb21waWxlT2JqZWN0T3JPdGhlckxvZ2ljYWxOb3Qobm9kZS5jaGlsZDEoKSwgJkpTQXJy
YXk6OnNfaW5mbywgIWlzQXJyYXlPck90aGVyU3BlY3VsYXRpb24obV9zdGF0ZS5mb3JOb2RlKG5v
ZGUuY2hpbGQxKCkpLm1fdHlwZSkpOworICAgIGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRT
cGVjdWxhdGVOb25TdHJpbmdDZWxsT3JPdGhlcigpKSB7CisgICAgICAgIGNvbXBpbGVOb25TdHJp
bmdDZWxsT3JPdGhlckxvZ2ljYWxOb3Qobm9kZS5jaGlsZDEoKSwKKyAgICAgICAgICAgICFpc05v
blN0cmluZ0NlbGxPck90aGVyU3BlY3VsYXRpb24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQx
KCkpLm1fdHlwZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChhdChub2RlLmNo
aWxkMSgpKS5zaG91bGRTcGVjdWxhdGVJbnRlZ2VyKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDEyNzI5MykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBj
b3B5KQpAQCAtMjA1OSw3ICsyMDU5LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29tcGlsZU9iamVj
dEVxdWFsaXR5KE5vZGUmKTsKICAgICB2b2lkIGNvbXBpbGVPYmplY3RUb09iamVjdE9yT3RoZXJF
cXVhbGl0eShFZGdlIGxlZnRDaGlsZCwgRWRnZSByaWdodENoaWxkKTsKICAgICB2b2lkIGNvbXBp
bGVWYWx1ZUFkZChOb2RlJik7Ci0gICAgdm9pZCBjb21waWxlT2JqZWN0T3JPdGhlckxvZ2ljYWxO
b3QoRWRnZSB2YWx1ZSwgY29uc3QgQ2xhc3NJbmZvKiwgYm9vbCBuZWVkU3BlY3VsYXRpb25DaGVj
ayk7CisgICAgdm9pZCBjb21waWxlTm9uU3RyaW5nQ2VsbE9yT3RoZXJMb2dpY2FsTm90KEVkZ2Ug
dmFsdWUsIGJvb2wgbmVlZFNwZWN1bGF0aW9uQ2hlY2spOwogICAgIHZvaWQgY29tcGlsZUxvZ2lj
YWxOb3QoTm9kZSYpOwogICAgIHZvaWQgZW1pdE9iamVjdE9yT3RoZXJCcmFuY2goRWRnZSB2YWx1
ZSwgQmxvY2tJbmRleCB0YWtlbiwgQmxvY2tJbmRleCBub3RUYWtlbiwgY29uc3QgQ2xhc3NJbmZv
KiwgYm9vbCBuZWVkU3BlY3VsYXRpb25DaGVjayk7CiAgICAgdm9pZCBlbWl0QnJhbmNoKE5vZGUm
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>