<?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>104654</bug_id>
          
          <creation_ts>2012-12-11 02:57:16 -0800</creation_ts>
          <short_desc>[CoordinatedGraphics] Use unsigned integers for UpdateAtlas IDs</short_desc>
          <delta_ts>2012-12-11 04:55:00 -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>
          <dependson>103816</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>788246</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-11 02:57:16 -0800</bug_when>
    <thetext>UpdateAtlas currently uses *signed* integer type for its identifier. Due to the way we generate those IDs, it would be safer to use *unsigned* integers. This is because the generated ID will overflow at some point and the C and C++ language standards say that overflow of a signed value is undefined behaviour. 

In the C99 standard this is in section 6.5. In the C++98 standard it is in section 5 [expr], paragraph 5. &quot;This means that a correct C/C++ program must never generate signed overflow when computing an expression. It also means that a compiler may assume that a program will never generated signed overflow&quot;.

Note that gcc has -fwrapv flag to assume that signed arithmetic overflow of addition, subtraction and multiplication wraps around using twos-complement representation. However, I still believe it is safer and more consistent to use unsigned integers here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788254</commentid>
    <comment_count>1</comment_count>
      <attachid>178761</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-11 03:03:14 -0800</bug_when>
    <thetext>Created attachment 178761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788298</commentid>
    <comment_count>2</comment_count>
      <attachid>178761</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-12-11 04:04:37 -0800</bug_when>
    <thetext>Comment on attachment 178761
Patch

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

&gt; Source/WebKit2/ChangeLog:14
&gt; +        This patch uses unsigned integer type for UpdateAtlas IDs.

does unsigned have defined behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788304</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-11 04:15:11 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 178761 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=178761&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:14
&gt; &gt; +        This patch uses unsigned integer type for UpdateAtlas IDs.
&gt; 
&gt; does unsigned have defined behavior?

Yes, unsigned integer types are guaranteed to wrap on overflow in C / C++.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788315</commentid>
    <comment_count>4</comment_count>
      <attachid>178775</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-11 04:28:28 -0800</bug_when>
    <thetext>Created attachment 178775
Patch for landing

Updated the Changelog to clarify the behavior for unsigned integers on overflow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788330</commentid>
    <comment_count>5</comment_count>
      <attachid>178775</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 04:54:55 -0800</bug_when>
    <thetext>Comment on attachment 178775
Patch for landing

Clearing flags on attachment: 178775

Committed r137293: &lt;http://trac.webkit.org/changeset/137293&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788331</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 04:55:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178761</attachid>
            <date>2012-12-11 03:03:14 -0800</date>
            <delta_ts>2012-12-11 04:28:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>104654_UpdateAtlas_id.patch</filename>
            <type>text/plain</type>
            <size>16387</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkN2U1MjYwLi5hMWY2ZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcg
QEAKKzIwMTItMTItMTEgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbQ29vcmRpbmF0ZWRHcmFwaGljc10gVXNlIHVuc2lnbmVkIGludGVn
ZXJzIGZvciBVcGRhdGVBdGxhcyBJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNDY1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVwZGF0ZUF0bGFzIGN1cnJlbnRseSB1c2VzICpzaWduZWQqIGludGVn
ZXIgdHlwZSBmb3IgaXRzIGlkZW50aWZpZXIuCisgICAgICAgIER1ZSB0byB0aGUgd2F5IHdlIGdl
bmVyYXRlIHRob3NlIElEcywgaXQgaXMgc2FmZXIgdG8gdXNlICp1bnNpZ25lZCoKKyAgICAgICAg
aW50ZWdlcnMuIFRoaXMgaXMgYmVjYXVzZSB0aGUgZ2VuZXJhdGVkIElEIHdpbGwgb3ZlcmZsb3cg
YXQgc29tZQorICAgICAgICBwb2ludCBhbmQgdGhlIEMgYW5kIEMrKyBsYW5ndWFnZSBzdGFuZGFy
ZHMgc2F5IHRoYXQgb3ZlcmZsb3cgb2YgYQorICAgICAgICBzaWduZWQgdmFsdWUgaXMgdW5kZWZp
bmVkIGJlaGF2aW91ci4KKworICAgICAgICBUaGlzIHBhdGNoIHVzZXMgdW5zaWduZWQgaW50ZWdl
ciB0eXBlIGZvciBVcGRhdGVBdGxhcyBJRHMuCisKKyAgICAgICAgKiBTaGFyZWQvU3VyZmFjZVVw
ZGF0ZUluZm8uaDoKKyAgICAgICAgKFN1cmZhY2VVcGRhdGVJbmZvKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlVXBkYXRl
QXRsYXMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpyZW1v
dmVVcGRhdGVBdGxhcyk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAoTGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpiZWdpbkNvbnRlbnRV
cGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyQ2xpZW50KToKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRU
aWxlLmg6CisgICAgICAgIChDb29yZGluYXRlZFRpbGVDbGllbnQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZVVwZGF0ZUF0
bGFzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbW92ZVVwZGF0
ZUF0bGFzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmJlZ2luQ29u
dGVudFVwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5h
dG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9V
cGRhdGVBdGxhcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVwZGF0ZUF0bGFzOjpVcGRhdGVBdGxh
cyk6CisgICAgICAgIChXZWJLaXQ6OlVwZGF0ZUF0bGFzOjp+VXBkYXRlQXRsYXMpOgorICAgICAg
ICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6YmVnaW5QYWludGluZ09uQXZhaWxhYmxlQnVmZmVyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVB
dGxhcy5oOgorICAgICAgICAoVXBkYXRlQXRsYXNDbGllbnQpOgorICAgICAgICAoVXBkYXRlQXRs
YXMpOgorCiAyMDEyLTEyLTEwICBEYW4gV2luc2hpcCAgPGRhbndAZ25vbWUub3JnPgogCiAgICAg
ICAgIFtTb3VwXSBGaXggc3BlbGxpbmcgb2YgImluaXRpYXRpbmciIGluIEFQSS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdXJmYWNlVXBkYXRlSW5mby5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1N1cmZhY2VVcGRhdGVJbmZvLmgKaW5kZXggZTA4OTY3ZC4uNWIxMGMzNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1N1cmZhY2VVcGRhdGVJbmZvLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1N1cmZhY2VVcGRhdGVJbmZvLmgKQEAgLTQ2LDcgKzQ2
LDcgQEAgcHVibGljOgogICAgIGZsb2F0IHNjYWxlRmFjdG9yOwogCiAgICAgLy8gVGhlIGlkIG9m
IHRoZSB1cGRhdGUgYXRsYXMgaW5jbHVkaW5nIHRoZSBzaGFyZWFibGUgYml0bWFwIGNvbnRhaW5p
bmcgdGhlIHVwZGF0ZXMuCi0gICAgaW50IGF0bGFzSUQ7CisgICAgdWludDMyX3QgYXRsYXNJRDsK
IAogICAgIC8vIFRoZSBvZmZzZXQgaW4gdGhlIGJpdG1hcCB3aGVyZSB0aGUgcmVuZGVyZWQgY29u
dGVudHMgYXJlLgogICAgIFdlYkNvcmU6OkludFBvaW50IHN1cmZhY2VPZmZzZXQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDZlYjE0OTNh
Li41MTgwMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0
ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclBy
b3h5LmNwcApAQCAtNzgsMTMgKzc4LDEzIEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94
eTo6cmVtb3ZlVGlsZUZvckxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklELCB1CiAgICAg
ZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OnJlbW92ZVRpbGUsIG1fcmVu
ZGVyZXIuZ2V0KCksIGxheWVySUQsIHRpbGVJRCkpOwogfQogCi12b2lkIExheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHk6OmNyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lELCBjb25zdCBXZWJDb29y
ZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYgaGFuZGxlKQordm9pZCBMYXllclRyZWVDb29yZGluYXRv
clByb3h5OjpjcmVhdGVVcGRhdGVBdGxhcyh1aW50MzJfdCBhdGxhc0lELCBjb25zdCBXZWJDb29y
ZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYgaGFuZGxlKQogewogICAgIEFTU0VSVCghbV9zdXJmYWNl
cy5jb250YWlucyhhdGxhc0lEKSk7CiAgICAgbV9zdXJmYWNlcy5hZGQoYXRsYXNJRCwgV2ViQ29v
cmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUoaGFuZGxlKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eTo6cmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQpCit2b2lkIExheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHk6OnJlbW92ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQp
CiB7CiAgICAgQVNTRVJUKG1fc3VyZmFjZXMuY29udGFpbnMoYXRsYXNJRCkpOwogICAgIG1fc3Vy
ZmFjZXMucmVtb3ZlKGF0bGFzSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eS5oCmluZGV4IGRkZjYxYjMuLmJmYjMwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKQEAgLTY5LDggKzY5LDggQEAgcHVibGljOgog
ICAgIHZvaWQgY3JlYXRlVGlsZUZvckxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMyX3Qg
dGlsZUlELCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8m
KTsKICAgICB2b2lkIHVwZGF0ZVRpbGVGb3JMYXllcihDb29yZGluYXRlZExheWVySUQsIHVpbnQz
Ml90IHRpbGVJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN1cmZhY2VVcGRhdGVJ
bmZvJik7CiAgICAgdm9pZCByZW1vdmVUaWxlRm9yTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklELCB1
aW50MzJfdCB0aWxlSUQpOwotICAgIHZvaWQgY3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQs
IGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJik7Ci0gICAgdm9pZCByZW1vdmVV
cGRhdGVBdGxhcyhpbnQgYXRsYXNJRCk7CisgICAgdm9pZCBjcmVhdGVVcGRhdGVBdGxhcyh1aW50
MzJfdCBhdGxhc0lELCBjb25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYpOworICAg
IHZvaWQgcmVtb3ZlVXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCk7CiAgICAgdm9pZCBjcmVh
dGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCB1cGRh
dGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgY29uc3QgV2ViQ29vcmRp
bmF0ZWRTdXJmYWNlOjpIYW5kbGUmKTsKICAgICB2b2lkIGNsZWFySW1hZ2VCYWNraW5nQ29udGVu
dHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CkBAIC0xMDIsNyArMTAyLDcgQEAgcHJvdGVj
dGVkOgogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX2xhc3RTZW50VmlzaWJsZVJlY3Q7CiAgICAg
ZmxvYXQgbV9sYXN0U2VudFNjYWxlOwogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgbV9sYXN0U2Vu
dFRyYWplY3RvcnlWZWN0b3I7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPGludCAvKiBhdGxhc0lEICov
LCBSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiA+IFN1cmZhY2VNYXA7CisgICAgdHlwZWRlZiBI
YXNoTWFwPHVpbnQzMl90IC8qIGF0bGFzSUQgKi8sIFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+
ID4gU3VyZmFjZU1hcDsKICAgICBTdXJmYWNlTWFwIG1fc3VyZmFjZXM7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5p
bgppbmRleCAxN2UxN2RhLi45NWY3YjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTMzLDggKzMzLDggQEAg
bWVzc2FnZXMgLT4gTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSB7CiAgICAgQ3JlYXRlVGlsZUZv
ckxheWVyKHVpbnQzMl90IGxheWVySUQsIHVpbnQzMl90IHRpbGVJRCwgV2ViQ29yZTo6SW50UmVj
dCB0aWxlUmVjdCwgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyB1cGRhdGVJbmZvKQogICAgIFVw
ZGF0ZVRpbGVGb3JMYXllcih1aW50MzJfdCBsYXllcklELCB1aW50MzJfdCB0aWxlSUQsIFdlYkNv
cmU6OkludFJlY3QgdGlsZVJlY3QsIFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8gdXBkYXRlSW5m
bykKICAgICBSZW1vdmVUaWxlRm9yTGF5ZXIodWludDMyX3QgbGF5ZXJJRCwgdWludDMyX3QgdGls
ZUlEKQotICAgIENyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lELCBXZWJLaXQ6OldlYkNvb3Jk
aW5hdGVkU3VyZmFjZTo6SGFuZGxlIGhhbmRsZSkKLSAgICBSZW1vdmVVcGRhdGVBdGxhcyhpbnQg
YXRsYXNJRCkKKyAgICBDcmVhdGVVcGRhdGVBdGxhcyh1aW50MzJfdCBhdGxhc0lELCBXZWJLaXQ6
OldlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlIGhhbmRsZSkKKyAgICBSZW1vdmVVcGRhdGVB
dGxhcyh1aW50MzJfdCBhdGxhc0lEKQogICAgIENyZWF0ZUltYWdlQmFja2luZyh1aW50NjRfdCBp
bWFnZUlEKQogICAgIFVwZGF0ZUltYWdlQmFja2luZyh1aW50NjRfdCBpbWFnZUlELCBXZWJLaXQ6
OldlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlIGhhbmRsZSkKICAgICBDbGVhckltYWdlQmFj
a2luZ0NvbnRlbnRzKHVpbnQ2NF90IGltYWdlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCBkMGU5YzZkLi44
NDY2OGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTczNSw3ICs3MzUsNyBAQCBDb2xvciBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlQmFja2dyb3VuZENvbG9yKCkgY29uc3QK
ICAgICByZXR1cm4gY29udGVudHNPcGFxdWUoKSA/IENvbG9yOjp3aGl0ZSA6IENvbG9yOjp0cmFu
c3BhcmVudDsKIH0KIAotUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+IENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6YmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IEludFNpemUmIHNpemUsIGludCYg
YXRsYXMsIEludFBvaW50JiBvZmZzZXQpCitQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpiZWdpbkNvbnRlbnRVcGRhdGUoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgdWludDMyX3QmIGF0bGFzLCBJbnRQb2ludCYgb2Zmc2V0KQogewogICAgIGlmICghbV9j
b29yZGluYXRvcikKICAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0PigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuaAppbmRleCA0NzNiYWUzLi4zMjBkYzI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtNzQs
NyArNzQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIoV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzeW5j
Rml4ZWRMYXllcnMoKSA9IDA7Ci0gICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBD
b29yZGluYXRlZFN1cmZhY2U6OkZsYWdzLCBpbnQmIGF0bGFzSUQsIFdlYkNvcmU6OkludFBvaW50
JikgPSAwOworICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+
IGJlZ2luQ29udGVudFVwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgQ29vcmRpbmF0ZWRT
dXJmYWNlOjpGbGFncywgdWludDMyX3QmIGF0bGFzSUQsIFdlYkNvcmU6OkludFBvaW50JikgPSAw
OwogfTsKIH0KIApAQCAtMTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlVGlsZSh1aW50MzJfdCB0aWxlSUQsIGNvbnN0IFdlYktpdDo6U3VyZmFjZVVwZGF0ZUlu
Zm8mLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRp
bGUodWludDMyX3QgdGlsZUlELCBjb25zdCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvJiwgY29u
c3QgSW50UmVjdCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlKHVpbnQz
Ml90IHRpbGVJRCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzT3duUHRyPEdyYXBoaWNzQ29u
dGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IEludFNpemUmLCBpbnQmIGF0bGFzSUQsIElu
dFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4
dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IEludFNpemUmLCB1aW50MzJfdCYgYXRsYXNJRCwg
SW50UG9pbnQmKSBPVkVSUklERTsKIAogICAgIHZvaWQgc2V0Q29vcmRpbmF0b3IoV2ViS2l0OjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRU
aWxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZFRpbGUuaAppbmRleCBiMTE5MTcyLi42ZTE1Y2M3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZFRpbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFRpbGUuaApAQCAtNzgsNyArNzgsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUodWludDMyX3QgdGlsZUlELCBjb25z
dCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZVRpbGUodWludDMyX3QgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBk
YXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHJlbW92ZVRpbGUodWludDMyX3QgdGlsZUlEKSA9IDA7Ci0gICAgdmlydHVhbCBQYXNzT3duUHRy
PFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmLCBpbnQmIGF0bGFzSUQsIFdlYkNvcmU6OkludFBvaW50JikgPSAwOworICAg
IHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+IGJlZ2luQ29udGVu
dFVwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgdWludDMyX3QmIGF0bGFzSUQsIFdlYkNv
cmU6OkludFBvaW50JikgPSAwOwogfTsKIAogY2xhc3MgQ29vcmRpbmF0ZWRUaWxlQmFja2VuZCA6
IHB1YmxpYyBXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZUJhY2tlbmQgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IDExN2Nk
YmEuLjMxMTE2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvci5jcHAKQEAgLTY2NiwxMiArNjY2LDEyIEBAIHZvaWQgTGF5ZXJUcmVlQ29v
cmRpbmF0b3I6OnJlbW92ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklEIGxheWVySUQsIHVpbnQzMl90
IHRpbGVJCiAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRv
clByb3h5OjpSZW1vdmVUaWxlRm9yTGF5ZXIobGF5ZXJJRCwgdGlsZUlEKSk7CiB9CiAKLXZvaWQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lELCBjb25z
dCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYgaGFuZGxlKQordm9pZCBMYXllclRyZWVD
b29yZGluYXRvcjo6Y3JlYXRlVXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCwgY29uc3QgV2Vi
Q29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmIGhhbmRsZSkKIHsKICAgICBtX3dlYlBhZ2UtPnNl
bmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkNyZWF0ZVVwZGF0ZUF0bGFz
KGF0bGFzSUQsIGhhbmRsZSkpOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1v
dmVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJl
bW92ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQpCiB7CiAgICAgaWYgKG1faXNQdXJnaW5n
KQogICAgICAgICByZXR1cm47CkBAIC03NzYsNyArNzc2LDcgQEAgdm9pZCBMYXllclRyZWVDb29y
ZGluYXRvcjo6cHVyZ2VCYWNraW5nU3RvcmVzKCkKICAgICBtX3VwZGF0ZUF0bGFzZXMuY2xlYXIo
KTsKIH0KIAotUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+IExheWVyVHJlZUNvb3JkaW5hdG9y
OjpiZWdpbkNvbnRlbnRVcGRhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgQ29vcmRpbmF0ZWRTdXJm
YWNlOjpGbGFncyBmbGFncywgaW50JiBhdGxhc0lELCBJbnRQb2ludCYgb2Zmc2V0KQorUGFzc093
blB0cjxHcmFwaGljc0NvbnRleHQ+IExheWVyVHJlZUNvb3JkaW5hdG9yOjpiZWdpbkNvbnRlbnRV
cGRhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncyBmbGFn
cywgdWludDMyX3QmIGF0bGFzSUQsIEludFBvaW50JiBvZmZzZXQpCiB7CiAgICAgT3duUHRyPEdy
YXBoaWNzQ29udGV4dD4gZ3JhcGhpY3NDb250ZXh0OwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX3VwZGF0ZUF0bGFzZXMuc2l6ZSgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCmluZGV4IDcwNTc4ZTUuLjlhMzZjYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3Iu
aApAQCAtMTA0LDExICsxMDQsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hM
YXllcihXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZv
aWQgc3luY0ZpeGVkTGF5ZXJzKCk7CiAKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0PiBiZWdpbkNvbnRlbnRVcGRhdGUoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYsIENvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MsIGludCYgYXRsYXNJRCwgV2ViQ29yZTo6SW50
UG9pbnQmKTsKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
PiBiZWdpbkNvbnRlbnRVcGRhdGUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIENvb3JkaW5hdGVk
U3VyZmFjZTo6RmxhZ3MsIHVpbnQzMl90JiBhdGxhc0lELCBXZWJDb3JlOjpJbnRQb2ludCYpOwog
CiAgICAgLy8gVXBkYXRlQXRsYXNDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVXBkYXRl
QXRsYXMoaW50IGF0bGFzSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJik7
Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lEKTsKKyAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlVXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCwgY29uc3QgV2Vi
Q29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVXBk
YXRlQXRsYXModWludDMyX3QgYXRsYXNJRCk7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUUpCiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5jcHAKaW5kZXggOTk2NTMxOC4u
NGYyNDA0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNwcApAQCAt
MzUsMTUgKzM1LDE1IEBAIFVwZGF0ZUF0bGFzOjpVcGRhdGVBdGxhcyhVcGRhdGVBdGxhc0NsaWVu
dCogY2xpZW50LCBpbnQgZGltZW5zaW9uLCBDb29yZGluYXRlZFN1CiAgICAgOiBtX2NsaWVudChj
bGllbnQpCiAgICAgLCBtX2ZsYWdzKGZsYWdzKQogICAgICwgbV9pbmFjdGl2aXR5SW5TZWNvbmRz
KDApCi0gICAgLCBtX2lzVmFpbGQodHJ1ZSkKKyAgICAsIG1faXNWYWxpZCh0cnVlKQogewotICAg
IHN0YXRpYyBpbnQgbmV4dElEID0gMDsKKyAgICBzdGF0aWMgdWludDMyX3QgbmV4dElEID0gMDsK
ICAgICBtX0lEID0gKytuZXh0SUQ7CiAgICAgSW50U2l6ZSBzaXplID0gbmV4dFBvd2VyT2ZUd28o
SW50U2l6ZShkaW1lbnNpb24sIGRpbWVuc2lvbikpOwogICAgIG1fc3VyZmFjZSA9IENvb3JkaW5h
dGVkU3VyZmFjZTo6Y3JlYXRlKHNpemUsIGZsYWdzKTsKIAogICAgIGlmICghc3RhdGljX2Nhc3Q8
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlKj4obV9zdXJmYWNlLmdldCgpKS0+Y3JlYXRlSGFuZGxlKG1f
aGFuZGxlKSkgewotICAgICAgICBtX2lzVmFpbGQgPSBmYWxzZTsKKyAgICAgICAgbV9pc1ZhbGlk
ID0gZmFsc2U7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9jbGllbnQtPmNyZWF0ZVVw
ZGF0ZUF0bGFzKG1fSUQsIG1faGFuZGxlKTsKQEAgLTUxLDcgKzUxLDcgQEAgVXBkYXRlQXRsYXM6
OlVwZGF0ZUF0bGFzKFVwZGF0ZUF0bGFzQ2xpZW50KiBjbGllbnQsIGludCBkaW1lbnNpb24sIENv
b3JkaW5hdGVkU3UKIAogVXBkYXRlQXRsYXM6On5VcGRhdGVBdGxhcygpCiB7Ci0gICAgaWYgKG1f
aXNWYWlsZCkKKyAgICBpZiAobV9pc1ZhbGlkKQogICAgICAgICBtX2NsaWVudC0+cmVtb3ZlVXBk
YXRlQXRsYXMobV9JRCk7CiB9CiAKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBVcGRhdGVBdGxhczo6
ZGlkU3dhcEJ1ZmZlcnMoKQogICAgIG1fYXJlYUFsbG9jYXRvci5jbGVhcigpOwogfQogCi1QYXNz
T3duUHRyPEdyYXBoaWNzQ29udGV4dD4gVXBkYXRlQXRsYXM6OmJlZ2luUGFpbnRpbmdPbkF2YWls
YWJsZUJ1ZmZlcihpbnQmIGF0bGFzSUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUsIElu
dFBvaW50JiBvZmZzZXQpCitQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gVXBkYXRlQXRsYXM6
OmJlZ2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcih1aW50MzJfdCYgYXRsYXNJRCwgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgSW50UG9pbnQmIG9mZnNldCkKIHsKICAgICBtX2luYWN0
aXZpdHlJblNlY29uZHMgPSAwOwogICAgIGJ1aWxkTGF5b3V0SWZOZWVkZWQoKTsKQEAgLTc4LDcg
Kzc4LDcgQEAgUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+IFVwZGF0ZUF0bGFzOjpiZWdpblBh
aW50aW5nT25BdmFpbGFibGVCdWZmZXIoaW50JiBhdGwKICAgICBpZiAocmVjdC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4oKTsKIAotICAgIGlm
ICghbV9pc1ZhaWxkKQorICAgIGlmICghbV9pc1ZhbGlkKQogICAgICAgICByZXR1cm4gUGFzc093
blB0cjxHcmFwaGljc0NvbnRleHQ+KCk7CiAKICAgICBhdGxhc0lEID0gbV9JRDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L1VwZGF0ZUF0bGFzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5oCmluZGV4IGQwYjc3OWUuLjBmNGFhYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL1VwZGF0ZUF0bGFzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuaApAQCAtMzUsOCArMzUsOCBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgVXBkYXRlQXRsYXNDbGllbnQgewogcHVibGljOgotICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgY29uc3QgV2ViQ29v
cmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZVVw
ZGF0ZUF0bGFzKGludCBhdGxhc0lEKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVVwZGF0
ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFu
ZGxlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVVcGRhdGVBdGxhcyh1aW50MzJfdCBh
dGxhc0lEKSA9IDA7CiB9OwogCiBjbGFzcyBVcGRhdGVBdGxhcyB7CkBAIC00OCw3ICs0OCw3IEBA
IHB1YmxpYzoKICAgICBpbmxpbmUgV2ViQ29yZTo6SW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1
cm4gbV9zdXJmYWNlLT5zaXplKCk7IH0KIAogICAgIC8vIFJldHVybnMgYSBudWxsIHBvaW50ZXIg
b2YgdGhlcmUgaXMgbm8gYXZhaWxhYmxlIGJ1ZmZlci4KLSAgICBQYXNzT3duUHRyPFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dD4gYmVnaW5QYWludGluZ09uQXZhaWxhYmxlQnVmZmVyKGludCYgYXRs
YXNJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkludFBvaW50JiBvZmZzZXQp
OworICAgIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBiZWdpblBhaW50aW5n
T25BdmFpbGFibGVCdWZmZXIodWludDMyX3QmIGF0bGFzSUQsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmLCBXZWJDb3JlOjpJbnRQb2ludCYgb2Zmc2V0KTsKICAgICB2b2lkIGRpZFN3YXBCdWZmZXJz
KCk7CiAgICAgYm9vbCBzdXBwb3J0c0FscGhhKCkgY29uc3QgeyByZXR1cm4gbV9zdXJmYWNlLT5z
dXBwb3J0c0FscGhhKCk7IH0KIApAQCAtNzQsOCArNzQsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxDb29yZGluYXRlZFN1cmZhY2U+IG1fc3VyZmFjZTsKICAgICBXZWJDb29yZGluYXRlZFN1cmZh
Y2U6OkhhbmRsZSBtX2hhbmRsZTsKICAgICBkb3VibGUgbV9pbmFjdGl2aXR5SW5TZWNvbmRzOwot
ICAgIGludCBtX0lEOwotICAgIGJvb2wgbV9pc1ZhaWxkOworICAgIHVpbnQzMl90IG1fSUQ7Cisg
ICAgYm9vbCBtX2lzVmFsaWQ7CiB9OwogCiB9Cg==
</data>
<flag name="review"
          id="195382"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178775</attachid>
            <date>2012-12-11 04:28:28 -0800</date>
            <delta_ts>2012-12-11 04:54:55 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>104654_UpdateAtlas_id.patch</filename>
            <type>text/plain</type>
            <size>16481</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkN2U1MjYwLi5jOTkyMmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDgg
QEAKKzIwMTItMTItMTEgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbQ29vcmRpbmF0ZWRHcmFwaGljc10gVXNlIHVuc2lnbmVkIGludGVn
ZXJzIGZvciBVcGRhdGVBdGxhcyBJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNDY1NAorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9o
ZGUgQ2hyaXN0aWFuc2VuLgorCisgICAgICAgIFVwZGF0ZUF0bGFzIGN1cnJlbnRseSB1c2VzICpz
aWduZWQqIGludGVnZXIgdHlwZSBmb3IgaXRzIGlkZW50aWZpZXIuCisgICAgICAgIER1ZSB0byB0
aGUgd2F5IHdlIGdlbmVyYXRlIHRob3NlIElEcywgaXQgaXMgc2FmZXIgdG8gdXNlICp1bnNpZ25l
ZCoKKyAgICAgICAgaW50ZWdlcnMuIFRoaXMgaXMgYmVjYXVzZSB0aGUgZ2VuZXJhdGVkIElEIHdp
bGwgb3ZlcmZsb3cgYXQgc29tZQorICAgICAgICBwb2ludCBhbmQgdGhlIEMgYW5kIEMrKyBsYW5n
dWFnZSBzdGFuZGFyZHMgc2F5IHRoYXQgb3ZlcmZsb3cgb2YgYQorICAgICAgICBzaWduZWQgdmFs
dWUgaXMgdW5kZWZpbmVkIGJlaGF2aW91ci4KKworICAgICAgICBUaGlzIHBhdGNoIHN3aXRjaGVz
IHRvIHVuc2lnbmVkIGludGVnZXIgdHlwZSBmb3IgVXBkYXRlQXRsYXMgSURzCisgICAgICAgIHNp
bmNlIHVuc2lnbmVkIGludGVnZXJzIGFyZSBndWFyYW50ZWVkIHRvIHdyYXAgYXJvdW5kIG9uIG92
ZXJmbG93LgorCisgICAgICAgICogU2hhcmVkL1N1cmZhY2VVcGRhdGVJbmZvLmg6CisgICAgICAg
IChTdXJmYWNlVXBkYXRlSW5mbyk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Okxh
eWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZVVwZGF0ZUF0bGFzKToKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6cmVtb3ZlVXBkYXRlQXRsYXMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
UHJveHkuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YmVnaW5Db250ZW50VXBkYXRlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCk6CisgICAg
ICAgIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5oOgorICAgICAgICAoQ29v
cmRpbmF0ZWRUaWxlQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVVcGRhdGVBdGxhcyk6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVVcGRhdGVBdGxhcyk6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpiZWdpbkNvbnRlbnRVcGRhdGUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3Jk
aW5hdG9yLmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6VXBkYXRlQXRsYXMpOgorICAgICAgICAoV2ViS2l0
OjpVcGRhdGVBdGxhczo6flVwZGF0ZUF0bGFzKToKKyAgICAgICAgKFdlYktpdDo6VXBkYXRlQXRs
YXM6OmJlZ2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuaDoKKyAgICAgICAgKFVw
ZGF0ZUF0bGFzQ2xpZW50KToKKyAgICAgICAgKFVwZGF0ZUF0bGFzKToKKwogMjAxMi0xMi0xMCAg
RGFuIFdpbnNoaXAgIDxkYW53QGdub21lLm9yZz4KIAogICAgICAgICBbU291cF0gRml4IHNwZWxs
aW5nIG9mICJpbml0aWF0aW5nIiBpbiBBUEkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvU3VyZmFjZVVwZGF0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdXJmYWNl
VXBkYXRlSW5mby5oCmluZGV4IGUwODk2N2QuLjViMTBjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TdXJmYWNlVXBkYXRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TdXJmYWNlVXBkYXRlSW5mby5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICBm
bG9hdCBzY2FsZUZhY3RvcjsKIAogICAgIC8vIFRoZSBpZCBvZiB0aGUgdXBkYXRlIGF0bGFzIGlu
Y2x1ZGluZyB0aGUgc2hhcmVhYmxlIGJpdG1hcCBjb250YWluaW5nIHRoZSB1cGRhdGVzLgotICAg
IGludCBhdGxhc0lEOworICAgIHVpbnQzMl90IGF0bGFzSUQ7CiAKICAgICAvLyBUaGUgb2Zmc2V0
IGluIHRoZSBiaXRtYXAgd2hlcmUgdGhlIHJlbmRlcmVkIGNvbnRlbnRzIGFyZS4KICAgICBXZWJD
b3JlOjpJbnRQb2ludCBzdXJmYWNlT2Zmc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA2ZWIxNDkzYS4uNTE4MDM2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTc4LDEzICs3
OCwxMyBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnJlbW92ZVRpbGVGb3JMYXll
cihDb29yZGluYXRlZExheWVySUQgbGF5ZXJJRCwgdQogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQo
JkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVUaWxlLCBtX3JlbmRlcmVyLmdldCgpLCBsYXllcklE
LCB0aWxlSUQpKTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpjcmVhdGVV
cGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgY29uc3QgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5k
bGUmIGhhbmRsZSkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlVXBkYXRl
QXRsYXModWludDMyX3QgYXRsYXNJRCwgY29uc3QgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5k
bGUmIGhhbmRsZSkKIHsKICAgICBBU1NFUlQoIW1fc3VyZmFjZXMuY29udGFpbnMoYXRsYXNJRCkp
OwogICAgIG1fc3VyZmFjZXMuYWRkKGF0bGFzSUQsIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3Jl
YXRlKGhhbmRsZSkpOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnJlbW92
ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lEKQordm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5
OjpyZW1vdmVVcGRhdGVBdGxhcyh1aW50MzJfdCBhdGxhc0lEKQogewogICAgIEFTU0VSVChtX3N1
cmZhY2VzLmNvbnRhaW5zKGF0bGFzSUQpKTsKICAgICBtX3N1cmZhY2VzLnJlbW92ZShhdGxhc0lE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaAppbmRleCBk
ZGY2MWIzLi5iZmIzMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eS5oCkBAIC02OSw4ICs2OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZVRpbGVG
b3JMYXllcihDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90IHRpbGVJRCwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJik7CiAgICAgdm9pZCB1cGRhdGVU
aWxlRm9yTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCB0aWxlSUQsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYpOwogICAgIHZvaWQgcmVt
b3ZlVGlsZUZvckxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMyX3QgdGlsZUlEKTsKLSAg
ICB2b2lkIGNyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lELCBjb25zdCBXZWJDb29yZGluYXRl
ZFN1cmZhY2U6OkhhbmRsZSYpOwotICAgIHZvaWQgcmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0bGFz
SUQpOworICAgIHZvaWQgY3JlYXRlVXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCwgY29uc3Qg
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmKTsKKyAgICB2b2lkIHJlbW92ZVVwZGF0ZUF0
bGFzKHVpbnQzMl90IGF0bGFzSUQpOwogICAgIHZvaWQgY3JlYXRlSW1hZ2VCYWNraW5nKENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nSUQpOwogICAgIHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5nKENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxl
Jik7CiAgICAgdm9pZCBjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKENvb3JkaW5hdGVkSW1hZ2VC
YWNraW5nSUQpOwpAQCAtMTAyLDcgKzEwMiw3IEBAIHByb3RlY3RlZDoKICAgICBXZWJDb3JlOjpG
bG9hdFJlY3QgbV9sYXN0U2VudFZpc2libGVSZWN0OwogICAgIGZsb2F0IG1fbGFzdFNlbnRTY2Fs
ZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IG1fbGFzdFNlbnRUcmFqZWN0b3J5VmVjdG9yOwot
ICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQgLyogYXRsYXNJRCAqLywgUmVmUHRyPENvb3JkaW5hdGVk
U3VyZmFjZT4gPiBTdXJmYWNlTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50MzJfdCAvKiBh
dGxhc0lEICovLCBSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiA+IFN1cmZhY2VNYXA7CiAgICAg
U3VyZmFjZU1hcCBtX3N1cmZhY2VzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTdlMTdkYS4uOTVm
N2I4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
clByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMyw4ICszMyw4IEBAIG1lc3NhZ2VzIC0+IExheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHkgewogICAgIENyZWF0ZVRpbGVGb3JMYXllcih1aW50MzJfdCBsYXll
cklELCB1aW50MzJfdCB0aWxlSUQsIFdlYkNvcmU6OkludFJlY3QgdGlsZVJlY3QsIFdlYktpdDo6
U3VyZmFjZVVwZGF0ZUluZm8gdXBkYXRlSW5mbykKICAgICBVcGRhdGVUaWxlRm9yTGF5ZXIodWlu
dDMyX3QgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBXZWJDb3JlOjpJbnRSZWN0IHRpbGVSZWN0
LCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvIHVwZGF0ZUluZm8pCiAgICAgUmVtb3ZlVGlsZUZv
ckxheWVyKHVpbnQzMl90IGxheWVySUQsIHVpbnQzMl90IHRpbGVJRCkKLSAgICBDcmVhdGVVcGRh
dGVBdGxhcyhpbnQgYXRsYXNJRCwgV2ViS2l0OjpXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRs
ZSBoYW5kbGUpCi0gICAgUmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQpCisgICAgQ3JlYXRl
VXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCwgV2ViS2l0OjpXZWJDb29yZGluYXRlZFN1cmZh
Y2U6OkhhbmRsZSBoYW5kbGUpCisgICAgUmVtb3ZlVXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJ
RCkKICAgICBDcmVhdGVJbWFnZUJhY2tpbmcodWludDY0X3QgaW1hZ2VJRCkKICAgICBVcGRhdGVJ
bWFnZUJhY2tpbmcodWludDY0X3QgaW1hZ2VJRCwgV2ViS2l0OjpXZWJDb29yZGluYXRlZFN1cmZh
Y2U6OkhhbmRsZSBoYW5kbGUpCiAgICAgQ2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyh1aW50NjRf
dCBpbWFnZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggZDBlOWM2ZC4uODQ2NjhjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3Bw
CkBAIC03MzUsNyArNzM1LDcgQEAgQ29sb3IgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxl
ZEJhY2tpbmdTdG9yZUJhY2tncm91bmRDb2xvcigpIGNvbnN0CiAgICAgcmV0dXJuIGNvbnRlbnRz
T3BhcXVlKCkgPyBDb2xvcjo6d2hpdGUgOiBDb2xvcjo6dHJhbnNwYXJlbnQ7CiB9CiAKLVBhc3NP
d25QdHI8R3JhcGhpY3NDb250ZXh0PiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmJlZ2luQ29u
dGVudFVwZGF0ZShjb25zdCBJbnRTaXplJiBzaXplLCBpbnQmIGF0bGFzLCBJbnRQb2ludCYgb2Zm
c2V0KQorUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+IENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6YmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IEludFNpemUmIHNpemUsIHVpbnQzMl90JiBhdGxh
cywgSW50UG9pbnQmIG9mZnNldCkKIHsKICAgICBpZiAoIW1fY29vcmRpbmF0b3IpCiAgICAgICAg
IHJldHVybiBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5k
ZXggNDczYmFlMy4uMzIwZGMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaExheWVyKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllciopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3luY0ZpeGVkTGF5ZXJzKCkgPSAwOwot
ICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+IGJlZ2luQ29u
dGVudFVwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpG
bGFncywgaW50JiBhdGxhc0lELCBXZWJDb3JlOjpJbnRQb2ludCYpID0gMDsKKyAgICB2aXJ0dWFs
IFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBiZWdpbkNvbnRlbnRVcGRhdGUo
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIENvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MsIHVpbnQz
Ml90JiBhdGxhc0lELCBXZWJDb3JlOjpJbnRQb2ludCYpID0gMDsKIH07CiB9CiAKQEAgLTE1OCw3
ICsxNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRpbGUodWludDMyX3Qg
dGlsZUlELCBjb25zdCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgSW50UmVjdCYp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKHVpbnQzMl90IHRpbGVJRCwg
Y29uc3QgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZSh1aW50MzJfdCB0aWxlSUQpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+IGJlZ2luQ29udGVudFVw
ZGF0ZShjb25zdCBJbnRTaXplJiwgaW50JiBhdGxhc0lELCBJbnRQb2ludCYpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+IGJlZ2luQ29udGVudFVwZGF0
ZShjb25zdCBJbnRTaXplJiwgdWludDMyX3QmIGF0bGFzSUQsIEludFBvaW50JikgT1ZFUlJJREU7
CiAKICAgICB2b2lkIHNldENvb3JkaW5hdG9yKFdlYktpdDo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyQ2xpZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkVGlsZS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRUaWxl
LmgKaW5kZXggYjExOTE3Mi4uNmUxNWNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRUaWxlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRUaWxlLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBjcmVhdGVUaWxlKHVpbnQzMl90IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8m
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVU
aWxlKHVpbnQzMl90IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlKHVpbnQzMl90
IHRpbGVJRCkgPSAwOwotICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ+IGJlZ2luQ29udGVudFVwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgaW50JiBh
dGxhc0lELCBXZWJDb3JlOjpJbnRQb2ludCYpID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBiZWdpbkNvbnRlbnRVcGRhdGUoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIHVpbnQzMl90JiBhdGxhc0lELCBXZWJDb3JlOjpJbnRQb2ludCYpID0gMDsK
IH07CiAKIGNsYXNzIENvb3JkaW5hdGVkVGlsZUJhY2tlbmQgOiBwdWJsaWMgV2ViQ29yZTo6VGls
ZWRCYWNraW5nU3RvcmVCYWNrZW5kIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAppbmRleCAxMTdjZGJhLi4zMTExNjZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBA
IC02NjYsMTIgKzY2NiwxMiBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVUaWxl
KENvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklELCB1aW50MzJfdCB0aWxlSQogICAgIG1fd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6UmVtb3ZlVGlsZUZv
ckxheWVyKGxheWVySUQsIHRpbGVJRCkpOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9y
OjpjcmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgY29uc3QgV2ViQ29vcmRpbmF0ZWRTdXJm
YWNlOjpIYW5kbGUmIGhhbmRsZSkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZVVw
ZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6
SGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRy
ZWVDb29yZGluYXRvclByb3h5OjpDcmVhdGVVcGRhdGVBdGxhcyhhdGxhc0lELCBoYW5kbGUpKTsK
IH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0
bGFzSUQpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVVcGRhdGVBdGxhcyh1aW50
MzJfdCBhdGxhc0lEKQogewogICAgIGlmIChtX2lzUHVyZ2luZykKICAgICAgICAgcmV0dXJuOwpA
QCAtNzc2LDcgKzc3Niw3IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnB1cmdlQmFja2lu
Z1N0b3JlcygpCiAgICAgbV91cGRhdGVBdGxhc2VzLmNsZWFyKCk7CiB9CiAKLVBhc3NPd25QdHI8
R3JhcGhpY3NDb250ZXh0PiBMYXllclRyZWVDb29yZGluYXRvcjo6YmVnaW5Db250ZW50VXBkYXRl
KGNvbnN0IEludFNpemUmIHNpemUsIENvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MgZmxhZ3MsIGlu
dCYgYXRsYXNJRCwgSW50UG9pbnQmIG9mZnNldCkKK1Bhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0
PiBMYXllclRyZWVDb29yZGluYXRvcjo6YmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IEludFNpemUm
IHNpemUsIENvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MgZmxhZ3MsIHVpbnQzMl90JiBhdGxhc0lE
LCBJbnRQb2ludCYgb2Zmc2V0KQogewogICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQ+IGdyYXBo
aWNzQ29udGV4dDsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV91cGRhdGVBdGxhc2Vz
LnNpemUoKTsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuaAppbmRleCA3MDU3OGU1Li45YTM2Y2M3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKQEAgLTEwNCwxMSArMTA0LDEx
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHN5bmNGaXhlZExheWVycygp
OwogCi0gICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gYmVn
aW5Db250ZW50VXBkYXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBDb29yZGluYXRlZFN1cmZh
Y2U6OkZsYWdzLCBpbnQmIGF0bGFzSUQsIFdlYkNvcmU6OkludFBvaW50Jik7CisgICAgdmlydHVh
bCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRl
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzLCB1aW50
MzJfdCYgYXRsYXNJRCwgV2ViQ29yZTo6SW50UG9pbnQmKTsKIAogICAgIC8vIFVwZGF0ZUF0bGFz
Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lELCBj
b25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYpOwotICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCk7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVVw
ZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6
SGFuZGxlJik7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0
bGFzSUQpOwogCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgIHZpcnR1
YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRs
YXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvVXBkYXRlQXRsYXMuY3BwCmluZGV4IDk5NjUzMTguLjRmMjQwNDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1Vw
ZGF0ZUF0bGFzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5jcHAKQEAgLTM1LDE1ICszNSwxNSBAQCBVcGRh
dGVBdGxhczo6VXBkYXRlQXRsYXMoVXBkYXRlQXRsYXNDbGllbnQqIGNsaWVudCwgaW50IGRpbWVu
c2lvbiwgQ29vcmRpbmF0ZWRTdQogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9mbGFn
cyhmbGFncykKICAgICAsIG1faW5hY3Rpdml0eUluU2Vjb25kcygwKQotICAgICwgbV9pc1ZhaWxk
KHRydWUpCisgICAgLCBtX2lzVmFsaWQodHJ1ZSkKIHsKLSAgICBzdGF0aWMgaW50IG5leHRJRCA9
IDA7CisgICAgc3RhdGljIHVpbnQzMl90IG5leHRJRCA9IDA7CiAgICAgbV9JRCA9ICsrbmV4dElE
OwogICAgIEludFNpemUgc2l6ZSA9IG5leHRQb3dlck9mVHdvKEludFNpemUoZGltZW5zaW9uLCBk
aW1lbnNpb24pKTsKICAgICBtX3N1cmZhY2UgPSBDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZShz
aXplLCBmbGFncyk7CiAKICAgICBpZiAoIXN0YXRpY19jYXN0PFdlYkNvb3JkaW5hdGVkU3VyZmFj
ZSo+KG1fc3VyZmFjZS5nZXQoKSktPmNyZWF0ZUhhbmRsZShtX2hhbmRsZSkpIHsKLSAgICAgICAg
bV9pc1ZhaWxkID0gZmFsc2U7CisgICAgICAgIG1faXNWYWxpZCA9IGZhbHNlOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIG1fY2xpZW50LT5jcmVhdGVVcGRhdGVBdGxhcyhtX0lELCBtX2hh
bmRsZSk7CkBAIC01MSw3ICs1MSw3IEBAIFVwZGF0ZUF0bGFzOjpVcGRhdGVBdGxhcyhVcGRhdGVB
dGxhc0NsaWVudCogY2xpZW50LCBpbnQgZGltZW5zaW9uLCBDb29yZGluYXRlZFN1CiAKIFVwZGF0
ZUF0bGFzOjp+VXBkYXRlQXRsYXMoKQogewotICAgIGlmIChtX2lzVmFpbGQpCisgICAgaWYgKG1f
aXNWYWxpZCkKICAgICAgICAgbV9jbGllbnQtPnJlbW92ZVVwZGF0ZUF0bGFzKG1fSUQpOwogfQog
CkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgVXBkYXRlQXRsYXM6OmRpZFN3YXBCdWZmZXJzKCkKICAg
ICBtX2FyZWFBbGxvY2F0b3IuY2xlYXIoKTsKIH0KIAotUGFzc093blB0cjxHcmFwaGljc0NvbnRl
eHQ+IFVwZGF0ZUF0bGFzOjpiZWdpblBhaW50aW5nT25BdmFpbGFibGVCdWZmZXIoaW50JiBhdGxh
c0lELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBJbnRQb2ludCYgb2Zmc2V0KQorUGFz
c093blB0cjxHcmFwaGljc0NvbnRleHQ+IFVwZGF0ZUF0bGFzOjpiZWdpblBhaW50aW5nT25BdmFp
bGFibGVCdWZmZXIodWludDMyX3QmIGF0bGFzSUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNp
emUsIEludFBvaW50JiBvZmZzZXQpCiB7CiAgICAgbV9pbmFjdGl2aXR5SW5TZWNvbmRzID0gMDsK
ICAgICBidWlsZExheW91dElmTmVlZGVkKCk7CkBAIC03OCw3ICs3OCw3IEBAIFBhc3NPd25QdHI8
R3JhcGhpY3NDb250ZXh0PiBVcGRhdGVBdGxhczo6YmVnaW5QYWludGluZ09uQXZhaWxhYmxlQnVm
ZmVyKGludCYgYXRsCiAgICAgaWYgKHJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gUGFz
c093blB0cjxHcmFwaGljc0NvbnRleHQ+KCk7CiAKLSAgICBpZiAoIW1faXNWYWlsZCkKKyAgICBp
ZiAoIW1faXNWYWxpZCkKICAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0
PigpOwogCiAgICAgYXRsYXNJRCA9IG1fSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRl
QXRsYXMuaAppbmRleCBkMGI3NzllLi4wZjRhYWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L1VwZGF0ZUF0bGFzLmgKQEAgLTM1LDggKzM1LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIFVwZGF0ZUF0bGFzQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRl
VXBkYXRlQXRsYXMoaW50IGF0bGFzSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFu
ZGxlJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJ
RCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVVcGRhdGVBdGxhcyh1aW50MzJfdCBhdGxh
c0lELCBjb25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlVXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCkgPSAwOwogfTsKIAog
Y2xhc3MgVXBkYXRlQXRsYXMgewpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgaW5saW5l
IFdlYkNvcmU6OkludFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VyZmFjZS0+c2l6ZSgp
OyB9CiAKICAgICAvLyBSZXR1cm5zIGEgbnVsbCBwb2ludGVyIG9mIHRoZXJlIGlzIG5vIGF2YWls
YWJsZSBidWZmZXIuCi0gICAgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+IGJl
Z2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcihpbnQmIGF0bGFzSUQsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmLCBXZWJDb3JlOjpJbnRQb2ludCYgb2Zmc2V0KTsKKyAgICBQYXNzT3duUHRyPFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gYmVnaW5QYWludGluZ09uQXZhaWxhYmxlQnVmZmVyKHVp
bnQzMl90JiBhdGxhc0lELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SW50UG9p
bnQmIG9mZnNldCk7CiAgICAgdm9pZCBkaWRTd2FwQnVmZmVycygpOwogICAgIGJvb2wgc3VwcG9y
dHNBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VyZmFjZS0+c3VwcG9ydHNBbHBoYSgpOyB9CiAK
QEAgLTc0LDggKzc0LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNl
PiBtX3N1cmZhY2U7CiAgICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUgbV9oYW5kbGU7
CiAgICAgZG91YmxlIG1faW5hY3Rpdml0eUluU2Vjb25kczsKLSAgICBpbnQgbV9JRDsKLSAgICBi
b29sIG1faXNWYWlsZDsKKyAgICB1aW50MzJfdCBtX0lEOworICAgIGJvb2wgbV9pc1ZhbGlkOwog
fTsKIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>