<?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>131897</bug_id>
          
          <creation_ts>2014-04-19 13:56:29 -0700</creation_ts>
          <short_desc>Inline allocate Arguments objects in the DFG</short_desc>
          <delta_ts>2014-04-21 08:12:07 -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>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1002262</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-04-19 13:56:29 -0700</bug_when>
    <thetext>Many libraries/frameworks depend on the arguments object for overloaded API entry points. This is the first step to making Arguments fast(er). We&apos;ll duplicate the logic in Arguments::create for now, and take the slow path for complicated cases like slow arguments, tearing off for strict mode, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002265</commentid>
    <comment_count>1</comment_count>
      <attachid>229745</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-04-19 13:59:50 -0700</bug_when>
    <thetext>Created attachment 229745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002278</commentid>
    <comment_count>2</comment_count>
      <attachid>229748</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-04-19 14:40:23 -0700</bug_when>
    <thetext>Created attachment 229748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002281</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-04-19 14:46:04 -0700</bug_when>
    <thetext>This is performance neutral on the benchmarks we track.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002298</commentid>
    <comment_count>4</comment_count>
      <attachid>229748</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-04-19 16:06:02 -0700</bug_when>
    <thetext>Comment on attachment 229748
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=229748&amp;action=review

r=me

&gt; Source/JavaScriptCore/runtime/Arguments.h:60
&gt; +        

Revert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002534</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-04-21 08:12:07 -0700</bug_when>
    <thetext>Committed r167591: &lt;http://trac.webkit.org/changeset/167591&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229745</attachid>
            <date>2014-04-19 13:59:50 -0700</date>
            <delta_ts>2014-04-19 14:40:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131897-20140419135801.patch</filename>
            <type>text/plain</type>
            <size>12684</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY3NTQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBA
