From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Ryan B Newsgroups: gmane.emacs.bugs Subject: bug#25682: 25.1; font-lock: fontifying too slow in some modes on very long lines Date: Fri, 10 Feb 2017 13:33:52 -0800 Message-ID: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a1141ddd27d3f5e054833dc12 X-Trace: blaine.gmane.org 1486763218 14304 195.159.176.226 (10 Feb 2017 21:46:58 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 10 Feb 2017 21:46:58 +0000 (UTC) To: 25682@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Feb 10 22:46:51 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccJ1m-0003G0-3y for geb-bug-gnu-emacs@m.gmane.org; Fri, 10 Feb 2017 22:46:50 +0100 Original-Received: from localhost ([::1]:46152 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ccJ1r-0002Ni-LC for geb-bug-gnu-emacs@m.gmane.org; Fri, 10 Feb 2017 16:46:55 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46429) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ccJ07-0000wT-U6 for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 16:45:13 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ccJ03-0002xJ-4a for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 16:45:07 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:36891) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ccJ02-0002wf-WC for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 16:45:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ccJ02-0006fY-G3 for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 16:45:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Ryan B Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 10 Feb 2017 21:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 25682 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.148676310025609 (code B ref -1); Fri, 10 Feb 2017 21:45:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 10 Feb 2017 21:45:00 +0000 Original-Received: from localhost ([127.0.0.1]:35090 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccIzy-0006ex-DQ for submit@debbugs.gnu.org; Fri, 10 Feb 2017 16:44:59 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:52852) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccIqA-0006Qw-6x for submit@debbugs.gnu.org; Fri, 10 Feb 2017 16:34:51 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ccIq0-00007Y-4n for submit@debbugs.gnu.org; Fri, 10 Feb 2017 16:34:44 -0500 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:43571) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ccIpz-00007S-WB for submit@debbugs.gnu.org; Fri, 10 Feb 2017 16:34:40 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43747) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ccIpu-00035t-I2 for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 16:34:39 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ccIpp-0008Uz-Lj for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 16:34:34 -0500 Original-Received: from smtp3.cs.stanford.edu ([171.64.64.27]:48271) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ccIpp-0008UC-4Y for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 16:34:29 -0500 Original-Received: from mail-vk0-f52.google.com ([209.85.213.52]:33803) by smtp3.cs.Stanford.EDU with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.88) (envelope-from ) id 1ccIpk-0001QB-BA for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 13:34:27 -0800 Original-Received: by mail-vk0-f52.google.com with SMTP id r136so34818686vke.1 for ; Fri, 10 Feb 2017 13:34:24 -0800 (PST) X-Gm-Message-State: AMke39kWp9eCE745EN6pVU58M9egu+wQPf4RSVe4LhC9ID6HlrPAaVbEaGRh6DhdNQgmdFiLddEifx/UNQxG6w== X-Received: by 10.31.155.75 with SMTP id d72mr5163897vke.55.1486762463277; Fri, 10 Feb 2017 13:34:23 -0800 (PST) Original-Received: by 10.176.65.134 with HTTP; Fri, 10 Feb 2017 13:33:52 -0800 (PST) X-Gmail-Original-Message-ID: X-Scan-Signature: caa97369d9b0a96268ab7ebed178327c X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Mailman-Approved-At: Fri, 10 Feb 2017 16:44:57 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:129221 Archived-At: --001a1141ddd27d3f5e054833dc12 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable i occasionally have very long lines in some buffers, e.g. 10k-20k characters. font-lock-mode often hangs for a long time (5-10s) when fontifying these lines. this has evidently been a known issue with font-lock-mode for a long time, and inspired a number of optimizations and workarounds: jit-lock/lazy-lock (formerly fast-lock), font-lock-maximum-decoration, https://www.emacswiki.org/emacs/SoLong , etc. they all work by deferring, downgrading, or disabling fontification in certain buffers. that's nice, but i'd ideally like to keep font-lock-mode on in buffers where very long lines appear, and still prevent the hangs. i'm considering adding an opt-in max line length to font-lock-mode, after which it would stop fontifying or evaluating regexps. i'd love to hear feedback on whether this makes sense! here are steps that reproduce this, with gnu emacs 25.1.1 on mac os x: 1. put the single long line under the =3D=3D=3D below (18572 chars long) in= to a file 2. run emacs -Q 3. type C-x C-f RET to open the file 4. type M-x compilation-mode RET this consistently hangs emacs for 9-10s for me on modern hardware, a 2014 retina macbook pro. =3D=3D=3D [2017-02-10T07:35:45Z django.db.backends] DEBUG: (0.057) SELECT "xxx_xxxxxx_xxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", MAX("xxx_xxxxxx_xxxxxxxxxxxxxxxxxx"."xx") AS "xxxxxxxx_xx", COUNT(DISTINCT "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx") AS "xxx_xxxxxxx", MAX("xxxxxxx_xxxxxx"."xxxx_xx") AS "xxxxxx_xxxx_xx", STRING_AGG("xxxxxxx_xxxxxx"."xxx_xxxxxxx", ' ') AS "xxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xx= xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xxx_xxxxxxxx= xx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx= ", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx", T11."xxxxxxxx", T11."xxxx_xxxxx", T11."xx_xxxxxxxxx", T11."xxxxx", T11."xxxxxxxxxxx_xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", T11."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxxxx_xxxxxx", T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", T11."xxxxx_xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx", T12."xx", T12."xxxxxxx_xx", T12."xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", T12."xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_xxxxxx", T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx", T12."xxxx", T12."xxxxx", T12."xxxxxxx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxx= xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx_xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxxxxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx" FROM "xxx_xxxxxx_xxxxxxxx" LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx" =3D "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" =3D "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx"."xxx_xxxxx_xx" ) LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxx_xxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" =3D "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxxxx_xx" ) LEFT OUTER JOIN "xxxxxxx_xxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx" =3D "xxxxxxx_xxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx" =3D "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx" =3D "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx" ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx" =3D "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxxxx_xxxxxxxxxxxxxxxxx" ON ( "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx" =3D "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxx_xxxxxxxxx" T11 ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx" =3D T11."xx" ) LEF= T OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" T12 ON ( T11."xx" =3D T12."xxxx_xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx" ON ( T12."xx" =3D "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx" =3D "xxxxxxxx_xxxxxxxx"."xx" ) WHERE (N= OT ("xxx_xxxxxx_xxxxxxxx"."xxxxx" =3D 'xxxxxxxxx') AND NOT ("xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx" < '2015-04-20T00:00:00-07:00'::xxxxxxxxxxx) AND NOT ("xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IN ('xx', 'xx') AND "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IS NOT NULL)) GROUP BY "xxx_xxxxxx_xxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xx= xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xxx_xxxxxxxx= xx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx= ", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx", T11."xxxxxxxx", T11."xxxx_xxxxx", T11."xx_xxxxxxxxx", T11."xxxxx", T11."xxxxxxxxxxx_xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", T11."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxxxx_xxxxxx", T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", T11."xxxxx_xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx", T12."xx", T12."xxxxxxx_xx", T12."xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", T12."xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_xxxxxx", T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx", T12."xxxx", T12."xxxxx", T12."xxxxxxx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxx= xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx_xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxxxxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx"; xxxx=3D('xxxxxxxxx', datetime.datetime(2015, 4, 20, 0, 0, tzinfo=3D), 'ff', 'qa') =3D=3D=3D In GNU Emacs 25.1.1 (x86_64-apple-darwin15.6.0, NS appkit-1404.47 Version 10.11.6 (Build 15G1004)) of 2016-09-17 built on hell.PK5001Z Windowing system distributor 'Apple', version 10.3.1404 Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=3D/usr/local/share/emacs/site-lisp --infodir=3D/usr/local/Cellar/emacs/25.1/share/info/emacs --prefix=3D/usr/local/Cellar/emacs/25.1 --without-x --with-xml2 --without-dbus --without-gnutls --with-rsvg --with-ns --disable-ns-self-contained' Configured features: JPEG RSVG NOTIFY ACL LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: JavaScript Minor modes in effect: helm-mode: t diff-auto-refine-mode: t rainbow-identifiers-mode: t rainbow-delimiters-mode: t async-bytecomp-package-mode: t global-auto-revert-mode: t desktop-save-mode: t savehist-mode: t show-paren-mode: t delete-selection-mode: t recentf-mode: t global-subword-mode: t subword-mode: t shell-dirtrack-mode: t global-eldoc-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent messages: Saving file /Users/ryan/.emacs.d/recentf... Wrote /Users/ryan/.emacs.d/recentf Desktop saved in ~/.emacs.d/ Saving file /Users/ryan/.emacs.d/recentf... Wrote /Users/ryan/.emacs.d/recentf Reverting buffer =E2=80=98recentf=E2=80=99. next-line: End of buffer [2 times] Mark set [5 times] Saving file /tmp/*scratch*... Wrote /tmp/*scratch* Load-path shadows: /Users/ryan/.emacs.d/elpa/seq-2.19/seq hides /usr/local/Cellar/emacs/25.1/share/emacs/25.1/lisp/emacs-lisp/seq Features: (shadow sort mail-extr emacsbug sendmail ibuf-ext man vc-annotate log-view pcmpl-unix vc-bzr vc-src vc-sccs vc-cvs vc-rcs dabbrev image-file dirtrack emacs-lock manoj-dark-theme ibuffer eieio-opt find-func cus-edit rst fillcode cc-bytecomp make-mode filecache tramp-cache conf-mode helm-command vc-svn helm-elisp helm-eval edebug sql view json-mode json-reformat json-snatcher misearch multi-isearch ido ess-toolbar ess-mouse mouseme ess-menu ess-swv ess-noweb ess-noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-l ess-sas-a ess-sta-d ess-sta-l make-regexp ess-sp6-d ess-dde ess-sp3-d ess-julia julia-mode ess-r-d ess-r-syntax ess-r-completion ess-roxy essddr hideshow ess-help ess-r-package ess-s-l ess-site ess ess-inf ess-tracebug ess-mode ess-noweb-mode ess-utils ess-generics cl ess-custom ess-compat nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok php-mode derived speedbar sb-image ezimage dframe flymake cc-langs smerge-mode vc-dir ewoc vc vc-dispatcher winner yaml-mode jka-compr helm-mode vc-git diff-mode rainbow-identifiers color rainbow-delimiters helm-misc helm-files image-dired dired-x dired-aux helm-buffers helm-elscreen helm-tags helm-bookmark helm-adaptive helm-info bookmark pp helm-locate helm-grep helm-regexp helm-external helm-net browse-url xml helm-utils helm-help helm-types helm-config helm-easymenu async-bytecomp async helm edmacro kmacro helm-source helm-multi-match helm-lib midnight autorevert filenotify desktop frameset savehist paren redo+ delsel warnings grep cus-start cus-load git-link dash-at-point recentf tree-widget wid-edit cap-words superword subword jade-mode js imenu cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs python tramp-sh tramp tramp-compat tramp-loaddefs trampver shell pcomplete sh-script executable sgml-mode go-mode url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap find-file ffap etags xref project compile comint ansi-color css-mode smie markdown-mode thingatpt noutline outline log-edit easy-mmode message dired format-spec rfc822 mml mml-sec epg mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils gmm-utils mailheader ring pcvs-util add-log finder-inf gh-common gh-profile url-parse auth-source gnus-util mm-util help-fns mail-prsvr password-cache url-vars rx s marshal cl-seq eieio-compat ht json map dash eieio eieio-core cl-macs info package epg-config seq byte-opt gv bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs cl-lib subr-x pcase advice server time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win ucs-normalize term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote kqueue cocoa ns multi-tty make-network-process emacs) Memory information: ((conses 16 5126063 736652) (symbols 48 53998 0) (miscs 40 3720 24660) (strings 32 157538 77287) (string-bytes 1 5024002) (vectors 16 90573) (vector-slots 8 2240527 189813) (floats 8 946 1835) (intervals 56 1059644 6492) (buffers 976 638)) --=20 https://snarfed.org/ --001a1141ddd27d3f5e054833dc12 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
i occasionally have very long lines in some buffers, e.g. = 10k-20k characters. font-lock-mode often hangs for a long time (5-10s) when= fontifying these lines.

