Hex Artifact Content
Not logged in

Artifact ea468897fe2aa705ca51491bf045342827b259d4:


0000: 5c 20 67 2b 20 73 63 68 65 6d 65 0a 0a 5c 20 43  \ g+ scheme..\ C
0010: 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31  opyright (C) 201
0020: 38 20 20 20 42 65 72 6e 64 20 50 61 79 73 61 6e  8   Bernd Paysan
0030: 0a 0a 5c 20 54 68 69 73 20 70 72 6f 67 72 61 6d  ..\ This program
0040: 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72   is free softwar
0050: 65 3a 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73  e: you can redis
0060: 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f  tribute it and/o
0070: 72 20 6d 6f 64 69 66 79 0a 5c 20 69 74 20 75 6e  r modify.\ it un
0080: 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66  der the terms of
0090: 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20   the GNU Affero 
00a0: 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c  General Public L
00b0: 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73  icense as publis
00c0: 68 65 64 20 62 79 0a 5c 20 74 68 65 20 46 72 65  hed by.\ the Fre
00d0: 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64  e Software Found
00e0: 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65  ation, either ve
00f0: 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c  rsion 3 of the L
0100: 69 63 65 6e 73 65 2c 20 6f 72 0a 5c 20 28 61 74  icense, or.\ (at
0110: 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e   your option) an
0120: 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e  y later version.
0130: 0a 0a 5c 20 54 68 69 73 20 70 72 6f 67 72 61 6d  ..\ This program
0140: 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20   is distributed 
0150: 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74  in the hope that
0160: 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66   it will be usef
0170: 75 6c 2c 0a 5c 20 62 75 74 20 57 49 54 48 4f 55  ul,.\ but WITHOU
0180: 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20  T ANY WARRANTY; 
0190: 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65  without even the
01a0: 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74   implied warrant
01b0: 79 20 6f 66 0a 5c 20 4d 45 52 43 48 41 4e 54 41  y of.\ MERCHANTA
01c0: 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53  BILITY or FITNES
01d0: 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c  S FOR A PARTICUL
01e0: 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65  AR PURPOSE.  See
01f0: 20 74 68 65 0a 5c 20 47 4e 55 20 41 66 66 65 72   the.\ GNU Affer
0200: 6f 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63  o General Public
0210: 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72   License for mor
0220: 65 20 64 65 74 61 69 6c 73 2e 0a 0a 5c 20 59 6f  e details...\ Yo
0230: 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65  u should have re
0240: 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66  ceived a copy of
0250: 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20   the GNU Affero 
0260: 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c  General Public L
0270: 69 63 65 6e 73 65 0a 5c 20 61 6c 6f 6e 67 20 77  icense.\ along w
0280: 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d  ith this program
0290: 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c  .  If not, see <
02a0: 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f  http://www.gnu.o
02b0: 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a  rg/licenses/>...
02c0: 72 65 71 75 69 72 65 20 70 61 72 73 65 72 2e 66  require parser.f
02d0: 73 0a 0a 63 73 2d 73 63 6f 70 65 3a 20 67 2b 0a  s..cs-scope: g+.
02e0: 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20 63  .object class{ c
02f0: 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 24 76 61 6c  omments.    $val
0300: 75 65 3a 20 72 65 73 6f 75 72 63 65 4e 61 6d 65  ue: resourceName
0310: 24 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 75 72  $.    $value: ur
0320: 6c 24 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 63  l$.    $value: c
0330: 6f 6e 74 65 6e 74 24 0a 20 20 20 20 24 76 61 6c  ontent$.    $val
0340: 75 65 3a 20 61 63 74 69 76 69 74 79 49 64 24 0a  ue: activityId$.
0350: 20 20 20 20 24 76 61 6c 75 65 3a 20 70 6f 73 74      $value: post
0360: 4b 69 6e 64 24 0a 20 20 20 20 73 79 6e 6f 6e 79  Kind$.    synony
0370: 6d 20 63 6f 6d 6d 65 6e 74 41 63 74 69 76 69 74  m commentActivit
0380: 79 49 64 24 20 61 63 74 69 76 69 74 79 49 64 24  yId$ activityId$
0390: 0a 20 20 20 20 73 79 6e 6f 6e 79 6d 20 70 6f 73  .    synonym pos
03a0: 74 55 72 6c 24 20 75 72 6c 24 20 5c 20 63 6f 6d  tUrl$ url$ \ com
03b0: 6d 65 6e 74 20 68 61 73 20 70 6f 73 74 55 72 6c  ment has postUrl
03c0: 24 20 69 6e 73 74 65 61 64 20 6f 66 20 75 72 6c  $ instead of url
03d0: 24 0a 20 20 20 20 36 34 76 61 6c 75 65 3a 20 63  $.    64value: c
03e0: 72 65 61 74 69 6f 6e 54 69 6d 65 21 0a 20 20 20  reationTime!.   
03f0: 20 36 34 76 61 6c 75 65 3a 20 75 70 64 61 74 65   64value: update
0400: 54 69 6d 65 21 0a 20 20 20 20 76 61 6c 75 65 3a  Time!.    value:
0410: 20 61 75 74 68 6f 72 7b 7d 0a 20 20 20 20 76 61   author{}.    va
0420: 6c 75 65 3a 20 61 6c 62 75 6d 7b 7d 0a 20 20 20  lue: album{}.   
0430: 20 76 61 6c 75 65 3a 20 6d 65 64 69 61 7b 7d 0a   value: media{}.
0440: 20 20 20 20 76 61 6c 75 65 3a 20 6c 6f 63 61 74      value: locat
0450: 69 6f 6e 7b 7d 0a 20 20 20 20 76 61 6c 75 65 3a  ion{}.    value:
0460: 20 6c 69 6e 6b 7b 7d 0a 20 20 20 20 76 61 6c 75   link{}.    valu
0470: 65 3a 20 72 65 73 68 61 72 65 64 50 6f 73 74 7b  e: resharedPost{
0480: 7d 0a 20 20 20 20 76 61 6c 75 65 3a 20 70 6f 6c  }.    value: pol
0490: 6c 7b 7d 0a 20 20 20 20 76 61 6c 75 65 3a 20 63  l{}.    value: c
04a0: 6f 6c 6c 65 63 74 69 6f 6e 41 74 74 61 63 68 6d  ollectionAttachm
04b0: 65 6e 74 7b 7d 0a 20 20 20 20 76 61 6c 75 65 3a  ent{}.    value:
04c0: 20 63 6f 6d 6d 75 6e 69 74 79 41 74 74 61 63 68   communityAttach
04d0: 6d 65 6e 74 7b 7d 0a 20 20 20 20 66 69 65 6c 64  ment{}.    field
04e0: 3a 20 63 6f 6d 6d 65 6e 74 73 5b 5d 0a 20 20 20  : comments[].   
04f0: 20 66 69 65 6c 64 3a 20 70 6c 75 73 4f 6e 65 73   field: plusOnes
0500: 5b 5d 0a 20 20 20 20 66 69 65 6c 64 3a 20 72 65  [].    field: re
0510: 73 68 61 72 65 73 5b 5d 0a 20 20 20 20 76 61 6c  shares[].    val
0520: 75 65 3a 20 70 6f 73 74 41 63 6c 7b 7d 20 5c 20  ue: postAcl{} \ 
0530: 6f 6e 6c 79 20 66 6f 72 20 6d 65 73 73 61 67 65  only for message
0540: 2c 20 6e 6f 74 20 66 6f 72 20 63 6f 6d 6d 65 6e  , not for commen
0550: 74 0a 7d 63 6c 61 73 73 0a 0a 73 79 6e 6f 6e 79  t.}class..synony
0560: 6d 20 72 65 73 68 61 72 65 64 50 6f 73 74 20 63  m resharedPost c
0570: 6f 6d 6d 65 6e 74 73 0a 73 79 6e 6f 6e 79 6d 20  omments.synonym 
0580: 72 65 73 68 61 72 65 64 50 6f 73 74 2d 63 6c 61  resharedPost-cla
0590: 73 73 20 63 6f 6d 6d 65 6e 74 73 2d 63 6c 61 73  ss comments-clas
05a0: 73 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b  s..object class{
05b0: 20 61 75 74 68 6f 72 0a 20 20 20 20 24 76 61 6c   author.    $val
05c0: 75 65 3a 20 72 65 73 6f 75 72 63 65 4e 61 6d 65  ue: resourceName
05d0: 24 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 64 69  $.    $value: di
05e0: 73 70 6c 61 79 4e 61 6d 65 24 0a 20 20 20 20 24  splayName$.    $
05f0: 76 61 6c 75 65 3a 20 70 72 6f 66 69 6c 65 50 61  value: profilePa
0600: 67 65 55 72 6c 24 0a 20 20 20 20 24 76 61 6c 75  geUrl$.    $valu
0610: 65 3a 20 61 76 61 74 61 72 49 6d 61 67 65 55 72  e: avatarImageUr
0620: 6c 24 0a 20 20 20 20 76 61 6c 75 65 3a 20 6d 61  l$.    value: ma
0630: 70 70 65 64 2d 6b 65 79 0a 20 20 20 20 3a 20 64  pped-key.    : d
0640: 69 73 70 6f 73 65 20 28 20 6f 3a 61 75 74 68 6f  ispose ( o:autho
0650: 72 20 2d 2d 20 29 0a 20 20 20 20 61 64 64 72 20  r -- ).    addr 
0660: 72 65 73 6f 75 72 63 65 4e 61 6d 65 24 20 24 66  resourceName$ $f
0670: 72 65 65 0a 20 20 20 20 61 64 64 72 20 64 69 73  ree.    addr dis
0680: 70 6c 61 79 4e 61 6d 65 24 20 24 66 72 65 65 0a  playName$ $free.
0690: 20 20 20 20 61 64 64 72 20 70 72 6f 66 69 6c 65      addr profile
06a0: 50 61 67 65 55 72 6c 24 20 24 66 72 65 65 0a 20  PageUrl$ $free. 
06b0: 20 20 20 61 64 64 72 20 61 76 61 74 61 72 49 6d     addr avatarIm
06c0: 61 67 65 55 72 6c 24 20 24 66 72 65 65 0a 20 20  ageUrl$ $free.  
06d0: 20 20 64 69 73 70 6f 73 65 20 3b 0a 7d 63 6c 61    dispose ;.}cla
06e0: 73 73 0a 0a 73 79 6e 6f 6e 79 6d 20 70 6c 75 73  ss..synonym plus
06f0: 4f 6e 65 72 20 61 75 74 68 6f 72 0a 73 79 6e 6f  Oner author.syno
0700: 6e 79 6d 20 72 65 73 68 61 72 65 72 20 61 75 74  nym resharer aut
0710: 68 6f 72 0a 73 79 6e 6f 6e 79 6d 20 76 6f 74 65  hor.synonym vote
0720: 72 20 61 75 74 68 6f 72 0a 73 79 6e 6f 6e 79 6d  r author.synonym
0730: 20 6f 77 6e 65 72 20 61 75 74 68 6f 72 0a 0a 73   owner author..s
0740: 79 6e 6f 6e 79 6d 20 70 6c 75 73 4f 6e 65 72 2d  ynonym plusOner-
0750: 63 6c 61 73 73 20 61 75 74 68 6f 72 2d 63 6c 61  class author-cla
0760: 73 73 0a 73 79 6e 6f 6e 79 6d 20 72 65 73 68 61  ss.synonym resha
0770: 72 65 72 2d 63 6c 61 73 73 20 61 75 74 68 6f 72  rer-class author
0780: 2d 63 6c 61 73 73 0a 73 79 6e 6f 6e 79 6d 20 76  -class.synonym v
0790: 6f 74 65 72 2d 63 6c 61 73 73 20 61 75 74 68 6f  oter-class autho
07a0: 72 2d 63 6c 61 73 73 0a 73 79 6e 6f 6e 79 6d 20  r-class.synonym 
07b0: 6f 77 6e 65 72 2d 63 6c 61 73 73 20 61 75 74 68  owner-class auth
07c0: 6f 72 2d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74  or-class..object
07d0: 20 63 6c 61 73 73 7b 20 6c 69 6e 6b 0a 20 20 20   class{ link.   
07e0: 20 24 76 61 6c 75 65 3a 20 74 69 74 6c 65 24 0a   $value: title$.
07f0: 20 20 20 20 24 76 61 6c 75 65 3a 20 75 72 6c 24      $value: url$
0800: 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 69 6d 61  .    $value: ima
0810: 67 65 55 72 6c 24 0a 7d 63 6c 61 73 73 0a 0a 6f  geUrl$.}class..o
0820: 62 6a 65 63 74 20 63 6c 61 73 73 7b 20 70 6c 75  bject class{ plu
0830: 73 4f 6e 65 73 0a 20 20 20 20 76 61 6c 75 65 3a  sOnes.    value:
0840: 20 70 6c 75 73 4f 6e 65 72 7b 7d 0a 7d 63 6c 61   plusOner{}.}cla
0850: 73 73 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73  ss..object class
0860: 7b 20 72 65 73 68 61 72 65 73 0a 20 20 20 20 76  { reshares.    v
0870: 61 6c 75 65 3a 20 72 65 73 68 61 72 65 72 7b 7d  alue: resharer{}
0880: 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74 20  .}class..object 
0890: 63 6c 61 73 73 7b 20 70 6f 73 74 41 63 6c 0a 20  class{ postAcl. 
08a0: 20 20 20 76 61 6c 75 65 3a 20 63 6f 6c 6c 65 63     value: collec
08b0: 74 69 6f 6e 41 63 6c 7b 7d 0a 20 20 20 20 76 61  tionAcl{}.    va
08c0: 6c 75 65 3a 20 63 6f 6d 6d 75 6e 69 74 79 41 63  lue: communityAc
08d0: 6c 7b 7d 0a 20 20 20 20 76 61 6c 75 65 3a 20 76  l{}.    value: v
08e0: 69 73 69 62 6c 65 54 6f 53 74 61 6e 64 61 72 64  isibleToStandard
08f0: 41 63 6c 7b 7d 0a 20 20 20 20 76 61 6c 75 65 3a  Acl{}.    value:
0900: 20 69 73 4c 65 67 61 63 79 41 63 6c 3f 0a 20 20   isLegacyAcl?.  
0910: 20 20 76 61 6c 75 65 3a 20 69 73 50 75 62 6c 69    value: isPubli
0920: 63 3f 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63  c?.}class..objec
0930: 74 20 63 6c 61 73 73 7b 20 63 6f 6c 6c 65 63 74  t class{ collect
0940: 69 6f 6e 41 63 6c 0a 20 20 20 20 76 61 6c 75 65  ionAcl.    value
0950: 3a 20 63 6f 6c 6c 65 63 74 69 6f 6e 7b 7d 0a 20  : collection{}. 
0960: 20 20 20 66 69 65 6c 64 3a 20 75 73 65 72 73 5b     field: users[
0970: 5d 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74  ].}class..object
0980: 20 63 6c 61 73 73 7b 20 63 6f 6d 6d 75 6e 69 74   class{ communit
0990: 79 41 63 6c 0a 20 20 20 20 76 61 6c 75 65 3a 20  yAcl.    value: 
09a0: 63 6f 6d 6d 75 6e 69 74 79 7b 7d 0a 20 20 20 20  community{}.    
09b0: 66 69 65 6c 64 3a 20 75 73 65 72 73 5b 5d 0a 7d  field: users[].}
09c0: 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74 20 63 6c  class..object cl
09d0: 61 73 73 7b 20 76 69 73 69 62 6c 65 54 6f 53 74  ass{ visibleToSt
09e0: 61 6e 64 61 72 64 41 63 6c 0a 20 20 20 20 66 69  andardAcl.    fi
09f0: 65 6c 64 3a 20 75 73 65 72 73 5b 5d 0a 20 20 20  eld: users[].   
0a00: 20 66 69 65 6c 64 3a 20 63 69 72 63 6c 65 73 5b   field: circles[
0a10: 5d 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74  ].}class..object
0a20: 20 63 6c 61 73 73 7b 20 63 69 72 63 6c 65 73 0a   class{ circles.
0a30: 20 20 20 20 24 76 61 6c 75 65 3a 20 72 65 73 6f      $value: reso
0a40: 75 72 63 65 4e 61 6d 65 24 0a 20 20 20 20 24 76  urceName$.    $v
0a50: 61 6c 75 65 3a 20 64 69 73 70 6c 61 79 4e 61 6d  alue: displayNam
0a60: 65 24 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 74  e$.    $value: t
0a70: 79 70 65 24 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a  ype$.}class..obj
0a80: 65 63 74 20 63 6c 61 73 73 7b 20 63 6f 6c 6c 65  ect class{ colle
0a90: 63 74 69 6f 6e 0a 20 20 20 20 24 76 61 6c 75 65  ction.    $value
0aa0: 3a 20 72 65 73 6f 75 72 63 65 4e 61 6d 65 24 0a  : resourceName$.
0ab0: 20 20 20 20 24 76 61 6c 75 65 3a 20 64 69 73 70      $value: disp
0ac0: 6c 61 79 4e 61 6d 65 24 0a 7d 63 6c 61 73 73 0a  layName$.}class.
0ad0: 0a 73 79 6e 6f 6e 79 6d 20 75 73 65 72 73 20 63  .synonym users c
0ae0: 6f 6c 6c 65 63 74 69 6f 6e 0a 73 79 6e 6f 6e 79  ollection.synony
0af0: 6d 20 63 6f 6d 6d 75 6e 69 74 79 20 63 6f 6c 6c  m community coll
0b00: 65 63 74 69 6f 6e 0a 0a 73 79 6e 6f 6e 79 6d 20  ection..synonym 
0b10: 75 73 65 72 73 2d 63 6c 61 73 73 20 63 6f 6c 6c  users-class coll
0b20: 65 63 74 69 6f 6e 2d 63 6c 61 73 73 0a 73 79 6e  ection-class.syn
0b30: 6f 6e 79 6d 20 63 6f 6d 6d 75 6e 69 74 79 2d 63  onym community-c
0b40: 6c 61 73 73 20 63 6f 6c 6c 65 63 74 69 6f 6e 2d  lass collection-
0b50: 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74 20 63 6c  class..object cl
0b60: 61 73 73 7b 20 61 6c 62 75 6d 0a 20 20 20 20 66  ass{ album.    f
0b70: 69 65 6c 64 3a 20 6d 65 64 69 61 5b 5d 0a 7d 63  ield: media[].}c
0b80: 6c 61 73 73 0a 0a 6f 62 6a 65 63 74 20 63 6c 61  lass..object cla
0b90: 73 73 7b 20 6d 65 64 69 61 0a 20 20 20 20 24 76  ss{ media.    $v
0ba0: 61 6c 75 65 3a 20 72 65 73 6f 75 72 63 65 4e 61  alue: resourceNa
0bb0: 6d 65 24 0a 20 20 20 20 24 76 61 6c 75 65 3a 20  me$.    $value: 
0bc0: 75 72 6c 24 0a 20 20 20 20 24 76 61 6c 75 65 3a  url$.    $value:
0bd0: 20 63 6f 6e 74 65 6e 74 54 79 70 65 24 0a 20 20   contentType$.  
0be0: 20 20 24 76 61 6c 75 65 3a 20 64 65 73 63 72 69    $value: descri
0bf0: 70 74 69 6f 6e 24 0a 20 20 20 20 24 76 61 6c 75  ption$.    $valu
0c00: 65 3a 20 6c 6f 63 61 6c 46 69 6c 65 50 61 74 68  e: localFilePath
0c10: 24 0a 20 20 20 20 76 61 6c 75 65 3a 20 77 69 64  $.    value: wid
0c20: 74 68 23 0a 20 20 20 20 76 61 6c 75 65 3a 20 68  th#.    value: h
0c30: 65 69 67 68 74 23 0a 7d 63 6c 61 73 73 0a 0a 6f  eight#.}class..o
0c40: 62 6a 65 63 74 20 63 6c 61 73 73 7b 20 6c 6f 63  bject class{ loc
0c50: 61 74 69 6f 6e 0a 20 20 20 20 66 76 61 6c 75 65  ation.    fvalue
0c60: 3a 20 6c 61 74 69 74 75 64 65 25 0a 20 20 20 20  : latitude%.    
0c70: 66 76 61 6c 75 65 3a 20 6c 6f 6e 67 69 74 75 64  fvalue: longitud
0c80: 65 25 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 64  e%.    $value: d
0c90: 69 73 70 6c 61 79 4e 61 6d 65 24 0a 20 20 20 20  isplayName$.    
0ca0: 24 76 61 6c 75 65 3a 20 70 68 79 73 69 63 61 6c  $value: physical
0cb0: 41 64 64 72 65 73 73 24 0a 7d 63 6c 61 73 73 0a  Address$.}class.
0cc0: 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20 70  .object class{ p
0cd0: 6f 6c 6c 0a 20 20 20 20 66 69 65 6c 64 3a 20 63  oll.    field: c
0ce0: 68 6f 69 63 65 73 5b 5d 0a 20 20 20 20 76 61 6c  hoices[].    val
0cf0: 75 65 3a 20 74 6f 74 61 6c 56 6f 74 65 73 23 0a  ue: totalVotes#.
0d00: 20 20 20 20 24 76 61 6c 75 65 3a 20 76 69 65 77      $value: view
0d10: 65 72 50 6f 6c 6c 43 68 6f 69 63 65 52 65 73 6f  erPollChoiceReso
0d20: 75 72 63 65 4e 61 6d 65 24 0a 7d 63 6c 61 73 73  urceName$.}class
0d30: 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20  ..object class{ 
0d40: 63 68 6f 69 63 65 73 0a 20 20 20 20 24 76 61 6c  choices.    $val
0d50: 75 65 3a 20 72 65 73 6f 75 72 63 65 4e 61 6d 65  ue: resourceName
0d60: 24 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 64 65  $.    $value: de
0d70: 73 63 72 69 70 74 69 6f 6e 24 0a 20 20 20 20 24  scription$.    $
0d80: 76 61 6c 75 65 3a 20 69 6d 61 67 65 55 72 6c 24  value: imageUrl$
0d90: 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 69 6d 61  .    $value: ima
0da0: 67 65 4c 6f 63 61 6c 46 69 6c 65 50 61 74 68 24  geLocalFilePath$
0db0: 0a 20 20 20 20 76 61 6c 75 65 3a 20 76 6f 74 65  .    value: vote
0dc0: 43 6f 75 6e 74 23 0a 20 20 20 20 66 69 65 6c 64  Count#.    field
0dd0: 3a 20 76 6f 74 65 73 5b 5d 0a 7d 63 6c 61 73 73  : votes[].}class
0de0: 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20  ..object class{ 
0df0: 76 6f 74 65 73 0a 20 20 20 20 76 61 6c 75 65 3a  votes.    value:
0e00: 20 76 6f 74 65 72 7b 7d 0a 7d 63 6c 61 73 73 0a   voter{}.}class.
0e10: 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20 63  .object class{ c
0e20: 6f 6c 6c 65 63 74 69 6f 6e 41 74 74 61 63 68 6d  ollectionAttachm
0e30: 65 6e 74 0a 20 20 20 20 24 76 61 6c 75 65 3a 20  ent.    $value: 
0e40: 72 65 73 6f 75 72 63 65 4e 61 6d 65 24 0a 20 20  resourceName$.  
0e50: 20 20 24 76 61 6c 75 65 3a 20 64 69 73 70 6c 61    $value: displa
0e60: 79 4e 61 6d 65 24 0a 20 20 20 20 24 76 61 6c 75  yName$.    $valu
0e70: 65 3a 20 70 65 72 6d 61 6c 69 6e 6b 24 0a 20 20  e: permalink$.  
0e80: 20 20 24 76 61 6c 75 65 3a 20 63 6f 76 65 72 50    $value: coverP
0e90: 68 6f 74 6f 55 72 6c 24 0a 20 20 20 20 76 61 6c  hotoUrl$.    val
0ea0: 75 65 3a 20 6f 77 6e 65 72 7b 7d 0a 7d 63 6c 61  ue: owner{}.}cla
0eb0: 73 73 0a 0a 73 79 6e 6f 6e 79 6d 20 63 6f 6d 6d  ss..synonym comm
0ec0: 75 6e 69 74 79 41 74 74 61 63 68 6d 65 6e 74 20  unityAttachment 
0ed0: 63 6f 6c 6c 65 63 74 69 6f 6e 41 74 74 61 63 68  collectionAttach
0ee0: 6d 65 6e 74 0a 73 79 6e 6f 6e 79 6d 20 63 6f 6d  ment.synonym com
0ef0: 6d 75 6e 69 74 79 41 74 74 61 63 68 6d 65 6e 74  munityAttachment
0f00: 2d 63 6c 61 73 73 20 63 6f 6c 6c 65 63 74 69 6f  -class collectio
0f10: 6e 41 74 74 61 63 68 6d 65 6e 74 2d 63 6c 61 73  nAttachment-clas
0f20: 73 0a 0a 7d 73 63 6f 70 65 0a 0a 56 61 72 69 61  s..}scope..Varia
0f30: 62 6c 65 20 61 75 74 68 6f 72 73 23 0a 56 61 72  ble authors#.Var
0f40: 69 61 62 6c 65 20 6e 61 6d 65 73 23 0a 56 61 72  iable names#.Var
0f50: 69 61 62 6c 65 20 61 76 61 74 61 72 73 5b 5d 0a  iable avatars[].
0f60: 0a 74 72 75 65 20 56 61 6c 75 65 20 66 69 72 73  .true Value firs
0f70: 74 2d 6b 65 79 3f 0a 0a 61 6c 73 6f 20 67 2b 0a  t-key?..also g+.
0f80: 0a 5b 49 46 44 45 46 5d 20 64 75 6d 6d 79 2d 6b  .[IFDEF] dummy-k
0f90: 65 79 0a 20 20 20 20 24 56 61 72 69 61 62 6c 65  ey.    $Variable
0fa0: 20 65 6e 74 72 69 65 73 5b 5d 20 5c 20 6c 69 73   entries[] \ lis
0fb0: 74 20 6f 66 20 67 6f 6f 67 6c 65 2b 20 65 6e 74  t of google+ ent
0fc0: 72 69 65 73 0a 20 20 20 20 72 65 71 75 69 72 65  ries.    require
0fd0: 20 67 2b 2d 69 6d 70 6f 72 74 2e 66 73 0a 5b 54   g+-import.fs.[T
0fe0: 48 45 4e 5d 0a 0a 3a 20 64 65 64 75 70 2d 61 75  HEN]..: dedup-au
0ff0: 74 68 6f 72 20 7b 20 61 20 2d 2d 20 7d 0a 20 20  thor { a -- }.  
1000: 20 20 61 20 40 20 3e 6f 0a 20 20 20 20 61 75 74    a @ >o.    aut
1010: 68 6f 72 3a 72 65 73 6f 75 72 63 65 4e 61 6d 65  hor:resourceName
1020: 24 20 62 61 73 65 6e 61 6d 65 20 61 75 74 68 6f  $ basename autho
1030: 72 73 23 20 23 40 20 30 3d 20 49 46 0a 09 64 72  rs# #@ 0= IF..dr
1040: 6f 70 20 20 6f 20 7b 20 77 5e 20 78 20 7d 0a 09  op  o { w^ x }..
1050: 78 20 63 65 6c 6c 20 20 61 75 74 68 6f 72 3a 72  x cell  author:r
1060: 65 73 6f 75 72 63 65 4e 61 6d 65 24 20 62 61 73  esourceName$ bas
1070: 65 6e 61 6d 65 20 61 75 74 68 6f 72 73 23 20 23  ename authors# #
1080: 21 0a 09 78 20 63 65 6c 6c 20 20 61 75 74 68 6f  !..x cell  autho
1090: 72 3a 64 69 73 70 6c 61 79 4e 61 6d 65 24 20 6e  r:displayName$ n
10a0: 61 6d 65 73 23 20 23 21 0a 09 5b 49 46 44 45 46  ames# #!..[IFDEF
10b0: 5d 20 64 75 6d 6d 79 2d 6b 65 79 0a 09 20 20 20  ] dummy-key..   
10c0: 20 6b 65 79 2d 61 75 74 68 6f 72 20 2b 61 76 61   key-author +ava
10d0: 74 61 72 2d 61 75 74 68 6f 72 0a 09 5b 54 48 45  tar-author..[THE
10e0: 4e 5d 0a 20 20 20 20 45 4c 53 45 0a 09 40 20 61  N].    ELSE..@ a
10f0: 20 21 0a 09 61 75 74 68 6f 72 3a 64 69 73 70 6f   !..author:dispo
1100: 73 65 0a 20 20 20 20 54 48 45 4e 0a 20 20 20 20  se.    THEN.    
1110: 6f 3e 20 3b 0a 0a 3a 20 64 65 64 75 70 2d 61 75  o> ;..: dedup-au
1120: 74 68 6f 72 73 20 28 20 6f 3a 63 6f 6d 6d 65 6e  thors ( o:commen
1130: 74 20 2d 2d 20 29 0a 20 20 20 20 61 64 64 72 20  t -- ).    addr 
1140: 63 6f 6d 6d 65 6e 74 73 3a 61 75 74 68 6f 72 7b  comments:author{
1150: 7d 20 64 65 64 75 70 2d 61 75 74 68 6f 72 0a 20  } dedup-author. 
1160: 20 20 20 63 6f 6d 6d 65 6e 74 73 3a 72 65 73 68     comments:resh
1170: 61 72 65 64 50 6f 73 74 7b 7d 20 3f 64 75 70 2d  aredPost{} ?dup-
1180: 49 46 20 20 3e 6f 20 72 65 63 75 72 73 65 20 6f  IF  >o recurse o
1190: 3e 20 20 54 48 45 4e 0a 20 20 20 20 63 6f 6d 6d  >  THEN.    comm
11a0: 65 6e 74 73 3a 63 6f 6d 6d 65 6e 74 73 5b 5d 20  ents:comments[] 
11b0: 24 40 20 62 6f 75 6e 64 73 20 55 2b 44 4f 0a 09  $@ bounds U+DO..
11c0: 49 20 40 20 3e 6f 20 72 65 63 75 72 73 65 20 6f  I @ >o recurse o
11d0: 3e 0a 20 20 20 20 63 65 6c 6c 20 2b 4c 4f 4f 50  >.    cell +LOOP
11e0: 0a 20 20 20 20 63 6f 6d 6d 65 6e 74 73 3a 70 6c  .    comments:pl
11f0: 75 73 4f 6e 65 73 5b 5d 20 24 40 20 62 6f 75 6e  usOnes[] $@ boun
1200: 64 73 20 55 2b 44 4f 0a 09 49 20 40 20 3e 6f 20  ds U+DO..I @ >o 
1210: 61 64 64 72 20 70 6c 75 73 4f 6e 65 73 3a 70 6c  addr plusOnes:pl
1220: 75 73 4f 6e 65 72 7b 7d 20 64 65 64 75 70 2d 61  usOner{} dedup-a
1230: 75 74 68 6f 72 20 6f 3e 0a 20 20 20 20 63 65 6c  uthor o>.    cel
1240: 6c 20 2b 4c 4f 4f 50 0a 20 20 20 20 63 6f 6d 6d  l +LOOP.    comm
1250: 65 6e 74 73 3a 72 65 73 68 61 72 65 73 5b 5d 20  ents:reshares[] 
1260: 24 40 20 62 6f 75 6e 64 73 20 55 2b 44 4f 0a 09  $@ bounds U+DO..
1270: 49 20 40 20 3e 6f 20 61 64 64 72 20 72 65 73 68  I @ >o addr resh
1280: 61 72 65 73 3a 72 65 73 68 61 72 65 72 7b 7d 20  ares:resharer{} 
1290: 64 65 64 75 70 2d 61 75 74 68 6f 72 20 6f 3e 0a  dedup-author o>.
12a0: 20 20 20 20 63 65 6c 6c 20 2b 4c 4f 4f 50 0a 20      cell +LOOP. 
12b0: 20 20 20 63 6f 6d 6d 65 6e 74 73 3a 70 6f 6c 6c     comments:poll
12c0: 7b 7d 20 3f 64 75 70 2d 49 46 0a 09 2e 70 6f 6c  {} ?dup-IF...pol
12d0: 6c 3a 63 68 6f 69 63 65 73 5b 5d 20 24 40 20 62  l:choices[] $@ b
12e0: 6f 75 6e 64 73 20 55 2b 44 4f 0a 09 20 20 20 20  ounds U+DO..    
12f0: 49 20 40 20 2e 63 68 6f 69 63 65 73 3a 76 6f 74  I @ .choices:vot
1300: 65 73 5b 5d 20 24 40 20 62 6f 75 6e 64 73 20 55  es[] $@ bounds U
1310: 2b 44 4f 0a 09 09 49 20 40 20 3e 6f 20 61 64 64  +DO...I @ >o add
1320: 72 20 76 6f 74 65 73 3a 76 6f 74 65 72 7b 7d 20  r votes:voter{} 
1330: 64 65 64 75 70 2d 61 75 74 68 6f 72 20 6f 3e 0a  dedup-author o>.
1340: 09 20 20 20 20 63 65 6c 6c 20 2b 4c 4f 4f 50 0a  .    cell +LOOP.
1350: 09 63 65 6c 6c 20 2b 4c 4f 4f 50 0a 20 20 20 20  .cell +LOOP.    
1360: 54 48 45 4e 0a 20 20 20 20 63 6f 6d 6d 65 6e 74  THEN.    comment
1370: 73 3a 63 6f 6c 6c 65 63 74 69 6f 6e 41 74 74 61  s:collectionAtta
1380: 63 68 6d 65 6e 74 7b 7d 20 3f 64 75 70 2d 49 46  chment{} ?dup-IF
1390: 0a 09 3e 6f 20 61 64 64 72 20 63 6f 6c 6c 65 63  ..>o addr collec
13a0: 74 69 6f 6e 41 74 74 61 63 68 6d 65 6e 74 3a 6f  tionAttachment:o
13b0: 77 6e 65 72 7b 7d 20 64 65 64 75 70 2d 61 75 74  wner{} dedup-aut
13c0: 68 6f 72 20 6f 3e 0a 20 20 20 20 54 48 45 4e 20  hor o>.    THEN 
13d0: 3b 0a 0a 3a 20 67 2b 2d 73 63 61 6e 20 28 20 2d  ;..: g+-scan ( -
13e0: 2d 20 29 20 20 69 73 6f 2d 64 61 74 65 0a 20 20  - )  iso-date.  
13f0: 20 20 5b 27 5d 20 67 2b 20 3e 62 6f 64 79 20 74    ['] g+ >body t
1400: 6f 20 73 63 68 65 6d 61 2d 73 63 6f 70 65 0a 20  o schema-scope. 
1410: 20 20 20 67 2b 3a 63 6f 6d 6d 65 6e 74 73 2d 63     g+:comments-c
1420: 6c 61 73 73 20 74 6f 20 6f 75 74 65 72 2d 63 6c  lass to outer-cl
1430: 61 73 73 0a 20 20 20 20 5b 27 5d 20 67 2b 3a 63  ass.    ['] g+:c
1440: 6f 6d 6d 65 6e 74 73 20 3e 62 6f 64 79 20 74 6f  omments >body to
1450: 20 73 63 68 65 6d 61 2d 77 69 64 0a 20 20 20 20   schema-wid.    
1460: 5b 27 5d 20 64 65 64 75 70 2d 61 75 74 68 6f 72  ['] dedup-author
1470: 73 20 69 73 20 70 72 6f 63 65 73 73 2d 65 6c 65  s is process-ele
1480: 6d 65 6e 74 20 3b 0a 0a 67 2b 2d 73 63 61 6e 0a  ment ;..g+-scan.
1490: 0a 70 72 65 76 69 6f 75 73 0a 0a 5c 5c 5c 0a 4c  .previous..\\\.L
14a0: 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a  ocal Variables:.
14b0: 66 6f 72 74 68 2d 6c 6f 63 61 6c 2d 77 6f 72 64  forth-local-word
14c0: 73 3a 0a 20 20 20 20 28 0a 20 20 20 20 20 28 28  s:.    (.     ((
14d0: 22 63 6c 61 73 73 7b 22 29 20 64 65 66 69 6e 69  "class{") defini
14e0: 74 69 6f 6e 2d 73 74 61 72 74 65 72 20 28 66 6f  tion-starter (fo
14f0: 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d  nt-lock-keyword-
1500: 66 61 63 65 20 2e 20 31 29 0a 20 20 20 20 20 20  face . 1).      
1510: 22 5b 20 5c 74 5c 6e 5d 22 20 74 20 6e 61 6d 65  "[ \t\n]" t name
1520: 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63   (font-lock-func
1530: 74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 20 2e  tion-name-face .
1540: 20 33 29 29 0a 20 20 20 20 20 28 28 22 7d 63 6c   3)).     (("}cl
1550: 61 73 73 22 29 20 64 65 66 69 6e 69 74 69 6f 6e  ass") definition
1560: 2d 65 6e 64 65 72 20 28 66 6f 6e 74 2d 6c 6f 63  -ender (font-loc
1570: 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 20 2e  k-keyword-face .
1580: 20 31 29 29 0a 20 20 20 20 29 0a 66 6f 72 74 68   1)).    ).forth
1590: 2d 6c 6f 63 61 6c 2d 69 6e 64 65 6e 74 2d 77 6f  -local-indent-wo
15a0: 72 64 73 3a 0a 20 20 20 20 28 0a 20 20 20 20 20  rds:.    (.     
15b0: 28 28 22 63 6c 61 73 73 7b 22 29 20 28 30 20 2e  (("class{") (0 .
15c0: 20 32 29 20 28 30 20 2e 20 32 29 29 0a 20 20 20   2) (0 . 2)).   
15d0: 20 20 28 28 22 7d 63 6c 61 73 73 22 29 20 28 2d    (("}class") (-
15e0: 32 20 2e 20 30 29 20 28 30 20 2e 20 2d 32 29 29  2 . 0) (0 . -2))
15f0: 0a 20 20 20 20 29 0a 45 6e 64 3a 0a 5b 54 48 45  .    ).End:.[THE
1600: 4e 5d 0a                                         N].