From mboxrd@z Thu Jan 1 00:00:00 1970 From: Cecil Westerhof Subject: Re: Difference between two rows Date: Sun, 1 Jun 2014 16:12:57 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a1138f6561d0a8a04fac6e0bc Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38256) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wr6VP-00060i-Bn for emacs-orgmode@gnu.org; Sun, 01 Jun 2014 10:13:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wr6VN-0004cZ-Tq for emacs-orgmode@gnu.org; Sun, 01 Jun 2014 10:12:59 -0400 Received: from mail-qa0-x22e.google.com ([2607:f8b0:400d:c00::22e]:34853) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wr6VN-0004cU-Mj for emacs-orgmode@gnu.org; Sun, 01 Jun 2014 10:12:57 -0400 Received: by mail-qa0-f46.google.com with SMTP id w8so1319954qac.33 for ; Sun, 01 Jun 2014 07:12:57 -0700 (PDT) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --001a1138f6561d0a8a04fac6e0bc Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 2014-06-01 15:18 GMT+02:00 Michael Brand : > Hi Cecil > > On Sun, Jun 1, 2014 at 2:24 PM, Cecil Westerhof > wrote: > > But what if I would want to know the > > difference between the previous filled one, divided by the distance? > > > > For example: > > |-------+------------| > > | value | difference | > > |-------+------------| > > | 12 | | > > | 15 | 3 | > > | | | > > | 83 | 34 | > > | | | > > | | | > > | | | > > | 87 | 1 | > > | | | > > | | | > > | | | > > | 85 | -0.5 | > > | | | > > |-------+------------| > > More as a demonstration of what Calc can do, divided up into some > intermediate steps: > > |-------+---------------------------------------------------------| > | value | difference | > |-------+---------------------------------------------------------| > | 12 | | > | 15 | [15, 12] | > | | | > | 83 | [83, nan, 15, 12] | > | | | > | | | > | | | > | 87 | [87, nan, nan, nan, 83, nan, 15, 12] | > | | | > | | | > | | | > | 85 | [85, nan, nan, nan, 87, nan, nan, nan, 83, nan, 15, 12] | > | | | > |-------+---------------------------------------------------------| > #+TBLFM: $2 =3D if(vlen(@-I$1..@0$1) =3D=3D 1 || "$1" =3D=3D "nan", strin= g(""), > rev(@-I$1..@0$1)); E > > |-------+----------------------------------------------------| > | value | difference | > |-------+----------------------------------------------------| > | 12 | | > | 15 | [0, 0] | > | | | > | 83 | [0, nan, 0, 0] | > | | | > | | | > | | | > | 87 | [0, nan, nan, nan, 0, nan, 0, 0] | > | | | > | | | > | | | > | 85 | [0, nan, nan, nan, 0, nan, nan, nan, 0, nan, 0, 0] | > | | | > |-------+----------------------------------------------------| > #+TBLFM: $2 =3D if(vlen(@-I$1..@0$1) =3D=3D 1 || "$1" =3D=3D "nan", strin= g(""), > 0 * rev(@-I$1..@0$1)); E > > Distance to previous element: > > |-------+------------| > | value | difference | > |-------+------------| > | 12 | | > | 15 | 1 | > | | | > | 83 | 2 | > | | | > | | | > | | | > | 87 | 4 | > | | | > | | | > | | | > | 85 | 4 | > | | | > |-------+------------| > #+TBLFM: $2 =3D if(vlen(@-I$1..@0$1) =3D=3D 1 || "$1" =3D=3D "nan", strin= g(""), > find(0 * rev(@-I$1..@0$1), 0, 2) - 1); E > > Previous element: > > |-------+------------| > | value | difference | > |-------+------------| > | 12 | | > | 15 | 12 | > | | | > | 83 | 15 | > | | | > | | | > | | | > | 87 | 83 | > | | | > | | | > | | | > | 85 | 87 | > | | | > |-------+------------| > #+TBLFM: $2 =3D if(vlen(@-I$1..@0$1) =3D=3D 1 || "$1" =3D=3D "nan", strin= g(""), > subscr(rev(@-I$1..@0$1), find(0 * rev(@-I$1..@0$1), 0, 2)); E > > Combined: > > |-------+------------| > | value | difference | > |-------+------------| > | 12 | | > | 15 | 3 | > | | | > | 83 | 34 | > | | | > | | | > | | | > | 87 | 1 | > | | | > | | | > | | | > | 85 | -0.5 | > | | | > |-------+------------| > #+TBLFM: $2 =3D if(vlen(@-I$1..@0$1) =3D=3D 1 || "$1" =3D=3D "nan", strin= g(""), > ($1 - subscr(rev(@-I$1..@0$1), find(0 * rev(@-I$1..@0$1), 0, 2))) / > (find(0 * rev(@-I$1..@0$1), 0, 2) - 1)); E > =E2=80=8B =E2=80=8BLooks very interesting. I have to evaluate this. > For many here on the list it would probably be easier and more > interesting to write a TBLFM in Lisp. > =E2=80=8BI will look into that later. Would it then also be possible to fil= l several fields at the same time? At the moment I use the same checks for several fields. That is not really DRY. --=20 Cecil Westerhof --001a1138f6561d0a8a04fac6e0bc Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxkaXYgY2xhc3M9ImdtYWls X3F1b3RlIj4yMDE0LTA2LTAxIDE1OjE4IEdNVCswMjowMCBNaWNoYWVsIEJyYW5kIDxzcGFuIGRp cj0ibHRyIj4mbHQ7PGEgaHJlZj0ibWFpbHRvOm1pY2hhZWwuY2guYnJhbmRAZ21haWwuY29tIiB0 YXJnZXQ9Il9ibGFuayI+bWljaGFlbC5jaC5icmFuZEBnbWFpbC5jb208L2E+Jmd0Ozwvc3Bhbj46 PGJyPg0KPGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAw cHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRp bmctbGVmdDoxZXgiPkhpIENlY2lsPGJyPg0KPGJyPg0KT24gU3VuLCBKdW4gMSwgMjAxNCBhdCAy OjI0IFBNLCBDZWNpbCBXZXN0ZXJob2YgJmx0OzxhIGhyZWY9Im1haWx0bzpjbGR3ZXN0ZXJob2ZA Z21haWwuY29tIj5jbGR3ZXN0ZXJob2ZAZ21haWwuY29tPC9hPiZndDsgd3JvdGU6PGJyPg0KJmd0 OyBCdXQgd2hhdCBpZiBJIHdvdWxkIHdhbnQgdG8ga25vdyB0aGU8YnI+DQomZ3Q7IGRpZmZlcmVu Y2UgYmV0d2VlbiB0aGUgcHJldmlvdXMgZmlsbGVkIG9uZSwgZGl2aWRlZCBieSB0aGUgZGlzdGFu Y2U/PGJyPg0KJmd0Ozxicj4NCiZndDsgRm9yIGV4YW1wbGU6PGJyPg0KPGRpdiBjbGFzcz0iIj4m Z3Q7IHwtLS0tLS0tKy0tLS0tLS0tLS0tLXw8YnI+DQomZ3Q7IHwgdmFsdWUgfCBkaWZmZXJlbmNl IHw8YnI+DQomZ3Q7IHwtLS0tLS0tKy0tLS0tLS0tLS0tLXw8YnI+DQomZ3Q7IHwgwqAgwqAxMiB8 IMKgIMKgIMKgIMKgIMKgIMKgfDxicj4NCiZndDsgfCDCoCDCoDE1IHwgwqAgwqAgwqAgwqAgwqAz IHw8YnI+DQomZ3Q7IHwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+DQo8L2Rpdj4m Z3Q7IHwgwqAgwqA4MyB8IMKgIMKgIMKgIMKgIDM0IHw8YnI+DQomZ3Q7IHwgwqAgwqAgwqAgfCDC oCDCoCDCoCDCoCDCoCDCoHw8YnI+DQomZ3Q7IHwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDC oHw8YnI+DQomZ3Q7IHwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+DQomZ3Q7IHwg wqAgwqA4NyB8IMKgIMKgIMKgIMKgIMKgMSB8PGJyPg0KJmd0OyB8IMKgIMKgIMKgIHwgwqAgwqAg wqAgwqAgwqAgwqB8PGJyPg0KJmd0OyB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqB8PGJy Pg0KJmd0OyB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqB8PGJyPg0KJmd0OyB8IMKgIMKg ODUgfCDCoCDCoCDCoCAtMC41IHw8YnI+DQomZ3Q7IHwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDC oCDCoHw8YnI+DQomZ3Q7IHwtLS0tLS0tKy0tLS0tLS0tLS0tLXw8YnI+DQo8YnI+DQpNb3JlIGFz IGEgZGVtb25zdHJhdGlvbiBvZiB3aGF0IENhbGMgY2FuIGRvLCBkaXZpZGVkIHVwIGludG8gc29t ZTxicj4NCmludGVybWVkaWF0ZSBzdGVwczo8YnI+DQo8YnI+DQp8LS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18PGJyPg0KfCB2 YWx1ZSB8IGRpZmZlcmVuY2UgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8PGJyPg0KfC0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfDxicj4NCnwgwqAg wqAxMiB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+DQp8IMKgIMKgMTUgfCBbMTUs IDEyXSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+DQp8IMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgfDxicj4NCnwgwqAgwqA4MyB8IFs4MywgbmFuLCAxNSwgMTJdIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+DQp8IMKg IMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfDxicj4NCnwgwqAgwqAgwqAgfCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8PGJyPg0KfCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIHw8YnI+DQp8IMKgIMKgODcgfCBbODcsIG5hbiwgbmFuLCBuYW4sIDgz LCBuYW4sIDE1LCAxMl0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8PGJyPg0KfCDCoCDC oCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+DQp8IMKgIMKgIMKgIHwgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfDxicj4NCnwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCB8PGJyPg0KfCDCoCDCoDg1IHwgWzg1LCBuYW4sIG5hbiwgbmFuLCA4Nywg bmFuLCBuYW4sIG5hbiwgODMsIG5hbiwgMTUsIDEyXSB8PGJyPg0KfCDCoCDCoCDCoCB8IMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+DQp8LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18PGJyPg0KIytUQkxGTTogJDIg PSBpZih2bGVuKEAtSSQxLi5AMCQxKSA9PSAxIHx8ICZxdW90OyQxJnF1b3Q7ID09ICZxdW90O25h biZxdW90Oywgc3RyaW5nKCZxdW90OyZxdW90OyksPGJyPg0KcmV2KEAtSSQxLi5AMCQxKSk7IEU8 YnI+DQo8YnI+DQp8LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tfDxicj4NCnwgdmFsdWUgfCBkaWZmZXJlbmNlIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+DQp8LS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t fDxicj4NCnwgwqAgwqAxMiB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfDxicj4NCnwgwqAgwqAxNSB8 IFswLCAwXSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCB8PGJyPg0KfCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg fDxicj4NCnwgwqAgwqA4MyB8IFswLCBuYW4sIDAsIDBdIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+DQp8IMKgIMKgIMKgIHwgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqB8PGJyPg0KfCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfDxi cj4NCnwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+DQp8IMKgIMKgODcgfCBb MCwgbmFuLCBuYW4sIG5hbiwgMCwgbmFuLCAwLCAwXSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCB8PGJyPg0KfCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfDxicj4NCnwgwqAgwqAg wqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+DQp8IMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqB8PGJyPg0KfCDCoCDCoDg1IHwgWzAsIG5hbiwgbmFuLCBuYW4sIDAsIG5hbiwgbmFu LCBuYW4sIDAsIG5hbiwgMCwgMF0gfDxicj4NCnwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoHw8YnI+DQp8LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tfDxicj4NCiMrVEJMRk06ICQyID0gaWYodmxlbihALUkkMS4uQDAkMSkg PT0gMSB8fCAmcXVvdDskMSZxdW90OyA9PSAmcXVvdDtuYW4mcXVvdDssIHN0cmluZygmcXVvdDsm cXVvdDspLDxicj4NCjAgKiByZXYoQC1JJDEuLkAwJDEpKTsgRTxicj4NCjxicj4NCkRpc3RhbmNl IHRvIHByZXZpb3VzIGVsZW1lbnQ6PGJyPg0KPGRpdiBjbGFzcz0iIj48YnI+DQp8LS0tLS0tLSst LS0tLS0tLS0tLS18PGJyPg0KfCB2YWx1ZSB8IGRpZmZlcmVuY2UgfDxicj4NCnwtLS0tLS0tKy0t LS0tLS0tLS0tLXw8YnI+DQp8IMKgIMKgMTIgfCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+DQo8L2Rp dj58IMKgIMKgMTUgfCDCoCDCoCDCoCDCoCDCoDEgfDxicj4NCnwgwqAgwqAgwqAgfCDCoCDCoCDC oCDCoCDCoCDCoHw8YnI+DQp8IMKgIMKgODMgfCDCoCDCoCDCoCDCoCDCoDIgfDxicj4NCnwgwqAg wqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+DQp8IMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAg wqAgwqB8PGJyPg0KfCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgfDxicj4NCnwgwqAgwqA4 NyB8IMKgIMKgIMKgIMKgIMKgNCB8PGJyPg0KfCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKg fDxicj4NCnwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+DQp8IMKgIMKgIMKgIHwg wqAgwqAgwqAgwqAgwqAgwqB8PGJyPg0KfCDCoCDCoDg1IHwgwqAgwqAgwqAgwqAgwqA0IHw8YnI+ DQp8IMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqB8PGJyPg0KfC0tLS0tLS0rLS0tLS0tLS0t LS0tfDxicj4NCiMrVEJMRk06ICQyID0gaWYodmxlbihALUkkMS4uQDAkMSkgPT0gMSB8fCAmcXVv dDskMSZxdW90OyA9PSAmcXVvdDtuYW4mcXVvdDssIHN0cmluZygmcXVvdDsmcXVvdDspLDxicj4N CmZpbmQoMCAqIHJldihALUkkMS4uQDAkMSksIDAsIDIpIC0gMSk7IEU8YnI+DQo8YnI+DQpQcmV2 aW91cyBlbGVtZW50Ojxicj4NCjxkaXYgY2xhc3M9IiI+PGJyPg0KfC0tLS0tLS0rLS0tLS0tLS0t LS0tfDxicj4NCnwgdmFsdWUgfCBkaWZmZXJlbmNlIHw8YnI+DQp8LS0tLS0tLSstLS0tLS0tLS0t LS18PGJyPg0KfCDCoCDCoDEyIHwgwqAgwqAgwqAgwqAgwqAgwqB8PGJyPg0KPC9kaXY+fCDCoCDC oDE1IHwgwqAgwqAgwqAgwqAgMTIgfDxicj4NCnwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDC oHw8YnI+DQp8IMKgIMKgODMgfCDCoCDCoCDCoCDCoCAxNSB8PGJyPg0KfCDCoCDCoCDCoCB8IMKg IMKgIMKgIMKgIMKgIMKgfDxicj4NCnwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+ DQp8IMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqB8PGJyPg0KfCDCoCDCoDg3IHwgwqAgwqAg wqAgwqAgODMgfDxicj4NCnwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+DQp8IMKg IMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqB8PGJyPg0KfCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKg IMKgIMKgfDxicj4NCnwgwqAgwqA4NSB8IMKgIMKgIMKgIMKgIDg3IHw8YnI+DQp8IMKgIMKgIMKg IHwgwqAgwqAgwqAgwqAgwqAgwqB8PGJyPg0KfC0tLS0tLS0rLS0tLS0tLS0tLS0tfDxicj4NCiMr VEJMRk06ICQyID0gaWYodmxlbihALUkkMS4uQDAkMSkgPT0gMSB8fCAmcXVvdDskMSZxdW90OyA9 PSAmcXVvdDtuYW4mcXVvdDssIHN0cmluZygmcXVvdDsmcXVvdDspLDxicj4NCnN1YnNjcihyZXYo QC1JJDEuLkAwJDEpLCBmaW5kKDAgKiByZXYoQC1JJDEuLkAwJDEpLCAwLCAyKSk7IEU8YnI+DQo8 YnI+DQpDb21iaW5lZDo8YnI+DQo8ZGl2IGNsYXNzPSIiPjxicj4NCnwtLS0tLS0tKy0tLS0tLS0t LS0tLXw8YnI+DQp8IHZhbHVlIHwgZGlmZmVyZW5jZSB8PGJyPg0KfC0tLS0tLS0rLS0tLS0tLS0t LS0tfDxicj4NCnwgwqAgwqAxMiB8IMKgIMKgIMKgIMKgIMKgIMKgfDxicj4NCnwgwqAgwqAxNSB8 IMKgIMKgIMKgIMKgIMKgMyB8PGJyPg0KfCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgfDxi cj4NCjwvZGl2PnwgwqAgwqA4MyB8IMKgIMKgIMKgIMKgIDM0IHw8YnI+DQp8IMKgIMKgIMKgIHwg wqAgwqAgwqAgwqAgwqAgwqB8PGJyPg0KfCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgfDxi cj4NCnwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+DQp8IMKgIMKgODcgfCDCoCDC oCDCoCDCoCDCoDEgfDxicj4NCnwgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+DQp8 IMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqB8PGJyPg0KfCDCoCDCoCDCoCB8IMKgIMKgIMKg IMKgIMKgIMKgfDxicj4NCnwgwqAgwqA4NSB8IMKgIMKgIMKgIC0wLjUgfDxicj4NCnwgwqAgwqAg wqAgfCDCoCDCoCDCoCDCoCDCoCDCoHw8YnI+DQp8LS0tLS0tLSstLS0tLS0tLS0tLS18PGJyPg0K IytUQkxGTTogJDIgPSBpZih2bGVuKEAtSSQxLi5AMCQxKSA9PSAxIHx8ICZxdW90OyQxJnF1b3Q7 ID09ICZxdW90O25hbiZxdW90Oywgc3RyaW5nKCZxdW90OyZxdW90OyksPGJyPg0KKCQxIC0gc3Vi c2NyKHJldihALUkkMS4uQDAkMSksIGZpbmQoMCAqIHJldihALUkkMS4uQDAkMSksIDAsIDIpKSkg Lzxicj4NCihmaW5kKDAgKiByZXYoQC1JJDEuLkAwJDEpLCAwLCAyKSAtIDEpKTsgRTxicj48L2Js b2NrcXVvdGU+PGRpdiBjbGFzcz0iZ21haWxfZGVmYXVsdCIgc3R5bGU9ImZvbnQtZmFtaWx5OmNv dXJpZXIgbmV3LG1vbm9zcGFjZTtkaXNwbGF5OmlubGluZSI+wqDigIs8YnI+4oCLTG9va3MgdmVy eSBpbnRlcmVzdGluZy4gSSBoYXZlIHRvIGV2YWx1YXRlIHRoaXMuPC9kaXY+PGRpdj7CoDwvZGl2 PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBw eCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxl ZnQ6MWV4Ij4NCjxkaXYgY2xhc3M9ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTpj b3VyaWVyIG5ldyxtb25vc3BhY2U7ZGlzcGxheTppbmxpbmUiPkZvciBtYW55IGhlcmUgb24gdGhl IGxpc3QgaXQgd291bGQgcHJvYmFibHkgYmUgZWFzaWVyIGFuZCBtb3JlPGJyPjwvZGl2Pg0KaW50 ZXJlc3RpbmcgdG8gd3JpdGUgYSBUQkxGTSBpbiBMaXNwLjxicj48L2Jsb2NrcXVvdGU+PGRpdj48 YnI+PGRpdiBjbGFzcz0iZ21haWxfZGVmYXVsdCIgc3R5bGU9ImZvbnQtZmFtaWx5OmNvdXJpZXIg bmV3LG1vbm9zcGFjZSI+4oCLSSB3aWxsIGxvb2sgaW50byB0aGF0IGxhdGVyLiBXb3VsZCBpdCB0 aGVuIGFsc28gYmUgcG9zc2libGUgdG8gZmlsbCBzZXZlcmFsIGZpZWxkcyBhdCB0aGUgc2FtZSB0 aW1lPyBBdCB0aGUgbW9tZW50IEkgdXNlIHRoZSBzYW1lIGNoZWNrcyBmb3Igc2V2ZXJhbCBmaWVs ZHMuIFRoYXQgaXMgbm90IHJlYWxseSBEUlkuPGJyPg0KPC9kaXY+PC9kaXY+PC9kaXY+PGJyPi0t IDxicj5DZWNpbCBXZXN0ZXJob2YNCjwvZGl2PjwvZGl2Pg0K --001a1138f6561d0a8a04fac6e0bc--