this has evidently been a known issue with = font-lock-mode for a long time, and inspired a number of optimizations and = workarounds: jit-lock/lazy-lock (formerly fast-lock), font-lock-maximum-dec= oration, https://www.ema= cswiki.org/emacs/SoLong , etc. they all work by deferring, downgrading,= or disabling fontification in certain buffers.

that's nice, but= i'd ideally like to keep font-lock-mode on in buffers where very long = lines appear, and still prevent the hangs. i'm considering adding an op= t-in max line length to font-lock-mode, after which it would stop fontifyin= g or evaluating regexps. i'd love to hear feedback on whether this make= s sense!

here are steps that reproduce this, with gnu emacs 25.1.1 o= n mac os x:

1. put the single long line under the =3D=3D=3D below (1= 8572 chars long) into a file
2. run emacs -Q
3. type C-x C-f <file= name> RET to open the file
4. type M-x compilation-mode RET

th= is consistently hangs emacs for 9-10s for me on modern hardware, a 2014 ret= ina macbook pro.

=3D=3D=3D

[2017-02-10T07:35:45Z django.db.ba= ckends] DEBUG: (0.057) SELECT "xxx_xxxxxx_xxxxxxxx"."xx"= ;, "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx= _xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx".&qu= ot;xxxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_= xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xx= x_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxx= xx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxx= xxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx"= , "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", "xxx_xxxxxx_xxx= xxxxx"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_xxxxxxxx"= ."xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxx= x_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", = "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", "xxx_xx= xxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxx= xx"."xxxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_= xx_xxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx",= "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_x= xxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx".&quo= t;xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx",= "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", MAX("xxx_xx= xxxx_xxxxxxxxxxxxxxxxxx"."xx") AS "xxxxxxxx_xx", C= OUNT(DISTINCT "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx"= ) AS "xxx_xxxxxxx", MAX("xxxxxxx_xxxxxx"."xxxx_xx&= quot;) AS "xxxxxx_xxxx_xx", STRING_AGG("xxxxxxx_xxxxxx"= ."xxx_xxxxxxx", ' ') AS "xxx_xxxxxxxx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxx= xxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx= xx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_x= xxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx= xx_xxxxxxxxxxxxxx"."xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xx= xxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxx= x_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", "xxx= xxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", "xxxxx= xxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", &quo= t;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", = "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx&= quot;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxx= x_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx= xxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxx= x"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxx= xx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xxxxxxx_xx= xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxx= x_xxxxxxx_xxxx_xxx_xxxxxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxx= xxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", "xx= xxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx&= quot;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx= xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xx= xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxx= xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_= xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx"= ;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx",= "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx"= ;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx&= quot;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx&quo= t;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", "= ;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx= _xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_x= xxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxx= xxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxx= xxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxx= x_xxxxxxxxxxxxxxx"."xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxx= xxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxx= xxxx"."xxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx= "."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx".&= quot;xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx".&q= uot;xxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."= ;xxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."= xxxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx".&qu= ot;xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx&= quot;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1&= quot;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx",= "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxx= xxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_x= x", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx= _xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", &qu= ot;xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx= xxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxx= x_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxx= xxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxx= xxxxxxxx"."xxxxxxxx_xx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxx= xxxxxx"."xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx&qu= ot;."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_= xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", = "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxx= xxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxxxx_xxxx= xxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxx= xxxxx"."xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"= ;."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."= xxxxxxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx= xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx"= ;, "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", "xxxxxxxx= xx_xxxxxxxxxxxxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxxxxxxxx= xxxxxx"."xxxxxxx_xxxx1", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx&= quot;."xxxxxxx_xxxx2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx".&= quot;xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx= xxxx_xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx= xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_= xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11= ."xx", T11."xxxxxxxx", T11."xxxx_xxxxx", T11.= "xx_xxxxxxxxx", T11."xxxxx", T11."xxxxxxxxxxx_xxxx= xxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", T1= 1."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", = T11."xxxxx_xxxxxx", T11."xxxxxxx_xxxxxxx_xx", T11."= ;xxxxxxx_xxxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xx_xxxxx", T11.&= quot;xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", T11."xxxxx_= xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx&qu= ot;, T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxx= xxx_xx", T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxx= xxx_xxxxxx", T12."xx", T12."xxxxxxx_xx", T12."= ;xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", T12.&qu= ot;xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T1= 2."xxx_xxxxxx", T12."xxxxxxx_xxxx", T12."xxxxxxxxx= xx_xxxx", T12."xxxx", T12."xxxxx", T12."xxxxx= xx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_= xxx", T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", "xxxxxxxx_x= xxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxx= xxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxx= x_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxx= xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx= _xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx&qu= ot;."xxxxxxx_xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx= "."xxxxxxx_xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxx= xxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_= xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxx= xx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx= _xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", "xxxxxxxx_xxx= xxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxxx= xxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xx= x", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx= _xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxx= x_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx".&quo= t;xxxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx&q= uot;, "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "= xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_x= xxxxxxxxxxxxxx"."xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx&quo= t;."xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx= xxxxx_xxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx= xx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", = "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", "x= xx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_x= xxxxxxxxxxxxxx"."xx_xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxx= xx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx",= "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxx= xxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxx= xxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "= xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx&quo= t;."xxxxxxxx_xxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxx= xxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_= xxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxx= xxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxxxxx&= quot;."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_x= xxx" FROM "xxx_xxxxxx_xxxxxxxx" LEFT OUTER JOIN "xxx_xx= xxxx_xxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxx= xxxxxx_xxxx_xx" =3D "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx&qu= ot; ) LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx" ON ( "= xxx_xxxxxx_xxxxxxxx"."xx" =3D "xxx_xxxxxx_xxxxxxxxxxxxx= xxxxx"."xxx_xxxxx_xx" ) LEFT OUTER JOIN "xxx_xxxxxx_xxx= xxxxx_xxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" =3D= "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxxxx_xx" ) LEFT OUT= ER JOIN "xxxxxxx_xxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx_xxxxxxx&q= uot;."xxxxxx_xx" =3D "xxxxxxx_xxxxxx"."xx" ) = LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx" ON ( "x= xx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx" =3D "xxxxxxxx_= xxxxxxxxxx_xxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxx= xxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxx= xxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx" =3D "xxxxxxxx= _xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xx= xxxxxxxx_xxxxxxxxxxxxxxxxxxxxx" ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxx= xxxxxxxx"."xxxxxxxxxxxx_xx" =3D "xxxxxxxxxx_xxxxxxxxxxx= xxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxxxx_xxxxxxxx= xxxxxxxxx" ON ( "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxx= xxxxxx_xx" =3D "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx"= ) LEFT OUTER JOIN "xxxxx_xxxxxxxxx" T11 ON ( "xxxxxxxx_xxxx= xxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx" =3D T11."xx"= ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" T12 ON (= T11."xx" =3D T12."xxxx_xx" ) LEFT OUTER JOIN "xxx= xxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx" ON ( T12."xx" =3D "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx" )= LEFT OUTER JOIN "xxxxxxxx_xxxxxxxx" ON ( "xxx_xxxxxx_xxxxxx= xx"."xxxxxxxx_xx" =3D "xxxxxxxx_xxxxxxxx"."xx= " ) WHERE (NOT ("xxx_xxxxxx_xxxxxxxx"."xxxxx" =3D = 'xxxxxxxxx') AND NOT ("xxx_xxxxxx_xxxxxxxx"."xxxxxxx= _xx" < '2015-04-20T00:00:00-07:00'::xxxxxxxxxxx) AND NOT (&= quot;xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IN ('xx',= 'xx') AND "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx&quo= t; IS NOT NULL)) GROUP BY "xxx_xxxxxx_xxxxxxxx"."xx", &= quot;xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxx= xxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."x= xxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx&q= uot;, "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xx= xxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx&q= uot;."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx= xx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", &q= uot;xxx_xxxxxx_xxxxxxxx"."xxxx_xx", "xxx_xxxxxx_xxxxxxx= x"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_xxxxxxxx".&qu= ot;xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx= xx", "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", &quo= t;xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", "xxx_xxxxxx= _xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx&q= uot;."xxxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_x= xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", &qu= ot;xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxx= xxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xx= xxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", &qu= ot;xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxx= xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxx= xxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx= "."xxxxxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxx= xxxx"."xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx&= quot;."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxx= xxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxx= xxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", "xxxxxxxx_xxxxxxxxx= x_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", "xxxxxxxx_xx= xxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", "xxxxxxx= x_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx&= quot;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx= xxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."= ;xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxx= xxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xxxxxxx_xxxxxx", &= quot;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxx= x_xxx_xxxxxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx&qu= ot;."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", "xxxxxxxx_xxxxxx= xxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", &qu= ot;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", &= quot;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", &qu= ot;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", = "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", "xxxx= xxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", "xxxxxx= xx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxx= xxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxx= xxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxx= xxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_x= xxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxx= xxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxx= xxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxx= xxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxx= xxxx"."xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"= ."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx".&q= uot;xxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."= xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xx= xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxx= x", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx= ", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_x= xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx"= , "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxx= xx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx"= , "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", &quo= t;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", &q= uot;xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx= _xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxx= xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxx= xxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx&= quot;."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"= ;."xxxxxxxx_xx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx".= "xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx&= quot;, "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", &qu= ot;xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxx= xxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxxxx_xxxxxx= xxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx= "."xxxxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx".&= quot;xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx= xx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_x= xxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx&qu= ot;, "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", "xxxx= xxxxxx_xxxxxxxxxxxxxxxxx"."xxx", "xxxxxxxxxx_xxxxxxxxxx= xxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx".= "xxxxxxx_xxxx1", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."x= xxxxxx_xxxx2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_= xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx&qu= ot;, "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", = "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", &= quot;xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx&quo= t;, T11."xxxxxxxx", T11."xxxx_xxxxx", T11."xx_xxxx= xxxxx", T11."xxxxx", T11."xxxxxxxxxxx_xxxxxxx_xxxxx&quo= t;, T11."xxxxxxx_xx", T11."xxxxx_xxxx", T11."xxxx_= xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxx= xx_xxxxxx", T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxx= xxxx_xxxxxxx_xx", T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_= xxx_xxxxxxxx", T11."xx_xxxxx", T11."xxxxx_xxxxx_xxxxx_x= xxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", T11.&quo= t;xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx",= T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx&qu= ot;, T12."xx", T12."xxxxxxx_xx", T12."xxxxxxx_xx&q= uot;, T12."xxx", T12."xxxxx_xxxx", T12."xxxx_xxxx&= quot;, T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_x= xxxxx", T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx"= , T12."xxxx", T12."xxxxx", T12."xxxxxxx_xxxx1"= ;, T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", T1= 2."xxxx_xx", T12."xxxxxxxxxxxx_xx", "xxxxxxxx_xxxx= xxxxxx_xxxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxx= xxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxx= xxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxx= xxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_= xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", = "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxx= x_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxx= xxxx_xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."= xxxxxxx_xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx&qu= ot;."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxx= xxx"."xxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxx= xxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxx= xxxx"."xxxxxxxx_xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxx= xxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxx= xx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxx= xxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", &quo= t;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx&quo= t;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxx= x", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx= _xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", "x= xx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xx= xxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxx= x"."xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx= x_xxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx= x", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx"= , "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxx_xxx= xxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", "xxx_xxxxxx_xxx= xxxxxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxx= x"."xx_xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx".&quo= t;xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", "xxxxxx= xx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx".&qu= ot;xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx&qu= ot;, "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxx= xxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxx= xxxx_xxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx= _xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", = "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx&= quot;."xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxxxxx"."x= x_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx"; xx= xx=3D('xxxxxxxxx', datetime.datetime(2015, 4, 20, 0, 0, tzinfo=3D&l= t;DstTzInfo 'America/Los_Angeles' PDT-1 day, 17:00:00 DST>), = 9;ff', 'qa')


=3D=3D=3D



In GNU Emacs 2= 5.1.1 (x86_64-apple-darwin15.6.0, NS appkit-1404.47 Version 10.11.6 (Build = 15G1004))
=C2=A0of 2016-09-17 built on hell.PK5001Z
Windowing system = distributor 'Apple', version 10.3.1404
Configured using:
=C2= =A0'configure --disable-dependency-tracking --disable-silent-rules
= =C2=A0--enable-locallisppath=3D/usr/local/share/emacs/site-lisp
=C2=A0--= infodir=3D/usr/local/Cellar/emacs/25.1/share/info/emacs
=C2=A0--prefix= =3D/usr/local/Cellar/emacs/25.1 --without-x --with-xml2
=C2=A0--without-= dbus --without-gnutls --with-rsvg --with-ns
=C2=A0--disable-ns-self-cont= ained'

Configured features:
JPEG RSVG NOTIFY ACL LIBXML2 ZLIB= TOOLKIT_SCROLL_BARS NS

Important settings:
=C2=A0 value of $LANG= : en_US.UTF-8
=C2=A0 locale-coding-system: utf-8-unix

Major mode:= JavaScript

Minor modes in effect:
=C2=A0 helm-mode: t
=C2=A0 = diff-auto-refine-mode: t
=C2=A0 rainbow-identifiers-mode: t
=C2=A0 ra= inbow-delimiters-mode: t
=C2=A0 async-bytecomp-package-mode: t
=C2=A0= global-auto-revert-mode: t
=C2=A0 desktop-save-mode: t
=C2=A0 savehi= st-mode: t
=C2=A0 show-paren-mode: t
=C2=A0 delete-selection-mode: t<= br>=C2=A0 recentf-mode: t
=C2=A0 global-subword-mode: t
=C2=A0 subwor= d-mode: t
=C2=A0 shell-dirtrack-mode: t
=C2=A0 global-eldoc-mode: t=C2=A0 mouse-wheel-mode: t
=C2=A0 file-name-shadow-mode: t
=C2=A0 g= lobal-font-lock-mode: t
=C2=A0 font-lock-mode: t
=C2=A0 auto-composit= ion-mode: t
=C2=A0 auto-encryption-mode: t
=C2=A0 auto-compression-mo= de: t
=C2=A0 column-number-mode: t
=C2=A0 line-number-mode: t
=C2= =A0 transient-mark-mode: t

Recent messages:
Saving file /Users/ry= an/.emacs.d/recentf...
Wrote /Users/ryan/.emacs.d/recentf
Desktop sav= ed in ~/.emacs.d/
Saving file /Users/ryan/.emacs.d/recentf...
Wrote /= Users/ryan/.emacs.d/recentf
Reverting buffer =E2=80=98recentf=E2=80=99.<= br>next-line: End of buffer [2 times]
Mark set [5 times]
Saving file = /tmp/*scratch*...
Wrote /tmp/*scratch*

Load-path shadows:
/Use= rs/ryan/.emacs.d/elpa/seq-2.19/seq hides /usr/local/Cellar/emacs/25.1/share= /emacs/25.1/lisp/emacs-lisp/seq

Features:
(shadow sort mail-extr = emacsbug sendmail ibuf-ext man vc-annotate
log-view pcmpl-unix vc-bzr vc= -src vc-sccs vc-cvs vc-rcs dabbrev
image-file dirtrack emacs-lock manoj-= dark-theme ibuffer eieio-opt
find-func cus-edit rst fillcode cc-bytecomp= make-mode filecache
tramp-cache conf-mode helm-command vc-svn helm-elis= p helm-eval edebug
sql view json-mode json-reformat json-snatcher misear= ch multi-isearch
ido ess-toolbar ess-mouse mouseme ess-menu ess-swv ess-= noweb
ess-noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-less-sas-a ess-sta-d ess-sta-l make-regexp ess-sp6-d ess-dde ess-sp3-d
= ess-julia julia-mode ess-r-d ess-r-syntax ess-r-completion ess-roxy
essd= dr hideshow ess-help ess-r-package ess-s-l ess-site ess ess-inf
ess-trac= ebug ess-mode ess-noweb-mode ess-utils ess-generics cl
ess-custom ess-co= mpat nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml
rng-valid rng-loc = rng-uri rng-parse nxml-parse rng-match rng-dt rng-util
rng-pttrn nxml-ns= nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph
nxml-enc xmltok php-= mode derived speedbar sb-image ezimage dframe
flymake cc-langs smerge-mo= de vc-dir ewoc vc vc-dispatcher winner
yaml-mode jka-compr helm-mode vc-= git diff-mode rainbow-identifiers color
rainbow-delimiters helm-misc hel= m-files image-dired dired-x dired-aux
helm-buffers helm-elscreen helm-ta= gs helm-bookmark helm-adaptive
helm-info bookmark pp helm-locate helm-gr= ep helm-regexp helm-external
helm-net browse-url xml helm-utils helm-hel= p helm-types helm-config
helm-easymenu async-bytecomp async helm edmacro= kmacro helm-source
helm-multi-match helm-lib midnight autorevert fileno= tify desktop
frameset savehist paren redo+ delsel warnings grep cus-star= t cus-load
git-link dash-at-point recentf tree-widget wid-edit cap-words= superword
subword jade-mode js imenu cc-mode cc-fonts cc-guess cc-menus= cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs python tramp-sh tr= amp
tramp-compat tramp-loaddefs trampver shell pcomplete sh-script
ex= ecutable sgml-mode go-mode url url-proxy url-privacy url-expand
url-meth= ods url-history url-cookie url-domsuf url-util mailcap find-file
ffap et= ags xref project compile comint ansi-color css-mode smie
markdown-mode t= hingatpt noutline outline log-edit easy-mmode message
dired format-spec = rfc822 mml mml-sec epg mm-decode mm-bodies mm-encode
mail-parse rfc2231 = rfc2047 rfc2045 ietf-drums mailabbrev mail-utils
gmm-utils mailheader ri= ng pcvs-util add-log finder-inf gh-common
gh-profile url-parse auth-sour= ce gnus-util mm-util help-fns mail-prsvr
password-cache url-vars rx s ma= rshal cl-seq eieio-compat ht json map
dash eieio eieio-core cl-macs info= package epg-config seq byte-opt gv
bytecomp byte-compile cl-extra help-= mode easymenu cconv cl-loaddefs
cl-lib subr-x pcase advice server time-d= ate mule-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-f= loat-type mwheel ns-win
ucs-normalize term/common-win tool-bar dnd fonts= et image regexp-opt
fringe tabulated-list newcomment elisp-mode lisp-mod= e prog-mode register
page menu-bar rfn-eshadow timer select scroll-bar m= ouse jit-lock
font-lock syntax facemenu font-core frame cl-generic cham = georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korea= n
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european<= br>ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-c= mpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs but= ton faces cus-face macroexp files text-properties overlay
sha1 md5 base6= 4 format env code-pages mule custom widget
hashtable-print-readable back= quote kqueue cocoa ns multi-tty
make-network-process emacs)

Memor= y information:
((conses 16 5126063 736652)
=C2=A0(symbols 48 53998 0)=
=C2=A0(miscs 40 3720 24660)
=C2=A0(strings 32 157538 77287)
=C2= =A0(string-bytes 1 5024002)
=C2=A0(vectors 16 90573)
=C2=A0(vector-sl= ots 8 2240527 189813)
=C2=A0(floats 8 946 1835)
=C2=A0(intervals 56 1= 059644 6492)
=C2=A0(buffers 976 638))


--
https://snarfed.org/
--001a1141ddd27d3f5e054833dc12--