CisyMDE0LTA0LTE5ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSW5saW5lIGFsbG9jYXRlIEFyZ3VtZW50cyBvYmplY3RzIGluIHRoZSBERkcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTg5NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hbnkgbGlicmFy
aWVzL2ZyYW1ld29ya3MgZGVwZW5kIG9uIHRoZSBhcmd1bWVudHMgb2JqZWN0IGZvciBvdmVybG9h
ZGVkIEFQSSBlbnRyeSBwb2ludHMuIAorICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIHRv
IG1ha2luZyBBcmd1bWVudHMgZmFzdChlcikuIFdlJ2xsIGR1cGxpY2F0ZSB0aGUgbG9naWMgaW4g
QXJndW1lbnRzOjpjcmVhdGUgCisgICAgICAgIGZvciBub3cgYW5kIHRha2UgdGhlIHNsb3cgcGF0
aCBmb3IgY29tcGxpY2F0ZWQgY2FzZXMgbGlrZSBzbG93IGFyZ3VtZW50cywgdGVhcmluZyBvZmYg
Zm9yIHN0cmljdCBtb2RlLCBldGMuCisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0QWxsb2NhdGVBcmd1
bWVudHMpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0QWxsb2NhdGVEZXN0cnVjdGlibGVPYmplY3QpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
KToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAoSlNDOjpBcmd1bWVu
dHM6Om9mZnNldE9mQWN0aXZhdGlvbik6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6b2Zmc2V0
T2ZPdmVycm9kZUxlbmd0aCk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6b2Zmc2V0T2ZJc1N0
cmljdE1vZGUpOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6Om9mZnNldE9mUmVnaXN0ZXJBcnJh
eSk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6b2Zmc2V0T2ZDYWxsZWUpOgorICAgICAgICAo
SlNDOjpBcmd1bWVudHM6OmFsbG9jYXRpb25TaXplKToKKwogMjAxNC0wNC0xOSAgRmlsaXAgUGl6
bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZHJlc3Mgc29tZSBmZWVkYmFjayBv
biBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNjg0LgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCShyZXZpc2lvbiAxNjc1MTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTY3LDI2ICs0MTY3
LDQ3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAg
CiAgICAgY2FzZSBDcmVhdGVBcmd1bWVudHM6IHsKICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFs
dWUodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaDEo
dGhpcyk7CisgICAgICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoMih0aGlzKTsKICAgICAgICAgR1BS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgdmFsdWUsIFBheWxvYWRXb3JkKTsKICAgICAg
ICAgCiAgICAgICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOwogICAgICAg
ICBHUFJSZWcgdmFsdWVQYXlsb2FkR1BSID0gdmFsdWUucGF5bG9hZEdQUigpOworICAgICAgICBH
UFJSZWcgc2NyYXRjaDFHUFIgPSBzY3JhdGNoMS5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHNjcmF0
Y2gyR1BSID0gc2NyYXRjaDIuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1
bHQuZ3ByKCk7CiAgICAgICAgIAogICAgICAgICBtX2ppdC5tb3ZlKHZhbHVlUGF5bG9hZEdQUiwg
cmVzdWx0R1BSKTsKICAgICAgICAgCi0gICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdENyZWF0
ZWQgPSBtX2ppdC5icmFuY2gzMihKSVRDb21waWxlcjo6RXF1YWwsIHZhbHVlVGFnR1BSLCBUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpOwotICAgICAgICAKICAgICAgICAgaWYg
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5pbmxpbmVDYWxsRnJhbWUpIHsKKyAgICAgICAgICAgIEpJ
VENvbXBpbGVyOjpKdW1wIG5vdENyZWF0ZWQgPSBtX2ppdC5icmFuY2gzMihKSVRDb21waWxlcjo6
RXF1YWwsIHZhbHVlVGFnR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykp
OwogICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAgICAgICAgICAgc2xv
d1BhdGhDYWxsKAogICAgICAgICAgICAgICAgICAgICBub3RDcmVhdGVkLCB0aGlzLCBvcGVyYXRp
b25DcmVhdGVJbmxpbmVkQXJndW1lbnRzLCByZXN1bHRHUFIsCiAgICAgICAgICAgICAgICAgICAg
IG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5pbmxpbmVDYWxsRnJhbWUpKTsKLSAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9IAorCisgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0
YWJsZSA9IGpzQ2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihtX2ppdC5ncmFwaCgpLmV4ZWN1dGFi
bGVGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSk7CisgICAgICAgIGlmIChtX2ppdC5jb2RlQmxv
Y2soKS0+aGFzU2xvd0FyZ3VtZW50cygpCisgICAgICAgICAgICB8fCBleGVjdXRhYmxlLT5pc1N0
cmljdE1vZGUoKSAKKyAgICAgICAgICAgIHx8ICFleGVjdXRhYmxlLT5wYXJhbWV0ZXJDb3VudCgp
KSB7CisgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBub3RDcmVhdGVkID0gbV9qaXQuYnJh
bmNoMzIoSklUQ29tcGlsZXI6OkVxdWFsLCB2YWx1ZVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkVtcHR5VmFsdWVUYWcpKTsKICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAog
ICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbChub3RDcmVhdGVkLCB0aGlzLCBvcGVyYXRpb25D
cmVhdGVBcmd1bWVudHMsIHJlc3VsdEdQUikpOworICAgICAgICAgICAgY2VsbFJlc3VsdChyZXN1
bHRHUFIsIG5vZGUpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgCisK
KyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgYWxyZWFkeUNyZWF0ZWQgPSBtX2ppdC5icmFuY2gz
MihKSVRDb21waWxlcjo6Tm90RXF1YWwsIHZhbHVlVGFnR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6RW1wdHlWYWx1ZVRhZykpOworCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBz
bG93UGF0aHM7CisgICAgICAgIGVtaXRBbGxvY2F0ZUFyZ3VtZW50cyhyZXN1bHRHUFIsIHNjcmF0
Y2gxR1BSLCBzY3JhdGNoMkdQUiwgc2xvd1BhdGhzKTsKKyAgICAgICAgICAgIGFkZFNsb3dQYXRo
R2VuZXJhdG9yKAorICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbChzbG93UGF0aHMsIHRoaXMs
IG9wZXJhdGlvbkNyZWF0ZUFyZ3VtZW50cywgcmVzdWx0R1BSKSk7CisKKyAgICAgICAgYWxyZWFk
eUNyZWF0ZWQubGluaygmbV9qaXQpOyAKICAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5v
ZGUpOwogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDE2NzUxOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQyMjQsMjUgKzQyMjQsNDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICAKICAgICBjYXNlIENyZWF0ZUFyZ3VtZW50czogewog
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAg
ICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoMSh0aGlzKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHNj
cmF0Y2gyKHRoaXMpOwogICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCB2
YWx1ZSk7CiAgICAgICAgIAogICAgICAgICBHUFJSZWcgdmFsdWVHUFIgPSB2YWx1ZS5ncHIoKTsK
KyAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIxID0gc2NyYXRjaDEuZ3ByKCk7CisgICAgICAgIEdQ
UlJlZyBzY3JhdGNoR1BSMiA9IHNjcmF0Y2gyLmdwcigpOwogICAgICAgICBHUFJSZWcgcmVzdWx0
R1BSID0gcmVzdWx0LmdwcigpOwogICAgICAgICAKICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZUdQ
UiwgcmVzdWx0R1BSKTsKICAgICAgICAgCi0gICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdENy
ZWF0ZWQgPSBtX2ppdC5icmFuY2hUZXN0NjQoSklUQ29tcGlsZXI6Olplcm8sIHJlc3VsdEdQUik7
Ci0gICAgICAgIAogICAgICAgICBpZiAobm9kZS0+b3JpZ2luLnNlbWFudGljLmlubGluZUNhbGxG
cmFtZSkgeworICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgbm90Q3JlYXRlZCA9IG1faml0
LmJyYW5jaFRlc3Q2NChKSVRDb21waWxlcjo6WmVybywgcmVzdWx0R1BSKTsKICAgICAgICAgICAg
IGFkZFNsb3dQYXRoR2VuZXJhdG9yKAogICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbCgKICAg
ICAgICAgICAgICAgICAgICAgbm90Q3JlYXRlZCwgdGhpcywgb3BlcmF0aW9uQ3JlYXRlSW5saW5l
ZEFyZ3VtZW50cywgcmVzdWx0R1BSLAogICAgICAgICAgICAgICAgICAgICBub2RlLT5vcmlnaW4u
c2VtYW50aWMuaW5saW5lQ2FsbEZyYW1lKSk7Ci0gICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfSAKKworICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBqc0Nhc3Q8
RnVuY3Rpb25FeGVjdXRhYmxlKj4obV9qaXQuZ3JhcGgoKS5leGVjdXRhYmxlRm9yKG5vZGUtPm9y
aWdpbi5zZW1hbnRpYykpOworICAgICAgICBpZiAobV9qaXQuY29kZUJsb2NrKCktPmhhc1Nsb3dB
cmd1bWVudHMoKQorICAgICAgICAgICAgfHwgZXhlY3V0YWJsZS0+aXNTdHJpY3RNb2RlKCkgCisg
ICAgICAgICAgICB8fCAhZXhlY3V0YWJsZS0+cGFyYW1ldGVyQ291bnQoKSkgeworICAgICAgICAg
ICAgSklUQ29tcGlsZXI6Okp1bXAgbm90Q3JlYXRlZCA9IG1faml0LmJyYW5jaFRlc3Q2NChKSVRD
b21waWxlcjo6WmVybywgcmVzdWx0R1BSKTsKICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJh
dG9yKAogICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbChub3RDcmVhdGVkLCB0aGlzLCBvcGVy
YXRpb25DcmVhdGVBcmd1bWVudHMsIHJlc3VsdEdQUikpOworICAgICAgICAgICAgY2VsbFJlc3Vs
dChyZXN1bHRHUFIsIG5vZGUpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAg
ICAgCisKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgYWxyZWFkeUNyZWF0ZWQgPSBtX2ppdC5i
cmFuY2hUZXN0NjQoSklUQ29tcGlsZXI6Ok5vblplcm8sIHJlc3VsdEdQUik7CisKKyAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dQYXRoczsKKyAgICAgICAgZW1pdEFsbG9jYXRl
QXJndW1lbnRzKHJlc3VsdEdQUiwgc2NyYXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBzbG93UGF0aHMp
OworICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcigKKyAgICAgICAgICAgIHNsb3dQYXRoQ2Fs
bChzbG93UGF0aHMsIHRoaXMsIG9wZXJhdGlvbkNyZWF0ZUFyZ3VtZW50cywgcmVzdWx0R1BSKSk7
CisKKyAgICAgICAgYWxyZWFkeUNyZWF0ZWQubGluaygmbV9qaXQpOwogICAgICAgICBjZWxsUmVz
dWx0KHJlc3VsdEdQUiwgbm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lv
biAxNjc1MTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiw0MCBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjplbWl0QWxsb2NhdGVKU0FycmF5CiAgICAgICAgICAgICBzdHJ1Y3R1cmUsIG51bUVsZW1l
bnRzKSkpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0QWxsb2NhdGVBcmd1bWVudHMo
R1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIxLCBHUFJSZWcgc2NyYXRjaEdQUjIs
IE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCYgc2xvd1BhdGgpCit7CisgICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUgPSBtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVjdEZvcihtX2N1cnJlbnROb2RlLT5v
cmlnaW4uc2VtYW50aWMpLT5hcmd1bWVudHNTdHJ1Y3R1cmUoKTsKKyAgICAvLyBBbGxvY2F0ZSBj
ZWxsLgorICAgIGVtaXRBbGxvY2F0ZURlc3RydWN0aWJsZU9iamVjdDxBcmd1bWVudHM+KHJlc3Vs
dEdQUiwgc3RydWN0dXJlLCBzY3JhdGNoR1BSMSwgc2NyYXRjaEdQUjIsIHNsb3dQYXRoKTsKKwor
ICAgIC8vIEluaXRpYWxpemUgYWN0aXZhdGlvbi4KKyAgICBtX2ppdC5zdG9yZVB0cihUcnVzdGVk
SW1tUHRyKDApLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEFyZ3VtZW50czo6
b2Zmc2V0T2ZBY3RpdmF0aW9uKCkpKTsKKworICAgIC8vIEluaXRpYWxpemUgbV9udW1Bcmd1bWVu
dHMuCisgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKEpTU3RhY2s6OkFy
Z3VtZW50Q291bnQpLCBzY3JhdGNoR1BSMSk7CisgICAgbV9qaXQuc3ViMzIoVHJ1c3RlZEltbTMy
KDEpLCBzY3JhdGNoR1BSMSk7CisgICAgbV9qaXQuc3RvcmUzMihzY3JhdGNoR1BSMSwgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBBcmd1bWVudHM6Om9mZnNldE9mTnVtQXJndW1l
bnRzKCkpKTsKKworICAgIC8vIEluaXRpYWxpemUgbV9vdmVycm9kZUxlbmd0aCwgbV9vdmVycm9k
ZUNhbGxlZSwgbV9vdmVycm9kZUNhbGxlciwgYW5kIG1faXNTdHJpY3RNb2RlLgorICAgIG1faml0
LnN0b3JlMzIoVHJ1c3RlZEltbTMyKDApLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1bHRH
UFIsIEFyZ3VtZW50czo6b2Zmc2V0T2ZPdmVycm9kZUxlbmd0aCgpKSk7CisgICAgLy8gU3RvcmUg
dGhlIGNvcnJlY3QgdmFsdWUgaW4gbV9pc1N0cmljdE1vZGUuCisgICAgbV9qaXQuc3RvcmU4KFRy
dXN0ZWRJbW0zMihtX2ppdC5pc1N0cmljdE1vZGVGb3IobV9jdXJyZW50Tm9kZS0+b3JpZ2luLnNl
bWFudGljKSksIAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEFy
Z3VtZW50czo6b2Zmc2V0T2ZJc1N0cmljdE1vZGUoKSkpOworCisgICAgLy8gSW5pdGlhbGl6ZSBt
X3JlZ2lzdGVycyB3aXRoIHRoZSBjYWxsIGZyYW1lIGJhc2UgcG9pbnRlci4KKyAgICBtX2ppdC5z
dG9yZVB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MocmVzdWx0R1BSLCBBcmd1bWVudHM6Om9mZnNldE9mUmVnaXN0ZXJzKCkpKTsKKworICAgIC8v
IEluaXRpYWxpemUgcmVnaXN0ZXIgYXJyYXkuCisgICAgbV9qaXQuc3RvcmVQdHIoVHJ1c3RlZElt
bVB0cigwKSwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBBcmd1bWVudHM6Om9m
ZnNldE9mUmVnaXN0ZXJBcnJheSgpKSk7CisKKyAgICAvLyBJbml0aWFsaXplIHNsb3cgYXJndW1l
bnQgZGF0YS4KKyAgICBtX2ppdC5zdG9yZVB0cihUcnVzdGVkSW1tUHRyKDApLCBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEFyZ3VtZW50czo6b2Zmc2V0T2ZTbG93QXJndW1lbnRE
YXRhKCkpKTsKKworICAgIC8vIEluaXRpYWxpemUgbV9jYWxsZWUuIE5vdGU6IFdlIGRvbid0IGhh
dmUgdG8gd3JpdGUgYmFycmllciBoZXJlIGJlY2F1c2UgdGhpcyBpcyBhIGJyYW5kIG5ldyBvYmpl
Y3QuCisgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihKU1N0YWNrOjpD
YWxsZWUpLCBzY3JhdGNoR1BSMSk7CisgICAgbV9qaXQuc3RvcmVQdHIoc2NyYXRjaEdQUjEsIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgQXJndW1lbnRzOjpvZmZzZXRPZkNhbGxl
ZSgpKSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0aW9uQ2hlY2soRXhpdEtp
bmQga2luZCwgSlNWYWx1ZVNvdXJjZSBqc1ZhbHVlU291cmNlLCBOb2RlKiBub2RlLCBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBqdW1wVG9GYWlsKQogewogICAgIGlmICghbV9jb21waWxlT2theSkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJl
dmlzaW9uIDE2NzUxOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMjE3OCw3ICsyMTc4LDcgQEAgcHVibGljOgogICAg
ICAgICBtX2ppdC5zdG9yZVB0cihzdG9yYWdlLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1
bHRHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZzZXQoKSkpOwogICAgIH0KIAotICAgIC8vIENv
bnZlbmllbmNlIGFsbG9jYXRvciBmb3IgYSBidWl0LWluIG9iamVjdC4KKyAgICAvLyBDb252ZW5p
ZW5jZSBhbGxvY2F0b3IgZm9yIGEgYnVpbHQtaW4gb2JqZWN0LgogICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBDbGFzc1R5cGUsIHR5cGVuYW1lIFN0cnVjdHVyZVR5cGUsIHR5cGVuYW1lIFN0b3JhZ2VU
eXBlPiAvLyBTdHJ1Y3R1cmVUeXBlIGFuZCBTdG9yYWdlVHlwZSBjYW4gYmUgR1BSIG9yIEltbVB0
ci4KICAgICB2b2lkIGVtaXRBbGxvY2F0ZUpTT2JqZWN0KEdQUlJlZyByZXN1bHRHUFIsIFN0cnVj
dHVyZVR5cGUgc3RydWN0dXJlLCBTdG9yYWdlVHlwZSBzdG9yYWdlLAogICAgICAgICBHUFJSZWcg
c2NyYXRjaEdQUjEsIEdQUlJlZyBzY3JhdGNoR1BSMiwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0
JiBzbG93UGF0aCkKQEAgLTIxOTUsNyArMjE5NSwxNiBAQCBwdWJsaWM6CiAgICAgICAgIGVtaXRB
bGxvY2F0ZUpTT2JqZWN0KHJlc3VsdEdQUiwgc2NyYXRjaEdQUjEsIHN0cnVjdHVyZSwgc3RvcmFn
ZSwgc2NyYXRjaEdQUjIsIHNsb3dQYXRoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KKyAgICB2b2lkIGVtaXRBbGxvY2F0ZURlc3RydWN0aWJsZU9iamVjdChHUFJSZWcgcmVz
dWx0R1BSLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgCisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BS
MSwgR1BSUmVnIHNjcmF0Y2hHUFIyLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QmIHNsb3dQYXRo
KQorICAgIHsKKyAgICAgICAgZW1pdEFsbG9jYXRlSlNPYmplY3Q8VD4ocmVzdWx0R1BSLCBUcnVz
dGVkSW1tUHRyKHN0cnVjdHVyZSksIFRydXN0ZWRJbW1QdHIoMCksIHNjcmF0Y2hHUFIxLCBzY3Jh
dGNoR1BSMiwgc2xvd1BhdGgpOworICAgICAgICBtX2ppdC5zdG9yZVB0cihUcnVzdGVkSW1tUHRy
KHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkpLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1bHRH
UFIsIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0OjpjbGFzc0luZm9PZmZzZXQoKSkpOworICAgIH0KKwog
ICAgIHZvaWQgZW1pdEFsbG9jYXRlSlNBcnJheShHUFJSZWcgcmVzdWx0R1BSLCBTdHJ1Y3R1cmUq
LCBHUFJSZWcgc3RvcmFnZUdQUiwgdW5zaWduZWQgbnVtRWxlbWVudHMpOworICAgIHZvaWQgZW1p
dEFsbG9jYXRlQXJndW1lbnRzKEdQUlJlZyByZXN1bHRHUFIsIEdQUlJlZyBzY3JhdGNoR1BSMSwg
R1BSUmVnIHNjcmF0Y2hHUFIyLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QmIHNsb3dQYXRoKTsK
IAogICAgIC8vIEFkZCBhIHNwZWN1bGF0aW9uIGNoZWNrLgogICAgIHZvaWQgc3BlY3VsYXRpb25D
aGVjayhFeGl0S2luZCwgSlNWYWx1ZVNvdXJjZSwgTm9kZSosIE1hY3JvQXNzZW1ibGVyOjpKdW1w
IGp1bXBUb0ZhaWwpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmgJKHJldmlzaW9uIDE2NzUxOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FyZ3VtZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICBlbnVtIHsgTWF4QXJndW1lbnRzID0gMHgxMDAwMCB9OwotCisgICAgICAgIAog
cHJpdmF0ZToKICAgICBlbnVtIE5vUGFyYW1ldGVyc1R5cGUgeyBOb1BhcmFtZXRlcnMgfTsKICAg
ICAgICAgCkBAIC04OSwxMCArODksMjAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhBcmd1bWVu
dHNUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KICAgICAKKyAgICBzdGF0
aWMgcHRyZGlmZl90IG9mZnNldE9mQWN0aXZhdGlvbigpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRP
RihBcmd1bWVudHMsIG1fYWN0aXZhdGlvbik7IH0KICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNl
dE9mTnVtQXJndW1lbnRzKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9u
dW1Bcmd1bWVudHMpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk92ZXJyb2RlTGVu
Z3RoKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9vdmVycm9kZUxlbmd0
aCk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mSXNTdHJpY3RNb2RlKCkgeyByZXR1
cm4gT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9pc1N0cmljdE1vZGUpOyB9CiAgICAgc3Rh
dGljIHB0cmRpZmZfdCBvZmZzZXRPZlJlZ2lzdGVycygpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRP
RihBcmd1bWVudHMsIG1fcmVnaXN0ZXJzKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0
T2ZSZWdpc3RlckFycmF5KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9y
ZWdpc3RlckFycmF5KTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTbG93QXJndW1l
bnREYXRhKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9zbG93QXJndW1l
bnREYXRhKTsgfQotICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZPdmVycm9kZUxlbmd0aCgp
IHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fb3ZlcnJvZGVMZW5ndGgpOyB9
CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkNhbGxlZSgpIHsgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihBcmd1bWVudHMsIG1fY2FsbGVlKTsgfQorCisgICAgc3RhdGljIHNpemVfdCBhbGxv
Y2F0aW9uU2l6ZShzaXplX3QgaW5saW5lQ2FwYWNpdHkpCisgICAgeworICAgICAgICBBU1NFUlRf
VU5VU0VEKGlubGluZUNhcGFjaXR5LCAhaW5saW5lQ2FwYWNpdHkpOworICAgICAgICByZXR1cm4g
c2l6ZW9mKEFyZ3VtZW50cyk7CisgICAgfQogICAgIAogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05v
dFplcm8gfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1l
cyB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229748</attachid>
            <date>2014-04-19 14:40:23 -0700</date>
            <delta_ts>2014-04-19 16:06:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131897-20140419143832.patch</filename>
            <type>text/plain</type>
            <size>12201</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY3NTQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBA
CisyMDE0LTA0LTE5ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSW5saW5lIGFsbG9jYXRlIEFyZ3VtZW50cyBvYmplY3RzIGluIHRoZSBERkcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTg5NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hbnkgbGlicmFy
aWVzL2ZyYW1ld29ya3MgZGVwZW5kIG9uIHRoZSBhcmd1bWVudHMgb2JqZWN0IGZvciBvdmVybG9h
ZGVkIEFQSSBlbnRyeSBwb2ludHMuIAorICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIHRv
IG1ha2luZyBBcmd1bWVudHMgZmFzdChlcikuIFdlJ2xsIGR1cGxpY2F0ZSB0aGUgbG9naWMgaW4g
QXJndW1lbnRzOjpjcmVhdGUgCisgICAgICAgIGZvciBub3cgYW5kIHRha2UgdGhlIHNsb3cgcGF0
aCBmb3IgY29tcGxpY2F0ZWQgY2FzZXMgbGlrZSBzbG93IGFyZ3VtZW50cywgdGVhcmluZyBvZmYg
Zm9yIHN0cmljdCBtb2RlLCBldGMuCisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0QWxsb2NhdGVBcmd1
bWVudHMpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0QWxsb2NhdGVEZXN0cnVjdGlibGVPYmplY3QpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
KToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAoSlNDOjpBcmd1bWVu
dHM6Om9mZnNldE9mQWN0aXZhdGlvbik6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6b2Zmc2V0
T2ZPdmVycm9kZUxlbmd0aCk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6b2Zmc2V0T2ZJc1N0
cmljdE1vZGUpOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6Om9mZnNldE9mUmVnaXN0ZXJBcnJh
eSk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6b2Zmc2V0T2ZDYWxsZWUpOgorICAgICAgICAo
SlNDOjpBcmd1bWVudHM6OmFsbG9jYXRpb25TaXplKToKKwogMjAxNC0wNC0xOSAgRmlsaXAgUGl6
bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZHJlc3Mgc29tZSBmZWVkYmFjayBv
biBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNjg0LgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCShyZXZpc2lvbiAxNjc1NDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTY3LDI2ICs0MTY3
LDQ3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAg
CiAgICAgY2FzZSBDcmVhdGVBcmd1bWVudHM6IHsKICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFs
dWUodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaDEo
dGhpcyk7CisgICAgICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoMih0aGlzKTsKICAgICAgICAgR1BS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgdmFsdWUsIFBheWxvYWRXb3JkKTsKICAgICAg
ICAgCiAgICAgICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOwogICAgICAg
ICBHUFJSZWcgdmFsdWVQYXlsb2FkR1BSID0gdmFsdWUucGF5bG9hZEdQUigpOworICAgICAgICBH
UFJSZWcgc2NyYXRjaDFHUFIgPSBzY3JhdGNoMS5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHNjcmF0
Y2gyR1BSID0gc2NyYXRjaDIuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1
bHQuZ3ByKCk7CiAgICAgICAgIAogICAgICAgICBtX2ppdC5tb3ZlKHZhbHVlUGF5bG9hZEdQUiwg
cmVzdWx0R1BSKTsKICAgICAgICAgCi0gICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdENyZWF0
ZWQgPSBtX2ppdC5icmFuY2gzMihKSVRDb21waWxlcjo6RXF1YWwsIHZhbHVlVGFnR1BSLCBUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpOwotICAgICAgICAKICAgICAgICAgaWYg
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5pbmxpbmVDYWxsRnJhbWUpIHsKKyAgICAgICAgICAgIEpJ
VENvbXBpbGVyOjpKdW1wIG5vdENyZWF0ZWQgPSBtX2ppdC5icmFuY2gzMihKSVRDb21waWxlcjo6
RXF1YWwsIHZhbHVlVGFnR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykp
OwogICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAgICAgICAgICAgc2xv
d1BhdGhDYWxsKAogICAgICAgICAgICAgICAgICAgICBub3RDcmVhdGVkLCB0aGlzLCBvcGVyYXRp
b25DcmVhdGVJbmxpbmVkQXJndW1lbnRzLCByZXN1bHRHUFIsCiAgICAgICAgICAgICAgICAgICAg
IG5vZGUtPm9yaWdpbi5zZW1hbnRpYy5pbmxpbmVDYWxsRnJhbWUpKTsKLSAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9IAorCisgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0
YWJsZSA9IGpzQ2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihtX2ppdC5ncmFwaCgpLmV4ZWN1dGFi
bGVGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSk7CisgICAgICAgIGlmIChtX2ppdC5jb2RlQmxv
Y2soKS0+aGFzU2xvd0FyZ3VtZW50cygpCisgICAgICAgICAgICB8fCBleGVjdXRhYmxlLT5pc1N0
cmljdE1vZGUoKSAKKyAgICAgICAgICAgIHx8ICFleGVjdXRhYmxlLT5wYXJhbWV0ZXJDb3VudCgp
KSB7CisgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBub3RDcmVhdGVkID0gbV9qaXQuYnJh
bmNoMzIoSklUQ29tcGlsZXI6OkVxdWFsLCB2YWx1ZVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkVtcHR5VmFsdWVUYWcpKTsKICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAog
ICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbChub3RDcmVhdGVkLCB0aGlzLCBvcGVyYXRpb25D
cmVhdGVBcmd1bWVudHMsIHJlc3VsdEdQUikpOworICAgICAgICAgICAgY2VsbFJlc3VsdChyZXN1
bHRHUFIsIG5vZGUpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgCisK
KyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgYWxyZWFkeUNyZWF0ZWQgPSBtX2ppdC5icmFuY2gz
MihKSVRDb21waWxlcjo6Tm90RXF1YWwsIHZhbHVlVGFnR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6RW1wdHlWYWx1ZVRhZykpOworCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBz
bG93UGF0aHM7CisgICAgICAgIGVtaXRBbGxvY2F0ZUFyZ3VtZW50cyhyZXN1bHRHUFIsIHNjcmF0
Y2gxR1BSLCBzY3JhdGNoMkdQUiwgc2xvd1BhdGhzKTsKKyAgICAgICAgICAgIGFkZFNsb3dQYXRo
R2VuZXJhdG9yKAorICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbChzbG93UGF0aHMsIHRoaXMs
IG9wZXJhdGlvbkNyZWF0ZUFyZ3VtZW50cywgcmVzdWx0R1BSKSk7CisKKyAgICAgICAgYWxyZWFk
eUNyZWF0ZWQubGluaygmbV9qaXQpOyAKICAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5v
ZGUpOwogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDE2NzU0NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQyMjQsMjUgKzQyMjQsNDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICAKICAgICBjYXNlIENyZWF0ZUFyZ3VtZW50czogewog
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAg
ICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoMSh0aGlzKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHNj
cmF0Y2gyKHRoaXMpOwogICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCB2
YWx1ZSk7CiAgICAgICAgIAogICAgICAgICBHUFJSZWcgdmFsdWVHUFIgPSB2YWx1ZS5ncHIoKTsK
KyAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIxID0gc2NyYXRjaDEuZ3ByKCk7CisgICAgICAgIEdQ
UlJlZyBzY3JhdGNoR1BSMiA9IHNjcmF0Y2gyLmdwcigpOwogICAgICAgICBHUFJSZWcgcmVzdWx0
R1BSID0gcmVzdWx0LmdwcigpOwogICAgICAgICAKICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZUdQ
UiwgcmVzdWx0R1BSKTsKICAgICAgICAgCi0gICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdENy
ZWF0ZWQgPSBtX2ppdC5icmFuY2hUZXN0NjQoSklUQ29tcGlsZXI6Olplcm8sIHJlc3VsdEdQUik7
Ci0gICAgICAgIAogICAgICAgICBpZiAobm9kZS0+b3JpZ2luLnNlbWFudGljLmlubGluZUNhbGxG
cmFtZSkgeworICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgbm90Q3JlYXRlZCA9IG1faml0
LmJyYW5jaFRlc3Q2NChKSVRDb21waWxlcjo6WmVybywgcmVzdWx0R1BSKTsKICAgICAgICAgICAg
IGFkZFNsb3dQYXRoR2VuZXJhdG9yKAogICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbCgKICAg
ICAgICAgICAgICAgICAgICAgbm90Q3JlYXRlZCwgdGhpcywgb3BlcmF0aW9uQ3JlYXRlSW5saW5l
ZEFyZ3VtZW50cywgcmVzdWx0R1BSLAogICAgICAgICAgICAgICAgICAgICBub2RlLT5vcmlnaW4u
c2VtYW50aWMuaW5saW5lQ2FsbEZyYW1lKSk7Ci0gICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfSAKKworICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBqc0Nhc3Q8
RnVuY3Rpb25FeGVjdXRhYmxlKj4obV9qaXQuZ3JhcGgoKS5leGVjdXRhYmxlRm9yKG5vZGUtPm9y
aWdpbi5zZW1hbnRpYykpOworICAgICAgICBpZiAobV9qaXQuY29kZUJsb2NrKCktPmhhc1Nsb3dB
cmd1bWVudHMoKQorICAgICAgICAgICAgfHwgZXhlY3V0YWJsZS0+aXNTdHJpY3RNb2RlKCkgCisg
ICAgICAgICAgICB8fCAhZXhlY3V0YWJsZS0+cGFyYW1ldGVyQ291bnQoKSkgeworICAgICAgICAg
ICAgSklUQ29tcGlsZXI6Okp1bXAgbm90Q3JlYXRlZCA9IG1faml0LmJyYW5jaFRlc3Q2NChKSVRD
b21waWxlcjo6WmVybywgcmVzdWx0R1BSKTsKICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJh
dG9yKAogICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbChub3RDcmVhdGVkLCB0aGlzLCBvcGVy
YXRpb25DcmVhdGVBcmd1bWVudHMsIHJlc3VsdEdQUikpOworICAgICAgICAgICAgY2VsbFJlc3Vs
dChyZXN1bHRHUFIsIG5vZGUpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAg
ICAgCisKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgYWxyZWFkeUNyZWF0ZWQgPSBtX2ppdC5i
cmFuY2hUZXN0NjQoSklUQ29tcGlsZXI6Ok5vblplcm8sIHJlc3VsdEdQUik7CisKKyAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dQYXRoczsKKyAgICAgICAgZW1pdEFsbG9jYXRl
QXJndW1lbnRzKHJlc3VsdEdQUiwgc2NyYXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBzbG93UGF0aHMp
OworICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcigKKyAgICAgICAgICAgIHNsb3dQYXRoQ2Fs
bChzbG93UGF0aHMsIHRoaXMsIG9wZXJhdGlvbkNyZWF0ZUFyZ3VtZW50cywgcmVzdWx0R1BSKSk7
CisKKyAgICAgICAgYWxyZWFkeUNyZWF0ZWQubGluaygmbV9qaXQpOwogICAgICAgICBjZWxsUmVz
dWx0KHJlc3VsdEdQUiwgbm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lv
biAxNjc1NDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiwyOSBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjplbWl0QWxsb2NhdGVKU0FycmF5CiAgICAgICAgICAgICBzdHJ1Y3R1cmUsIG51bUVsZW1l
bnRzKSkpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0QWxsb2NhdGVBcmd1bWVudHMo
R1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIxLCBHUFJSZWcgc2NyYXRjaEdQUjIs
IE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCYgc2xvd1BhdGgpCit7CisgICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUgPSBtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVjdEZvcihtX2N1cnJlbnROb2RlLT5v
cmlnaW4uc2VtYW50aWMpLT5hcmd1bWVudHNTdHJ1Y3R1cmUoKTsKKyAgICBlbWl0QWxsb2NhdGVE
ZXN0cnVjdGlibGVPYmplY3Q8QXJndW1lbnRzPihyZXN1bHRHUFIsIHN0cnVjdHVyZSwgc2NyYXRj
aEdQUjEsIHNjcmF0Y2hHUFIyLCBzbG93UGF0aCk7CisKKyAgICBtX2ppdC5zdG9yZVB0cihUcnVz
dGVkSW1tUHRyKDApLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEFyZ3VtZW50
czo6b2Zmc2V0T2ZBY3RpdmF0aW9uKCkpKTsKKworICAgIG1faml0LmxvYWQzMihKSVRDb21waWxl
cjo6cGF5bG9hZEZvcihKU1N0YWNrOjpBcmd1bWVudENvdW50KSwgc2NyYXRjaEdQUjEpOworICAg
IG1faml0LnN1YjMyKFRydXN0ZWRJbW0zMigxKSwgc2NyYXRjaEdQUjEpOworICAgIG1faml0LnN0
b3JlMzIoc2NyYXRjaEdQUjEsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgQXJn
dW1lbnRzOjpvZmZzZXRPZk51bUFyZ3VtZW50cygpKSk7CisKKyAgICBtX2ppdC5zdG9yZTMyKFRy
dXN0ZWRJbW0zMigwKSwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBBcmd1bWVu
dHM6Om9mZnNldE9mT3ZlcnJvZGVMZW5ndGgoKSkpOworICAgIG1faml0LnN0b3JlOChUcnVzdGVk
SW1tMzIobV9qaXQuaXNTdHJpY3RNb2RlRm9yKG1fY3VycmVudE5vZGUtPm9yaWdpbi5zZW1hbnRp
YykpLCAKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBBcmd1bWVu
dHM6Om9mZnNldE9mSXNTdHJpY3RNb2RlKCkpKTsKKworICAgIG1faml0LnN0b3JlUHRyKEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1bHRHUFIs
IEFyZ3VtZW50czo6b2Zmc2V0T2ZSZWdpc3RlcnMoKSkpOworICAgIG1faml0LnN0b3JlUHRyKFRy
dXN0ZWRJbW1QdHIoMCksIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgQXJndW1l
bnRzOjpvZmZzZXRPZlJlZ2lzdGVyQXJyYXkoKSkpOworICAgIG1faml0LnN0b3JlUHRyKFRydXN0
ZWRJbW1QdHIoMCksIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgQXJndW1lbnRz
OjpvZmZzZXRPZlNsb3dBcmd1bWVudERhdGEoKSkpOworCisgICAgbV9qaXQubG9hZFB0cihKSVRD
b21waWxlcjo6YWRkcmVzc0ZvcihKU1N0YWNrOjpDYWxsZWUpLCBzY3JhdGNoR1BSMSk7CisgICAg
bV9qaXQuc3RvcmVQdHIoc2NyYXRjaEdQUjEsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3Vs
dEdQUiwgQXJndW1lbnRzOjpvZmZzZXRPZkNhbGxlZSgpKSk7Cit9CisKIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OnNwZWN1bGF0aW9uQ2hlY2soRXhpdEtpbmQga2luZCwgSlNWYWx1ZVNvdXJjZSBqc1Zh
bHVlU291cmNlLCBOb2RlKiBub2RlLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBqdW1wVG9GYWlsKQog
ewogICAgIGlmICghbV9jb21waWxlT2theSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDE2NzU0NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAt
MjE3OCw3ICsyMTc4LDcgQEAgcHVibGljOgogICAgICAgICBtX2ppdC5zdG9yZVB0cihzdG9yYWdl
LCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlP
ZmZzZXQoKSkpOwogICAgIH0KIAotICAgIC8vIENvbnZlbmllbmNlIGFsbG9jYXRvciBmb3IgYSBi
dWl0LWluIG9iamVjdC4KKyAgICAvLyBDb252ZW5pZW5jZSBhbGxvY2F0b3IgZm9yIGEgYnVpbHQt
aW4gb2JqZWN0LgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDbGFzc1R5cGUsIHR5cGVuYW1lIFN0
cnVjdHVyZVR5cGUsIHR5cGVuYW1lIFN0b3JhZ2VUeXBlPiAvLyBTdHJ1Y3R1cmVUeXBlIGFuZCBT
dG9yYWdlVHlwZSBjYW4gYmUgR1BSIG9yIEltbVB0ci4KICAgICB2b2lkIGVtaXRBbGxvY2F0ZUpT
T2JqZWN0KEdQUlJlZyByZXN1bHRHUFIsIFN0cnVjdHVyZVR5cGUgc3RydWN0dXJlLCBTdG9yYWdl
VHlwZSBzdG9yYWdlLAogICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUjEsIEdQUlJlZyBzY3JhdGNo
R1BSMiwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0JiBzbG93UGF0aCkKQEAgLTIxOTUsNyArMjE5
NSwxNiBAQCBwdWJsaWM6CiAgICAgICAgIGVtaXRBbGxvY2F0ZUpTT2JqZWN0KHJlc3VsdEdQUiwg
c2NyYXRjaEdQUjEsIHN0cnVjdHVyZSwgc3RvcmFnZSwgc2NyYXRjaEdQUjIsIHNsb3dQYXRoKTsK
ICAgICB9CiAKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGVtaXRBbGxvY2F0
ZURlc3RydWN0aWJsZU9iamVjdChHUFJSZWcgcmVzdWx0R1BSLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgCisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSMSwgR1BSUmVnIHNjcmF0Y2hHUFIyLCBNYWNy
b0Fzc2VtYmxlcjo6SnVtcExpc3QmIHNsb3dQYXRoKQorICAgIHsKKyAgICAgICAgZW1pdEFsbG9j
YXRlSlNPYmplY3Q8VD4ocmVzdWx0R1BSLCBUcnVzdGVkSW1tUHRyKHN0cnVjdHVyZSksIFRydXN0
ZWRJbW1QdHIoMCksIHNjcmF0Y2hHUFIxLCBzY3JhdGNoR1BSMiwgc2xvd1BhdGgpOworICAgICAg
ICBtX2ppdC5zdG9yZVB0cihUcnVzdGVkSW1tUHRyKHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkpLCBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Ojpj
bGFzc0luZm9PZmZzZXQoKSkpOworICAgIH0KKwogICAgIHZvaWQgZW1pdEFsbG9jYXRlSlNBcnJh
eShHUFJSZWcgcmVzdWx0R1BSLCBTdHJ1Y3R1cmUqLCBHUFJSZWcgc3RvcmFnZUdQUiwgdW5zaWdu
ZWQgbnVtRWxlbWVudHMpOworICAgIHZvaWQgZW1pdEFsbG9jYXRlQXJndW1lbnRzKEdQUlJlZyBy
ZXN1bHRHUFIsIEdQUlJlZyBzY3JhdGNoR1BSMSwgR1BSUmVnIHNjcmF0Y2hHUFIyLCBNYWNyb0Fz
c2VtYmxlcjo6SnVtcExpc3QmIHNsb3dQYXRoKTsKIAogICAgIC8vIEFkZCBhIHNwZWN1bGF0aW9u
IGNoZWNrLgogICAgIHZvaWQgc3BlY3VsYXRpb25DaGVjayhFeGl0S2luZCwgSlNWYWx1ZVNvdXJj
ZSwgTm9kZSosIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGp1bXBUb0ZhaWwpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgJKHJldmlzaW9uIDE2NzU0NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBlbnVtIHsgTWF4QXJndW1l
bnRzID0gMHgxMDAwMCB9OwotCisgICAgICAgIAogcHJpdmF0ZToKICAgICBlbnVtIE5vUGFyYW1l
dGVyc1R5cGUgeyBOb1BhcmFtZXRlcnMgfTsKICAgICAgICAgCkBAIC04OSwxMCArODksMjAgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhBcmd1bWVudHNUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGlu
Zm8oKSk7IAogICAgIH0KICAgICAKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mQWN0aXZh
dGlvbigpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fYWN0aXZhdGlvbik7
IH0KICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mTnVtQXJndW1lbnRzKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9udW1Bcmd1bWVudHMpOyB9CisgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZk92ZXJyb2RlTGVuZ3RoKCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKEFyZ3VtZW50cywgbV9vdmVycm9kZUxlbmd0aCk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mSXNTdHJpY3RNb2RlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50
cywgbV9pc1N0cmljdE1vZGUpOyB9CiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlJlZ2lz
dGVycygpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fcmVnaXN0ZXJzKTsg
fQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZSZWdpc3RlckFycmF5KCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9yZWdpc3RlckFycmF5KTsgfQogICAgIHN0YXRp
YyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTbG93QXJndW1lbnREYXRhKCkgeyByZXR1cm4gT0JKRUNUX09G
RlNFVE9GKEFyZ3VtZW50cywgbV9zbG93QXJndW1lbnREYXRhKTsgfQotICAgIHN0YXRpYyBwdHJk
aWZmX3Qgb2Zmc2V0T2ZPdmVycm9kZUxlbmd0aCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihB
cmd1bWVudHMsIG1fb3ZlcnJvZGVMZW5ndGgpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZz
ZXRPZkNhbGxlZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fY2FsbGVl
KTsgfQorCisgICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6ZShzaXplX3QgaW5saW5lQ2Fw
YWNpdHkpCisgICAgeworICAgICAgICBBU1NFUlRfVU5VU0VEKGlubGluZUNhcGFjaXR5LCAhaW5s
aW5lQ2FwYWNpdHkpOworICAgICAgICByZXR1cm4gc2l6ZW9mKEFyZ3VtZW50cyk7CisgICAgfQog
ICAgIAogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBPdmVycmlkZXNWaXNpdENoaWxk
cmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFn
czsK
</data>
<flag name="review"
          id="254118"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>