gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r904 - GNUnet GNUnet/src/applications/fs/ecrs GNUnet/src/ap


From: grothoff
Subject: [GNUnet-SVN] r904 - GNUnet GNUnet/src/applications/fs/ecrs GNUnet/src/applications/fs/fsui GNUnet/src/applications/fs/lib GNUnet/src/applications/fs/module GNUnet/src/applications/fs/tools GNUnet/src/applications/gap GNUnet/src/include GNUnet/src/util GNUnet-docs/papers/ecrs gnunet-gtk/src
Date: Mon, 13 Jun 2005 05:02:01 -0700 (PDT)

Author: grothoff
Date: 2005-06-13 05:00:59 -0700 (Mon, 13 Jun 2005)
New Revision: 904

Modified:
   GNUnet-docs/papers/ecrs/main.aux
   GNUnet-docs/papers/ecrs/main.bbl
   GNUnet-docs/papers/ecrs/main.blg
   GNUnet-docs/papers/ecrs/main.dvi
   GNUnet-docs/papers/ecrs/main.log
   GNUnet-docs/papers/ecrs/main.pdf
   GNUnet-docs/papers/ecrs/main.ps
   GNUnet-docs/papers/ecrs/main.tex
   GNUnet-docs/papers/ecrs/ref.bib
   GNUnet/ChangeLog
   GNUnet/src/applications/fs/ecrs/directory.c
   GNUnet/src/applications/fs/ecrs/download.c
   GNUnet/src/applications/fs/fsui/download.c
   GNUnet/src/applications/fs/fsui/downloadtest.c
   GNUnet/src/applications/fs/fsui/fsui.c
   GNUnet/src/applications/fs/fsui/fsui.h
   GNUnet/src/applications/fs/fsui/fsuitest.c
   GNUnet/src/applications/fs/fsui/search.c
   GNUnet/src/applications/fs/fsui/searchtest.c
   GNUnet/src/applications/fs/fsui/upload.c
   GNUnet/src/applications/fs/lib/fslib.c
   GNUnet/src/applications/fs/module/fs.c
   GNUnet/src/applications/fs/tools/gnunet-download.c
   GNUnet/src/applications/fs/tools/gnunet-insert.c
   GNUnet/src/applications/gap/gap.c
   GNUnet/src/include/ecrs_core.h
   GNUnet/src/include/fs.h
   GNUnet/src/include/gnunet_gap_service.h
   GNUnet/src/util/configuration.c
   GNUnet/src/util/testconfig.conf
   GNUnet/todo
   gnunet-gtk/src/download.c
Log:
update

Modified: GNUnet/ChangeLog
===================================================================
--- GNUnet/ChangeLog    2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet/ChangeLog    2005-06-13 12:00:59 UTC (rev 904)
@@ -1,3 +1,8 @@
+Sat Jun 11 11:25:24 EST 2005
+       Fixed various problems with recursive upload
+       (thread stack size too small, wrong filenames
+       passed around, wrong list of filenames updated).        
+
 Sat Apr  2 01:54:23 EST 2005
        Various bugfixes, some of them critical (segfaults, 
        protocol errors (resulting in failures to connect), 

Modified: GNUnet/src/applications/fs/ecrs/directory.c
===================================================================
--- GNUnet/src/applications/fs/ecrs/directory.c 2005-06-12 17:55:55 UTC (rev 
903)
+++ GNUnet/src/applications/fs/ecrs/directory.c 2005-06-13 12:00:59 UTC (rev 
904)
@@ -124,7 +124,8 @@
     }
     pos += mdSize;
     count++;
-    spcb(&fi, NULL, spcbClosure);
+    if (spcb != NULL)
+      spcb(&fi, NULL, spcbClosure);
     ECRS_freeMetaData(fi.meta);
     ECRS_freeUri(fi.uri);
   }

Modified: GNUnet/src/applications/fs/ecrs/download.c
===================================================================
--- GNUnet/src/applications/fs/ecrs/download.c  2005-06-12 17:55:55 UTC (rev 
903)
+++ GNUnet/src/applications/fs/ecrs/download.c  2005-06-13 12:00:59 UTC (rev 
904)
@@ -150,7 +150,9 @@
        ((size_t)st.st_size > filesize ) ) {
     /* if exists and oversized, truncate */
     if (truncate(filename, filesize) != 0) {
-      LOG_FILE_STRERROR(LOG_FAILURE, "truncate", filename);
+      LOG_FILE_STRERROR(LOG_FAILURE, 
+                       "truncate", 
+                       filename);
       return SYSERR;
     }
   }
@@ -165,10 +167,12 @@
       fn[strlen(fn)-1] += i;
     }
     this->handles[i] = fileopen(fn,
-                           O_CREAT|O_RDWR,
-                           S_IRUSR|S_IWUSR );
+                               O_CREAT|O_RDWR,
+                               S_IRUSR|S_IWUSR );
     if (this->handles[i] < 0) {
-      LOG_FILE_STRERROR(LOG_FAILURE, "OPEN", fn);
+      LOG_FILE_STRERROR(LOG_FAILURE, 
+                       "OPEN",
+                       fn);
       freeIOC(this, NO);
       FREE(fn);
       return SYSERR;
@@ -1149,13 +1153,16 @@
 
   GNUNET_ASSERT(filename != NULL);
   fid = uri->data.chk;
-  if (! ECRS_isFileUri(uri))
+  if (! ECRS_isFileUri(uri)) {
+    BREAK();
     return SYSERR;
+  }
 
   if (OK != createIOContext(&ioc,
                            ntohll(fid.file_length),
-                           filename))
+                           filename)) {
     return SYSERR;
+  }
   rm = createRequestManager();
 
   cronTime(&ctx.startTime);

Modified: GNUnet/src/applications/fs/fsui/download.c
===================================================================
--- GNUnet/src/applications/fs/fsui/download.c  2005-06-12 17:55:55 UTC (rev 
903)
+++ GNUnet/src/applications/fs/fsui/download.c  2005-06-13 12:00:59 UTC (rev 
904)
@@ -23,6 +23,13 @@
  * @brief download functions
  * @author Krista Bennett
  * @author Christian Grothoff
+ *
+ * BIG FIXME: the download code still has some very serious issues in
+ * particular with recursive downloads (and the tree model of them).
+ * This may result in segfaults on exit and other bad side-effects.
+ *
+ * Also, it spawns far, far too many concurrent threads (lots to be
+ * fixed, probably including a re-design to clean things up).
  */
 
 #include "platform.h"
@@ -45,7 +52,6 @@
                         FSUI_DownloadList * parent);
 
 static int triggerRecursiveDownload(const ECRS_FileInfo * fi,
-                                   unsigned int anonymityLevel,
                                    const HashCode512 * key,
                                    FSUI_DownloadList * parent) {
   int i;
@@ -82,7 +88,7 @@
   strcat(fullName, filename);
   FREE(filename);
   startDownload(parent->ctx,
-               anonymityLevel,
+               parent->anonymityLevel,
                fi->uri,
                fullName,
                YES,
@@ -175,12 +181,16 @@
   struct ECRS_MetaData * md;
   FSUI_DownloadList * root;
 
+  totalBytes = ECRS_fileSize(dl->uri);
   root = dl;
-  while (root->parent != NULL)
+  while (root->parent != NULL) {    
     root = root->parent;
+    if (root != NULL) {
+      root->total += totalBytes;
+    }
+  }
 
   GNUNET_ASSERT(dl->filename != NULL);
-  totalBytes = ECRS_fileSize(dl->uri);
   ret = ECRS_downloadFile(dl->uri,
                          dl->filename,
                          dl->anonymityLevel,
@@ -193,8 +203,8 @@
     event.data.message = _("Download aborted.");
   } else {
     event.type = download_complete;
-    event.data.DownloadProgress.total = totalBytes;
-    event.data.DownloadProgress.completed = totalBytes;
+    event.data.DownloadProgress.total = root->total;
+    event.data.DownloadProgress.completed = root->completed;
     event.data.DownloadProgress.last_offset = 0;
     event.data.DownloadProgress.eta = cronTime(NULL);
     event.data.DownloadProgress.last_block = NULL;
@@ -206,8 +216,6 @@
     event.data.DownloadProgress.main_filename = root->filename;
     event.data.DownloadProgress.main_uri = root->uri;
   }
-  dl->ctx->ecb(dl->ctx->ecbClosure,
-              &event);
   if ( (ret == OK) &&
        (dl->is_recursive) &&
        (dl->is_directory) ) {
@@ -251,6 +259,8 @@
            (dl->signalTerminate != YES) )
       gnunet_util_sleep(100);
   }
+  dl->ctx->ecb(dl->ctx->ecbClosure,
+              &event);
   if (dl->parent != NULL) {
     /* notify parent that we're done */
     MUTEX_LOCK(&dl->ctx->lock);
@@ -270,9 +280,11 @@
       BREAK();
     } else {
       if (prev != NULL)
-       prev->next = pos->subDownloadsNext;
+       prev->subDownloadsNext 
+         = pos->subDownloadsNext;
       else
-       dl->parent->subDownloads = pos->subDownloadsNext;
+       dl->parent->subDownloads
+         = pos->subDownloadsNext;
     }
     MUTEX_UNLOCK(&dl->ctx->lock);
   }
@@ -305,6 +317,7 @@
   memset(dl, 0, sizeof(FSUI_DownloadList));
   cronTime(&dl->startTime);
   dl->signalTerminate = NO;
+  dl->threadStarted = NO;
   dl->is_recursive = is_recursive;
   dl->parent = parent;
   dl->is_directory = SYSERR; /* don't know */
@@ -317,13 +330,14 @@
   if (0 != PTHREAD_CREATE(&dl->handle,
                          (PThreadMain) &downloadThread,
                          dl,
-                         16 * 1024)) {
+                         128 * 1024)) {
     FREE(dl->filename);
     ECRS_freeUri(dl->uri);
     FREE(dl);
     MUTEX_UNLOCK(&ctx->lock);
     return SYSERR;
   }
+  dl->threadStarted = YES;
   if (parent != NULL) {
     /* add to pending downloads of parent! */
     dl->subDownloadsNext = parent->subDownloads;

Modified: GNUnet/src/applications/fs/fsui/downloadtest.c
===================================================================
--- GNUnet/src/applications/fs/fsui/downloadtest.c      2005-06-12 17:55:55 UTC 
(rev 903)
+++ GNUnet/src/applications/fs/fsui/downloadtest.c      2005-06-13 12:00:59 UTC 
(rev 904)
@@ -165,6 +165,7 @@
                    fn,
                    0,
                    YES,
+                   NO,
                    meta,
                    kuri));
   ECRS_freeUri(kuri);

Modified: GNUnet/src/applications/fs/fsui/fsui.c
===================================================================
--- GNUnet/src/applications/fs/fsui/fsui.c      2005-06-12 17:55:55 UTC (rev 
903)
+++ GNUnet/src/applications/fs/fsui/fsui.c      2005-06-13 12:00:59 UTC (rev 
904)
@@ -548,7 +548,10 @@
     freeDownloadList(dpos->subDownloads);
     freeDownloadList(dpos->subDownloadsNext);
     dpos->signalTerminate = YES;
-    PTHREAD_JOIN(&dpos->handle, &unused);
+    if (dpos->threadStarted == YES) {
+      PTHREAD_JOIN(&dpos->handle, &unused);
+      dpos->threadStarted = NO;
+    }
     ECRS_freeUri(dpos->uri);
     FREE(dpos->filename);
     for (i=dpos->completedDownloadsCount-1;i>=0;i--)
@@ -744,10 +747,18 @@
     }
   }
 
+#if 0
+  /* FIXME: severely broken:
+     - concurrency issue with FSUI_stop,
+     - does not take tree structure into
+       account (activeDownloads is more 
+       than just a linked list!)
+  */
   dpos = ctx->activeDownloads;
   dprev = NULL;
   while (dpos != NULL) {
-    if (YES == dpos->signalTerminate) {
+    if ( (YES == dpos->signalTerminate) &&
+        (NO == PTHREAD_SELF_TEST(&dpos->handle)) ) {
       PTHREAD_JOIN(&dpos->handle,
                   &unused);
       dtmp = dpos->next;
@@ -769,6 +780,7 @@
       dpos = dpos->next;
     }
   }
+#endif
   MUTEX_UNLOCK(&ctx->lock);
 }
 

Modified: GNUnet/src/applications/fs/fsui/fsui.h
===================================================================
--- GNUnet/src/applications/fs/fsui/fsui.h      2005-06-12 17:55:55 UTC (rev 
903)
+++ GNUnet/src/applications/fs/fsui/fsui.h      2005-06-13 12:00:59 UTC (rev 
904)
@@ -161,6 +161,8 @@
    */
   int signalTerminate;
 
+  int threadStarted;
+
   unsigned long long total;
 
   unsigned long long completed;

Modified: GNUnet/src/applications/fs/fsui/fsuitest.c
===================================================================
--- GNUnet/src/applications/fs/fsui/fsuitest.c  2005-06-12 17:55:55 UTC (rev 
903)
+++ GNUnet/src/applications/fs/fsui/fsuitest.c  2005-06-13 12:00:59 UTC (rev 
904)
@@ -155,6 +155,7 @@
                    fn,
                    0,
                    YES,
+                   NO,
                    meta,
                    kuri));
   ECRS_freeUri(kuri);

Modified: GNUnet/src/applications/fs/fsui/search.c
===================================================================
--- GNUnet/src/applications/fs/fsui/search.c    2005-06-12 17:55:55 UTC (rev 
903)
+++ GNUnet/src/applications/fs/fsui/search.c    2005-06-13 12:00:59 UTC (rev 
904)
@@ -178,7 +178,7 @@
   if (0 != PTHREAD_CREATE(&pos->handle,
                          (PThreadMain) &searchThread,
                          pos,
-                         16 * 1024)) {
+                         32 * 1024)) {
     LOG_STRERROR(LOG_ERROR, "PTHREAD_CREATE");
     ECRS_freeUri(pos->uri);
     FREE(pos);

Modified: GNUnet/src/applications/fs/fsui/searchtest.c
===================================================================
--- GNUnet/src/applications/fs/fsui/searchtest.c        2005-06-12 17:55:55 UTC 
(rev 903)
+++ GNUnet/src/applications/fs/fsui/searchtest.c        2005-06-13 12:00:59 UTC 
(rev 904)
@@ -166,6 +166,7 @@
                    fn,
                    0,
                    YES,
+                   NO,
                    meta,
                    kuri));
   ECRS_freeUri(kuri);

Modified: GNUnet/src/applications/fs/fsui/upload.c
===================================================================
--- GNUnet/src/applications/fs/fsui/upload.c    2005-06-12 17:55:55 UTC (rev 
903)
+++ GNUnet/src/applications/fs/fsui/upload.c    2005-06-13 12:00:59 UTC (rev 
904)
@@ -253,7 +253,7 @@
     meta = NULL;
     utc->dir = prev;
     ret = uploadDirectory(utc,
-                         dirName,
+                         fn,
                          &current,
                          &uri,
                          &meta);
@@ -348,6 +348,8 @@
       event.type = upload_error;
       event.data.message = _("Upload failed.\n");
     }
+    utc->ctx->ecb(utc->ctx->ecbClosure,
+                 &event);
     if (utc->meta == NULL)
       utc->meta = ECRS_createMetaData();
     else
@@ -381,23 +383,18 @@
         current.fiCount,
         0);
     
-    if (ret == OK) {
-      event.type = upload_complete;
-      event.data.UploadComplete.total = utc->main_total;
-      event.data.UploadComplete.filename = utc->main_filename;
-      event.data.UploadComplete.uri = uri;
-      event.data.UploadComplete.eta = cronTime(NULL);
-      event.data.UploadComplete.start_time = utc->start_time;
-      event.data.UploadComplete.is_recursive = YES;
-      event.data.UploadComplete.main_filename = utc->main_filename;
-    } else {
+    if (ret != OK) {
       event.type = upload_error;
       event.data.message = _("Upload failed.\n");
-    }
+      utc->ctx->ecb(utc->ctx->ecbClosure,
+                   &event);
+    } /* for success, uploadDirectory sends event already! */
     utc->filename = NULL;
   } else {
     event.type = upload_error;
     event.data.message = _("Cannot upload directory without using 
recursion.\n");
+    utc->ctx->ecb(utc->ctx->ecbClosure,
+                 &event);
   }
   if (ret == OK) { /* publish top-level advertisements */
     fi.meta = utc->meta;
@@ -438,8 +435,6 @@
                         uri,
                         utc->meta);    
   }
-  utc->ctx->ecb(utc->ctx->ecbClosure,
-               &event);
   fi.uri = uri;
   fi.meta = utc->meta;
   FSUI_publishToCollection(utc->ctx,
@@ -513,7 +508,7 @@
   if (0 != PTHREAD_CREATE(&tl->handle,
                          (PThreadMain) &uploadThread,
                          utc,
-                         32 * 1024)) {
+                         128 * 1024)) {
     LOG_STRERROR(LOG_ERROR, "PTHREAD_CREATE");
     FREE(tl);
     FREE(utc->main_filename);
@@ -581,7 +576,7 @@
   if (0 != PTHREAD_CREATE(&tl->handle,
                          (PThreadMain) &uploadThread,
                          utc,
-                         16 * 1024)) {
+                         128 * 1024)) {
     LOG_STRERROR(LOG_ERROR, "PTHREAD_CREATE");
     FREE(tl);
     FREE(utc->main_filename);

Modified: GNUnet/src/applications/fs/lib/fslib.c
===================================================================
--- GNUnet/src/applications/fs/lib/fslib.c      2005-06-12 17:55:55 UTC (rev 
903)
+++ GNUnet/src/applications/fs/lib/fslib.c      2005-06-13 12:00:59 UTC (rev 
904)
@@ -307,6 +307,7 @@
   ri = MALLOC(size);
   ri->header.size = htons(size);
   ri->header.type = htons(AFS_CS_PROTO_INIT_INDEX);
+  ri->reserved = htonl(0);
   ri->fileId = *fileHc;
   memcpy(&ri[1], fn, fnSize);
 
@@ -439,11 +440,12 @@
  */
 int FS_testIndexed(GNUNET_TCP_SOCKET * sock,
                   const HashCode512 * hc) {
-  RequestInitIndex ri;
+  RequestTestindex ri;
   int ret;
 
-  ri.header.size = htons(sizeof(RequestInitIndex));
+  ri.header.size = htons(sizeof(RequestTestindex));
   ri.header.type = htons(AFS_CS_PROTO_TESTINDEX);
+  ri.reserved = htonl(0);
   ri.fileId = *hc;
   if (OK != writeToSocket(sock,
                          &ri.header))

Modified: GNUnet/src/applications/fs/module/fs.c
===================================================================
--- GNUnet/src/applications/fs/module/fs.c      2005-06-12 17:55:55 UTC (rev 
903)
+++ GNUnet/src/applications/fs/module/fs.c      2005-06-13 12:00:59 UTC (rev 
904)
@@ -40,6 +40,7 @@
 #include "querymanager.h"
 #include "fs.h"
 
+#define EXTRA_CHECKS YES
 
 typedef struct {
   struct DHT_GET_RECORD * rec;
@@ -121,6 +122,10 @@
     BREAK(); /* value failed verification! */
     return SYSERR;
   }
+#if EXTRA_CHECKS
+  if (closure != NULL)
+    return OK; /* was extra-check */
+#endif
 
   dv = MALLOC(size);
   dv->size = htonl(size);
@@ -334,6 +339,7 @@
       ntohs(ri->header.size) - sizeof(RequestInsert) -
       sizeof(Datastore_Value);
     gw = MALLOC(size);
+    gw->reserved = 0;
     gw->dc.size = htonl(size);
     et = ntohll(ri->expiration);
     /* expiration time normalization and randomization */
@@ -714,7 +720,12 @@
   memcpy(&gw[1],
         &value[1],
         size - sizeof(GapWrapper));
-
+#if EXTRA_CHECKS
+  GNUNET_ASSERT(SYSERR != gapPut("CHECK",
+                                key,
+                                &gw->dc,
+                                0));
+#endif
   if (ggc->resultCallback != NULL)
     ret = ggc->resultCallback(key,
                              &gw->dc,
@@ -960,7 +971,24 @@
     return NO;
 }
 
+static void replyHashFunction(const DataContainer * content,
+                             HashCode512 * id) {
+  const GapWrapper * gw;
+  unsigned int size;
 
+  size = ntohl(content->size);
+  if (size < sizeof(GapWrapper)) {
+    BREAK();
+    memset(id, 0, sizeof(HashCode512));
+    return;
+  }
+  gw = (const GapWrapper*) content;
+  hash(&gw[1],
+       size - sizeof(GapWrapper),
+       id);
+}
+
+
 /**
  * Initialize the FS module. This method name must match
  * the library name (libgnunet_XXX => initialize_XXX).
@@ -1004,7 +1032,9 @@
   dsGap.del = &gapDel;
   dsGap.iterate = &gapIterate;
   initQueryManager(capi);
-  gap->init(&dsGap, &uniqueReplyIdentifier);
+  gap->init(&dsGap,
+           &uniqueReplyIdentifier,
+           &replyHashFunction);
 
   if (dht != NULL) {
     dsDht.closure = NULL;

Modified: GNUnet/src/applications/fs/tools/gnunet-download.c
===================================================================
--- GNUnet/src/applications/fs/tools/gnunet-download.c  2005-06-12 17:55:55 UTC 
(rev 903)
+++ GNUnet/src/applications/fs/tools/gnunet-download.c  2005-06-13 12:00:59 UTC 
(rev 904)
@@ -75,7 +75,7 @@
     };
     c = GNgetopt_long(argc,
                      argv,
-                     "a:cdh:H:L:o:RvV",
+                     "a:cdhH:L:o:RvV",
                      long_options,
                      &option_index);
     if (c == -1)
@@ -169,13 +169,13 @@
     SEMAPHORE_UP(signalFinished);
     break;
   case download_complete:
-    printf(_("\nDownload of file '%s' comlete.  Speed was %8.3f kilobyte per 
second.\n"),
+    printf(_("\nDownload of file '%s' complete.  Speed was %8.3f kilobyte per 
second.\n"),
           event->data.DownloadProgress.filename,
           (event->data.DownloadProgress.completed/1024.0) /
           (((double)(cronTime(NULL)-(event->data.DownloadProgress.start_time - 
1)))
            / (double)cronSECONDS) );
-    if (event->data.DownloadProgress.completed
-       == event->data.DownloadProgress.total) {
+    if (ECRS_equalsUri(event->data.DownloadProgress.main_uri,
+                      event->data.DownloadProgress.uri) ) {
       *ok = OK;
       SEMAPHORE_UP(signalFinished);
     }

Modified: GNUnet/src/applications/fs/tools/gnunet-insert.c
===================================================================
--- GNUnet/src/applications/fs/tools/gnunet-insert.c    2005-06-12 17:55:55 UTC 
(rev 903)
+++ GNUnet/src/applications/fs/tools/gnunet-insert.c    2005-06-13 12:00:59 UTC 
(rev 904)
@@ -152,7 +152,8 @@
     if (0 == strcmp(event->data.UploadComplete.main_filename,
                    event->data.UploadComplete.filename)) {
       postProcess(event->data.UploadComplete.uri);
-      SEMAPHORE_UP(exitSignal);
+      if (exitSignal != NULL)
+       SEMAPHORE_UP(exitSignal);
     }
 
     break;
@@ -160,7 +161,8 @@
     printf(_("\nError uploading file: %s\n"),
           event->data.message);
     errorCode = 1;
-    SEMAPHORE_UP(exitSignal); /* always exit main? */
+    if (exitSignal != NULL)
+      SEMAPHORE_UP(exitSignal); /* always exit main? */
     break;
   default:
     BREAK();
@@ -503,6 +505,7 @@
   char * timestr;
   int doIndex;
   int ret;
+  Semaphore * es;
 
   meta = ECRS_createMetaData();
   if (SYSERR == initUtil(argc, argv, &parseOptions)) {
@@ -652,7 +655,9 @@
   }
   /* wait for completion */
   SEMAPHORE_DOWN(exitSignal);
-  SEMAPHORE_FREE(exitSignal);
+  es = exitSignal;
+  exitSignal = NULL;
+  SEMAPHORE_FREE(es);
 
   /* shutdown */
   FREE(filename);

Modified: GNUnet/src/applications/gap/gap.c
===================================================================
--- GNUnet/src/applications/gap/gap.c   2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet/src/applications/gap/gap.c   2005-06-13 12:00:59 UTC (rev 904)
@@ -454,6 +454,8 @@
  */
 static UniqueReplyIdentifier uri;
 
+static ReplyHashFunction rhf;
+
 /**
  * The routing table. This table has entries for all
  * queries that we have recently send out. It helps
@@ -1476,7 +1478,7 @@
   HashCode512 hc1;
   int i;
   IndirectionTableEntry * ite;
-
+  
 #if EXTRA_CHECKS
   /* verify data is valid */
   uri(value,
@@ -1486,11 +1488,10 @@
 
   /* check seen */
   ite = &ROUTING_indTable_[computeRoutingIndex(primaryKey)];
-  /* FIXME: this computation of the seen-ID
-     includes the timeout (bad!) */
-  hash(&value[1],
-       ntohl(value->size) - sizeof(DataContainer),
-       &hc);
+  if (rhf == NULL)
+    return OK; /* drop, not fully initialized! */
+  rhf(value,
+      &hc);
   for (i=0;i<ite->seenIndex;i++)
     if (equalsHashCode512(&hc,
                          &ite->seen[i]))
@@ -1687,36 +1688,40 @@
   ite->successful_local_lookup_in_delay_loop = NO;
   size = ntohs(msg->header.size) - sizeof(GAP_REPLY);
   prio = 0;
-  /* FIXME: this computation of contentHC
-     includes the timeout, which is bad! */
-  hash(&msg[1],
-       size,
-       &contentHC);
 
+  if (rhf == NULL)
+    return OK; /* not fully initialized! */
+  value = MALLOC(size + sizeof(DataContainer));
+  value->size = htonl(size + sizeof(DataContainer));
+  memcpy(&value[1],
+        &msg[1],
+        size);
+  rhf(value,
+      &contentHC);
+  
   /* FIRST: check if seen */
   MUTEX_LOCK(&ite->lookup_exclusion);
   for (i=0;i<ite->seenIndex;i++) {
     if (equalsHashCode512(&contentHC,
                          &ite->seen[i])) {
       MUTEX_UNLOCK(&ite->lookup_exclusion);
+      FREE(value);
       return 0; /* seen before, useless */
     }
   }
   MUTEX_UNLOCK(&ite->lookup_exclusion);
 
   /* SECOND: check if valid */
-  value = MALLOC(size + sizeof(DataContainer));
-  value->size = htonl(size + sizeof(DataContainer));
-  memcpy(&value[1],
-        &msg[1],
-        size);
   ret = bs->put(bs->closure,
                &msg->primaryKey,
                value,
                0);
   if (ret == SYSERR) {
+    BREAK();
+    uri(value,
+       ANY_BLOCK,
+       &contentHC);
     FREE(value);
-    BREAK();
     return SYSERR; /* invalid */
   }
 
@@ -1800,13 +1805,15 @@
  * @return SYSERR on error, OK on success
  */
 static int init(Blockstore * datastore,
-               UniqueReplyIdentifier uid) {
+               UniqueReplyIdentifier uid,
+               ReplyHashFunction rh) {
   if (bs != NULL) {
     BREAK();
     return SYSERR;
   }
   bs = datastore;
   uri = uid;
+  rhf = rh;
   return OK;
 }
 

Modified: GNUnet/src/include/ecrs_core.h
===================================================================
--- GNUnet/src/include/ecrs_core.h      2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet/src/include/ecrs_core.h      2005-06-13 12:00:59 UTC (rev 904)
@@ -142,6 +142,7 @@
   unsigned int type;
 
   KBlock kblock;
+
   NBlock nblock;
 } KNBlock;
 

Modified: GNUnet/src/include/fs.h
===================================================================
--- GNUnet/src/include/fs.h     2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet/src/include/fs.h     2005-06-13 12:00:59 UTC (rev 904)
@@ -59,6 +59,8 @@
    */
   unsigned int anonymityLevel;
 
+  unsigned int reserved; /*  for 64-bit alignment */
+
   /**
    * What are the queries?
    */
@@ -112,6 +114,8 @@
 typedef struct {
   CS_HEADER header;
 
+  unsigned int reserved;
+
   /**
    * What is the hash of the file that contains
    * this block?
@@ -145,19 +149,19 @@
   unsigned long long fileOffset;
 
   /**
+   * What is the hash of the file that contains
+   * this block?  Used by gnunetd for the name
+   * of the file in the on-demand datastore.
+   */
+  HashCode512 fileId;
+
+  /**
    * What are the anonymity requirements for this content?
    * Use 0 if anonymity is not required (enables direct
    * sharing / DHT routing).
    */
   unsigned int anonymityLevel;
 
-  /**
-   * What is the hash of the file that contains
-   * this block?  Used by gnunetd for the name
-   * of the file in the on-demand datastore.
-   */
-  HashCode512 fileId;
-
 } RequestIndex;
 
 /**
@@ -195,6 +199,8 @@
 typedef struct {
   CS_HEADER header;
 
+  unsigned int reserved;
+
   /**
    * What is the hash of the file that should be
    * unindexed?
@@ -211,6 +217,7 @@
  */
 typedef struct {
   DataContainer dc;
+  unsigned int reserved; /* for 64-bit alignment */
   unsigned long long timeout;
 } GapWrapper;
 

Modified: GNUnet/src/include/gnunet_gap_service.h
===================================================================
--- GNUnet/src/include/gnunet_gap_service.h     2005-06-12 17:55:55 UTC (rev 
903)
+++ GNUnet/src/include/gnunet_gap_service.h     2005-06-13 12:00:59 UTC (rev 
904)
@@ -43,6 +43,14 @@
                                     const HashCode512 * primaryKey);
 
 /**
+ * Given some content, compute the unique
+ * hash of the content that can then be used
+ * to sort out duplicates.
+ */
+typedef int (*ReplyHashFunction)(const DataContainer * data,
+                                HashCode512 * hc);
+
+/**
  * Functions of the GAP Service API.
  */
 typedef struct {
@@ -54,7 +62,8 @@
    * @return SYSERR on error, OK on success
    */
   int (*init)(Blockstore * datastore,
-             UniqueReplyIdentifier uri);
+             UniqueReplyIdentifier uri,
+             ReplyHashFunction rhf);
 
   /**
    * Perform a GET operation using 'key' as the key.  Note that no

Modified: GNUnet/src/util/configuration.c
===================================================================
--- GNUnet/src/util/configuration.c     2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet/src/util/configuration.c     2005-06-13 12:00:59 UTC (rev 904)
@@ -327,7 +327,7 @@
  * globally FOO is set to DIRECTORY.
  */
 char * expandDollar(const char * section,
-                          char * orig) {
+                   char * orig) {
   int i;
   char * prefix;
   char * result;
@@ -346,6 +346,8 @@
     prefix = getConfigurationString("GNUNETD", &orig[1]);
   if (prefix == NULL)
     prefix = getConfigurationString("GNUNET", &orig[1]);
+  if (prefix == NULL)
+    prefix = getConfigurationString("", &orig[1]);
   if (prefix == NULL) {
     orig[i] = DIR_SEPARATOR;
     return orig;
@@ -450,7 +452,7 @@
   } else {
     expCfgName = expandFileName(cfgName);
   }
-  FREE(eName);
+  FREENONNULL(eName);
   if (0 == assertIsFile(expCfgName)) {
     FILE * f;
     char * c;
@@ -599,8 +601,6 @@
   UserConf * pos;
   char * retval;
 
-  if ( !(section != NULL) && (option != NULL) )
-    BREAK();
   GNUNET_ASSERT( (section != NULL) && (option != NULL) );
   MUTEX_LOCK(&configLock);
   pos = userconfig;

Modified: GNUnet/src/util/testconfig.conf
===================================================================
--- GNUnet/src/util/testconfig.conf     2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet/src/util/testconfig.conf     2005-06-13 12:00:59 UTC (rev 904)
@@ -1,3 +1,4 @@
+[GNUNET]
 SUBST=hello
 GNUNET_HOME=/tmp
 

Modified: GNUnet/todo
===================================================================
--- GNUnet/todo 2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet/todo 2005-06-13 12:00:59 UTC (rev 904)
@@ -1,5 +1,4 @@
 0.7.0pre3:
-- FSUI: directory creation (uploadAll) broken! [ empty directories! ]
 - gnunet-gtk (debug)
 - gnunet-setup: [Nils]
   * gconfig: fix focus changes
@@ -7,13 +6,10 @@
     known to be working.  
 
 0.7.0 [6'05?] (aka "compatibility? what's that?"):
+- FSUI: recursive directory download crashes (i.e. on exit)
 - Missing Features:
   * resolve "FIXME 0.7": only sqlite magic factor missing! [Nils]
   * #593 (gnunet-setup): php-ification for i18n [ Nils ]
-  * cache kblock-public/private keys 
-    (terribly important, performance sucks already, but
-     without caching it'll be unbearable, espeically for
-     insertion of zip files with hundreds of files/keywords!)
   * permissions on indexed files? [Nils]
   * Windows installer [Nils]
     * Uninstall
@@ -51,6 +47,10 @@
 - Documentation:
   * LJ article
 - support using -k multiple times in gnunet-pseudonym
+- maybe: cache kblock-public/private keys 
+    (1024 bit keys are much better than the 2048 bit keys,
+     but this would give another performance boost, especially for
+     insertion of zip files with hundreds of files/keywords!)
 
 1.0.0 (aka "userfriendly"):
 - implement testbed for profiling

Modified: GNUnet-docs/papers/ecrs/main.aux
===================================================================
--- GNUnet-docs/papers/ecrs/main.aux    2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet-docs/papers/ecrs/main.aux    2005-06-13 12:00:59 UTC (rev 904)
@@ -15,6 +15,11 @@
 address@hidden {author}{Christian Grothoff\unskip {}, Krista Grothoff\unskip 
{}, Tzvetan Horozov\unskip {}, Jussi T. Lindgren\unskip {}}{1}{chapter.1}}
 address@hidden {section}{\numberline {1}Introduction}{1}{section.1.1}}
 \citation{dingledine02mixminion,syverson97anonymous}
+\citation{perng2005csr}
+\citation{perng2005csr}
+\citation{perng2005csr}
+\citation{clark99distributed}
+\citation{farsite}
 \citation{ebe2003}
 \citation{clark99distributed}
 \citation{clark99distributed}
@@ -23,74 +28,75 @@
 
\citation{anderson96eternity,chen99prototype,clark99distributed,freehaven-berk,feamster-infranet,herlihy87how,waldman2001tangler,pub00}
 \citation{cohen02replication}
 \citation{clark99distributed}
address@hidden {section}{\numberline {2}Related Work}{3}{section.1.2}}
-\newlabel{related}{{2}{3}{Related Work\relax }{section.1.2}{}}
address@hidden {section}{\numberline {2}Related Work}{4}{section.1.2}}
+\newlabel{related}{{2}{4}{Related Work\relax }{section.1.2}{}}
address@hidden {subsection}{\numberline {2.1}Freenet}{4}{subsection.1.2.1}}
 \citation{freehaven-berk}
 \citation{rabin89efficient}
address@hidden {subsection}{\numberline {2.1}Freenet}{4}{subsection.1.2.1}}
address@hidden {subsection}{\numberline {2.2}Free Haven}{4}{subsection.1.2.2}}
 \citation{mojotech}
address@hidden {subsection}{\numberline {2.2}Free Haven}{5}{subsection.1.2.2}}
address@hidden {subsection}{\numberline {2.3}Mnet and Mojo 
Nation}{5}{subsection.1.2.3}}
 \citation{pub00}
 \citation{shamir}
 \citation{waldman2001tangler}
address@hidden {subsection}{\numberline {2.3}Mnet and Mojo 
Nation}{5}{subsection.1.2.3}}
address@hidden {subsection}{\numberline {2.4}Publius}{5}{subsection.1.2.4}}
address@hidden {subsection}{\numberline {2.5}Tangler}{5}{subsection.1.2.5}}
 \citation{shamir}
address@hidden {subsection}{\numberline {2.4}Publius}{6}{subsection.1.2.4}}
address@hidden {subsection}{\numberline {2.5}Tangler}{6}{subsection.1.2.5}}
 
\citation{cfs:sosp01,mazires00sfs,mazieres02building,muthitacharoen02ivy,rowstron01storage}
 \citation{cfs:sosp01,rowstron01storage}
 \citation{maymounkov02kademlia,stoica01chord}
 \citation{mazires00sfs}
 \citation{mazieres02building}
address@hidden {subsection}{\numberline {2.6}Gnutella and 
FastTrack}{6}{subsection.1.2.6}}
address@hidden {subsection}{\numberline {2.7}Distributed File 
Systems}{6}{subsection.1.2.7}}
 \citation{stratton_oakmont}
address@hidden {subsection}{\numberline {2.6}Gnutella and 
FastTrack}{7}{subsection.1.2.6}}
address@hidden {subsection}{\numberline {2.7}Distributed File 
Systems}{7}{subsection.1.2.7}}
address@hidden {section}{\numberline {3}ECRS encoding}{7}{section.1.3}}
+\newlabel{content}{{3}{7}{ECRS encoding\relax }{section.1.3}{}}
 \citation{hartman99swarm}
 \citation{ebe2003}
address@hidden {section}{\numberline {3}ECRS encoding}{7}{section.1.3}}
-\newlabel{content}{{3}{7}{ECRS encoding\relax }{section.1.3}{}}
 \citation{mckusick84fast}
 \citation{merkle89tree}
address@hidden {subsection}{\numberline {3.1}Overview}{8}{subsection.1.3.1}}
 \citation{clark99distributed}
address@hidden {figure}{\numberline {1}{\ignorespaces Simple encoding of a file 
using a tree of CHK blocks ($DBlock$s and $IBlock$s are CHK encoded) with one 
$KBlock$ to allow for a keyword-based search.}}{8}{figure.1.1}}
-\newlabel{encodingfile}{{1}{8}{ECRS encoding\relax }{figure.1.1}{}}
address@hidden {subsection}{\numberline {3.1}Overview}{8}{subsection.1.3.1}}
address@hidden {figure}{\numberline {1}{\ignorespaces Simple encoding of a file 
using a tree of CHK blocks ($DBlock$s and $IBlock$s are CHK encoded) with one 
$KBlock$ to allow for a keyword-based search.}}{9}{figure.1.1}}
+\newlabel{encodingfile}{{1}{9}{ECRS encoding\relax }{figure.1.1}{}}
 address@hidden {subsection}{\numberline {3.2}{\em  
DBlocks}}{9}{subsection.1.3.2}}
 \newlabel{dblocks}{{3.2}{9}{{\em DBlocks}\relax }{subsection.1.3.2}{}}
 address@hidden {subsection}{\numberline {3.3}{\em  
IBlocks}}{9}{subsection.1.3.3}}
 \newlabel{iblocks}{{3.3}{9}{{\em IBlocks}\relax }{subsection.1.3.3}{}}
address@hidden {subsection}{\numberline {3.4}Finding 
files}{9}{subsection.1.3.4}}
-\newlabel{sec:search}{{3.4}{9}{Finding files\relax }{subsection.1.3.4}{}}
+\citation{secure2004goh}
 \citation{clark99distributed}
address@hidden {subsection}{\numberline {3.5}Namespaces}{10}{subsection.1.3.5}}
-\newlabel{sblock}{{3.5}{10}{Namespaces\relax }{subsection.1.3.5}{}}
address@hidden {subsection}{\numberline {3.6}Keyword 
search}{11}{subsection.1.3.6}}
-\newlabel{kblocks}{{3.6}{11}{Keyword search\relax }{subsection.1.3.6}{}}
address@hidden {subsection}{\numberline {3.7}Summary}{12}{subsection.1.3.7}}
address@hidden {section}{\numberline {4}Extensions}{12}{section.1.4}}
-\newlabel{extensions}{{4}{12}{Extensions\relax }{section.1.4}{}}
-\citation{le2005}
address@hidden {subsection}{\numberline {3.4}Finding 
files}{10}{subsection.1.3.4}}
+\newlabel{sec:search}{{3.4}{10}{Finding files\relax }{subsection.1.3.4}{}}
address@hidden {subsection}{\numberline {3.5}Namespaces}{11}{subsection.1.3.5}}
+\newlabel{sblock}{{3.5}{11}{Namespaces\relax }{subsection.1.3.5}{}}
address@hidden {subsection}{\numberline {3.6}Keyword 
search}{12}{subsection.1.3.6}}
+\newlabel{kblocks}{{3.6}{12}{Keyword search\relax }{subsection.1.3.6}{}}
 \newlabel{split}{{2}{13}{Summary\relax }{Item.2}{}}
 \newlabel{encryptStep}{{3}{13}{Summary\relax }{Item.3}{}}
 address@hidden {figure}{\numberline {2}{\ignorespaces The ECRS encoding 
algorithm.}}{13}{figure.1.2}}
 \newlabel{ECRS}{{2}{13}{Summary\relax }{figure.1.2}{}}
address@hidden {figure}{\numberline {3}{\ignorespaces Example protocol for an 
ECRS download.}}{13}{figure.1.3}}
-\newlabel{protocol}{{3}{13}{Summary\relax }{figure.1.3}{}}
address@hidden {subsection}{\numberline {4.1}Keyword 
inference}{13}{subsection.1.4.1}}
-\newlabel{keywords}{{4.1}{13}{Keyword inference\relax }{subsection.1.4.1}{}}
address@hidden {subsection}{\numberline {3.7}Summary}{13}{subsection.1.3.7}}
+\citation{le2005}
address@hidden {figure}{\numberline {3}{\ignorespaces Example protocol for an 
ECRS download.}}{14}{figure.1.3}}
+\newlabel{protocol}{{3}{14}{Summary\relax }{figure.1.3}{}}
address@hidden {section}{\numberline {4}Extensions}{14}{section.1.4}}
+\newlabel{extensions}{{4}{14}{Extensions\relax }{section.1.4}{}}
address@hidden {subsection}{\numberline {4.1}Keyword 
inference}{14}{subsection.1.4.1}}
+\newlabel{keywords}{{4.1}{14}{Keyword inference\relax }{subsection.1.4.1}{}}
address@hidden {subsection}{\numberline {4.2}Directories}{14}{subsection.1.4.2}}
 \citation{bloom}
address@hidden {subsection}{\numberline {4.2}Directories}{14}{subsection.1.4.2}}
address@hidden {subsection}{\numberline {4.3}Efficient lookups with bloom 
filters}{14}{subsection.1.4.3}}
address@hidden {subsection}{\numberline {4.3}Efficient lookups with bloom 
filters}{15}{subsection.1.4.3}}
address@hidden {section}{\numberline {5}Discussion}{15}{section.1.5}}
+\newlabel{discussion}{{5}{15}{Discussion\relax }{section.1.5}{}}
 \citation{freehaven-berk,mojotech}
 \citation{rabin89efficient}
address@hidden {section}{\numberline {5}Discussion}{15}{section.1.5}}
-\newlabel{discussion}{{5}{15}{Discussion\relax }{section.1.5}{}}
address@hidden {subsection}{\numberline {5.1}Attacks}{15}{subsection.1.5.1}}
address@hidden {subsection}{\numberline {5.1}Attacks}{16}{subsection.1.5.1}}
 \citation{levien03advogato}
 \citation{esed}
address@hidden {subsection}{\numberline {5.2}{\em  KBlocks} or 
triple-hash}{16}{subsection.1.5.2}}
address@hidden {section}{\numberline {6}Conclusion}{17}{section.1.6}}
-\newlabel{conclusion}{{6}{17}{Conclusion\relax }{section.1.6}{}}
address@hidden {subsection}{\numberline {5.2}{\em  KBlocks} or 
triple-hash}{17}{subsection.1.5.2}}
address@hidden {section}{\numberline {6}Conclusion}{18}{section.1.6}}
+\newlabel{conclusion}{{6}{18}{Conclusion\relax }{section.1.6}{}}
 \bibstyle{plain}
 \bibdata{ref}
 \bibcite{anderson96eternity}{1}
@@ -102,24 +108,27 @@
 \bibcite{cfs:sosp01}{7}
 \bibcite{dingledine02mixminion}{8}
 \bibcite{freehaven-berk}{9}
-\bibcite{feamster-infranet}{10}
-\bibcite{ebe2003}{11}
-\bibcite{le2005}{12}
-\bibcite{hartman99swarm}{13}
-\bibcite{herlihy87how}{14}
-\bibcite{levien03advogato}{15}
-\bibcite{maymounkov02kademlia}{16}
-\bibcite{mazires00sfs}{17}
-\bibcite{mazieres02building}{18}
-\bibcite{mckusick84fast}{19}
-\bibcite{merkle89tree}{20}
-\bibcite{muthitacharoen02ivy}{21}
-\bibcite{rabin89efficient}{22}
-\bibcite{rowstron01storage}{23}
-\bibcite{shamir}{24}
-\bibcite{stoica01chord}{25}
-\bibcite{stratton_oakmont}{26}
-\bibcite{syverson97anonymous}{27}
-\bibcite{waldman2001tangler}{28}
-\bibcite{pub00}{29}
-\bibcite{mojotech}{30}
+\bibcite{farsite}{10}
+\bibcite{feamster-infranet}{11}
+\bibcite{secure2004goh}{12}
+\bibcite{ebe2003}{13}
+\bibcite{le2005}{14}
+\bibcite{hartman99swarm}{15}
+\bibcite{herlihy87how}{16}
+\bibcite{levien03advogato}{17}
+\bibcite{maymounkov02kademlia}{18}
+\bibcite{mazires00sfs}{19}
+\bibcite{mazieres02building}{20}
+\bibcite{mckusick84fast}{21}
+\bibcite{merkle89tree}{22}
+\bibcite{muthitacharoen02ivy}{23}
+\bibcite{perng2005csr}{24}
+\bibcite{rabin89efficient}{25}
+\bibcite{rowstron01storage}{26}
+\bibcite{shamir}{27}
+\bibcite{stoica01chord}{28}
+\bibcite{stratton_oakmont}{29}
+\bibcite{syverson97anonymous}{30}
+\bibcite{waldman2001tangler}{31}
+\bibcite{pub00}{32}
+\bibcite{mojotech}{33}

Modified: GNUnet-docs/papers/ecrs/main.bbl
===================================================================
--- GNUnet-docs/papers/ecrs/main.bbl    2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet-docs/papers/ecrs/main.bbl    2005-06-13 12:00:59 UTC (rev 904)
@@ -57,12 +57,23 @@
   Enhancing Technologies: Workshop on Design Issues in Anonymity and
   Unobservability}. Springer-Verlag, LNCS 2009, July 2000.
 
+\bibitem{farsite}
+John~R. Douceur, Atul Adya, Wiliam~J. Bolosky, Dan Simon, and Marvin Theimer.
+\newblock Reclaiming space from duplicate files in a serverless distributed
+  file system.
+\newblock Technical report, Microsoft Research, 2002.
+
 \bibitem{feamster-infranet}
 Nick Feamster, Magdalena Balazinska, Greg Harfst, Hari Balakrishnan, and David
   Karger.
 \newblock Infranet: Circumventing web censorship and surveillance.
 \newblock In {\em {11th USENIX Security Symposium}}, 2002.
 
+\bibitem{secure2004goh}
+Eu-Jin Goh.
+\newblock Secure indexes.
+\newblock In {\em Cryptology ePrint Archive}, Oct 2003.
+
 \bibitem{ebe2003}
 Christian Grothoff.
 \newblock {An Excess-Based Economic Model for Resource Allocation in
@@ -125,6 +136,12 @@
 \newblock In {\em Proceedings of 5th Symposium on Operating Systems Design and
   Implementation}, 2002.
 
+\bibitem{perng2005csr}
+Ginger Perng, Michael~K. Reiter, and Chenxi Wang.
+\newblock Censorship resistance revisited.
+\newblock In Jordi Herrera-Joancomarti, editor, {\em Pre-Proceedings of the 7th
+  International Workshop on Information Hiding}, pages 279--293, 2005.
+
 \bibitem{rabin89efficient}
 Michael~O. Rabin.
 \newblock Efficient dispersal of information for security, load balancing, and

Modified: GNUnet-docs/papers/ecrs/main.blg
===================================================================
--- GNUnet-docs/papers/ecrs/main.blg    2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet-docs/papers/ecrs/main.blg    2005-06-13 12:00:59 UTC (rev 904)
@@ -2,44 +2,44 @@
 The top-level auxiliary file: main.aux
 The style file: plain.bst
 Database file #1: ref.bib
-You've used 30 entries,
+You've used 33 entries,
             2118 wiz_defined-function locations,
-            666 strings with 9154 characters,
-and the built_in function-call counts, 10588 in all, are:
-= -- 1015
-> -- 462
-< -- 14
-+ -- 187
-- -- 152
-* -- 656
-:= -- 1676
-add.period$ -- 96
-call.type$ -- 30
-change.case$ -- 163
+            682 strings with 9615 characters,
+and the built_in function-call counts, 11647 in all, are:
+= -- 1111
+> -- 519
+< -- 15
++ -- 209
+- -- 171
+* -- 722
+:= -- 1852
+add.period$ -- 105
+call.type$ -- 33
+change.case$ -- 182
 chr.to.int$ -- 0
-cite$ -- 30
-duplicate$ -- 478
-empty$ -- 913
-format.name$ -- 152
-if$ -- 2326
+cite$ -- 33
+duplicate$ -- 523
+empty$ -- 998
+format.name$ -- 171
+if$ -- 2553
 int.to.chr$ -- 0
-int.to.str$ -- 30
-missing$ -- 27
-newline$ -- 152
-num.names$ -- 64
-pop$ -- 223
+int.to.str$ -- 33
+missing$ -- 29
+newline$ -- 167
+num.names$ -- 72
+pop$ -- 247
 preamble$ -- 1
-purify$ -- 135
+purify$ -- 150
 quote$ -- 0
-skip$ -- 340
+skip$ -- 372
 stack$ -- 0
-substring$ -- 530
-swap$ -- 147
-text.length$ -- 14
+substring$ -- 573
+swap$ -- 160
+text.length$ -- 15
 text.prefix$ -- 0
 top$ -- 0
-type$ -- 120
+type$ -- 132
 warning$ -- 0
-while$ -- 94
-width$ -- 32
-write$ -- 329
+while$ -- 103
+width$ -- 35
+write$ -- 361

Modified: GNUnet-docs/papers/ecrs/main.dvi
===================================================================
(Binary files differ)

Modified: GNUnet-docs/papers/ecrs/main.log
===================================================================
--- GNUnet-docs/papers/ecrs/main.log    2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet-docs/papers/ecrs/main.log    2005-06-13 12:00:59 UTC (rev 904)
@@ -1,4 +1,4 @@
-This is pdfeTeX, Version 3.14159-1.10b-2.1 (Web2C 7.4.5) (format=pdflatex 
2005.5.20)  3 JUN 2005 07:38
+This is pdfeTeX, Version 3.14159-1.10b-2.1 (Web2C 7.4.5) (format=pdflatex 
2005.5.20)  11 JUN 2005 09:41
 entering extended mode
 **main.tex
 (./main.tex{/usr/share/texmf/pdftex/config/pdftex.cfg}
@@ -491,21 +491,21 @@
 \openout4 = `main.out'.
 
 LaTeX Font Info:    External font `cmex7' loaded for size
-(Font)              <7> on input line 48.
+(Font)              <7> on input line 81.
 LaTeX Font Info:    External font `cmex7' loaded for size
-(Font)              <5> on input line 48.
-LaTeX Font Info:    Try loading font information for U+msa on input line 48.
+(Font)              <5> on input line 81.
+LaTeX Font Info:    Try loading font information for U+msa on input line 81.
 
 (/usr/share/texmf/tex/latex/amsfonts/umsa.fd
 File: umsa.fd 2002/01/19 v2.2g AMS font definitions
 )
-LaTeX Font Info:    Try loading font information for U+msb on input line 48.
+LaTeX Font Info:    Try loading font information for U+msb on input line 81.
 
 (/usr/share/texmf/tex/latex/amsfonts/umsb.fd
 File: umsb.fd 2002/01/19 v2.2g AMS font definitions
 )
 LaTeX Font Info:    External font `cmex7' loaded for size
-(Font)              <6> on input line 48.
+(Font)              <6> on input line 81.
 
 
 Package hyperref Warning: bookmark level for unknown title defaults to 0.
@@ -515,22 +515,22 @@
 
 
 Package hyperref Warning: Token not allowed in a PDFDocEncoded string,
-(hyperref)                removing `\unskip' on input line 48.
+(hyperref)                removing `\unskip' on input line 81.
 
 
 Package hyperref Warning: Token not allowed in a PDFDocEncoded string,
-(hyperref)                removing `\unskip' on input line 48.
+(hyperref)                removing `\unskip' on input line 81.
 
 
 Package hyperref Warning: Token not allowed in a PDFDocEncoded string,
-(hyperref)                removing `\unskip' on input line 48.
+(hyperref)                removing `\unskip' on input line 81.
 
 
 Package hyperref Warning: Token not allowed in a PDFDocEncoded string,
-(hyperref)                removing `\unskip' on input line 48.
+(hyperref)                removing `\unskip' on input line 81.
 
 
-Overfull \hbox (9.0264pt too wide) in paragraph at lines 50--62
+Overfull \hbox (9.0264pt too wide) in paragraph at lines 83--95
 /cmr9/censor-ship-resistant peer-to-peer net-work-ing. The pro-posed en-cod-ing
  mech-
  []
@@ -538,47 +538,50 @@
 [1
 
 {/var/lib/texmf/dvips/config/pdftex.map}]
-Underfull \vbox (badness 1102) has occurred while \output is active []
+Underfull \vbox (badness 10000) has occurred while \output is active []
 
  [2]
-[3] [4] [5] [6] [7] <xymatrix 9x5 862> [8] [9] [10] [11] [12] [13] [14]
-[15] [16] [17] (./main.bbl [18]
-Underfull \hbox (badness 6658) in paragraph at lines 89--92
+Underfull \vbox (badness 2158) has occurred while \output is active []
+
+ [3]
+[4] [5] [6] [7] <xymatrix 9x5 862> [8] [9] [10] [11] [12] [13] [14] [15]
+[16] [17] [18] (./main.bbl [19]
+Underfull \hbox (badness 6658) in paragraph at lines 100--103
 []/cmr9/Raph Levien.  At-tack re-sis-tant trust met-rics.  Draft avail-able at
  []
 
-) [19] (./main.aux) ) 
+[20]) [21] (./main.aux) ) 
 Here is how much of TeX's memory you used:
- 6614 strings out of 94960
- 81038 string characters out of 1182470
- 209976 words of memory out of 1000001
- 9522 multiletter control sequences out of 10000+50000
+ 6622 strings out of 94960
+ 81137 string characters out of 1182470
+ 211802 words of memory out of 1000001
+ 9525 multiletter control sequences out of 10000+50000
  13677 words of font info for 55 fonts, out of 500000 for 1000
  198 hyphenation exceptions out of 1000
  32i,16n,27p,270b,585s stack positions out of 1500i,500n,5000p,200000b,5000s
- 311 PDF objects out of 300000
- 91 named destinations out of 131072
+ 329 PDF objects out of 300000
+ 96 named destinations out of 131072
  30 words of extra memory for PDF output out of 65536
-{/usr/share/texmf/dvips/tetex/0ef0afca.enc}</usr/share/tex
-mf/fonts/type1/bluesky/cm/cmcsc10.pfb>{/usr/share/texmf/dvips/tetex/bbad153f.en
-c}</usr/share/texmf/fonts/type1/bluesky/cm/cmsy10.pfb></usr/share/texmf/fonts/t
-ype1/bluesky/cm/cmsy7.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmr5.pfb></u
-sr/share/texmf/fonts/type1/bluesky/cm/cmsy5.pfb></usr/share/texmf/fonts/type1/b
-luesky/cm/cmsy9.pfb>{/usr/share/texmf/dvips/tetex/aae443f0.enc}</usr/share/texm
-f/fonts/type1/bluesky/cm/cmmi5.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmm
-i7.pfb>{/usr/share/texmf/dvips/tetex/74afc74c.enc}</usr/share/texmf/fonts/type1
-/bluesky/cm/cmbxti10.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmmi6.pfb></u
-sr/share/texmf/fonts/type1/public/xypic/xydash10.pfb></usr/share/texmf/fonts/ty
-pe1/bluesky/cm/cmsy6.pfb></usr/share/texmf/fonts/type1/public/xypic/xybtip10.pf
-b></usr/share/texmf/fonts/type1/public/xypic/xyatip10.pfb></usr/share/texmf/fon
-ts/type1/bluesky/cm/cmmi9.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmti9.pf
-b></usr/share/texmf/fonts/type1/bluesky/cm/cmmi10.pfb>{/usr/share/texmf/dvips/t
-etex/f7b6d320.enc}</usr/share/texmf/fonts/type1/bluesky/cm/cmbx10.pfb>{/usr/sha
-re/texmf/dvips/tetex/09fbbfac.enc}</usr/share/texmf/fonts/type1/bluesky/cm/cmtt
-10.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmti10.pfb></usr/share/texmf/fo
-nts/type1/bluesky/cm/cmbx9.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmtt9.p
-fb></usr/share/texmf/fonts/type1/bluesky/cm/cmr9.pfb></usr/share/texmf/fonts/ty
-pe1/bluesky/cm/cmr6.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmr7.pfb></usr
-/share/texmf/fonts/type1/bluesky/cm/cmr10.pfb></usr/share/texmf/fonts/type1/blu
-esky/cm/cmbx12.pfb>
-Output written on main.pdf (19 pages, 267241 bytes).
+{/usr/share/texmf/dvips/tetex/0ef0afca.enc}</usr/share
+/texmf/fonts/type1/bluesky/cm/cmcsc10.pfb>{/usr/share/texmf/dvips/tetex/bbad153
+f.enc}</usr/share/texmf/fonts/type1/bluesky/cm/cmsy10.pfb></usr/share/texmf/fon
+ts/type1/bluesky/cm/cmsy7.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmr5.pfb
+></usr/share/texmf/fonts/type1/bluesky/cm/cmsy5.pfb></usr/share/texmf/fonts/typ
+e1/bluesky/cm/cmsy9.pfb>{/usr/share/texmf/dvips/tetex/aae443f0.enc}</usr/share/
+texmf/fonts/type1/bluesky/cm/cmmi5.pfb></usr/share/texmf/fonts/type1/bluesky/cm
+/cmmi7.pfb>{/usr/share/texmf/dvips/tetex/74afc74c.enc}</usr/share/texmf/fonts/t
+ype1/bluesky/cm/cmbxti10.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmmi6.pfb
+></usr/share/texmf/fonts/type1/public/xypic/xydash10.pfb></usr/share/texmf/font
+s/type1/bluesky/cm/cmsy6.pfb></usr/share/texmf/fonts/type1/public/xypic/xybtip1
+0.pfb></usr/share/texmf/fonts/type1/public/xypic/xyatip10.pfb></usr/share/texmf
+/fonts/type1/bluesky/cm/cmmi9.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmti
+9.pfb>{/usr/share/texmf/dvips/tetex/f7b6d320.enc}</usr/share/texmf/fonts/type1/
+bluesky/cm/cmbx10.pfb>{/usr/share/texmf/dvips/tetex/09fbbfac.enc}</usr/share/te
+xmf/fonts/type1/bluesky/cm/cmtt10.pfb></usr/share/texmf/fonts/type1/bluesky/cm/
+cmmi10.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmti10.pfb></usr/share/texm
+f/fonts/type1/bluesky/cm/cmbx9.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmt
+t9.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmr9.pfb></usr/share/texmf/font
+s/type1/bluesky/cm/cmr6.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmr7.pfb><
+/usr/share/texmf/fonts/type1/bluesky/cm/cmr10.pfb></usr/share/texmf/fonts/type1
+/bluesky/cm/cmbx12.pfb>
+Output written on main.pdf (21 pages, 274929 bytes).

Modified: GNUnet-docs/papers/ecrs/main.pdf
===================================================================
(Binary files differ)

Modified: GNUnet-docs/papers/ecrs/main.ps
===================================================================
--- GNUnet-docs/papers/ecrs/main.ps     2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet-docs/papers/ecrs/main.ps     2005-06-13 12:00:59 UTC (rev 904)
@@ -1,17 +1,17 @@
 %!PS-Adobe-2.0
 %%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
 %%Title: main.dvi
-%%Pages: 19
+%%Pages: 21
 %%PageOrder: Ascend
 %%BoundingBox: 0 0 612 792
-%%DocumentFonts: CMBX12 CMR10 CMR7 CMR6 CMR9 CMTT9 CMBX9 CMTI10 CMTT10
-%%+ CMBX10 CMMI10 CMTI9 CMMI9 XYATIP10 XYBTIP10 CMSY6 XYDASH10 CMMI6
+%%DocumentFonts: CMBX12 CMR10 CMR7 CMR6 CMR9 CMTT9 CMBX9 CMTI10 CMMI10
+%%+ CMTT10 CMBX10 CMTI9 CMMI9 XYATIP10 XYBTIP10 CMSY6 XYDASH10 CMMI6
 %%+ CMBXTI10 CMMI7 CMMI5 CMSY9 CMSY5 CMR5 CMSY7 CMSY10 CMCSC10
 %%EndComments
 %DVIPSWebPage: (www.radicaleye.com)
 %DVIPSCommandLine: dvips main.dvi -o main.ps
 %DVIPSParameters: dpi=600, compressed
-%DVIPSSource:  TeX output 2005.06.03:0738
+%DVIPSSource:  TeX output 2005.06.11:0941
 %%BeginProcSet: texc.pro
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -2054,394 +2054,400 @@
 7D96CFB3C342DD38DB5730ED913639C2BF3CEBFA6F3D493DCE5F8218F8BD8035
 9E6CDFB95628F7198CFA2EBDE1905F051BFC4F835C5A787E3B43EAD947EC893D
 9D1B04A9A7EE7CF3E02A58BB0867AA7C77F30CFEBCB4B3E6EC68F6B234FB6B26
-7A9D88A3CBF7A29ADDD1D212562AAE1F7506A592ACA0720C2FF4E162274961AE
-2595E81820B04A9E0695A13DDC27AAE1D1D4336D4A5EA976E627A55572B3354C
-9AE1D011E54B0FF279A63962341FC7B0E71B46855BD31F45CB80F02FA1005F14
-7D56C2DC7AB765E2C9BD3986ADC36D63373718B1564D72B4EE59A393C94B3C4B
-1ABB6A2D11E7324063259AA6ED1D3D4BEFCAF094189AAF89E17614117D6553D8
-97910E0091E130C8613B5EC556775B8B17D6F4B967EB1B7FE6C9A77AFB974B9E
-31CF0DAD81F6A6D87FF1F4F6FAF29EF67234DFA0C7A992BB8D727536BB3250B0
-C339FA0237D1A84877B856517ADE5E0C0CA58CA5D0C12070DCCF9EC1D28761C2
-4055936908ED8069B3899B6A449E15CCA6C2AC37596789060B7FAA0009211D27
-685B9573F4819CF21FE46ABB3B5B77F9D78137C27ED6FA744BD4865693786B0D
-94D0AADFF6E0F831DE843472766E323F5237F879194419341C9B049623BF42E4
-7EF714A0CA0416D18CFEC946B7373FCF6136A659A1C7A2C92029274D410C9208
-0F4B687E9FE212305D2A625813BFCABF8C5CE021F7922C7F5B2206E0398CD7C2
-573C59C6439F1263640D666F1EE274B3B519E4C1E6FF81C2D579525766F7DF45
-734877F8981160B061B0567F4420802523FCF31502819F55C9740A3FAD8BA78D
-0DE272B52766769CA2A98287BC0FD03AB564E3B7C1A43235A3A7E62EAB5CA2DE
-65CF83E3225181D2BA3D497D19F2231C6235A90DC324AE4D681C20E747B20198
-B57FEDECF477A9665F9E8558270977354BB3C87623F9F2A15049A77295426CE6
-7C76690DE6055CB7C33003E893348E5782DE7BBE208A1C9E4441CA1CF5C9EC4F
-93516122C798F73FA5D0E364F6CE25FD5137C72FBD9EDDD925A308B7DE8F1F0C
-DB01CD9056424424C468BB61CAF23D4801045CC6D8D925ACC6029904C00DD3F2
-7A330AA3B6FC633B1216B4F3BD6C5612209293FCE134F404B26C5ABBFE14FB2C
-AD93D49A5DC184A076C18A4DF83E358D253A9175B25EA39CDBE6B3F4A7F1AF23
-B7AB464C49B003307B0464AE810C65F8236B82E5A9C956949D9CE78180FBFF91
-0937C22368859355159C748D56A6AB0E31D8154766DABA6E29257D449D2B41B0
-2937E7CB77876810C326A0A53C12E01A612CC257F71E7E17819FCA1E76DFE920
-F40D6A40B7D53BEAFE531B2E9D1FEB3733B6A9EEC5F522ACBF74FB760B63D146
-D777631FFB12BA79DF04C04EB3E5BB99F7F3C9AAD1972B0DB5D73A8033E3A23D
-49391471DFDC5FF3B9C8AFCA3CBDAA74B05579623ECB5368C96552805616DEA7
-FDA854BA9325CD520F79E4A1C367DDE0210CF9133FE9F9C153904B40DEDFE7F1
-80A26DE9531A22A4F04308CF96B4CAC7CF6B9CBAAA53DECAC68BB900DF883427
-96AE34F762C4270FA8C167B32FA8831B0F1663B60630FF9F2C0DB9D7E6EE61B7
-98A1DAEE9410715013AAE33F0C2186BBB947E3A90BF922BF293704E362C9F0AD
-D69D4045F37040F3587B36522307F27A063DF405E21652E4E9D2D92CAF805C60
-7DCBA3EE2781DA9F3713A2E94AD1B55B957A90C023D9E4FDFAD8F9409C2067B0
-1437ECBE4F949054357693DA8C50C1E92AE7D54309D2D4B05A0F67E2C42C7E4B
-B84DBFAB3A69BF010F31A88B733345036F74424E801268B0EC63E1ECF03364D9
-036612A6B70A06071DF55532E9637F09D3AE7AB18276E8BF927705A4D71B75B6
-44237A899670A65429234E87C2F8582B3BB98E15D547F661B94E6DA581B4F98E
-BD4C0830AFBC663D03F86B666DC3482B83216B535D6C36569703374D62F4C3EF
-3D788235EBD98F3E37E61E053D3164FDD935FB2AC03743BFDF8C7378286A4202
-579EE55B822EF7547691BC1D637C32483B17D29B64C69F81E669046370011395
-9CE36732FE830498105200E56B96D3D08D6F1DCD319C681F1DB936D538C65BD3
-6705974F2C1EC86E695F3177FFAACCCCB6B985A5519E0436B54ECB40B0C7492D
-BF1FE6F7CEA5992370465667E90DA0DEE2C3279E9A9F056FAFFB6320F6326329
-82659E9521BA09312612061D14ED623D04F9CB6501C57E729B0D9D36B4E2B109
-35AAA4D6C8AF9D8D11588670BAAF92C559558F459F1B1E1BFD4B7CAA5233822E
-52BD7DD6663F97C63F50E14B534C3AD602D2563909D9F6774F4E254135426D8D
-FB9397D066140C8B35F2D4196C908DE3D55E883913E97C7C3961FB359C0D4DAA
-3D3E3F7DFD72BF2DE8F8FE7271FA2BA8A7EB9AC10467A358809C394BDE39B950
-1098FE0109F68A32B2D93D69DDEE6B3FBC5E344D83ADB377A0D2A7C6B15A19A3
-790F1275399F4318F83B7236D5C21B6457A1668CE163921C6B29C5B00C3C0C03
-29AE4D79B2BC1F3614D7AE77F49AF23F3B7D8229FE38DD06A7239BF0E6459C5E
-E5A375725678EE1312FBF20BF5564994383AD7D18F784B457D77002E206E973B
-2795255CD98870A908B7CBCB35D37DEF510229611F60F9F5545400CD9B187A36
-7BC2B4B130416D25327F50A19B8A851F48F4B35F784DE9DAE981D81D009B441D
-2A5331934980AF705D215A05D2578A5C412BAAB401ADC66F886823EEA7F0E64A
-42F3964A73F3CC57869661BF0FDF7AB7D8AA0106214932F557D80B4F9822FE80
-1964FA02B3EC18129D90A531C1C6D7AC1BAC57EEACDCBD0ABBE73B8222CD0BE1
-7CAF4CE70475F82DF0647FE78C3C862DB7D66698662922A122491C830E23DB2F
-DC3832C5C253A959C8AB141806DAE8144FBFCE5762FCCFAEFFF456E181112C86
-E63681430121D7D91E82A116EAF688228F85E43C882B4719ED7CD38E4139D3DE
-B0CDC1A93A1D1306E78D3C8DEEBCEBC29E633826E3A2393DBE011A24B66A0FF0
-15604206244D5D1D2BBEE9CD6B04F161B9BBC7643DEA06CB08E6C07B01DA5A6E
-1B41D49E2EEF0103F79B58B589B13ACF19D5739B86FBF5273613BCD2C13C1CC0
-80ECD692C97E527D52C694E9C286DC0713879192D849C0DA52E1CDD98C53A298
-36A9D26A4C590627EC508A0A24D424D9F99F02020FDF3F2EB0C536756CE01025
-F40D4959576EEE30F0A5B05044D80E8B08552E40C14B8B3FEE3003CB26FB8CB0
-2EDD60AE8BE3ACE2F3888EDCE31895F73E5A5914C769D13D09E812AB772E7005
-E80D2BE02260B7D98C2FBBD7FFB20CC8990E56381DFBF4AA5739BB8AE99C50B6
-8355CCD74984ACD8DA4F578B6BFD647147E363F709795FCBB261F80C6E31EEFF
-9F37313B58F0E0D70DD40410C3E1EDC7BCDD1977B640CF6E97F7A5F46DCB6B47
-DC0C71CF762BA19193CE0737835577BDF9F72FA9A603806959DE169CD4B45B2C
-CE894995E3A882EB50A2510EE23E46455779F67A1991AD1D07C66F51A9AC3182
-5FBEBA4465AEDA9F66AA3D810A7BA8172CC350823C7C880F2E23FDBA961C1BFA
-70B5CCCF9942EDC56A9E086146D6D7DFA3BED29A27297172D40757BED2E38EF3
-2972540CEAE334CFFB87C6F12F6472219F265E29F24D9E578F621F5B0A9B6C57
-EC6E34A11FB321606906F655FD138901D15CB332BD608EA2F6836AA1F659F380
-A09EE4DC272FFD3D7E8F20DD3B38F77DA8A9484106181232678F241C44A3F4F5
-AC07E6FA522DE75DC9AC67A02B6834100171E77CCCFA08C67D0C03239B926554
-0474A2C2EB6BBE79E5A23EB521D208F4F9879EE3A2F575153D054FA04C6DC958
-D8D265C8E96A690FA7241481965FA7BBB808C472EE9A9ECB67F3937BFA342419
-9D626A28431B1017FADD9B7B40340AA10F628D8750C2639A3C1A32C894096E1F
-E2BD904B17B60F3448FFC29D213FF59A20D1B8D33E06BB8863CA4373397277E1
-E41C6CC274BAC5D0DFE5EF9CF31330112C41A1531A035DE16E5F11166C4EE8AB
-4C724974966B6C3AB810E6949BEC09039E2BFBE14A9446C7F36678DDC7C95D31
-F793457B912C95575CFC6CDD56ADF900A552D8E0512DBC77BB12A75C6A125F8A
-6B179C25F64A1C961D4E8196F6D35F1764C68F337E3EC60F15893D54DBB31FAA
-E51AAADB9D5B87BC5892066001EB48219C3C4DFA5D0D871CFFF93CA1872F1E63
-95812BF0F8E5DE75949851AF3E1F9C1A4FBB2CD44395F3A53325D196019595B2
-DA2CC718114EA99F70BBDF6A47287815733AD71562B6C439F2B0ED787E8F6AE9
-75FBD929203FF12A2661C79343D9B03E38E92949BB7C620D9D05B7CE6469820F
-B968747F28398FECA5F03E5ABC7F9E2C2D8B46A6143701DC4194DC165BAA3874
-70BB1748E87515C1ECED03DC9BC1E2BFEE837F15C0238C761869F1372497E9EE
-A0891D1A73F60F1A5E7A84EB9EA5E3D496313334D9DACDEA9B61CB4BF754444A
-D17F4FEB742A87BD417C04710A6D84819BC219B7E7BAEE8D10AD02006AA48046
-88896764147137E024C6742740EC2481EC17736DED29FA382FDB8147C730318D
-D0CB1485CE42CF81F17EC0CA860DEDE2DAC8448861E3B81921262F570AB92A3D
-4AAF8854756DE82BC8AA16E10182844C5C116960ECA78D88BAAF0971128FC287
-46D313831B4BBAAC7F385F442E75E81298816B3AAA46F16A21F0A687C87B87F9
-46243F0B3E0DBE80C7AC592A3A92DA480863F8DB32B321F4EA6841A0EDC0D50F
-39A40FD625769655663C81D6F4461B75BB53543FE3FD35681AA8D883750E0EB2
-BE0BEDC23B26C57BBFCF49770C8AF7E21F68A5A5ED43D4B66A785A57E68068A8
-4E422F38EBD843300BC0C69A9E698365122706237832EA2EF149AF7371967873
-162B54D13291CB6218F2E994C90969AE10D8ED63DEEE4C10D07304DAA69778E2
-9DAA4E458AA36BF730A97DE89BCA84F4C7192F0190086B570A5CC49E10D73282
-3CAC5B8B05AC3F38F889AE8376C3B5AB6ACD9FAF005664B62A21827A5A733C76
-5134D25CBD4FF9B15CDE17407BF4E82C9F5262E0EA54A5198CF677C1C07057B1
-0873B3AC1455D3A55A7E9336439299821303F20F5FFB4732DB7C3ABCC9BC1569
-089580BFFFAE3B030F9C99F83FBE8AABF0A7C5A6FC45C3A7F9F4E099176615E1
-861D4FCF0986CB9E83676BB630DF57885A3112CCBF2332A9967D6EA34715E4C2
-C666EA1C1466046488DAA18A033F410E9FD74CA054593364523E84C5AF0E5EF8
-AE6D1D26AA89C20E7619EEC2B1A8C60E24F41F66B685E9E01AF362335CEE62DD
-BA95F416BF5AF233590DA96122FF69A7150D5BDFDDE5633521253CFF4F4C1C8A
-DA4F23070EF0057BA56EE6D6CD627E8E8416E1DF8994B756C61BA3476305783E
-D1FFEF27BBA143C9EC4A597C3F951B14BB643BD9EC84471922672B8B25A0C600
-B086E35D2B4FDE79AFDF07824ADE46ADDA31596CE4BEE1F4A0BAC0ECAB8EF823
-21A16B677FBE25D5DDFB6953B5C7B2629CC0A1A8BD6A395913127962F727FFF2
-9F45DEEEEADC9AEFA0E825E2ADF4D60EBE583EEAA9B747C00FC5AB91DC7C375F
-F515B7C2C95B73ACC2E23BA92E44C48950F69F3426AA324DED76B765EE1767A3
-547C15AE5A452A0598A278F89856435978F37C3BEF03686BDD9385CC462F73F4
-3FA11F4615787143565F4A28A529DDFE36DDB9E78C08C93E577BDB030F71E244
-34239328278910AD72E7275843F905E7A6A230050114B8C3B46F913455755225
-F81375DB173CCEE940F0CDC30F76063142674D3E735718C6C0AB5ED58DF93515
-CB2FB5460F4C6A0C0A6E46170DB25E2EF9D8CC9A4AF4580F77C67280998D35BD
-0217D03E6876639567BBD0952E6708C6E47D47A8A0099E4777561F7932604F87
-7AF7FED872BF96AB85911BF5FA4313607BB13E66863CEF12B721987B3FA2B277
-D428132C8088D3FA160C19C3B044681C9C0E0BCF1A8CE735A6FA328450142174
-40D476AA3DEEAA4176873DFFC9ECFF32CE2E445575D0CF81B42E8441713DE7E1
-C054371B8C1762328F6F8EA6D3C50D4838ACD2C58AAE936897147F06E69C89C9
-CE86892A927C739C0F502EE5FDF0BC55602BF0F42682609FAA2AED973CC23A1A
-23C1C3AECD94605F88161EDA9F1B1DADA52D04B113C49F938B6145B0D8751B1C
-27085BA9CF9A5599E8A7C2FEEB3E1DEBC154A6A14348BE4CB9A75CCF07D1C4FB
-A797BEFAD7885CADDF5C4C4912173069BAC18D398227EB31345A2B324100DE3B
-CC734F73462BFD7F0AC6DDC9ECA10349360CFE471A3208D708C0DEEB40EC959A
-26B634A1A5B1DEF138EF469EF534D4AC93D81AE3B02996EF39782FEE3E793243
-90CFB05DD79F7DF0D1E3E2678414247516C2533781D6BDFD60E021F506B2086E
-17FEAF1F78A072B3A8FDFA8017CF3A822D1E6D77CCC7E46C4D8BADF78C46E36A
-A5AFABDE7C05143F35E469B7068BC6BAAB979C130D20BF765C46FCA9A8289FDC
-58CBEC9BB258B7E034E8BA56B1999ABA80CF48D6862ADB752188D4E8264DCF2A
-5036CD09E1ABD6B032BD5E39B45BD2C944690408A81BFFC6A783889264269C32
-B8731F24AFE4133773D273C6F07C66B1F38EF46ADC576EF81F80290C93D212C7
-15793D02A66973870CA2005044B73D51757C70481DA79A00C66A65C66BCD8F24
-BAC472406C4431246AC24A4C3693097BED250D644B94A70E4EE070709DB40DCB
-5EDB6A63A41028D9CFB7AA092C9FA355F6BFD3445677035DD936468DB064E6F3
-6C9F5325A2BE22EC39C53D6FE86A2F2E98FB1D3BCAE3C48F33A85D3BB68E97FD
-89592D052197E7F853DF72B05B76938A586603F0D7950983B558B77BD4909758
-77D4579FAD0AA906F54E84F5AA2C40BE8BCB0C3B4CECD5B5F3C0CABEE9655274
-A3479343F0A89C6DF20B18548DF4B8BDFC8B1DAADCAE007D76551BED1C4E6C63
-8EE269048F2CFE78DCC463E77B44BAA7D227DC67F2BA84DB46FBFE06C4C5EC55
-2D5F03BC4B0BDF35A935BBBA1093A36D7C0E756CA1F2E9A05AC491FFD42021D2
-1C7C264ED7781DFF6EBC3AE94ED6B34F230133727D2FEEC7B779EE1B6C940449
-DAE68B1A2C58B7E37DBDFBA515C3840BDF303D3A377383D9739374408236A017
-9BB9D891C768F3E49A154BABF65C2BAB0D7991064F5810B73092BDAC6B261C58
-A3420ACEE61A04FA208CEDAE2F7CF1046D8430101E4A43D75EE54998C31056F8
-7B636DE942F3BEEF3E673091C3A79ECE60379B240763A203953132707C845B69
-BE19D476BF1A5BED28A3219E5383D1971F679A82C15A4A823757CD0A8F4512D0
-3FF7BEDCA2A8B17ACEB74BDE47C7FB69871AA68325E239C9E766B9D05CC158B9
-39E4987CC84425EC29E8046CC59CF3DF6A1C37434B866112F7C3810C87D1FAF6
-82CF2748C2E8ABFE202830059AD5149E7A45FED442B553F5AE9C3D03B5138877
-BC3C6EB2DB2213B140909CBE16B566DC3BFD01177A4E5D715981C0E23ABD3AC1
-168B5840D5150BB8B96A3ADA478FD12173F7D89EC3765A1C17354F913E9BFCE7
-77EBF313C6DF686C7030D3A63B12160BE4521F0CECE473EB085A477567BAFA56
-65EA9EF8C78AA3837E8138DF362F48C730D687B2BED1DFD5E8E0EA8D361D031A
-49735D5C637FE29391506BCFF8196BCD263C15EE39D8244BF10AB5746C8EE60F
-DA45928AE6B9D987B4D6815CF600928F20498009AADF97E391C093680F468A51
-036B8BEFA1060E476100CEAB8A42B42A4DE7C4BF0DB86BC8BAF48417A16DE27A
-CA155E6F7724026C9F1161116E13C882DA9E1F2365A0B2774A50988024035236
-7B053E36FCE706896CBEE8C1D8D52BE3FB59597658A533B29652E70C5A80CBFF
-57F8E9BC454B87E280BAE1517DB53D3E73F4FA985074D4EC8717F2247EE07E93
-C57998F8EACB7FA299E07A2CAC1791A676EFEFA4D66F8FF91C25A708BFB4586F
-D24446CC40DD8948059FC4919B5A148A27BF1F20DF93F6157E6A5648C585223B
-7A935C4DECED217D0A7060CCB8EC0B856A40D2E9453A7BCFF3AB0ADF76D1F0FF
-844CB3DB6C174CCAEB4372634EB0CF304A533F76564BE58D2893EC721FF404EE
-AAB3F84C49F4736FABA2E32119597282C6FC82315C27BE26CC42EDB0ECA7125B
-A841965A9874AC4428DBC17BE942E5C0698E0D6FCA1D66953D93503431536B68
-52CDF84CF5677D924B950E4E2EC39B40781B890162BE060B5497341D00B96E62
-25E208491ED19A5E2F1B0BECFB7F8E16BCA30FC3F9A5DB4CAAF25816D03B3CB6
-DD2D634072D1D6EACD4AEED7C6F17B03F6893BBC85EC5E337B9568A70EE40EC9
-1D5A010AB0FFD9BD59BA5A0E99221B90AF6DA7EC3B32EB4FD49A3E1AB480ACBA
-B65A2B603F2E81E1C896846AD1484601D5B0C151E2996B8D7CD2C6D9774422DE
-42A22820E380A1F0A10FECAF1A43A1B72625CC8D1CBA57ABCB80386D9AA706B3
-DB695A68B0793AD0D378D268F462ECE3A9B67AC3A2F4BF680B738C71D0534CE3
-1DEEC3501850562355C9EA24C508B826F75430FF7F0C7553705BAD60193103B7
-22E87454045C0A0ADD566A5B12B6FB82FBD4103223044043D4C25E760EB40098
-A4B19F359AFD9E959FEE4006EC5C98C4DAAA9C543B715B8DD2B78590A3FFFB64
-8E498CF4188C58AF7F7AB3D9D74FE6DD86A66F6E781CD9A9856B29F8496CA867
-C5D927C085D6200F68D944D7684C26AFA09C7581B5E04A1B5AF5419888024579
-08531FC907A938E2F049EE4A57F6A5D3B812940820EC979ADEE321E3375BB475
-4B3A07E6719B5B4D8C3E877A270323BB3ABF69A38E93472AE7524355A5D92781
-DDD22E13AF92D815BB4E7084298AA51E92884412E656DFF0F8A301A28A8DEC2E
-9A46C8FAF0DD85FE8013290795F13BAAF18507A4BF18E69ACFE9BF914A97096B
-5625CF222217C8A705BDD27DB80EA07F910CADF77F466A537A4FEC305A574CBB
-92FA5CF7133362F354249F6568425CD9B8BCA12A6430DA5E9D9C1D4813410F7B
-55F4E1AD74C331C6DF5CF6E5962974AD81CB578BCEEDD6E7BF46F9FFBA047564
-013A160350C0C63E3DFDA73EE18721C04204F3D2E6A11FF8BA61B9CF2E4C8060
-549CFCBEC1919D2B5567B86BB162E2CE0CA41D7EB07E4F70689B6C6BD4475340
-954465C12B459C71094BFCC6A6DE80F213A37679FCB2ACCEE8273D063054487C
-A09032D07C91C9731667F3DAD497BF6A00EABAC599DF5100F76F0948991B5C2E
-7452792730BD3589DBE1D1CCB0E2A24D012D68B222A1A2BAB3DDB1AC0A2A449D
-3F6A63A90C8FA8493520DB4178EBEC236B8D1259615941ADF4057D716585E570
-4411F847FCFB43DE736EE7AB2E9CDB6C6C88AAA32F6292D4B35ECFB64D08AD13
-CA79BB71DD5CDE4A0091F607BE051EB6B19C4AA719DEB634D891DB1534BB1383
-FE0C849D61D531479538B3EE24C43B24470076A50872287F2ACC2B666A695EA3
-6533D95BE211A09333333B96081F7F2B421558EAFA1894A09F28E3EBC9467724
-3C7684769515F1F3404100997008CD006E9463D93861ABEFAFB5A30BB95F1E59
-8DACF37A3A7F438A0A23129FA8924390CCF8357B299D4BEAED095753FA2C2954
-A213571AEEC821BE72FAADBDA9DDBD2F052B7BC142384E93DAC5CFE2DE726C93
-BDB6FB7361D75546C99DFB91606F0A32B3CCAFBEC909EB2D874D222FC94D89DB
-CBF772F1AAF30EBB16BF04238F2315A98E7CFC1C82A7B5458F956B51479B3265
-062C878AF283BD1CA13BED8298EFEE46D2AE346E74ADC988FFA6BECDF514CDE5
-14370368AA0753610D0A5990E5576130E33331DBE4EEEBAD5716EED04C8E245A
-5C321465AA78CDAA8773BA957895D6EA252A4DEE6AC4E0989913AE5992687922
-8214211F2356F613E31218769119F09A035C6298C88E306BB24B0C29E5349B49
-F32B66418B99ECF382545B140FC7EFF817213C5208AD925FF4B55974D54CB1AE
-8311FF23DDFD349FF91AC5E16200C1077F8EB8BF81DACAB2D69BC2C09F5D47A3
-CF5768D70674842D47373E7C9E8323972F98FE0F67F22A77DEF4B2950F5DB1A4
-AAEAA1679BCE47A8CE68AD22192D14DBB408CEF9C5CC26F065A034FF2F489F7A
-28AF79D5810AD4A6531CFA6A18D231E46068FE013FD924656DD99DE8B1C9D3DE
-AC5EBA113C87B5B41A778F5BA2CC266D501CE754B5FB153FCC972B9FEAF82B5F
-01075BED33282DFED4E0F92F50A55F6ACE2D2C57CBB847FDFF091FAF74A2782F
-FA6A2360B3DF897AB10F4AF21EFBA50ACCDD27DE787F5421A1BE1134DB6AB8B3
-E3B61ECE5B30ACC921C154CCB7DAC1CE67AD4341D9C83C83FF42807F4D207231
-D951F7FCF868122810F6E8CDE8486328AB579A0E0D00BE90C32467FDE7EE1B89
-70F4176D42442B2692C0ED64DAD7CAE48282555EBE0023029A98F78743687CF2
-2D5240BE3A2774BBC04EFB54B080B8304018B169909662D2056F87CFAC2A11AE
-1180ABA48154C526F1A9CE0C3ADFE1B596BDA42F9609FCDDAD6A61EE9B58B3BB
-EF3D62355351D99F6349F1F591FC4CBA2C830134A7CEA4819F218F2227B34906
-1246423D296847B66A8BC815A566CD1890AC745AC1889B96BAD04743E784D80B
-4D7D9C28FEE7F818A86B12945F66CD4A4FEB71771E885E2D314563320560B436
-C7CBD9C175D557AAD96684AE2944763BB791C157CD40C7DCD0EF1C3830837722
-971525E24BB5B7930C49D039A981739213EE637DCEBAE7EA5A3B37EA11401AA0
-88D06BF229DBB8384DEB99AFA1661C3FCFE232DC8205FEDE50B19B5D65195AF1
-33FAA85CA264EFDC44359FAD86859B2A57F1A25AD8B1457E2F0A4CF847842CF7
-D5221BD7E0B4F078F891D93106F9A71C32320CD824ECCCB55A2AD40468860058
-C989B90AB71C2D83CAE1D3D3FABDEA7C20CB2F61DC8EF122EA0D8CA816D1E790
-7C7069F724997E05AF477A591D1E28557C5634E629972C36F1F32D0A825A1993
-814008EE68E884D4F43E10C10FE0CE35A23C404291DE93A852C2C6BF5C45256A
-90B69D416E1F9D3DC8D56301C4C09F6ACAC0A202496A2A1AA7B94DF6B9E769E0
-151770E2A427FB2DA5262FB2F15070F912C0CBBC4AB5AD7384867136E56F19B6
-F9DF9DCB6C6676673C868754AB03EC8C75960CB127B1F276A2D9F2027E9D532D
-E08888FBF44098BE7A6899744AC5ABBB626399C56BFFC8991B70D4A76424246F
-821DFF4C74849E9B64A0B6F6405FCA262A4D1361CC31D497A215F07EDE7CA089
-637FE10C49FE9CFCE3A2525299CB6B8415A710B873AC9F5874865AEA6E1901A4
-50CBD3C0A77CF6F5AD185D88EA4DF34892DF22233C0A83FB2152D6A56DB0C3DF
-09FEF9F069806400A70D44BC22D8D65CDACBE551366EE15462B1A65556DB692D
-FFBF76ED3877CA37D6B209D541CF6D884AE0B20D7C10CF31655073D52415E80D
-8EFB5DA0271F09043211F87A73E9AD4E90222EE3B7EED77345F8125E40D44B74
-1D81FC082672C23E995AACE501E9107137C51B0FCA2686B060B8AA3086038BEB
-693548AE354621B1FDDD4AB9AD3538110589959F38D6312134138D44196F5591
-A859596406A294D2E9DFCD1CB12BF40F72E86A44160E5BF0481E4760D1A470B7
-7993BFB42411E790A5D0BE8B2B5C5FDFF39EB25C0A3442C7E60DED1D7324DAB0
-A4CE66C0FCE2A9305BD91BC8F10D7ABA720870C18397656CA59356E05094A145
-FCA8C1C44867B0EAEB7CA9FEFA2DC9A8004316EF0AB89DD04A4C32F3560E30BA
-77D06C37C39638AE387C4578E1DC572E68E76A6EA077A0D6AEBEB8428361D5B2
-C42354A47814E6D6527DD3628ECD3B9755C77BD7937EFD0DFBA4AB3E4731AC80
-C5EDED0338528B90FBFD0DF5F1645AC696ADD5768952CA7D32F6167B43B3FC6F
-5B96EE0129376ED28EA127935014FCF044B6A1E54FF7A4B4BFC39E82012484ED
-5329D9E63F00F2D1328649C9E8DA586083B1EAC35CA458CFF151F63222347728
-83D404880F4354F21C7875CF8FA17E75C8087F0CB637B9457A69C92106575627
-402C2E62A8DC514110603E2C0ACBA66E338D4E562A6931B07A01ED4E888C9083
-7EBF6BD906F3CE3477F209180FD288565A80C79D755C117DC0A7355CF3A85689
-09EF4FD50ACF953417B09A9F8770D6AA8D43CDB383B1BD1C48D8A93D98E76A78
-6D5DD9B098E75F4FDA0D976E94A348895AD1365B63AAC6D49582AD71AB77536C
-96978E13DC3E2187098873BACDE21C9D1D2E3E7308D6494EE64842D236A7DE9F
-51AC3370E290FCD5E654444E46717D470B3FCB4EBFB0D17EB2D2AFA31FB53560
-EA2049E654A7D30760F1E1AAEEAB35943B5CDDABB193490B26C15202B24D3BB1
-D481948F8BB5E00E7018B4E1F36AF8DF1DD7B0D31DB446DE685D2EA99A15BFD3
-BC52DB4983170BED85F1B2801DDC82E91E7BF3E0766A22D054F2F73946FB049E
-AF34A291658517E9FB9DEDD8B61C93B3859C39ACE74F654C1E98197880334608
-4CA7F7BB852EEA89185BD5C9418B7B5B368E41102C21F545192460DB4D06142C
-DFBE99AAB2F616FF3C5D9F0B2D5670A0D9EB68A31A0A20122CC760668C6331FB
-7088E276F96AA98198EA91BD9BCFA01D9747E2AC78587CDABBA02A61EC4568B9
-550858EBEE4717AFD79DB6151F0E50F267A51E561C75BF037106B0FBE733E166
-05E77FEFBF5C82996DE3F467BEE0B6C564E2E7B0C3F565520C9D74F869A8FABE
-48D65FF1C78DB6B6B6385F5FCEB95B1BCF6A9C40CFCE543D9A1C4FB1EBB2C01A
-009B7245ED2EC9BBF8D4785136D26F4085F0B0B12F8FD20C43AE8A89595C2893
-D986557C7B6AD3240FECBF7872FAD608734F0BC448F245D81ECCD511FF39084A
-CAD344F24957A8DE460CEE220EB2E8CF7574B710D27B59CF05AB98B522609987
-EB9915337746518C812070D90BE0287DE9C4F9EF7B755EDF9F02A1D64F562B68
-329FAF55943D6351C52B6F9CB21D186B94FDEB2D68A52258375566EF6ED9A441
-AD717A4E5471A8B50253DF9421EA0E66AAD610DAF4B16097F097E57E5B281A0C
-0048527F2001C2CAC7074F35E6B49D0903296C60FCF3D26767AD6A36961DB2A7
-39676B58647CAA98604FEDC9A8BB9EB1E753D117D2978D9123257BC1F168B4F7
-3FF077E8BF6967F3FAD0023225A4D0684E5B3696BC6C2C2A7773A9C86D4BDF4B
-A384317CCCA5055BBA69487A3078C4CC6143408EA67C139CD6694B850E315F99
-102EF045D32ABF0C66D94EF7AE1A7BD2A0315466B72693C92E3C427FF2CE8799
-28BE2193D359704E519484031CEC8A635071E24B3D17744E1DC627EA76A7ECD8
-275BA695E67360CB21F682FFC615B8D25DEC4215CA256546BA848A0E287F3858
-CE7A4E5CE9868E0273DD868876E6F43C49CC3851DE0F759F020CC13500F95874
-E4549C366E66E9501D2ECC182CAE5B46EF1092140FB9B3578A5ED4B48EA2AB1C
-5E4B172F990F363C3FC7C8938D45484DCCC2494E0BA461388F65C99D2C5AB7A6
-14EB7D1F78DB481E21AAFD295B15657156EDE002BDBFADFB8E5E5EED7D09B99F
-936FEB881A6F5D56E8034AE63F4C0ED87259125D37D52629BC5F8823275276A1
-3659EBD24D6EA8B806CD22076C177163D45030FD54438C24D612386258AB4E13
-2BAC171191880A49262DCD2495A6611FA017BD0B9BCB8760D59502D38D5266A3
-4A991DDF026A70D75F1256B2D0AE55A3F79264D31292664AC3790FE506F0A48C
-391B4FC2E2AD195BD027A2D2AA7F656C57B2E235554E293A64CF31B669C9A999
-68F227261D640C2E24EBCA55433A8D1A59F82FB60CE341966AE27FF5F1AAF12A
-7CEDFB9D1FD05A1691F040B3B58E7C4D27B7EEBD7499390575B5CE2BADD5C222
-642613A9E6BAC0A582EDE98DB97FAB9C02F0FCCEF6ACBF1DB9CD21ADD81D6BB9
-4B0C6F67BB4975CA40CC07475748B9A996ECEC5856E79D419528B2E6233AB38F
-2F7E618FB510D7789D50590D4A49F5099236FBEF0541F6E7CE829A2EBCB0B3B3
-634F909CF8639D397B0746239275ECDA46C4D1121634B85999DCB16629AEE1E7
-2327DAB89A16D2E6C63A3F0A38318FE1AB32F2AE5631A485A60CD1EE3AC99E78
-DAF9838D5E011A61F84E318CF36CF88D40257A615313B0317E8DA82D1F5888F7
-158B1C6AC61B64475E0AF6DA9914810B20411CBE5DEA68FBACD2473DD8FDEA1D
-55F9E28EBC213E313CDE9D366237A29F1036F018C65711EBBA1D0916241AD419
-FD1825F2D54DD6EF119A835BE9B452537DC4BF280BCBEBB8A4EAE2AE4DBE14D8
-2DBDCBA0585FE211B020BE087F156A96E80CDEDFDAEB03CE3A8579A73C2C3240
-1EADEBA2A9B4EBE58212AECA36F92A5F4BCD5756DA946260653976B1528FA424
-2063E803179576505BCD79560771D3F477813043E0CA870301C7A8B13F7512BF
-D79110A6830FCCFA61F2D432651A13B7FB12A54A3C81921CF5EC14C920D8DFE6
-FA6CD666F39D031487F494F51AF2CD81D72AFBA040700374798F923EBF806C04
-B1E04C53108EE7D05F6999C1A8501E0EE126EC23BF9DDD5019C7BD79C8BAD47A
-DBA950D5BD087E1AF7F2CB4C05DEE2D3277BA3B7811EE216F5E1A7685533628C
-BE8227DC8097048A204B947333C328E913FACEAFA729E1909F7804A18D273EF2
-5784AC832FD98AA88AF96BF1228ABA5184A3C1E8AF7352D574F12240E6AC35CA
-DA755B79083A5B774AAD4E2E1ECF9AE0C85D0BE8DBC1D8002045D5AB7A9BFA2A
-1378BA55EC9D49BC6C2E5BA396EC6EB002A07C4757DC55EA971B1A7C8EB11436
-48DD5E7E0EF754B558876904398B091F4E96B0BB7949EA9BDFE3127EF289CAAF
-BD92BED02FD7B2A67EE6ECE165FDB8CCB2558C7BA1EC85B5EC8DC45171CBE753
-B3FAF4078B224167FCBEFB1C51124B0DDC192B443A533357E88DAEC48A0148D6
-412CD271F4580CB7808D5ECAB7540C936C258794FA3801694E8B1734316631E4
-FFD5E0CD0754BE75DDFDBFC944D94D80D8024A07D479240B4BC3A5533CECBC02
-04415E6E4A8DC4D1522EF8A84DC50B9BF5C521FA9966A3A6E2AA3701DD64AC76
-813B0AD2CCB39105BF96BE2DED093F3C15363BBC4F604ECBD52C811F58288CEA
-82A19B79F306CFD22D9F790E962AE607E1FAC0A91BBD2933AF20A81068CE297B
-922999796DA6A2B89DD2EA51612BDE27F9FE2543CC2F69BB0266B95F5EE3302E
-1BFDA999C5F5528574D8773965C612042E0F0C0FCA031C47FE191B7F901E2D1C
-B2511E62CED3012ABD91392B3B330669429E02351B351CE36EA52DBDF79C5941
-3CFA1AD94A952E5EF18716AFB348C8E0BE1947321E592FF2F16D6195770B2FBF
-7E89AFD5E7491097C5B7986057FF3CC4914ADBFD59CCA338702C5C7655D3B578
-F3F6E9DB09ED8161DE1166D57BD1716BF36A69DA170FE7AABDBE9C06BE650630
-519668274F15DBA3568C6D4302C4F18648EE34F0E857DA4381452ACE2323465E
-30E8B6F1A3C34B823DECCCFF22F3CDE14C0BC124D2E209BF493EA81E8068AB9B
-F78122931713DCB0F7D4BDA1236D1D596F01F2CE5AEE73D26CBD7BB44D849E65
-1E12EE3B1E556523A61B3F1F5F5FACA24CC4CF43AB5B9EE1353AD81D7697D9C2
-D12A64BB1339036ED834E55CBCA801A252F5305E13B523C4BB2A72EE2D2556EA
-C593E376F92E0A0420FF7847E7682319B1F9475BB90351C2CEB614AC236D88ED
-64C246E99FB725F5783D2BC388D80B91E73A7AFFD90868E12DC40D89562DC813
-B50C8066DE8489B303B24BFE21FE261179EAF53ECFAEAF897E639A7572CE6F1A
-957A01E7055518EE8091D9712440F7C43F1FF7641B75355F369CC739C9B1F78A
-0AC71E6E26D76C8D6F30DD5CF3FAF8CD0E659944B4EEF48540969DCF881718BB
-81FC3B397E41D2760C62A696FC52257E8E139847554B78530692C2D8E3115140
-1499CCDCEE52BE968534A5FF330451E9EF3E0F54E40F02FB6F6A4FA89B9460B9
-5C95ADA1DB9C4CA3C89ED01C44A3C1FD79B5DE3B0B2C7944D9C1385374C8458A
-1DC811880239231EDBA47AE66F9EB71317DB0F258BA813A144998869C7C9B23C
-10738556CC2D7D9D5C56342DC38B1CBFD7DCD6627F48BFEB9B65BC9A0EDD5C1F
-7986545FD37DD0696EC52F69E17F4470168ADAF706744834703918289C93E9E5
-4346555D498B706937BBA40D0C970AA30768CDB33D5C3641FAD4792E48072C65
-6C4C0FE25E83600D32E6762F8F45E2007654D9A4B2F5EC6B4D88AF018A7B9CE4
-51F8B64B1CB3296C0B17D8ABEBC0374820A325B067547CB4921FEEAECAB043A4
-A561296BF28825862BD758C7AA61E8852097E6A63664F56EBF8E2BC005FF477A
-7300E3C798EEDD566DA816882822753DFA48722B56E55BBACFA28C01645F58AC
-50067C1D4F3F3352740270B52DB4FECAF776591B1996351D553981F3BF60F79C
-70DC186A74401B6CF5B8EC85430DFC6FAC9F0DF916CB877006860E78E65AC419
-05FA3101E29161B7CF164C3DACA7DEEE96D74B01A88169406BA254764B5FADB9
-6E27E2E935122E67C038473B5AD6B450B25F7CA897EA06A813CF8614CC9C6E8B
-C164EBFC67FB8BC96C0D12AF8B162751925788D04422FD9A884076F64F178BD3
-8E7E919DEE8B789A2FD97941F9307600228FCE55BC0C8B9F0907BB8B84FD66D5
-6029C3319C44AA03267FFF4903BB1C5F957E02C0B16E2D117818F81D274DFC94
-8098DAE357574C3F2ED1816E073E64FE8FDF488DD0D37C7B0A5736D9D9826D65
-81E60B791402C8A5BE5F7729E7E092719D6560CDD00D771CE9673D1DA2716B83
-98B7C64BB39282BAE9FEE51BA253A710D77858A282C969F51906B923329A672B
-F82ABF7A3A8CED8097036CFE214E224465ABE7D4D6A9C6957E59A8013E92795D
-2652DA2231E932D1C4D8F02288E4B05B712A7A3C2421A87CD34464E4E1DC6865
-D8F194ED4133AB6986FF95B706E8CCB5F81F230131B03BF152FB1E67BF6E9CC7
-6D4421BAAAF1D5D9566502029AD085E0104D88E168AF5504698302670F232F8A
-637A1F9550F6CE26FD6DD57563BD19C43AB928B47AFA85FAE9EE5ED1857AF75C
-6C518C2756824A9C56E3329584C72961853812673CE6B6AA16C75959F22CAD98
-8D51B7D83279AD4F4D028ED1EF69C9F8302F7681B548B7D2069681F39E9BB15C
-18BE185348456B4489125B07F346603579E2524F2B6D4B94C7A21D22E193D1F7
-91D5C66D36DA1602E0E63FC58E745A62F1C2C2E0ABDC9AD913398C72C9B94177
-44E98DBCF54E7B152099A3ECEF0819FFE3FAF34BD116B19EAF13A07BFC59EC0B
-DC04F1504E60DF188A113175709B81D5DE66EE1879D9A1EA4DE60DBA78FC2806
-79E6EC40EAB20F6754BAA7A84F2040020488A357D9B912D7657364F6E9BE68AB
-0360DE1C1867240F6098D85BEDC80939F4FD460F4D5222D17FE6C9AC01B81C1B
-9BEDF5C8764CC144C081971928EFC0521A9FF5B99A4E47CB38BB9EC57FBDC6C1
-362316A5AB1CB7FDB904E14D9D90E727005F42CA705F29C1ED655669F7A0704D
-14A52934FC94BB476447A62CC015D2FD4AD1237B7686BFEDEC39320194E55743
-034CBB6CB767B02D4E57E02271C7EBE7644B01C2564D61282AD4DE61B257E06D
-9FEB150FF47C61E3EC8AC509ADCA7333A33FD0DEC7EAC0D0A7B5BED99E716E51
-4B50203E8CDD660DFD24A8B4AE228DCE3D53196A47A0EC71A621607126B4EF5F
-772CE80ED6E118B3B032445230007438CB2BB076E59351ED30105AD55FD8C817
-9F1B1F4E8645D2C51874CB407A6508A8E28AB2AC70193FEDBC18DF9FD1254066
-6C14B4160DB26A2EB8A19A19B21EEFECDB0E253099FB8FF8B532D998B6849E95
-85756A5A651BF45A87AF9C9D27
+7A9D88A3CBF7A29ADC0255F05EF984B70F4589575AAAAA34AAC95B51EF60F798
+266EE3AEE3C7D9C29FCCBB1DED25CB416FEDD546C0B2F17B8277F8EBDFB759EB
+C98ADDE9CF32EB93755AABA5B5B8849A0BD23CF09A77F510B78A5AF9AE24EE00
+1C04E66B333158917B89ABACAB10189092A229B5B88F742FF334D0F149DD1FA3
+E56403C4FA9D5DFC369AD33CBBDC33CFD08EE3A1F9923B93882A17C6F1CA57CD
+5F9A4675E561C99E51754A47580185D96DDC40FE6FCD6D887BF275CEF0C95840
+B67077687AFDEFCDA136BF7A36667BB3C192D5B99BC4B6E6CAA10AD665A546AE
+8F852D4F7537EEDD9F40BFBBBCB8704E7FF93431B1D1567F43F3F76578BBA0CB
+405AAC0FA12A1822671615E54D131C732C17D874257513FC96C26DC3CC8ABE8D
+5435D01908B7357FA4C3C2723C7273E7276015BC127380088984B935400812CB
+F14A7C5215655DF2FDFF76B81FBEE3A69138ABF20821BE1E8D63899D0B726EFD
+2FD03B121142997D2D65486902030B8FDF6817DFD3E5779BC64FCDAD11D50D9D
+CEF9288E1C1A3D552E681D87BC445942391726E9A68B283F1E169BEC3C911326
+8693B2F25850E2572BF747D50C6C64E89A86E5BD8192A4091F629123B15456BD
+61BB3C785D74FCB8338354A4035B13AD5F8E6C89F9B44B476C83015FD0E3BFA5
+B68B9A94F977038FF1F7FC7E36C15C6A606B5EF5E0B3AD4717F1687195C4B3A4
+A29CB45AB2005C11F552E69057FA872B89397E32D9EC8E2979CC310304A6AEB4
+F8DF102B1AA025133C08D6EC6EAC827E544C1C7A54C7CCCFF286064670BF9C27
+BAF6BDA6E3F3AA032517F517B82F65C7B8E64D3995A693C22EA843D0CAC2A695
+D7D8236C1555E42E666B91399CE7B475D03277CAD7C72731737E4BB42C089B00
+728A276C6C0E19C7F71A076007C5397CD5448B7E95E6EB55AE89E9E68EC0FF65
+D3D3524CAD38DC3CD82F0E0DAA990079A01590045FA420201013D8528770B11B
+A0DACBF6E56E83FFE6F9DCB683ADAE65C1B9CF7340E1845A8233CCF958340F26
+1044170955D0CDF84550DB03821661E880F5F6BDE8E2E797072CD19AD01F07C9
+F6213F37C4301D85B57733E4052071D826DF846E9DCE6321A10FBDAE5DB6CD94
+A09F9429587CD56AA4FCEE785AD5DB80EB3ACDEFCDA074BF3554293876A83C6C
+150AD0F99DAB4D0CDF2BF8D1EC26B1EBDE157B6E9C21F95CE060F4BC15931CA2
+08687CF7B48B4D990031704415C9BC88023448597CF400A84BE2FEC2CC44B5CF
+D554C9A684778770DE160FCB9D3ED9183402B8D613AF99705E35A3D39F9D2A01
+36B328AA1047E89DD4C91DA4289BFACA07F07018C5652D8407D3BC853C58F288
+0B7830DC58CFFFB33C7B8AFED7435A1E54463A781256A51EA8B8644B7584C097
+DDB452A3A0F3D8B6F3CB02ECFDBEEA6A5498F49F00788EC83128EEA678D72680
+1132BB5C193E4E4F0BEFA9A49F9E3A7A6D62D58AE7B6762E11509EA6656F14AB
+A4C7C5E9B6C1830E802A2853ACD9C000993AF52BB477D166EBF0A0FEE617C6F5
+DEEE23D1C842EAFD3D1CB581EF41507FF155ED016FA483A3377EC9BE8A245BD5
+05D59CABE5713212C634CAF2A58AE773F03FD2C02692E24A525A3525F082A71E
+5CCB186381605FD97C98246CC09DAC1A5A3E5B9AEAEA913D10DD9D205DF3D1D3
+F7BCDAA555E66E8E11576724B09A620F8B33D4A85E3067DE251C6436F68B639B
+6C6F1EDF31D9791F1B2043EF5044F8F650EF3FB57E1E9D7DD0AE1C55B507C332
+5297347C64BB0DDFF423AA6282B6334C4ADEA8038DB4FC631826F9B1FBA50530
+88419C09D29BF5AED1FE9AF25D9AA264272F433A781F132045F1D783EFA52CF4
+5CCA7661887CB3C44AAB5AE6020A9A246A6D0CF9A1306AAC5A40FE899CD682CB
+8194DB4CFE55149574789CB97EEDE5E645990FD152ABB662BCDCBB9B4CFD3396
+9BDFE5EAD9FEF281F789207F18F1A04317A0941E69D60211C7B0B4A5C0C362A0
+693EEBD10595CDEE6D9417CC21706A495BD54CCE03D24FC6804F3320E806F842
+D4FAFFB332030688AA63D646D75B56DA1C98134059EE7095B2CD86F079E589E3
+97C0338AF7088484CA117F13F78875DCA175915A3A4DEE77E03C4451E434E6B8
+E499FD0DC9EDA625F10177957FF0398E3331FB2A1F9BBC67AE547C2773A25727
+CFD0DB446F99A6B40B377D6AF928383521D32C4DCF9B1F99ED2005555CABA9E9
+7249A057C2CBB3026982FF0C424286922DE75959AF09A8695206FD400C669501
+38BF8F179665200420884C03E1EED0E8A1FAECAB89C5FBED9B2B635D53BD52FE
+581FEF76195DE41E781A7233FFC201BC98BA2484CA045AD690AA057CCCE05CBD
+645676003EF72C30DEFFBBCC7E17381746D85144EACC20D05732A8DDD6F46351
+6FEB249E06FB25DA530764777F2DEE8479A5F2CCE546302432D87D9D40C3A7C2
+2D5D2333F246EC7BC30E94EC4C4F6BE152B17D4F5A409FAED0EE04AA27DE47D8
+6667C9B1A396B5781BD44E5E26C1241B060C64FEE30EFBE83497157A98B1AD84
+4CDD77E2B6333B43C2F9CC7F2D148EA5703FEA4807641151CC2874760224B961
+044DC9FEE7D76BE5A4C788B49ACEBD0A01D1F228AD363B9C0A93AAF04DC5DBA0
+64A05712958931A87DEE3E5395E5BC1BFB13789C920BA4AB7F813B3BFC53F6FC
+0A38CC11493C471C92443277F56D93809D30FA72BEFB78F2DF7AFB0965136BC0
+7FF33C28A67797E29FEAABBEEE4B6B14D81A3640C0FEDBC25386D948515CB5D0
+4F2DF6640314985518EE3A4290CA4D4B276F159A2DC8EAD4210C876B85032EEE
+4F81488778CCC76CAC911CD23036B6CC5012E06EF05ED96D507CD99B8ABE0E94
+668377EAB63518E5C5C9FF9DD6A6147F50DB07A3106FFC7A9485B5160605BFBD
+20E76FD306EFA357E09EAB8DB186A6A2172E4182B7FE0D668B43AED61EAB8133
+D0F62F4B729E977994B95035C8767C497318ACF885541D892C8871FAE43A893E
+3E09DD65A9C2241624F0762C24F143B25C5794EB58B6F26A0E70C5FEB60DBB24
+D3F2E326A98CB1878ADFE51DDDEE8AC8C18E3219C8B2DABB3A42AD6D6B39798D
+9777DA03556FA056F1619A0F826501F0FC3147D0E87309D67121D3486DF06394
+0AF7A369649D43D154E5277B97780BF8893EDCE3701C08C6109CA8480E0E0215
+E2E651DDA10353584F4F871788EBFDED92661BC909B0798559B938D8B083CD82
+EC33FDED0C449D50CC844E0F58D947611CA0F7C03AABF3B49E962F3AEA74DE78
+152E0F4CB0B908D4982C1707CBBBB3D1411351A66CC5C70D18A0EE8C7CA81A3B
+32A5DB830FEB66F3E37A1A25AE7D10BE36E474FA7BFA43976E04B28CBF2F42EF
+470846905B2B7A85BC656E1103CD4DEA742FAF747FC9DBFF18D6952A3A37EBA4
+F74C76FE738F8949B5E38B3BD982BBABD1C1F1350DBC1C5AEBAD5667380EC3D8
+3B0467859B64F1BF30A3B66E229D67F3E3EED939B363AD0E7B7184FB3E0994F1
+2CC7AFA7B5A83BBBD1D64332687F6CBB355EDAC9005CD28827A07EFFEE4E5C29
+E72100B20466662C9AB77B429586C543A838A77CF69CC54F522EC10484318544
+38F322D34E60496A61750EC97C84D9D9A00A0893976A308F665A5EEB1C3E4E04
+5AFF10FEDA609ADC6D716888435D70BCBADAC389201D207E7A6773B217B2E97C
+5FB223459AF80C0ABF8C6B9C4FBB294B10E3AB41CC8F75B0E701E7E40D283497
+508047E3469E77DE06144CD095ACE824CBFC3A1E9D2A7D6E2599F0B3E6DC88AC
+A262CD492073B7A78461E17DBF71AE7F5E400321CD15A4CA91CEDE8BC813018D
+6D8443AB2359FEF0711ACAD40CAA7C07754D2A3C99A74F463F9FCB685A6ED51D
+A715A38F961C663B175DCD2F5C66A3AC1089E833F0E018601DF3DC03AAF932FA
+D06A7497B0BFD94282DE23A99AB18DCFC648DD4A4CD0FF356E3DBCF18A2D1820
+C1B9E98D3F95FD16F2974EED5EAFD2C921F4194ED1CEB7C6B1FB9CA33F3BBAE0
+72823A345849C534D1F4324D999A8494D8DBAC0EA8A510739D5C7D7B78D11C10
+15CB951A8724EF07096F6362C24111B0E864CF97CC9E856D00D145C7199BE346
+A0B641FBD4E6B118819129979AC4F9AC9CA1822C06D3BE8E314CF7E07D86D90E
+C60077F9867C3BBC3C8575AD9FD2E1936AEAFDDDD45964C918A11EAE97FF3E9E
+CB53EF3B9140C79A45D735C074C03472C14935522EADC9928241584B0886E1A3
+95BC94B5E8B26FE3B5EC44B68E5B6CCA8122B7C8C29A8E86384CE43DD3F69790
+D164896242ECF9EC682C496A75D8007577EC29297D34FC729FF4F0EE70221C65
+FEBBFC3B2E793F6CAFE7C2CD89901265CEB98A83749B964840E70CBADD300150
+E00A3D02D0FC40504A5F5A01FB5F12A180BD6147C72F22DDB664FA19A755CBDD
+FD673161820E6A319FE63A27EC6BE317C3ED518D0BF0A12ACCAA630A896B0CBD
+E8D1876DC3FC880BB4B43D79C4244CBCA5C3175F25D95FF7462AB386E7257596
+EBD2BCE27935672C0129CFE752AC052F14ECECC486CC9FA557D4CFBB59F2D1EB
+4662A0C2089DB7DC3BCC119D01B5DCEDEDA6CD223AF22076F4E8B3BC0F7FE10B
+D825EA600682C75169E293EB7140943981BA0CC03E7787E2890915BAA72FE8B1
+DD0B73CD4444E51A2B40D3418D91A115FD9FEF52B9D0845034359AC988BE5D58
+9F988B06A57D1E17FAE738B8D3CA0C75121D470AA6DB6DB90FC29241544BEF68
+BC63C2E01A0B1358D7ABC862C29A5B7E43FE05E9735E4DA8D4DB70C1026FB84D
+9095AC2112AEFE4D8E33934577B5CE4AF2C9C6B5CB8223AC8DE444519456B96A
+449FFB02A3D184EA3B4FA98067CC81019E0A49307CF6DF45F32AF095C2CEB851
+8713ECF4953E24F74CE60A04BAF520435930DC5B84B467D3855562DC3182D702
+6ADC3B2BE875959C30CBB723A56799977847F093EDF25063045DA69877473A16
+9078057E8A9184DDA3B4B828F4D2E2C3A235C2125F465F7111624D7160E03A48
+92C8317306ED00D0BCF234416DDC10B92FFEBBCF876F428BE57C2876F7AA2772
+8B66F1B2233E4E6842737475DD47C7DDAD4F2126387F4411FB841BC86C4219AA
+79340EFCF93D82E5AC211F49341E598776943AFD1A6DC1385D997430DA4C6F69
+C58410F8DB9CBBB9D39CEEFDC03BEAB1CC9DF7CDFD34A246407F9A327B290A0B
+627488E6C23F13F93BE9584B1596ABCC57C96BFC5606119902220CBE7E363ABB
+FFFE71197C3BFD3BE299A6703D90BB2840EB6C2423CE10AA5F15E97ADD8E030C
+B158A140064AA2FC0016F1F4CC7FD674755DCB2EC76A60DC577D0AC5CBAD7106
+34DC283DA742992063F6B70ACE8DB7DB59DF2F67F4EAEAA58AA7BB617DF93305
+1AAAB4A71AC48B7C0B90F1B5BE1B6E7063924DABDD07D9ED4821B4E9F3B789F8
+12A26DFF28E0371C51D7DFE0E819EEDCB604AB1B9C4AC4194A842DA405D67C9F
+8F95CD2E47C16E39D581AC17D5CD4530DDB30B7E405318DBD195995316ED89A3
+A8D088774064A77C4527B310C53830791A5DBC7494EB4C25AD3E36C0543CB854
+4EBD6FA80DEA8BCCE84AD5988F8198F918EC447D0422745EB58EB31201E7EEB8
+4BE8B801DA33C8C8B8741467151FDF745BBDF140F9102E2ABAF4C58C5AE917C6
+1BBD951539886A9B5BFB93DCAB6BD8379AA68B1C1708FE186C4C92BF6E3D6C5D
+7EFF665EB34B4068D0E8F95770EEBD6EF735D2A3A2297F5D94A52EADB1937BB5
+3037EAEC543150BDA27BF451F7D127F054FEA3A062D58F2368FF6AC658A22A45
+9DF637908FFE02800BC6F4333800541544CFE09E48270EB034FEFA5AD494BD94
+8D48EE7E4082C64204FD57F946D43CD68B270D5D784257C2439B4CFF6D394183
+B9D734A09BBCE8ADBBC427894FD02BA27FE1EA728A97E2D468E2A6169220441D
+231E6FF4F112D453353607432738835E8C3A1265A6C71C802E076A594484543A
+6FA5E6BEAB49104C616812F8A897848969222920B1E3A39F42A3C25DC710D702
+873F82FF81C785ED49C70B2E5F57328F85EAF818588597A99C721CEDFBD80BAD
+92D0C48F0C0A1E95D195049F92307BB378D1E62E363F40410C824F745A84BC6C
+2D076550A4228BD807C7F5148148B30E000FFDC9A4023AB9BFE5D56B643F18AC
+CC69F9B1BF225AECD4DD731089D8AB26D25EB9CC943E4FBD2A651F88DF540814
+F4FB019A82C566C134492CAFBF4934F23CFA7D228EE4022F10C412AA7EF8F368
+B22A0E2D7DEEDA49ABEA5A0120DEEE09D05C073958CCCC351785618905723CB6
+CDF67C0C7F76A6442A3AEEFFD47F45D9C6FE819AB1D8DA16DF4259CFD401B008
+88135A01760A32BFFF064FF58433F07C9B4200F592DEE9FA3379280BD7223579
+A0B7A3BB31E866859BD09BAFEB760820B27625D3FAFD83D68FE80858531105DA
+D02BD6BE502DDB3F9A36963D907AC1F4A439E9901721E1011354486D1C0D864A
+1214C850885F1AF567FE84F69721649230F4118345350BA1C467EB7214A97D78
+DC7F02001E6EEB66C4B29121723533350CABFED75067831701AE0C3824CCB802
+7114831200DD4DE4E9987AB06D2DF07BEE3EA8E4DEEB064621DA3434A1C8239E
+398ECACD068ABA4FC203E68DBF6B3763D3D553F9A1B0C0F4B20C6ECB764A3AA5
+49ECC50816E83DE33EE21176261B17B7E9596405F30DC3B276723E078D38C49F
+41D9D0A71E34A31C0409982166C5BE95B67E4CD6D6FD70F4C70FC47895F25763
+655C54F34D7DA7C3CFCEAB8E46CFA4FCAEA8269B99747061E63589D64FA14351
+5DBC747252F1D265EEF8007097D61B7FD1D04E86ABC245F4A755A63C3845CF23
+A21B61CCA81FEBEDC93BBD228CFE305C077DA5BF7E748470D49CFBBBA9EFF69D
+F931E93CA1939023AD8C1F70A8018D1F1AB30D6FBB9C112FA3E0F600A9B52DF6
+64850F7EE371BC2603EBCC7071D37909D10EB378D742A911DAE383D353FEB606
+5BE5B213A1ED2641A1E529E655705CB925714A225267AF3C198CF07FE5C3A375
+4BAEB5B0D828920E5C30E956DC1EF23B07BDDD11DB232CF40B9B075697493688
+1DF4EC5FF2254F3FA8694B5FC837CE471518E9E575AE94B784ED9E1B7B446826
+FE86ED65AC46303B83FAD01A4DAD37F6F34F26157B39626B574BA38CD50E4194
+A44BD7B6EC8686317993D613A855CC9EEB57A72D3242DB07BF301D3CF80D87A6
+054DE08F43B97B6FEC3A1BF6BF5F47DE5F94C923FDE7B37C10C034C4AFEE5CE4
+3E55CC23A572EF3799693BFA7B939B1474784FDDC0FC7680431AC79F5AE725FB
+226D796F62EAD3B93149847DC9FB9AA305B2EC9A2D864E65A42611F776282ADA
+60530142CD7B549C7221BC673297152A686885FB0DCCAD13B6135ED742C793DC
+6575877DA9DF7515809C264D2D602248902081AEA512477B373D148120154073
+AAEAF3A89E9C861601C4982664734445D867F42A9112A9E047C1CCB9251E2AE9
+687634B61951F9976BCC33428D514B19F89195694BD77D1EC446BC2C7BF3AABB
+A10D55C8CB0793D1A6DF3E5A9C75F2A296B53B7E00C1E9F825D6332DAC1842FC
+33FA0F043F8EF2EEAD453A18D971E649B009C18D3539FCCEE17DCBE93DE720E7
+5A7F89F8898E00B979C1924F8F4A0FC93B5EE80161BD9C6719AB273EA856FCE8
+B4ABD8CEC864F3F9F5558EEE5E738D923C6D4316A33220E45E34273F5754C1D5
+268B62884204A607341153D5DD6AF7EDFF51DBDB0D36A031C657A6B81B1A7CF2
+09B72C5DBDA8529772155B276AEE1E99285676B1F53F1F79DDE47DAAD49EC5D9
+6A37667E3227EB0DAF8CBB20630C34277AC17C2F42869D9C11B8BC36E997B05D
+4B9EA7C642D723976E1D9A2DED515B133B5A8F4AAB3D0B4D071CC7A28B87B8C4
+E12ABBCBD42F1D90AB730DD93F5BA5ED4B467F327B8DE8ECF0533796B12EFC33
+A79908B40573403F7025E4816EEA83BCA7088BB0B7400BAA2165695551BCBB0F
+491AB2171D86A9B7094D7548D296108D0D36D7B61EC2D515CFBFDEE3CEB084CC
+B885A10C48C87EC74B7996EB81EBCA1D19BBA3DB2B52CB06C408621FC1F82379
+A99B6F6201CFA73EAB55490D9F39B40DD1399013D872B23DA14E1EBE4AB903B1
+6B16A3E08BB2BF34197B9AB741617333257A617310BF5499AB9263EDF7EC6A21
+C358C2D645F3B3737A625D211A23ACD5A907BC63E406A670B84D43FE67375A02
+3BFB87E71178BA31B867BAD8C2AD15205F2007644D63062FE9ECD5DD655E2F4D
+39F602666D5AAD6F2C4FF835784EA45326AE430E94FE27F0DF88B6E969E82EA8
+3D5089560640BE70827C5D4FBE7F303DD724910801D0E51CBC7D90EAC32CEA64
+C1D81CE238F5B395B3B56E4ABFA671263859718B623823D24CA10C1DBF3FFF24
+49FA8F2F32B323D06BB27288E755A519AB6D35149882A625084772C82291CB6C
+9AE34D30B73F8897B6EF45BBC3AC35E246FDAF40B215808131D6A5DCB67C5503
+57E51F381836ADA6B41FB62C31CFC4AB2DE8BA39A9E3B866E52298305B40BC31
+C97358AC99943E3174D60E49D21E34FB919B06DCC1F42947EA24930C471311A9
+680E2EF190F916AA00180BE239257405A05EDBE19AC282C0210FE7B5D81ACE13
+93982E13E00BA23336485FA4B2CCE13362D0C7F65CC2C99F9A82A945EB67A4D0
+0698BD2B260F7DD40D30D13A40FC475D2E3A6EDCE1EC1AF3CB2D08D1B91D5878
+67ABD580208E3EDD86F23F4EBBC21368D46DA03F8A21C8D19231279F89360AA3
+C3FF63D913C4AE9CFD9DA3922D122DEB5122F2F04C01C789A319203072F1A189
+8F33A82A58A6C0D42F106D2DEF8B69E59E7D41EE4272D6A4C221CC07BCBAD3FC
+6F889DF510A8958E1C2437155E5CAF4DB42BF86C74F3556D7E4898E3B21FFA99
+D017BFC301607ABBA62B99A1C942DEDE9DDBBBB6EB87E753548F99C4ADAFCCB6
+9FD8E8B0E77FA90883ECAE836ED2A1A9FBD8D0914F6D827F9599E6C26C315985
+4C12083DB8BF5252E36110807567989B7138DF620A102E96224775C2CC42A6BC
+18B3F8060903C47FD3BE4C0A9F188DD26977DD5CCFEE61C6733C17D033791EB3
+2DC97C64A58FF999DC9513FE8EE2C8C0216EBDE566A9AA7EF04FFC8D4F1FA975
+AFBC039F54369DF007CAA6ECD84055AAC5C534AB84E4DA34E804F3EC4D631198
+474354CACA2B3919A7E2536147549D6422B5C8FB29AE315FBD94D5A20F64FB39
+C562FEC02E0877A9CFD5D1A1EDFA73B790C035F1510C2EE179652EF35F78EEE9
+11388518E7D3D732EFBC05B029DBB996432987A2FB0696BA515CACF806AA5431
+802C9C4DE23AFE8351652C2785A557C33E62148327E0F236235C5743719657ED
+3B6B2D88361EFDCE0917D9B0AE13F77FC602FAB7CEB02FD42B2AA54F56DB0CCF
+867A1BF0788E02D3263E928CDFAD1EBEEE058657972CD0F35615B7C6747E30BB
+4A441306FD5212D52149D161AF468A9F8A530161770D7D8F26B4EBA7EC934B9E
+73652293659E8958AF34EE1AF0A8B9318EFDE5510FBC8EF4B6F368995C1B9FA1
+B133343C2877283BC02818F9F05DF97A895AD968E72EBFCCB891311C1AA4F4CE
+BA1D17C4B3D22E6C9F198952FA013F921B65853FBBABD1CA82AB0E063C040FF1
+DB4D7B590A682350E183C9A797537049A1C0171EF85A331A180E18C949AC8DA9
+715DE217488AC59D6C1F3243DD9C020C30D93400F8F1CE419F28B125C3DD912E
+50A6FB610E3411908DED6540943FBF23FA73929CD549B7DAAEF4B7C99E12F194
+2B7756531CAD917881F5F2A0846944188BBDBD17E9B793883419729847E32027
+360284F7BE71A08DD7FFF9F493A901D993E65F64DC49DD5E1F68F09DB9AA83AE
+2BF61D7EF4F207AA3EFB48AF3827FFAF4CE782128C3F38D5205ED3BD3F73563E
+45366240D027B147E85659B157FC352035D80740E8CB6AA91DE19C51C28CAB49
+E161811BE844E339EB5A0D639C550D246047D5503CF0C292B39D60342839A492
+C17A0DAA977155C77CE37A58A9E4CB23197AC74974CF09866AFD80F15A267DC2
+A9FA7B2756F051F8D1AF60BAEFDD25F4B48BA39404D9A622605D4CDC129990B2
+F35A87B007BD55D0291E6519E55C50E347932820396AEEB878C109B4D5285C67
+4F6F803550406F8E941D0AE84077DDF44E337E53FD4B7D61127465E079EC7FB6
+2E2E9E3BE964CF4DEFE4A8593BD36B033AB8A3403EFA0D242D1802CFAC4CD4D2
+19ACCC1225E688AD2384FD6770BE656942C99FBF60BFB8A8924E3828EA9ABFDC
+FE86FEE391B9E831712D774ED8BE9D04636C05BCD079FCEB576F77B0657AD548
+76375C3E41F09EF3B31273F3C0EF72323E53AAB591C496D7D0B3CE551C76CD1A
+4899F7FF90C04DB3CB7B125064EC44ED35B014CE8970F0A2DFFA3331BF11BF0B
+15A40AA1F23E3AA8B87552BAC1FF85F1D6452E8B95E191459E87D7E75999645D
+72114CDA06025257AA41FF64524EBC1C5E8CFB02839F18131E3594408770A77B
+28F1CA19E5BD54005EC680F3C482602BF57FC2C4C380B200EA39739A60EF8E33
+30581945694D0E3F79771DF0773D6E86B1F6F6F606D64A67D77707F9A46F54FC
+25DB38DBA700155DF8986B08124989E2588C5A2C14A31EB6FEDD3507F645D832
+316DDDCE4DADDF594BCA56FDDFC71B81CBCAFD73E8F0085E1A13E62B097A5F54
+B78C1CA3172D00CB0627AA94428C7EFA3D45AD1181B1F7F834004368067DC90D
+8872364A7283958DA64A65E85D207CFDBF73A9B02C0EDEBFE01EF374FADFE157
+38D65BA54D48079CECC033CAE2CB34D1080FF4D78754240F3B0014836BD7D55E
+97579A1C60FAAF2D53847343BD1F4C17FC094BC73B4BDF03336B72B453B88870
+1B24713BBB4046358EBDB731402F8B75EAFF2414F4CCFF4FD0E57D615C8F803A
+572B8CD7EDAB39439AB24F85823BD30D490C9F0874FD696B1C768D25FC5B43E3
+ADC4ADF5F96CDBCE70E7601E2BEFCBB39C377C68A09EC933F023887AF4417FFC
+C876075372E571A6924959BC2EF5ED4618B5DD3F7E270707E6AC1BA43CB2ECCC
+25D4CEBC39A2C5C9CF2E8157FE3E8CF2B7F11AFD558F84731170CB8881EE9F94
+EB4E9826FE2DAD80006D082D1D38C3337BB9F0DD49B05FB7B9CA35BC3C66952B
+73909170C4DD925C7F00C5B821B6F181EDC35F820AF8B3053CDFF7C7D3B597B3
+76562DACA7E114B34618A4232A2743E06E4978C9AC67A3C6B9F5BA295DBD6130
+6716F450768D0556EB563E36A43DB8FED069F5BF428C94DCBF92B9592842E28F
+06225172B8861F20AE450CEAEB24B1CE6CBA4B397A9C6E08BAB3B5F53C131E5A
+C71F2190233BCB0B2BB333B7E26744F539EE5D3303DF1513E93CBB3303099347
+0441F2272180B3BAAF7415C9BC2987CBF50ED7B19EDDE7380BABCC44526A8DFF
+E016B406435BBB0C70881BB845ECF44078EA168018959BBFFF43C142A7E82434
+F416A3A9161DA07C901C5B92945CDCA3E3462C192D2939267B31D0C454B8D9EC
+B425A4F111A737A5879871810D07DAF9AC1731CB9B3B7AAFF39B6E0998CA76CA
+3850987DAF090B9839B42C0D2671A0791D52A4D0503560E58B99577B0E1D3433
+FC3490215BB25A05EA682A7066CE1EC7618C03EF19124D5ACE90D77B7BC2B992
+57C5C371B78C1C146C78A20262C51E2B680F08E53A66A6E2AA1F740887954ADD
+7EA75168E84A985F8B997F16B2C3D09D4DD30874C9EE43B1AE72FDAC1071AC85
+F08489FBC23E31F4949B6DDD59388A87A915018792CA7E948937AF9B92A3CE54
+14811E5CAE60DE20E0CD61F6155CF9744783D30992C191AEB2ADE4D4AC36436C
+EDDD7AB665759E92D01897C634E93BBB9414EABA1463A4C2920DACCB2ED590CD
+CCC565BE2DF01C57332ABF01EDBF7E7924955C1F9C19EB71D5DBF17FEA991AE2
+851ECCEB3029AF636B257285AD1595C21A4B843DAE55AB453F829EF3F9B1C4EE
+871220CCBC1F19EC964A66A9F985E01A2D0C8B78C08E9EE74CC4FD7673577920
+B70D38BEEF700A93F6120D0EDBB2698B8C952855BE38588A3C064CD35B1A87DE
+653DF6170D02D32682B2D653FA2E8E95CB10173B8E47FC4C0760344A99D8CBDA
+D5E9BC5FE269EEBE1F54B9191DBC48756697C3B2E18E790A233E7264CC6167FE
+9A9F123D53EF9DBEFAFA25F1CC6A74F37BDDBF38D3534DB9ADA535A73FDC5936
+4F18117DF1C4571B144C8DD9F165B518F28CE9323FA9D3286DB0FD6C6AA10715
+8E054F1B9E053216A7C7163A29BA92069CBE5EC5F09D07E12DDE6EC3723115F6
+DF096CE2518BEEFE60DB6CB87C8BF687C61650378547DAAE31C396E53631C168
+6CDBFF0AD3FFB80881277567B68989B058696383AD3197C43D89E14A59B9ABE4
+8C4216257C31184DEA7FCF4B207B5383F2F43AECA9EFD1DD0523513D1EA99947
+12B81E617EB73F4D2FDFB4214AE62DE7FBBE05354680DFDD6A67EC73DE1735C8
+AF6506FF2DD0EBD448E69A68FDC8D4EBE719367BF028891E57D47A24E863B44C
+EC9B2E8B5B5FEABC7A6FF84DAFFAC918C34652EB46289491A16A9B1A1BAB478C
+39336D49468D2FF666C93184AE32C5A797936EBAAFD3D37DF555F809809249B8
+1E92E3808DDBB6F9AF2EF70FB7520F227E7ABE7CA2D6EE15AECEC49012D66044
+2756BF75108EFEEF6992DE86BAEBE7F25094745E12FF5C174A4A26467B426998
+D8EE46CD0189EEEDC4577D2F9153C25D5DFF6E7E448A74A5FB2BB079E4E64B2E
+9F68838344993498495AEE1B7FC72DEFA000D788F239BEFD7E5A7595F15D2D70
+B11E3DE4BD51ECC4B6AA5D7219B55404EA95B08555C22B030BCEEAA77FB7C73F
+C7943D8F16EC907560CC647410E08B00D3CAF198CEB4F488518586D3BCE6A369
+F74379CACFD6BC1862422CC7F3E2E7C4C58F83B5BD46153C9BE5CD07B0F0E56D
+A80D40EDFFCD5F0A222DC3D6BC217A82C79AA99C2EE56F756CBF80D8D5D6CD45
+4B38A78CDDC58F34E922E2F98B2B0C86E4250C0A00494648B37EA5A4D29A8AAA
+37D343050CF5DF9EC748D8809F83EA9C583118CB2181416192AF316800295FF2
+EFF0FD5FBFB746690E5505AAAB193938DC4A2C8FDB94B4284E2330415D93C1B6
+BCC32910AA6C3584115C5525F7BA9FD68E5E7D5C2052B1827DCADB22A48B0C57
+15E8FE08FDB7D9F01BAEBEAAA701D4ADE8FB3E02CFC1EEA4F76A0ABDBDD7B2EB
+EE92F45161AEAFC5027BD9CB38189C939C168AD80A2ED09E2965630208E8DF4F
+26F0313B5D6170F47E8CEB7AF079EBDD9608DCBA5BA27DACCDBCA12326FFA7CD
+F9885D56F79F1D5C6766EE3B5274AE2B43589A9AE209ADF02CD241DACDA89F71
+9E25E72A233B3B5FC0A11B0BCE99A28669B7B98CAE5E919969225D1837B62E4F
+C2E84AA38D4AEA5756E673CB64EDA19D1E5569FAD02D378C8A560F5814B910DF
+D495994892D27C2AA9CFD61AFAF121F4C8E61106FB7753A6B7E48833A1BAC3EF
+2F91BA77009B8660023024884BA7915AC57F8AE1D05590798EFE27130212F5B7
+68613E5063255A24693189225E492686C7DCE375F7A6F7EBFE4DBB2B143B2C99
+6AAD94705593D75C5D573C4C60AAE0089DD5EB76AF0DE883331F35ABED721BDD
+D64D57D74B89DB9EA7C040E380E56F78D6FCFFF474FAE59C560EDCDFBDB081CB
+CC728B8F8F6E3AC866935E5DEE1A2777D41DB749DA987F41ED8F21FF9F0C9EE3
+EE6E4B552109C5749B64E80DFA793AE8D5363109C92C215E81BD2F46D63592AE
+7DD7F966704C4F0ECCF1F33B1DDEECEE752FD7E85EDD3DA29B722C1940553AE1
+B6BFE834332E9A42146AEF51B00768F180A078940AD11CB7195E1D6129C986AA
+BC1C2E3887D0254FA5AF6732C01DC4120BC71DEE30182C0278B3497ED2BBEFD2
+10367918730245BF3E0CB9D3FF15A7EE7933F2AA310921DE928C21503B07B007
+154B87748230A7F022B897D6F65A9BBF4755D6544783BA58AB0368C94620FE14
+2A6BBC08A1D98C67F8A1939FD2F3C04B951B9DEBABB6CD56514700205C4E80BD
+2BC6676984BAB241525D10BDF1A66E8AF218DF0B3B22FDF724B16B9DA539D21E
+123D45B44E19DCFBA244566609D3C75DE067F8BA770D40EF79C2EC83398B22F9
+851049306EE57E57389ECD483D8E4F23C1A7D928038C208D4B73185C97CCF2C9
+13D057C7ECDE0DE6A00299282A633607D1047EAF5FC2FFE0FD743DE9314E588D
+22B113FB18C7ED80EEE50D3AAD81603DF034F224D42CB791CE10A8B742B32605
+F3CB2236BDFE1CE04C78ABC96A85A0C0A058E385A1F59DDEBF69EC3F026524F0
+F2E8EC19FCA69EF69D31881FE73E51AC41EB3A47D3B5E9FC6B971A22E0E61ED3
+BBE51FB8DE2518BDAC45A6C2758D6D0F20C0FF9A9AA5B36BA4C07E414CA08B60
+0EE5F3935D723C35E50303179AA5C848830AFC044F2D114196EE6B45CF3EF21A
+14345BE8341EA55A452B82E36337D5CA4D4A35ACFFF728F83B1BBB81C1EE1125
+914FD842D0C85D8B4D25510565877901BCE9A0D194645D2A4D218A552D55DA8C
+9A7946F1EF340E1F166F74E7F8E5E7B6E2D361A6CB4D5CD3966AD88B2BA666B5
+D5E832F486F1305958B8F842B5EA644A2E2CB071C33C6C8339024495F1C38F84
+463E56A3BA3E1EB606F56C677699B80F0BA57D0F1EFF3EDA87F9D7FDE83C91D4
+A33CE5CDC43364430CA330CB48C2DBD666C60B0385D200F20CF75E34F02B2CC6
+B41B89A587C1D4391E2B2BE7B9E13350E2FF07D3820A90004323C29BC417EB94
+AC12EB1A5BE85B6C39E7E8272E6181308E72FD7E41E33D5EAF2CCD59D2A2FFE9
+6036CB218F257440B517E49E0C2235756EDC5324CA4880F81C441DBDA7AB9B4A
+8E2983834B6A697C174ACE33BCD2BAFC7EDA6C559EC64411115910FA3FA8BF23
+123AE7A372CA6F2DB3B351D8DB52C5DDE60EC873AB6D7318924FD0B5D7B0C7A5
+7A2D225B44A77DCE1EC686698BA2A9CDFA4B03D0D73FA7F611ED07618901A493
+9BDF6DE163D739785C6DA052D3B45434FD42405A52860EA68B93207C092B45B7
+3429AC8729BD92F84F493411EB4BB963041C1E272D697EC5515B6CF84E7D4794
+608755CA98E84C0E678A25FBFDFC9FAA21FCFD3437724E1C861A7295BE7AD6F3
+A48483F014FD31A2DBD29A70D68B097B35CBF902F31221BB291AB5216CA0CD34
+3359A42AA0B97A12348E9C3F5C80ED7EB2C8B53426DB7279F4F81F2DF1033517
+0307DF4A9F7C92C4FFAEE3AA8B48B8AF1FB21851169A88A8D64686848040CEA0
+ADC5C1E02D65CF5630281E13FBE6D3FFE4C1695EF7374E5A4C4613C2C47EA09A
+978758E03208489C7F1911EFB2E8D8207A1D73F5F31A64A25DB607350DF813AF
+74C030206ABB2967FF064B6898917A16AB7405D2081E1F2F7D5582D084E30BA1
+376D6D737BCB3EF9A02E42D657CF34F3FEA4E8CC7A1EC47A62890F01CA6AF2C8
+7B154DC8854C530BED8D668DBBDC399F98F68E7C35AE329D3061F576DF724FBB
+38B417DEA09BDE7B7B4332E9CA1D325B04420A279075037B982809742AA3465A
+3836024E501E746DD629973C1E90F11B4449C8616418958B44E53B46BC4D299C
+70D1136A77287D1A00EF22E663BB26C4F63F4EDEE61F1DBF62AC930E04825297
+88410200E28477EC66444BD097B446C678E48A14F142D3D763EA579B8F985B7D
+A081D8E36FD24651298097E7F0F21741D7DC0DC8F426619C132C56E77B86659C
+C39551992EF76230262ABE6616B0E4746DE46EE4BD493222AAC8A31BCCA0823E
+8498CE6F24D338F4ED166BAE1639BB6D1CE9F5AD7B848E9F49B731D1F22FADE1
+93241CBBAA332958639F38E1F470BA9C9C5574EB1B493D83FFC78B9239E3ABF8
+079B77380F47DDF544A812B12B4B83B3127C7DF65CAB1F45B238F2D4CA763296
+9CCCDC58581CBE6A29112911E54C8025B8C5A3224F004FD60ED26BFDA54F52C8
+6FED0043183E72D1FE6230B78CF92AF299D70C27078AA8713D4C418B66811FB9
+4715AF46BD11407EA6EC01B24DACF23BAF99B8190BA9A86E43B78A9B528C117A
+5C6CB343BFAEC172BAF91AF442ECEA40E58BE13A5A216C016DCBA6D69EC1FB4A
+C0BD457E6664D9F612020109B0950196BB9424A4CAD0720350FF63C69FE5730E
+C33616D07B9B7418A37500726C5F675DA9CE83D91BA8CD1CF9B4EB8A6AF20A1F
+71AFA4759A6460479A207BEF38EC839883CDF6C873E74EAE3AC1AB8660C1C7CB
+178F29BFFB6977C731DF8799C4B6BF9D096B03A3CA8DA080B6815F74131F0F1C
+54567E97BC70624A6BF98E12A537D73E98353BF729CF68329CFDCE8784A0B917
+9DC0678F27590247AA341E6D420852738E0B3B86EA3B2853AE91BE35D5EBCF5B
+9EB2793114FB41BBB0F09D9FCE52B5D3403E3B413565D257931572A445C7A857
+0E41CC8074C54FF209ED6E0F3EFD849729704DAA679153CD03E1CB64ECFED971
+FC3FDECCF39C320C3FEA0355A115A7D8C20910D9E9586372B0C990BA576C319D
+8766025246A64C653FA20E36F413C20EA077878D8E38F24CB698345CBCA5063D
+B72DECC798FB3F5C3C74E735BCB6DF5169D99CEBE00C2604ADC41B157C7BE677
+A4B615F6D622B589E3B0ACB4F784FA55E989DFC3CE7EBA6C2471FA68A3C19C5F
+01E1BB4E4F270AB69CA969508CB6371738E56A6F719D02FC6852A714DFCCA4F7
+234E80D82D16047088B56AD72F84A69CC0DFE0B66F3F4D70C32C2B4EFE803795
+B4EC39DA3428099CEC3B60832F5947E938C2FAEA925DBE92547D58D23C8C4FDB
+E21C700D5EC6B442F641338DA6221D7C66B54D431C6B8B4585ACDAEE25366DE0
+FD90D70444D824F581F0375F4D703A0E75E27C2A3AF714CF0BE119E8E4052D1D
+FB6AFDBC63928FE306B97A92748072304AD9E7C9315E8D4F0AD94F6AE2A09CCA
+6AC8FB4AE43BA20AC4DDD15C66C652C33EFC77AE59D0C58051C7DE1C6750B816
+CDE94465A4D93118893196842E84701BC9E7E0F811CACB8EC69D5475F46A233A
+62EA0D42DDBE244865DD7B4431DA6877E6A8F2CDB4D824E9C0203A40FEC72EF3
+B2C241EFB3DA5C3DEBF279448187CE755845861354060229D97DA56716716277
+3A3B79F3802CABF4B058A539A3A305A157E1659B7CA0197E81A5EABF56ED3F8E
+0CF93323FBDB8F407F4BAD0C74A0E9496EF4F6435483C05CFCF9CCE11AEC283C
+ACEF3FFB21B5DF905302EA42FC90A47FDB5D70173C04CD5CC0E6635469B659CE
+CDCF3BE2ACAC281BF16A9CC02CE97C5A135FE78FCD9F265403B8F3D7F5E38D12
+C349531C4C2E0AA1DA7A19465A135B21330667B9A043ED9131FEF172E8552EC5
+6631C69E8D5510C84FB086C0AD769F6668FB02CFCB6EA31A8769B8331A194A85
+B52562DB12380FBEA4413F89CA63701055C3AE7949DD6B56A0CE9B094885806F
+9B7F3B6C2879FBA9DFCD3BC8A88CC1E20BD8CDE9393C8A895337D6E27E2A5A6B
+72ECE2707E698EAB61B41B60936B99330A4246B4AC430222B988AA67849E590D
+32ED85138078C77BF48611601BEC254063457C7F10E701A824EC96763C698C79
+09D058BA6AF3AD769D95C9CC6DD1B8DB00E55370AA8D4143A1246B8C972AEE6D
+23DD9A2878F6B6160214A020C7A4D19D8A5BC2B77D8D72B9DF64FD941B2C605E
+41E70BC037FC51883293FCE32D4ED209159DA1B4ADBC5490C168EE40C0B54223
+C7B85942CF09CB46E482472DEDF4FC708EF232D4B3867014A9BDD833FC9D92F9
+6635449F157B2E8294DEB2C1B592709EE8317DDD9BA89357CC3751E7AF423E4C
+74A3466C359FB0A5828933A626C983A365236025098C79D4EC849ACBF6C0B859
+F1813E23E15265271E1CB291C335D0DDC158F8DB146DDD365B09AD60E2332DDE
+A2795C43AF1AEE7C1081A7D1FA98666EACEEAD000A3865AB7C6797B1D5A4FCB3
+B2FD10D03E60E1F0C35EDDD7A05855282E7998A3877DA3DCB35CBE4F6884789E
+41447CD7BDDE598518C7D29B3F5E38E0074955DC55D98079ACA908EAB37A
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
@@ -2452,219 +2458,6 @@
 0000000000000000000000000000000000000000000000000000000000000000
 cleartomark
 %%EndFont 
-%%BeginFont: CMMI10
-%!PS-AdobeFont-1.1: CMMI10 1.100
-%%CreationDate: 1996 Jul 23 07:53:57
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.100) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights 
Reserved) readonly def
-/FullName (CMMI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMMI10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /.notdef put
-readonly def
-/FontBBox{-32 -250 1048 750}readonly def
-/UniqueID 5087385 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
-990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
-6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
-DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
-59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
-D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
-8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
-6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
-1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
-03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
-95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
-74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
-3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
-47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
-AFC27E4A7E07D09FB08355F6EA74E530B0743143F2A871732D62D80F35B19FD2
-C7FDF08105847F13D50934419AC647CBA71DF74F4531DC02BBDA22AEEA3FBBBB
-407E0ACC52BDC60D01A29407CC4F93EB8BF6D4813E9BA858D54F38918AC82720
-4956D50291F0546E50FCAFA6DBD0099123F5ECD4AB338DB310DB4CAE11337A89
-8ED99B6F483940C97544F888EAF0CBEB11094A13C073D0061808662A04A82BA0
-AD35E8782F854AF66C20C0FEF18D0ECDD1646321B93D327E53D88CA0E825FA95
-05AA57BD70E9689794DAF57BA54E525BF63BD31400D90AF26EC53D081D446D10
-0E7045B944A57A015BE9FC546F55B3391F8571A383CEF1107214D124137D97DA
-E87C03666B899CBB25774890873C629B3E9B18980E24513A1ED18E94DC391193
-11B9EA8A7A21E3FE7A0A26D0C51CA0EECC569584ADFD804C0F2B598BECEAF010
-6C7B75EFFAD5644F49A5D0447D407354A4F3F3C1566275EE837957081180C8DB
-FDF283A180A0A7E847246AD677059DF3AA6507AE2870514FA588B71D1B96C3B4
-B19988C147D4896A185A017A3F3481D2E287027A2973F83A84D1210880FF340E
-6A8AB4A2BC39403C1E45E201F4B294B317AA152E5A0F5C52FCDF14C410783C23
-76B9603305C4AF7CB5E3400DDAEB81DCE3F1C7D2682E5339FE31103759EB84BB
-6E00E4D280C0925110E18D46CFB0691941A2C19530B90DC10358135A8F98F4F5
-A4E1C022A8A9898E567F9694D24992A7A40E5F70B99D36004D1B0A627A4E0765
-2426A35BDC9B3753EC2A568C7E0B012852295A85E8CE51D58E44AD32CB27045C
-36C4BD9D63FE460BAD6F9275F76799AE67498036DA3550EE04BA05B8177B910A
-D9D22D9789F66C82304B94B5AB71E2525B67B2AF5208C9163A9C65D966C14B12
-5E08101CB110688A1EBAC159ED073A6F50DB33156AEF9EFB19BC65D635C154FC
-83C2FAE76364C3FC28B040BAA32F4E4E87629151092D573AF3C52EF3C3237B49
-AAFE2C109981E6453CD22BF01A73B67F0211A543D6ED4A825C2D09EFA7F7B339
-10D833418372ED6FDFA701A5B2BD4E7BC6D8F12B6438A2EBC78FBF6A3FA7299B
-8FF15B855D06DE655351BD7FE685CED61C2F7837A8B7CD3383BB637303AF6346
-5C18F3ECB334CD92D63E1D41C494BC2B85BE61342D58200E94C58D751752F24D
-0D8A835A2173337B2B4F4AAA0F693496C0FFB2A09B15773C7C268625356D3313
-8536B6E0A666AF68E64BB178419264592085D8FFDF087A3E55CDCB810EE04C80
-056BF0ADF71695F1310F96D8F9246FC59093DE15377225A5B416245269D24897
-28104650FB1D1F588C5528190C6F0E4FE0B564BEB40CF3A5C10291F01A9617A7
-2A6CFAEBC6B21B7193E97275A22C141B498DC32B1E0772A3715144B71F25BAFD
-216456393957B4B3272B27E2EED59056AFAC19E59DB97630DA74C57F8F0790B6
-1890D65948CFE9D2B41CFE5C7EDCA2195C28F647B8E84DA319FD63B57686D358
-C27915174A2EB5755267E263FD50E0580FBDFA53DBED4C7F8402A279DA718151
-DE43F47683DC868AD32B05EB2090956E32A6CAD43BF149CF43C8CFB5BCD39CD4
-6950B3C3A4F49971678475DF2BF4A54CABF66DCAE5F51FE1FDD55B3255408F10
-36506FF7845903E71C203BAFD2E3D11DD640762F51C66E3B9ED8B723EBC88ED6
-54B21C7F2A1D8C79CDA599FBBF356EAC953DFAD13C84ECA89080B9D1C50BA36F
-9E6F60A11B85A9C744549B37B9D05927EB31D6A08064E63901211B532886BAAD
-5A29B5B95AE140DFADAE35894104BF9890EDB2908C489B7814FE781A2556AFD6
-0E4057FC07D96D7CA1A21C3A435749D804162F62957FEF616DE22A4E13EBDEE2
-9129DFC291813B12AD6919DB0BCE98AE03D183DD5BC05EA43CCCDFA084286089
-37A4055B370CC4819AB38BE25D9D3E06068CB3F2EF2C886A4721011AD1F74974
-448B79C2C52BAA063A6D57886C246953314AD80C64BCB335DEF0B299A3AF829E
-1C5FAD066C72EB0B425F55765CDD5845DE28FD4A9A1CBD507E150CB874688EB7
-48E5A210732497DE3ED9F9FA667C64A5D6BF36936DC66A6B6DCB4285D239D7A6
-52060E1B6F8CFFA42DD23FFE3616FC9E0B139EF5F6102CF5EAD5A697E27C9730
-D12B467AE68AEE2EDA987FD618B97E909223F0A3B82767416156A6CD2535FF08
-2403D449FFDBC1CBF9DA0393FE8C5B82679C7445936771CAB63FE00B765FC752
-822862399D9952471D9206E7A44F3019FE78FD737D2DA3D4BB554251DAB215B7
-06C83BAA01507CD363E585804509BED24C52DFA9B703FE5701AD07E03A792B5F
-F63A02EFC7EA15BA0011164AC7969A0354F8C46710F90A4FEFDC6B9A7C529A0C
-BF338754039B3344215DEC5C7A0CE770DCD3444952CB3973CE10F31F2517545E
-56854295B7BFB9623B1D1DF8532305A878B58F560B5FB53A04269E7935BA87BC
-BD24EB3872D43880DBFCF696ED449219EE7C24C7D8893C94F7C5BB953C28A709
-E99DAEC1E8D14EF3A4FCE36232A49D1918894BBA3EF62E648F722A510AF1FEAD
-F9B7362B1EFB4DEDC84A73A4B27586D47D736C3AC86043B94D75AF4D2229F315
-CC336CA38D13D770D14B0FD3A290CF70D273B65EA7A31CEDCD3DBB9BF243CB4A
-42730865D53047CCEC6A3483B9A6824D340C6939736818B254A4DA861FEAEEAF
-6BE79F6BCEF88FDB92959B40B6DEC099CA3B01B76770F7456D1401447676F652
-E6D2DA42FCF4B43CECBB3B31F6E4D23A683E0C5AC2C2A7A2388972CB810A27E5
-6E2A7AFD8592D5842541C596ACD14795F9D10AA08CCD7024795A583AB8D91DF6
-A1D6E938A68FF3ED6C8B7D5A8B252D0FCB061EE9D11EEF440E1252A793278910
-84F4A2AA3E9ED193827D8B8A11767F3FDF0C68853C372CBBD41C7245280D447B
-0CAE8B709ACD31EFE4D460ACD4C0704E3B4281408F20B2BC0B4AC210A639558C
-488E3CD2DC708BBBA73864F9125E346B67A76475EB3CDD93EA9F110087C2FCBC
-BDAA8A392873159F7C0B3B99D244F19BA44CEEC47291B28DFC914AF51268CAB3
-AC8DBC4011F4A48B06776015142B777F675238044C5D227893BDBE2F2F846292
-2E52A3BA4F89EC921EA0D9468C4382310A60B5CBBDBDED207D88531112E04ED1
-9CE98146DE30B76DD7D2FDDFF9A18322FBFF93F08ED6B5E399B65F7390CA3A63
-83793C41D7AB29204496DC59F43BC88842F7D3264CCD4582EEA53483A1B4DCF3
-937CA7D8A69B60B5844F7EA1BCE66939B5143CD30CAC6223FE3DF4C7F25D95D8
-1819DF89C473343A31D5DD76439E6DC7FB63115C11934A00ACE2A6997F3CD397
-88242CEED00AC11E613A5E2801E56536CEC71257D37264C3F82529C78F91F628
-606014162D76F1691A60CEE7929ECAE9AE74A886D6AA97262648518689BD97D6
-EEACAF61FC8A3ED8C88FD1DFDD20033F68E21C88BFBB49AFF82235C6413EBB50
-F57B9054DA277D477A3742F002599C264320BE80BA9DCC9FDF0F802A7DE1AA31
-0BE6269005DB38FAD8ED439E703873DCE49B4974BEF843DA04CCD6FB8942D087
-21BDFF1B8D19B1E2478D8F7556364A1F66EAA9692353EA4ADCB34D65CDCDC838
-9BBB71DBBC27C0E7DD64F44C81D9D27108F0D5BE9E6E4344CF2517B982D3CFA4
-76E6992F3B2BCF38EEDE7796EAC50D4D71AC90FBD642FA9D8FC8417D542DEC82
-09E52630ED1E66FF7153508F68846E5B5E4095AB38FC023EB2AE2CE549D36F79
-29BB22119D7894658F7F1CDCB577D324E06FE273136B94221F934091846E9DEE
-DB2DEDB7852A347D483B0B3E8F0F3C57F02B8D36B0598062050D07DE715AF982
-881C17336CAF06F3B5D5930FF343866500956BAB96D4E051EEB4EBCD75DB5E6E
-E69B65BCD96456726D7C7EAAA50E37CA83CDD200669F74CAD74C5E11F7D5227D
-6BD007507BBE7E08867A5BA1E90F8EA3B272EA8A8C69A6E42F3F1A0E556E89EB
-E8398DC84B192A8760DF0C8FCAE27CE862E21E485E150AE614DB4F9DB58E39B8
-C669A8E29E6CECA2D1907A4B51F8E80CAE216D45C83E0167C71DC2AA7687DC25
-79759CED3824A44A13CEBFF4AC41DC95503EF07998C7BCB82B93C25AF94B10CF
-45FCB92C5106C7CABD26BCE29AA08AFF47039D5853CB7B6E64AD54EFE8F33580
-8BE11E4E51423F6C3C081FDDD4E0CAE59F5432769E5B53455334960C019B444E
-1B55CB52C7CA1D537E63390F6D58C406962C08735BA50EF6881095F7A51051C3
-16CB872E33F04F81D94AA54942615E3221729F18B246A2E6FB1C10091EA65DED
-C2D03FA1C3339A4F307F42D2C01F7B77DA547E916F651EC88CDCC2067E047015
-F32034E0DF048F492B2AB94EB87E540FDB767C1F674800C9F5B58529B452EB95
-8C762DB0D27E14A4D9A35C725401D94ADDC98B383CC51594D3B769EEAF700341
-B30A9BB2D5313DF1C501DDE13C3130CAB88FB7016B0E586BF2D0BE42598FF228
-764F0F6ABA7615FF95F912DF2C999DDEB54939004F9EDCE9E7FE7CCF76C5E6D9
-24E9CBCDCE6BE79EDBCA9F697516D6CDBEC50EAA6A0E888BC3F37A78C8ED7658
-6F3926EA3AED2A9E455CDC95DF3AC95FBB37E9688EAF47676C4C5E7DEFF6297F
-67D8B3AB17A15C11E78BE5CB28189C7F310A50B5A9B4334A90774A2E8CB63F29
-5A6D8E2A8D175DE10057C033F70C4423BE8845900C495910A8445832DD597475
-BC2258DF20F2EC3AADEA47B8AEB60CB8CAB2DE94AD42340CA0B83A907881B28E
-69A6F05B98F599510B4DF483241D21FCDD57E09EAD4EC756472606152C4C08D2
-C75CF5111DB1AAC22528AB2B09E53585F416995FF04B9FF9EE671CA89FEDFD9D
-225BA87CE10C42572E344C43B4CB00C6558DBA8F5C5F1B2C09804E674BCA7404
-2C606CF3A252E5C743EFA9DC2AEA46CF964B347598CB5112BB694F2E9042CC02
-47596306510372D3DBA563026877B4BE333DB1F1357285382C3F6CE05B8B8CF2
-7562EABDD13A43ABB268416127438B84B6C07D56A396F5CDE346FD35F793D9F0
-45C6C894EE74E3B008E2A821615CB570C183EEA595259BE6F67B05BAA15DCC4B
-CF28FBCF9E8856A450F08F2A47E0D65503A281611C2299D2F22CBF3EB4CA4BAC
-F50E2AF10681E5D7A2516AF11AD21739CBB921F305665B628C4D4843E0BF4C47
-3C66FC21177ADA24BF13FE46373C506745562F7BDC3715667511D073E3ABBB09
-24B1D1664D2E9D4247CC97D20BBF42DAE5B2719041FC15968B76A2452FFEC5A8
-9E2F6EF4F03F10811D7967FFFDE50524CCCC491F36570539D983EB47FEE086C9
-1D42F6A086CB1DC60AE40B55CDCC4946F6CFA76865808285E4E77B8ED418DB69
-A91C1B51F261F40C6603012E7BF3BEFA26A051120D980E91C6B2BA12140A0649
-5D015E245E7B7D6C9058ACA339F35B39318D98708EF444EC19B76673BA1A6D34
-455714AE7868AE477C712BA644A651138F9F5DD3D00C362C130F7A7A95FF3932
-DBFD468BBDC1FBE2A841D0DCBB80F9A932F4D1CABD0C522CD9DB71681FEE8EEE
-71C2B80F933428703F9A91DA689234A3E69A5D23845B9077B1122FC973D08322
-A0891C2E0427ECE97F09C420C5A3ECD0A5FD955D74851C9FCDF89F44E494FCF3
-B1C816847E49BAE47A2B556A9B1E2A0359631434504BA2B4E6DEB5A15F10ADCB
-EA4B38E593751A9B87ACACE17BB172D2886DB511C3B092C2BC31CDA10AFDFA4C
-85EF1481412D093D68806CF3F349285B5135121DB6A81FDFF1F03885249295F9
-7E346CC8AFE512EE8CA4D2059B132D464DB750DDAA3CE0C9A725238A5FD6BEED
-8129B0D3923A05108098002D5019C51CEDDA482C6B4639E9F7AA257631EA61F3
-D161DF42E90BF697986392151934FC7BBC4D53A051B0333D166D87B1AD635526
-D0D085F55A20890B5739CCB14CDE2952945C759DB75BE21EC198F0899D9D2FF9
-6EBED9FB35563381CA788F51B46822D965B264EA9FE661A27219FBE51FF77DAA
-AAF4E9797EAD30DC034E8CF93A3D88E8D4F03A1DD2E294E42EAD5DC82ADD13E3
-AB798B86E1BDA67751461217821326EF6CAD757C97501D5715B33BCABE582BFA
-3296AA949879654E2FCC3C27AD33D3145172BA491B2FB2C927D00FD7B1638585
-D7F82AA8B62CF6682BA3151F0ABC5040C5F150BE3F954082A963AE4C81AB78F2
-2D21EB724ADB5D6B31F88681DE0796332F07FFA8F4D5A00C280DB9CEEDB8EDC8
-F5015D2651AF72045E021118809B6B807A1900D99D7A8D54E237363E23E31B91
-8AD8B84D1390B13D7C50CCB2D977F243FA51AF429862C8B87BA45387170936B4
-3DD7050AFE60EEAFEECB57D57B5B913ABE836867FCD057DF131CD26A2116F1CF
-0B7388ED74D128A48C018A42D435EF3403A021437727E0F70CEE3ED525376DA8
-3B7B0C2632C11AA993DBEDA6E441DB7BD2F6314A0CF22C7E1A71B0567F8F3127
-CC9A51DBD1243F1EDA1CD441076648599D4A2F2FA1925805680DEB622BED164D
-97EF69EEEC808A3271332A018198D050C58E200226EBDBFD5B8994C8FA421A47
-28F74A94EBF9F5ACF8FD8299CD6FEE8117DCCE70F3E144800CA222CA2F2B7D52
-31E73FE7F44A9265A193229292AAC90E1FF54AAAE483D56E627B046D99A76046
-92F0D5921F42057C020699001C663A9199ED521808870650A2096037F2E14EC6
-F81F95328626C5F347E26465CD970816FB124BD62FFA8890A4D0AA9FF93FCC76
-7A7D8E4C5E46905B8DE7FDFF155E61EE2AE28D0E16D2A1C8E97B7C76E47FDEEB
-DDFAC692186482250B63460AC8425D9593591AA5EC1F3F604CAEE64CD4436A42
-90870BB3F761FAA947A8FD9B5FF3DF8DF0E6343B12A6CBB87416FE56552B1C17
-F58639DB536EF48B3C36B1DED094A8A846B105F9BAABC6539FECCDA09B861FD4
-8E92A4C9F220A16BEFA2BCA31BCD13D445C8ABC5449C553932CF50B3600A1602
-9436A69DA6C5BDC0E744820F09BE98458BD395A8F7B2254EE80F3D3BA3CC5D08
-F6D319B815C9EF30793249C2B7AD83CAF49B5C4C5D47306307B305D5FB1D37E9
-D7F1FA03E36991924A356ED08501039D3E5140E00730DE7C614B01DF725D5748
-9F6B229836A1CBF577A6EF8E801A8CB5DEC12D8747EB7ABFF3BC324160C14AD6
-481D498A0561A9B7EE565607122E35402E26
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont 
 %%BeginFont: CMBX10
 %!PS-AdobeFont-1.1: CMBX10 1.00B
 %%CreationDate: 1992 Feb 19 19:54:06
@@ -3136,6 +2929,219 @@
 0000000000000000000000000000000000000000000000000000000000000000
 cleartomark
 %%EndFont 
+%%BeginFont: CMMI10
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights 
Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
+990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
+6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
+DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
+59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
+D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
+8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
+6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
+1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
+03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
+95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
+74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
+3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
+47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
+AFC27E4A7E07D09FB08355F6EA74E530B0743143F2A871732D62D80F35B19FD2
+C7FDF08105847F13D50934419AC647CBA71DF74F4531DC02BBDA22AEEA3FBBBB
+407E0ACC52BDC60D01A29407CC4F93EB8BF6D4813E9BA858D54F38918AC82720
+4956D50291F0546E50FCAFA6DBD0099123F5ECD4AB338DB310DB4CAE11337A89
+8ED99B6F483940C97544F888EAF0CBEB11094A13C073D0061808662A04A82BA0
+AD35E8782F854AF66C20C0FEF18D0ECDD1646321B93D327E53D88CA0E825FA95
+05AA57BD70E9689794DAF57BA54E525BF63BD31400D90AF26EC53D081D446D10
+0E7045B944A57A015BE9FC546F55B3391F8571A383CEF1107214D124137D97DA
+E87C03666B899CBB25774890873C629B3E9B18980E24513A1ED18E94DC391193
+11B9EA8A7A21E3FE7A0A26D0C51CA0EECC569584ADFD804C0F2B598BECEAF010
+6C7B75EFFAD5644F49A5D0447D407354A4F3F3C1566275EE837957081180C8DB
+FDF283A180A0A7E847246AD677059DF3AA6507AE2870514FA588B71D1B96C3B4
+B19988C147D4896A185A017A3F3481D2E287027A2973F83A84D1210880FF340E
+6A8AB4A2BC39403C1E45E201F4B294B317AA152E5A0F5C52FCDF14C410783C23
+76B9603305C4AF7CB5E3400DDAEB81DCE3F1C7D2682E5339FE31103759EB84BB
+6E00E4D280C0925110E18D46CFB0691941A2C19530B90DC10358135A8F98F4F5
+A4E1C022A8A9898E567F9694D24992A7A40E5F70B99D36004D1B0A627A4E0765
+2426A35BDC9B3753EC2A568C7E0B012852295A85E8CE51D58E44AD32CB27045C
+36C4BD9D63FE460BAD6F9275F76799AE67498036DA3550EE04BA05B8177B910A
+D9D22D9789F66C82304B94B5AB71E2525B67B2AF5208C9163A9C65D966C14B12
+5E08101CB110688A1EBAC159ED073A6F50DB33156AEF9EFB19BC65D635C154FC
+83C2FAE76364C3FC28B040BAA32F4E4E87629151092D573AF3C52EF3C3237B49
+AAFE2C109981E6453CD22BF01A73B67F0211A543D6ED4A825C2D09EFA7F7B339
+10D833418372ED6FDFA701A5B2BD4E7BC6D8F12B6438A2EBC78FBF6A3FA7299B
+8FF15B855D06DE655351BD7FE685CED61C2F7837A8B7CD3383BB637303AF6346
+5C18F3ECB334CD92D63E1D41C494BC2B85BE61342D58200E94C58D751752F24D
+0D8A835A2173337B2B4F4AAA0F693496C0FFB2A09B15773C7C268625356D3313
+8536B6E0A666AF68E64BB178419264592085D8FFDF087A3E55CDCB810EE04C80
+056BF0ADF71695F1310F96D8F9246FC59093DE15377225A5B416245269D24897
+28104650FB1D1F588C5528190C6F0E4FE0B564BEB40CF3A5C10291F01A9617A7
+2A6CFAEBC6B21B7193E97275A22C141B498DC32B1E0772A3715144B71F25BAFD
+216456393957B4B3272B27E2EED59056AFAC19E59DB97630DA74C57F8F0790B6
+1890D65948CFE9D2B41CFE5C7EDCA2195C28F647B8E84DA319FD63B57686D358
+C27915174A2EB5755267E263FD50E0580FBDFA53DBED4C7F8402A279DA718151
+DE43F47683DC868AD32B05EB2090956E32A6CAD43BF149CF43C8CFB5BCD39CD4
+6950B3C3A4F49971678475DF2BF4A54CABF66DCAE5F51FE1FDD55B3255408F10
+36506FF7845903E71C203BAFD2E3D11DD640762F51C66E3B9ED8B723EBC88ED6
+54B21C7F2A1D8C79CDA599FBBF356EAC953DFAD13C84ECA89080B9D1C50BA36F
+9E6F60A11B85A9C744549B37B9D05927EB31D6A08064E63901211B532886BAAD
+5A29B5B95AE140DFADAE35894104BF9890EDB2908C489B7814FE781A2556AFD6
+0E4057FC07D96D7CA1A21C3A435749D804162F62957FEF616DE22A4E13EBDEE2
+9129DFC291813B12AD6919DB0BCE98AE03D183DD5BC05EA43CCCDFA084286089
+37A4055B370CC4819AB38BE25D9D3E06068CB3F2EF2C886A4721011AD1F74974
+448B79C2C52BAA063A6D57886C246953314AD80C64BCB335DEF0B299A3AF829E
+1C5FAD066C72EB0B425F55765CDD5845DE28FD4A9A1CBD507E150CB874688EB7
+48E5A210732497DE3ED9F9FA667C64A5D6BF36936DC66A6B6DCB4285D239D7A6
+52060E1B6F8CFFA42DD23FFE3616FC9E0B139EF5F6102CF5EAD5A697E27C9730
+D12B467AE68AEE2EDA987FD618B97E909223F0A3B82767416156A6CD2535FF08
+2403D449FFDBC1CBF9DA0393FE8C5B82679C7445936771CAB63FE00B765FC752
+822862399D9952471D9206E7A44F3019FE78FD737D2DA3D4BB554251DAB215B7
+06C83BAA01507CD363E585804509BED24C52DFA9B703FE5701AD07E03A792B5F
+F63A02EFC7EA15BA0011164AC7969A0354F8C46710F90A4FEFDC6B9A7C529A0C
+BF338754039B3344215DEC5C7A0CE770DCD3444952CB3973CE10F31F2517545E
+56854295B7BFB9623B1D1DF8532305A878B58F560B5FB53A04269E7935BA87BC
+BD24EB3872D43880DBFCF696ED449219EE7C24C7D8893C94F7C5BB953C28A709
+E99DAEC1E8D14EF3A4FCE36232A49D1918894BBA3EF62E648F722A510AF1FEAD
+F9B7362B1EFB4DEDC84A73A4B27586D47D736C3AC86043B94D75AF4D2229F315
+CC336CA38D13D770D14B0FD3A290CF70D273B65EA7A31CEDCD3DBB9BF243CB4A
+42730865D53047CCEC6A3483B9A6824D340C6939736818B254A4DA861FEAEEAF
+6BE79F6BCEF88FDB92959B40B6DEC099CA3B01B76770F7456D1401447676F652
+E6D2DA42FCF4B43CECBB3B31F6E4D23A683E0C5AC2C2A7A2388972CB810A27E5
+6E2A7AFD8592D5842541C596ACD14795F9D10AA08CCD7024795A583AB8D91DF6
+A1D6E938A68FF3ED6C8B7D5A8B252D0FCB061EE9D11EEF440E1252A793278910
+84F4A2AA3E9ED193827D8B8A11767F3FDF0C68853C372CBBD41C7245280D447B
+0CAE8B709ACD31EFE4D460ACD4C0704E3B4281408F20B2BC0B4AC210A639558C
+488E3CD2DC708BBBA73864F9125E346B67A76475EB3CDD93EA9F110087C2FCBC
+BDAA8A392873159F7C0B3B99D244F19BA44CEEC47291B28DFC914AF51268CAB3
+AC8DBC4011F4A48B06776015142B777F675238044C5D227893BDBE2F2F846292
+2E52A3BA4F89EC921EA0D9468C4382310A60B5CBBDBDED207D88531112E04ED1
+9CE98146DE30B76DD7D2FDDFF9A18322FBFF93F08ED6B5E399B65F7390CA3A63
+83793C41D7AB29204496DC59F43BC88842F7D3264CCD4582EEA53483A1B4DCF3
+937CA7D8A69B60B5844F7EA1BCE66939B5143CD30CAC6223FE3DF4C7F25D95D8
+1819DF89C473343A31D5DD76439E6DC7FB63115C11934A00ACE2A6997F3CD397
+88242CEED00AC11E613A5E2801E56536CEC71257D37264C3F82529C78F91F628
+606014162D76F1691A60CEE7929ECAE9AE74A886D6AA97262648518689BD97D6
+EEACAF61FC8A3ED8C88FD1DFDD20033F68E21C88BFBB49AFF82235C6413EBB50
+F57B9054DA277D477A3742F002599C264320BE80BA9DCC9FDF0F802A7DE1AA31
+0BE6269005DB38FAD8ED439E703873DCE49B4974BEF843DA04CCD6FB8942D087
+21BDFF1B8D19B1E2478D8F7556364A1F66EAA9692353EA4ADCB34D65CDCDC838
+9BBB71DBBC27C0E7DD64F44C81D9D27108F0D5BE9E6E4344CF2517B982D3CFA4
+76E6992F3B2BCF38EEDE7796EAC50D4D71AC90FBD642FA9D8FC8417D542DEC82
+09E52630ED1E66FF7153508F68846E5B5E4095AB38FC023EB2AE2CE549D36F79
+29BB22119D7894658F7F1CDCB577D324E06FE273136B94221F934091846E9DEE
+DB2DEDB7852A347D483B0B3E8F0F3C57F02B8D36B0598062050D07DE715AF982
+881C17336CAF06F3B5D5930FF343866500956BAB96D4E051EEB4EBCD75DB5E6E
+E69B65BCD96456726D7C7EAAA50E37CA83CDD200669F74CAD74C5E11F7D5227D
+6BD007507BBE7E08867A5BA1E90F8EA3B272EA8A8C69A6E42F3F1A0E556E89EB
+E8398DC84B192A8760DF0C8FCAE27CE862E21E485E150AE614DB4F9DB58E39B8
+C669A8E29E6CECA2D1907A4B51F8E80CAE216D45C83E0167C71DC2AA7687DC25
+79759CED3824A44A13CEBFF4AC41DC95503EF07998C7BCB82B93C25AF94B10CF
+45FCB92C5106C7CABD26BCE29AA08AFF47039D5853CB7B6E64AD54EFE8F33580
+8BE11E4E51423F6C3C081FDDD4E0CAE59F5432769E5B53455334960C019B444E
+1B55CB52C7CA1D537E63390F6D58C406962C08735BA50EF6881095F7A51051C3
+16CB872E33F04F81D94AA54942615E3221729F18B246A2E6FB1C10091EA65DED
+C2D03FA1C3339A4F307F42D2C01F7B77DA547E916F651EC88CDCC2067E047015
+F32034E0DF048F492B2AB94EB87E540FDB767C1F674800C9F5B58529B452EB95
+8C762DB0D27E14A4D9A35C725401D94ADDC98B383CC51594D3B769EEAF700341
+B30A9BB2D5313DF1C501DDE13C3130CAB88FB7016B0E586BF2D0BE42598FF228
+764F0F6ABA7615FF95F912DF2C999DDEB54939004F9EDCE9E7FE7CCF76C5E6D9
+24E9CBCDCE6BE79EDBCA9F697516D6CDBEC50EAA6A0E888BC3F37A78C8ED7658
+6F3926EA3AED2A9E455CDC95DF3AC95FBB37E9688EAF47676C4C5E7DEFF6297F
+67D8B3AB17A15C11E78BE5CB28189C7F310A50B5A9B4334A90774A2E8CB63F29
+5A6D8E2A8D175DE10057C033F70C4423BE8845900C495910A8445832DD597475
+BC2258DF20F2EC3AADEA47B8AEB60CB8CAB2DE94AD42340CA0B83A907881B28E
+69A6F05B98F599510B4DF483241D21FCDD57E09EAD4EC756472606152C4C08D2
+C75CF5111DB1AAC22528AB2B09E53585F416995FF04B9FF9EE671CA89FEDFD9D
+225BA87CE10C42572E344C43B4CB00C6558DBA8F5C5F1B2C09804E674BCA7404
+2C606CF3A252E5C743EFA9DC2AEA46CF964B347598CB5112BB694F2E9042CC02
+47596306510372D3DBA563026877B4BE333DB1F1357285382C3F6CE05B8B8CF2
+7562EABDD13A43ABB268416127438B84B6C07D56A396F5CDE346FD35F793D9F0
+45C6C894EE74E3B008E2A821615CB570C183EEA595259BE6F67B05BAA15DCC4B
+CF28FBCF9E8856A450F08F2A47E0D65503A281611C2299D2F22CBF3EB4CA4BAC
+F50E2AF10681E5D7A2516AF11AD21739CBB921F305665B628C4D4843E0BF4C47
+3C66FC21177ADA24BF13FE46373C506745562F7BDC3715667511D073E3ABBB09
+24B1D1664D2E9D4247CC97D20BBF42DAE5B2719041FC15968B76A2452FFEC5A8
+9E2F6EF4F03F10811D7967FFFDE50524CCCC491F36570539D983EB47FEE086C9
+1D42F6A086CB1DC60AE40B55CDCC4946F6CFA76865808285E4E77B8ED418DB69
+A91C1B51F261F40C6603012E7BF3BEFA26A051120D980E91C6B2BA12140A0649
+5D015E245E7B7D6C9058ACA339F35B39318D98708EF444EC19B76673BA1A6D34
+455714AE7868AE477C712BA644A651138F9F5DD3D00C362C130F7A7A95FF3932
+DBFD468BBDC1FBE2A841D0DCBB80F9A932F4D1CABD0C522CD9DB71681FEE8EEE
+71C2B80F933428703F9A91DA689234A3E69A5D23845B9077B1122FC973D08322
+A0891C2E0427ECE97F09C420C5A3ECD0A5FD955D74851C9FCDF89F44E494FCF3
+B1C816847E49BAE47A2B556A9B1E2A0359631434504BA2B4E6DEB5A15F10ADCB
+EA4B38E593751A9B87ACACE17BB172D2886DB511C3B092C2BC31CDA10AFDFA4C
+85EF1481412D093D68806CF3F349285B5135121DB6A81FDFF1F03885249295F9
+7E346CC8AFE512EE8CA4D2059B132D464DB750DDAA3CE0C9A725238A5FD6BEED
+8129B0D3923A05108098002D5019C51CEDDA482C6B4639E9F7AA257631EA61F3
+D161DF42E90BF697986392151934FC7BBC4D53A051B0333D166D87B1AD635526
+D0D085F55A20890B5739CCB14CDE2952945C759DB75BE21EC198F0899D9D2FF9
+6EBED9FB35563381CA788F51B46822D965B264EA9FE661A27219FBE51FF77DAA
+AAF4E9797EAD30DC034E8CF93A3D88E8D4F03A1DD2E294E42EAD5DC82ADD13E3
+AB798B86E1BDA67751461217821326EF6CAD757C97501D5715B33BCABE582BFA
+3296AA949879654E2FCC3C27AD33D3145172BA491B2FB2C927D00FD7B1638585
+D7F82AA8B62CF6682BA3151F0ABC5040C5F150BE3F954082A963AE4C81AB78F2
+2D21EB724ADB5D6B31F88681DE0796332F07FFA8F4D5A00C280DB9CEEDB8EDC8
+F5015D2651AF72045E021118809B6B807A1900D99D7A8D54E237363E23E31B91
+8AD8B84D1390B13D7C50CCB2D977F243FA51AF429862C8B87BA45387170936B4
+3DD7050AFE60EEAFEECB57D57B5B913ABE836867FCD057DF131CD26A2116F1CF
+0B7388ED74D128A48C018A42D435EF3403A021437727E0F70CEE3ED525376DA8
+3B7B0C2632C11AA993DBEDA6E441DB7BD2F6314A0CF22C7E1A71B0567F8F3127
+CC9A51DBD1243F1EDA1CD441076648599D4A2F2FA1925805680DEB622BED164D
+97EF69EEEC808A3271332A018198D050C58E200226EBDBFD5B8994C8FA421A47
+28F74A94EBF9F5ACF8FD8299CD6FEE8117DCCE70F3E144800CA222CA2F2B7D52
+31E73FE7F44A9265A193229292AAC90E1FF54AAAE483D56E627B046D99A76046
+92F0D5921F42057C020699001C663A9199ED521808870650A2096037F2E14EC6
+F81F95328626C5F347E26465CD970816FB124BD62FFA8890A4D0AA9FF93FCC76
+7A7D8E4C5E46905B8DE7FDFF155E61EE2AE28D0E16D2A1C8E97B7C76E47FDEEB
+DDFAC692186482250B63460AC8425D9593591AA5EC1F3F604CAEE64CD4436A42
+90870BB3F761FAA947A8FD9B5FF3DF8DF0E6343B12A6CBB87416FE56552B1C17
+F58639DB536EF48B3C36B1DED094A8A846B105F9BAABC6539FECCDA09B861FD4
+8E92A4C9F220A16BEFA2BCA31BCD13D445C8ABC5449C553932CF50B3600A1602
+9436A69DA6C5BDC0E744820F09BE98458BD395A8F7B2254EE80F3D3BA3CC5D08
+F6D319B815C9EF30793249C2B7AD83CAF49B5C4C5D47306307B305D5FB1D37E9
+D7F1FA03E36991924A356ED08501039D3E5140E00730DE7C614B01DF725D5748
+9F6B229836A1CBF577A6EF8E801A8CB5DEC12D8747EB7ABFF3BC324160C14AD6
+481D498A0561A9B7EE565607122E35402E26
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
 %%BeginFont: CMTI10
 %!PS-AdobeFont-1.1: CMTI10 1.00B
 %%CreationDate: 1992 Feb 19 19:56:16
@@ -3199,205 +3205,214 @@
 D49A6E55D88E47257C1FE6F4911A80F453FE60FAC91C0F1C634BC8303F889319
 2249F256E3D03ABCABBEF82548BE9EE4760D5AFEC07FBDEA52A0AD12BEC7726C
 C7A5EF714229940B17A6B638974A56D694D6F66A013BA2D8D4A60B81A2F0B8BD
-627726A1D308E4C165897DDD1C6C07951D370BDFC93DD6CE8FC11E8839074F07
-2F7A33169142CD5111A96B9329B900A59C968D6D8173F96DFF71F41B7F8BE237
-9134ACABF031EA746CDDB104F1B5E5C06009F0683FABCF10B9A6051677B387F5
-531A67FDDD8823647E4B439568DCBB111777721A42823443B86A0F57766F688D
-B7C054730A4537A56A7CAE08112F5172BA5055BA8D9CFF93B2575CC605A5ACB5
-3D94A1EE7763E7CB1F9CCD0975AC3F6BD8C3638A6129A305AD6EE19F39A932A5
-F13FC835E8921C1EC43848E62C8AADBC1A03F80627E1A6886A638C5AE45C011B
-345F6E3E07DB5D6D79FE0C613FEF6A4006917632E1F00C8201B7512677EC6B86
-04B7839E551E57863817E4ADAD71D7A065FDFCC66F50277095D91C576DE705EE
-6F7A46E7977E36DAC75C9F1E473B302ABA01999BD772CAF825FE6D33E49844A0
-0DF3DCE9CC49FD08FCD7BA84936F1034DBD12FC4982ACE0B5CE96FB309FF7A2F
-5047BEC044DE76F258C52CF830592BF4257E30B786A0CFA3FAA60BBC5244AD63
-780F45A7B50C9032A9FFB5C9DD8D3DEA5F5060E7A827CBB50935F12EEB457529
-0C4AD558D51721CFAC355CAEFB562930772EE6F1457DEDC1D5A852BEADAA8551
-D099A754892DC10E8B90630F615DBE228B4A5F42CFB193E06B1CD9E31BF768D7
-6A46C3BF9E69162EDE5CEC031333B7BA03F948A00EC21F4CDE5B8BDF69FA7820
-8861581268B2E921687B87270E23820C863952CBDF6D7FCE3D65D349E3978CD3
-D9416179DC012AEE4DCF4FF032AF714F2F4B463DB08CA9DE789AC48B236A2630
-576BB41772D562DAA6D2F7265F89EEF37051DEE9ACAAE9EE0E2D6435DC443CEA
-F264BFF6718FB8C37B3AFBD4632D04E79A9F86931A33470D7B30F9607362D2C9
-66B52680BBCCFA75F2CB1E81BEAF995B142C7757570A975171F69B44DD5F1060
-E9B7D2FE9A88ECF2168941C978260A2D175A0999C898FF89F0B8586610514849
-B3B66982D96AECB74993AE3C078342EDAFB99023AFF0A6E59B464FCD4BD6F6B0
-21B2E153DBA08E557432DE31ACAC8F40353199825BE5D8F3C0ADCDE153DCCE80
-0A513F33CBD28B23D61D5772BD572D5CC73613B3F0C7DD5D1EC4D111EDDC16D6
-546D5070A5EC95956ED2235DE6C151CBEACFE4E31444CC5E15235796D3060236
-89BE413757539CA59C4E1ABCC9B30DACA22B004C976FF1A858F90B20D7D23179
-38A30E17E1FB2C226EE8D272592EECA01A95AF57540B46B4D236C54DE4C1161E
-B18D1BA8142680BEF856A24580F1E2CBD06FD5179F9AF9F6DF0FF78DD1D01E84
-8E4F408F2F4E0C619F99EBFB3B45B6C2502CDF066AE3D857B283D5EFD86A178A
-E2338B57A571C63F52947C910F6085FEBA457B96B8C65E21D78740579750B76F
-C720C4C423C2DBB3B59CEAFA2CCAC24CDB8E5C85CF5F3545BD147532425EA91A
-C9EF2E76BA9C49A89E6A869FDDFC7B32BFF963956BBF0D25DA923D5E34157492
-FC01E3AA5B7004DF7FBFEB0F2BCAE2396FE70049BE547BF85DF790A24640DEB2
-D93372E7BE7D4EF3D77CDE7A2BA4B8429A5270C9FB5A3A512E0CA72E6E7036AE
-EE71D0FC3290FE3EF38738B95F88F0357DAEDA7D2AB812AE1955A4029204DF5F
-2CF1FB6B2134BDCAEB6859FC6B05C46D67E9E10FFBAEEE628452B7B5DF1DA1BB
-4BFBA1E981513423BC53017C0A49C9C6CF8E7F75CBFE6BD71E63EEF98729CEAF
-A30D8967A13337195A13BB4201C44A7C1D5E0A4542CF367AA6DB4651F7838CF7
-CA687AD201FE51E186354B4F44B47037A9E7B7CE9785EF9B2B46FB8BF36E231A
-20A0C6FEA57505F08E2898796DE4B7B55A695E66751F6114426F43D85F2CE6B0
-4425DF04EDB0C20761F2FAAD25D640AC0E076C0A6E9AD14A1603E1E64084ECC9
-AF53B0AA4A714BFD77BC5B63E8C357879F5C3D579558427DF85EE002E5004FC4
-C6C5A69E4F45E3BE31AD4A45D540AE07536F02E6BF3EF6F7612DFD47EE612C68
-580792AC8F495F223B6137FF16F62FC0735A21586A2C6E1BBE6F1F0361ACE0D1
-F5618CDC77620D7B1460891CE4A016531D8EAD1F9CF32ECA8906D2B8C49D6B69
-30D20B7CD53D841103424FA95BEDEB8415C4F53E01CA37BD22FA37FB539679D0
-089E15706D0498348766048E04D28DA5DABBC9073DEEE0937CA44AA6B4652617
-FC82C9CC230FAF4B7564D9CE654071F42FD9870E0DAC8A537B39CB920ABFA6E1
-0CACE83C9C1E1A5A18C94C9F3E718398B94920E788DB4292A7A127A24425BBB7
-549C21123677D68104D3D0F48206BCC18FB5EE655362D4C15E977F00C8F9B76F
-4A4812B815AE26F8817CD551F63826431C67F01B4B0299A9BF1BF6E7A2F5C2F2
-23C1ADDD3E22E38D891CB636C66B1B542ABDD01217138641A2D3052F21F7C5E7
-B2FA10AC427BB11ED4D5F1270CB80DDDDCFDA5472BBF3C474ADB259F77D8529C
-A0E1A9C664559C3D8A9644DF86ABFE31ACD89BA150A0A9E0614BBC0922FBBCB3
-6BA2BA383CA13CF9F1C28753CDBE7F602114E1EC2213703305132D8BEDF723E0
-A6CBA47B3F5E8D290E4A1C6E37DC5B711031BAAB8A22C2837070A60D97B8E739
-024759E4DD51C0518F8BABD38402AABCD071577CE4F2E1EE35A357CAEAFC451C
-E5FB23C0D8023F6A381B126455C63D8A6152DC812E1E454ADAE7482975084546
-5AA52ADF809EF1DE3373E877D985434BC5FDB98AF41A94776324661ADB8B3171
-9B279992180A96AC5549017825BC3D632B69D964836B73AB40AB983C2158D422
-7B12F2352BD34EB3695B55ACB4519CF1279199D226A924BC951533EE88B9A4A0
-09CFD635F46C8E9C6F79BD781442F4FB1E22CE4083A211F16400DCC35D6ED651
-3B346D6228E0ABED5A88E606DFADE8D3D925531034FB7304CF29A30A1B5F8562
-A1943C5C1610BD4879E22E755110EE5E80FEA0D91446BD3E2CB81E845C8D0D3E
-26FEEB372732D352DC0BCAC17C3BE1339C6AAB7149E44ACBB73538C7F730CEA4
-D8A6BF34F8589658986EFFAC09943C7A14BC709D465C591E69C3BEF8B45497CC
-1ED12FFC38DB73856E5F35478A5AC8B6DDBE17DE10F224A07CB7AAED1A530528
-98DF2464142AD1C0B13AE43CE7A458C8784506A8AE44852D792B825CEEB9A3D9
-E8946B0F57D92F47C7E90A6FA1D125D6F06FDF78018C0EF9050C17FE69437072
-C878AE5E2F1B9E499C50016316B05AC8F6056D59751F8DA9FFC1211BBD30F1D0
-65BB1F362D51C950C056655DFE753819786D474951FDF6F8045158B60F042E96
-46E5D3370D6E8E49E4FBECE06BD87B8CE4A1CF23141EF5F30AFDFF047E6587FA
-3BBA67075BA5372A2A1FFB69B3BB5CC93DE3E9B151C6108FBB4B3E77AB31FEC7
-6DB598F981E2EC80D89D408FE34D9FCFA8C14E131A14F7217FC34DD6C8348583
-C4079236AA88A27A16E2E7CC3A8384CAAE84FC0DC16F442E98B7AE559863B100
-7EFA672C6976E208765E1D7B9819AA33A1998BBCDB65A18B3695F92A960A401A
-C5FDEC5685F03EA6E53FCCA95C9819934054204C3ADF684423BDB1D81F7270B8
-DD1426BA5249A284F8E70303B9CD291F73EF33B7C8F2A515DD6E6D91E8ECB0BD
-7F59EED0290A567A7BD37DCFC965E8F210B3C319769F1BB0FE45525B267BF2CE
-A24EB3690032E6DA2470C2B058B685B3DE9A20526CE0F9715E3FE855569FEFC3
-592FB4281FCB8A9D82DA613FACF94B4432BDB82371DE633AB92DBC50EBF38FA2
-CA4328BFBD5D0D47C4B14472EB02AECE25FB1A927F896193B898F11597FDBBBF
-920B9D538266BDE2723E09A4F6386B2B129E1F5A93A6683B5D56227BF3AFD857
-E9A02F1C979E425A9868204D2250D9222BEEBE4D70E95911988AC66D85E2379C
-684BAD357EA7A4749AAF093796862B6C9F6CEB8F12DA56705BA6C6C1B391500D
-84F183D30395B5E50BA5A8AE9B45633F6EA22B433CCB4793AFCF94B5F0633269
-81B8CB8C726BCA8046670AFD7DF0BCB136C4B351AAFB92B3BE656191A1DA768C
-2E8C07960F07F50C907AF3D9F2C7A788F3CD3048FDE5E8917E1E8B94B7D8046F
-A440C3C4193C4473569EDD0D5091C4398320433B57823343DB71A32B27CF16C8
-D7C59C4A1BFB5CF145681E69256203073B0CB92DCF7002FD301B2D5732ED5561
-FCB9A2980F8F6110EC732B8ACF9C8E3AB7117E758959AB2F4DDF57864781211F
-FB1BAFA2CFEC1DDA7B5E2EBC8FF764A0A9033D28ADDA9F5207AE0B967C181309
-C7A25323D517F84B33394EBA15FF6A0FB2B9ED317A13CF712E28168B73542130
-138229CB67EC860F5FFEB1AE3F2C2D0724723A5D2FE3ECD074A91649D76D5653
-59201263F5B0036DE5AA613CF72489D2E6BE47D60B6D8A5C672441D30165D94A
-5D7236C5B5D1D175E9A2CA3D914862160644666E51283CAE0E05C4E5C3B64828
-3240C3A30A22E43DFC64E173E61F791CA600F2A9187A0D3613E6F3C0761D992B
-66664D2C5155EFE72CD0F2728DBA773E2AE1F499AA3D3A8958644A92AECAF5C3
-E60F687F1EB7F90312EF2FAFD8B8A70981137942CABA5BCDDEE89D5DCB051BEE
-01AF0CE097583921467910BCA7C8A4E2B8DA1DEC590920BB22383AB3B4DF42BD
-4C06F7FD214CACA72891A56BBB7038C179936BAFCE226F3C538ABB8FDC155A9C
-6757F93743FC9305A0BDA749EFFA16FAD55E27E5F093562C972C12358D077ACD
-3F9ED5EE1B91A598E1DCF68BE7775B18A5D67E03BB1B5A38DFFAE87917284EC6
-70CA0B56A091510BA566323D76A2B4AAB11B32276C925DF41A4F8398EFF76F4F
-B76DC01BA998EB8F9F1C58AB87F267EC451DDD3BAF4873EEC2051BCD500B63FE
-9A682DBF460DAF85BB1B076FBDAF84D0F7FB479350B23C23CD41EE3800BFA8D6
-3DDDDFA7D51F9300473FD6B23A5EC924E06F57F27D999B8874105CA04DA55A0C
-B84935F14A986C20A4A27EA6F2DA8465328399105CE0F568AB766CFC386022F3
-A2848036D00FEDA73F0EE0DE68D21D5A06BA5A0473938315FB690A8A8A385C44
-6935E87562C868DDAA46EF348AA1CE432B8B71F739282ACD34DC270139D95C6C
-E28E76066A0044D58B53876F97C77640B13B3A76990AAAE5E366C74E2A69042B
-56022319C8F67C2BA87089B76ED30468DBCCC83FA5D756EEBD9ED0981636DBFF
-E8A94A0073459AE2B0D6F70B2057D2F0361EE8A0389D77F20E105719857B2DD6
-C3337AE89F513E55ED380202B607A37A9EC67C80093A7393CBE3BF6658FC301B
-9285FD0E12717826A679D84232234D6602D7254E3F0CF1D4A7757979E9EF7FC7
-23E4D415E3596781E4EE10006F68874F13F65AC5C005F3E5C812656D00D9E107
-14ED63E282CB6AA30F7E599B912C89539F24FACFF3BEA6D24D172E707CAFC099
-30026209A79117983F0ED6216BC537E35A462F26C23D66CB4ACF979D2BEFBA18
-FFA070BC12AE14EAAE813F98511A671DBC0DFAF548C1EF87951119BE7D4E300D
-B50A9B9A7303328E5D3873A41E8F09E384F655758E4371499C288FE8760C57EA
-F7C465E6BFE1F3BEE31B15B04E13D054AA74AE1F5CDD38487C0ED341642B9F13
-FD78BC59FD5AAB4583F2DD8EA8844152AD3109BE3BA45D8418723AD8123D7BB2
-E3A6770720902D11A4263FFAED84B8BAE2C0B4F7E3B16C22C414A6085137349E
-71108E70F29201E1F351C0D6EF9FBEBC666CB5C88AEFC886E14FB792DD976784
-98210EFBEBCA2DE7D244F7AE1C2581AC4F7224E6EB1D2EF882B3271DB472BF9E
-A06EA22A37134D03268E9EFFCA58CAEAA6133F140DFECC867CBD428B877C0B3E
-1E04AB543485B0C5EC6E657A10D561D8BA5BFA024E43663D56B264556D0DE7D9
-E737B05853EEB876701D931368010D4E97C0BC0E2404A152CAEA3357F378236E
-F76630CF23418CDD5A3717FEBC99A1C9853A82DEC679B4901AD1BBDFE1AD826C
-AAD8F474AAA58F1701861C2807FB54CE2E52D931DB7CEE8F93CB9AF75AA9CC54
-7B7ED1B761FC474266C2BD3282EA38769E30EEE640F3C936BA95BEB5BB38167A
-8D9B48D12E19261A6D93E569F38CC31B0177F1440D8459B2D4991B21A2D5CF0B
-5F094C3CF63454EF218F3BA471948DAF44EE76E3C327CAB326FEDFF9AA45895B
-BB09314E6E477C379BF208E0E609C11EB7E5F169154130057E9597427068070F
-7CBE5ABD96B691634398A5B2D7CEE0A0C0DA4CF33912BEBB440E9C1E1A6FA56E
-C6CC558ED71B1EC92232B191EF9AA62BB7CC6FEC719B0799297BE0F96E8B15EE
-AAD0D88CB43D264B6C8188C2B73F2680977582889D5227A8FEE11A9A074D7E3A
-E3E953D14754D2F1652F2A09ACD307CAA447E102FC787C67919EF3A3EBF556D0
-95F18A42E6AF9DEB073D5BA08715369E6B6995A6641A9369B024A06B8964BE53
-CFD5A1B782BA3DA0D83A639BC30910A38E2BD217CE6E623938FF749B1BC85770
-A4C9E39D1879B260980DECA6564D088CC4A4685D04DCCB69B60A24F97E871491
-67E7A524D718899F782FC10FFDC29F4DD98BB461A1F3E3802966ED36762ACF41
-9B15A94641018736DBB6DE6D5283A7BF8DCB2DB3639039276904E35DDBEA97B4
-EF07CF3940F03BC06E7D1004FE9099E341560D62E1265E7EC9747E1C3C539C9B
-26C0FD0271CEE33351D81E221266D552B2AA82FED4DD22E41F23FF98272E8DB9
-D438C9050CAD50AB01F5358A56FE5CFC01DE33B55B69D54C0B57D31974255DD9
-679CAE12DC121085C8A718FC4B0C10DDA6A97C1C5BC27E921105812A941FBEF2
-D9B04E6A55C8FD66547257CDEE758F6BE9E2E68E60A80C04E663FAE2063E47A2
-91F0612F49E1FFF1ABB19B1B7DB4B815F23625D927E180523A6F44173079549A
-378887A56E83592B41C32CA06DB29B10E7F61163479302113C259146F3290056
-7CD997FD38D0DA57A528322D72B48B633B87F80EFB40A8E4145DAE69B70A6434
-7BCFFE66FF14DC5A2B7FD1F97DE8C8A5EDDC33B6C493F2267926177886D053F3
-D2833C7D445DE383672F43A5A07011222052D4F388DF38D5F3D65E5297A2C219
-B9530970DA22D5886C073344DACA03D9B5307FBE5650264DAF128EA3EAA1F62A
-2BB8757420F7002C39063FCB2D5B835ADD61EE4FAA9CA8F17D459826D9CCA000
-FB3CB53AA76AF4A7E08BA07D5B020809FB7B194E44439B4FCACB5D1D3C5A2792
-EFF43B0DB4E1293C95C11B6A79E36C300E21E3ABC593403CBCA7C41E627DB17B
-F6D24F869273F83DCCC1CA27723A0103B890EA47941CE18681DD80820FCCB92B
-62DDC6C4EC1AB73AA6F767B508EFA3C97EFB8B34F295A30B0BBA6B2F60B12C4F
-E50176C23D7A88923BBA51557416E9F23A455EABF9969820AE84C0A52F0555EB
-44D4A2EA662E8B499F309B8C1C8111788210568764BEA7501EA81777C9E5C147
-480B0BDFA1ECAB004881D443DEEADB49BDD1E645782998AE3405ADBBFB910764
-EA216E13838927CFA19989BD469463E81FF527478567CAB6C8DF020798CE9B33
-7BEB51416EECF914100F58F3411604E8810A5DAD1B79B454CFFF718E264A692F
-8BDC86E6DDB53F5F8767A342D539BC4678DECC91751AA76EB8C7B62C054C2AA3
-3BD3DEF54895153DC4D8D15BA77534D931E5A039AD37EB105A4FFFAF8926ACBF
-B224F1CC3CA5E15003C0B2E73870D9C3E201EECF2512F8BD33853083EBA810B2
-A1D65AF651971A44DDC1AD9CF6D22035F86166508946CFDBC05611FD165C4B1B
-878A13E8C17B8697CED115960EB9CC3C9F04681C6D59F5E34BB4BBDD6002D08E
-8D0194522E86D42A044EB2510F75C4F6E537FD79F319DC16F2E3CE029FD8CB45
-D8B3F7B0221DCFFDCE1BB8A3F5C486CD9DF8FF4336118676F6173EAFF4429C65
-D725F14FE5E4F443429EF65B361EE16642D95E299BBE9EB9194B98AC3A3C9948
-214559575BF25174AD413937F27F3C990973DABA790C2717E79ADB223DFA3966
-C6F07F37616A5326419F357AA6D4473314DAE91DFA849054C122357F61096D9E
-A256D4A49E1C42AF5EE61F6DB46DDF479AA13DFD4BFAC31F45DC7F30850BE6C9
-34C383A3AE42B0848546033D67D87AE25FD91BFB35309D498F22D6D5333D6055
-FE4F9AC7C0D8173988B111BC564B3D57C9E85449FC24942AF6CA19BA06923B55
-F742F585E965246CDFECB3CE3A0AB940F5BA98EEE1AA181C5C380B5CAD41D84A
-CCFD102F083EC51055968D2D77E701AC7337629AC1CBBD33524E27CBFE19893A
-12CC16F7EC6A21C3712A5827CC637653267AA1CFBC858F2C4AB54EC58BBDB7FC
-76201FE494EDEF7C0B8E704558A5DC43822551079998660D8C66F1C725CF8525
-BA2F58917A561A25721F34CC87AA3214CD205684EFA9A6E2931B7420AD5671DF
-690D3FFB05C835A903D220C03EBB723EC27E251DE312B18C2B7B979207452943
-FBF988D305CC60F1C24429FFA3DCA070B2B9D62F61836E9167B6C5F06D100ED9
-56C006ED5C82B3BD1185A100B6DC79FC7571590EA13B1DA6F1AA701F426C71F2
-530114CF531E6F4D1804022E1A73997D58FCABD9B1511E56D34CCBD3C20100D7
-A49FBAB87810A740420985385C083D42EF6633D1B0BCDCD108A731D8D3179305
-4559B887754B909C2BF4B9252C6CCA21FD4C769D09AD1612475A4FA31534CCE2
-7165E1BF7D57E9889D75047FEC317C765F791F0325ECDC5C537DEAD75658292C
-F0F9C012DBEB0786AB27922B0D469D30F889A57BAEF69305EA1CDE921C510797
-0EFF77831C3E2A91499F21FA844DDE5F0CE52AAF7CCE5BFEA7171ADB0963067B
-53B642DF071AA58F08D11BBF0892C48E12E0834136F1222BC82B5A69CF47FFF2
-CDC31DD294E40256DB631775A224A313C92E9604D91D99198F52C8B1828479A5
-EF233BDA0FC819A72E0C6AE7D7D54B9A798CDCA8CA2407495D77DB1F6A102546
-EB27AE42D8D9455A328BA05049EF401B2B54DD0B1DCD7269F3A0D80D0D50C856
-9E329C1CA254D9EB5876E0EC4E944DE9B01E2817B78E91E4D846D7A9760D493D
-067DE8E8C17818FA900A048515AC5238B5B991E103C97F62585102342B2F84D9
-FE484C809CE2F885BF6D5BBA805428DCF6FE7C4D70
+6306DA689D85E5EC58237087C653D5008739F46EB0098DF5B205854FF668CB0C
+570C8F92B76198794BD0BCBCD4A5D1C78C8B28746489DE8C628CDC020C279F4F
+3F3C42B63F06F7A0F0271C12F258D53A372C3ED16DE1F8495DF8533DDAD49F54
+9F0148742FA1A64C2FB8443C217CE2496AC46A7226FE7C077E7FC19F49B9D3AB
+692223F313E85665497CA5757AB6200DFC7D9CCA2BAD25E867F939AFFB398A0D
+19E96C5A46846AAAE127052EDF9FB9EB7F147C1A4CBA60793B8BE29DF0EC482A
+1D71EC293DE963D91407350E9C4687611C346E54C71604CD8A81BCC114FE6A34
+82FD2AC4F355468101643FABEEBDCCB925DE6A2D1DBB875874F11E14A74E5D96
+94AA423ACAF655E882E6E3B11F368BE288F52FCEB3A9A32A1C604CE8C7B29706
+26B59075844B4B483290950117912254A14F12BB5F05E7ECC0800ACCAEF2628C
+E77BCB53BBB53B8300B5CFC9D2EE25837D08D1B54160E5A1D78ECE01558C496A
+6BE6CF573792F0C69B79BFC1083421AB99B49674BA3C5E8D357948AE30FAA384
+8E1FD6E527F5EF4F1494C8173643BA029412313AB9540F6B500AD06494E5969B
+B9175E75FA5EE04756107852DF25166DE441464CD06A5E44835A092A377F0224
+8D49967D3D52233C24DE1F425D0F284E9F4827AD57462CF75D51FA134A164AD3
+6170B31A21F9703B291C9655698D72DE7FE0AC718658901CE6D02E5768E7068E
+2B6F302D3DB17BA2EAE688B6D0E602FF980139C60BEDEF5246746DFE77ABA380
+FC8A6FB1D20802EFAA540A76BADF86EA439C79D4CE002C203C8EC77B879BE226
+DB2413865EC20BF917DF8699996B6BB051E930BBB80654D159827783A3AC1B40
+1DB840F584353DD1604B8477E77815161864C7D9D49204DA5211A5CD049529EE
+38D87FF062F1EAC6C4360E52B05ECCC517CFC8794FA8040EBCFA830051894F91
+9FFFC84668A06F5DC2A3815ECB81AF54111E319D768242B0FD34A23C38CDD4EE
+49B0482C6F89E8E616ACF709EBE1F95DF23FBCEED852B01A6EA467E5D5744C25
+15AA50116B04A56E2FADB0F36FCE73D643FE0AD9E07808A27B9751CA8079F174
+23C4CC4378669A67254DB7F474D1AB2B4D9ECC5495E3B08C48D567B5F14050C6
+2F8B944E4B731F51536B02F21086B86FC2659C02D3ED547B98CA2304C11BD36B
+FDD6C35DE22D170325DA4BFB6CCB3B63547FDE43CD1D5AE793B26B8CD33F2907
+89157191C87B32C1E5B237AFA318879BCBCD947F77CD6C1F6505629E62517122
+E0DA55BC86E5C4D209CBD2C97702278B27C2C1151FF3304353099B011775710E
+00FE5D48DC419EF2935AFA9DFA97868EAC641CD73AC6BB54AB56CABAB81ED230
+11657272605E5D99583B7E8E874D6E2F5B6BBBC1F1D5E55454E78BD5588A0D5C
+D79722F447A59F3B1651683049A9987EF89E7F390D2C494EDF86FBEF9DBDEAAC
+38F61B1041171D641AE1AE4771646F47DC586CBC70C42D51371EF582C2490F90
+ADD21B0FAEE9267C8D8E74EA4CC1C854E1DC4DF35C0DC6F5130390437CB69FC8
+948585430B891DF0BCFFA849648295698C015ED98F5040364E708FC7F86EDDF2
+27B2327176AB5AD19FA63EBFBFB08BBA95854B59F7F35BE06A3403FD67A89F07
+A3718C03422B40BB926AC1431B21860C492C42E3FD6F3C8E584B10D70E27E1D7
+10BA9A5A555A607D19BE055B537598A8DF86E3A5CFCB86FAC2B221060F0A370F
+3223814F7B3384F06820F013CB9926DD6BB3D94F45164E5DDC3180A142A3F550
+37B850A63A4D4CC373A8F09A71B4B9DFFA5108283B4124E9D66E98EA7D650CF7
+407787BB9BD7FF6C7219153768882F4111C8C76CC56AAFAD4305DACA2D5CB2F8
+8185045767496AFB1371F7F1EA12F5A365EE5490815A71C5D4D5C752F31E245B
+C9269B6DFF038D46B7B769DCEB90E805AE45CFF35F3760057E2D54D57DA91275
+0C7FD9ACC20ED075E1A5A50659903A93C4E3AD3190A6E211467F5B2FBCE15937
+7A42B1A892650F6619F6D6424B11474F7CB5A2EC22B417DAE3C7DC7FFA26DD0B
+15677CEA8321967441A6438C481003FC8D29052CE1B00CE03DBD5E52C9723C49
+5BC0E03F213BCF3F3E33237BE1B3D56585A121454B7D0437E0F4ACE17C9F69BD
+4645D743A421F2A069D63C587B8CBC90429DB152E06047405EE712A5334E3F5D
+080E484D4A7040E3208455175B384E9FC7DE73C5F0F7AAEDAEA8A7432FB0B7DF
+7C162B7D12179396F2DC793D7081D9C964B9B31EC3D358F22B0D903FFC1B58D0
+F98D4F90352DF4E4D7465A7E58664DBF0491C1BD867A5A333DF9AFA3EB0D22DC
+30C423C9D4C277C40E4112F9CB146CDF283825A8FB2AAD6A48F0C2CE06F4713E
+EA93F6CBAD172C4B8A17FB67AECC1812F265D7C36526E0F6AC4074065B71F1F6
+CDD232EBB2772938453D2DE63F0790A2EA230DD8AB61BADA666F982115A37A19
+F8B1CFD0181E531B6E470785D2254FB4FA046D0B3061208EAD8C945E4BFC70D1
+B11E06790A0B33BF00A484611BA79D1A5979A6511F061572449A790B06940D3B
+2A4C618DF49A71C53816A5DB6FBC040CD5B767AD4BC4703EE02170E28AA9A4C9
+79479A28B8A237A3BDA81BBDE3738945A5C3574B2DA0A50E3254CF85995C7281
+EEF0B945A309F2983AC6A437E984068721B4DF29C5B9CB43B8C4417CA63B4133
+F817EB754BA22355126985C89182ADF9FAADFE19B0C94E549E36FF8331AC636E
+FD6883AFCCEDCBEB53E746ADB1DBAA4B4A2E8487E974D9F7DAED1C2732B158B7
+6F0B215BAF8ACC689119DADDDB4C61B83E99EF553BF950ADEC8C05A546C0F444
+529EDDA1D41302EEC8FAA0385B036142278C08C2BF6EC9006F3DCB3E82B43DCC
+04045A62F28F07DB47320877C9AEE2772420BA5B2592DC7D03CBCB088000E281
+A586CE33100EB0A2ED814B72DF729AA83AB03AB7A8A51EB8BA0A32A81320939A
+583353DBC1301A20ABE5E514B0A1304BC1C76F0D0F88055FCB6F06903C1EC7C6
+0478137638323A7383A1485D93DF57AD8430B26EBC88D88840C0861990AE4A70
+9B9269B8522E9E1BA4359149F7CC020760DEE07D6EE5093333A59CCA677A7525
+F88FAD0CEB38B156D5D3506115DC4A542AB8E92CFA37BE70C4CCE5B06CD0EC18
+4AA13CCD3C50077D47D930FCCF90578F1B62558DE29FEF9B06272405F8D1BEBA
+38A8FA33B9329016B9ED88F61C08F8ECC9987D42F826C220E3FB608D3826D398
+897C234E374CA4363429ADFD9DCF942B7A1F02337CD6993D9105F169B5956F49
+AB989A8A7DCD426BEECC71E74903B48F4CF3A6100064F8CCD5780E5D370D4FCB
+435342882FBB0B4423215FE4345BB44C1CE9A9A9DC35C9D16BEB61B03C54F113
+2F2B4C6E9F4854D62E48617679D641ED0BD66E38163F98BB7B28ECAF05640B15
+1925D2106633A911BC6763816947CBE81F85A9472DDB8FCA288E737DA300F1D2
+B0EABB6F0DEEE4EBB6DA376FE4558B6428082C141B0B174C120F6A52EE169C67
+847D02EA14886B29F4B3772C5F24ADE55603B35278C20AA7977B0759D3E104FB
+899D55528D667C5283153F9C21898F451A8A63A2F1DB7C3861CAF5B217AB9FBD
+35BA3E6C4AC1EDDC762D844E6152898B18F2296739C0113744AD3C15F53CA7BA
+626522621CC9DDBA3C007E6D9AD47AA66D43E58AABF49407CEC8FE7CC1CD5C0C
+3C27C05FE30B1B2EA953034F8F9648141EB74FEA5386403A2AC1A8BC88FEEFF8
+A5545A3C759C74D045B27CD7D252C3CC598C7B45DC545DFC10D527F5613F854F
+1493D1CEA933A061289503CFC0F880DB0885F7560E8097CCA0D1A2133D0D8507
+12211EA0C337243BFAF56EF5B11BCD87B40CE67CB20C401A92A79674B2FC89EA
+DF6B2C1D20280B72963A353DECE913BB8DFFA95378E12E5C5E2757D3A5B91E4C
+A225CDBB3A49BFC50A7A16BCCB69DE4A08A69B391B558824D497A0C2A0FB70A7
+7620863BD95009332C9B77936C6F0C045CFA18D9C9A0E4F6648341CC7C697B45
+33FED97CC6AC3B36229338CDD283F5AA99BC979C5779722DF5FFCAC1B9354AF2
+807D1903623E970BE7061D741AA179873BADD718F58B1BBE445C6933EAE6BDC5
+091A31D18D138B14AE1580F519D77D44DA01E14FEFE338C2DDDC64FC88E2E18D
+56E144D02CAC2DF0069BF819EAD6DA5236A3C27B57950E824D91DB5B89DD8EB5
+4248F626221FA216D96E0DE974FBA87BD348931E3AD30CB309496AD789EAA356
+0D07BA01D3CF30AB26AD497AC963AE9DB3C7AB732D90C31ABBC8E9DE85A7846F
+D5F6A0A096BB08D75299BA6EF018A47BF3C5F1FED5F2EB66A79AC5EFE9C00972
+477078E36AA5EA2F9616434783C88DF8F98BEC1A6ACFA6CC96E7308C644FD51A
+A4AC4D7CA1B29D72AA352336ABC3E8BD27E4E867DD0212DBFE354731BB67F046
+3539BE845DEC0DA0F6652BAF4E6FA35B0C454E1581F0B30A025F38BD04A7FE23
+6336B91D8118C7C47FBB9ED7B6DD6B16136FCFBF17FDE88171AF269F5D0AE418
+E14E5A23F8E48A37AAF7FD9EA0D4D078A0DFD6565FA1A1E7A1CDDA300DD8973D
+B415F60770EC57754BAFF4027246DA79874B1169FCE00FB24F71361A27AD545C
+427EF820102AD9870C0C3641810E877C0C0BB9E0F0C2580710C5F7656DE973EF
+50C615CAAF50321D38BFC68ACFC16F59CDFEC3D4B0F3E038570C2F6224E5C632
+76026C9515D55829F96C60F82E9B68A62A837B5CBBE1A94A7FD9905ED301886B
+FA181206B94234C23C4E273FE385BAD21971CD0FD4FF7014F4EAEB6DF7828EA0
+E3BA905C02706BA362557574BCA0C6D585F848FBBDD497A0F8AC081C2942229F
+5056B94BA5A0674D005EEF268E5DE1223B0E9FBBF527AF5C3F54B12495EEAD68
+4EA2B229D8A3A47384B26DD82A39D91812BA842A8036903CA5C2384BD8FB675B
+7CDA665C4CEE9CA92156E83AB4119D149264177835F4AEC99093D8D664AF7295
+2D4A0D507012DBBC669111DF5785A9585A982ED04A83C228C9DF9100886F23E8
+D8AF0BFC68AD29A69606B7D0E076109CA2484DB6CA994B2DC836F8AB14E98128
+4758E793A4FCFF8A1EADF464D7F34BB020561E0418B1CAD455DF9708DA74C07B
+CE20F453F5F841EE842FF5F445AE7BA8BB584666A96CB0A9D6F551DB5C12DCC4
+DB238CE5FF30D56213F02B3ECC4F24F9821D985D3F3197228A6E135C78DC9390
+99DE7AF1FC0155904AE8C3462DBB50A607D20E285D9213474A58CD0638EBB163
+07154A8B7673C6C8F3283CB90B286ED5CB3D97B94F9B1F27C994AFA560FC95FB
+EF9949B6613440C3012ACFB33F9A2843EA51855A4284119DC23B75EA8C6F5A50
+4D0496A1655C2AC723AE932FA32BDC5A4A9616AFDD123272D75819914277C2F6
+B14221D1C9B670CEB80B2B29D2E255BF85510E139BEEDD7ACFF684B8DD8BF976
+23B64BBBB3998D5864BD81BB933747869D30F1570B408C2B4CF04C19F09969DB
+416FFCD3D535579FE7E78F492A4AE6932450FC9E2229755D7BB64BDB5BF6E15F
+CE4D4F963E9F28ADD5CBED57ABFE0941A67BC2C66E714B15B6326CE79DB79AB8
+F80D0FC14FD08598914407CB1FDD8CBDE4242F09D5D75FF8BF17E1351319D5C1
+86E6850DA777660F10E30B726172D2D01A23886598BA5F34D15E58928AECBE04
+F2EA75AAB3FB34BCECB16F47A56FD76FB5962CD59E70E07C6CB4A0AB006AFBCD
+CF2CC746513BBF4D72C1C7B3AE7DC960C3CC7B0BB10DADB38EB9B0D8BC2E47B8
+8EFF019B9D1E9555EBBF6A9A227E9D83C1BED76D5FB4358685D52CF86B776364
+7FF288A74CC34EE2B45679C65B3703E8EDCE6859ABB3EDDD75FA58CD50D2E36D
+94D79EF2478A683D7C3A9B1B573315BBA53062E89C0AED2A2C362BD01C160815
+DEF7B70E1DA9A8843503D29D086A34280B05D143B91F3F42E4239A6A705A9BD1
+89B8BCB71D1C7B40CA74A2498C16903DADA0C0FEFDE95C31846DA6AF706B4439
+29B907402D67F10046FC41A7388AB649D1920A9882A9D16803752E5896468F09
+46FF1A92FDADC9B85901CBEF84BB4DD57A117C20FF3F99C8BD08C02D04DE8FE0
+F5ABAE5604439589A60C835F73A447E977ED17DF3C369AD0A007946DF293014B
+2ED0D773C5D49951CE1C3D2B635A902236F66FFE71A0345DBEEC764C81E0BDA6
+8A20AA73CC7A59A569A594F42B9E7D2C3789FB6178BED3BCB096CF53FAC46878
+631EBE1E4345A674525041F53B6A590BA9B942A44411BC5601B90848C8999D36
+998375DB4047F175556568275F708343A0E161B0820AD896E0D078CC2932EAEC
+17786BA3C2699166C22F6DE7BF724D342142C1F9D99A50ECDCA814312BD23C7C
+86E40BB0BCB8C76D2D4491F4FCAF1D1F4AF9CEDF0585477A3B9DEC30582A90D9
+F57CB837B45897E4ECF527AF5C3F4FA9AD275DC32119678BCBEF96DFFF0B4D01
+EA884354F3DD22A36ADB17BDE2819B94FC8E17EAC7EA4061DB59D15A6D59F712
+5E1C9CAFE7E709B83E17F8E8218539FA127F0EDE8FE1969D6E567B59B28A1D62
+8B2282B28AE22977F1AB7D88CAE33EB7AA7561B22367906E584802055DB6BF21
+B1DFE924099B3D52FA2835D1963E3DAF5E62E746E23772D185A526073FD4F475
+B28B0EE5AAB8974CB787A70E43B29A2B0211AB66D9290D07C5AF52312AB5772C
+D743341FED85158A6FCC528012A33DA81F6949543B3BF132F7E0E529F9E48E5D
+8F8418EC3596D3B015D1E303D67EF51233848A879D14B00CE5F39A73C3CBA8A8
+68AF840CB8A3119DE581F28DB2E2DB2174F7A9F7D9CD12FC48751C24F593EFBB
+8557B122429126187A7E7864659E77D66BAEAA620B2E29B489C65FADF338BF8F
+AD44D4DDD0D9AAB54BA37C7C9B2096895F064E8F6A9740C1B134E51254F4806A
+1064C36786C7244EF73014C998754262F1EAFF9C1470970728955717195B5CFA
+25012787DB91B73730DA4D725D87007F56220D7B2B6D9D9D9A77BC2B456D330D
+C55B8E64FFF783119D5C255C405FCC95AB06412E0AB979A3C85D0D3873A1079A
+E6C6B99527FF3A91B87225F54370D3FBBF251B8E3739B6B4F12DD837E16CE971
+2702AFA3F0A8FC02833AB2718E3371866DCF52319A2C3D7736BDD0AE51AD18FE
+FE23C3B6C50A4B7F63634A85F43D144940E2832336342517C02FAA8A90C6BE73
+590FECED7D90A2C44FD7C927F4B6B89B0FEFB69C0498AD7F1D2E4F18F744A022
+FDCC06CF9DB601862C198AFA714EBE872B6052B03C1DAFF8059E7A4EF6F6EA62
+145776B7C7D658BD19F1D622F6ABFBA17B513320359C406D72213041DD6977DF
+FC5070861A7FF500AC542988867A77BF5BB27878070A2BBCB3557DAB70C02D0E
+1BECC109AC7DA253A39D5C8A8D12EC87672A7BCB3BC98606987CC8173848498A
+028C3858F0C6C8691E1C4A5149EF06BA736F650258251D4A2D7D4D16A23B5510
+DD56A5E8AB791520903EE726B187861BA132C4D8349E408217246BB47122ED5D
+46780B673C257141A25B47CB339309BE94041F6B56DA9DF0A6FAFC10DC06ED2F
+718DE8F28FF78CE03C1D8C68AAE3108214231F3B441446D6CEB7982926337261
+6F1737D472EB286C723991CF987052870677D0982AC537B376EC41701837937C
+88033BDB57DECD574E3D8B17AA976B88B9B2A3881B03FBE0024E55D5AD5C3C47
+6D030D52B1CF1BF627A596F6710318CE3ED7595866011BDEF2F710EC765BBE0B
+7D5E01E165B6A955C17B04FED6BC86B1C11A398593D014F074410B62426FA173
+AF0BAA2FC23DD26E9E84BEEF436AA34D997114D89F0C8C7A3C289E0DF2EA98B0
+385224AF40C7AE78DDD94CB20D917C604B92481152E35037928206CB9EB42538
+911A89D87FFA90DFE72A1FDA92872F8EA421A4D83CC9253997BEECBBE525A72D
+CB27F1B3F7DE119636134BF64A601415AB619809850FB7184C3CF7451CBE39E9
+46A670F7B990097C2A09770CA8CD399F0BBAD421FD9304DE77AB73B7FC19419F
+B85C18D9BAB7FA7A2E1F1FAFA73F3CEA342BB9EEBAF98BDA358807467BBA0203
+203EF1DEFD0C5FC038D6C253F4B8B92D0F864D0D42769EF92B9A9CE552541D4B
+4C46084D515AF9925FB5AECB6934FF423CE63F83AC71060B643073F5A068CAF0
+0DF131257B2E337B75D2D5CA43807FDD56BD33A0D45903BFADF861355D3989BE
+2E711D326228FFDEAAC68210C87F7C1D74CA95D1C3DC9928103636A13250055D
+228ADBB7E09A3E397010F89813F5F6137C5E4162C3847EDE28EAD469410CF899
+4B083AE4A194D7F52C8FF0991022EEEB0BF6594DE137928942128D0314CD823D
+193AB3948615CE7D29447B8ABD606F11CEF859269236B3005A3CA98E39898A20
+416CCC15024AAF5A916E35B1480E7B9CCCF840EC173DFFB520593ABB3B9D6C8F
+78CD1B019780E71AF881E74357A95C35EA68550FDB3CE66024214966E3A920A5
+21B42EBC0C706DA494C6E41B82CA2280CAF039660D854D2121F7060E4498EF7D
+97E33BE5D5451F0E53693767BA82B7469A32ED0097590BD3774817EC79D60157
+69FDFC43B9EAC4648251C09D32FB09F31D3030CB421B69AE84AE6C5CF2009894
+60012206B35B14773FE31533791749727ABABA3A19121B9D6AE2EBE4AB621524
+92A2F9C9B7C94A106160845E82BBB4679F55BC2689B98D36396BC31EE13ADCD9
+FD858A122F93FDF5724FA30200C676156140D50CAC54D57C818FABB047F8AE81
+3FF5B727E1A7AA60FA011BDD079C938A7DE34D7D0A4EC35B528657017D61AC43
+78C428F1DD03D3C36823A3032313FA7D51277CC6658BE77FCD27BDC7994B9D27
+6071E2655B45953FCF16091DED174629187B6EEF1CD30D69A5295752832068AD
+2982B9AB5653370AC08ED9482816C8E0319774AF0308BFA44CC9DE9D957F6B11
+C41D960DADA670C7E8D3AC491D10EE03AE8DA6B42C083D0ED782EA592AB5903A
+66AA00F6E0781FBD45EAA238148E801E3AB0CE9F9D398EDA04B3917A87BB33BE
+F59C71D1205F0CB5E9B696C7548FD97D00A177867513183FC804F50E206D8109
+1435EDC047DC8442BE50FBD0C3CDCD04DA90117C95FB7B4E9C90D7447D38A1ED
+C21C9CAD4DB1C388DACEED1E8A64D8AF5E2CF4A4384D77902004B2B5010FA06B
+3DB96C3A13A297D3A94D815640B0F244F4EBF7D126020ACB9C70B144F0327892
+2964653DC0081758302D4F41F2123DA161540BDB2C13A9F234A880A3501502EE
+D97E285F8E3330AF0B0EC714F0ABE868CA01F6B8FCA28F48820701FD992E704D
+A4BA9E695F87EB718FE96FB917CA8535B2671BB686F9AE785CD702ED2FE16E21
+16B4BE2315703FDEC0C90E263E5C0D808B6ADE7B3ACFBD7660BED8E34CA404B3
+B6BD735D54C5849C2989DA465A1596A7AC969B36C7C853760E3378E30C390A26
+70CDF3BF6664470DFF660F8167C4BA6E43F3E62CE87575CDE5444067973FB777
+93831D8FAE927894EE42972D6E
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
@@ -5182,23 +5197,24 @@
 rf /Fp 131[78 39 1[37 35 51 35 41 25 31 32 1[39 39 43
 63 20 35 1[24 39 35 24 35 39 35 35 39 7[57 57 77 1[57
 55 43 56 1[52 59 57 69 48 59 40 30 57 59 50 52 58 55
-54 57 6[24 39 39 1[39 39 2[39 39 39 1[24 27 24 2[31 31
-24 26[43 12[{ TeX74afc74cEncoding ReEncodeFont }63 74.7198
-/CMTI9 rf /Fq 133[39 6[39 3[40 50 1[25 43 1[29 3[39 1[36
-10[69 5[63 66 53 63 3[71 1[36 69 2[61 69 59 63 6[23 23
-58[{ TeXaae443f0Encoding ReEncodeFont }23 83.022 /CMMI10
-rf /Fr 134[50 1[69 50 53 37 38 39 1[53 48 53 80 27 50
-29 27 53 48 29 44 53 42 53 46 12[66 53 2[65 72 75 91
-1[75 2[75 75 60 63 73 2[72 9[48 48 48 48 48 48 48 2[27
-32 30[80 1[53 12[{ TeXf7b6d320Encoding ReEncodeFont }47
-83.022 /CMBX10 rf /Fs 135[44 3[44 1[44 2[44 2[44 2[44
+54 57 6[24 39 39 39 39 39 2[39 39 39 1[24 27 24 2[31
+31 24 26[43 12[{ TeX74afc74cEncoding ReEncodeFont }64
+74.7198 /CMTI9 rf /Fq 134[50 1[69 50 53 37 38 39 1[53
+48 53 80 27 50 29 27 53 48 29 44 53 42 53 46 12[66 53
+2[65 72 75 91 1[75 2[75 75 60 63 73 2[72 9[48 48 48 48
+48 48 48 2[27 32 30[80 1[53 12[{ TeXf7b6d320Encoding ReEncodeFont }47
+83.022 /CMBX10 rf /Fr 135[44 3[44 1[44 2[44 2[44 2[44
 3[44 1[44 44 44 18[44 9[44 2[44 65[{ TeX09fbbfacEncoding ReEncodeFont }
-13 83.022 /CMTT10 rf /Ft 133[34 40 1[55 38 45 28 34 35
-38 42 42 47 68 21 38 1[25 42 38 25 38 42 38 38 42 13[47
-61 6[64 1[32 4[63 1[58 20[30 45[{ TeX74afc74cEncoding ReEncodeFont }31
-83.022 /CMTI10 rf /Fu 135[59 2[62 44 44 46 2[56 62 1[31
-59 1[31 1[56 34 51 62 50 1[54 9[116 3[62 84 8[42 3[74
-86 81 12[56 56 56 56 56 56 49[{ TeXf7b6d320Encoding ReEncodeFont }29
+13 83.022 /CMTT10 rf /Fs 133[39 6[39 3[40 50 1[25 43
+1[29 3[39 1[36 10[69 5[63 66 53 63 3[71 1[36 69 2[61
+69 59 63 6[23 23 58[{ TeXaae443f0Encoding ReEncodeFont }23
+83.022 /CMMI10 rf /Ft 133[34 40 1[55 38 45 28 34 35 38
+42 42 47 68 21 38 1[25 42 38 25 38 42 38 38 42 13[47
+61 6[64 1[32 4[63 1[58 20[30 32[47 12[{
+ TeX74afc74cEncoding ReEncodeFont }32 83.022 /CMTI10
+rf /Fu 135[59 2[62 44 44 46 2[56 62 1[31 59 1[31 1[56
+34 51 62 50 1[54 9[116 3[62 84 8[42 3[74 86 81 12[56
+56 56 56 56 56 49[{ TeXf7b6d320Encoding ReEncodeFont }29
 99.6264 /CMBX12 rf /Fv 139[34 35 36 14[39 49 43 31[67
 6[25 11[25 46[{ TeXf7b6d320Encoding ReEncodeFont }9 74.7198
 /CMBX9 rf /Fw 133[39 2[39 39 39 39 39 39 1[39 39 39 39
@@ -5306,8 +5322,8 @@
 (e\016cien)n(t)f(dissemination)i(of)g(encrypted)d(data)i(as)h(w)n(ell)
 759 2428 y(as)f(encrypted)e(queries)h(o)n(v)n(er)g(this)g(data.)g(In)n
 (termediaries)h(can)f(v)n(erify)g(that)g(an)759 2520
-y(encrypted)e(resp)r(onse)i(matc)n(hes)f(an)g(encrypted)e(reply)i
-(without)g(b)r(eing)g(able)g(to)759 2611 y(decrypt)24
+y(encrypted)c(resp)r(onse)h(matc)n(hes)g(an)g(encrypted)f(query)f
+(without)i(b)r(eing)g(able)g(to)759 2611 y(decrypt)24
 b(either.)h(F)-6 b(urthermore,)24 b(ECRS)h(allo)n(ws)h(users)f(to)g
 (share)g(\014les)g(encrypted)759 2702 y(under)i(descriptiv)n(e)g(k)n
 (eys)g(whic)n(h)g(are)h(the)f(basis)i(for)f(querying)f(the)g(net)n(w)n
@@ -5378,123 +5394,151 @@
 FA(for)d(the)h(p)r(eers)f(storing)g(and)g(transmitting)g(the)h
 (information.)f(These)523 648 y(p)r(eers)37 b(m)n(ust)g(b)r(e)h(able)f
 (to)g(claim)g(that)g(decrypting)g(the)g(information)g(is)g(infeasible)g
-Ft(for)523 747 y(them)p FA(.)648 865 y(W)-7 b(e)23 b(\014nd)g(it)f
+Ft(for)523 747 y(them)p FA(.)648 911 y(W)-7 b(e)23 b(\014nd)g(it)f
 (acceptable)g(if)h(a)g(censor)e(who)h(precisely)g(kno)n(ws)f(whic)n(h)i
-(con)n(ten)n(t)f(to)g(censor)523 965 y(is)28 b(able)f(to)g(matc)n(h)h
+(con)n(ten)n(t)f(to)g(censor)523 1010 y(is)28 b(able)f(to)g(matc)n(h)h
 (a)f(request)g(or)f(resp)r(onse)h(against)f(that)i(particular)f(con)n
-(ten)n(t.)g(ECRS)g(is)523 1065 y(supp)r(osed)33 b(to)f(protect)h(in)n
+(ten)n(t.)g(ECRS)g(is)523 1110 y(supp)r(osed)33 b(to)f(protect)h(in)n
 (termediaries)e(that)i(merely)f(transmit)h(information)f(and)h(that)523
-1164 y(need)i(to)g(b)r(e)h(able)e(to)h(sho)n(w)g(that)g(they)g(w)n(ere)
+1210 y(need)i(to)g(b)r(e)h(able)e(to)h(sho)n(w)g(that)g(they)g(w)n(ere)
 f(unable)h(to)g(recognize)f(ob)5 b(jectionable)34 b(in-)523
-1264 y(formation)g(for)g(their)h(o)n(wn)f(protection.)g(The)h(ultimate)
-g(senders)f(and)h(receiv)n(ers)e(of)i(the)523 1363 y(data)i(should)g(b)
+1309 y(formation)g(for)g(their)h(o)n(wn)f(protection.)g(The)h(ultimate)
+g(senders)f(and)h(receiv)n(ers)e(of)i(the)523 1409 y(data)i(should)g(b)
 r(e)h(protected)f(b)n(y)g(other)f(means,)h(suc)n(h)g(as)g(anon)n(ymous)
-f(routing)g([)p 0 1 0 TeXcolorrgb 3211 1363 a
+f(routing)g([)p 0 1 0 TeXcolorrgb 3211 1409 a
 SDict begin H.S end
- 3211 1363
-a 0 1 0 TeXcolorrgb FA(8)p 0 1 0 TeXcolorrgb 3253 1310
+ 3211 1409
+a 0 1 0 TeXcolorrgb FA(8)p 0 1 0 TeXcolorrgb 3253 1355
 a
 SDict begin H.R end
- 3253 1310 a 3253 1363 a
+ 3253 1355 a 3253 1409 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.dingledine02mixminion) cvn H.B /ANN pdfmark end
- 3253 1363 a Black FA(,)p 0 1 0
-TeXcolorrgb 3276 1363 a
+ 3253 1409 a Black FA(,)p 0 1 0
+TeXcolorrgb 3276 1409 a
 SDict begin H.S end
- 3276 1363 a 0 1 0 TeXcolorrgb
-FA(27)p 0 1 0 TeXcolorrgb 3359 1310 a
+ 3276 1409 a 0 1 0 TeXcolorrgb
+FA(30)p 0 1 0 TeXcolorrgb 3359 1355 a
 SDict begin H.R end
- 3359 1310 a 3359
-1363 a
+ 3359 1355 a 3359
+1409 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.syverson97anonymous) cvn H.B /ANN pdfmark end
- 3359 1363 a Black FA(].)523 1463 y(As)c(a)g(con)n(ten)n(t)g
+ 3359 1409 a Black FA(].)523 1509 y(As)c(a)g(con)n(ten)n(t)g
 (enco)r(ding)g(mec)n(hanism,)g(ECRS)f(could)h(b)r(e)h(in)n(tegrated)e
-(in)n(to)h(almost)g(an)n(y)523 1563 y(generic)c(p)r(eer-to-p)r(eer)f
+(in)n(to)h(almost)g(an)n(y)523 1608 y(generic)c(p)r(eer-to-p)r(eer)f
 (infrastructure)g(to)i(enhance)f(its)h(resistance)e(to)h(censorship.)g
-(Sp)r(e-)523 1662 y(ci\014c)i(details)g(on)g(ho)n(w)g(p)r(eers)g(comm)n
+(Sp)r(e-)523 1708 y(ci\014c)i(details)g(on)g(ho)n(w)g(p)r(eers)g(comm)n
 (unicate)f(and)h(route)g(data)g(are)f(therefore)g(outside)h(of)523
-1762 y(the)e(scop)r(e)f(of)h(this)g(pap)r(er.)648 1880
-y(As)35 b(an)h(enco)r(ding)f(sc)n(heme,)g(ECRS)g(has)g(to)h(address)e
-(t)n(w)n(o)h(imp)r(ortan)n(t)g(issues.)g(First)523 1980
-y(of)c(all,)g(users)f(m)n(ust)i(b)r(e)f(able)g(to)g(\014nd)h(con)n(ten)
-n(t,)f(preferably)f(b)n(y)h(searc)n(hing)e(with)j(simple,)523
-2079 y(natural)e(language)e(k)n(eyw)n(ords.)g(Metadata)i(related)g(to)g
-(the)g(con)n(ten)n(ts)g(of)g(the)h(\014le)f(should)523
-2179 y(b)r(e)f(made)f(a)n(v)-5 b(ailable)27 b(as)h(part)g(of)g(the)h
-(searc)n(h)e(result)h(and)h(prior)e(to)h(the)h(do)n(wnload)e(of)i(the)
-523 2279 y(actual)d(\014le.)h(Secondly)-7 b(,)27 b(the)g(enco)r(ding)g
-(sc)n(heme)f(should)h(supp)r(ort)f(sw)n(arming,)g(that)h(is)g(the)523
-2378 y(do)n(wnload)f(of)i(a)f(\014le)g(from)h(m)n(ultiple)g(p)r(eers.)f
-(Since)h(it)f(is)h(p)r(ossible)f(that)h(iden)n(tical)f(data)g(is)523
-2478 y(inserted)e(b)n(y)g(man)n(y)f(indep)r(enden)n(t)i(parties)e(the)i
-(enco)r(ding)f(sc)n(heme)f(should)h(alw)n(a)n(ys)e(result)523
-2577 y(in)k(iden)n(tical)f(enco)r(dings)g(for)h(iden)n(tical)f(source)f
-(\014les.)i(This)g(w)n(a)n(y)e(the)i(duplication)g(caused)523
-2677 y(b)n(y)c(m)n(ultiple)g(insertions)f(of)g(the)i(same)e(con)n(ten)n
-(t)g(increases)f(fault-tolerance,)h(p)r(erformance)523
-2777 y(and)27 b(a)n(v)-5 b(ailabilit)n(y)e(.)648 2895
-y(Unfortunately)g(,)26 b(it)g(is)g(not)g(enough)g(to)g(just)g(meet)h
-(requiremen)n(ts)e(related)g(to)h(e\016cien)n(t)523 2994
-y(storage)c(and)h(retriev)-5 b(al)22 b(of)i(the)g(con)n(ten)n(t.)f(A)h
-(public)g(\014lesharing)e(net)n(w)n(ork)g(should)h(b)r(e)h(op)r(en)523
-3094 y(to)d(new)g(participan)n(ts)f(without)h(an)n(y)f(restrictiv)n(e)g
-(form)g(of)h(access)f(con)n(trol.)f(This)i(op)r(ens)g(the)523
-3194 y(net)n(w)n(ork)k(to)i(malicious)f(participan)n(ts.)f(Th)n(us,)i
-(the)g(enco)r(ding)f(sc)n(heme)g(should)h(guaran)n(tee)523
-3293 y(the)h Ft(inte)l(grity)g FA(of)f(the)h(con)n(ten)n(t)g(ev)n(en)f
-(in)h(the)g(presence)e(of)i(malicious)f(participan)n(ts.)648
-3411 y(The)k(enco)r(ding)g(mec)n(hanism)f(m)n(ust)i(ensure)e(that)i(in)
-n(v)-5 b(alid)31 b(replies)f(are)g(detected)i(and)523
-3511 y(that)37 b(p)r(eers)g(can)f(distinguish)h(v)-5
-b(aluable)37 b(con)n(ten)n(t)f(from)h(maliciously)f(generated)g(noise.)
-523 3611 y(This)c(is)g(particularly)e(imp)r(ortan)n(t)i(in)g(three)g
-(cases.)f(First,)h(if)g(large)f(\014les)h(are)f(assem)n(bled)523
-3710 y(using)c(blo)r(c)n(ks)f(from)h(m)n(ultiple)h(p)r(eers,)f(some)f
-(of)i(these)f(p)r(eers)g(ma)n(y)f(b)r(e)i(malicious)e(and)h(try)523
-3810 y(to)g(corrupt)f(the)i(\014le.)g(These)f(corruptions)e(should)i(b)
-r(e)h(detected)g(on)f(a)g(small)f(gran)n(ularit)n(y)523
-3910 y(and)j(repaired)f(with)h(correct)f(data)h(from)g(other)f(p)r
-(eers.)h(Second,)g(for)f(searc)n(hes)g(it)h(should)523
-4009 y(b)r(e)38 b(di\016cult)g(for)f(p)r(eers)g(to)h(spam)f(the)g
-(result)h(set.)f(Otherwise)g(the)h(users)e(ma)n(y)h(dro)n(wn)523
-4109 y(in)c(useless)f(information.)g(Finally)-7 b(,)32
-b(in)n(termediaries)g(and)g(that)h(are)f(merely)g(routing)g(the)523
-4208 y(con)n(ten)n(t)k(should)g(b)r(e)g(able)g(to)g(detect)g(in)n(v)-5
-b(alid)36 b(replies.)g(This)g(enables)g(lo)r(cal)f(economies)523
-4308 y(\(lik)n(e)29 b(in)h([)p 0 1 0 TeXcolorrgb 831
-4308 a
+1807 y(the)e(scop)r(e)f(of)h(this)g(pap)r(er.)648 1971
+y(The)37 b(de\014nition)h(of)f(censorship)f(resistance)g(used)i(in)f
+(this)h(w)n(ork)e(is)h(similar)f(to)i(the)523 2071 y(formal)f
+(de\014nition)h(giv)n(en)e(b)n(y)h([)p 0 1 0 TeXcolorrgb
+1547 2071 a
 SDict begin H.S end
- 831 4308 a 0 1 0 TeXcolorrgb FA(11)p 0 1 0 TeXcolorrgb
-914 4255 a
+ 1547 2071 a 0 1 0 TeXcolorrgb FA(24)p 0 1 0
+TeXcolorrgb 1630 2017 a
 SDict begin H.R end
- 914 4255 a 914 4308 a
+ 1630 2017 a 1630 2071 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
-(cite.ebe2003) cvn H.B /ANN pdfmark end
- 914 4308 a Black FA(]\))g(and)f(prev)n
-(en)n(ts)f(the)i(retransmission)d(and)i(replication)g(of)g(corrupted)f
-(data)523 4408 y(b)n(y)f(non-malicious)g(p)r(eers.)648
-4526 y(ECRS)g(uses)g(t)n(w)n(o)g(fundamen)n(tal)h(primitiv)n(es)g(in)g
-(the)g(o)n(v)n(erall)d(enco)r(ding)j(sc)n(heme.)f(The)523
-4625 y(ma)5 b(jorit)n(y)25 b(of)i(the)g(data)f(is)g(encrypted)h(with)g
-(a)f(v)-5 b(arian)n(t)26 b(of)g(F)-7 b(reenet's)27 b(CHK)f(enco)r(ding)
-g([)p 0 1 0 TeXcolorrgb 3317 4625 a
+(cite.perng2005csr) cvn H.B /ANN pdfmark end
+ 1630
+2071 a Black FA(].)h(There,)f(censorship)f(resistance)h(is)g(de\014ned)
+h(as)f(the)523 2170 y(inabilit)n(y)k(of)f(a)h(censor)e(to)i(restrict)f
+(a)h(targeted)e(do)r(cumen)n(t)i(while)g(allo)n(wing)f(at)g(least)523
+2270 y(one)29 b(other)h(do)r(cumen)n(t)g(to)f(b)r(e)i(retriev)n(ed.)d
+(In)i([)p 0 1 0 TeXcolorrgb 2001 2270 a
 SDict begin H.S end
- 3317 4625 a 0 1 0
-TeXcolorrgb FA(5)p 0 1 0 TeXcolorrgb 3359 4572 a
+ 2001 2270 a 0 1 0
+TeXcolorrgb FA(24)p 0 1 0 TeXcolorrgb 2084 2217 a
 SDict begin H.R end
- 3359
-4572 a 3359 4625 a
+ 2084
+2217 a 2084 2270 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
+(cite.perng2005csr) cvn H.B /ANN pdfmark end
+ 2084 2270 a Black FA(],)g(the)g(adv)n(ersary)d(is)j
+(gran)n(ted)f(extensiv)n(e)523 2370 y(capabilities.)j(In)g(particular,)
+e(the)j(adv)n(ersary)c(is)j(allo)n(w)n(ed)e(to)i(insp)r(ect)h(ev)n(ery)
+e(request)g(or)523 2469 y(resp)r(onse,)20 b(transcript)h(the)h(pro)r
+(cessing)d(steps)j(of)f(all)g(the)h(p)r(eers)f(and)g(then)h(decide)f
+(whether)523 2569 y(to)i(\014lter)g(\(drop\))g(a)g(giv)n(en)f(resp)r
+(onse.)g(Av)-5 b(ailabilit)n(y)23 b(of)g(the)h(service)e(and)h(anon)n
+(ymit)n(y)f(of)h(the)523 2669 y(participan)n(ts)g(are)f(sp)r
+(eci\014cally)h(decoupled)h(from)f(censorship)f(resistance.)h(F)-7
+b(or)23 b(ECRS,)g(an)523 2768 y(almost)28 b(iden)n(tical)g(adv)n
+(ersary)e(mo)r(del)i(is)h(selected)f({)g(while)h(anon)n(ymit)n(y)e(and)
+h(a)n(v)-5 b(ailabilit)n(y)523 2868 y(are)24 b(additional,)h(p)r
+(ossibly)g(imp)r(ortan)n(t)g(goals,)f(ECRS)h(is)g(supp)r(osed)g(to)h(b)
+r(e)f(an)g(orthogonal)523 2967 y(mec)n(hanism.)36 b(The)g(primary)f
+(di\013erence)i(in)f(the)h(adv)n(ersary)c(mo)r(del)k(for)e(ECRS)i(is)f
+(that)523 3067 y(the)d(attac)n(k)n(er)d(is)i(not)h(allo)n(w)n(ed)e(to)h
+(b)r(e)h(able)f(to)g(guess)f(the)i(exact)f(con)n(ten)n(t)g(that)g(is)g
+(to)h(b)r(e)523 3167 y(censored.)26 b(This)h(is)f(an)h(imp)r(ortan)n(t)
+f(restriction)g(in)h(practice)f(since)h(otherwise)f([)p
+0 1 0 TeXcolorrgb 3061 3167 a
+SDict begin H.S end
+ 3061 3167 a 0 1 0 TeXcolorrgb
+FA(24)p 0 1 0 TeXcolorrgb 3144 3113 a
+SDict begin H.R end
+ 3144 3113 a 3144
+3167 a
+SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
+(cite.perng2005csr) cvn H.B /ANN pdfmark end
+ 3144 3167 a Black FA(])h(sho)n(ws)523 3266 y(that)37
+b(censorship)f(resistance)g(requires)f(a)i(form)g(of)g(priv)-5
+b(ate)36 b(information)h(retriev)-5 b(al)36 b(for)523
+3366 y(whic)n(h)28 b(eac)n(h)g(op)r(eration)f(has)h(complexit)n(y)f
+Fs(O)r FA(\()p Fs(n)p FA(\))j(where)e Fs(n)g FA(is)g(the)h(size)f(of)g
+(the)g(datastore.)523 3466 y(In)36 b(return)f(for)g(restricting)f(the)i
+(guessing)f(capabilities)g(of)g(the)h(adv)n(ersary)-7
+b(,)33 b(ECRS)i(can)523 3565 y(ac)n(hiev)n(e)28 b Fs(O)r
+FA(\(1\))i(complexit)n(y)f(for)g(its)h(op)r(erations.)e(Considering)g
+(that)i(a)n(v)-5 b(ailabilit)n(y)28 b(is)h(also)523 3665
+y(an)e(imp)r(ortan)n(t)h(goal,)e(w)n(e)h(b)r(eliev)n(e)h(that)g(this)f
+(is)h(go)r(o)r(d)f(trade-o\013.)648 3828 y(As)35 b(an)h(enco)r(ding)f
+(sc)n(heme,)g(ECRS)g(has)g(to)h(address)e(t)n(w)n(o)h(imp)r(ortan)n(t)g
+(issues.)g(First)523 3928 y(of)c(all,)g(users)f(m)n(ust)i(b)r(e)f(able)
+g(to)g(\014nd)h(con)n(ten)n(t,)f(preferably)f(b)n(y)h(searc)n(hing)e
+(with)j(simple,)523 4028 y(natural)e(language)e(k)n(eyw)n(ords.)g
+(Metadata)i(related)g(to)g(the)g(con)n(ten)n(ts)g(of)g(the)h(\014le)f
+(should)523 4127 y(b)r(e)39 b(made)g(a)n(v)-5 b(ailable)37
+b(as)h(part)g(of)h(the)g(searc)n(h)e(result)i(and)f(prior)g(to)h(the)g
+(do)n(wnload)e(of)523 4227 y(the)c(actual)g(\014le.)g(Metadata)f(can)h
+(include)g(an)n(ything)f(from)h(user-pro)n(vided)e(con)n(ten)n(t)h(de-)
+523 4327 y(scriptions)i(to)g(th)n(um)n(bnails)g(\(for)g(images\))g(and)
+g(automatically)f(detected)i(mime-t)n(yp)r(es.)523 4426
+y(Secondly)-7 b(,)30 b(the)h(enco)r(ding)f(sc)n(heme)f(should)h(supp)r
+(ort)g(sw)n(arming,)f(that)i(is)f(the)g(do)n(wnload)523
+4526 y(of)i(a)f(\014le)g(from)h(m)n(ultiple)g(p)r(eers.)f(Since)h(it)g
+(is)f(p)r(ossible)g(that)h(iden)n(tical)g(data)f(is)g(inserted)523
+4625 y(b)n(y)26 b(man)n(y)g(indep)r(enden)n(t)h(parties)e(the)i(enco)r
+(ding)f(sc)n(heme)f(should)h(alw)n(a)n(ys)f(result)h(in)g(iden-)523
+4725 y(tical)38 b(enco)r(dings)f(for)h(iden)n(tical)g(source)f
+(\014les.)h(This)g(sp)r(ecial)g(form)f(of)h(encryption)g(w)n(as)523
+4825 y(probably)23 b(\014rst)g(describ)r(ed)h(in)g([)p
+0 1 0 TeXcolorrgb 1515 4825 a
+SDict begin H.S end
+ 1515 4825 a 0 1 0 TeXcolorrgb
+FA(5)p 0 1 0 TeXcolorrgb 1556 4771 a
+SDict begin H.R end
+ 1556 4771 a 1556
+4825 a
+SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.clark99distributed) cvn H.B /ANN pdfmark end
- 3359 4625 a Black FA(].)523 4725 y(CHK)21
-b(stands)f(for)h(Con)n(ten)n(t)f(Hash)h(Key;)f(in)h(other)g(w)n(ords,)e
-(the)j(con)n(ten)n(t)e(is)h(encrypted)f(with)523 4825
-y(a)26 b(k)n(ey)f(that)i(is)f(deriv)n(ed)f(from)h(a)f(cryptographic)g
-(hash)g(of)h(the)h(plain)n(text.)f(The)g(encrypted)523
-4924 y(con)n(ten)n(t)d(is)g(hashed)f(again)g(to)h(obtain)g(the)g(query)
-g(whic)n(h)g(is)g(used)g(to)f(request)h(the)g(con)n(ten)n(t.)p
-Black Black eop end
+ 1556 4825 a Black FA(])g(and)g(later)f(termed)g
+Ft(c)l(onver)l(gent)j(encryption)f FA([)p 0 1 0 TeXcolorrgb
+3065 4825 a
+SDict begin H.S end
+ 3065 4825 a 0 1 0 TeXcolorrgb FA(10)p 0 1 0
+TeXcolorrgb 3148 4771 a
+SDict begin H.R end
+ 3148 4771 a 3148 4825 a
+SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
+(cite.farsite) cvn H.B /ANN pdfmark end
+ 3148
+4825 a Black FA(].)f(With)523 4924 y(con)n(v)n(ergen)n(t)i(encryption,)
+h(the)i(existence)e(of)h(m)n(ultiple)h(copies)e(of)h(the)g(same)g(con)n
+(ten)n(t)f(can)p Black Black eop end
 %%Page: 3 3
 TeXDict begin 3 2 bop 0 0 a
 SDict begin /product where{pop product(Distiller)search{pop pop pop
@@ -5512,548 +5556,674 @@
 end
  523 232 a Black 1036 w Fx(An)25
 b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)238
-b(3)p Black 523 448 a FA(This)38 b(k)n(ey-query)e(pair)h(is)h(what)g
+b(3)p Black 523 448 a FA(b)r(e)25 b(detected;)h(this)f(kno)n(wledge)f
+(can)h(then)g(b)r(e)h(used)f(to)f(increase)g(fault-tolerance,)g(p)r
+(erfor-)523 548 y(mance)j(and)h(a)n(v)-5 b(ailabilit)n(y)e(.)648
+671 y(Unfortunately)g(,)26 b(it)g(is)g(not)g(enough)g(to)g(just)g(meet)
+h(requiremen)n(ts)e(related)g(to)h(e\016cien)n(t)523
+770 y(storage)c(and)h(retriev)-5 b(al)22 b(of)i(the)g(con)n(ten)n(t.)f
+(A)h(public)g(\014lesharing)e(net)n(w)n(ork)g(should)h(b)r(e)h(op)r(en)
+523 870 y(to)d(new)g(participan)n(ts)f(without)h(an)n(y)f(restrictiv)n
+(e)g(form)g(of)h(access)f(con)n(trol.)f(This)i(op)r(ens)g(the)523
+970 y(net)n(w)n(ork)k(to)i(malicious)f(participan)n(ts.)f(Th)n(us,)i
+(the)g(enco)r(ding)f(sc)n(heme)g(should)h(guaran)n(tee)523
+1069 y(the)k Ft(inte)l(grity)f FA(of)g(the)h(con)n(ten)n(t)f(ev)n(en)f
+(in)i(the)g(presence)e(of)h(malicious)g(participan)n(ts.)f(The)523
+1169 y(enco)r(ding)21 b(mec)n(hanism)h(m)n(ust)g(ensure)f(that)h(in)n
+(v)-5 b(alid)22 b(replies)f(are)f(detected)j(and)e(that)h(p)r(eers)523
+1268 y(can)30 b(distinguish)h(v)-5 b(aluable)30 b(con)n(ten)n(t)g(from)
+h(maliciously)e(generated)h(noise.)g(This)h(is)f(par-)523
+1368 y(ticularly)25 b(imp)r(ortan)n(t)g(in)h(three)g(cases.)e(First,)i
+(if)g(large)e(\014les)i(are)f(assem)n(bled)f(using)i(blo)r(c)n(ks)523
+1468 y(from)c(m)n(ultiple)h(p)r(eers,)e(some)h(of)g(these)g(p)r(eers)g
+(ma)n(y)g(b)r(e)g(malicious)f(and)h(try)g(to)g(corrupt)g(the)523
+1567 y(\014le.)33 b(These)e(corruptions)g(should)h(b)r(e)h(detected)g
+(on)f(a)g(small)f(gran)n(ularit)n(y)f(and)i(repaired)523
+1667 y(with)25 b(correct)e(data)h(from)g(other)g(p)r(eers.)g(Second,)g
+(for)g(searc)n(hes)e(it)j(should)f(b)r(e)h(di\016cult)h(for)523
+1767 y(p)r(eers)f(to)g(spam)h(the)f(result)h(set.)f(Otherwise)g(the)h
+(users)e(ma)n(y)h(dro)n(wn)f(in)i(useless)f(informa-)523
+1866 y(tion.)k(Finally)-7 b(,)28 b(in)n(termediaries)f(that)i(are)f
+(merely)g(routing)f(the)i(con)n(ten)n(t)f(should)g(b)r(e)h(able)523
+1966 y(to)d(detect)g(in)n(v)-5 b(alid)26 b(replies.)f(This)h(enables)f
+(lo)r(cal)g(economies)g(\(lik)n(e)g(in)h([)p 0 1 0 TeXcolorrgb
+2778 1966 a
+SDict begin H.S end
+ 2778 1966 a 0 1 0 TeXcolorrgb FA(13)p 0 1 0
+TeXcolorrgb 2861 1912 a
+SDict begin H.R end
+ 2861 1912 a 2861 1966 a
+SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
+(cite.ebe2003) cvn H.B /ANN pdfmark end
+ 2861
+1966 a Black FA(]\))h(and)e(prev)n(en)n(ts)523 2065 y(the)j
+(retransmission)e(and)h(replication)g(of)g(corrupted)g(data)g(b)n(y)h
+(non-malicious)e(p)r(eers.)648 2188 y(ECRS)h(uses)g(t)n(w)n(o)g
+(fundamen)n(tal)h(primitiv)n(es)g(in)g(the)g(o)n(v)n(erall)d(enco)r
+(ding)j(sc)n(heme.)f(The)523 2288 y(ma)5 b(jorit)n(y)25
+b(of)i(the)g(data)f(is)g(encrypted)h(with)g(a)f(v)-5
+b(arian)n(t)26 b(of)g(F)-7 b(reenet's)27 b(CHK)f(enco)r(ding)g([)p
+0 1 0 TeXcolorrgb 3317 2288 a
+SDict begin H.S end
+ 3317 2288 a 0 1 0 TeXcolorrgb
+FA(5)p 0 1 0 TeXcolorrgb 3359 2234 a
+SDict begin H.R end
+ 3359 2234 a 3359
+2288 a
+SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
+(cite.clark99distributed) cvn H.B /ANN pdfmark end
+ 3359 2288 a Black FA(].)523 2387 y(CHK)21 b(stands)f(for)h(Con)n
+(ten)n(t)f(Hash)h(Key;)f(in)h(other)g(w)n(ords,)e(the)j(con)n(ten)n(t)e
+(is)h(encrypted)f(with)523 2487 y(a)26 b(k)n(ey)f(that)i(is)f(deriv)n
+(ed)f(from)h(a)f(cryptographic)g(hash)g(of)h(the)h(plain)n(text.)f(The)
+g(encrypted)523 2587 y(con)n(ten)n(t)d(is)g(hashed)f(again)g(to)h
+(obtain)g(the)g(query)g(whic)n(h)g(is)g(used)g(to)f(request)h(the)g
+(con)n(ten)n(t.)523 2686 y(This)38 b(k)n(ey-query)e(pair)h(is)h(what)g
 (the)g(receiv)n(er)e(needs)i(to)g(do)n(wnload)e(and)i(decrypt)g(the)523
-548 y(con)n(ten)n(t.)648 649 y(The)23 b(primary)f(di\013erence)i(to)f
+2786 y(con)n(ten)n(t.)648 2909 y(The)23 b(primary)f(di\013erence)i(to)f
 (the)h(use)f(of)g(CHK)g(b)n(y)h([)p 0 1 0 TeXcolorrgb
-2304 649 a
+2304 2909 a
 SDict begin H.S end
- 2304 649 a 0 1 0 TeXcolorrgb FA(5)p 0 1 0
-TeXcolorrgb 2345 596 a
+ 2304 2909 a 0 1 0 TeXcolorrgb FA(5)p 0 1 0
+TeXcolorrgb 2345 2855 a
 SDict begin H.R end
- 2345 596 a 2345 649 a
+ 2345 2855 a 2345 2909 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.clark99distributed) cvn H.B /ANN pdfmark end
- 2345 649
-a Black FA(])g(is)f(that)h(ECRS)f(nev)n(er)f(sub)5 b(jects)523
-749 y(en)n(tire)35 b(\014les)h(to)f(the)h(CHK)f(enco)r(ding.)g
-(Instead,)h(\014les)f(are)g(split)h(in)n(to)f(\014xed-size)g(blo)r(c)n
-(ks)523 849 y(whic)n(h)j(could)f(then)h(b)r(e)g(individually)g
-(distributed)g(\(and)g(replicated\))f(across)f(p)r(eers)h(in)523
-948 y(the)27 b(net)n(w)n(ork.)e(This)i(is)f(a)g(natural)g(w)n(a)n(y)f
-(to)i(balance)f(the)h(load)e(and)i(to)f(enable)h(sw)n(arming.)523
-1048 y(The)40 b(blo)r(c)n(ks)f(can)h(b)r(e)g(individually)g(iden)n
+ 2345
+2909 a Black FA(])g(is)f(that)h(ECRS)f(nev)n(er)f(sub)5
+b(jects)523 3008 y(en)n(tire)35 b(\014les)h(to)f(the)h(CHK)f(enco)r
+(ding.)g(Instead,)h(\014les)f(are)g(split)h(in)n(to)f(\014xed-size)g
+(blo)r(c)n(ks)523 3108 y(whic)n(h)j(could)f(then)h(b)r(e)g
+(individually)g(distributed)g(\(and)g(replicated\))f(across)f(p)r(eers)
+h(in)523 3208 y(the)27 b(net)n(w)n(ork.)e(This)i(is)f(a)g(natural)g(w)n
+(a)n(y)f(to)i(balance)f(the)h(load)e(and)i(to)f(enable)h(sw)n(arming.)
+523 3307 y(The)40 b(blo)r(c)n(ks)f(can)h(b)r(e)g(individually)g(iden)n
 (ti\014ed,)h(encrypted,)e(decrypted)h(and)g(v)n(eri\014ed.)523
-1148 y(Eac)n(h)c(blo)r(c)n(k)h(is)g(iden)n(ti\014ed)g(b)n(y)g(one)g(or)
+3407 y(Eac)n(h)c(blo)r(c)n(k)h(is)g(iden)n(ti\014ed)g(b)n(y)g(one)g(or)
 f(t)n(w)n(o)h(hash)g(co)r(des.)f(The)i(blo)r(c)n(ks)e(are)g(encrypted)
-523 1247 y(using)g(a)f(k)n(ey)g(that)h(is)g(indep)r(enden)n(t)h(of)f
+523 3506 y(using)g(a)f(k)n(ey)g(that)h(is)g(indep)r(enden)n(t)h(of)f
 (the)g(hashes)f(used)h(for)f(iden)n(ti\014cation.)h(Finally)-7
-b(,)523 1347 y(v)n(eri\014cation)28 b(only)h(requires)f(the)i
+b(,)523 3606 y(v)n(eri\014cation)28 b(only)h(requires)f(the)i
 (encrypted)f(blo)r(c)n(k)g(and)g(the)h(query;)f(it)h(do)r(es)f(not)h
-(rev)n(eal)523 1446 y(the)d(k)n(ey)f(required)g(to)h(decrypt)g(the)g
+(rev)n(eal)523 3706 y(the)d(k)n(ey)f(required)g(to)h(decrypt)g(the)g
 (blo)r(c)n(k.)f(ECRS)h(guaran)n(tees)e(that)i(it)g(is)g(hard)f(to)h
-(forge)523 1546 y(a)32 b(resp)r(onse)f(that)i(passes)e(v)n
+(forge)523 3805 y(a)32 b(resp)r(onse)f(that)i(passes)e(v)n
 (eri\014cation)g(for)h(a)g(giv)n(en)g(query)-7 b(.)31
-b(Splitting)i(\014les)g(in)n(to)f(blo)r(c)n(ks)523 1646
+b(Splitting)i(\014les)g(in)n(to)f(blo)r(c)n(ks)523 3905
 y(allo)n(ws)19 b(ECRS)i(to)f(detect)h(data)f(corruption)g(on)g(the)h
 (blo)r(c)n(k)f(lev)n(el.)g(Malicious)g(p)r(eers)g(cannot)523
-1745 y(transmit)k(more)g(than)h(the)f(selected)h(blo)r(c)n(k)f(size)g
+4005 y(transmit)k(more)g(than)h(the)f(selected)h(blo)r(c)n(k)f(size)g
 (of)g(in)n(v)-5 b(alid)25 b(data)f(b)r(efore)g(b)r(eing)g(detected.)648
-1847 y(The)18 b(second)h(primitiv)n(e)f(used)h(b)n(y)f(ECRS,)h(the)g
+4127 y(The)18 b(second)h(primitiv)n(e)f(used)h(b)n(y)f(ECRS,)h(the)g
 Ft(KBlo)l(ck)p FA(,)h(is)f(completely)f(no)n(v)n(el.)g
-Ft(KBlo)l(ck)p FA(s)523 1946 y(allo)n(w)h(users)g(to)h(securely)g
+Ft(KBlo)l(ck)p FA(s)523 4227 y(allo)n(w)h(users)g(to)h(securely)g
 (obtain)f(the)i(k)n(ey-query)d(pair)i(starting)f(with)i(a)e(natural)h
-(language)523 2046 y(k)n(eyw)n(ord)f(selected)h(b)n(y)g(the)h(con)n
+(language)523 4327 y(k)n(eyw)n(ord)f(selected)h(b)n(y)g(the)h(con)n
 (ten)n(t)f(pro)n(vider.)e Ft(KBlo)l(ck)p FA(s)k(impro)n(v)n(e)d(on)h
-(the)h(triple-hash)e([)p 0 1 0 TeXcolorrgb 3317 2046
+(the)h(triple-hash)e([)p 0 1 0 TeXcolorrgb 3317 4327
 a
 SDict begin H.S end
- 3317 2046 a 0 1 0 TeXcolorrgb FA(2)p 0 1 0 TeXcolorrgb
-3359 1993 a
+ 3317 4327 a 0 1 0 TeXcolorrgb FA(2)p 0 1 0 TeXcolorrgb
+3359 4273 a
 SDict begin H.R end
- 3359 1993 a 3359 2046 a
+ 3359 4273 a 3359 4327 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.esed) cvn H.B /ANN pdfmark end
- 3359 2046 a Black
-FA(],)523 2146 y(a)25 b(primitiv)n(e)h(with)g(exactly)f(the)h(same)f
+ 3359 4327 a Black
+FA(],)523 4426 y(a)25 b(primitiv)n(e)h(with)g(exactly)f(the)h(same)f
 (goal,)f(in)i(that)g Ft(KBlo)l(ck)p FA(s)h(cannot)e(b)r(e)h(attac)n(k)n
-(ed)e(suc-)523 2245 y(cessfully)i(b)n(y)g(a)g(non-guessing)f(in)n
+(ed)e(suc-)523 4526 y(cessfully)i(b)n(y)g(a)g(non-guessing)f(in)n
 (termediary)-7 b(.)25 b(This)h(is)g(ac)n(hiev)n(ed)f(using)h
-(signatures)f(from)523 2345 y(deterministically)37 b(generated)f
+(signatures)f(from)523 4625 y(deterministically)37 b(generated)f
 (public)i(k)n(eys)f(to)g(sign)g(con)n(ten)n(t)g(adv)n(ertisemen)n(ts.)f
-(Using)523 2445 y Ft(KBlo)l(ck)p FA(s,)e(do)r(cumen)n(ts)g(can)e(b)r(e)
+(Using)523 4725 y Ft(KBlo)l(ck)p FA(s,)e(do)r(cumen)n(ts)g(can)e(b)r(e)
 i(inserted)f(under)g(m)n(ultiple)h(k)n(eys)e(at)i(a)e(minimal)i(cost)f
-(in)523 2544 y(terms)28 b(of)h(space.)f(Users)g(can)g(p)r(erform)g(b)r
-(o)r(olean)g(searc)n(hes)f(of)i(the)g(form)f Fs(a)43
-b(AND)g(b)28 b FA(whic)n(h)523 2644 y(then)36 b(return)f(the)h(do)r
+(in)523 4825 y(terms)28 b(of)h(space.)f(Users)g(can)g(p)r(erform)g(b)r
+(o)r(olean)g(searc)n(hes)f(of)i(the)g(form)f Fr(a)43
+b(AND)g(b)28 b FA(whic)n(h)523 4924 y(then)36 b(return)f(the)h(do)r
 (cumen)n(ts)g(whic)n(h)f(w)n(ere)g(inserted)g(under)h(a)f(matc)n(hing)g
-(set)g(of)h(k)n(ey-)523 2743 y(w)n(ords.)i(Before)f(the)j(do)n(wnload,)
-d(the)i(user)g(can)f(re\014ne)g(the)i(searc)n(h)d(results)h(using)h
-(the)523 2843 y(metadata)27 b(asso)r(ciated)f(with)i(the)g(\014le.)648
-2945 y(The)e(rest)f(of)i(the)f(pap)r(er)g(is)g(organized)e(as)i(follo)n
-(ws.)f(Section)p 1 0 0 TeXcolorrgb 2582 2945 a
+(set)g(of)h(k)n(ey-)p Black Black eop end
+%%Page: 4 4
+TeXDict begin 4 3 bop 0 0 a
+SDict begin /product where{pop product(Distiller)search{pop pop pop
+version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
+closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
+grestore}if}{pop}ifelse}{pop}ifelse}if end
+ 0 0 a Black 0 TeXcolorgray
+523 232 a
 SDict begin H.S end
- 2582 2945
-a 1 0 0 TeXcolorrgb FA(2)p 1 0 0 TeXcolorrgb 2624 2891
+ 523 232 a 0 TeXcolorgray 0 TeXcolorgray 523
+232 a
+SDict begin H.R end
+ 523 232 a 523 232 a
+SDict begin [ /View [/XYZ H.V] /Dest (page.4) cvn H.B /DEST pdfmark
+end
+ 523 232 a Black Fx(4)237 b(C.)27
+b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
+Black 523 448 a FA(w)n(ords.)38 b(Before)f(the)j(do)n(wnload,)d(the)i
+(user)g(can)f(re\014ne)g(the)i(searc)n(h)d(results)h(using)h(the)523
+548 y(metadata)27 b(asso)r(ciated)f(with)i(the)g(\014le.)648
+652 y(The)e(rest)f(of)i(the)f(pap)r(er)g(is)g(organized)e(as)i(follo)n
+(ws.)f(Section)p 1 0 0 TeXcolorrgb 2582 652 a
+SDict begin H.S end
+ 2582 652
+a 1 0 0 TeXcolorrgb FA(2)p 1 0 0 TeXcolorrgb 2624 599
 a
 SDict begin H.R end
- 2624 2891 a 2624 2945 a
+ 2624 599 a 2624 652 a
 SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (section.1.2) cvn H.B /ANN pdfmark end
- 2624 2945 a Black 26 w FA(con)n(trasts)f(the)
-j(curren)n(t)523 3044 y(w)n(ork)e(with)i(mec)n(hanisms)e(used)h(in)h
+ 2624 652 a Black 26 w FA(con)n(trasts)f(the)j
+(curren)n(t)523 752 y(w)n(ork)e(with)i(mec)n(hanisms)e(used)h(in)h
 (other)f(censorship-resistan)n(t)d(systems.)j(Section)p
-1 0 0 TeXcolorrgb 3226 3044 a
+1 0 0 TeXcolorrgb 3226 752 a
 SDict begin H.S end
- 3226 3044 a 1 0 0 TeXcolorrgb
-FA(3)p 1 0 0 TeXcolorrgb 3268 2991 a
+ 3226 752 a 1 0 0 TeXcolorrgb
+FA(3)p 1 0 0 TeXcolorrgb 3268 698 a
 SDict begin H.R end
- 3268 2991 a 3268
-3044 a
+ 3268 698 a 3268 752
+a
 SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (section.1.3) cvn H.B /ANN pdfmark end
- 3268 3044 a Black 26 w FA(de-)523 3144 y(scrib)r(es)j(the)g
-(ECRS)h(enco)r(ding)e(sc)n(heme)h(in)h(detail.)f(Section)p
-1 0 0 TeXcolorrgb 2476 3144 a
+ 3268 752 a Black 26 w FA(de-)523 851 y(scrib)r(es)j(the)g(ECRS)h
+(enco)r(ding)e(sc)n(heme)h(in)h(detail.)f(Section)p 1 0 0
+TeXcolorrgb 2476 851 a
 SDict begin H.S end
- 2476 3144 a 1 0 0 TeXcolorrgb
-FA(4)p 1 0 0 TeXcolorrgb 2517 3090 a
+ 2476 851 a 1 0 0 TeXcolorrgb FA(4)p
+1 0 0 TeXcolorrgb 2517 798 a
 SDict begin H.R end
- 2517 3090 a 2517
-3144 a
+ 2517 798 a 2517 851 a
 SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (section.1.4) cvn H.B /ANN pdfmark end
- 2517 3144 a Black 29 w FA(lists)h(some)f(extensions)f(to)523
-3243 y(the)f(basic)g(sc)n(heme.)g(Finally)-7 b(,)27 b(Section)p
-1 0 0 TeXcolorrgb 1768 3243 a
+ 2517
+851 a Black 29 w FA(lists)h(some)f(extensions)f(to)523
+951 y(the)f(basic)g(sc)n(heme.)g(Finally)-7 b(,)27 b(Section)p
+1 0 0 TeXcolorrgb 1768 951 a
 SDict begin H.S end
- 1768 3243 a 1 0 0 TeXcolorrgb
-FA(5)p 1 0 0 TeXcolorrgb 1809 3190 a
+ 1768 951 a 1 0 0 TeXcolorrgb
+FA(5)p 1 0 0 TeXcolorrgb 1809 897 a
 SDict begin H.R end
- 1809 3190 a 1809
-3243 a
+ 1809 897 a 1809 951
+a
 SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (section.1.5) cvn H.B /ANN pdfmark end
- 1809 3243 a Black 27 w FA(discusses)g(attac)n(ks)f(on)g(ECRS)h
-(and)g(con)n(trasts)f(it)523 3343 y(to)i(previous)e(w)n(ork.)648
-3445 y(This)e(w)n(ork)f(builds)h(on)g(our)g(earlier)f(pap)r(er)h([)p
-0 1 0 TeXcolorrgb 2036 3445 a
+ 1809 951 a Black 27 w FA(discusses)g(attac)n(ks)f(on)g(ECRS)h(and)g
+(con)n(trasts)f(it)523 1051 y(to)i(previous)e(w)n(ork.)648
+1155 y(This)e(w)n(ork)f(builds)h(on)g(our)g(earlier)f(pap)r(er)h([)p
+0 1 0 TeXcolorrgb 2036 1155 a
 SDict begin H.S end
- 2036 3445 a 0 1 0 TeXcolorrgb
-FA(2)p 0 1 0 TeXcolorrgb 2077 3391 a
+ 2036 1155 a 0 1 0 TeXcolorrgb
+FA(2)p 0 1 0 TeXcolorrgb 2077 1101 a
 SDict begin H.R end
- 2077 3391 a 2077
-3445 a
+ 2077 1101 a 2077
+1155 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.esed) cvn H.B /ANN pdfmark end
- 2077 3445 a Black FA(])h(whic)n(h)f(w)n(as)f(\014rst)h
-(published)h(at)f(A)n(CISP)523 3544 y(2001.)33 b(Since)h(then,)h(the)g
+ 2077 1155 a Black FA(])h(whic)n(h)f(w)n(as)f(\014rst)h
+(published)h(at)f(A)n(CISP)523 1254 y(2001.)33 b(Since)h(then,)h(the)g
 (enco)r(ding)f(sc)n(heme)g(has)g(b)r(een)h(revised)e(to)h(address)g
-(additional)523 3644 y(requiremen)n(ts)29 b(an)h(to)h(impro)n(v)n(e)e
+(additional)523 1354 y(requiremen)n(ts)29 b(an)h(to)h(impro)n(v)n(e)e
 (the)i(securit)n(y)e(in)i(v)-5 b(arious)29 b(asp)r(ects.)h(This)h(pap)r
-(er)f(re\015ects)523 3743 y(these)e(c)n(hanges.)523 3916
+(er)f(re\015ects)523 1454 y(these)e(c)n(hanges.)523 1637
 y
 SDict begin H.S end
- 523 3916 a 523 3916 a
+ 523 1637 a 523 1637 a
 SDict begin 12 H.A end
- 523 3916 a 523 3916 a
+ 523 1637 a 523 1637 a
 SDict begin [ /View [/XYZ H.V] /Dest (section.1.2) cvn H.B /DEST pdfmark
 end
- 523 3916
-a 102 x Fu(2)112 b(Related)38 b(W)-9 b(ork)523 4227 y
+ 523 1637
+a 105 x Fu(2)112 b(Related)38 b(W)-9 b(ork)523 1964 y
 FA(A)40 b(large)f(n)n(um)n(b)r(er)g(of)h(censorship-resistan)n(t)d
 (\(or)j(at)f(least)h(fault-toleran)n(t\))f(publishing)523
-4327 y(systems)30 b(ha)n(v)n(e)f(b)r(een)h(prop)r(osed)f(in)i(recen)n
-(t)e(y)n(ears)g([)p 0 1 0 TeXcolorrgb 2170 4327 a
+2064 y(systems)30 b(ha)n(v)n(e)f(b)r(een)h(prop)r(osed)f(in)i(recen)n
+(t)e(y)n(ears)g([)p 0 1 0 TeXcolorrgb 2170 2064 a
 SDict begin H.S end
  2170
-4327 a 0 1 0 TeXcolorrgb FA(1)p 0 1 0 TeXcolorrgb 2211
-4273 a
+2064 a 0 1 0 TeXcolorrgb FA(1)p 0 1 0 TeXcolorrgb 2211
+2010 a
 SDict begin H.R end
- 2211 4273 a 2211 4327 a
+ 2211 2010 a 2211 2064 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.anderson96eternity) cvn H.B /ANN pdfmark end
- 2211 4327 a Black FA(,)p
-0 1 0 TeXcolorrgb 2234 4327 a
+ 2211 2064 a Black FA(,)p
+0 1 0 TeXcolorrgb 2234 2064 a
 SDict begin H.S end
- 2234 4327 a 0 1 0 TeXcolorrgb
-FA(4)p 0 1 0 TeXcolorrgb 2276 4273 a
+ 2234 2064 a 0 1 0 TeXcolorrgb
+FA(4)p 0 1 0 TeXcolorrgb 2276 2010 a
 SDict begin H.R end
- 2276 4273 a 2276
-4327 a
+ 2276 2010 a 2276
+2064 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.chen99prototype) cvn H.B /ANN pdfmark end
- 2276 4327 a Black FA(,)p 0 1 0 TeXcolorrgb 2299
-4327 a
+ 2276 2064 a Black FA(,)p 0 1 0 TeXcolorrgb 2299
+2064 a
 SDict begin H.S end
- 2299 4327 a 0 1 0 TeXcolorrgb FA(5)p 0 1 0 TeXcolorrgb
-2341 4273 a
+ 2299 2064 a 0 1 0 TeXcolorrgb FA(5)p 0 1 0 TeXcolorrgb
+2341 2010 a
 SDict begin H.R end
- 2341 4273 a 2341 4327 a
+ 2341 2010 a 2341 2064 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.clark99distributed) cvn H.B /ANN pdfmark end
- 2341 4327 a Black
-FA(,)p 0 1 0 TeXcolorrgb 2364 4327 a
+ 2341 2064 a Black
+FA(,)p 0 1 0 TeXcolorrgb 2364 2064 a
 SDict begin H.S end
- 2364 4327 a 0 1 0
-TeXcolorrgb FA(9)p 0 1 0 TeXcolorrgb 2405 4273 a
+ 2364 2064 a 0 1 0
+TeXcolorrgb FA(9)p 0 1 0 TeXcolorrgb 2405 2010 a
 SDict begin H.R end
  2405
-4273 a 2405 4327 a
+2010 a 2405 2064 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.freehaven-berk) cvn H.B /ANN pdfmark end
- 2405 4327 a Black FA(,)p 0 1 0 TeXcolorrgb
-2428 4327 a
+ 2405 2064 a Black FA(,)p 0 1 0 TeXcolorrgb
+2428 2064 a
 SDict begin H.S end
- 2428 4327 a 0 1 0 TeXcolorrgb FA(10)p 0 1 0
-TeXcolorrgb 2511 4273 a
+ 2428 2064 a 0 1 0 TeXcolorrgb FA(11)p 0 1 0
+TeXcolorrgb 2511 2010 a
 SDict begin H.R end
- 2511 4273 a 2511 4327 a
+ 2511 2010 a 2511 2064 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.feamster-infranet) cvn H.B /ANN pdfmark end
  2511
-4327 a Black FA(,)p 0 1 0 TeXcolorrgb 2534 4327 a
+2064 a Black FA(,)p 0 1 0 TeXcolorrgb 2534 2064 a
 SDict begin H.S end
  2534
-4327 a 0 1 0 TeXcolorrgb FA(14)p 0 1 0 TeXcolorrgb 2617
-4273 a
+2064 a 0 1 0 TeXcolorrgb FA(16)p 0 1 0 TeXcolorrgb 2617
+2010 a
 SDict begin H.R end
- 2617 4273 a 2617 4327 a
+ 2617 2010 a 2617 2064 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.herlihy87how) cvn H.B /ANN pdfmark end
- 2617 4327 a Black FA(,)p
-0 1 0 TeXcolorrgb 2640 4327 a
+ 2617 2064 a Black FA(,)p
+0 1 0 TeXcolorrgb 2640 2064 a
 SDict begin H.S end
- 2640 4327 a 0 1 0 TeXcolorrgb
-FA(28)p 0 1 0 TeXcolorrgb 2723 4273 a
+ 2640 2064 a 0 1 0 TeXcolorrgb
+FA(31)p 0 1 0 TeXcolorrgb 2723 2010 a
 SDict begin H.R end
- 2723 4273 a 2723
-4327 a
+ 2723 2010 a 2723
+2064 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.waldman2001tangler) cvn H.B /ANN pdfmark end
- 2723 4327 a Black FA(,)p 0 1 0 TeXcolorrgb 2746
-4327 a
+ 2723 2064 a Black FA(,)p 0 1 0 TeXcolorrgb 2746
+2064 a
 SDict begin H.S end
- 2746 4327 a 0 1 0 TeXcolorrgb FA(29)p 0 1 0 TeXcolorrgb
-2829 4273 a
+ 2746 2064 a 0 1 0 TeXcolorrgb FA(32)p 0 1 0 TeXcolorrgb
+2829 2010 a
 SDict begin H.R end
- 2829 4273 a 2829 4327 a
+ 2829 2010 a 2829 2064 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.pub00) cvn H.B /ANN pdfmark end
- 2829 4327 a Black
-FA(].)i(The)f(prop)r(osed)523 4426 y(proto)r(cols)18
+ 2829 2064 a Black
+FA(].)i(The)f(prop)r(osed)523 2163 y(proto)r(cols)18
 b(di\013er)i(in)g(v)-5 b(arious)18 b(asp)r(ects)h(unrelated)g(to)h(the)
 f(sp)r(eci\014cs)h(of)f(the)h(enco)r(ding)f(mec)n(h-)523
-4526 y(anism,)28 b(suc)n(h)g(as)f(con)n(ten)n(t)h(replication)f(and)h
+2263 y(anism,)28 b(suc)n(h)g(as)f(con)n(ten)n(t)h(replication)f(and)h
 (the)g(use)g(of)g(anon)n(ymous)e(or)i(steganographic)523
-4625 y(comm)n(unication.)33 b(Characteristic)g(of)h(all)g(of)g(these)g
-(systems)f(is)h(the)h(use)f(of)g(replication)523 4725
+2363 y(comm)n(unication.)33 b(Characteristic)g(of)h(all)g(of)g(these)g
+(systems)f(is)h(the)h(use)f(of)g(replication)523 2462
 y(and)i(the)h(need)f(to)h(ensure)e(data)h(in)n(tegrit)n(y)-7
 b(.)36 b(F)-7 b(or)35 b(an)h(o)n(v)n(erview)f(of)h(con)n(ten)n(t)g
-(replication)523 4825 y(strategies)26 b(see)h([)p 0 1 0
-TeXcolorrgb 1050 4825 a
+(replication)523 2562 y(strategies)26 b(see)h([)p 0 1 0
+TeXcolorrgb 1050 2562 a
 SDict begin H.S end
- 1050 4825 a 0 1 0 TeXcolorrgb
-FA(6)p 0 1 0 TeXcolorrgb 1091 4771 a
+ 1050 2562 a 0 1 0 TeXcolorrgb
+FA(6)p 0 1 0 TeXcolorrgb 1091 2508 a
 SDict begin H.R end
- 1091 4771 a 1091
-4825 a
+ 1091 2508 a 1091
+2562 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.cohen02replication) cvn H.B /ANN pdfmark end
- 1091 4825 a Black FA(].)h(The)f(censorship-resistan)n(t)e
+ 1091 2562 a Black FA(].)h(The)f(censorship-resistan)n(t)e
 (systems)i(all)g(use)g(some)g(form)g(of)g(con)n(ten)n(t)523
-4924 y(enco)r(ding)g(to)h(hide)g(the)g(sp)r(eci\014cs)f(of)h(the)g(con)
-n(ten)n(t)f(from)g(the)h(serv)n(ers.)p Black Black eop
-end
-%%Page: 4 4
-TeXDict begin 4 3 bop 0 0 a
-SDict begin /product where{pop product(Distiller)search{pop pop pop
-version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
-closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
-grestore}if}{pop}ifelse}{pop}ifelse}if end
- 0 0 a Black 0 TeXcolorgray
-523 232 a
+2661 y(enco)r(ding)g(to)h(hide)g(the)g(sp)r(eci\014cs)f(of)h(the)g(con)
+n(ten)n(t)f(from)g(the)h(serv)n(ers.)523 2845 y
 SDict begin H.S end
- 523 232 a 0 TeXcolorgray 0 TeXcolorgray 523
-232 a
-SDict begin H.R end
- 523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.4) cvn H.B /DEST pdfmark
-end
- 523 232 a Black Fx(4)237 b(C.)27
-b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
-Black 523 365 a
-SDict begin H.S end
- 523 365 a 523 365 a
+ 523 2845
+a 523 2845 a
 SDict begin 12 H.A end
- 523 365 a 523 365
-a
+ 523 2845 a 523 2845 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.2.1) cvn H.B /DEST
 pdfmark end
- 523 365 a 83 x Fr(2.1)95 b(F)-8 b(reenet)523 584 y
-FA(The)30 b(main)f(con)n(ten)n(t)h(enco)r(ding)f(sc)n(heme)g(used)h(in)
-g(F)-7 b(reenet)30 b([)p 0 1 0 TeXcolorrgb 2452 584 a
+ 523 2845 a 88 x Fq(2.1)95
+b(F)-8 b(reenet)523 3122 y FA(The)30 b(main)f(con)n(ten)n(t)h(enco)r
+(ding)f(sc)n(heme)g(used)h(in)g(F)-7 b(reenet)30 b([)p
+0 1 0 TeXcolorrgb 2452 3122 a
 SDict begin H.S end
-
-2452 584 a 0 1 0 TeXcolorrgb FA(5)p 0 1 0 TeXcolorrgb
-2493 531 a
+ 2452 3122 a 0 1 0 TeXcolorrgb
+FA(5)p 0 1 0 TeXcolorrgb 2493 3068 a
 SDict begin H.R end
- 2493 531 a 2493 584 a
+ 2493 3068 a 2493
+3122 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.clark99distributed) cvn H.B /ANN pdfmark end
- 2493 584 a Black FA(])g(uses)f(CHKs:)h
-(the)g(hash)f(of)523 684 y(the)e(con)n(ten)n(t)f(is)g(used)g(as)g(the)g
-(k)n(ey)-7 b(.)26 b(F)-7 b(reenet)26 b(has)g(sev)n(eral)e(other)i(t)n
-(yp)r(es)g(of)g(k)n(eys)g(whic)n(h)g(are)523 784 y(used)e(to)f(refer)g
-(the)h(user)f(to)g(con)n(ten)n(t-hash)g(k)n(eys.)f(These)i(di\013eren)n
-(t)f(k)n(ey)g(t)n(yp)r(es)h(are)f(used)g(to)523 883 y(allo)n(w)e
+ 2493 3122 a Black FA(])g(uses)f(CHKs:)h(the)g(hash)f(of)523
+3222 y(the)e(con)n(ten)n(t)f(is)g(used)g(as)g(the)g(k)n(ey)-7
+b(.)26 b(F)-7 b(reenet)26 b(has)g(sev)n(eral)e(other)i(t)n(yp)r(es)g
+(of)g(k)n(eys)g(whic)n(h)g(are)523 3321 y(used)e(to)f(refer)g(the)h
+(user)f(to)g(con)n(ten)n(t-hash)g(k)n(eys.)f(These)i(di\013eren)n(t)f
+(k)n(ey)g(t)n(yp)r(es)h(are)f(used)g(to)523 3421 y(allo)n(w)e
 (additional)h(features)g(suc)n(h)g(as)g(con)n(ten)n(t)g(signing,)g(p)r
-(ersonal)f(namespaces)h(and)g(split-)523 983 y(ting)28
+(ersonal)f(namespaces)h(and)g(split-)523 3520 y(ting)28
 b(of)g(con)n(ten)n(t.)f(F)-7 b(reenet's)28 b(CHK)g(yields)f(the)i(same)
-e(encrypted)g(data)h(for)f(indep)r(enden)n(t)523 1082
+e(encrypted)g(data)h(for)f(indep)r(enden)n(t)523 3620
 y(encryptions.)g(Ho)n(w)n(ev)n(er,)f(it)i(has)f(sev)n(eral)e(disadv)-5
-b(an)n(tages.)648 1182 y(One)31 b(dra)n(wbac)n(k)g(of)h(F)-7
+b(an)n(tages.)648 3724 y(One)31 b(dra)n(wbac)n(k)g(of)h(F)-7
 b(reenet's)32 b(CHK)g(is)g(that)g(it)h(do)r(es)f(not)g(allo)n(w)f
-(direct)h(sharing)f(of)523 1282 y(\014les)c(from)f(the)h(lo)r(cal)g
+(direct)h(sharing)f(of)523 3824 y(\014les)c(from)f(the)h(lo)r(cal)g
 (driv)n(e)e(without)j(encrypting)e(and)g(inserting)h(them)g(\014rst.)g
-(Th)n(us,)f(if)h(a)523 1381 y(no)r(de)22 b(op)r(erator)f(wishes)h(to)g
+(Th)n(us,)f(if)h(a)523 3924 y(no)r(de)22 b(op)r(erator)f(wishes)h(to)g
 (k)n(eep)g(con)n(ten)n(t)g(directly)g(accessible)f(on)h(the)h(host,)f
-(a)g(lo)r(cal)g(cop)n(y)523 1481 y(of)h(the)g(plain)n(text)g(m)n(ust)g
+(a)g(lo)r(cal)g(cop)n(y)523 4023 y(of)h(the)g(plain)n(text)g(m)n(ust)g
 (b)r(e)g(k)n(ept)f(in)h(addition)g(to)g(the)g(encrypted)f(con)n(ten)n
-(t)h(in)g(the)g(F)-7 b(reenet)523 1581 y(database.)27
+(t)h(in)g(the)g(F)-7 b(reenet)523 4123 y(database.)27
 b(Also,)h(F)-7 b(reenet)29 b(do)r(es)f(not)g(supp)r(ort)g(sw)n(arming.)
-f(One)h(reason)f(for)h(this)g(is)h(that)523 1680 y(F)-7
+f(One)h(reason)f(for)h(this)g(is)h(that)523 4222 y(F)-7
 b(reenet's)30 b(CHK)h(enco)r(ding)f(can)g(only)g(v)n(erify)g(a)g
 (\014le)h(in)f(its)h(en)n(tiret)n(y)f(and)g(not)h(pin-p)r(oin)n(t)523
-1780 y(corruptions)26 b(on)h(a)h(smaller)e(scale.)648
-1879 y(One)33 b(w)n(a)n(y)f(to)i(obtain)f(the)i(CHK)e(k)n(ey)g(of)h(a)f
+4322 y(corruptions)26 b(on)h(a)h(smaller)e(scale.)648
+4426 y(One)33 b(w)n(a)n(y)f(to)i(obtain)f(the)i(CHK)e(k)n(ey)g(of)h(a)f
 (\014le)h(in)g(F)-7 b(reenet)34 b(is)f(to)h(searc)n(h)e(a)h(priv)-5
-b(ate)523 1979 y(subspace.)27 b(A)h(subspace)f(con)n(tains)f(a)i(set)f
+b(ate)523 4526 y(subspace.)27 b(A)h(subspace)f(con)n(tains)f(a)i(set)f
 (of)h(CHK)f(k)n(eys)g(that)h(ha)n(v)n(e)e(b)r(een)i(cryptographi-)523
-2079 y(cally)e(signed)h(b)n(y)g(the)g(o)n(wner)f(of)h(the)g(subspace)g
+4625 y(cally)e(signed)h(b)n(y)g(the)g(o)n(wner)f(of)h(the)g(subspace)g
 (and)f(placed)h(in)n(to)g(the)g(subspace)g(under)f(a)523
-2178 y(certain)e(k)n(eyw)n(ord.)g(These)g(signed)h(references)f(are)f
-(called)i(subspace-signed)e(k)n(eys)h(\(SSK\).)523 2278
+4725 y(certain)e(k)n(eyw)n(ord.)g(These)g(signed)h(references)f(are)f
+(called)i(subspace-signed)e(k)n(eys)h(\(SSK\).)523 4825
 y(Giv)n(en)i(the)g(subspace-pre\014x)e(and)h(the)i(k)n(eyw)n(ord,)c
 (users)i(can)h(obtain)f(the)h(CHK)g(k)n(ey)-7 b(.)25
-b(The)523 2378 y(form)d(of)g(the)g(k)n(eyw)n(ords)e(can)i(b)r(e)h
+b(The)523 4924 y(form)d(of)g(the)g(k)n(eyw)n(ords)e(can)i(b)r(e)h
 (freely)e(c)n(hosen,)h(allo)n(wing)e(for)i(con)n(v)n(en)n(tions)e(suc)n
-(h)i(as)f(dates)523 2477 y(in)j(the)h(k)n(eyw)n(ord)d(to)i(b)r(e)h
+(h)i(as)f(dates)p Black Black eop end
+%%Page: 5 5
+TeXDict begin 5 4 bop 0 0 a
+SDict begin /product where{pop product(Distiller)search{pop pop pop
+version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
+closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
+grestore}if}{pop}ifelse}{pop}ifelse}if end
+ 0 0 a Black 0 TeXcolorgray
+523 232 a
+SDict begin H.S end
+ 523 232 a 0 TeXcolorgray 0 TeXcolorgray 523
+232 a
+SDict begin H.R end
+ 523 232 a 523 232 a
+SDict begin [ /View [/XYZ H.V] /Dest (page.5) cvn H.B /DEST pdfmark
+end
+ 523 232 a Black 1036 w Fx(An)25
+b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)238
+b(5)p Black 523 448 a FA(in)24 b(the)h(k)n(eyw)n(ord)d(to)i(b)r(e)h
 (used)f(for)g(up)r(dates)g(\(in)h(F)-7 b(reenet's)24
-b(terminology)-7 b(,)23 b(these)h(are)f(called)523 2577
-y(\\date)k(based)g(redirects"\).)648 2676 y(In)g(addition)h(to)f(CHK)g
+b(terminology)-7 b(,)23 b(these)h(are)f(called)523 548
+y(\\date)k(based)g(redirects"\).)648 648 y(In)g(addition)h(to)f(CHK)g
 (and)g(SSK)h(k)n(eys,)e(F)-7 b(reenet)28 b(supp)r(orts)f(KSK)g(k)n
-(eys.)f(A)i(KSK)f(k)n(ey)523 2776 y(is)j(essen)n(tially)f(a)g(CHK)h(k)n
+(eys.)f(A)i(KSK)f(k)n(ey)523 747 y(is)j(essen)n(tially)f(a)g(CHK)h(k)n
 (ey)g(stored)f(in)h(plain)n(text)g(\(!\))h(under)e(a)h(k)n(eyw)n(ord.)e
-(The)i(proto)r(col)523 2876 y(attempts)25 b(to)f(ensure)g(that)g(there)
-h(cannot)e(b)r(e)i(t)n(w)n(o)f(di\013eren)n(t)g(CHK)h(k)n(eys)e(a)n(v)
--5 b(ailable)23 b(in)i(the)523 2975 y(net)n(w)n(ork)g(under)h(the)h
-(same)f(k)n(eyw)n(ord.)e(While)j(collisions)e(for)h(KSK)g(k)n(eys)f
-(are)g(supp)r(osedly)523 3075 y(not)36 b(allo)n(w)n(ed,)e(the)i(proto)r
-(col)e(cannot)h(prev)n(en)n(t)g(them)h(from)f(o)r(ccurring.)g(If)h(an)f
-(attac)n(k)n(er)523 3175 y(inserts)27 b(meaningless)f(data)h(under)g(a)
+(The)i(proto)r(col)523 847 y(attempts)25 b(to)f(ensure)g(that)g(there)h
+(cannot)e(b)r(e)i(t)n(w)n(o)f(di\013eren)n(t)g(CHK)h(k)n(eys)e(a)n(v)-5
+b(ailable)23 b(in)i(the)523 946 y(net)n(w)n(ork)g(under)h(the)h(same)f
+(k)n(eyw)n(ord.)e(While)j(collisions)e(for)h(KSK)g(k)n(eys)f(are)g
+(supp)r(osedly)523 1046 y(not)36 b(allo)n(w)n(ed,)e(the)i(proto)r(col)e
+(cannot)h(prev)n(en)n(t)g(them)h(from)f(o)r(ccurring.)g(If)h(an)f
+(attac)n(k)n(er)523 1146 y(inserts)27 b(meaningless)f(data)h(under)g(a)
 g(common)g(k)n(eyw)n(ord,)e(F)-7 b(reenet)27 b(will)h(try)f(to)g
-(preserv)n(e)523 3274 y(that)g(con)n(ten)n(t)g(b)r(ecause)f(it)h(is)g
+(preserv)n(e)523 1245 y(that)g(con)n(ten)n(t)g(b)r(ecause)f(it)h(is)g
 (frequen)n(tly)f(requested.)h(Subsequen)n(tly)-7 b(,)26
-b(that)h(k)n(eyw)n(ord)e(can)523 3374 y(no)h(longer)f(b)r(e)i(used)f
+b(that)h(k)n(eyw)n(ord)e(can)523 1345 y(no)h(longer)f(b)r(e)i(used)f
 (for)g(an)n(y)f(useful)i(data)f(since)g(the)g(p)r(eers)g(attempt)h(to)f
-(enforce)g(the)h(no-)523 3473 y(collisions)j(rule.)h(Note)g(that)g(the)
+(enforce)g(the)h(no-)523 1445 y(collisions)j(rule.)h(Note)g(that)g(the)
 h(no-collision)d(rule)i(cannot)f(b)r(e)i(enforced)e(for)h(malicious)523
-3573 y(p)r(eers.)h(F)-7 b(or)32 b(these)h(reasons,)e(the)i(F)-7
+1544 y(p)r(eers.)h(F)-7 b(or)32 b(these)h(reasons,)e(the)i(F)-7
 b(reenet)33 b(dev)n(elop)r(ers)e(consider)h(the)h(use)f(of)h(KSK)f(k)n
-(eys)523 3673 y(insecure)27 b(and)g(recommend)g(against)g(using)g
-(them.)648 3772 y(As)19 b(a)g(result,)g(F)-7 b(reenet)19
+(eys)523 1644 y(insecure)27 b(and)g(recommend)g(against)g(using)g
+(them.)648 1743 y(As)19 b(a)g(result,)g(F)-7 b(reenet)19
 b(do)r(es)g(not)g(really)f(supp)r(ort)h(an)n(y)g(t)n(yp)r(e)g(of)g(k)n
-(eyw)n(ord-based)d(searc)n(h.)523 3872 y(The)30 b(CHK)g(k)n(eys)f(m)n
+(eyw)n(ord-based)d(searc)n(h.)523 1843 y(The)30 b(CHK)g(k)n(eys)f(m)n
 (ust)i(b)r(e)f(found)h(b)n(y)e(using)h(k)n(eyserv)n(ers)d(or)j(ad-ho)r
-(c)f(applications)g(built)523 3972 y(up)r(on)j(the)g(basic)f(solution)h
+(c)f(applications)g(built)523 1943 y(up)r(on)j(the)g(basic)f(solution)h
 (b)n(y)f(using)h(incremen)n(tal)f(n)n(um)n(b)r(ers)g(as)g(parts)g(of)h
-(k)n(eyw)n(ords)e(in)523 4071 y(signed)f(namespaces.)g(The)h(disadv)-5
+(k)n(eyw)n(ords)e(in)523 2042 y(signed)f(namespaces.)g(The)h(disadv)-5
 b(an)n(tage)28 b(of)i(k)n(eyserv)n(ers)d(is)j(that)g(they)g(m)n(ust)g
-(b)r(e)g(main-)523 4171 y(tained)h(if)g(the)g(indexed)g(k)n(eys)f(are)g
+(b)r(e)g(main-)523 2142 y(tained)h(if)g(the)g(indexed)g(k)n(eys)f(are)g
 (to)h(b)r(e)g(k)n(ept)f(up-to-date.)h(F)-7 b(reenet)30
-b(do)r(es)h(not)g(seem)f(to)523 4270 y(use)g(an)n(y)f(encryption)h(for)
+b(do)r(es)h(not)g(seem)f(to)523 2242 y(use)g(an)n(y)f(encryption)h(for)
 f(the)i(data)f(stored)f(in)h(KSK)g(or)f(SKS)h(k)n(eys)f(and)h
-(therefore)f(fails)523 4370 y(to)36 b(prev)n(en)n(t)f(in)n
+(therefore)f(fails)523 2341 y(to)36 b(prev)n(en)n(t)f(in)n
 (termediaries)g(from)g(learning)g(the)h(CHK)g(k)n(eys,)f(making)h
-(censorship)e(b)n(y)523 4470 y(in)n(termediaries)26 b(easier.)523
-4589 y
+(censorship)e(b)n(y)523 2441 y(in)n(termediaries)26 b(easier.)523
+2580 y
 SDict begin H.S end
- 523 4589 a 523 4589 a
+ 523 2580 a 523 2580 a
 SDict begin 12 H.A end
- 523 4589 a 523 4589 a
+ 523 2580 a 523 2580 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.2.2) cvn H.B /DEST
 pdfmark end
  523
-4589 a 100 x Fr(2.2)95 b(F)-8 b(ree)31 b(Ha)m(v)m(en)523
-4825 y FA(In)24 b(F)-7 b(ree)24 b(Ha)n(v)n(en)f([)p 0 1 0
-TeXcolorrgb 1074 4825 a
+2580 a 100 x Fq(2.2)95 b(F)-8 b(ree)31 b(Ha)m(v)m(en)523
+2836 y FA(In)24 b(F)-7 b(ree)24 b(Ha)n(v)n(en)f([)p 0 1 0
+TeXcolorrgb 1074 2836 a
 SDict begin H.S end
- 1074 4825 a 0 1 0 TeXcolorrgb
-FA(9)p 0 1 0 TeXcolorrgb 1115 4771 a
+ 1074 2836 a 0 1 0 TeXcolorrgb
+FA(9)p 0 1 0 TeXcolorrgb 1115 2782 a
 SDict begin H.R end
- 1115 4771 a 1115
-4825 a
+ 1115 2782 a 1115
+2836 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.freehaven-berk) cvn H.B /ANN pdfmark end
- 1115 4825 a Black FA(],)i(do)r(cumen)n(ts)f(are)e(split)j(in)n
-(to)f Fq(n)f FA(shares)g(whic)n(h)h(are)f(distributed)h(o)n(v)n(er)e(a)
-523 4924 y(n)n(um)n(b)r(er)27 b(of)g(serv)n(ers.)f(An)n(y)h
-Fq(k)j FA(out)d(of)h Fq(n)f FA(shares)f(are)g(su\016cien)n(t)h(to)h
-(reconstruct)e(the)h(en)n(tire)p Black Black eop end
-%%Page: 5 5
-TeXDict begin 5 4 bop 0 0 a
-SDict begin /product where{pop product(Distiller)search{pop pop pop
-version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
-closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
-grestore}if}{pop}ifelse}{pop}ifelse}if end
- 0 0 a Black 0 TeXcolorgray
-523 232 a
+ 1115 2836 a Black FA(],)i(do)r(cumen)n(ts)f(are)e(split)j(in)n
+(to)f Fs(n)f FA(shares)g(whic)n(h)h(are)f(distributed)h(o)n(v)n(er)e(a)
+523 2935 y(n)n(um)n(b)r(er)27 b(of)g(serv)n(ers.)f(An)n(y)h
+Fs(k)j FA(out)d(of)h Fs(n)f FA(shares)f(are)g(su\016cien)n(t)h(to)h
+(reconstruct)e(the)h(en)n(tire)523 3035 y(do)r(cumen)n(t)j([)p
+0 1 0 TeXcolorrgb 931 3035 a
 SDict begin H.S end
- 523 232 a 0 TeXcolorgray 0 TeXcolorgray 523
-232 a
+ 931 3035 a 0 1 0 TeXcolorrgb
+FA(25)p 0 1 0 TeXcolorrgb 1015 2982 a
 SDict begin H.R end
- 523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.5) cvn H.B /DEST pdfmark
-end
- 523 232 a Black 1036 w Fx(An)25
-b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)238
-b(5)p Black 523 448 a FA(do)r(cumen)n(t)30 b([)p 0 1 0
-TeXcolorrgb 931 448 a
-SDict begin H.S end
- 931 448 a 0 1 0 TeXcolorrgb FA(22)p
-0 1 0 TeXcolorrgb 1015 395 a
-SDict begin H.R end
- 1015 395 a 1015 448 a
+ 1015 2982 a 1015
+3035 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.rabin89efficient) cvn H.B /ANN pdfmark end
- 1015
-448 a Black FA(].)g(T)-7 b(o)30 b(retriev)n(e)f(a)g(do)r(cumen)n(t,)i
-(the)g(user)e(m)n(ust)h(obtain)g(the)h(k)n(ey)f(that)g(w)n(as)523
-548 y(used)j(to)f(sign)g(the)h(do)r(cumen)n(t)g(from)f(some)g(source)f
-(outside)i(the)g(F)-7 b(ree)32 b(Ha)n(v)n(en)f(net)n(w)n(ork.)523
-648 y(The)i(design)f(of)g(F)-7 b(ree)32 b(Ha)n(v)n(en)g(itself)h(do)r
-(es)f(not)h(discuss)f(an)n(y)f(searc)n(h)g(functionalit)n(y)-7
-b(.)33 b(The)523 747 y(user)d(then)h(forw)n(ards)e(the)i(k)n(ey)g(to)f
+ 1015 3035 a Black FA(].)g(T)-7 b(o)30 b(retriev)n(e)f(a)g(do)r
+(cumen)n(t,)i(the)g(user)e(m)n(ust)h(obtain)g(the)h(k)n(ey)f(that)g(w)n
+(as)523 3135 y(used)j(to)f(sign)g(the)h(do)r(cumen)n(t)g(from)f(some)g
+(source)f(outside)i(the)g(F)-7 b(ree)32 b(Ha)n(v)n(en)f(net)n(w)n(ork.)
+523 3234 y(The)i(design)f(of)g(F)-7 b(ree)32 b(Ha)n(v)n(en)g(itself)h
+(do)r(es)f(not)h(discuss)f(an)n(y)f(searc)n(h)g(functionalit)n(y)-7
+b(.)33 b(The)523 3334 y(user)d(then)h(forw)n(ards)e(the)i(k)n(ey)g(to)f
 (the)h(serv)n(er)e(whic)n(h)i(encrypts)f(and)h(sends)f(its)h(share)f
-(of)523 847 y(the)e(do)r(cumen)n(t.)648 948 y(Shares)21
+(of)523 3434 y(the)e(do)r(cumen)n(t.)648 3533 y(Shares)21
 b(are)g(enco)r(ded)i(with)g(an)f(information)g(disp)r(ersal)f
-(algorithm)g(\(ID)n(A\).)j(Hosts)e(are)523 1047 y(still)34
+(algorithm)g(\(ID)n(A\).)j(Hosts)e(are)523 3633 y(still)34
 b(able)f(to)h(exercise)e(editorial)h(con)n(trol)f(o)n(v)n(er)g(the)i
 (con)n(ten)n(t)f(since)h(the)g(ID)n(A)g(do)r(es)f(not)523
-1147 y(prev)n(en)n(t)f(hosts)f(from)h(deco)r(ding)g(parts)g(of)g(the)h
-(plain)n(text.)f(Also,)g(the)h Fq(k)i FA(out)e(of)f Fq(n)g
-FA(share)523 1247 y(reconstruction)f(sc)n(heme)g(do)r(es)h(not)g(allo)n
+3732 y(prev)n(en)n(t)f(hosts)f(from)h(deco)r(ding)g(parts)g(of)g(the)h
+(plain)n(text.)f(Also,)g(the)h Fs(k)i FA(out)e(of)f Fs(n)g
+FA(share)523 3832 y(reconstruction)f(sc)n(heme)g(do)r(es)h(not)g(allo)n
 (w)f(reconstruction)f(of)i(a)g(\014le)g(b)n(y)g(mixing)f(shares)523
-1346 y(from)c(indep)r(enden)n(t)i(insertions)e(with)h(di\013eren)n(t)f
-(v)-5 b(alues)28 b(for)f Fq(k)j FA(or)d Fq(n)p FA(.)523
-1517 y
+3932 y(from)c(indep)r(enden)n(t)i(insertions)e(with)h(di\013eren)n(t)f
+(v)-5 b(alues)28 b(for)f Fs(k)j FA(or)d Fs(n)p FA(.)523
+4087 y
 SDict begin H.S end
- 523 1517 a 523 1517 a
+ 523 4087 a 523 4087 a
 SDict begin 12 H.A end
- 523 1517 a 523 1517 a
+ 523 4087 a 523 4087 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.2.3) cvn H.B /DEST
 pdfmark end
  523
-1517 a 85 x Fr(2.3)95 b(Mnet)31 b(and)h(Mo)5 b(jo)32
-b(Nation)523 1774 y FA(Mnet)d(is)f(the)g(successor)f(of)h(Mo)5
-b(jo)27 b(Nation)h([)p 0 1 0 TeXcolorrgb 1938 1774 a
+4087 a 84 x Fq(2.3)95 b(Mnet)31 b(and)h(Mo)5 b(jo)32
+b(Nation)523 4327 y FA(Mnet)d(is)f(the)g(successor)f(of)h(Mo)5
+b(jo)27 b(Nation)h([)p 0 1 0 TeXcolorrgb 1938 4327 a
 SDict begin H.S end
 
-1938 1774 a 0 1 0 TeXcolorrgb FA(30)p 0 1 0 TeXcolorrgb
-2021 1721 a
+1938 4327 a 0 1 0 TeXcolorrgb FA(33)p 0 1 0 TeXcolorrgb
+2021 4273 a
 SDict begin H.R end
- 2021 1721 a 2021 1774 a
+ 2021 4273 a 2021 4327 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.mojotech) cvn H.B /ANN pdfmark end
- 2021 1774 a Black
+ 2021 4327 a Black
 FA(],)h(a)e(p)r(eer-to-p)r(eer)g(net)n(w)n(ork)g(that)h(w)n(as)g(the)
-523 1874 y(\014rst)d(to)g(fo)r(cus)g(on)f(using)h(economic)f(incen)n
+523 4426 y(\014rst)d(to)g(fo)r(cus)g(on)f(using)h(economic)f(incen)n
 (tiv)n(es)g(when)h(trading)g(con)n(ten)n(t.)f(As)h(the)h(descen-)523
-1974 y(dan)n(t)g(of)g(a)g(commercial)f(pro)r(duct,)i(Mnet)f(fo)r(cuses)
+4526 y(dan)n(t)g(of)g(a)g(commercial)f(pro)r(duct,)i(Mnet)f(fo)r(cuses)
 g(mostly)g(on)g(e\016ciency)h(and)f(reliabilit)n(y)-7
-b(.)523 2073 y(Nev)n(ertheless,)31 b(Mnet)i(encrypts)e(\014les)h(with)h
+b(.)523 4625 y(Nev)n(ertheless,)31 b(Mnet)i(encrypts)e(\014les)h(with)h
 (AES)f(using)g(a)f(user-supplied)h(k)n(ey)f(to)h(allo)n(w)523
-2173 y(for)e(priv)-5 b(acy)e(.)30 b(The)h(\014le)g(is)f(then)h(brok)n
+4725 y(for)e(priv)-5 b(acy)e(.)30 b(The)h(\014le)g(is)f(then)h(brok)n
 (en)f(in)n(to)g(shares)f(using)h(an)h(erasure)e(co)r(de.)h(Multiple)523
-2272 y(shares)23 b(are)h(iden)n(ti\014ed)g(with)h(an)g(SHA-1)f(hash)g
+4825 y(shares)23 b(are)h(iden)n(ti\014ed)g(with)h(an)g(SHA-1)f(hash)g
 (and)g(stored)g(in)h(an)f(ino)r(de.)g(The)h(\014le)g(can)f(b)r(e)523
-2372 y(retriev)n(ed)i(using)i(the)g(hash)f(of)g(the)h(ino)r(de)g(and)f
-(the)h(symmetric)g(encryption)f(k)n(ey)-7 b(.)648 2473
-y(The)30 b(use)g(of)g(whole-\014le)f(AES)h(encryption)g(and)g(the)g
-(use)g(of)g(an)g(erasure)e(co)r(de)i(forces)523 2573
-y(Mnet,)25 b(just)f(lik)n(e)g(F)-7 b(reenet,)24 b(to)g(store)f(a)h
+4924 y(retriev)n(ed)i(using)i(the)g(hash)f(of)g(the)h(ino)r(de)g(and)f
+(the)h(symmetric)g(encryption)f(k)n(ey)-7 b(.)p Black
+Black eop end
+%%Page: 6 6
+TeXDict begin 6 5 bop 0 0 a
+SDict begin /product where{pop product(Distiller)search{pop pop pop
+version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
+closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
+grestore}if}{pop}ifelse}{pop}ifelse}if end
+ 0 0 a Black 0 TeXcolorgray
+523 232 a
+SDict begin H.S end
+ 523 232 a 0 TeXcolorgray 0 TeXcolorgray 523
+232 a
+SDict begin H.R end
+ 523 232 a 523 232 a
+SDict begin [ /View [/XYZ H.V] /Dest (page.6) cvn H.B /DEST pdfmark
+end
+ 523 232 a Black Fx(6)237 b(C.)27
+b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
+Black 648 448 a FA(The)j(use)g(of)g(whole-\014le)f(AES)h(encryption)g
+(and)g(the)g(use)g(of)g(an)g(erasure)e(co)r(de)i(forces)523
+548 y(Mnet,)25 b(just)f(lik)n(e)g(F)-7 b(reenet,)24 b(to)g(store)f(a)h
 (second)f(cop)n(y)g(of)h(the)g(en)n(tire)g(\014le)g(in)h(the)f(Mnet)g
-(data)523 2672 y(store)h(ev)n(en)h(if)g(the)g(user)g(retains)f(a)h(cop)
-n(y)f(of)h(the)g(\014le)g(in)g(plain)n(text.)g(The)g(enco)r(ding)g(mak)
-n(es)523 2772 y(it)h(infeasible)f(to)g(enco)r(de)g(parts)f(of)i(the)f
+(data)523 648 y(store)h(ev)n(en)h(if)g(the)g(user)g(retains)f(a)h(cop)n
+(y)f(of)h(the)g(\014le)g(in)g(plain)n(text.)g(The)g(enco)r(ding)g(mak)n
+(es)523 747 y(it)h(infeasible)f(to)g(enco)r(de)g(parts)f(of)i(the)f
 (\014le)h(on)f(request.)f(The)h(free)g(selection)g(of)g(the)h(AES)523
-2871 y(k)n(ey)j(allo)n(ws)f(indep)r(enden)n(t)j(users)d(to)i(create)f
+847 y(k)n(ey)j(allo)n(ws)f(indep)r(enden)n(t)j(users)d(to)i(create)f
 (completely)g(di\013eren)n(t)h(shares)e(for)h(iden)n(tical)523
-2971 y(\014les.)35 b(Since)g(the)h(encryption)e(of)h(the)g(con)n(ten)n
+946 y(\014les.)35 b(Since)g(the)h(encryption)e(of)h(the)g(con)n(ten)n
 (t)g(is)g(a)f(p)r(erfectly)i(indep)r(enden)n(t)g(pass)e(o)n(v)n(er)523
-3071 y(the)e(\014le,)g(other)e(enco)r(dings)h(suc)n(h)g(as)g(ECRS)g
+1046 y(the)e(\014le,)g(other)e(enco)r(dings)h(suc)n(h)g(as)g(ECRS)g
 (and)g(F)-7 b(reenet's)32 b(enco)r(ding)f(could)g(b)r(e)h(easily)523
-3170 y(extended)i(to)g(include)h(this)f(b)r(eha)n(vior)e(if)j(desired)e
-({)h(without)g(the)h(need)f(to)g(mandate)f(a)523 3270
+1146 y(extended)i(to)g(include)h(this)f(b)r(eha)n(vior)e(if)j(desired)e
+({)h(without)g(the)h(need)f(to)g(mandate)f(a)523 1245
 y(certain)27 b(st)n(yle)g(of)h(AES)f(encryption.)523
-3441 y
+1440 y
 SDict begin H.S end
- 523 3441 a 523 3441 a
+ 523 1440 a 523 1440 a
 SDict begin 12 H.A end
- 523 3441 a 523 3441 a
+ 523 1440 a 523 1440 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.2.4) cvn H.B /DEST
 pdfmark end
  523
-3441 a 85 x Fr(2.4)95 b(Publius)523 3698 y FA(Publius)23
-b([)p 0 1 0 TeXcolorrgb 843 3698 a
+1440 a 91 x Fq(2.4)95 b(Publius)523 1733 y FA(Publius)23
+b([)p 0 1 0 TeXcolorrgb 843 1733 a
 SDict begin H.S end
- 843 3698 a 0 1 0 TeXcolorrgb
-FA(29)p 0 1 0 TeXcolorrgb 926 3645 a
+ 843 1733 a 0 1 0 TeXcolorrgb
+FA(32)p 0 1 0 TeXcolorrgb 926 1679 a
 SDict begin H.R end
- 926 3645 a 926 3698
+ 926 1679 a 926 1733
 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.pub00) cvn H.B /ANN pdfmark end
- 926 3698 a Black FA(])h(is)g(a)f(static)g(net)n(w)n(ork)f(that)i
+ 926 1733 a Black FA(])h(is)g(a)f(static)g(net)n(w)n(ork)f(that)i
 (uses)f(Shamir's)g(algorithm)g([)p 0 1 0 TeXcolorrgb
-2736 3698 a
+2736 1733 a
 SDict begin H.S end
- 2736 3698 a 0 1 0 TeXcolorrgb FA(24)p 0 1 0
-TeXcolorrgb 2819 3645 a
+ 2736 1733 a 0 1 0 TeXcolorrgb FA(27)p 0 1 0
+TeXcolorrgb 2819 1679 a
 SDict begin H.R end
- 2819 3645 a 2819 3698 a
+ 2819 1679 a 2819 1733 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.shamir) cvn H.B /ANN pdfmark end
  2819
-3698 a Black FA(])g(to)h(split)g(the)g(k)n(ey)523 3798
+1733 a Black FA(])g(to)h(split)g(the)g(k)n(ey)523 1832
 y(required)j(to)g(restore)g(stored)g(\014les)g(b)r(et)n(w)n(een)h(the)g
 (a)n(v)-5 b(ailable)27 b(serv)n(ers.)e(The)j(encrypted)g(\014le)523
-3897 y(is)33 b(then)h(stored)f(on)g(all)g(serv)n(ers.)e(The)j(serv)n
+1932 y(is)33 b(then)h(stored)f(on)g(all)g(serv)n(ers.)e(The)j(serv)n
 (ers)d(cannot)i(decrypt)g(the)h(\014le)f(as)g(the)g(k)n(ey)g(is)523
-3997 y(nev)n(er)27 b(rev)n(ealed)f(to)h(them.)648 4098
+2032 y(nev)n(er)27 b(rev)n(ealed)f(to)h(them.)648 2138
 y(Publius)34 b(k)n(eys)g(are)g(random)g(strings.)g(The)h(system)g(do)r
-(es)g(not)g(pro)n(vide)e(an)n(y)i(searc)n(h)523 4197
+(es)g(not)g(pro)n(vide)e(an)n(y)i(searc)n(h)523 2238
 y(mec)n(hanism)c(and)h(exp)r(ects)f(the)h(users)f(to)h(obtain)f(the)h
-(k)n(eys)f(from)g(an)g(alternate)g(source.)523 4297 y(Publius)d(nev)n
+(k)n(eys)f(from)g(an)g(alternate)g(source.)523 2338 y(Publius)d(nev)n
 (er)e(discards)h(an)n(y)g(con)n(ten)n(t)g(and)h(th)n(us)g(assumes)e
-(that)i(disk)g(space)f(is)h(nev)n(er)e(a)523 4397 y(limitation.)523
-4551 y
+(that)i(disk)g(space)f(is)h(nev)n(er)e(a)523 2437 y(limitation.)523
+2616 y
 SDict begin H.S end
- 523 4551 a 523 4551 a
+ 523 2616 a 523 2616 a
 SDict begin 12 H.A end
- 523 4551 a 523 4551 a
+ 523 2616 a 523 2616 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.2.5) cvn H.B /DEST
 pdfmark end
  523
-4551 a 101 x Fr(2.5)95 b(T)-8 b(angler)523 4825 y FA(The)31
+2616 a 106 x Fq(2.5)95 b(T)-8 b(angler)523 2925 y FA(The)31
 b(T)-7 b(angler)30 b(net)n(w)n(ork)f([)p 0 1 0 TeXcolorrgb
-1345 4825 a
+1345 2925 a
 SDict begin H.S end
- 1345 4825 a 0 1 0 TeXcolorrgb FA(28)p 0 1 0
-TeXcolorrgb 1428 4771 a
+ 1345 2925 a 0 1 0 TeXcolorrgb FA(31)p 0 1 0
+TeXcolorrgb 1428 2871 a
 SDict begin H.R end
- 1428 4771 a 1428 4825 a
+ 1428 2871 a 1428 2925 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.waldman2001tangler) cvn H.B /ANN pdfmark end
  1428
-4825 a Black FA(])i(is)g(a)f(system)h(where)f(new)h(con)n(ten)n(t)g(is)
-g(en)n(tangled)f(with)h(old)523 4924 y(con)n(ten)n(t.)22
+2925 a Black FA(])i(is)g(a)f(system)h(where)f(new)h(con)n(ten)n(t)g(is)
+g(en)n(tangled)f(with)h(old)523 3024 y(con)n(ten)n(t.)22
 b(This)g(en)n(tanglemen)n(t)g(in)n(tro)r(duces)g(a)g(dep)r(endency)h
-(that)g(mak)n(es)e(it)i(imp)r(ossible)f(to)p Black Black
-eop end
-%%Page: 6 6
-TeXDict begin 6 5 bop 0 0 a
+(that)g(mak)n(es)e(it)i(imp)r(ossible)f(to)523 3124 y(retriev)n(e)i(a)g
+(piece)h(of)g(con)n(ten)n(t)g(if)g(the)g(other)g(con)n(ten)n(t)f(that)h
+(it)h(w)n(as)e(en)n(tangled)g(with)h(is)g(lost.)523 3223
+y(While)20 b(this)h(mak)n(es)d(it)j(imp)r(ossible)e(to)h(censor)f(sp)r
+(eci\014c)h(con)n(ten)n(t)f(without)h(losing)f(unrelated)523
+3323 y(con)n(ten)n(t)j(\(since)h(the)g(en)n(tanglemen)n(t)e(pairs)h
+(are)g(c)n(hosen)f(randomly\),)h(this)h(pro)r(cess)e
+Ft(doubles)523 3423 y FA(the)f(amoun)n(t)f(of)g(data)g(that)h(m)n(ust)f
+(b)r(e)h(transp)r(orted)f(b)n(y)g(the)h(net)n(w)n(ork.)e(This)h(sc)n
+(heme)g(fails)g(to)523 3522 y(address)29 b(the)i(fact)f(that)h(an)f
+(adv)n(ersary)d(ma)n(y)j(not)g(care)g(ab)r(out)g(losing)f(other)h(data)
+g(when)523 3622 y(attempting)35 b(to)g(censor)f(con)n(ten)n(t.)h(Also,)
+f(nothing)h(prev)n(en)n(ts)f(the)h(adv)n(ersary)e(from)h(\014rst)523
+3722 y(making)e(a)g(cop)n(y)f(of)h(imp)r(ortan)n(t)g(do)r(cumen)n(ts)h
+(and)f(re-inserting)f(them)h(in)n(to)h(the)f(system)523
+3821 y(after)27 b(the)h(censorship)f(op)r(eration.)648
+3928 y(T)-7 b(angler)33 b(has)h(some)h(similarities)f(with)h(ECRS.)g
+(In)g(particular,)e(it)j(uses)e(hash)h(trees)523 4028
+y(for)27 b(in)n(tegrit)n(y)f(c)n(hec)n(ks)g(on)h(\014xed-size)f(blo)r
+(c)n(ks)h(of)g(data.)f(A)i(di\013erence)f(with)h(ECRS)f(is)g(that)523
+4127 y(the)39 b(T)-7 b(angler)37 b(enco)r(ding)h(uses)h(Shamir's)f
+(secret)f(sharing)h([)p 0 1 0 TeXcolorrgb 2462 4127 a
+SDict begin H.S end
+
+2462 4127 a 0 1 0 TeXcolorrgb FA(27)p 0 1 0 TeXcolorrgb
+2545 4074 a
+SDict begin H.R end
+ 2545 4074 a 2545 4127 a
+SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
+(cite.shamir) cvn H.B /ANN pdfmark end
+ 2545 4127 a Black
+FA(])g(to)h(en)n(tangle)f(the)h(blo)r(c)n(k)523 4227
+y(with)34 b(other,)f(pre-existing)f(blo)r(c)n(ks,)g(preferably)g(from)h
+(other)g(do)r(cumen)n(ts.)g(A)h(similarit)n(y)523 4327
+y(b)r(et)n(w)n(een)24 b(T)-7 b(angler,)23 b(F)-7 b(reenet)24
+b(and)g(ECRS)g(is)g(the)h(existence)f(of)g(cryptographically)d(signed)
+523 4426 y(data,)31 b(whic)n(h)h(T)-7 b(angler)30 b(calls)h
+(collections.)g(T)-7 b(angler's)30 b(collections)h(are)f(analogous)g
+(to)h(di-)523 4526 y(rectories)i(and)h(namespaces)f(in)h(ECRS.)g(The)g
+(ma)5 b(jor)33 b(di\013erence)h(is)h(that)f(in)g(T)-7
+b(angler)33 b(a)523 4625 y(collection)h(has)g(a)g(v)n(ersioned)f(ro)r
+(ot)h(whic)n(h)h(explicitly)f(lists)h(all)f(of)h(the)g(con)n(ten)n(ts)f
+(in)h(the)523 4725 y(collection,)22 b(resulting)h(in)g(one)g(of)g(T)-7
+b(angler's)21 b(global)h(sync)n(hronization)f(problems.)h(Placing)523
+4825 y(a)28 b(do)r(cumen)n(t)g(in)h(a)f(F)-7 b(reenet)28
+b(subspace)g(or)f(ECRS)h(namespace)f(only)h(requires)f(that)i(it)g(b)r
+(e)523 4924 y(adequately)e(signed.)p Black Black eop
+end
+%%Page: 7 7
+TeXDict begin 7 6 bop 0 0 a
 SDict begin /product where{pop product(Distiller)search{pop pop pop
 version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
 closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
@@ -6065,380 +6235,243 @@
 232 a
 SDict begin H.R end
  523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.6) cvn H.B /DEST pdfmark
+SDict begin [ /View [/XYZ H.V] /Dest (page.7) cvn H.B /DEST pdfmark
 end
- 523 232 a Black Fx(6)237 b(C.)27
-b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
-Black 523 448 a FA(retriev)n(e)d(a)g(piece)h(of)g(con)n(ten)n(t)g(if)g
-(the)g(other)g(con)n(ten)n(t)f(that)h(it)h(w)n(as)e(en)n(tangled)g
-(with)h(is)g(lost.)523 548 y(While)20 b(this)h(mak)n(es)d(it)j(imp)r
-(ossible)e(to)h(censor)f(sp)r(eci\014c)h(con)n(ten)n(t)f(without)h
-(losing)f(unrelated)523 648 y(con)n(ten)n(t)j(\(since)h(the)g(en)n
-(tanglemen)n(t)e(pairs)h(are)g(c)n(hosen)f(randomly\),)h(this)h(pro)r
-(cess)e Ft(doubles)523 747 y FA(the)f(amoun)n(t)f(of)g(data)g(that)h(m)
-n(ust)f(b)r(e)h(transp)r(orted)f(b)n(y)g(the)h(net)n(w)n(ork.)e(This)h
-(sc)n(heme)g(fails)g(to)523 847 y(address)29 b(the)i(fact)f(that)h(an)f
-(adv)n(ersary)d(ma)n(y)j(not)g(care)g(ab)r(out)g(losing)f(other)h(data)
-g(when)523 946 y(attempting)35 b(to)g(censor)f(con)n(ten)n(t.)h(Also,)f
-(nothing)h(prev)n(en)n(ts)f(the)h(adv)n(ersary)e(from)h(\014rst)523
-1046 y(making)e(a)g(cop)n(y)f(of)h(imp)r(ortan)n(t)g(do)r(cumen)n(ts)h
-(and)f(re-inserting)f(them)h(in)n(to)h(the)f(system)523
-1146 y(after)27 b(the)h(censorship)f(op)r(eration.)648
-1245 y(T)-7 b(angler)22 b(has)h(some)g(similarities)g(with)h(ECRS.)g
-(In)g(particular,)e(it)i(uses)f(hash)g(trees)h(for)523
-1345 y(in)n(tegrit)n(y)h(c)n(hec)n(ks)g(on)g(\014xed-size)h(blo)r(c)n
-(ks)f(of)h(data.)f(A)i(di\013erence)e(with)i(ECRS)f(is)f(that)i(the)523
-1445 y(T)-7 b(angler)33 b(enco)r(ding)h(uses)g(Shamir's)g(secret)g
-(sharing)f([)p 0 1 0 TeXcolorrgb 2283 1445 a
+ 523 232 a Black 1036 w Fx(An)25
+b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)238
+b(7)p Black 523 365 a
 SDict begin H.S end
- 2283 1445
-a 0 1 0 TeXcolorrgb FA(24)p 0 1 0 TeXcolorrgb 2366 1391
-a
-SDict begin H.R end
- 2366 1391 a 2366 1445 a
-SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
-(cite.shamir) cvn H.B /ANN pdfmark end
- 2366 1445 a Black FA(])h(to)g(en)n(tangle)g
-(the)h(blo)r(c)n(k)e(with)523 1544 y(other,)28 b(pre-existing)g(blo)r
-(c)n(ks,)g(preferably)g(from)g(other)g(do)r(cumen)n(ts.)h(similarit)n
-(y)f(b)r(et)n(w)n(een)523 1644 y(T)-7 b(angler,)34 b(F)-7
-b(reenet)35 b(and)g(ECRS)f(is)h(the)h(existence)e(of)h
-(cryptographically)e(signed)h(data,)523 1744 y(whic)n(h)25
-b(T)-7 b(angler)23 b(calls)h(collections.)g(T)-7 b(angler's)24
-b(collections)g(are)f(analogous)g(to)h(directories)523
-1843 y(and)31 b(namespaces)f(in)h(ECRS.)g(The)h(ma)5
-b(jor)30 b(di\013erence)h(is)g(that)g(in)h(T)-7 b(angler)30
-b(a)h(collection)523 1943 y(has)23 b(a)g(v)n(ersioned)f(ro)r(ot)h(whic)
-n(h)g(explicitly)h(lists)g(all)f(of)g(the)h(con)n(ten)n(ts)f(in)h(the)g
-(collection,)f(re-)523 2042 y(sulting)h(in)h(one)f(of)g(T)-7
-b(angler's)23 b(global)h(sync)n(hronization)e(problems.)i(Placing)f(a)h
-(do)r(cumen)n(t)523 2142 y(in)31 b(a)g(F)-7 b(reenet)31
-b(subspace)f(or)g(ECRS)h(namespace)f(only)h(requires)f(that)h(it)g(b)r
-(e)h(adequately)523 2242 y(signed.)523 2408 y
-SDict begin H.S end
- 523 2408
-a 523 2408 a
+ 523 365 a 523 365 a
 SDict begin 12 H.A end
- 523 2408 a 523 2408 a
+ 523 365 a 523
+365 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.2.6) cvn H.B /DEST
 pdfmark end
- 523 2408 a 83 x Fr(2.6)95
-b(Gn)m(utella)31 b(and)h(F)-8 b(astT)g(rac)m(k)523 2658
-y FA(The)31 b(F)-7 b(astT)g(rac)n(k)28 b(net)n(w)n(ork)p
-1 0 0 TeXcolorrgb 1376 2658 a
+ 523 365 a 83 x Fq(2.6)95 b(Gn)m(utella)31 b(and)h(F)-8
+b(astT)g(rac)m(k)523 594 y FA(The)31 b(F)-7 b(astT)g(rac)n(k)28
+b(net)n(w)n(ork)p 1 0 0 TeXcolorrgb 1376 594 a
 SDict begin H.S end
- 1376 2658 a -30 x Fz(1)1412
-2658 y
+ 1376 594
+a -30 x Fz(1)1412 594 y
 SDict begin 12 H.L end
- 1412 2658 a 1412 2658 a
+ 1412 594 a 1412 594 a
 SDict begin [ /Subtype /Link /Dest (Hfootnote.1) cvn /H /I /Border
 [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end
- 1412 2658 a Black 31 w
-FA(and)i(mo)r(dern)g(v)-5 b(arian)n(ts)29 b(of)i(the)g(Gn)n(utella)f
-(proto)r(col)f(use)i(the)523 2757 y(SHA-1)f(hash)f(co)r(de)g(of)h(the)g
-(shared)f(\014les)g(to)h(uniquely)f(iden)n(tify)i(\014les.)e(The)h
-(SHA-1)f(hash)523 2857 y(co)r(des)d(are)f(used)i(to)f(iden)n(tify)h
-(iden)n(tical)f(\014les)g(stored)g(on)g(di\013eren)n(t)g(p)r(eers.)g
-(The)g(p)r(eers)g(can)523 2957 y(then)d(use)g(this)g(information)f(to)h
-(do)n(wnload)f(the)h(\014le)g(from)f(m)n(ultiple)i(sources)d(\(sw)n
-(arming\).)523 3056 y(The)41 b(problem)f(with)h(this)f(approac)n(h)f
-(is)h(that)h(the)g(SHA-1)f(hash)g(co)r(des)g(can)h(only)f(b)r(e)523
-3156 y(v)n(eri\014ed)23 b(once)h(the)h(en)n(tire)f(\014le)g(has)g(b)r
-(een)g(retriev)n(ed.)f(T)-7 b(o)24 b(ruin)g(a)g(do)n(wnload,)f(it)i
-(su\016ces)f(for)523 3255 y(a)29 b(malicious)f(p)r(eer)i(to)f(con)n
+ 1412 594
+a Black 31 w FA(and)i(mo)r(dern)g(v)-5 b(arian)n(ts)29
+b(of)i(the)g(Gn)n(utella)f(proto)r(col)f(use)i(the)523
+693 y(SHA-1)f(hash)f(co)r(de)g(of)h(the)g(shared)f(\014les)g(to)h
+(uniquely)f(iden)n(tify)i(\014les.)e(The)h(SHA-1)f(hash)523
+793 y(co)r(des)d(are)f(used)i(to)f(iden)n(tify)h(iden)n(tical)f
+(\014les)g(stored)g(on)g(di\013eren)n(t)g(p)r(eers.)g(The)g(p)r(eers)g
+(can)523 893 y(then)d(use)g(this)g(information)f(to)h(do)n(wnload)f
+(the)h(\014le)g(from)f(m)n(ultiple)i(sources)d(\(sw)n(arming\).)523
+992 y(The)41 b(problem)f(with)h(this)f(approac)n(h)f(is)h(that)h(the)g
+(SHA-1)f(hash)g(co)r(des)g(can)h(only)f(b)r(e)523 1092
+y(v)n(eri\014ed)23 b(once)h(the)h(en)n(tire)f(\014le)g(has)g(b)r(een)g
+(retriev)n(ed.)f(T)-7 b(o)24 b(ruin)g(a)g(do)n(wnload,)f(it)i
+(su\016ces)f(for)523 1191 y(a)29 b(malicious)f(p)r(eer)i(to)f(con)n
 (tribute)g(just)h(one)e(single)h(in)n(v)-5 b(alid)29
-b(blo)r(c)n(k.)g(The)h(presence)e(of)h(an)523 3355 y(in)n(v)-5
+b(blo)r(c)n(k.)g(The)h(presence)e(of)h(an)523 1291 y(in)n(v)-5
 b(alid)22 b(blo)r(c)n(k)f(could)g(only)h(b)r(e)g(detected)g(after)f
 (the)h(en)n(tire)g(\014le)f(w)n(as)g(retriev)n(ed.)g(W)-7
-b(orse,)21 b(the)523 3455 y(simplistic)28 b(SHA-1)g(approac)n(h)f(do)r
+b(orse,)21 b(the)523 1391 y(simplistic)28 b(SHA-1)g(approac)n(h)f(do)r
 (es)g(not)i(giv)n(e)e(p)r(eers)g(an)n(y)h(w)n(a)n(y)f(to)h(iden)n(tify)
-g(the)h(lo)r(cation)523 3554 y(of)f(the)g(in)n(v)-5 b(alid)27
-b(blo)r(c)n(k)g(or)g(the)h(malicious)f(p)r(eer.)648 3654
+g(the)h(lo)r(cation)523 1490 y(of)f(the)g(in)n(v)-5 b(alid)27
+b(blo)r(c)n(k)g(or)g(the)h(malicious)f(p)r(eer.)648 1590
 y(F)-7 b(astT)g(rac)n(k)19 b(and)j(Gn)n(utella)f(do)g(not)g(use)h
 (neither)f(\014le)g(encryption.)g(Consequen)n(tly)g(they)523
-3754 y(do)30 b(not)g(pro)n(vide)f(an)n(y)g(protection)g(from)h
+1690 y(do)30 b(not)g(pro)n(vide)f(an)n(y)g(protection)g(from)h
 (censorship)f(b)r(ey)n(ond)h(decen)n(tralized)f(routing)g(of)523
-3853 y(requests.)523 4019 y
+1789 y(requests.)523 1934 y
 SDict begin H.S end
- 523 4019 a 523 4019 a
+ 523 1934 a 523 1934 a
 SDict begin 12 H.A end
  523
-4019 a 523 4019 a
+1934 a 523 1934 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.2.7) cvn H.B /DEST
 pdfmark end
- 523 4019 a 84 x Fr(2.7)95 b(Distributed)31
-b(File)f(Systems)523 4269 y FA(V)-7 b(arious)21 b(distributed)i(\014le)
+ 523 1934 a 83 x Fq(2.7)95 b(Distributed)31
+b(File)f(Systems)523 2163 y FA(V)-7 b(arious)21 b(distributed)i(\014le)
 g(systems)f(based)g(on)g(a)g(p)r(eer-to-p)r(eer)f(infrastructure)g(ha)n
-(v)n(e)h(b)r(een)523 4369 y(built)39 b(in)f(recen)n(t)f(y)n(ears)f([)p
-0 1 0 TeXcolorrgb 1342 4369 a
+(v)n(e)h(b)r(een)523 2262 y(built)39 b(in)f(recen)n(t)f(y)n(ears)f([)p
+0 1 0 TeXcolorrgb 1342 2262 a
 SDict begin H.S end
- 1342 4369 a 0 1 0 TeXcolorrgb
-FA(7)p 0 1 0 TeXcolorrgb 1384 4315 a
+ 1342 2262 a 0 1 0 TeXcolorrgb
+FA(7)p 0 1 0 TeXcolorrgb 1384 2209 a
 SDict begin H.R end
- 1384 4315 a 1384
-4369 a
+ 1384 2209 a 1384
+2262 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.cfs:sosp01) cvn H.B /ANN pdfmark end
- 1384 4369 a Black FA(,)p 0 1 0 TeXcolorrgb 1407
-4369 a
+ 1384 2262 a Black FA(,)p 0 1 0 TeXcolorrgb 1407
+2262 a
 SDict begin H.S end
- 1407 4369 a 0 1 0 TeXcolorrgb FA(17)p 0 1 0 TeXcolorrgb
-1490 4315 a
+ 1407 2262 a 0 1 0 TeXcolorrgb FA(19)p 0 1 0 TeXcolorrgb
+1490 2209 a
 SDict begin H.R end
- 1490 4315 a 1490 4369 a
+ 1490 2209 a 1490 2262 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.mazires00sfs) cvn H.B /ANN pdfmark end
- 1490 4369 a Black
-FA(,)p 0 1 0 TeXcolorrgb 1513 4369 a
+ 1490 2262 a Black
+FA(,)p 0 1 0 TeXcolorrgb 1513 2262 a
 SDict begin H.S end
- 1513 4369 a 0 1 0
-TeXcolorrgb FA(18)p 0 1 0 TeXcolorrgb 1596 4315 a
+ 1513 2262 a 0 1 0
+TeXcolorrgb FA(20)p 0 1 0 TeXcolorrgb 1596 2209 a
 SDict begin H.R end
  1596
-4315 a 1596 4369 a
+2209 a 1596 2262 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.mazieres02building) cvn H.B /ANN pdfmark end
- 1596 4369 a Black FA(,)p 0 1 0 TeXcolorrgb
-1619 4369 a
+ 1596 2262 a Black FA(,)p 0 1 0 TeXcolorrgb
+1619 2262 a
 SDict begin H.S end
- 1619 4369 a 0 1 0 TeXcolorrgb FA(21)p 0 1 0
-TeXcolorrgb 1702 4315 a
+ 1619 2262 a 0 1 0 TeXcolorrgb FA(23)p 0 1 0
+TeXcolorrgb 1702 2209 a
 SDict begin H.R end
- 1702 4315 a 1702 4369 a
+ 1702 2209 a 1702 2262 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.muthitacharoen02ivy) cvn H.B /ANN pdfmark end
  1702
-4369 a Black FA(,)p 0 1 0 TeXcolorrgb 1725 4369 a
+2262 a Black FA(,)p 0 1 0 TeXcolorrgb 1725 2262 a
 SDict begin H.S end
  1725
-4369 a 0 1 0 TeXcolorrgb FA(23)p 0 1 0 TeXcolorrgb 1808
-4315 a
+2262 a 0 1 0 TeXcolorrgb FA(26)p 0 1 0 TeXcolorrgb 1808
+2209 a
 SDict begin H.R end
- 1808 4315 a 1808 4369 a
+ 1808 2209 a 1808 2262 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.rowstron01storage) cvn H.B /ANN pdfmark end
- 1808 4369 a Black FA(].)i(These)g
+ 1808 2262 a Black FA(].)i(These)g
 (systems)f(t)n(ypically)h(do)f(not)h(fo)r(cus)g(on)523
-4468 y(censorship-resistance)g(and)j(consequen)n(tly)f(do)g(not)h
-(encrypt)g(the)g(con)n(ten)n(ts.)f(Mo)r(dern)p Black
-523 4538 473 4 v 546 4592 a Fy(1)p 0 TeXcolorgray 606
-4532 a
-SDict begin H.S end
- 606 4532 a 0 TeXcolorgray 0 TeXcolorgray 606 4532
+2362 y(censorship-resistance)g(and)j(consequen)n(tly)f(do)g(not)h
+(encrypt)g(the)g(con)n(ten)n(ts.)f(Mo)r(dern)523 2462
+y(systems)26 b(lik)n(e)g([)p 0 1 0 TeXcolorrgb 1004 2462
 a
-SDict begin H.R end
- 606 4532 a 606 4532 a
-SDict begin [ /View [/XYZ H.V] /Dest (Hfootnote.1) cvn H.B /DEST pdfmark
-end
- 606 4532 a Black 92 x Fx(Proto)r(col)28
-b(description)e(from)g(the)g(giFT-F)-6 b(astT)g(rac)n(k)26
-b(pro)t(ject)h(is)f(a)n(v)l(ailable)h(at)p 0 1 0 0 TeXcolorcmyk
-689 4802 a
 SDict begin H.S end
- 689 4802 a 0 1 0 0 TeXcolorcmyk -16 x Fw
-(http://gnunet.org/papers/FAST)q(-)t(TR)q(ACK-)5 b(PROTO)q(COL)p
-0 1 0 0 TeXcolorcmyk 2423 4734 a
+ 1004 2462 a 0 1 0 TeXcolorrgb FA(7)p 0 1 0 TeXcolorrgb
+1045 2408 a
 SDict begin H.R end
- 2423 4734 a 2423 4786
-a
-SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype
-/URI /URI (http://gnunet.org/papers/FAST-TRACK-PROTOCOL) >> /Subtype
-/Link H.B /ANN pdfmark end
- 2423 4786 a Black Fx(.)p Black Black Black eop end
-%%Page: 7 7
-TeXDict begin 7 6 bop 0 0 a
-SDict begin /product where{pop product(Distiller)search{pop pop pop
-version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
-closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
-grestore}if}{pop}ifelse}{pop}ifelse}if end
- 0 0 a Black 0 TeXcolorgray
-523 232 a
-SDict begin H.S end
- 523 232 a 0 TeXcolorgray 0 TeXcolorgray 523
-232 a
-SDict begin H.R end
- 523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.7) cvn H.B /DEST pdfmark
-end
- 523 232 a Black 1036 w Fx(An)25
-b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)238
-b(7)p Black 523 448 a FA(systems)26 b(lik)n(e)g([)p 0 1 0
-TeXcolorrgb 1004 448 a
-SDict begin H.S end
- 1004 448 a 0 1 0 TeXcolorrgb FA(7)p
-0 1 0 TeXcolorrgb 1045 395 a
-SDict begin H.R end
- 1045 395 a 1045 448 a
+ 1045 2408 a 1045 2462 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.cfs:sosp01) cvn H.B /ANN pdfmark end
- 1045
-448 a Black FA(,)p 0 1 0 TeXcolorrgb 1068 448 a
+ 1045 2462 a Black
+FA(,)p 0 1 0 TeXcolorrgb 1068 2462 a
 SDict begin H.S end
- 1068
-448 a 0 1 0 TeXcolorrgb FA(23)p 0 1 0 TeXcolorrgb 1152
-395 a
+ 1068 2462 a 0 1 0
+TeXcolorrgb FA(26)p 0 1 0 TeXcolorrgb 1152 2408 a
 SDict begin H.R end
- 1152 395 a 1152 448 a
+ 1152
+2408 a 1152 2462 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.rowstron01storage) cvn H.B /ANN pdfmark end
- 1152 448 a Black FA(])g(route)g(con)n(ten)n
-(t)g(using)g(distributed)g(hash)g(tables)g([)p 0 1 0
-TeXcolorrgb 2805 448 a
+ 1152 2462 a Black FA(])g(route)g(con)n(ten)n(t)g
+(using)g(distributed)g(hash)g(tables)g([)p 0 1 0 TeXcolorrgb
+2805 2462 a
 SDict begin H.S end
- 2805 448 a 0 1 0 TeXcolorrgb FA(16)p
-0 1 0 TeXcolorrgb 2889 395 a
+ 2805 2462 a 0 1 0 TeXcolorrgb FA(18)p 0 1 0
+TeXcolorrgb 2889 2408 a
 SDict begin H.R end
- 2889 395 a 2889 448 a
+ 2889 2408 a 2889 2462 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.maymounkov02kademlia) cvn H.B /ANN pdfmark end
  2889
-448 a Black FA(,)p 0 1 0 TeXcolorrgb 2912 448 a
+2462 a Black FA(,)p 0 1 0 TeXcolorrgb 2912 2462 a
 SDict begin H.S end
  2912
-448 a 0 1 0 TeXcolorrgb FA(25)p 0 1 0 TeXcolorrgb 2995
-395 a
+2462 a 0 1 0 TeXcolorrgb FA(28)p 0 1 0 TeXcolorrgb 2995
+2408 a
 SDict begin H.R end
- 2995 395 a 2995 448 a
+ 2995 2408 a 2995 2462 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.stoica01chord) cvn H.B /ANN pdfmark end
- 2995 448 a Black FA(])g(to)g(ac)n(hiev)n(e)
-523 548 y Fq(O)r FA(\(log)15 b Fq(n)p FA(\))32 b(scalabilit)n(y)-7
+ 2995 2462 a Black FA(])g(to)g(ac)n(hiev)
+n(e)523 2561 y Fs(O)r FA(\(log)15 b Fs(n)p FA(\))32 b(scalabilit)n(y)-7
 b(.)30 b(W)-7 b(ritable)32 b(distributed)g(\014le)f(systems)g(t)n
-(ypically)g(require)g(users)f(to)523 648 y(authen)n(ticate)25
+(ypically)g(require)g(users)f(to)523 2661 y(authen)n(ticate)25
 b(themselv)n(es)g(b)r(efore)f(b)r(eing)i(gran)n(ted)e(access)f(to)i
-(the)h(system)f(b)n(y)g(one)g(of)g(the)523 747 y(serv)n(ers)33
-b([)p 0 1 0 TeXcolorrgb 827 747 a
+(the)h(system)f(b)n(y)g(one)g(of)g(the)523 2761 y(serv)n(ers)33
+b([)p 0 1 0 TeXcolorrgb 827 2761 a
 SDict begin H.S end
- 827 747 a 0 1 0 TeXcolorrgb
-FA(17)p 0 1 0 TeXcolorrgb 910 694 a
+ 827 2761 a 0 1 0 TeXcolorrgb
+FA(19)p 0 1 0 TeXcolorrgb 910 2707 a
 SDict begin H.R end
- 910 694 a 910 747
+ 910 2707 a 910 2761
 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.mazires00sfs) cvn H.B /ANN pdfmark end
- 910 747 a Black FA(].)j(ECRS)e(fo)r(cuses)h(on)g(encrypting)g(shared)
-f(data)g(while)i(allo)n(wing)d(p)r(eers)i(to)523 847
-y(v)n(erify)21 b(the)h(in)n(tegrit)n(y)f(of)g(the)h(encrypted)g(data)f
-(that)h(they)g(are)f(routing.)g(In)h(SUNDR)h([)p 0 1 0
-TeXcolorrgb 3236 847 a
+ 910 2761 a Black FA(].)j(ECRS)e(fo)r(cuses)h(on)g(encrypting)g
+(shared)f(data)g(while)i(allo)n(wing)d(p)r(eers)i(to)523
+2860 y(v)n(erify)21 b(the)h(in)n(tegrit)n(y)f(of)g(the)h(encrypted)g
+(data)f(that)h(they)g(are)f(routing.)g(In)h(SUNDR)h([)p
+0 1 0 TeXcolorrgb 3236 2860 a
 SDict begin H.S end
- 3236 847 a 0 1 0 TeXcolorrgb FA(18)p
-0 1 0 TeXcolorrgb 3319 793 a
+ 3236 2860 a 0 1 0 TeXcolorrgb
+FA(20)p 0 1 0 TeXcolorrgb 3319 2807 a
 SDict begin H.R end
- 3319 793 a 3319 847 a
+ 3319 2807 a 3319
+2860 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.mazieres02building) cvn H.B /ANN pdfmark end
- 3319
-847 a Black FA(])e(a)523 946 y(similar)g(problem)h(is)g(addressed;)f
-(here)g(users)g(can)h(detect)h(tamp)r(ering)e(b)n(y)h(the)g(\(un)n
-(trusted\))523 1046 y(serv)n(er)g(that)i(is)g(storing)f(the)h(data)g
-(in)g(a)g(setting)f(where)h(m)n(ultiple)g(users)f(are)g(up)r(dating)i
-(the)523 1146 y(same)h(data.)g(SUNDR)h(ac)n(hiev)n(es)e(what)h(is)g
-(called)g Ft(fork)k(c)l(onsistency)p FA(,)d(a)e(guaran)n(tee)g(that)h
-(if)523 1245 y(the)h(serv)n(er)e(passes)h(a)h(v)n(ersion)e(that)i(lac)n
-(ks)f(the)h(c)n(hanges)f(of)h(one)f(clien)n(t)h(to)g(another)f(clien)n
-(t)523 1345 y(at)g(one)f(p)r(oin)n(t)h(in)h(time,)f(it)g(can)g(nev)n
-(er)f(again)g(mak)n(e)g(the)h(c)n(hanges)e(of)i(either)g(clien)n(t)g
-(visible)523 1445 y(to)i(the)h(others.)f(This)g(is)g(a)g(w)n(eak)n(er)f
-(guaran)n(tee)f(than)j(the)g(optimal)f(situation)g(where)g(an)n(y)523
-1544 y(misb)r(eha)n(vior)20 b(is)h(detected,)h(ho)n(w)n(ev)n(er)e(it)h
-(is)h(the)f(strongest)g(p)r(ossible)g(prop)r(ert)n(y)f(that)i(can)f(b)r
-(e)523 1644 y(ac)n(hiev)n(ed)h(giv)n(en)g(the)i(securit)n(y)e(mo)r(del)
-i(used.)f(ECRS)g(do)r(es)g(not)g(allo)n(w)f(users)h(with)g(distinct)523
-1743 y(pseudon)n(yms)31 b(to)h(up)r(date)h(the)f(same)g(con)n(ten)n(t)f
-(without)i(essen)n(tially)e(creating)g(t)n(w)n(o)g(\014les.)523
-1843 y(This)36 b(allo)n(ws)e(ECRS)i(to)g(guaran)n(tee)e(that)i(p)r
-(eers)g(can)f(nev)n(er)g(return)h(an)f Ft(invalid)j FA(result)523
-1943 y(since)27 b(ev)n(ery)g(cop)n(y)f(can)i(b)r(e)g(uniquely)f(iden)n
-(ti\014ed)h(at)g(all)f(times.)523 2112 y
+ 3319 2860 a Black FA(])e(a)523 2960 y(similar)g(problem)h(is)g
+(addressed;)f(here)g(users)g(can)h(detect)h(tamp)r(ering)e(b)n(y)h(the)
+g(\(un)n(trusted\))523 3059 y(serv)n(er)g(that)i(is)g(storing)f(the)h
+(data)g(in)g(a)g(setting)f(where)h(m)n(ultiple)g(users)f(are)g(up)r
+(dating)i(the)523 3159 y(same)h(data.)g(SUNDR)h(ac)n(hiev)n(es)e(what)h
+(is)g(called)g Ft(fork)k(c)l(onsistency)p FA(,)d(a)e(guaran)n(tee)g
+(that)h(if)523 3259 y(the)h(serv)n(er)e(passes)h(a)h(v)n(ersion)e(that)
+i(lac)n(ks)f(the)h(c)n(hanges)f(of)h(one)f(clien)n(t)h(to)g(another)f
+(clien)n(t)523 3358 y(at)g(one)f(p)r(oin)n(t)h(in)h(time,)f(it)g(can)g
+(nev)n(er)f(again)g(mak)n(e)g(the)h(c)n(hanges)e(of)i(either)g(clien)n
+(t)g(visible)523 3458 y(to)i(the)h(others.)f(This)g(is)g(a)g(w)n(eak)n
+(er)f(guaran)n(tee)f(than)j(the)g(optimal)f(situation)g(where)g(an)n(y)
+523 3558 y(misb)r(eha)n(vior)20 b(is)h(detected,)h(ho)n(w)n(ev)n(er)e
+(it)h(is)h(the)f(strongest)g(p)r(ossible)g(prop)r(ert)n(y)f(that)i(can)
+f(b)r(e)523 3657 y(ac)n(hiev)n(ed)h(giv)n(en)g(the)i(securit)n(y)e(mo)r
+(del)i(used.)f(ECRS)g(do)r(es)g(not)g(allo)n(w)f(users)h(with)g
+(distinct)523 3757 y(pseudon)n(yms)31 b(to)h(up)r(date)h(the)f(same)g
+(con)n(ten)n(t)f(without)i(essen)n(tially)e(creating)g(t)n(w)n(o)g
+(\014les.)523 3856 y(This)36 b(allo)n(ws)e(ECRS)i(to)g(guaran)n(tee)e
+(that)i(p)r(eers)g(can)f(nev)n(er)g(return)h(an)f Ft(invalid)j
+FA(result)523 3956 y(since)27 b(ev)n(ery)g(cop)n(y)f(can)i(b)r(e)g
+(uniquely)f(iden)n(ti\014ed)h(at)g(all)f(times.)523 4101
+y
 SDict begin H.S end
- 523 2112 a 523
-2112 a
+ 523 4101 a 523 4101 a
 SDict begin 12 H.A end
- 523 2112 a 523 2112 a
+ 523 4101 a 523 4101 a
 SDict begin [ /View [/XYZ H.V] /Dest (section.1.3) cvn H.B /DEST pdfmark
 end
- 523 2112 a 101 x Fu(3)112
-b(ECRS)37 b(enco)s(ding)523 2416 y FA(The)30 b(primary)e(requiremen)n
-(ts)h(for)g(the)h(ECRS)f(enco)r(ding)g(are)g Ft(plausible)k
-(deniability)f FA(and)523 2516 y Ft(r)l(obustness)p FA(.)22
-b(Plausible)f(deniabilit)n(y)h(describ)r(es)g(the)g(abilit)n(y)g(of)g
-(the)h(participan)n(ts)e(to)h(claim)523 2615 y(ignorance)k(of)i(the)g
-(nature)f(of)h(transferred)e(con)n(ten)n(t.)h(The)h(idea)f(here)h(is)f
-(that)h(b)n(y)g(making)523 2715 y(it)g(hard)f(for)g(in)n(termediaries)g
-(to)g(determine)h(the)g(con)n(ten)n(ts)f(that)h(they)g(are)f(routing,)g
-(they)523 2814 y(are)h(less)h(lik)n(ely)f(to)i(casually)d(infringe)i
-(on)g(the)h(priv)-5 b(acy)28 b(of)h(other)g(users,)f(to)h(b)r(e)h
-(forced)e(to)523 2914 y(do)c(so)g(b)n(y)g(an)h(adv)n(ersary)c(and)k
-(\014nally)f(to)g(b)r(e)h(held)g(resp)r(onsible)f(for)g(the)h(actions)e
-(of)i(others)523 3014 y(that)34 b(they)g(w)n(ere)e(un)n(wittingly)i
-(facilitating.)p 1 0 0 TeXcolorrgb 1961 3014 a
+ 523 4101
+a 100 x Fu(3)112 b(ECRS)37 b(enco)s(ding)523 4380 y FA(The)30
+b(primary)e(requiremen)n(ts)h(for)g(the)h(ECRS)f(enco)r(ding)g(are)g
+Ft(plausible)k(deniability)f FA(and)523 4479 y Ft(r)l(obustness)p
+FA(.)22 b(Plausible)f(deniabilit)n(y)h(describ)r(es)g(the)g(abilit)n(y)
+g(of)g(the)h(participan)n(ts)e(to)h(claim)p Black 523
+4538 473 4 v 546 4592 a Fy(1)p 0 TeXcolorgray 606 4532
+a
 SDict begin H.S end
- 1961 3014
-a -30 x Fz(2)1998 3014 y
-SDict begin 12 H.L end
- 1998 3014 a 1998 3014 a
-SDict begin [ /Subtype /Link /Dest (Hfootnote.2) cvn /H /I /Border
-[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end
- 1998
-3014 a Black 34 w FA(Robustness)f(is)h(the)g(enco)r(ding)f(abilit)n(y)g
-(to)523 3113 y(resist)i(attac)n(ks)f(suc)n(h)h(as)f(data)h(corruption)f
-(and)h(spam.)g(Spam)g(is)g(di\013eren)n(t)h(from)e(data)523
-3213 y(corruption)29 b(in)h(that)h(the)f(goal)f(of)h(the)g(spammer)g
-(is)g(to)g(direct)g(the)g(user)g(to)g(undesirable)523
-3313 y(con)n(ten)n(t,)d(p)r(ossibly)h(hiding)f(useful)i(information)e
-(in)h(a)f(sea)g(of)h(useless)f(results.)g(Naturally)523
-3412 y(the)h(enco)r(ding)e(should)h(not)g(signi\014can)n(tly)g
-(increase)f(the)h(amoun)n(t)g(of)g(data)g(that)g(needs)g(to)523
-3512 y(b)r(e)h(transferred.)648 3612 y(The)34 b(ECRS)g(enco)r(ding)g
-(sc)n(heme)g(addresses)f(these)i(requiremen)n(ts.)e(ECRS)h(pro)n(vides)
-523 3712 y(plausible)40 b(deniabilit)n(y)f(b)n(y)h(hiding)g(the)g
-(nature)f(of)h(the)g(queries)f(and)h(resp)r(onses)e(from)523
-3812 y(in)n(termediaries)29 b(through)h(encryption.)g(Despite)h(the)g
-(fact)g(that)f(queries)g(and)g(resp)r(onses)523 3911
-y(are)21 b(encrypted,)h(in)n(termediaries)e(can)i Ft(verify)i
-FA(that)e(the)g(resp)r(onses)f(are)g(v)-5 b(alid)22 b(with)g(resp)r
-(ect)523 4011 y(to)f(a)g(particular)e(query)-7 b(.)21
-b(Th)n(us,)g(the)g(enco)r(ding)g(mec)n(hanism)g(pro)n(vides)e
-(robustness)h(against)523 4110 y(tamp)r(ering)g(and)g(false)h(replies.)
-e(Additional)i(robustness)e(is)i(gained)f(in)g(ECRS)g(b)n(y)h
-(splitting)523 4210 y(\014les)j(in)n(to)g(blo)r(c)n(ks)f(that)i(can)f
-(b)r(e)g Ft(indep)l(endently)i FA(v)n(eri\014ed,)d(stored)g(and)h
-(distributed)h(across)523 4310 y(the)c(net)n(w)n(ork.)e(This)h(mak)n
-(es)g(it)h(easy)e(for)h(proto)r(cols)f(using)h(ECRS)g(to)h(incorp)r
-(orate)e(features)p Black 523 4382 473 4 v 546 4436 a
-Fy(2)p 0 TeXcolorgray 606 4376 a
-SDict begin H.S end
- 606 4376 a 0 TeXcolorgray
-0 TeXcolorgray 606 4376 a
+ 606 4532 a 0 TeXcolorgray 0 TeXcolorgray 606 4532 a
 SDict begin H.R end
- 606 4376 a 606 4376 a
-SDict begin [ /View [/XYZ H.V] /Dest (Hfootnote.2) cvn H.B /DEST pdfmark
+
+606 4532 a 606 4532 a
+SDict begin [ /View [/XYZ H.V] /Dest (Hfootnote.1) cvn H.B /DEST pdfmark
 end
- 606 4376
-a Black 92 x Fx(If)g(the)g(data)g(cannot)g(b)r(e)f(iden)n(ti\014ed,)h
-(editorial)h(con)n(trol)g(is)f(tec)n(hnically)g(imp)r(ossible.)i(In)d
-Fp(Str)l(atton)606 4559 y(Oakmont)36 b(v.)g(Pr)l(o)l(digy)p
-Fx(,)g(an)e(In)n(ternet)f(pro)n(vider)h(w)n(as)i(found)e(liable)i(for)f
-(hosting)g(a)g(bulletin)606 4650 y(b)r(oard)29 b(on)h(whic)n(h)f
-(o\013ensiv)n(e)g(messages)i(had)e(b)r(een)g(p)r(osted.)h(This)g
-(\014nding)e(resulted)h(b)r(ecause)606 4742 y(the)g(pro)n(vider)g(had)g
-(hired)g(individuals)h(to)f(exercise)i(editorial)f(con)n(trol)g(o)n(v)n
-(er)g(con)n(ten)n(t.)f(If)g(the)606 4833 y(pro)n(vider)17
-b(had)g(merely)h(published)f(messages)j(from)e(users)g(without)g(in)n
-(terference,)g(the)f(pro)n(vider)606 4924 y(w)n(ould)26
-b(p)r(oten)n(tially)g(not)g(ha)n(v)n(e)f(b)r(een)g(held)h(accoun)n
-(table)g([)p 0 1 0 TeXcolorrgb 2319 4924 a
+ 606 4532 a Black 92 x Fx(Proto)r(col)28
+b(description)e(from)g(the)g(giFT-F)-6 b(astT)g(rac)n(k)26
+b(pro)t(ject)h(is)f(a)n(v)l(ailable)h(at)p 0 1 0 0 TeXcolorcmyk
+689 4802 a
 SDict begin H.S end
- 2319 4924
-a 0 1 0 TeXcolorrgb Fx(26)p 0 1 0 TeXcolorrgb 2396 4876
+ 689 4802 a 0 1 0 0 TeXcolorcmyk -16 x Fw
+(http://gnunet.org/papers/FAST)q(-)t(TR)q(ACK-)5 b(PROTO)q(COL)p
+0 1 0 0 TeXcolorcmyk 2423 4734 a
+SDict begin H.R end
+ 2423 4734 a 2423 4786
 a
-SDict begin H.R end
- 2396 4876 a 2396 4924 a
-SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
-(cite.stratton_oakmont) cvn H.B /ANN pdfmark end
- 2396 4924 a Black Fx(].)p Black
-Black Black eop end
+SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype
+/URI /URI (http://gnunet.org/papers/FAST-TRACK-PROTOCOL) >> /Subtype
+/Link H.B /ANN pdfmark end
+ 2423 4786 a Black Fx(.)p Black Black Black eop end
 %%Page: 8 8
 TeXDict begin 8 7 bop 0 0 a
 SDict begin /product where{pop product(Distiller)search{pop pop pop
@@ -6456,356 +6489,508 @@
 end
  523 232 a Black Fx(8)237 b(C.)27
 b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
-Black Black 1957 442 a Fo(K)5 b(B)t(l)q(ock)2091 526
-y Fn(\017)p Fm(\017)p 2090 526 4 60 v 1947 603 a Fo(I)h(B)t(l)q(ock)
-2183 612 y Fl(>)1249 724 y Fn(r)p Fm(r)1249 723 y Fk(d)1288
-717 y(d)1328 710 y(d)1367 703 y(d)1407 697 y(d)1446 690
-y(d)1486 683 y(d)1525 677 y(d)1565 670 y(d)1605 663 y(d)1644
-656 y(d)1684 650 y(d)1723 643 y(d)1763 636 y(d)1802 630
-y(d)1842 623 y(d)1881 616 y(d)2091 722 y Fn(\017)p Fm(\017)p
-2090 722 4 86 v 2968 725 a Fn(,)p Fm(,)2927 718 y Fk(Z)2888
-712 y(Z)2849 705 y(Z)2810 699 y(Z)2770 692 y(Z)2731 686
-y(Z)2692 679 y(Z)2653 673 y(Z)2613 667 y(Z)2574 660 y(Z)2535
-654 y(Z)2496 647 y(Z)2456 641 y(Z)2417 634 y(Z)2378 628
-y(Z)2339 622 y(Z)2299 615 y(Z)2260 609 y(Z)953 773 y
-Fo(I)g(B)t(l)q(ock)1189 781 y Fy(1)823 866 y Fn(v)p Fm(v)p
-Fk(m)857 851 y(m)890 837 y(m)923 823 y(m)1088 892 y Fn(\017)p
-Fm(\017)p 1087 892 V 1349 865 a Fn(\()p Fm(\()1311 849
-y Fk(Q)1279 834 y(Q)1246 820 y(Q)1214 806 y(Q)2046 755
-y Fo(:)14 b(:)f(:)1752 909 y Fn(v)p Fm(v)p Fk(n)1786
-893 y(n)1821 877 y(n)1855 861 y(n)1889 845 y(n)1923 829
-y(n)1957 813 y(n)1992 798 y(n)2091 892 y Fn(\017)p Fm(\017)p
-2090 892 4 112 v 2430 909 a Fn(\()p Fm(\()2393 891 y
-Fk(P)2358 876 y(P)2324 860 y(P)2290 844 y(P)2256 828
-y(P)2222 812 y(P)2188 796 y(P)2153 780 y(P)2993 772 y
-Fo(I)6 b(B)t(l)q(ock)3229 781 y Fj(k)2856 866 y Fn(v)p
-Fm(v)2856 865 y Fk(l)2890 851 y(l)2925 836 y(l)2959 822
-y(l)3130 892 y Fn(\017)p Fm(\017)p 3129 892 4 86 v 3399
-866 a Fn(\()p Fm(\()3361 849 y Fk(Q)3327 835 y(Q)3294
-821 y(Q)3260 806 y(Q)548 942 y Fo(D)r(B)t(l)q(ock)809
-950 y Fy(1)696 1066 y Fn(\017)p Fm(\017)p 695 1066 4
-91 v 1044 925 a Fo(:)13 b(:)g(:)1088 1066 y Fn(\017)p
-Fm(\017)p 1087 1066 4 117 v 1333 942 a Fo(D)r(B)t(l)q(ock)1594
-951 y Fj(l)1476 1066 y Fn(\017)p Fm(\017)p 1474 1066
-4 91 v 2046 925 a Fo(:)h(:)f(:)2091 1035 y Fn(\017)p
-Fm(\017)p 2090 1035 4 86 v 2564 942 a Fo(D)r(B)t(l)q(ock)2825
-950 y Fj(m)2724 1066 y Fn(\017)p Fm(\017)p 2723 1066
-4 91 v 3085 925 a Fo(:)h(:)f(:)3130 1066 y Fn(\017)p
-Fm(\017)p 3129 1066 4 117 v 3376 942 a Fo(D)r(B)t(l)q(ock)3637
-950 y Fj(n)3528 1066 y Fn(\017)p Fm(\017)p 3527 1066
-4 91 v 1836 1105 a Fw(Original)41 b(data)523 1301 y Fr(Fig.)15
-b(1.)p 0 TeXcolorgray 814 1201 a
+Black 523 448 a FA(ignorance)f(of)i(the)g(nature)f(of)h(transferred)e
+(con)n(ten)n(t.)h(The)h(idea)f(here)h(is)f(that)h(b)n(y)g(making)523
+548 y(it)g(hard)f(for)g(in)n(termediaries)g(to)g(determine)h(the)g(con)
+n(ten)n(ts)f(that)h(they)g(are)f(routing,)g(they)523
+648 y(are)h(less)h(lik)n(ely)f(to)i(casually)d(infringe)i(on)g(the)h
+(priv)-5 b(acy)28 b(of)h(other)g(users,)f(to)h(b)r(e)h(forced)e(to)523
+747 y(do)c(so)g(b)n(y)g(an)h(adv)n(ersary)c(and)k(\014nally)f(to)g(b)r
+(e)h(held)g(resp)r(onsible)f(for)g(the)h(actions)e(of)i(others)523
+847 y(that)34 b(they)g(w)n(ere)e(un)n(wittingly)i(facilitating.)p
+1 0 0 TeXcolorrgb 1961 847 a
 SDict begin H.S end
- 814 1201 a 0 TeXcolorgray
-0 TeXcolorgray 814 1201 a
-SDict begin H.R end
- 814 1201 a 814 1201 a
-SDict begin [ /View [/XYZ H.V] /Dest (figure.1.1) cvn H.B /DEST pdfmark
-end
- 814 1201
-a Black 100 x FA(Simple)40 b(enco)r(ding)g(of)f(a)h(\014le)g(using)f(a)
-h(tree)f(of)h(CHK)g(blo)r(c)n(ks)f(\()p Fq(D)r(B)t(l)r(ock)s
-FA(s)g(and)523 1400 y Fq(I)7 b(B)t(l)r(ock)s FA(s)41
-b(are)f(CHK)i(enco)r(ded\))f(with)h(one)g Fq(K)6 b(B)t(l)r(ock)43
-b FA(to)e(allo)n(w)g(for)g(a)g(k)n(eyw)n(ord-based)523
-1500 y(searc)n(h.)p Black Black Black 523 1957 a(suc)n(h)27
-b(as)f(sw)n(arm)g(distribution)h([)p 0 1 0 TeXcolorrgb
-1547 1957 a
+ 1961 847 a -30 x Fz(2)1998
+847 y
+SDict begin 12 H.L end
+ 1998 847 a 1998 847 a
+SDict begin [ /Subtype /Link /Dest (Hfootnote.2) cvn /H /I /Border
+[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end
+ 1998 847 a Black 34 w FA(Robustness)f(is)h
+(the)g(enco)r(ding)f(abilit)n(y)g(to)523 946 y(resist)i(attac)n(ks)f
+(suc)n(h)h(as)f(data)h(corruption)f(and)h(spam.)g(Spam)g(is)g
+(di\013eren)n(t)h(from)e(data)523 1046 y(corruption)29
+b(in)h(that)h(the)f(goal)f(of)h(the)g(spammer)g(is)g(to)g(direct)g(the)
+g(user)g(to)g(undesirable)523 1146 y(con)n(ten)n(t,)d(p)r(ossibly)h
+(hiding)f(useful)i(information)e(in)h(a)f(sea)g(of)h(useless)f
+(results.)g(Naturally)523 1245 y(the)h(enco)r(ding)e(should)h(not)g
+(signi\014can)n(tly)g(increase)f(the)h(amoun)n(t)g(of)g(data)g(that)g
+(needs)g(to)523 1345 y(b)r(e)h(transferred.)648 1448
+y(The)34 b(ECRS)g(enco)r(ding)g(sc)n(heme)g(addresses)f(these)i
+(requiremen)n(ts.)e(ECRS)h(pro)n(vides)523 1548 y(plausible)40
+b(deniabilit)n(y)f(b)n(y)h(hiding)g(the)g(nature)f(of)h(the)g(queries)f
+(and)h(resp)r(onses)e(from)523 1648 y(in)n(termediaries)29
+b(through)h(encryption.)g(Despite)h(the)g(fact)g(that)f(queries)g(and)g
+(resp)r(onses)523 1747 y(are)21 b(encrypted,)h(in)n(termediaries)e(can)
+i Ft(verify)i FA(that)e(the)g(resp)r(onses)f(are)g(v)-5
+b(alid)22 b(with)g(resp)r(ect)523 1847 y(to)f(a)g(particular)e(query)-7
+b(.)21 b(Th)n(us,)g(the)g(enco)r(ding)g(mec)n(hanism)g(pro)n(vides)e
+(robustness)h(against)523 1947 y(tamp)r(ering)g(and)g(false)h(replies.)
+e(Additional)i(robustness)e(is)i(gained)f(in)g(ECRS)g(b)n(y)h
+(splitting)523 2046 y(\014les)j(in)n(to)g(blo)r(c)n(ks)f(that)i(can)f
+(b)r(e)g Ft(indep)l(endently)i FA(v)n(eri\014ed,)d(stored)g(and)h
+(distributed)h(across)523 2146 y(the)c(net)n(w)n(ork.)e(This)h(mak)n
+(es)g(it)h(easy)e(for)h(proto)r(cols)f(using)h(ECRS)g(to)h(incorp)r
+(orate)e(features)523 2245 y(suc)n(h)27 b(as)f(sw)n(arm)g(distribution)
+h([)p 0 1 0 TeXcolorrgb 1547 2245 a
 SDict begin H.S end
- 1547 1957 a 0 1 0 TeXcolorrgb FA(13)p 0 1 0
-TeXcolorrgb 1630 1904 a
+ 1547 2245 a 0 1 0
+TeXcolorrgb FA(15)p 0 1 0 TeXcolorrgb 1630 2192 a
 SDict begin H.R end
- 1630 1904 a 1630 1957 a
+ 1630
+2192 a 1630 2245 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.hartman99swarm) cvn H.B /ANN pdfmark end
- 1630
-1957 a Black FA(],)g(load)f(balancing)g(and)h(micro)r(economics)e([)p
-0 1 0 TeXcolorrgb 3036 1957 a
+ 1630 2245 a Black FA(],)g(load)f(balancing)g(and)h
+(micro)r(economics)e([)p 0 1 0 TeXcolorrgb 3036 2245
+a
 SDict begin H.S end
- 3036 1957 a 0 1 0 TeXcolorrgb
-FA(11)p 0 1 0 TeXcolorrgb 3119 1904 a
+ 3036 2245 a 0 1 0 TeXcolorrgb FA(13)p 0 1 0 TeXcolorrgb
+3119 2192 a
 SDict begin H.R end
- 3119 1904 a 3119
-1957 a
+ 3119 2192 a 3119 2245 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.ebe2003) cvn H.B /ANN pdfmark end
- 3119 1957 a Black FA(].)i(These)523 2057 y(features)g(are)g
-(also)g(signi\014can)n(t)g(from)h(the)g(viewp)r(oin)n(t)g(of)g
-(scalabilit)n(y)-7 b(.)27 b(When)h(all)g(handled)523
-2157 y(blo)r(c)n(ks)d(are)g(small,)h(no)r(des)g(can)f(participate)g(in)
-i(the)f(net)n(w)n(ork)e(activit)n(y)i(ev)n(en)f(if)i(their)f(o)n(wn)523
-2256 y(resources)36 b(are)h(limited.)i(Also,)f(storing)f(small,)h
-(individually)g(unin)n(telligible)g(pieces)g(of)523 2356
-y(p)r(oten)n(tially)19 b(ob)5 b(jectionable)18 b(con)n(ten)n(t)h(is)g
-(lik)n(ely)f(to)h(further)g(supp)r(ort)g(plausible)g(deniabilit)n(y)-7
-b(.)648 2461 y(The)23 b(rest)g(of)h(this)g(Section)f(giv)n(es)g(a)g(b)r
+ 3119 2245 a Black
+FA(].)i(These)523 2345 y(features)g(are)g(also)g(signi\014can)n(t)g
+(from)h(the)g(viewp)r(oin)n(t)g(of)g(scalabilit)n(y)-7
+b(.)27 b(When)h(all)g(handled)523 2445 y(blo)r(c)n(ks)d(are)g(small,)h
+(no)r(des)g(can)f(participate)g(in)i(the)f(net)n(w)n(ork)e(activit)n(y)
+i(ev)n(en)f(if)i(their)f(o)n(wn)523 2544 y(resources)36
+b(are)h(limited.)i(Also,)f(storing)f(small,)h(individually)g(unin)n
+(telligible)g(pieces)g(of)523 2644 y(p)r(oten)n(tially)19
+b(ob)5 b(jectionable)18 b(con)n(ten)n(t)h(is)g(lik)n(ely)f(to)h
+(further)g(supp)r(ort)g(plausible)g(deniabilit)n(y)-7
+b(.)648 2748 y(The)23 b(rest)g(of)h(this)g(Section)f(giv)n(es)g(a)g(b)r
 (ottom-up)h(description)f(of)g(ECRS.)h(After)g(a)f(brief)523
-2561 y(o)n(v)n(erview,)29 b(P)n(art)p 1 0 0 TeXcolorrgb
-1083 2561 a
+2847 y(o)n(v)n(erview,)29 b(P)n(art)p 1 0 0 TeXcolorrgb
+1083 2847 a
 SDict begin H.S end
- 1083 2561 a 1 0 0 TeXcolorrgb FA(3.2)p 1 0 0
-TeXcolorrgb 1189 2507 a
+ 1083 2847 a 1 0 0 TeXcolorrgb FA(3.2)p 1 0 0
+TeXcolorrgb 1189 2794 a
 SDict begin H.R end
- 1189 2507 a 1189 2561 a
+ 1189 2794 a 1189 2847 a
 SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (subsection.1.3.2) cvn H.B /ANN pdfmark end
  1189
-2561 a Black 31 w FA(sho)n(ws)h(ho)n(w)g(individual)h(data)g(blo)r(c)n
-(ks)f(are)g(encrypted)h(in)g(order)f(to)523 2660 y(mak)n(e)c(it)i(imp)r
+2847 a Black 31 w FA(sho)n(ws)h(ho)n(w)g(individual)h(data)g(blo)r(c)n
+(ks)f(are)g(encrypted)h(in)g(order)f(to)523 2947 y(mak)n(e)c(it)i(imp)r
 (ossible)f(for)g(the)h(in)n(termediaries)e(to)h(determine)g(what)g
-(they)h(are)e(storing)g(or)523 2760 y(transmitting.)k(P)n(art)p
-1 0 0 TeXcolorrgb 1219 2760 a
+(they)h(are)e(storing)g(or)523 3046 y(transmitting.)k(P)n(art)p
+1 0 0 TeXcolorrgb 1219 3046 a
 SDict begin H.S end
- 1219 2760 a 1 0 0 TeXcolorrgb
-FA(3.3)p 1 0 0 TeXcolorrgb 1325 2706 a
+ 1219 3046 a 1 0 0 TeXcolorrgb
+FA(3.3)p 1 0 0 TeXcolorrgb 1325 2993 a
 SDict begin H.R end
- 1325 2706 a 1325
-2760 a
+ 1325 2993 a 1325
+3046 a
 SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (subsection.1.3.3) cvn H.B /ANN pdfmark end
- 1325 2760 a Black 31 w FA(then)g(describ)r(es)f(ho)n(w)h
+ 1325 3046 a Black 31 w FA(then)g(describ)r(es)f(ho)n(w)h
 (\014les)g(are)f(split)h(in)n(to)g(those)f(data)h(blo)r(c)n(ks.)523
-2860 y(P)n(arts)p 1 0 0 TeXcolorrgb 742 2860 a
+3146 y(P)n(arts)p 1 0 0 TeXcolorrgb 742 3146 a
 SDict begin H.S end
- 742 2860
-a 1 0 0 TeXcolorrgb FA(3.4)p 1 0 0 TeXcolorrgb 848 2806
+ 742 3146
+a 1 0 0 TeXcolorrgb FA(3.4)p 1 0 0 TeXcolorrgb 848 3093
 a
 SDict begin H.R end
- 848 2806 a 848 2860 a
+ 848 3093 a 848 3146 a
 SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (subsection.1.3.4) cvn H.B /ANN pdfmark end
- 848 2860 a Black 25 w FA(through)p
-1 0 0 TeXcolorrgb 1184 2860 a
+ 848 3146 a Black 25 w FA(through)p
+1 0 0 TeXcolorrgb 1184 3146 a
 SDict begin H.S end
- 1184 2860 a 1 0 0 TeXcolorrgb
-FA(3.6)p 1 0 0 TeXcolorrgb 1290 2806 a
+ 1184 3146 a 1 0 0 TeXcolorrgb
+FA(3.6)p 1 0 0 TeXcolorrgb 1290 3093 a
 SDict begin H.R end
- 1290 2806 a 1290
-2860 a
+ 1290 3093 a 1290
+3146 a
 SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (subsection.1.3.6) cvn H.B /ANN pdfmark end
- 1290 2860 a Black 26 w FA(motiv)-5 b(ates)25 b(and)g(explains)f
+ 1290 3146 a Black 26 w FA(motiv)-5 b(ates)25 b(and)g(explains)f
 (ho)n(w)h(ECRS)g(enables)f(users)g(to)i(searc)n(h)523
-2959 y(for)f(con)n(ten)n(t)f(without)i(exp)r(osing)e(the)h(\(plain)n
+3246 y(for)f(con)n(ten)n(t)f(without)i(exp)r(osing)e(the)h(\(plain)n
 (text\))h(query)e(or)g(the)h(corresp)r(onding)e(con)n(ten)n(t)523
-3059 y(and)39 b(ho)n(w)g(in)n(termediaries)f(can)h(v)n(erify)f(that)i
+3345 y(and)39 b(ho)n(w)g(in)n(termediaries)f(can)h(v)n(erify)f(that)i
 (a)f(giv)n(en)f(encrypted)h(reply)g(matc)n(hes)g(the)523
-3158 y(encrypted)c(query)-7 b(.)34 b(Finally)-7 b(,)35
+3445 y(encrypted)c(query)-7 b(.)34 b(Finally)-7 b(,)35
 b(the)g(core)f(of)h(ECRS)g(is)f(summarized)h(in)g(the)g(form)g(of)g
-(the)523 3258 y(enco)r(ding)27 b(algorithm)g(and)g(a)g(proto)r(col)g
-(example.)523 3446 y
+(the)523 3545 y(enco)r(ding)27 b(algorithm)g(and)g(a)g(proto)r(col)g
+(example.)523 3726 y
 SDict begin H.S end
- 523 3446 a 523 3446 a
+ 523 3726 a 523 3726 a
 SDict begin 12 H.A end
- 523 3446 a
-523 3446 a
+ 523 3726 a
+523 3726 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.3.1) cvn H.B /DEST
 pdfmark end
- 523 3446 a 89 x Fr(3.1)95 b(Ov)m(erview)523
-3729 y FA(In)35 b(ECRS,)g(the)g(enco)r(ded)g(represen)n(tation)f(of)h
+ 523 3726 a 87 x Fq(3.1)95 b(Ov)m(erview)523
+3999 y FA(In)35 b(ECRS,)g(the)g(enco)r(ded)g(represen)n(tation)f(of)h
 (a)f(\014le)h(is)g(a)g(collection)f(of)h(blo)r(c)n(ks.)g(There)523
-3828 y(are)26 b(four)g(t)n(yp)r(es)h(of)g(blo)r(c)n(ks:)f
+4098 y(are)26 b(four)g(t)n(yp)r(es)h(of)g(blo)r(c)n(ks:)f
 Ft(DBlo)l(cks)p FA(,)i Ft(IBlo)l(cks)p FA(,)g Ft(SBlo)l(cks)g
 FA(and)e Ft(KBlo)l(cks)p FA(.)i(The)f(maxim)n(um)523
-3928 y(size)33 b(of)h(all)g(blo)r(c)n(ks)f(in)h(ECRS)f(is)h(supp)r
+4198 y(size)33 b(of)h(all)g(blo)r(c)n(ks)f(in)h(ECRS)f(is)h(supp)r
 (osed)f(to)h(b)r(e)g(\014xed)g(b)n(y)f(some)h(small)f(n)n(um)n(b)r(er,)
-h(for)523 4028 y(example)29 b(32k.)g(The)g(blo)r(c)n(ks)g(are)f(used)i
-(to)f(create)g(a)g(tree)g(structure)g(of)h(the)f(enco)r(ded)h(\014le)
-523 4127 y(\(see)h(Figure)p 1 0 0 TeXcolorrgb 958 4127
+h(for)523 4297 y(example)29 b(32k.)g(The)g(blo)r(c)n(ks)g(are)f(used)i
+(to)f(create)g(a)g(tree)g(structure)g(of)h(the)f(enco)r(ded)h(\014le)p
+Black 523 4382 473 4 v 546 4436 a Fy(2)p 0 TeXcolorgray
+606 4376 a
+SDict begin H.S end
+ 606 4376 a 0 TeXcolorgray 0 TeXcolorgray 606
+4376 a
+SDict begin H.R end
+ 606 4376 a 606 4376 a
+SDict begin [ /View [/XYZ H.V] /Dest (Hfootnote.2) cvn H.B /DEST pdfmark
+end
+ 606 4376 a Black 92 x Fx(If)19
+b(the)g(data)g(cannot)g(b)r(e)f(iden)n(ti\014ed,)h(editorial)h(con)n
+(trol)g(is)f(tec)n(hnically)g(imp)r(ossible.)i(In)d Fp(Str)l(atton)606
+4559 y(Oakmont)36 b(v.)g(Pr)l(o)l(digy)p Fx(,)g(an)e(In)n(ternet)f(pro)
+n(vider)h(w)n(as)i(found)e(liable)i(for)f(hosting)g(a)g(bulletin)606
+4650 y(b)r(oard)29 b(on)h(whic)n(h)f(o\013ensiv)n(e)g(messages)i(had)e
+(b)r(een)g(p)r(osted.)h(This)g(\014nding)e(resulted)h(b)r(ecause)606
+4742 y(the)g(pro)n(vider)g(had)g(hired)g(individuals)h(to)f(exercise)i
+(editorial)f(con)n(trol)g(o)n(v)n(er)g(con)n(ten)n(t.)f(If)g(the)606
+4833 y(pro)n(vider)17 b(had)g(merely)h(published)f(messages)j(from)e
+(users)g(without)g(in)n(terference,)g(the)f(pro)n(vider)606
+4924 y(w)n(ould)26 b(p)r(oten)n(tially)g(not)g(ha)n(v)n(e)f(b)r(een)g
+(held)h(accoun)n(table)g([)p 0 1 0 TeXcolorrgb 2319 4924
 a
 SDict begin H.S end
- 958 4127 a 1 0 0 TeXcolorrgb FA(1)p 1 0 0 TeXcolorrgb
-1000 4074 a
+ 2319 4924 a 0 1 0 TeXcolorrgb Fx(29)p 0 1 0 TeXcolorrgb
+2396 4876 a
 SDict begin H.R end
- 1000 4074 a 1000 4127 a
+ 2396 4876 a 2396 4924 a
+SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
+(cite.stratton_oakmont) cvn H.B /ANN pdfmark end
+ 2396 4924 a Black
+Fx(].)p Black Black Black eop end
+%%Page: 9 9
+TeXDict begin 9 8 bop 0 0 a
+SDict begin /product where{pop product(Distiller)search{pop pop pop
+version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
+closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
+grestore}if}{pop}ifelse}{pop}ifelse}if end
+ 0 0 a Black 0 TeXcolorgray
+523 232 a
+SDict begin H.S end
+ 523 232 a 0 TeXcolorgray 0 TeXcolorgray 523
+232 a
+SDict begin H.R end
+ 523 232 a 523 232 a
+SDict begin [ /View [/XYZ H.V] /Dest (page.9) cvn H.B /DEST pdfmark
+end
+ 523 232 a Black 1036 w Fx(An)25
+b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)238
+b(9)p Black Black 1957 442 a Fo(K)5 b(B)t(l)q(ock)2091
+526 y Fn(\017)p Fm(\017)p 2090 526 4 60 v 1947 603 a
+Fo(I)h(B)t(l)q(ock)2183 612 y Fl(>)1249 724 y Fn(r)p
+Fm(r)1249 723 y Fk(d)1288 717 y(d)1328 710 y(d)1367 703
+y(d)1407 697 y(d)1446 690 y(d)1486 683 y(d)1525 677 y(d)1565
+670 y(d)1605 663 y(d)1644 656 y(d)1684 650 y(d)1723 643
+y(d)1763 636 y(d)1802 630 y(d)1842 623 y(d)1881 616 y(d)2091
+722 y Fn(\017)p Fm(\017)p 2090 722 4 86 v 2968 725 a
+Fn(,)p Fm(,)2927 718 y Fk(Z)2888 712 y(Z)2849 705 y(Z)2810
+699 y(Z)2770 692 y(Z)2731 686 y(Z)2692 679 y(Z)2653 673
+y(Z)2613 667 y(Z)2574 660 y(Z)2535 654 y(Z)2496 647 y(Z)2456
+641 y(Z)2417 634 y(Z)2378 628 y(Z)2339 622 y(Z)2299 615
+y(Z)2260 609 y(Z)953 773 y Fo(I)g(B)t(l)q(ock)1189 781
+y Fy(1)823 866 y Fn(v)p Fm(v)p Fk(m)857 851 y(m)890 837
+y(m)923 823 y(m)1088 892 y Fn(\017)p Fm(\017)p 1087 892
+V 1349 865 a Fn(\()p Fm(\()1311 849 y Fk(Q)1279 834 y(Q)1246
+820 y(Q)1214 806 y(Q)2046 755 y Fo(:)14 b(:)f(:)1752
+909 y Fn(v)p Fm(v)p Fk(n)1786 893 y(n)1821 877 y(n)1855
+861 y(n)1889 845 y(n)1923 829 y(n)1957 813 y(n)1992 798
+y(n)2091 892 y Fn(\017)p Fm(\017)p 2090 892 4 112 v 2430
+909 a Fn(\()p Fm(\()2393 891 y Fk(P)2358 876 y(P)2324
+860 y(P)2290 844 y(P)2256 828 y(P)2222 812 y(P)2188 796
+y(P)2153 780 y(P)2993 772 y Fo(I)6 b(B)t(l)q(ock)3229
+781 y Fj(k)2856 866 y Fn(v)p Fm(v)2856 865 y Fk(l)2890
+851 y(l)2925 836 y(l)2959 822 y(l)3130 892 y Fn(\017)p
+Fm(\017)p 3129 892 4 86 v 3399 866 a Fn(\()p Fm(\()3361
+849 y Fk(Q)3327 835 y(Q)3294 821 y(Q)3260 806 y(Q)548
+942 y Fo(D)r(B)t(l)q(ock)809 950 y Fy(1)696 1066 y Fn(\017)p
+Fm(\017)p 695 1066 4 91 v 1044 925 a Fo(:)13 b(:)g(:)1088
+1066 y Fn(\017)p Fm(\017)p 1087 1066 4 117 v 1333 942
+a Fo(D)r(B)t(l)q(ock)1594 951 y Fj(l)1476 1066 y Fn(\017)p
+Fm(\017)p 1474 1066 4 91 v 2046 925 a Fo(:)h(:)f(:)2091
+1035 y Fn(\017)p Fm(\017)p 2090 1035 4 86 v 2564 942
+a Fo(D)r(B)t(l)q(ock)2825 950 y Fj(m)2724 1066 y Fn(\017)p
+Fm(\017)p 2723 1066 4 91 v 3085 925 a Fo(:)h(:)f(:)3130
+1066 y Fn(\017)p Fm(\017)p 3129 1066 4 117 v 3376 942
+a Fo(D)r(B)t(l)q(ock)3637 950 y Fj(n)3528 1066 y Fn(\017)p
+Fm(\017)p 3527 1066 4 91 v 1836 1105 a Fw(Original)41
+b(data)523 1301 y Fq(Fig.)15 b(1.)p 0 TeXcolorgray 814
+1201 a
+SDict begin H.S end
+ 814 1201 a 0 TeXcolorgray 0 TeXcolorgray 814 1201
+a
+SDict begin H.R end
+ 814 1201 a 814 1201 a
+SDict begin [ /View [/XYZ H.V] /Dest (figure.1.1) cvn H.B /DEST pdfmark
+end
+ 814 1201 a Black 100 x FA(Simple)40
+b(enco)r(ding)g(of)f(a)h(\014le)g(using)f(a)h(tree)f(of)h(CHK)g(blo)r
+(c)n(ks)f(\()p Fs(D)r(B)t(l)r(ock)s FA(s)g(and)523 1400
+y Fs(I)7 b(B)t(l)r(ock)s FA(s)41 b(are)f(CHK)i(enco)r(ded\))f(with)h
+(one)g Fs(K)6 b(B)t(l)r(ock)43 b FA(to)e(allo)n(w)g(for)g(a)g(k)n(eyw)n
+(ord-based)523 1500 y(searc)n(h.)p Black Black Black
+523 1937 a(\(see)31 b(Figure)p 1 0 0 TeXcolorrgb 958
+1937 a
+SDict begin H.S end
+ 958 1937 a 1 0 0 TeXcolorrgb FA(1)p 1 0 0 TeXcolorrgb
+1000 1884 a
+SDict begin H.R end
+ 1000 1884 a 1000 1937 a
 SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (figure.1.1) cvn H.B /ANN pdfmark end
- 1000 4127 a Black
+ 1000 1937 a Black
 FA(\).)g(The)g(actual)g(\014le)g(data)g(is)g(enco)r(ded)g(in)g
-Ft(DBlo)l(cks)h FA(whic)n(h)f(are)f(organized)523 4227
+Ft(DBlo)l(cks)h FA(whic)n(h)f(are)f(organized)523 2037
 y(b)n(y)35 b(a)f(tree)h(of)f Ft(IBlo)l(cks)p FA(.)j(The)e
 Ft(IBlo)l(cks)p FA(,)h(whic)n(h)f(are)f(similar)g(to)g(UNIX)i(ino)r
-(des)f([)p 0 1 0 TeXcolorrgb 3130 4227 a
+(des)f([)p 0 1 0 TeXcolorrgb 3130 2037 a
 SDict begin H.S end
- 3130 4227 a
-0 1 0 TeXcolorrgb FA(19)p 0 1 0 TeXcolorrgb 3213 4173
+ 3130 2037 a
+0 1 0 TeXcolorrgb FA(21)p 0 1 0 TeXcolorrgb 3213 1984
 a
 SDict begin H.R end
- 3213 4173 a 3213 4227 a
+ 3213 1984 a 3213 2037 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.mckusick84fast) cvn H.B /ANN pdfmark end
- 3213 4227 a Black FA(],)g(are)523
-4327 y(indirection-blo)r(c)n(ks)28 b(whic)n(h)h(enco)r(de)h(ho)n(w)e
+ 3213 2037 a Black FA(],)g(are)523
+2137 y(indirection-blo)r(c)n(ks)28 b(whic)n(h)h(enco)r(de)h(ho)n(w)e
 (the)i(leaf-no)r(des)f(of)g(the)h(tree)f(can)g(b)r(e)h(reassem-)523
-4426 y(bled)k(in)n(to)f(the)h(original)d(\014le.)j(Ev)n(ery)e
+2236 y(bled)k(in)n(to)f(the)h(original)d(\014le.)j(Ev)n(ery)e
 Ft(IBlo)l(ck)i FA(pro)n(vides)e(the)i(data)f(required)f(to)i(request,)
-523 4526 y(decrypt)29 b(and)g(v)n(erify)f(the)h(con)n(ten)n(ts)g(of)g
+523 2336 y(decrypt)29 b(and)g(v)n(erify)f(the)h(con)n(ten)n(ts)g(of)g
 (its)g(direct)g(c)n(hildren.)f(V)-7 b(eri\014cation)29
-b(is)g(done)f(using)523 4625 y(hash)k(co)r(des)f(of)h(the)g(c)n
+b(is)g(done)f(using)523 2436 y(hash)k(co)r(des)f(of)h(the)g(c)n
 (hildren,)g(similar)f(to)h(the)g(w)n(a)n(y)e(a)i(Merkle)f(tree)h([)p
-0 1 0 TeXcolorrgb 2791 4625 a
+0 1 0 TeXcolorrgb 2791 2436 a
 SDict begin H.S end
- 2791 4625 a 0 1 0 TeXcolorrgb
-FA(20)p 0 1 0 TeXcolorrgb 2874 4572 a
+ 2791 2436 a 0 1 0 TeXcolorrgb
+FA(22)p 0 1 0 TeXcolorrgb 2874 2382 a
 SDict begin H.R end
- 2874 4572 a 2874
-4625 a
+ 2874 2382 a 2874
+2436 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.merkle89tree) cvn H.B /ANN pdfmark end
- 2874 4625 a Black FA(])g(w)n(orks.)e(Giv)n(en)523
-4725 y(the)h(size)g(of)f(the)h(\014le,)g(the)g(top)g
+ 2874 2436 a Black FA(])g(w)n(orks.)e(Giv)n(en)523
+2535 y(the)h(size)g(of)f(the)h(\014le,)g(the)g(top)g
 Ft(IBlo)l(ck)h FA(uniquely)f(iden)n(ti\014es)g(the)g(con)n(ten)n(ts)f
-(of)g(the)h(en)n(tire)523 4825 y(\014le.)25 b Ft(KBlo)l(cks)h
+(of)g(the)h(en)n(tire)523 2635 y(\014le.)25 b Ft(KBlo)l(cks)h
 FA(and)f Ft(SBlo)l(cks)h FA(facilitate)f(obtaining)g(the)g(k)n(ey)f
-(\(to)i(decrypt\))f(and)g(query)f(\(to)523 4924 y(request\))j(for)g
-(the)h(top)g Ft(IBlo)l(ck)p FA(.)p Black Black eop end
-%%Page: 9 9
-TeXDict begin 9 8 bop 0 0 a
-SDict begin /product where{pop product(Distiller)search{pop pop pop
-version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
-closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
-grestore}if}{pop}ifelse}{pop}ifelse}if end
- 0 0 a Black 0 TeXcolorgray
-523 232 a
+(\(to)i(decrypt\))f(and)g(query)f(\(to)523 2734 y(request\))j(for)g
+(the)h(top)g Ft(IBlo)l(ck)p FA(.)523 2896 y
 SDict begin H.S end
- 523 232 a 0 TeXcolorgray 0 TeXcolorgray 523
-232 a
-SDict begin H.R end
- 523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.9) cvn H.B /DEST pdfmark
-end
- 523 232 a Black 1036 w Fx(An)25
-b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)238
-b(9)p Black 523 365 a
-SDict begin H.S end
- 523 365 a 523 365 a
+ 523 2896
+a 523 2896 a
 SDict begin 12 H.A end
- 523 365 a 523
-365 a
+ 523 2896 a 523 2896 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.3.2) cvn H.B /DEST
 pdfmark end
- 523 365 a 83 x Fr(3.2)95 b Fi(DBlo)-5 b(cks)523
-632 y FA(Ev)n(ery)38 b Ft(DBlo)l(ck)j FA(corresp)r(onds)d(to)h(32k)g
-(of)h(the)g(original)e(\014le)i(\(the)h(last)e(blo)r(c)n(k)h(ma)n(y)f
-(b)r(e)523 732 y(padded)20 b(with)h(zeros\).)f Ft(DBlo)l(ck)p
-FA(s)h(are)f(encrypted)g(using)g(a)g(symmetric)g(cipher.)g(The)h(k)n
-(ey)f(for)523 831 y(the)29 b(cipher)f(for)h(the)g Ft(DBlo)l(ck)g
-FA(that)g(corresp)r(onds)e(to)i(the)g(plain)n(text)f
-Fq(B)2774 843 y Fh(i)2831 831 y FA(is)g Fq(K)2986 843
-y Fh(i)3038 831 y FA(:=)d Fq(H)7 b FA(\()p Fq(B)3322
-843 y Fh(i)3350 831 y FA(\).)523 931 y(This)36 b(guaran)n(tees)d(that)j
-(the)g(same)f(blo)r(c)n(k)g(will)h(alw)n(a)n(ys)d(b)r(e)j(encrypted)g
-(with)g(the)g(same)523 1031 y(k)n(ey)-7 b(.)29 b(Also,)h(the)g(in)n
-(tegrit)n(y)f(of)g(the)h(decrypted)g(blo)r(c)n(k)f(can)h(b)r(e)g(v)n
-(eri\014ed)f(b)n(y)g(c)n(hec)n(king)g(that)523 1130 y
-Fq(K)594 1142 y Fh(i)644 1130 y FA(=)23 b Fq(H)7 b FA(\()p
-Fq(B)903 1142 y Fh(i)931 1130 y FA(\).)21 b(The)f(encrypted)h(blo)r(c)n
-(k)f Fq(E)1822 1142 y Fh(K)1878 1150 y Fg(i)1909 1130
-y FA(\()p Fq(B)2004 1142 y Fh(i)2032 1130 y FA(\))h(can)f(b)r(e)h
-(uniquely)g(iden)n(ti\014ed)g(b)n(y)g(its)f(hash)523
-1230 y Fq(Q)589 1242 y Fh(i)649 1230 y FA(:=)33 b Fq(H)7
-b FA(\()p Fq(E)939 1242 y Fh(K)995 1250 y Fg(i)1025 1230
-y FA(\()p Fq(B)1120 1242 y Fh(i)1148 1230 y FA(\)\).)34
-b(A)g(p)r(eer)f(can)g(query)g(for)g Fq(E)2142 1242 y
-Fh(K)2198 1250 y Fg(i)2228 1230 y FA(\()p Fq(B)2323 1242
-y Fh(i)2351 1230 y FA(\))h(using)f Fq(Q)2706 1242 y Fh(i)2767
-1230 y FA(without)h(rev)n(ealing)523 1330 y Fq(K)594
-1342 y Fh(i)621 1330 y FA(.)39 b(Consequen)n(tly)-7 b(,)38
-b(the)h(pair)f(\()p Fq(K)1664 1342 y Fh(i)1692 1330 y
-Fq(;)14 b(Q)1795 1342 y Fh(i)1822 1330 y FA(\))39 b(can)f(b)r(e)h(used)
-g(to)g(retriev)n(e)e(and)i(decrypt)f Fq(B)3354 1342 y
-Fh(i)3382 1330 y FA(.)523 1429 y(In)n(termediaries)28
-b(can)g(v)n(erify)g(that)i(a)e(resp)r(onse)g Fq(E)2105
-1441 y Fh(K)2161 1449 y Fg(i)2192 1429 y FA(\()p Fq(B)2287
-1441 y Fh(i)2315 1429 y FA(\))h(matc)n(hes)f(a)h(query)f
-Fq(Q)3067 1441 y Fh(i)3124 1429 y FA(without)523 1529
-y(kno)n(wing)j Fq(K)926 1541 y Fh(i)953 1529 y FA(.)i(F)-7
-b(reenet)32 b([)p 0 1 0 TeXcolorrgb 1333 1529 a
+ 523 2896 a 79 x Fq(3.2)95
+b Fi(DBlo)-5 b(cks)523 3132 y FA(Ev)n(ery)38 b Ft(DBlo)l(ck)j
+FA(corresp)r(onds)d(to)h(32k)g(of)h(the)g(original)e(\014le)i(\(the)h
+(last)e(blo)r(c)n(k)h(ma)n(y)f(b)r(e)523 3232 y(padded)20
+b(with)h(zeros\).)f Ft(DBlo)l(ck)p FA(s)h(are)f(encrypted)g(using)g(a)g
+(symmetric)g(cipher.)g(The)h(k)n(ey)f(for)523 3331 y(the)29
+b(cipher)f(for)h(the)g Ft(DBlo)l(ck)g FA(that)g(corresp)r(onds)e(to)i
+(the)g(plain)n(text)f Fs(B)2774 3343 y Fh(i)2831 3331
+y FA(is)g Fs(K)2986 3343 y Fh(i)3038 3331 y FA(:=)d Fs(H)7
+b FA(\()p Fs(B)3322 3343 y Fh(i)3350 3331 y FA(\).)523
+3431 y(This)36 b(guaran)n(tees)d(that)j(the)g(same)f(blo)r(c)n(k)g
+(will)h(alw)n(a)n(ys)d(b)r(e)j(encrypted)g(with)g(the)g(same)523
+3531 y(k)n(ey)-7 b(.)29 b(Also,)h(the)g(in)n(tegrit)n(y)f(of)g(the)h
+(decrypted)g(blo)r(c)n(k)f(can)h(b)r(e)g(v)n(eri\014ed)f(b)n(y)g(c)n
+(hec)n(king)g(that)523 3630 y Fs(K)594 3642 y Fh(i)644
+3630 y FA(=)23 b Fs(H)7 b FA(\()p Fs(B)903 3642 y Fh(i)931
+3630 y FA(\).)21 b(The)f(encrypted)h(blo)r(c)n(k)f Fs(E)1822
+3642 y Fh(K)1878 3650 y Fg(i)1909 3630 y FA(\()p Fs(B)2004
+3642 y Fh(i)2032 3630 y FA(\))h(can)f(b)r(e)h(uniquely)g(iden)n
+(ti\014ed)g(b)n(y)g(its)f(hash)523 3730 y Fs(Q)589 3742
+y Fh(i)649 3730 y FA(:=)33 b Fs(H)7 b FA(\()p Fs(E)939
+3742 y Fh(K)995 3750 y Fg(i)1025 3730 y FA(\()p Fs(B)1120
+3742 y Fh(i)1148 3730 y FA(\)\).)34 b(A)g(p)r(eer)f(can)g(query)g(for)g
+Fs(E)2142 3742 y Fh(K)2198 3750 y Fg(i)2228 3730 y FA(\()p
+Fs(B)2323 3742 y Fh(i)2351 3730 y FA(\))h(using)f Fs(Q)2706
+3742 y Fh(i)2767 3730 y FA(without)h(rev)n(ealing)523
+3829 y Fs(K)594 3841 y Fh(i)621 3829 y FA(.)39 b(Consequen)n(tly)-7
+b(,)38 b(the)h(pair)f(\()p Fs(K)1664 3841 y Fh(i)1692
+3829 y Fs(;)14 b(Q)1795 3841 y Fh(i)1822 3829 y FA(\))39
+b(can)f(b)r(e)h(used)g(to)g(retriev)n(e)e(and)i(decrypt)f
+Fs(B)3354 3841 y Fh(i)3382 3829 y FA(.)523 3929 y(In)n(termediaries)28
+b(can)g(v)n(erify)g(that)i(a)e(resp)r(onse)g Fs(E)2105
+3941 y Fh(K)2161 3949 y Fg(i)2192 3929 y FA(\()p Fs(B)2287
+3941 y Fh(i)2315 3929 y FA(\))h(matc)n(hes)f(a)h(query)f
+Fs(Q)3067 3941 y Fh(i)3124 3929 y FA(without)523 4029
+y(kno)n(wing)j Fs(K)926 4041 y Fh(i)953 4029 y FA(.)i(F)-7
+b(reenet)32 b([)p 0 1 0 TeXcolorrgb 1333 4029 a
 SDict begin H.S end
  1333
-1529 a 0 1 0 TeXcolorrgb FA(5)p 0 1 0 TeXcolorrgb 1375
-1475 a
+4029 a 0 1 0 TeXcolorrgb FA(5)p 0 1 0 TeXcolorrgb 1375
+3975 a
 SDict begin H.R end
- 1375 1475 a 1375 1529 a
+ 1375 3975 a 1375 4029 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.clark99distributed) cvn H.B /ANN pdfmark end
- 1375 1529 a Black FA(])h(uses)e(the)i
+ 1375 4029 a Black FA(])h(uses)e(the)i
 (same)f(sc)n(heme)g(to)g(encrypt)g(en)n(tire)g(\014les)h(\(not)f(just)
-523 1628 y(blo)r(c)n(ks\))27 b(and)h(the)g(authors)e(call)h(the)h(pair)
-f(\()p Fq(K)1981 1640 y Fh(i)2009 1628 y Fq(;)14 b(Q)2112
-1640 y Fh(i)2139 1628 y FA(\))28 b(a)f(con)n(ten)n(t)g(hash)g(k)n(ey)g
-(\(CHK\).)523 1813 y
+523 4128 y(blo)r(c)n(ks\))27 b(and)h(the)g(authors)e(call)h(the)h(pair)
+f(\()p Fs(K)1981 4140 y Fh(i)2009 4128 y Fs(;)14 b(Q)2112
+4140 y Fh(i)2139 4128 y FA(\))28 b(a)f(con)n(ten)n(t)g(hash)g(k)n(ey)g
+(\(CHK\).)523 4290 y
 SDict begin H.S end
- 523 1813 a 523 1813 a
+ 523 4290 a 523 4290 a
 SDict begin 12 H.A end
- 523 1813 a
-523 1813 a
+ 523 4290 a
+523 4290 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.3.3) cvn H.B /DEST
 pdfmark end
- 523 1813 a 82 x Fr(3.3)95 b Fi(IBlo)-5 b(cks)523
-2079 y FA(F)e(or)32 b(\014les)h(larger)e(than)h(the)i(blo)r(c)n(ksize,)
+ 523 4290 a 79 x Fq(3.3)95 b Fi(IBlo)-5 b(cks)523
+4526 y FA(F)e(or)32 b(\014les)h(larger)e(than)h(the)i(blo)r(c)n(ksize,)
 e(m)n(ultiple)h(CHK)f(k)n(eys)g(are)g(required)g(to)g(retriev)n(e)523
-2179 y(the)25 b(con)n(ten)n(t.)g(F)-7 b(or)25 b(example,)f(with)i(a)f
+4625 y(the)25 b(con)n(ten)n(t.)g(F)-7 b(or)25 b(example,)f(with)i(a)f
 (blo)r(c)n(ksize)f(of)h(32k)f(and)h(512)e(bit)j(hash)e(co)r(des,)h(a)g
-(32m)523 2278 y(\014le)f(w)n(ould)e(b)r(e)i(split)g(in)n(to)f(1024)e
-Ft(DBlo)l(cks)j Fq(B)1910 2290 y Fz(1)1948 2278 y Fq(;)14
-b(:)g(:)g(:)f(;)h(B)2195 2290 y Fz(1024)2355 2278 y FA(of)23
-b(length)h(32k)e(eac)n(h.)g(Groups)h(of)523 2378 y(up)k(to)f(256)f
+(32m)523 4725 y(\014le)f(w)n(ould)e(b)r(e)i(split)g(in)n(to)f(1024)e
+Ft(DBlo)l(cks)j Fs(B)1910 4737 y Fz(1)1948 4725 y Fs(;)14
+b(:)g(:)g(:)f(;)h(B)2195 4737 y Fz(1024)2355 4725 y FA(of)23
+b(length)h(32k)e(eac)n(h.)g(Groups)h(of)523 4825 y(up)k(to)f(256)f
 (CHKs)h(are)f(assem)n(bled)g(in)n(to)h(one)g(32k)f Ft(IBlo)l(ck)p
 FA(,)j(resulting)e(in)g(four)g Ft(IBlo)l(ck)p FA(s)i(for)523
-2478 y(the)c(32m)g(\014le.)g(The)g(resulting)f Ft(IBlo)l(ck)p
+4924 y(the)c(32m)g(\014le.)g(The)g(resulting)f Ft(IBlo)l(ck)p
 FA(s)i(are)e(CHK)h(encrypted)g(just)g(lik)n(e)g(the)g
-Ft(DBlo)l(cks)h FA(and)523 2577 y(their)30 b(CHK-k)n(eys)e(are)h(again)
-g(group)r(ed)g(in)n(to)h Ft(IBlo)l(cks)h FA(un)n(til)f(only)g(one)f
-(CHK)h(k)n(ey)f(is)h(left.)523 2677 y(F)-7 b(or)31 b(the)i(32m)e
-(\014le,)h(the)g(CHKs)g(for)f(the)h(four)g Ft(IBlo)l(ck)p
-FA(s)h(are)e(th)n(us)h(collected)f(in)i(one)e(\014nal)523
-2776 y(top)25 b Ft(IBlo)l(ck)p FA(.)i(The)f(additional)f(space)f
-(requiremen)n(ts)h(for)g(enco)r(ding)g(the)h(\014le)f(are)g(t)n
-(ypically)523 2876 y(less)i(than)h(1\045)f(of)h(the)g(original)e
-(\014le)i(size.)523 3056 y
+Ft(DBlo)l(cks)h FA(and)p Black Black eop end
+%%Page: 10 10
+TeXDict begin 10 9 bop 0 0 a
+SDict begin /product where{pop product(Distiller)search{pop pop pop
+version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
+closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
+grestore}if}{pop}ifelse}{pop}ifelse}if end
+ 0 0 a Black 0 TeXcolorgray
+523 232 a
 SDict begin H.S end
- 523 3056 a 523 3056 a
+ 523 232 a 0 TeXcolorgray 0 TeXcolorgray 523
+232 a
+SDict begin H.R end
+ 523 232 a 523 232 a
+SDict begin [ /View [/XYZ H.V] /Dest (page.10) cvn H.B /DEST pdfmark
+end
+ 523 232 a Black Fx(10)199 b(C.)27
+b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
+Black 523 448 a FA(their)j(CHK-k)n(eys)e(are)h(again)g(group)r(ed)g(in)
+n(to)h Ft(IBlo)l(cks)h FA(un)n(til)f(only)g(one)f(CHK)h(k)n(ey)f(is)h
+(left.)523 548 y(F)-7 b(or)31 b(the)i(32m)e(\014le,)h(the)g(CHKs)g(for)
+f(the)h(four)g Ft(IBlo)l(ck)p FA(s)h(are)e(th)n(us)h(collected)f(in)i
+(one)e(\014nal)523 648 y(top)25 b Ft(IBlo)l(ck)p FA(.)i(The)f
+(additional)f(space)f(requiremen)n(ts)h(for)g(enco)r(ding)g(the)h
+(\014le)f(are)g(t)n(ypically)523 747 y(less)i(than)h(1\045)f(of)h(the)g
+(original)e(\014le)i(size.)523 938 y
+SDict begin H.S end
+ 523 938 a 523 938
+a
 SDict begin 12 H.A end
- 523
-3056 a 523 3056 a
+ 523 938 a 523 938 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.3.4) cvn H.B /DEST
 pdfmark end
- 523 3056 a 87 x Fr(3.4)95 b(Finding)30
-b(\014les)523 3327 y FA(The)35 b(CHK)h(enco)r(ding)e(describ)r(ed)i(so)
+ 523 938 a 90 x Fq(3.4)95 b(Finding)30
+b(\014les)523 1226 y FA(The)35 b(CHK)h(enco)r(ding)e(describ)r(ed)i(so)
 e(far)h(is)g(useful)h(for)f(transmitting)g(con)n(ten)n(t)g(that)g(is)
-523 3426 y(enco)r(ded)e(and)h(y)n(et)f(v)n(eri\014able)f(for)h(in)n
+523 1325 y(enco)r(ded)e(and)h(y)n(et)f(v)n(eri\014able)f(for)h(in)n
 (termediaries.)f(Ho)n(w)n(ev)n(er,)f(a)i(practical)g(\014le-sharing)523
-3526 y(sc)n(heme)e(needs)g(to)h(ha)n(v)n(e)e(w)n(a)n(ys)g(for)h(the)h
+1425 y(sc)n(heme)e(needs)g(to)h(ha)n(v)n(e)e(w)n(a)n(ys)g(for)h(the)h
 (users)f(to)g(obtain)g(the)h(query)f(and)g(the)h(k)n(ey)f(that)523
-3626 y(are)f(no)n(w)h(necessary)f(in)h(order)f(to)h(retriev)n(e)f(the)i
+1524 y(are)f(no)n(w)h(necessary)f(in)h(order)f(to)h(retriev)n(e)f(the)i
 (enco)r(ded)f(con)n(ten)n(t.)g(While)h(out-of-band)523
-3725 y(comm)n(unication)24 b(of)h(those)g(CHK)f(k)n(eys)g(is)h
+1624 y(comm)n(unication)24 b(of)h(those)g(CHK)f(k)n(eys)g(is)h
 (certainly)f(feasible,)h(an)g(in)n(tegrated)f(solution)g(is)523
-3825 y(clearly)i(desirable.)648 3928 y(The)e(k)n(ey)g(problem)g(for)g
-(the)h(searc)n(h)e(is)h(that)h(simply)f(publishing)h(CHK)f(k)n(eys)g
-(in)g(plain-)523 4028 y(text)36 b(under)g(certain)f(k)n(eyw)n(ords)f
-(\(as)h(done)h(in)g(F)-7 b(reenet)35 b(with)i(KSK)e(k)n(eys\))g(has)g
-(v)-5 b(arious)523 4127 y(dra)n(wbac)n(ks.)24 b(First,)i(in)n
-(termediaries)f(w)n(ould)h(learn)g(ab)r(out)g(the)g(CHK)h(k)n(eys)e
-(that)i(they)f(are)523 4227 y(storing)32 b(or)g(transmitting,)h(whic)n
-(h)g(ma)n(y)f(allo)n(w)g(them)h(to)g(easily)f(censor)g(searc)n(h)f
-(results.)523 4327 y(Second,)36 b(the)g(k)n(eyw)n(ords)d(are)i
-(directly)h(exp)r(osed)f(to)h(the)g(in)n(termediaries,)e(whic)n(h)i
-(again)523 4426 y(w)n(ould)31 b(facilitate)f(censorship.)g(Finally)-7
+1724 y(clearly)h(desirable.)h(Related)g(w)n(ork)f(on)h(secure)g
+(indexing)g([)p 0 1 0 TeXcolorrgb 2381 1724 a
+SDict begin H.S end
+ 2381 1724
+a 0 1 0 TeXcolorrgb FA(12)p 0 1 0 TeXcolorrgb 2464 1670
+a
+SDict begin H.R end
+ 2464 1670 a 2464 1724 a
+SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
+(cite.secure2004goh) cvn H.B /ANN pdfmark end
+ 2464 1724 a Black FA(])h(allo)n(ws)e(serv)n
+(ers)f(to)i(retriev)n(e)523 1823 y(do)r(cumen)n(ts)34
+b(b)n(y)f(k)n(eyw)n(ord)f(without)i(learning)e(ab)r(out)i(the)g(rest)f
+(of)h(the)g(do)r(cumen)n(t.)g(The)523 1923 y(sc)n(heme)h(that)h(will)g
+(b)r(e)g(describ)r(ed)f(in)h(Section)p 1 0 0 TeXcolorrgb
+2067 1923 a
+SDict begin H.S end
+ 2067 1923 a 1 0 0 TeXcolorrgb FA(3.6)p 1 0 0
+TeXcolorrgb 2173 1869 a
+SDict begin H.R end
+ 2173 1869 a 2173 1923 a
+SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
+(subsection.1.3.6) cvn H.B /ANN pdfmark end
+ 2173
+1923 a Black 36 w FA(impro)n(v)n(es)e(on)h(this)h(b)n(y)f(k)n(eeping)g
+(the)523 2023 y(k)n(eyw)n(ord)25 b(itself)j(priv)-5 b(ate,)27
+b(allo)n(wing)f(in)n(termediaries)g(to)h(v)n(erify)f(the)i(correct)e
+(op)r(eration)g(of)523 2122 y(the)e(serv)n(er)e(and)h(a)n(v)n(oiding)f
+(the)i(need)g(for)f(the)h(publisher)g(to)f(encrypt)h(the)g(do)r(cumen)n
+(t)f(with)523 2222 y(the)33 b(public)g(k)n(ey)f(of)h(a)f
+Ft(sp)l(e)l(ci\014c)i FA(receiv)n(er,)d(thereb)n(y)h(theoretically)g(p)
+r(ermitting)h(access)e(to)523 2321 y(the)h(same)f(encrypted)g(con)n
+(ten)n(t)g(to)h(arbitrary)d(participan)n(ts)h(\(as)i(long)e(as)h(they)h
+(are)e(able)523 2421 y(to)e(obtain)f(or)g(guess)f(the)i(necessary)e(k)n
+(eyw)n(ord\).)648 2527 y(The)e(k)n(ey)g(problem)g(for)g(the)h(searc)n
+(h)e(is)h(that)h(simply)f(publishing)h(CHK)f(k)n(eys)g(in)g(plain-)523
+2627 y(text)36 b(under)g(certain)f(k)n(eyw)n(ords)f(\(as)h(done)h(in)g
+(F)-7 b(reenet)35 b(with)i(KSK)e(k)n(eys\))g(has)g(v)-5
+b(arious)523 2726 y(dra)n(wbac)n(ks.)24 b(First,)i(in)n(termediaries)f
+(w)n(ould)h(learn)g(ab)r(out)g(the)g(CHK)h(k)n(eys)e(that)i(they)f(are)
+523 2826 y(storing)32 b(or)g(transmitting,)h(whic)n(h)g(ma)n(y)f(allo)n
+(w)g(them)h(to)g(easily)f(censor)g(searc)n(h)f(results.)523
+2926 y(Second,)36 b(the)g(k)n(eyw)n(ords)d(are)i(directly)h(exp)r(osed)
+f(to)h(the)g(in)n(termediaries,)e(whic)n(h)i(again)523
+3025 y(w)n(ould)31 b(facilitate)f(censorship.)g(Finally)-7
 b(,)31 b(p)r(eers)g(w)n(ould)f(b)r(e)i(able)e(to)h(send)g(in)n(v)-5
-b(alid)31 b(replies)523 4526 y(that)37 b(refer)f(to)h(inappropriate)e
+b(alid)31 b(replies)523 3125 y(that)37 b(refer)f(to)h(inappropriate)e
 (con)n(ten)n(t.)h(This)h(ma)n(y)f(b)r(e)h(just)g(a)g(n)n(uisance)f(if)h
-(malicious)523 4625 y(p)r(eers)26 b(use)g(this)h(for)f(adv)n(ertising)e
+(malicious)523 3224 y(p)r(eers)26 b(use)g(this)h(for)f(adv)n(ertising)e
 (\(this)j(kind)g(of)f(b)r(eha)n(vior)f(can)h(b)r(e)h(observ)n(ed)e(on)h
-(gn)n(utella)523 4725 y(from)k(time)h(to)g(time\).)h(P)n(ossibly)c(w)n
+(gn)n(utella)523 3324 y(from)k(time)h(to)g(time\).)h(P)n(ossibly)c(w)n
 (orse,)i(if)h(a)f(net)n(w)n(ork)f(w)n(an)n(ts)h(to)g(economically)g
-(rew)n(ard)523 4825 y(p)r(eers)24 b(for)f(returning)h(searc)n(h)e
+(rew)n(ard)523 3424 y(p)r(eers)24 b(for)f(returning)h(searc)n(h)e
 (results,)i(the)g(p)r(ossibilit)n(y)g(of)g(returning)g(arbitrary)e
-(nonsense)523 4924 y(migh)n(t)28 b(mak)n(e)e(suc)n(h)i(incen)n(tiv)n(e)
-f(sc)n(hemes)g(impractical.)p Black Black eop end
-%%Page: 10 10
-TeXDict begin 10 9 bop 0 0 a
+(nonsense)523 3523 y(migh)n(t)28 b(mak)n(e)e(suc)n(h)i(incen)n(tiv)n(e)
+f(sc)n(hemes)g(impractical.)648 3629 y(But)33 b(ho)n(w)g(can)g(a)g
+(system)g(prev)n(en)n(t)g(p)r(eers)g(from)g(returning)g(in)n(v)-5
+b(alid)33 b(resp)r(onses)f(to)h(a)523 3729 y(k)n(eyw)n(ord-based)g
+(searc)n(h?)i(Since)i(the)g(nature)e(of)i(suc)n(h)f(a)f(searc)n(h)g(is)
+h(that)h(the)g(initiator)523 3828 y(do)r(es)24 b(not)g(kno)n(w)g
+(precisely)f(what)h(con)n(ten)n(t)g(is)g(desired,)g(it)h(is)f(imp)r
+(ossible)g(for)g(the)h(query)e(to)523 3928 y(completely)h(determine)f
+(the)i(reply)-7 b(.)23 b(F)-7 b(or)23 b(this)h(reason)e(sc)n(hemes)h
+(lik)n(e)h(CHK)f(cannot)g(b)r(e)i(ap-)523 4028 y(plied)i(to)f(the)h(k)n
+(eyw)n(ord-searc)n(h)c(problem:)j(in)h(CHK,)g(the)g(query)f(completely)
+g(determines)523 4127 y(the)h(reply)-7 b(.)26 b(As)g(a)g(result,)g(a)f
+(k)n(eyw)n(ord-based)f(searc)n(h)h(mec)n(hanism)g(where)h(a)g(query)f
+(should)523 4227 y(p)r(ossibly)c(ha)n(v)n(e)f(m)n(ultiple)i(v)-5
+b(alid)22 b(results)f(cannot)g(b)r(e)g(implemen)n(ted)h(based)f(on)g
+(CHK.)h(Since)523 4327 y(for)f(this)i(kind)f(of)g(searc)n(h)e(there)i
+(cannot)f(b)r(e)i(an)n(y)e(completely)h(deterministic)g(link)g(b)r(et)n
+(w)n(een)523 4426 y(the)32 b(k)n(eyw)n(ord)e(and)h(the)h(con)n(ten)n
+(t,)f(ECRS)h(m)n(ust)f(trust)h(the)g(user)f(who)g(is)h(uploading)f(the)
+523 4526 y(con)n(ten)n(t)k(to)h(pro)n(vide)e(a)h(v)-5
+b(alid)36 b(link.)g(That)g(user)f(m)n(ust)g(sp)r(ecify)h(appropriate)e
+(k)n(eyw)n(ords)523 4625 y(\(and)d(metadata\))g(that)h(prop)r(erly)e
+(describ)r(es)h(the)g(con)n(ten)n(t.)g(Clearly)f(this)i(trust)f(ma)n(y)
+g(b)r(e)523 4725 y(misplaced.)g(The)h(uploader)f(ma)n(y)g(sp)r(ecify)h
+(k)n(eyw)n(ords)d(that)j(ha)n(v)n(e)e(no)i(seman)n(tic)f(relation)523
+4825 y(with)21 b(the)g(con)n(ten)n(t.)g(Namespaces)e(can)h(help)h(solv)
+n(e)f(this)h(problem)f(since)h(they)g(enable)f(users)523
+4924 y(to)28 b(learn)e(whic)n(h)i(uploaders)e(are)h(trust)n(w)n(orth)n
+(y)-7 b(.)p Black Black eop end
+%%Page: 11 11
+TeXDict begin 11 10 bop 0 0 a
 SDict begin /product where{pop product(Distiller)search{pop pop pop
 version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
 closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
@@ -6817,116 +7002,116 @@
 232 a
 SDict begin H.R end
  523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.10) cvn H.B /DEST pdfmark
+SDict begin [ /View [/XYZ H.V] /Dest (page.11) cvn H.B /DEST pdfmark
 end
- 523 232 a Black Fx(10)199 b(C.)27
-b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
-Black 648 448 a FA(But)33 b(ho)n(w)g(can)g(a)g(system)g(prev)n(en)n(t)g
-(p)r(eers)g(from)g(returning)g(in)n(v)-5 b(alid)33 b(resp)r(onses)f(to)
-h(a)523 548 y(searc)n(h?)23 b(Since)i(the)g(nature)f(of)h(a)f(searc)n
-(h)f(is)i(that)g(the)g(initiator)f(do)r(es)g(not)h(kno)n(w)f(precisely)
-523 648 y(what)31 b(con)n(ten)n(t)f(is)h(desired,)g(it)g(is)g(imp)r
-(ossible)g(for)f(the)h(query)f(to)h(completely)g(determine)523
-747 y(the)37 b(reply)-7 b(.)36 b(F)-7 b(or)36 b(this)g(reason)f(sc)n
-(hemes)h(lik)n(e)g(CHK)g(cannot)g(b)r(e)h(applied)f(to)h(the)g(searc)n
-(h)523 847 y(problem.)24 b(Instead,)f(ECRS)h(m)n(ust)g(trust)g(the)h
-(user)e(who)h(is)g(uploading)f(the)h(con)n(ten)n(t.)g(That)523
-946 y(user)32 b(m)n(ust)h(sp)r(ecify)h(appropriate)d(k)n(eyw)n(ords)f
-(and)j(metadata)g(that)g(prop)r(erly)f(describ)r(es)523
-1046 y(the)24 b(con)n(ten)n(t.)g(Clearly)f(this)h(trust)h(ma)n(yb)r(e)e
-(misplaced.)h(Namespaces)f(can)h(help)g(solv)n(e)f(this)523
-1146 y(problem)k(since)h(they)f(enable)h(users)e(to)i(learn)f(whic)n(h)
-g(other)g(users)g(are)f(trust)n(w)n(orth)n(y)-7 b(.)523
-1299 y
+ 523 232 a Black 1036 w Fx(An)25
+b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)199
+b(11)p Black 523 365 a
 SDict begin H.S end
- 523 1299 a 523 1299 a
+ 523 365 a 523 365 a
 SDict begin 12 H.A end
- 523 1299 a 523 1299 a
+ 523 365 a
+523 365 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.3.5) cvn H.B /DEST
 pdfmark end
- 523
-1299 a 84 x Fr(3.5)95 b(Namespaces)523 1537 y FA(One)25
-b(w)n(a)n(y)f(to)i(a)n(v)n(oid)d(searc)n(hing)h(in)i(an)f(un)n(trust)n
-(w)n(orth)n(y)f(global)g(k)n(eyw)n(ord)f(space)i(that)h(ma)n(y)523
-1637 y(con)n(tain)21 b(mostly)g(inappropriately)f(lab)r(eled)i(con)n
-(ten)n(t)f(is)g(to)h(restrict)e(the)i(searc)n(h)e(to)i(names-)523
-1736 y(paces.)c(A)i(namespace)e(is)g(a)h(k)n(eyw)n(ord)e(space)h(that)i
-(con)n(tains)e(con)n(ten)n(t)g(that)h(is)g(cryptograph-)523
-1836 y(ically)g(signed)g(with)h(the)g(same)f(priv)-5
+ 523 365 a 83 x Fq(3.5)95 b(Namespaces)523 684
+y FA(One)25 b(w)n(a)n(y)f(to)i(a)n(v)n(oid)d(searc)n(hing)h(in)i(an)f
+(un)n(trust)n(w)n(orth)n(y)f(global)g(k)n(eyw)n(ord)f(space)i(that)h
+(ma)n(y)523 784 y(con)n(tain)21 b(mostly)g(inappropriately)f(lab)r
+(eled)i(con)n(ten)n(t)f(is)g(to)h(restrict)e(the)i(searc)n(h)e(to)i
+(names-)523 883 y(paces.)c(A)i(namespace)e(is)g(a)h(k)n(eyw)n(ord)e
+(space)h(that)i(con)n(tains)e(con)n(ten)n(t)g(that)h(is)g(cryptograph-)
+523 983 y(ically)g(signed)g(with)h(the)g(same)f(priv)-5
 b(ate)19 b(k)n(ey)-7 b(.)19 b(The)g(concept)g(of)h(namespaces)e(is)h
-(also)g(presen)n(t)523 1936 y(in)31 b(F)-7 b(reenet)32
-b([)p 0 1 0 TeXcolorrgb 947 1936 a
+(also)g(presen)n(t)523 1083 y(in)31 b(F)-7 b(reenet)32
+b([)p 0 1 0 TeXcolorrgb 947 1083 a
 SDict begin H.S end
- 947 1936 a 0 1 0 TeXcolorrgb
-FA(5)p 0 1 0 TeXcolorrgb 988 1882 a
+ 947 1083 a 0 1 0 TeXcolorrgb
+FA(5)p 0 1 0 TeXcolorrgb 988 1029 a
 SDict begin H.R end
- 988 1882 a 988 1936
+ 988 1029 a 988 1083
 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.clark99distributed) cvn H.B /ANN pdfmark end
- 988 1936 a Black FA(],)f(but)h(with)g(F)-7 b(reenet)31
+ 988 1083 a Black FA(],)f(but)h(with)g(F)-7 b(reenet)31
 b(it)g(is)g(not)g(p)r(ossible)g(to)g(obtain)g(m)n(ultiple)h(results)e
-(b)n(y)523 2035 y(searc)n(hing)e(a)h(namespace.)f(F)-7
+(b)n(y)523 1182 y(searc)n(hing)e(a)h(namespace.)f(F)-7
 b(ortunately)g(,)29 b(it)h(is)g(easy)e(to)h(add)h Ft(se)l(ar)l(chable)h
-FA(namespaces)d(to)523 2135 y(ECRS.)648 2234 y(In)22
+FA(namespaces)d(to)523 1282 y(ECRS.)648 1396 y(In)22
 b(ECRS,)g(a)g(namespace)f(is)i(iden)n(ti\014ed)f(b)n(y)g(a)g
 (public-priv)-5 b(ate)22 b(k)n(ey)g(pair)g(\(also)f(referred)523
-2334 y(to)k(as)g(the)h(pseudon)n(ym\).)f(The)h(priv)-5
+1495 y(to)k(as)g(the)h(pseudon)n(ym\).)f(The)h(priv)-5
 b(ate)25 b(k)n(ey)g(is)g(used)h(to)f(sign)g(the)h(con)n(ten)n(t)f(that)
-h(is)f(placed)523 2434 y(in)n(to)e(the)g(namespace,)f(and)h(the)g
+h(is)f(placed)523 1595 y(in)n(to)e(the)g(namespace,)f(and)h(the)g
 (public)h(k)n(ey)e(\(or)g(more)g(precisely)-7 b(,)22
-b(the)i(hash)e(of)h(the)h(public)523 2533 y(k)n(ey\))38
+b(the)i(hash)e(of)h(the)h(public)523 1694 y(k)n(ey\))38
 b(is)g(used)g(as)g(a)g(public)g(handle)g(that)h(is)f(used)g(to)g(refer)
-g(to)g(the)h(namespace.)e(An)n(y)523 2633 y(user)d(can)g(create)g(an)n
+g(to)g(the)h(namespace.)e(An)n(y)523 1794 y(user)d(can)g(create)g(an)n
 (y)g(n)n(um)n(b)r(er)g(of)h(pseudon)n(yms.)f(Once)g(the)h(user)f
-(accesses)f(\014les)h(from)523 2733 y(a)41 b(particular)f(namespace)g
+(accesses)f(\014les)h(from)523 1894 y(a)41 b(particular)f(namespace)g
 (it)i(is)f(p)r(ossible)g(to)g(form)g(an)g(opinion)g(ab)r(out)g(a)g
-(particular)523 2832 y(pseudon)n(ym,)27 b(whic)n(h)h(can)f(then)h(b)r
-(e)g(used)g(to)f(target)g(the)h(searc)n(h.)648 2932 y(Adding)37
+(particular)523 1993 y(pseudon)n(ym,)27 b(whic)n(h)h(can)f(then)h(b)r
+(e)g(used)g(to)f(target)g(the)h(searc)n(h.)648 2107 y(Adding)37
 b(namespaces)g(to)g(the)h(design)f(requires)f(a)h(new)h(t)n(yp)r(e)g
-(of)f(blo)r(c)n(k,)g(called)g(an)523 3031 y Ft(SBlo)l(ck)p
+(of)f(blo)r(c)n(k,)g(called)g(an)523 2207 y Ft(SBlo)l(ck)p
 FA(.)25 b(An)g Ft(SBlo)l(ck)g FA(con)n(tains)f(the)g(k)n(ey)g(and)g
 (query)f(\(CHK\))i(of)f(the)h(top)f Ft(IBlo)l(ck)i FA(together)523
-3131 y(with)h(metadata)e(ab)r(out)h(the)g(con)n(ten)n(t,)g(thereb)n(y)f
+2306 y(with)h(metadata)e(ab)r(out)h(the)g(con)n(ten)n(t,)g(thereb)n(y)f
 (allo)n(wing)g(users)g(that)i(receiv)n(e)d(an)i Ft(SBlo)l(ck)523
-3231 y FA(to)32 b(do)n(wnload)g(the)h(\014le.)f(Ho)n(w)n(ev)n(er,)f
+2406 y FA(to)32 b(do)n(wnload)g(the)h(\014le.)f(Ho)n(w)n(ev)n(er,)f
 (this)i(data)f(is)g(encrypted)g(suc)n(h)h(that)f(in)n(termediaries)523
-3330 y(do)c(not)g(learn)f(an)n(ything)h(ab)r(out)g(the)g(referenced)g
+2505 y(do)c(not)g(learn)f(an)n(ything)h(ab)r(out)g(the)g(referenced)g
 (\014le.)g(The)g(encryption)g(k)n(ey)f(is)h(the)g(hash)523
-3430 y(of)33 b(an)f(iden)n(ti\014er)h(that)f(the)i(inserter)d(c)n(hose)
+2605 y(of)33 b(an)f(iden)n(ti\014er)h(that)f(the)i(inserter)d(c)n(hose)
 h(for)g(the)h(con)n(ten)n(t.)f(The)h(iden)n(ti\014er)g(do)r(es)f(not)
-523 3530 y(ha)n(v)n(e)f(to)g(b)r(e)h(unique)g(and)g(can,)f(for)h
+523 2705 y(ha)n(v)n(e)f(to)g(b)r(e)h(unique)g(and)g(can,)f(for)h
 (example,)f(b)r(e)h(a)f(k)n(eyw)n(ord)f(\(to)i(allo)n(w)f(searc)n(hing)
-f(the)523 3629 y(namespace\))i(or)g(a)g(passw)n(ord)f(\(for)h(priv)-5
+f(the)523 2804 y(namespace\))i(or)g(a)g(passw)n(ord)f(\(for)h(priv)-5
 b(ate)33 b(con)n(ten)n(t\).)f(The)h(encrypted)g(p)r(ortion)f(of)h(the)
-523 3729 y Ft(SBlo)l(ck)28 b FA(is)f(follo)n(w)n(ed)e(b)n(y)i(a)g(hash)
+523 2904 y Ft(SBlo)l(ck)28 b FA(is)f(follo)n(w)n(ed)e(b)n(y)i(a)g(hash)
 f(co)r(de)h(whic)n(h)f(is)h(the)g Ft(query)h FA(for)e(the)h(con)n(ten)n
-(t.)g(The)g(query)523 3828 y(is)32 b(the)g(hash)f(of)h(the)g(k)n(ey)f
+(t.)g(The)g(query)523 3004 y(is)32 b(the)g(hash)f(of)h(the)g(k)n(ey)f
 (\(or)g(the)h(hash)f(of)h(the)g(hash)f(of)h(the)g(iden)n(ti\014er\).)g
-(When)g(a)g(user)523 3928 y(searc)n(hes)d(a)h(namespace,)f(the)i
+(When)g(a)g(user)523 3103 y(searc)n(hes)d(a)h(namespace,)f(the)i
 (request)f(con)n(tains)g(the)h(pseudon)n(ym)f(\(hash)g(of)h(the)g
-(public)523 4028 y(k)n(ey\))36 b(together)f(with)i(the)g(query)-7
+(public)523 3203 y(k)n(ey\))36 b(together)f(with)i(the)g(query)-7
 b(.)35 b(By)h(using)g(the)h(hash)f(of)g(the)g(k)n(ey)g(as)f(the)i
-(query)f(the)523 4127 y(correct)g Ft(SBlo)l(ck)j FA(can)f(b)r(e)g(iden)
+(query)f(the)523 3302 y(correct)g Ft(SBlo)l(ck)j FA(can)f(b)r(e)g(iden)
 n(ti\014ed)g(b)n(y)f(in)n(termediaries)g(but)h(not)g(decrypted.)g(A)n
-(t)g(the)523 4227 y(same)f(time,)h(only)f(the)g(iden)n(ti\014er)g(and)h
+(t)g(the)523 3402 y(same)f(time,)h(only)f(the)g(iden)n(ti\014er)g(and)h
 (the)f(pseudon)n(ym)g(are)f(required)h(to)g(searc)n(h)f(the)523
-4327 y(namespace.)23 b(Finally)-7 b(,)25 b Ft(SBlo)l(ck)p
+3502 y(namespace.)23 b(Finally)-7 b(,)25 b Ft(SBlo)l(ck)p
 FA(s)g(con)n(tain)e(digital)h(signature)f(of)i(the)f(con)n(ten)n(t.)g
-(This)g(allo)n(ws)523 4426 y(in)n(termediaries)35 b(to)i(v)n(erify)e
+(This)g(allo)n(ws)523 3601 y(in)n(termediaries)35 b(to)i(v)n(erify)e
 (that)i(a)f(giv)n(en)g Ft(SBlo)l(ck)h FA(w)n(as)f(created)g(b)n(y)g
-(the)h(o)n(wner)e(of)i(the)523 4526 y(namespace.)648
-4625 y(Since)32 b Ft(SBlo)l(ck)p FA(s)i(are)d(signed,)h(it)h(is)g(p)r
+(the)h(o)n(wner)e(of)i(the)523 3701 y(namespace.)648
+3814 y(Since)32 b Ft(SBlo)l(ck)p FA(s)i(are)d(signed,)h(it)h(is)g(p)r
 (ossible)f(to)h(allo)n(w)e(up)r(dates.)i(Without)g(a)f(digital)523
-4725 y(signature,)26 b(a)h(secure)f(up)r(date)i(mec)n(hanism)e(is)h
+3914 y(signature,)26 b(a)h(secure)f(up)r(date)i(mec)n(hanism)e(is)h
 (imp)r(ossible,)g(since)g(an)n(y)n(one)f(could)h(publish)523
-4825 y(a)j(p)r(oten)n(tially)g(illegitimate)g(up)r(date.)g(If)h(the)f
+4014 y(a)j(p)r(oten)n(tially)g(illegitimate)g(up)r(date.)g(If)h(the)f
 (up)r(date)h(requires)e(a)h(matc)n(hing)f(digital)h(sig-)523
-4924 y(nature,)35 b(forged)f(up)r(dates)h(are)g(imp)r(ossible.)g(In)g
-(order)f(to)h(allo)n(w)f(con)n(ten)n(t)h(up)r(dates,)h(the)p
+4113 y(nature,)35 b(forged)f(up)r(dates)h(are)g(imp)r(ossible.)g(In)g
+(order)f(to)h(allo)n(w)f(con)n(ten)n(t)h(up)r(dates,)h(the)523
+4213 y(metadata)e(of)h(an)f Ft(SBlo)l(ck)i FA(can)e(con)n(tain)g
+(information)g(ab)r(out)h(when)g(and)f(under)h(whic)n(h)523
+4313 y(iden)n(ti\014ers)c(up)r(dates)g(ma)n(y)g(b)r(e)g(published.)h
+(If)f(suc)n(h)g(forw)n(ard)e(p)r(oin)n(ters)i(are)f(presen)n(t,)h(the)
+523 4412 y(o)n(wner)f(of)g(the)i(namespace)e(can)g(decide)h(to)g
+(publish)g(up)r(dates)g(to)g(a)f(particular)g(\014le)h(at)f(a)523
+4512 y(later)35 b(time.)g(Since)h(the)g(priv)-5 b(ate)35
+b(k)n(ey)f(used)h(for)g(signing)g(is)g(o)n(wned)f(b)n(y)h(a)g(single)g
+(en)n(tit)n(y)-7 b(,)523 4612 y(consistency)33 b(issues)h(from)g
+(parallel)f(up)r(dates)h(do)g(not)h(arise.)e(ECRS)h(do)r(es)g(not)g
+(prev)n(en)n(t)523 4711 y(the)28 b(o)n(wner)e(of)i(the)g(namespace)f
+(from)g(publishing)g(con\015icting)h(up)r(dates.)648
+4825 y(It)22 b(should)h(b)r(e)g(recognized)e(that)i(the)g(same)f
+(\014le)g(can)h(b)r(e)g(part)f(of)g(m)n(ultiple)h(namespaces)523
+4924 y(under)k(m)n(ultiple)h(iden)n(ti\014ers)f(without)h(the)g(need)f
+(for)g(storing)f(the)i(\014le)f(m)n(ultiple)h(times)g(in)p
 Black Black eop end
-%%Page: 11 11
-TeXDict begin 11 10 bop 0 0 a
+%%Page: 12 12
+TeXDict begin 12 11 bop 0 0 a
 SDict begin /product where{pop product(Distiller)search{pop pop pop
 version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
 closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
@@ -6938,236 +7123,102 @@
 232 a
 SDict begin H.R end
  523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.11) cvn H.B /DEST pdfmark
+SDict begin [ /View [/XYZ H.V] /Dest (page.12) cvn H.B /DEST pdfmark
 end
- 523 232 a Black 1036 w Fx(An)25
-b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)199
-b(11)p Black 523 448 a FA(metadata)34 b(of)h(an)f Ft(SBlo)l(ck)i
-FA(can)e(con)n(tain)g(information)g(ab)r(out)h(when)g(and)f(under)h
-(whic)n(h)523 548 y(iden)n(ti\014ers)c(up)r(dates)g(ma)n(y)g(b)r(e)g
-(published.)h(If)f(suc)n(h)g(forw)n(ard)e(p)r(oin)n(ters)i(are)f
-(presen)n(t,)h(the)523 648 y(o)n(wner)f(of)g(the)i(namespace)e(can)g
-(decide)h(to)g(publish)g(up)r(dates)g(to)g(a)f(particular)g(\014le)h
-(at)f(a)523 747 y(later)35 b(time.)g(Since)h(the)g(priv)-5
-b(ate)35 b(k)n(ey)f(used)h(for)g(signing)g(is)g(o)n(wned)f(b)n(y)h(a)g
-(single)g(en)n(tit)n(y)-7 b(,)523 847 y(consistency)33
-b(issues)h(from)g(parallel)f(up)r(dates)h(do)g(not)h(arise.)e(ECRS)h
-(do)r(es)g(not)g(prev)n(en)n(t)523 946 y(the)28 b(o)n(wner)e(of)i(the)g
-(namespace)f(from)g(publishing)g(con\015icting)h(up)r(dates.)648
-1046 y(It)22 b(should)h(b)r(e)g(recognized)e(that)i(the)g(same)f
-(\014le)g(can)h(b)r(e)g(part)f(of)g(m)n(ultiple)h(namespaces)523
-1146 y(under)k(m)n(ultiple)h(iden)n(ti\014ers)f(without)h(the)g(need)f
-(for)g(storing)f(the)i(\014le)f(m)n(ultiple)h(times)g(in)523
-1245 y(the)37 b(net)n(w)n(ork.)e(The)i Ft(IBlo)l(cks)h
+ 523 232 a Black Fx(12)199 b(C.)27
+b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
+Black 523 448 a FA(the)37 b(net)n(w)n(ork.)e(The)i Ft(IBlo)l(cks)h
 FA(and)e Ft(DBlo)l(cks)i FA(of)e(the)h(\014le)g(do)f(not)h(need)g(to)f
-(b)r(e)h(c)n(hanged)523 1345 y(when)28 b(the)g(namespace)e(or)h
-(namespace)g(iden)n(ti\014er)g(c)n(hanges.)648 1445 y(Namespaces)f
+(b)r(e)h(c)n(hanged)523 548 y(when)28 b(the)g(namespace)e(or)h
+(namespace)g(iden)n(ti\014er)g(c)n(hanges.)648 654 y(Namespaces)f
 (cannot)h(completely)h(solv)n(e)e(the)i(searc)n(h)f(problem.)g(Most)g
-(imp)r(ortan)n(tly)-7 b(,)523 1544 y(users)33 b(w)n(ould)g(still)h(ha)n
+(imp)r(ortan)n(tly)-7 b(,)523 754 y(users)33 b(w)n(ould)g(still)h(ha)n
 (v)n(e)f(to)h(\014nd)g(the)g(namespaces)f(themselv)n(es,)g(and)h(while)
-g(it)g(can)g(b)r(e)523 1644 y(assumed)g(that)h(users)e(can)h(guess)g(k)
-n(eyw)n(ords,)e(they)j(are)e(unlik)n(ely)h(to)h(b)r(e)f(able)h(to)f
-(guess)523 1743 y(public)26 b(k)n(eys)e(for)h(a)g(namespace)f(searc)n
-(h.)g(ECRS)h(solv)n(es)f(this)h(problem)g(b)n(y)g(also)f(o\013ering)g
-(a)523 1843 y(pure)18 b(k)n(eyw)n(ord-based)e(searc)n(h)h(in)i(a)f
-Ft(glob)l(al)i FA(k)n(eyw)n(ord)c(space)i(where)g(an)n(y)f(user)h(can)g
-(adv)n(ertise)523 1943 y(con)n(ten)n(t.)k(Here,)f(the)h(disadv)-5
-b(an)n(tage)21 b(is)g(clearly)g(that)h(it)g(is)g(p)r(ossible)g(for)f
-(malicious)g(users)g(to)523 2042 y(p)r(ollute)33 b(the)g(global)e(k)n
-(eyw)n(ord)f(space)i(with)h(adv)n(ertisemen)n(ts)e(and)h(other)g
-(inappropriate)523 2142 y(data.)39 b(Ho)n(w)n(ev)n(er,)f(it)i(is)g
-(assumed)f(that)h(in)h(that)f(case)f(users)f(will)i(use)g(k)n(eyw)n
-(ords)e(that)523 2242 y(are)h(more)g(di\016cult)h(to)g(guess)e(or)h
-(only)h(use)f(the)h(global)f(k)n(eyw)n(ord)e(space)i(to)h(disco)n(v)n
-(er)523 2341 y(trust)n(w)n(orth)n(y)26 b(namespaces)g({)h(th)n(us)h(a)n
-(v)n(oiding)e(the)i(spam)f(most)h(of)f(the)h(time.)523
-2495 y
+g(it)g(can)g(b)r(e)523 853 y(assumed)g(that)h(users)e(can)h(guess)g(k)n
+(eyw)n(ords,)e(they)j(are)e(unlik)n(ely)h(to)h(b)r(e)f(able)h(to)f
+(guess)523 953 y(public)h(k)n(eys)f(for)h(a)f(namespace)g(searc)n(h.)g
+(ECRS)g(alleviates)g(this)h(problem)g(b)n(y)g(also)e(of-)523
+1052 y(fering)i(a)g(pure)g(k)n(eyw)n(ord-based)d(searc)n(h)i(in)h(a)g
+Ft(glob)l(al)i FA(k)n(eyw)n(ord)c(space)i(where)f(an)n(y)h(user)523
+1152 y(can)g(adv)n(ertise)g(con)n(ten)n(t.)g(Here,)g(the)h(disadv)-5
+b(an)n(tage)34 b(is)i(clearly)f(that)h(it)g(is)f(p)r(ossible)h(for)523
+1252 y(malicious)h(users)g(to)h(p)r(ollute)g(the)g(global)f(k)n(eyw)n
+(ord)f(space)h(with)h(adv)n(ertisemen)n(ts)e(and)523
+1351 y(other)24 b(inappropriate)g(data.)g(Ho)n(w)n(ev)n(er,)f(it)i(is)g
+(assumed)g(that)g(in)g(that)g(case)f(users)g(will)h(use)523
+1451 y(k)n(eyw)n(ords)j(that)j(are)e(more)h(di\016cult)h(to)f(guess)f
+(or)h(only)f(use)i(the)f(global)f(k)n(eyw)n(ord)g(space)523
+1551 y(to)e(disco)n(v)n(er)e(trust)n(w)n(orth)n(y)h(namespaces)g({)h
+(th)n(us)g(a)n(v)n(oiding)e(the)j(spam)f(most)g(of)g(the)g(time.)523
+1741 y
 SDict begin H.S end
- 523 2495 a 523 2495 a
+ 523 1741 a 523 1741 a
 SDict begin 12 H.A end
- 523 2495 a 523 2495 a
+ 523 1741 a 523 1741 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.3.6) cvn H.B /DEST
 pdfmark end
  523
-2495 a 83 x Fr(3.6)95 b(Keyw)m(ord)32 b(searc)m(h)523
-2733 y FA(This)24 b(section)f(describ)r(es)g(ho)n(w)h(information)f(ab)
+1741 a 90 x Fq(3.6)95 b(Keyw)m(ord)32 b(searc)m(h)523
+2029 y FA(This)24 b(section)f(describ)r(es)g(ho)n(w)h(information)f(ab)
 r(out)h(namespaces)e(or)h(the)h(CHK)g(k)n(eys)f(that)523
-2832 y(are)30 b(necessary)f(to)h(retriev)n(e)f(a)i(\014le)g(can)f(b)r
+2128 y(are)30 b(necessary)f(to)h(retriev)n(e)f(a)i(\014le)g(can)f(b)r
 (e)h(obtained)f(b)n(y)h(searc)n(hing)d(using)j(natural)f(lan-)523
-2932 y(guage)k Ft(keywor)l(ds)j FA({)f(without)g(rev)n(eiling)e(the)i
+2228 y(guage)k Ft(keywor)l(ds)j FA({)f(without)g(rev)n(eiling)e(the)i
 (k)n(eyw)n(ords)e(to)h(in)n(termediaries.)f(Searc)n(hing)523
-3031 y(requires)27 b(the)i(con)n(ten)n(t)f(pro)n(vider)e(to)i(supply)h
+2328 y(requires)27 b(the)i(con)n(ten)n(t)f(pro)n(vider)e(to)i(supply)h
 (metadata)e(ab)r(out)i(the)f(\014le,)h(in)f(particular)f(a)523
-3131 y(list)d(of)f(k)n(eyw)n(ords.)e(It)i(is)h(assumed)e(that)i(the)f
+2427 y(list)d(of)f(k)n(eyw)n(ords.)e(It)i(is)h(assumed)e(that)i(the)f
 (user)g(searc)n(hing)e(for)i(data)g(is)g(able)g(to)g
-Ft(guess)g FA(at)523 3231 y(least)h(one)g(of)g(these)h(k)n(eyw)n(ords.)
+Ft(guess)g FA(at)523 2527 y(least)h(one)g(of)g(these)h(k)n(eyw)n(ords.)
 d(The)i(nature)g(of)h(the)f(searc)n(h)f(implies)i(that)g(there)f(is)g
-(no)g(di-)523 3330 y(rect,)i(cryptographically)d(v)n(eri\014able)i
+(no)g(di-)523 2627 y(rect,)i(cryptographically)d(v)n(eri\014able)i
 (relation)g(b)r(et)n(w)n(een)h(the)h(k)n(eyw)n(ord)d(and)i(the)g(con)n
-(ten)n(t.)523 3430 y(Man)n(y)33 b(\014les)h(can)f(matc)n(h)h(a)f(giv)n
+(ten)n(t.)523 2726 y(Man)n(y)33 b(\014les)h(can)f(matc)n(h)h(a)f(giv)n
 (en)g(k)n(eyw)n(ord.)f(Di\013eren)n(t)i(users)f(ma)n(y)g(sometimes)g
-(ha)n(v)n(e)f(a)523 3530 y(di\013eren)n(t)25 b(p)r(erception)f(of)h
+(ha)n(v)n(e)f(a)523 2826 y(di\013eren)n(t)25 b(p)r(erception)f(of)h
 (what)f(is)h(a)f(correct)f(seman)n(tic)h(matc)n(h.)g(Th)n(us)h(a)f(k)n
-(eyw)n(ord)f(searc)n(h)523 3629 y(alw)n(a)n(ys)h(has)g(the)i(p)r(oten)n
+(eyw)n(ord)f(searc)n(h)523 2926 y(alw)n(a)n(ys)h(has)g(the)i(p)r(oten)n
 (tial)g(of)f(resulting)g(in)h(searc)n(h)d(results)i(that)h(a)f(user)g
-(ma)n(y)g(\014nd)g(inap-)523 3729 y(propriate.)f(It)i(is)f(also)f(not)h
+(ma)n(y)g(\014nd)g(inap-)523 3025 y(propriate.)f(It)i(is)f(also)f(not)h
 (p)r(ossible)g(to)g(prev)n(en)n(t)f(a)h(user)g(from)g(supplying)g(k)n
-(eyw)n(ords)e(that)523 3828 y(ha)n(v)n(e)h(no)h(seman)n(tic)f(relation)
+(eyw)n(ords)e(that)523 3125 y(ha)n(v)n(e)h(no)h(seman)n(tic)f(relation)
 g(with)i(the)g(con)n(ten)n(t)e(and)h(thereb)n(y)g(increasing)e(the)j(c)
-n(hance)e(of)523 3928 y(other)j(users)g(\014nding)g(undesirable)g
-(results)g(for)g(those)h(k)n(eyw)n(ords.)648 4028 y(Despite)38
+n(hance)e(of)523 3224 y(other)j(users)g(\014nding)g(undesirable)g
+(results)g(for)g(those)h(k)n(eyw)n(ords.)648 3330 y(Despite)38
 b(these)g(fundamen)n(tal)h(dra)n(wbac)n(ks,)c(ECRS)j(should)g(\(and)g
-(can\))g(giv)n(e)g(some)523 4127 y(un)n(usual)e Ft(guar)l(ante)l(es)f
+(can\))g(giv)n(e)g(some)523 3430 y(un)n(usual)e Ft(guar)l(ante)l(es)f
 FA(for)h(k)n(eyw)n(ord-based)d(searc)n(hes.)h(First,)i(the)g(k)n(eyw)n
-(ord)e(used)i(for)f(a)523 4227 y(searc)n(h)23 b(is)i(not)f(exp)r(osed)h
+(ord)e(used)i(for)f(a)523 3530 y(searc)n(h)23 b(is)i(not)f(exp)r(osed)h
 (to)f(in)n(termediaries)g(in)h(a)f(w)n(a)n(y)f(that)i(w)n(ould)f(allo)n
-(w)g(them)h(to)g(easily)523 4327 y(exercise)g(editorial)g(con)n(trol)f
+(w)g(them)h(to)g(easily)523 3629 y(exercise)g(editorial)g(con)n(trol)f
 (\(i.e.)j(to)f(censor)e(queries\).)i(Again)f(a)h(guessing)e(attac)n(k,)
-i(where)523 4426 y(the)j(in)n(termediary)f(guesses)g(the)h(k)n(eyw)n
-(ord)e(and)i(can)g(then)g(compute)h(the)f(query)f(for)h(this)523
-4526 y(k)n(eyw)n(ord,)c(is)h(acceptable.)f(Plausible)h(deniabilit)n(y)g
-(for)g(the)g(in)n(termediaries)f(is)i(una\013ected)523
-4625 y(b)n(y)32 b(this)g(attac)n(k.)f(Second,)g(only)h(p)r(eers)f(that)
-h(ha)n(v)n(e)f(con)n(ten)n(t)g(a)n(v)-5 b(ailable)31
-b(under)h(the)g(giv)n(en)523 4725 y(k)n(eyw)n(ord)20
-b(should)i(b)r(e)g(able)g(to)g(pro)r(duce)f(a)h(v)-5
-b(alid)22 b(resp)r(onse.)f(In)h(other)f(w)n(ords,)g(the)i(ultimate)523
-4825 y(resp)r(onder)g(m)n(ust)h(ha)n(v)n(e)f(succeeded)g(in)i(guessing)
-d(the)j(k)n(eyw)n(ord.)d(This)i(is)g(imp)r(ortan)n(t)f(since)523
-4924 y(it)40 b(prev)n(en)n(ts)f(p)r(eers)h(from)f(making)g(up)i
-(replies)e(for)g(arbitrary)f(requests)h(on-the-\015y)-7
-b(.)40 b(If)p Black Black eop end
-%%Page: 12 12
-TeXDict begin 12 11 bop 0 0 a
-SDict begin /product where{pop product(Distiller)search{pop pop pop
-version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
-closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
-grestore}if}{pop}ifelse}{pop}ifelse}if end
- 0 0 a Black 0 TeXcolorgray
-523 232 a
-SDict begin H.S end
- 523 232 a 0 TeXcolorgray 0 TeXcolorgray 523
-232 a
-SDict begin H.R end
- 523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.12) cvn H.B /DEST pdfmark
-end
- 523 232 a Black Fx(12)199 b(C.)27
-b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
-Black 523 448 a FA(p)r(eers)37 b(w)n(ere)f(able)h(to)g(resp)r(ond)f(to)
-h(an)n(y)f(k)n(eyw)n(ord)g(query)g(without)h(ha)n(ving)f(to)h(at)g
-(least)523 548 y(guess)26 b(the)h(k)n(eyw)n(ord,)e(they)i(could)f(use)h
-(this)g(to)g(spam)f(ev)n(ery)f(p)r(ossible)i(searc)n(h,)e(rendering)523
-648 y(the)33 b(k)n(eyw)n(ord)d(searc)n(h)h(mostly)h(useless.)f(F)-7
-b(orcing)32 b(resp)r(onders)f(to)h(guess)f(k)n(eyw)n(ords)f(do)r(es)523
-747 y(not)h(eliminate)f(the)h(problem)f(completely)-7
-b(.)31 b(Ho)n(w)n(ev)n(er,)d(it)j(do)r(es)f(limit)i(the)f(attac)n(k)e
-(to)i(the)523 847 y(common,)18 b(easily)g(guessed)g(k)n(eyw)n(ords.)f
-(Finally)-7 b(,)18 b(the)h(v)n(eri\014cation)f(that)h(a)f(resp)r(onse)f
-(is)i(v)-5 b(alid)523 946 y(should)27 b(b)r(e)h(p)r(ossible)g(not)f
-(only)g(for)h(the)f(\014nal)h(recipien)n(t,)f(but)h(also)f(for)g(in)n
-(termediaries.)648 1055 y(ECRS)38 b(ac)n(hiev)n(es)g(all)g(of)h(this)h
-(with)f(a)g Ft(new)h(crypto)l(gr)l(aphic)j(primitive)p
-FA(,)e(whic)n(h)e(is)f(a)523 1155 y(public-priv)-5 b(ate)35
-b(k)n(ey)g(pair)g(\()p Fq(P)1481 1167 y Fh(pub)1588 1155
-y FA(\()p Fq(K)6 b FA(\))p Fq(;)14 b(P)1819 1167 y Fh(pr)r(iv)1949
-1155 y FA(\()p Fq(K)6 b FA(\)\))36 b(that)g(is)f(generated)g(from)g(a)g
-(k)n(eyw)n(ord)523 1254 y Fq(K)6 b FA(.)34 b(The)g(k)n(eyw)n(ord)e
-Fq(K)40 b FA(is)33 b(used)h(as)g(the)g(seed)g(and)g(only)g(input)g(to)g
-(the)h(pseudo-random)523 1354 y(n)n(um)n(b)r(er)30 b(generator)e(that)i
-(is)g(used)g(in)g(the)h(generation)d(of)i(the)h(public-priv)-5
-b(ate)29 b(k)n(ey)h(pair.)523 1454 y(The)h(authors)f(are)g(not)i(a)n(w)
-n(are)d(of)i(an)n(y)f(previous)g(use)h(of)g Fq(K)6 b
-FA(-deterministic)31 b(public-k)n(eys.)523 1553 y(Giv)n(en)37
-b(suc)n(h)f(a)h Fq(K)6 b FA(-deterministic)36 b(public-priv)-5
-b(ate)36 b(k)n(ey)-7 b(,)36 b(the)i(inserting)e(p)r(eer)h(generates)523
-1653 y Ft(KBlo)l(ck)p FA(s)k(b)n(y)g(signing)e(the)i(metadata)f
-(necessary)f(to)h(do)n(wnload)f(the)i(\014le)g(with)g
-Fq(P)3252 1665 y Fh(pr)r(iv)3382 1653 y FA(.)523 1753
-y Ft(KBlo)l(ck)p FA(s)d(are)f(essen)n(tially)f(lik)n(e)h
-Ft(SBlo)l(ck)p FA(s)h(only)f(that)h(the)g Fq(K)6 b FA(-determinate)36
-b(k)n(ey)h(is)g(used)523 1852 y(instead)27 b(of)h(the)g(pseudon)n(ym.)
-648 1961 y(A)e(p)r(eer)h(searc)n(hing)d(for)i Fq(K)32
-b FA(also)25 b(computes)h Fq(P)2094 1973 y Fh(pub)2202
-1961 y FA(\()p Fq(K)6 b FA(\))26 b(using)g(the)h(same)f(deterministic)
-523 2060 y(k)n(ey-generation)31 b(algorithm)i(\()p Fq(P)1555
-2072 y Fh(pr)r(iv)1685 2060 y FA(\()p Fq(K)6 b FA(\))34
-b(is)f(also)g(computed)h(but)g(not)g(used\).)f(The)h(p)r(eer)523
-2160 y(then)28 b(uses)f Fq(H)7 b FA(\()p Fq(P)1049 2172
-y Fh(pub)1156 2160 y FA(\()p Fq(K)f FA(\)\))28 b(as)e(the)i(query)-7
-b(.)27 b(In)n(termediaries)e(can)i(v)n(erify)g(that)g(the)h(resp)r
-(onse)523 2260 y(is)k(prop)r(erly)e(signed)h(b)n(y)h(a)f(public)h(k)n
-(ey)f(that)h(hashes)f(to)h(the)g(query)-7 b(,)31 b(but)h(are)f(unable)g
-(to)523 2359 y(decrypt)h(the)h(resp)r(onse)e(or)h(learn)f(the)i
-Fq(K)38 b FA(that)33 b(w)n(as)e(used)i(to)f(generate)f(the)i(public)g
-(k)n(ey)523 2459 y(without)28 b(guessing.)648 2568 y(In)k(conclusion,)g
-(using)h Ft(KBlo)l(ck)p FA(s)g(it)g(is)g(p)r(ossible)f(to)g(allo)n(w)g
-(in)n(termediaries)f(to)i(v)n(erify)523 2667 y(the)21
-b(in)n(tegrit)n(y)f(of)h(replies)f(without)h(learning)f(ab)r(out)g(the)
-h(query)f(or)g(the)h(resp)r(onse.)f Ft(KBlo)l(ck)p FA(s)523
-2767 y(require)29 b(a)h(k)n(eyw)n(ord)e(guess,)i(making)f(it)i(it)g
-(harder)e(to)h(reply)g(to)g(arbitrary)e(queries)h(with)523
-2867 y(random)24 b(data;)g(they)i(cannot)e(prev)n(en)n(t)g(users)g
-(from)h(inserting)f(suc)n(h)g(data)h(under)g(p)r(opular)523
-2966 y(k)n(eyw)n(ords.)i(The)h(receiv)n(er)f(of)i(the)g
-Ft(KBlo)l(ck)h FA(can)e(retriev)n(e)f(the)i(rest)g(of)f(the)h(\014le)g
-(tree)f(using)523 3066 y(CHK)g(queries)e(in)i(the)g(same)f(w)n(a)n(y)f
-(as)h(it)h(is)g(done)f(for)g Ft(SBlo)l(ck)p FA(s.)523
-3268 y
-SDict begin H.S end
- 523 3268 a 523 3268 a
-SDict begin 12 H.A end
- 523 3268 a 523 3268 a
-SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.3.7) cvn H.B /DEST
-pdfmark end
- 523
-3268 a 92 x Fr(3.7)95 b(Summary)523 3572 y FA(The)32
-b(ECRS)g(enco)r(ding)f(algorithm)g(is)h(summarized)f(in)h(Figure)p
-1 0 0 TeXcolorrgb 2610 3572 a
-SDict begin H.S end
- 2610 3572 a 1 0 0 TeXcolorrgb
-FA(2)p 1 0 0 TeXcolorrgb 2652 3518 a
-SDict begin H.R end
- 2652 3518 a 2652
-3572 a
-SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
-(figure.1.2) cvn H.B /ANN pdfmark end
- 2652 3572 a Black FA(.)g(Figure)p 1 0 0 TeXcolorrgb
-2973 3572 a
-SDict begin H.S end
- 2973 3572 a 1 0 0 TeXcolorrgb FA(3)p 1 0 0
-TeXcolorrgb 3015 3518 a
-SDict begin H.R end
- 3015 3518 a 3015 3572 a
-SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
-(figure.1.3) cvn H.B /ANN pdfmark end
- 3015
-3572 a Black 32 w FA(sho)n(ws)f(the)523 3671 y(sequence)26
-b(of)h(messages)e(exc)n(hanged)g(b)n(y)i(p)r(eers)f(to)h(do)n(wnload)e
-(a)i(64k)e(\014le)i(starting)f(with)h(a)523 3771 y(k)n(eyw)n(ord.)523
-3973 y
-SDict begin H.S end
- 523 3973 a 523 3973 a
-SDict begin 12 H.A end
- 523 3973 a 523 3973 a
-SDict begin [ /View [/XYZ H.V] /Dest (section.1.4) cvn H.B /DEST pdfmark
-end
- 523
-3973 a 109 x Fu(4)112 b(Extensions)523 4327 y FA(The)38
-b(v)-5 b(anilla)38 b(ECRS)g(enco)r(ding)f(sc)n(heme)h(still)g(lea)n(v)n
-(es)f(some)g(practical)g(problems)h(that)523 4426 y(should)19
-b(b)r(e)g(addressed)f(to)h(facilitate)g(real-life)f(usabilit)n(y)-7
-b(.)19 b(F)-7 b(or)18 b(example,)h(the)g(man)n(ual)f(e\013ort)523
-4526 y(of)25 b(assigning)f(or)g(guessing)g(k)n(eyw)n(ords)f(should)i(b)
-r(e)h(minimized.)g(Also,)f(the)g(o)n(v)n(erall)e(system)523
-4625 y(should)36 b(b)r(e)h(e\016cien)n(t)g(in)g(practice.)f(In)h
-(particular,)e(this)i(requires)f(p)r(eers)g(to)g(frequen)n(tly)523
-4725 y(handle)j(small,)f(p)r(er-blo)r(c)n(k)g(queries,)g(man)n(y)g(of)g
-(whic)n(h)h(ma)n(y)f(not)h(ha)n(v)n(e)e(a)h(answ)n(er)g(that)523
-4825 y(is)31 b(lo)r(cally)f(a)n(v)-5 b(ailable.)30 b(The)h(follo)n
-(wing)f(subsections)g(presen)n(t)g(some)h(ideas)f(on)h(ho)n(w)f(these)
-523 4924 y(issues)d(can)g(b)r(e)h(addressed.)p Black
-Black eop end
+i(where)523 3729 y(the)19 b(in)n(termediary)f(guesses)f(a)i(k)n(eyw)n
+(ord,)e(computes)h(the)i(resp)r(ectiv)n(e)e(query)-7
+b(,)18 b(and)h(attempts)523 3828 y(to)33 b(matc)n(h)f(the)h(query)f(to)
+h(the)g(incoming)f(query)-7 b(,)32 b(is)h(acceptable.)f(Plausible)g
+(deniabilit)n(y)523 3928 y(for)26 b(the)i(in)n(termediaries)d(is)i
+(una\013ected)g(b)n(y)g(this)g(attac)n(k.)f(Second,)h(only)g(p)r(eers)f
+(that)h(ha)n(v)n(e)523 4028 y(con)n(ten)n(t)36 b(a)n(v)-5
+b(ailable)36 b(under)h(the)g(giv)n(en)f(k)n(eyw)n(ord)f(should)i(b)r(e)
+g(able)f(to)h(pro)r(duce)g(a)f(v)-5 b(alid)523 4127 y(resp)r(onse.)18
+b(In)h(other)g(w)n(ords,)f(the)h(ultimate)h(resp)r(onder)e(m)n(ust)h
+(ha)n(v)n(e)f(succeeded)h(in)g(guessing)523 4227 y(the)j(k)n(eyw)n
+(ord.)e(This)i(is)f(imp)r(ortan)n(t)h(since)f(it)h(prev)n(en)n(ts)f(p)r
+(eers)g(from)g(making)g(up)h(replies)g(for)523 4327 y(arbitrary)f
+(requests)h(on-the-\015y)-7 b(.)23 b(If)h(p)r(eers)e(w)n(ere)h(able)f
+(to)h(resp)r(ond)g(to)g(an)n(y)f(k)n(eyw)n(ord)g(query)523
+4426 y(without)k(ha)n(ving)f(to)g(at)h(least)f(guess)g(the)h(k)n(eyw)n
+(ord,)e(they)i(could)f(use)g(this)h(to)g(spam)f(ev)n(ery)523
+4526 y(p)r(ossible)e(searc)n(h,)e(rendering)h(the)h(k)n(eyw)n(ord)e
+(searc)n(h)g(mostly)h(useless.)h(F)-7 b(orcing)21 b(resp)r(onders)523
+4625 y(to)28 b(guess)g(k)n(eyw)n(ords)e(do)r(es)i(not)g(eliminate)g
+(the)h(problem)f(completely)-7 b(.)28 b(Ho)n(w)n(ev)n(er,)f(it)h(do)r
+(es)523 4725 y(limit)22 b(the)g(attac)n(k)e(to)h(the)h(common,)f
+(easily)g(guessed)f(k)n(eyw)n(ords.)f(Finally)-7 b(,)22
+b(the)f(v)n(eri\014cation)523 4825 y(that)32 b(a)f(resp)r(onse)f(is)h
+(v)-5 b(alid)32 b(should)f(b)r(e)h(p)r(ossible)f(not)g(only)g(for)g
+(the)h(\014nal)f(recipien)n(t,)g(but)523 4924 y(also)c(for)g(in)n
+(termediaries.)p Black Black eop end
 %%Page: 13 13
 TeXDict begin 13 12 bop 0 0 a
 SDict begin /product where{pop product(Distiller)search{pop pop pop
@@ -7285,7 +7336,7 @@
 (original)i(length)f(of)g Fo(C)5 b Fx(.)28 b(Encrypt)f(and)g(sign)h
 (the)f(resulting)h Fp(SBlo)l(ck)p Fx(s)g(and)664 1515
 y Fp(KBlo)l(ck)p Fx(s.)p 523 1649 2882 4 v Black 1253
-1789 a Fr(Fig.)14 b(2.)p 0 TeXcolorgray 1531 1690 a
+1789 a Fq(Fig.)14 b(2.)p 0 TeXcolorgray 1531 1690 a
 SDict begin H.S end
  1531
 1690 a 0 TeXcolorgray 0 TeXcolorgray 1531 1690 a
@@ -7295,101 +7346,237 @@
 SDict begin [ /View [/XYZ H.V] /Dest (figure.1.2) cvn H.B /DEST pdfmark
 end
  1531 1690 a Black 99 x FA(The)28 b(ECRS)f(enco)r
-(ding)h(algorithm.)p Black Black Black 523 1941 2882
-4 v 523 2064 a Fo(B)h Fx(shares)e(\014le)f Fo(B)1024
-2072 y Fy(0)1058 2064 y Fo(;)13 b(B)1150 2072 y Fy(1)1211
-2064 y Fx(under)25 b(k)n(eyw)n(ord)g(\\test".)p Black
-523 2221 a Fo(A)c Ff(!)g Fo(B)t Fv(:)p Black 41 w Fx(Query:)k
-Fo(H)6 b Fx(\()p Fo(R)q(S)t(A)1350 2190 y Fj(pub)1449
-2221 y Fx(\()p Fo(H)g Fx(\(\\)p Fo(test)1745 2190 y Fl(00)1784
-2221 y Fx(\)\)\))p Black 523 2313 a Fo(B)25 b Ff(!)c
-Fo(A)p Fv(:)p Black 41 w Fx(Resp)r(onse:)34 b(\()p Fo(E)1281
-2325 y Fj(H)t Fy(\(\\)p Fj(test)1495 2311 y Fe(00)1535
-2325 y Fy(\))1563 2313 y Fx(\()p Fo(Q)1654 2321 y Fy(0)1688
-2313 y Fo(;)13 b(K)1787 2321 y Fy(0)1822 2313 y Fo(;)g(siz)s(e)p
-Fx(\))p Fo(;)g(R)q(S)t(A)2225 2281 y Fj(pub)2324 2313
-y Fx(\()p Fo(H)6 b Fx(\(\\)p Fo(test)2620 2281 y Fl(00)2659
-2313 y Fx(\)\))p Fo(;)13 b(sig)s Fx(\))33 b(where)g Fo(sig)j
-Fx(is)e(a)664 2404 y(signature)27 b(generated)f(with)g
-Fo(R)q(S)t(A)1691 2372 y Fj(pr)r(iv)1812 2404 y Fx(\()p
-Fo(H)6 b Fx(\(\\)p Fo(test)2108 2372 y Fl(00)2147 2404
+(ding)h(algorithm.)p Black Black 648 2112 a(ECRS)38 b(ac)n(hiev)n(es)g
+(all)g(of)h(this)h(with)f(a)g Ft(new)h(crypto)l(gr)l(aphic)j(primitive)
+p FA(,)e(whic)n(h)e(is)f(a)523 2211 y(public-priv)-5
+b(ate)35 b(k)n(ey)g(pair)g(\()p Fs(P)1481 2223 y Fh(pub)1588
+2211 y FA(\()p Fs(K)6 b FA(\))p Fs(;)14 b(P)1819 2223
+y Fh(pr)r(iv)1949 2211 y FA(\()p Fs(K)6 b FA(\)\))36
+b(that)g(is)f(generated)g(from)g(a)g(k)n(eyw)n(ord)523
+2311 y Fs(K)6 b FA(.)34 b(The)g(k)n(eyw)n(ord)e Fs(K)40
+b FA(is)33 b(used)h(as)g(the)g(seed)g(and)g(only)g(input)g(to)g(the)h
+(pseudo-random)523 2411 y(n)n(um)n(b)r(er)30 b(generator)e(that)i(is)g
+(used)g(in)g(the)h(generation)d(of)i(the)h(public-priv)-5
+b(ate)29 b(k)n(ey)h(pair.)523 2510 y(The)h(authors)f(are)g(not)i(a)n(w)
+n(are)d(of)i(an)n(y)f(previous)g(use)h(of)g Fs(K)6 b
+FA(-deterministic)31 b(public-k)n(eys.)523 2610 y(Giv)n(en)37
+b(suc)n(h)f(a)h Fs(K)6 b FA(-deterministic)36 b(public-priv)-5
+b(ate)36 b(k)n(ey)-7 b(,)36 b(the)i(inserting)e(p)r(eer)h(generates)523
+2710 y Ft(KBlo)l(ck)p FA(s)k(b)n(y)g(signing)e(the)i(metadata)f
+(necessary)f(to)h(do)n(wnload)f(the)i(\014le)g(with)g
+Fs(P)3252 2722 y Fh(pr)r(iv)3382 2710 y FA(.)523 2809
+y Ft(KBlo)l(ck)p FA(s)d(are)f(essen)n(tially)f(lik)n(e)h
+Ft(SBlo)l(ck)p FA(s)h(only)f(that)h(the)g Fs(K)6 b FA(-determinate)36
+b(k)n(ey)h(is)g(used)523 2909 y(instead)27 b(of)h(the)g(pseudon)n(ym.)
+648 3026 y(A)e(p)r(eer)h(searc)n(hing)d(for)i Fs(K)32
+b FA(also)25 b(computes)h Fs(P)2094 3038 y Fh(pub)2202
+3026 y FA(\()p Fs(K)6 b FA(\))26 b(using)g(the)h(same)f(deterministic)
+523 3125 y(k)n(ey-generation)31 b(algorithm)i(\()p Fs(P)1555
+3137 y Fh(pr)r(iv)1685 3125 y FA(\()p Fs(K)6 b FA(\))34
+b(is)f(also)g(computed)h(but)g(not)g(used\).)f(The)h(p)r(eer)523
+3225 y(then)28 b(uses)f Fs(H)7 b FA(\()p Fs(P)1049 3237
+y Fh(pub)1156 3225 y FA(\()p Fs(K)f FA(\)\))28 b(as)e(the)i(query)-7
+b(.)27 b(In)n(termediaries)e(can)i(v)n(erify)g(that)g(the)h(resp)r
+(onse)523 3324 y(is)k(prop)r(erly)e(signed)h(b)n(y)h(a)f(public)h(k)n
+(ey)f(that)h(hashes)f(to)h(the)g(query)-7 b(,)31 b(but)h(are)f(unable)g
+(to)523 3424 y(decrypt)h(the)h(resp)r(onse)e(or)h(learn)f(the)i
+Fs(K)38 b FA(that)33 b(w)n(as)e(used)i(to)f(generate)f(the)i(public)g
+(k)n(ey)523 3524 y(without)28 b(guessing.)648 3640 y(In)k(conclusion,)g
+(using)h Ft(KBlo)l(ck)p FA(s)g(it)g(is)g(p)r(ossible)f(to)g(allo)n(w)g
+(in)n(termediaries)f(to)i(v)n(erify)523 3740 y(the)21
+b(in)n(tegrit)n(y)f(of)h(replies)f(without)h(learning)f(ab)r(out)g(the)
+h(query)f(or)g(the)h(resp)r(onse.)f Ft(KBlo)l(ck)p FA(s)523
+3840 y(require)29 b(a)h(k)n(eyw)n(ord)e(guess,)i(making)f(it)i(it)g
+(harder)e(to)h(reply)g(to)g(arbitrary)e(queries)h(with)523
+3939 y(random)24 b(data;)g(they)i(cannot)e(prev)n(en)n(t)g(users)g
+(from)h(inserting)f(suc)n(h)g(data)h(under)g(p)r(opular)523
+4039 y(k)n(eyw)n(ords.)i(The)h(receiv)n(er)f(of)i(the)g
+Ft(KBlo)l(ck)h FA(can)e(retriev)n(e)f(the)i(rest)g(of)f(the)h(\014le)g
+(tree)f(using)523 4139 y(CHK)g(queries)e(in)i(the)g(same)f(w)n(a)n(y)f
+(as)h(it)h(is)g(done)f(for)g Ft(SBlo)l(ck)p FA(s.)523
+4373 y
+SDict begin H.S end
+ 523 4373 a 523 4373 a
+SDict begin 12 H.A end
+ 523 4373 a 523 4373 a
+SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.3.7) cvn H.B /DEST
+pdfmark end
+ 523
+4373 a 100 x Fq(3.7)95 b(Summary)523 4725 y FA(The)32
+b(ECRS)g(enco)r(ding)f(algorithm)g(is)h(summarized)f(in)h(Figure)p
+1 0 0 TeXcolorrgb 2610 4725 a
+SDict begin H.S end
+ 2610 4725 a 1 0 0 TeXcolorrgb
+FA(2)p 1 0 0 TeXcolorrgb 2652 4672 a
+SDict begin H.R end
+ 2652 4672 a 2652
+4725 a
+SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
+(figure.1.2) cvn H.B /ANN pdfmark end
+ 2652 4725 a Black FA(.)g(Figure)p 1 0 0 TeXcolorrgb
+2973 4725 a
+SDict begin H.S end
+ 2973 4725 a 1 0 0 TeXcolorrgb FA(3)p 1 0 0
+TeXcolorrgb 3015 4672 a
+SDict begin H.R end
+ 3015 4672 a 3015 4725 a
+SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
+(figure.1.3) cvn H.B /ANN pdfmark end
+ 3015
+4725 a Black 32 w FA(sho)n(ws)f(the)523 4825 y(sequence)26
+b(of)h(messages)e(exc)n(hanged)g(b)n(y)i(p)r(eers)f(to)h(do)n(wnload)e
+(a)i(64k)e(\014le)i(starting)f(with)h(a)523 4924 y(k)n(eyw)n(ord.)p
+Black Black eop end
+%%Page: 14 14
+TeXDict begin 14 13 bop 0 0 a
+SDict begin /product where{pop product(Distiller)search{pop pop pop
+version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
+closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
+grestore}if}{pop}ifelse}{pop}ifelse}if end
+ 0 0 a Black 0 TeXcolorgray
+523 232 a
+SDict begin H.S end
+ 523 232 a 0 TeXcolorgray 0 TeXcolorgray 523
+232 a
+SDict begin H.R end
+ 523 232 a 523 232 a
+SDict begin [ /View [/XYZ H.V] /Dest (page.14) cvn H.B /DEST pdfmark
+end
+ 523 232 a Black Fx(14)199 b(C.)27
+b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
+Black Black 523 369 2882 4 v 523 491 a Fo(B)i Fx(shares)e(\014le)f
+Fo(B)1024 499 y Fy(0)1058 491 y Fo(;)13 b(B)1150 499
+y Fy(1)1211 491 y Fx(under)25 b(k)n(eyw)n(ord)g(\\test".)p
+Black 523 649 a Fo(A)c Ff(!)g Fo(B)t Fv(:)p Black 41
+w Fx(Query:)k Fo(H)6 b Fx(\()p Fo(R)q(S)t(A)1350 617
+y Fj(pub)1449 649 y Fx(\()p Fo(H)g Fx(\(\\)p Fo(test)1745
+617 y Fl(00)1784 649 y Fx(\)\)\))p Black 523 740 a Fo(B)25
+b Ff(!)c Fo(A)p Fv(:)p Black 41 w Fx(Resp)r(onse:)34
+b(\()p Fo(E)1281 752 y Fj(H)t Fy(\(\\)p Fj(test)1495
+738 y Fe(00)1535 752 y Fy(\))1563 740 y Fx(\()p Fo(Q)1654
+748 y Fy(0)1688 740 y Fo(;)13 b(K)1787 748 y Fy(0)1822
+740 y Fo(;)g(siz)s(e)p Fx(\))p Fo(;)g(R)q(S)t(A)2225
+709 y Fj(pub)2324 740 y Fx(\()p Fo(H)6 b Fx(\(\\)p Fo(test)2620
+709 y Fl(00)2659 740 y Fx(\)\))p Fo(;)13 b(sig)s Fx(\))33
+b(where)g Fo(sig)j Fx(is)e(a)664 832 y(signature)27 b(generated)f(with)
+g Fo(R)q(S)t(A)1691 800 y Fj(pr)r(iv)1812 832 y Fx(\()p
+Fo(H)6 b Fx(\(\\)p Fo(test)2108 800 y Fl(00)2147 832
 y Fx(\)\))25 b(\(encrypted)g Fp(KBlo)l(ck)p Fx(\))p Black
-523 2495 a Fo(A)c Ff(!)g Fo(B)t Fv(:)p Black 41 w Fx(Query:)k
-Fo(Q)1143 2503 y Fy(0)1203 2495 y Fx(\(CHK-query\))p
-Black 523 2587 a Fo(B)g Ff(!)c Fo(A)p Fv(:)p Black 41
-w Fx(Resp)r(onse:)26 b Fo(E)1243 2595 y Fj(K)1294 2605
-y Fd(0)1330 2587 y Fx(\()p Fo(Q)1421 2595 y Fy(1)1455
-2587 y Fo(;)14 b(K)1555 2595 y Fy(1)1589 2587 y Fo(;)f(Q)1684
-2595 y Fy(2)1718 2587 y Fo(;)h(K)1818 2595 y Fy(2)1852
-2587 y Fx(\))26 b(\(encrypted)e Fp(IBlo)l(ck)p Fx(\))p
-Black 523 2678 a Fo(A)d Ff(!)g Fo(B)t Fv(:)p Black 41
-w Fx(Query:)k Fo(Q)1143 2686 y Fy(1)1203 2678 y Fx(and)g
-Fo(Q)1413 2686 y Fy(2)1473 2678 y Fx(\(CHK-query\))p
-Black 523 2769 a Fo(B)g Ff(!)c Fo(A)p Fv(:)p Black 41
-w Fx(Resp)r(onse:)26 b Fo(E)1243 2777 y Fj(K)1294 2787
-y Fd(1)1330 2769 y Fx(\()p Fo(B)1418 2777 y Fy(0)1453
-2769 y Fx(\))f(and)h Fo(E)1715 2777 y Fj(K)1766 2787
-y Fd(2)1802 2769 y Fx(\()p Fo(B)1890 2777 y Fy(1)1924
-2769 y Fx(\))g(\(encrypted)e Fp(DBlo)l(ck)p Fx(s\))p
-523 2905 V Black 1059 3046 a Fr(Fig.)15 b(3.)p 0 TeXcolorgray
-1338 2946 a
+523 923 a Fo(A)c Ff(!)g Fo(B)t Fv(:)p Black 41 w Fx(Query:)k
+Fo(Q)1143 931 y Fy(0)1203 923 y Fx(\(CHK-query\))p Black
+523 1014 a Fo(B)g Ff(!)c Fo(A)p Fv(:)p Black 41 w Fx(Resp)r(onse:)26
+b Fo(E)1243 1022 y Fj(K)1294 1032 y Fd(0)1330 1014 y
+Fx(\()p Fo(Q)1421 1022 y Fy(1)1455 1014 y Fo(;)14 b(K)1555
+1022 y Fy(1)1589 1014 y Fo(;)f(Q)1684 1022 y Fy(2)1718
+1014 y Fo(;)h(K)1818 1022 y Fy(2)1852 1014 y Fx(\))26
+b(\(encrypted)e Fp(IBlo)l(ck)p Fx(\))p Black 523 1106
+a Fo(A)d Ff(!)g Fo(B)t Fv(:)p Black 41 w Fx(Query:)k
+Fo(Q)1143 1114 y Fy(1)1203 1106 y Fx(and)g Fo(Q)1413
+1114 y Fy(2)1473 1106 y Fx(\(CHK-query\))p Black 523
+1197 a Fo(B)g Ff(!)c Fo(A)p Fv(:)p Black 41 w Fx(Resp)r(onse:)26
+b Fo(E)1243 1205 y Fj(K)1294 1215 y Fd(1)1330 1197 y
+Fx(\()p Fo(B)1418 1205 y Fy(0)1453 1197 y Fx(\))f(and)h
+Fo(E)1715 1205 y Fj(K)1766 1215 y Fd(2)1802 1197 y Fx(\()p
+Fo(B)1890 1205 y Fy(1)1924 1197 y Fx(\))g(\(encrypted)e
+Fp(DBlo)l(ck)p Fx(s\))p 523 1333 V Black 1059 1473 a
+Fq(Fig.)15 b(3.)p 0 TeXcolorgray 1338 1374 a
 SDict begin H.S end
- 1338 2946 a 0 TeXcolorgray 0 TeXcolorgray
-1338 2946 a
+ 1338 1374
+a 0 TeXcolorgray 0 TeXcolorgray 1338 1374 a
 SDict begin H.R end
- 1338 2946 a 1338 2946 a
+ 1338 1374
+a 1338 1374 a
 SDict begin [ /View [/XYZ H.V] /Dest (figure.1.3) cvn H.B /DEST pdfmark
 end
- 1338 2946 a Black
-100 x FA(Example)27 b(proto)r(col)f(for)h(an)h(ECRS)f(do)n(wnload.)p
-Black Black 523 3283 a
+ 1338 1374 a Black 99 x FA(Example)27 b(proto)r(col)f(for)
+h(an)h(ECRS)f(do)n(wnload.)p Black Black 523 1669 a
 SDict begin H.S end
- 523 3283 a 523 3283 a
+ 523
+1669 a 523 1669 a
 SDict begin 12 H.A end
- 523 3283
-a 523 3283 a
+ 523 1669 a 523 1669 a
+SDict begin [ /View [/XYZ H.V] /Dest (section.1.4) cvn H.B /DEST pdfmark
+end
+ 523 1669 a 83
+x Fu(4)112 b(Extensions)523 1941 y FA(The)38 b(v)-5 b(anilla)38
+b(ECRS)g(enco)r(ding)f(sc)n(heme)h(still)g(lea)n(v)n(es)f(some)g
+(practical)g(problems)h(that)523 2041 y(should)i(b)r(e)g(addressed)f
+(to)h(facilitate)g(real-life)f(usabilit)n(y)-7 b(.)40
+b(F)-7 b(or)40 b(example,)f(the)i(man)n(ual)523 2141
+y(e\013ort)30 b(of)g(assigning)f(or)g(guessing)h(k)n(eyw)n(ords)e
+(should)i(b)r(e)g(minimized.)h(Also,)f(the)h(o)n(v)n(erall)523
+2240 y(system)i(should)g(b)r(e)h(e\016cien)n(t)f(in)g(practice.)g(In)g
+(particular,)f(the)i(system)f(requires)e(p)r(eers)523
+2340 y(to)k(frequen)n(tly)h(handle)f(small,)g(p)r(er-blo)r(c)n(k)g
+(queries,)f(man)n(y)h(of)h(whic)n(h)f(ma)n(y)g(not)g(ha)n(v)n(e)f(a)523
+2439 y(answ)n(er)23 b(that)i(is)g(lo)r(cally)f(a)n(v)-5
+b(ailable.)23 b(The)i(follo)n(wing)e(subsections)h(presen)n(t)g(some)g
+(ideas)g(on)523 2539 y(ho)n(w)j(these)h(issues)f(can)g(b)r(e)h
+(addressed.)523 2679 y
+SDict begin H.S end
+ 523 2679 a 523 2679 a
+SDict begin 12 H.A end
+ 523 2679
+a 523 2679 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.4.1) cvn H.B /DEST
 pdfmark end
- 523 3283 a 83 x Fr(4.1)95 b(Keyw)m(ord)32
-b(inference)523 3613 y FA(One)40 b(problem)g(with)i(ECRS)e(is)g(that)h
+ 523 2679 a 99 x Fq(4.1)95 b(Keyw)m(ord)32
+b(inference)523 2935 y FA(One)40 b(problem)g(with)i(ECRS)e(is)g(that)h
 (the)g(con)n(ten)n(t)g(m)n(ust)f(often)h(b)r(e)g(asso)r(ciated)e(with)
-523 3713 y(k)n(eyw)n(ords.)23 b(Although)i(this)h(is)f(v)-5
+523 3034 y(k)n(eyw)n(ords.)23 b(Although)i(this)h(is)f(v)-5
 b(astly)25 b(b)r(etter)g(than)g(forcing)g(the)g(user)g(to)g(rely)f(on)h
-(\\mean-)523 3812 y(ingless")33 b(bitstrings)g(as)g(the)i(only)e(iden)n
+(\\mean-)523 3134 y(ingless")33 b(bitstrings)g(as)g(the)i(only)e(iden)n
 (ti\014er,)h(the)g(k)n(eys)f(m)n(ust)h(still)g(b)r(e)h(c)n(hosen)e(so)g
-(that)523 3912 y(the)25 b(target)f(audience)g(can)h(guess)f(them.)h
+(that)523 3234 y(the)25 b(target)f(audience)g(can)h(guess)f(them.)h
 (The)g(simplest)g(non-tec)n(hnical)e(solution)i(for)f(this)523
-4012 y(problem)g(is)g(for)f(a)h(group)f(of)h(users)g(to)g(agree)e(on)i
+3333 y(problem)g(is)g(for)f(a)h(group)f(of)h(users)g(to)g(agree)e(on)i
 (an)g(informal)g(standard)f(for)g(k)n(eyw)n(ords.)g(If)523
-4111 y(con)n(ten)n(t)28 b(pro)n(viders)e(w)n(an)n(t)i(to)g(mak)n(e)f
+3433 y(con)n(ten)n(t)28 b(pro)n(viders)e(w)n(an)n(t)i(to)g(mak)n(e)f
 (it)i(easy)e(for)h(others)f(to)h(guess)f(a)h(k)n(eyw)n(ord,)f(it)h(is)g
-(t)n(yp-)523 4211 y(ically)h(useful)h(to)g(follo)n(w)f(informal)g(con)n
+(t)n(yp-)523 3532 y(ically)h(useful)h(to)g(follo)n(w)f(informal)g(con)n
 (v)n(en)n(tions)f(for)h(k)n(eyw)n(ord)f(selection.)h(F)-7
-b(or)29 b(example,)523 4310 y(a)e(reasonable)f(con)n(v)n(en)n(tion)g
+b(or)29 b(example,)523 3632 y(a)e(reasonable)f(con)n(v)n(en)n(tion)g
 (ma)n(y)h(b)r(e)h(to)f(only)g(use)h(lo)n(w)n(er-case)d(letters.)648
-4426 y(A)j(larger)f(problem)h(for)g(a)g(k)n(eyw)n(ord-based)e(searc)n
+3732 y(A)j(larger)f(problem)h(for)g(a)g(k)n(eyw)n(ord-based)e(searc)n
 (h)h(is)h(that)h(users)f(ma)n(y)g(b)r(e)h(reluctan)n(t)523
-4526 y(to)e(put)g(in)g(the)g(e\013ort)f(to)g(pro)n(vide)g(go)r(o)r(d)g
+3831 y(to)e(put)g(in)g(the)g(e\013ort)f(to)g(pro)n(vide)g(go)r(o)r(d)g
 (k)n(eyw)n(ords)e(for)i(the)h(con)n(ten)n(t)f(that)h(they)g(pro)n
-(vide.)523 4625 y(A)g(solution)f(to)h(this)g(problem)f(is)g(the)h
-Fs(libextractor)22 b FA(library)j([)p 0 1 0 TeXcolorrgb
-2575 4625 a
+(vide.)523 3931 y(A)g(solution)f(to)h(this)g(problem)f(is)g(the)h
+Fr(libextractor)22 b FA(library)j([)p 0 1 0 TeXcolorrgb
+2575 3931 a
 SDict begin H.S end
- 2575 4625 a 0 1 0 TeXcolorrgb FA(12)p 0 1 0
-TeXcolorrgb 2658 4572 a
+ 2575 3931 a 0 1 0 TeXcolorrgb FA(14)p 0 1 0
+TeXcolorrgb 2658 3877 a
 SDict begin H.R end
- 2658 4572 a 2658 4625 a
+ 2658 3877 a 2658 3931 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.le2005) cvn H.B /ANN pdfmark end
  2658
-4625 a Black FA(].)i Fs(libextractor)22 b FA(is)k(a)523
-4725 y(library)j(for)h(metadata)f(extraction)h(that)g(is)g(used)g(to)g
-(automatically)g(extract)f(k)n(eyw)n(ords)523 4825 y(and)f(other)g
+3931 a Black FA(].)i Fr(libextractor)22 b FA(is)k(a)523
+4031 y(library)j(for)h(metadata)f(extraction)h(that)g(is)g(used)g(to)g
+(automatically)g(extract)f(k)n(eyw)n(ords)523 4130 y(and)f(other)g
 (metadata,)g(suc)n(h)g(as)g(descriptions,)g(commen)n(ts)g(and)g(mime-t)
-n(yp)r(es)h(from)f(\014les)523 4924 y(of)g(v)-5 b(arious)26
-b(formats.)p Black Black eop end
-%%Page: 14 14
-TeXDict begin 14 13 bop 0 0 a
+n(yp)r(es)h(from)f(\014les)523 4230 y(of)g(v)-5 b(arious)26
+b(formats.)523 4370 y
+SDict begin H.S end
+ 523 4370 a 523 4370 a
+SDict begin 12 H.A end
+ 523 4370
+a 523 4370 a
+SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.4.2) cvn H.B /DEST
+pdfmark end
+ 523 4370 a 99 x Fq(4.2)95 b(Directories)523
+4625 y FA(Another)25 b(approac)n(h)e(to)i(a)n(v)n(oiding)e(searc)n(hes)
+g(is)i(to)g(group)e(\014les)i(in)n(to)g(directories.)f(Directo-)523
+4725 y(ries)k(can)g(help)h(with)h(the)f(searc)n(h)e(problem)h(since)h
+(they)f(reduce)h(the)g(need)g(for)f(searc)n(hing.)523
+4825 y(Also,)i(they)h(can)f(b)r(e)h(used)f(to)g(bundle)h(similar)f(con)
+n(ten)n(t)g(and)g(th)n(us)h(help)g(users)e(a)n(v)n(oid)g(in-)523
+4924 y(appropriately)g(lab)r(eled)h(data.)h(If)g(sev)n(eral)d(\014les)j
+(of)g(suc)n(h)f(a)g(directory)f(ha)n(v)n(e)h(appropriate)p
+Black Black eop end
+%%Page: 15 15
+TeXDict begin 15 14 bop 0 0 a
 SDict begin /product where{pop product(Distiller)search{pop pop pop
 version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
 closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
@@ -7401,119 +7588,116 @@
 232 a
 SDict begin H.R end
  523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.14) cvn H.B /DEST pdfmark
+SDict begin [ /View [/XYZ H.V] /Dest (page.15) cvn H.B /DEST pdfmark
 end
- 523 232 a Black Fx(14)199 b(C.)27
-b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
-Black 523 365 a
-SDict begin H.S end
- 523 365 a 523 365 a
-SDict begin 12 H.A end
- 523 365 a 523 365
-a
-SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.4.2) cvn H.B /DEST
-pdfmark end
- 523 365 a 83 x Fr(4.2)95 b(Directories)523 584 y FA(Another)25
-b(approac)n(h)e(to)i(a)n(v)n(oiding)e(searc)n(hes)g(is)i(to)g(group)e
-(\014les)i(in)n(to)g(directories.)f(Directo-)523 684
-y(ries)k(can)g(help)h(with)h(the)f(searc)n(h)e(problem)h(since)h(they)f
-(reduce)h(the)g(need)g(for)f(searc)n(hing.)523 784 y(Also,)i(they)h
-(can)f(b)r(e)h(used)f(to)g(bundle)h(similar)f(con)n(ten)n(t)g(and)g(th)
-n(us)h(help)g(users)e(a)n(v)n(oid)g(in-)523 883 y(appropriately)g(lab)r
-(eled)h(data.)h(If)g(sev)n(eral)d(\014les)j(of)g(suc)n(h)f(a)g
-(directory)f(ha)n(v)n(e)h(appropriate)523 983 y(descriptions,)k(it)h
-(is)g(lik)n(ely)f(that)h(the)g(other)f(\014les)h(will)g(also)f(ha)n(v)n
-(e)f(b)r(een)i(pro)n(vided)f(b)n(y)g(a)523 1082 y(non-malicious)26
-b(part)n(y)-7 b(.)648 1182 y(In)n(tegrating)38 b(directories)g(in)n(to)
-i(the)g(ECRS)f(sc)n(heme)g(is)h(fairly)f(straigh)n(tforw)n(ard.)e(A)523
-1282 y(directory)f(is)h(simply)h(a)f(\014le)g(that)h(con)n(tains)e(an)n
+ 523 232 a Black 1036 w Fx(An)25
+b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)199
+b(15)p Black 523 448 a FA(descriptions,)34 b(it)h(is)g(lik)n(ely)f
+(that)h(the)g(other)f(\014les)h(will)g(also)f(ha)n(v)n(e)f(b)r(een)i
+(pro)n(vided)f(b)n(y)g(a)523 548 y(non-malicious)26 b(part)n(y)-7
+b(.)648 648 y(In)n(tegrating)38 b(directories)g(in)n(to)i(the)g(ECRS)f
+(sc)n(heme)g(is)h(fairly)f(straigh)n(tforw)n(ard.)e(A)523
+747 y(directory)f(is)h(simply)h(a)f(\014le)g(that)h(con)n(tains)e(an)n
 (y)h(n)n(um)n(b)r(er)g(of)g Ft(SBlo)l(ck)p FA(s)h(or)f
-Ft(KBlo)l(ck)p FA(s)h(in)523 1381 y(plain)n(text)25 b(\(!\).)h(Lik)n(e)
-f(\014les,)g(directories)f(are)g(imm)n(utable)i(and)f(are)f(sub)5
-b(jected)26 b(to)f(the)h(same)523 1481 y(enco)r(ding)h(for)g(sharing.)
-648 1581 y(Note)k(that)h(it)h(is)e(p)r(ossible)h(for)f(users)g(to)h
+Ft(KBlo)l(ck)p FA(s)h(in)523 847 y(plain)n(text)25 b(\(!\).)h(Lik)n(e)f
+(\014les,)g(directories)f(are)g(imm)n(utable)i(and)f(are)f(sub)5
+b(jected)26 b(to)f(the)h(same)523 946 y(enco)r(ding)h(for)g(sharing.)
+648 1046 y(Note)k(that)h(it)h(is)e(p)r(ossible)h(for)f(users)g(to)h
 (assem)n(ble)e(a)i(directory)e(that)i(refers)f(to)h(an)n(y)523
-1680 y(com)n(bination)d(of)h(\014les:)g(\014les)g(the)g(user)f
+1146 y(com)n(bination)d(of)h(\014les:)g(\014les)g(the)g(user)f
 (inserted)h(p)r(ersonally)-7 b(,)28 b(\014les)i(that)g(the)h(user)e(do)
-n(wn-)523 1780 y(loaded,)21 b(\014les)g(that)g(the)h(user)e(encoun)n
+n(wn-)523 1245 y(loaded,)21 b(\014les)g(that)g(the)h(user)e(encoun)n
 (tered)h(as)f(searc)n(h)g(results)h(but)h(nev)n(er)e(do)n(wnloaded,)g
-(or)523 1879 y(ev)n(en)29 b(in)n(v)-5 b(alid)30 b(data)f(\(whic)n(h)h
+(or)523 1345 y(ev)n(en)29 b(in)n(v)-5 b(alid)30 b(data)f(\(whic)n(h)h
 (w)n(ould)g(b)r(e)g(in)n(terpreted)f(as)g(references)g(that)h(corresp)r
-(ond)e(to)523 1979 y(non-existen)n(t)g(\014les\).)h(Directories)e(can)h
+(ond)e(to)523 1445 y(non-existen)n(t)g(\014les\).)h(Directories)e(can)h
 (also)g(refer)f(to)i(other)f(directories,)f(allo)n(wing)g(users)523
-2079 y(to)g(build)h(na)n(vigable)d(structures)h(similar)h(to)g(\014le)g
+1544 y(to)g(build)h(na)n(vigable)d(structures)h(similar)h(to)g(\014le)g
 (systems)f(or)g(the)i(W)-7 b(orld)27 b(Wide)g(W)-7 b(eb.)28
-b(In)523 2178 y(particular)k(it)i(is)f(p)r(ossible)g(to)g(refer)f(to)h
+b(In)523 1644 y(particular)k(it)i(is)f(p)r(ossible)g(to)g(refer)f(to)h
 (con)n(ten)n(ts)g(of)g(other)g(users)f(and)h(ev)n(en)g(to)g(\014les)g
-(or)523 2278 y(directories)26 b(that)i(are)f(supp)r(osed)g(to)h(b)r(e)g
-(published)g(in)f(the)h(future.)523 2413 y
+(or)523 1743 y(directories)26 b(that)i(are)f(supp)r(osed)g(to)h(b)r(e)g
+(published)g(in)f(the)h(future.)523 1887 y
 SDict begin H.S end
- 523 2413 a
-523 2413 a
+ 523 1887 a
+523 1887 a
 SDict begin 12 H.A end
- 523 2413 a 523 2413 a
+ 523 1887 a 523 1887 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.4.3) cvn H.B /DEST
 pdfmark end
- 523 2413 a 84 x Fr(4.3)95
+ 523 1887 a 83 x Fq(4.3)95
 b(E\016cien)m(t)31 b(lo)s(okups)f(with)i(blo)s(om)e(\014lters)523
-2633 y FA(Giv)n(en)24 b(that)h(a)g(query)e(only)i(requires)e(the)i
+2113 y FA(Giv)n(en)24 b(that)h(a)g(query)e(only)i(requires)e(the)i
 (transmission)e(of)i(a)f(hash)g(co)r(de,)h(the)g(n)n(um)n(b)r(er)f(of)
-523 2733 y(queries)19 b(that)i(an)n(y)e(giv)n(en)g(p)r(eer)h(ma)n(y)f
-(receiv)n(e)g(is)h(quite)h(high.)f(The)g(bandwidth)g(required)g(for)523
-2832 y(the)28 b(resp)r(onse)f(can)g(often)h(b)r(e)g(discoun)n(ted,)f
-(since)h(a)f(p)r(eer)g(ma)n(y)g(only)h(b)r(e)g(able)f(to)h(resp)r(ond)
-523 2932 y(to)c(a)g(fraction)g(of)g(the)h(receiv)n(ed)e(queries.)h
-(Assuming)g(that)h(queries)f(dominate)g(the)g(tra\016c,)523
-3031 y(o)n(v)n(er)i(50)h(queries)h(p)r(er)f(second)h(could)g(b)r(e)g
-(transmitted)g(o)n(v)n(er)e(a)i(slo)n(w)f(mo)r(dem)h(line.)h(Man)n(y)
-523 3131 y(p)r(eers)35 b(could)h(not)g(p)r(erform)f(disk-based)g
-(database)g(lo)r(okups)g(at)h(suc)n(h)f(rates.)g(W)-7
-b(orse,)35 b(if)523 3231 y(p)r(eers)28 b(are)f(sharing)g(gigab)n(ytes)g
-(of)h(con)n(ten)n(t,)g(simply)g(k)n(eeping)g(the)h(index)f(information)
-g(in)523 3330 y(memory)f(is)g(also)g(often)h(no)f(longer)f(feasible.)
-648 3430 y(In)k(order)f(to)h(dramatically)e(reduce)i(the)g(necessary)f
-(n)n(um)n(b)r(er)h(of)g(database)f(accesses,)523 3530
-y(ECRS)c(can)g(b)r(e)g(supplemen)n(ted)h(with)f(a)g(blo)r(om)g
-(\014lter)g([)p 0 1 0 TeXcolorrgb 2275 3530 a
+523 2213 y(queries)29 b(that)i(an)n(y)e(giv)n(en)g(p)r(eer)h(ma)n(y)f
+(receiv)n(e)g(is)h(quite)g(high.)g(The)g(bandwidth)h(required)523
+2313 y(for)40 b(the)i(resp)r(onse)d(can)i(often)g(b)r(e)g(discoun)n
+(ted,)g(since)g(a)f(p)r(eer)h(ma)n(y)f(only)g(b)r(e)i(able)e(to)523
+2412 y(resp)r(ond)32 b(to)h(a)f(fraction)g(of)h(the)g(receiv)n(ed)e
+(queries.)h(Assuming)g(that)h(queries)f(dominate)523
+2512 y(the)d(tra\016c,)f(o)n(v)n(er)f(50)g(queries)h(p)r(er)g(second)g
+(could)h(b)r(e)g(transmitted)f(o)n(v)n(er)f(a)h(slo)n(w)g(mo)r(dem)523
+2612 y(line.)j(Man)n(y)f(p)r(eers)g(migh)n(t)g(not)h(b)r(e)g(able)f(to)
+g(p)r(erform)h(disk-based)e(database)g(lo)r(okups)h(at)523
+2711 y(suc)n(h)f(rates.)f(W)-7 b(orse,)28 b(if)h(p)r(eers)g(are)e
+(sharing)h(gigab)n(ytes)f(of)i(con)n(ten)n(t,)g(simply)g(k)n(eeping)f
+(the)523 2811 y(index)g(information)f(in)h(memory)e(is)i(also)e(often)i
+(no)f(longer)g(feasible.)648 2910 y(In)j(order)f(to)h(dramatically)e
+(reduce)i(the)g(necessary)f(n)n(um)n(b)r(er)h(of)g(database)f
+(accesses,)523 3010 y(ECRS)c(can)g(b)r(e)g(supplemen)n(ted)h(with)f(a)g
+(blo)r(om)g(\014lter)g([)p 0 1 0 TeXcolorrgb 2275 3010
+a
 SDict begin H.S end
- 2275 3530
-a 0 1 0 TeXcolorrgb FA(3)p 0 1 0 TeXcolorrgb 2316 3476
-a
+ 2275 3010 a 0 1 0 TeXcolorrgb FA(3)p 0 1 0 TeXcolorrgb
+2316 2957 a
 SDict begin H.R end
- 2316 3476 a 2316 3530 a
+ 2316 2957 a 2316 3010 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.bloom) cvn H.B /ANN pdfmark end
- 2316 3530 a Black FA(],)h(whic)n(h)f(is)g(a)f
-(probabilistic)g(data)523 3629 y(structure)39 b(that)h(uses)f(little)h
-(memory)f(and)g(can)g(b)r(e)h(used)g(to)f(\014lter)h(out)f(queries)g
-(that)523 3729 y(de\014nitely)29 b(cannot)f(b)r(e)i(answ)n(ered)d(b)n
-(y)h(the)h(lo)r(cal)g(p)r(eer.)f(The)h(blo)r(om)f(\014lter)h(is)g
-(guaran)n(teed)523 3828 y(to)21 b(allo)n(w)f(all)g(queries)h(that)g
-(can)f(b)r(e)i(lo)r(cally)e(answ)n(ered)f(through)i(the)g(\014lter,)g
-(and)g(will)g(reject)523 3928 y(all)33 b(but)h(a)f(statistically)g
-(insigni\014can)n(t)f(n)n(um)n(b)r(er)h(of)h(queries)e(that)i(cannot)f
-(b)r(e)g(answ)n(ered)523 4028 y(lo)r(cally)-7 b(.)648
-4127 y(The)24 b(size)g(of)g(the)h(blo)r(om)f(\014lter)g(in)g(memory)g
-(that)g(is)g(required)g(to)g(reduce)g(the)g(n)n(um)n(b)r(er)523
-4227 y(of)19 b(false-p)r(ositiv)n(es)f(to)i(appro)n(ximately)d(3\045)j
-(is)f(ab)r(out)g(one)g(b)n(yte)h(\(8)f(bit)h(with)g(5)f(blo)r(om)g
-(tests,)523 4327 y(2)565 4296 y Fc(\000)p Fz(5)677 4327
-y Fb(\031)j FA(3\045\))28 b(p)r(er)f(en)n(try)-7 b(.)27
-b(This)g(reduces)g(the)h(memory)e(requiremen)n(ts)g(for)h(the)h(index)f
-(b)n(y)g(a)523 4426 y(factor)19 b(of)g(16-64,)f(dep)r(ending)i(on)f
-(the)h(size)g(of)f(the)h(hash.)g(Since)f(a)h(no)r(de)f(o)r(ccasionally)
-f(needs)523 4526 y(to)23 b(remo)n(v)n(e)f(con)n(ten)n(t)h(from)h(the)f
-(lo)r(cal)g(database,)g(additional)g(bit)h(coun)n(ters)e(for)h(the)h
-(blo)r(om)523 4625 y(\014lter)29 b(should)h(b)r(e)f(stored)g(on)g(the)h
-(disk.)f(The)h(assumption)e(here)h(is)h(that)f(c)n(hanges)f(to)i(the)
-523 4725 y(\014lter)g(are)f(rare)g(compared)g(to)h(the)g(frequency)g
-(of)g(queries.)f(Queries)g(that)h(pass)g(through)523
-4825 y(the)38 b(blo)r(om)f(\014lter)h(are)e(forw)n(arded)g(to)i(the)g
+ 2316 3010 a Black
+FA(],)h(whic)n(h)f(is)g(a)f(probabilistic)g(data)523
+3110 y(structure)39 b(that)h(uses)f(little)h(memory)f(and)g(can)g(b)r
+(e)h(used)g(to)f(\014lter)h(out)f(queries)g(that)523
+3209 y(de\014nitely)29 b(cannot)f(b)r(e)i(answ)n(ered)d(b)n(y)h(the)h
+(lo)r(cal)g(p)r(eer.)f(The)h(blo)r(om)f(\014lter)h(is)g(guaran)n(teed)
+523 3309 y(to)21 b(allo)n(w)f(all)g(queries)h(that)g(can)f(b)r(e)i(lo)r
+(cally)e(answ)n(ered)f(through)i(the)g(\014lter,)g(and)g(will)g(reject)
+523 3409 y(all)33 b(but)h(a)f(statistically)g(insigni\014can)n(t)f(n)n
+(um)n(b)r(er)h(of)h(queries)e(that)i(cannot)f(b)r(e)g(answ)n(ered)523
+3508 y(lo)r(cally)-7 b(.)648 3608 y(The)24 b(size)g(of)g(the)h(blo)r
+(om)f(\014lter)g(in)g(memory)g(that)g(is)g(required)g(to)g(reduce)g
+(the)g(n)n(um)n(b)r(er)523 3708 y(of)19 b(false-p)r(ositiv)n(es)f(to)i
+(appro)n(ximately)d(3\045)j(is)f(ab)r(out)g(one)g(b)n(yte)h(\(8)f(bit)h
+(with)g(5)f(blo)r(om)g(tests,)523 3807 y(2)565 3777 y
+Fc(\000)p Fz(5)677 3807 y Fb(\031)j FA(3\045\))28 b(p)r(er)f(en)n(try)
+-7 b(.)27 b(This)g(reduces)g(the)h(memory)e(requiremen)n(ts)g(for)h
+(the)h(index)f(b)n(y)g(a)523 3907 y(factor)19 b(of)g(16-64,)f(dep)r
+(ending)i(on)f(the)h(size)g(of)f(the)h(hash.)g(Since)f(a)h(no)r(de)f(o)
+r(ccasionally)f(needs)523 4006 y(to)23 b(remo)n(v)n(e)f(con)n(ten)n(t)h
+(from)h(the)f(lo)r(cal)g(database,)g(additional)g(bit)h(coun)n(ters)e
+(for)h(the)h(blo)r(om)523 4106 y(\014lter)29 b(should)h(b)r(e)f(stored)
+g(on)g(the)h(disk.)f(The)h(assumption)e(here)h(is)h(that)f(c)n(hanges)f
+(to)i(the)523 4206 y(\014lter)g(are)f(rare)g(compared)g(to)h(the)g
+(frequency)g(of)g(queries.)f(Queries)g(that)h(pass)g(through)523
+4305 y(the)38 b(blo)r(om)f(\014lter)h(are)e(forw)n(arded)g(to)i(the)g
 (database)e(la)n(y)n(er)g(whic)n(h)h(then)h(attempts)g(to)523
-4924 y(lo)r(cate)27 b(the)h(con)n(ten)n(t.)p Black Black
-eop end
-%%Page: 15 15
-TeXDict begin 15 14 bop 0 0 a
+4405 y(lo)r(cate)27 b(the)h(con)n(ten)n(t.)523 4532 y
+SDict begin H.S end
+
+523 4532 a 523 4532 a
+SDict begin 12 H.A end
+ 523 4532 a 523 4532 a
+SDict begin [ /View [/XYZ H.V] /Dest (section.1.5) cvn H.B /DEST pdfmark
+end
+ 523 4532
+a 116 x Fu(5)112 b(Discussion)523 4825 y FA(The)23 b(fact)g(that)h(eac)
+n(h)e Ft(DBlo)l(ck)i FA(can)f(b)r(e)g(enco)r(ded)h(indep)r(enden)n(tly)
+f(from)g(an)n(y)g(other)f Ft(DBlo)l(ck)523 4924 y FA(results)35
+b(in)g(an)g(imp)r(ortan)n(t)g(feature)f(of)h(ECRS)g(called)g
+Ft(on-demand)i(enc)l(o)l(ding)p FA(.)f(Giv)n(en)f(a)p
+Black Black eop end
+%%Page: 16 16
+TeXDict begin 16 15 bop 0 0 a
 SDict begin /product where{pop product(Distiller)search{pop pop pop
 version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
 closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
@@ -7525,142 +7709,134 @@
 232 a
 SDict begin H.R end
  523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.15) cvn H.B /DEST pdfmark
+SDict begin [ /View [/XYZ H.V] /Dest (page.16) cvn H.B /DEST pdfmark
 end
- 523 232 a Black 1036 w Fx(An)25
-b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)199
-b(15)p Black 523 365 a
-SDict begin H.S end
- 523 365 a 523 365 a
-SDict begin 12 H.A end
- 523 365 a
-523 365 a
-SDict begin [ /View [/XYZ H.V] /Dest (section.1.5) cvn H.B /DEST pdfmark
-end
- 523 365 a 83 x Fu(5)112 b(Discussion)523 640
-y FA(The)23 b(fact)g(that)h(eac)n(h)e Ft(DBlo)l(ck)i
-FA(can)f(b)r(e)g(enco)r(ded)h(indep)r(enden)n(tly)f(from)g(an)n(y)g
-(other)f Ft(DBlo)l(ck)523 739 y FA(results)35 b(in)g(an)g(imp)r(ortan)n
-(t)g(feature)f(of)h(ECRS)g(called)g Ft(on-demand)i(enc)l(o)l(ding)p
-FA(.)f(Giv)n(en)f(a)523 839 y(plain)n(text)22 b(\014le)g(and)g(an)f
-(index)i(that)f(maps)f(a)h(query)f(to)h(an)g(o\013set)g(in)g(the)g
-(\014le,)g(the)h(resulting)523 939 y Ft(DBlo)l(ck)28
-b FA(can)e(b)r(e)h(enco)r(ded)g(on-the-\015y)-7 b(,)26
-b(without)h(pro)r(cessing)f(an)n(y)g(other)g(part)g(of)h(the)g(\014le.)
-523 1038 y(This)19 b(can)f(b)r(e)h(an)g(imp)r(ortan)n(t)f(b)r(ene\014t)
-i(if)f(the)g(user)g(in)n(tends)f(to)h(k)n(eep)f(the)i(\014le)f(in)g
-(plain)n(text)f(on)523 1138 y(the)i(lo)r(cal)g(driv)n(e.)f(In)h(this)g
-(case,)f(the)h(system)g(can)f(index)h(the)h Ft(DBlo)l(cks)g
-FA(without)f(replicating)523 1237 y(the)28 b(actual)g(data)f
-(completely)-7 b(,)28 b(storing)f(only)h(the)g(resulting)g
-Ft(IBlo)l(cks)h FA(\(and)f Ft(SBlo)l(cks)h FA(and)523
-1337 y Ft(KBlo)l(cks)p FA(\))37 b(and)e(then)g(later)g(pro)r(ducing)f
-(the)i Ft(DBlo)l(cks)g FA(only)f(using)g(the)g(index)h(and)f(the)523
-1437 y(original)28 b(\014le.)h(This)g(can)g(result)g(in)g(rather)f
-(dramatic)g(sa)n(vings)g(in)h(space)g(\(no)g(replication)523
-1536 y(of)f(enco)r(ded)f(con)n(ten)n(t\).)648 1636 y(Splitting)k
+ 523 232 a Black Fx(16)199 b(C.)27
+b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
+Black 523 448 a FA(plain)n(text)22 b(\014le)g(and)g(an)f(index)i(that)f
+(maps)f(a)h(query)f(to)h(an)g(o\013set)g(in)g(the)g(\014le,)g(the)h
+(resulting)523 548 y Ft(DBlo)l(ck)28 b FA(can)e(b)r(e)h(enco)r(ded)g
+(on-the-\015y)-7 b(,)26 b(without)h(pro)r(cessing)f(an)n(y)g(other)g
+(part)g(of)h(the)g(\014le.)523 648 y(This)19 b(can)f(b)r(e)h(an)g(imp)r
+(ortan)n(t)f(b)r(ene\014t)i(if)f(the)g(user)g(in)n(tends)f(to)h(k)n
+(eep)f(the)i(\014le)f(in)g(plain)n(text)f(on)523 747
+y(the)i(lo)r(cal)g(driv)n(e.)f(In)h(this)g(case,)f(the)h(system)g(can)f
+(index)h(the)h Ft(DBlo)l(cks)g FA(without)f(replicating)523
+847 y(the)28 b(actual)g(data)f(completely)-7 b(,)28 b(storing)f(only)h
+(the)g(resulting)g Ft(IBlo)l(cks)h FA(\(and)f Ft(SBlo)l(cks)h
+FA(and)523 946 y Ft(KBlo)l(cks)p FA(\))37 b(and)e(then)g(later)g(pro)r
+(ducing)f(the)i Ft(DBlo)l(cks)g FA(only)f(using)g(the)g(index)h(and)f
+(the)523 1046 y(original)28 b(\014le.)h(This)g(can)g(result)g(in)g
+(rather)f(dramatic)g(sa)n(vings)g(in)h(space)g(\(no)g(replication)523
+1146 y(of)f(enco)r(ded)f(con)n(ten)n(t\).)648 1252 y(Splitting)k
 (\014les)g(in)n(to)g(blo)r(c)n(ks)f(migh)n(t)g(b)r(e)i(p)r(erceiv)n(ed)
 e(as)g(ha)n(ving)g(a)g(negativ)n(e)g(e\013ect)h(on)523
-1736 y(the)38 b(preserv)-5 b(ation)37 b(of)h(data.)f(If)i(only)e(one)h
+1351 y(the)38 b(preserv)-5 b(ation)37 b(of)h(data.)f(If)i(only)e(one)h
 (of)g(the)g(blo)r(c)n(ks)f(is)h(lost,)g(the)g(larger)e(\014le)i(can)523
-1835 y(no)27 b(longer)g(b)r(e)h(reconstructed.)f(Th)n(us,)g(man)n(y)g
-(other)h(systems)f([)p 0 1 0 TeXcolorrgb 2550 1835 a
+1451 y(no)27 b(longer)g(b)r(e)h(reconstructed.)f(Th)n(us,)g(man)n(y)g
+(other)h(systems)f([)p 0 1 0 TeXcolorrgb 2550 1451 a
 SDict begin H.S end
 
-2550 1835 a 0 1 0 TeXcolorrgb FA(9)p 0 1 0 TeXcolorrgb
-2591 1782 a
+2550 1451 a 0 1 0 TeXcolorrgb FA(9)p 0 1 0 TeXcolorrgb
+2591 1397 a
 SDict begin H.R end
- 2591 1782 a 2591 1835 a
+ 2591 1397 a 2591 1451 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.freehaven-berk) cvn H.B /ANN pdfmark end
- 2591 1835 a Black
-FA(,)p 0 1 0 TeXcolorrgb 2614 1835 a
+ 2591 1451 a Black
+FA(,)p 0 1 0 TeXcolorrgb 2614 1451 a
 SDict begin H.S end
- 2614 1835 a 0 1 0
-TeXcolorrgb FA(30)p 0 1 0 TeXcolorrgb 2698 1782 a
+ 2614 1451 a 0 1 0
+TeXcolorrgb FA(33)p 0 1 0 TeXcolorrgb 2698 1397 a
 SDict begin H.R end
  2698
-1782 a 2698 1835 a
+1397 a 2698 1451 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.mojotech) cvn H.B /ANN pdfmark end
- 2698 1835 a Black FA(])g(striv)n(e)g(to)h(k)n(eep)f
-(\014les)523 1935 y(in)n(tact)20 b(or)e(use)i(erasure)d(co)r(des)i([)p
-0 1 0 TeXcolorrgb 1499 1935 a
+ 2698 1451 a Black FA(])g(striv)n(e)g(to)h(k)n(eep)f
+(\014les)523 1551 y(in)n(tact)20 b(or)e(use)i(erasure)d(co)r(des)i([)p
+0 1 0 TeXcolorrgb 1499 1551 a
 SDict begin H.S end
- 1499 1935 a 0 1 0 TeXcolorrgb
-FA(22)p 0 1 0 TeXcolorrgb 1583 1881 a
+ 1499 1551 a 0 1 0 TeXcolorrgb
+FA(25)p 0 1 0 TeXcolorrgb 1583 1497 a
 SDict begin H.R end
- 1583 1881 a 1583
-1935 a
+ 1583 1497 a 1583
+1551 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.rabin89efficient) cvn H.B /ANN pdfmark end
- 1583 1935 a Black FA(])g(to)h(patc)n(h)f(missing)g(pieces.)g
-(While)h(erasure)e(co)r(des)h(could)523 2034 y(b)r(e)26
+ 1583 1551 a Black FA(])g(to)h(patc)n(h)f(missing)g(pieces.)g
+(While)h(erasure)e(co)r(des)h(could)523 1650 y(b)r(e)26
 b(used)g(together)f(with)i(ECRS,)e(they)i(w)n(ould)e(con\015ict)h(with)
-g(the)h(p)r(erformance)d(b)r(ene\014ts)523 2134 y(of)h(on-demand)f
+g(the)h(p)r(erformance)d(b)r(ene\014ts)523 1750 y(of)h(on-demand)f
 (enco)r(ding.)g(Consequen)n(tly)-7 b(,)24 b(the)h(primary)f(mec)n
-(hanism)g(to)h(guard)e(against)523 2234 y(the)31 b(loss)e(of)i(\014les)
+(hanism)g(to)h(guard)e(against)523 1849 y(the)31 b(loss)e(of)i(\014les)
 f(enco)r(ded)g(with)h(ECRS)f(should)g(b)r(e)h(data)f(replication.)f
-(Since)i(ECRS)f(is)523 2333 y(splitting)22 b(\014les)g(in)n(to)f(blo)r
+(Since)i(ECRS)f(is)523 1949 y(splitting)22 b(\014les)g(in)n(to)f(blo)r
 (c)n(ks)g(it)h(should)g(b)r(e)g(p)r(ossible)g(for)f(the)h(net)n(w)n
-(ork)e(to)i(duplicate)g(blo)r(c)n(ks)523 2433 y(at)34
+(ork)e(to)i(duplicate)g(blo)r(c)n(ks)523 2049 y(at)34
 b(a)f(negligible)g(cost)h(p)r(er)f(blo)r(c)n(k.)h(Duplicating)g(a)f
 (complete)h(\014le)g(of)g(sev)n(eral)e(gigab)n(ytes)523
-2533 y(w)n(ould)j(b)r(e)h(m)n(uc)n(h)f(more)f(costly)h(and)g(more)g
+2148 y(w)n(ould)j(b)r(e)h(m)n(uc)n(h)f(more)f(costly)h(and)g(more)g
 (lik)n(ely)g(to)g(fail.)g(F)-7 b(or)35 b(large)f(\014les,)h(it)h(ma)n
-(y)f(b)r(e)523 2632 y(di\016cult)c(for)e(a)g(p)r(eer)h(to)g(\014nd)g
+(y)f(b)r(e)523 2248 y(di\016cult)c(for)e(a)g(p)r(eer)h(to)g(\014nd)g
 (individual)g(hosts)g(that)g(are)f(willing)g(\(or)h(able\))f(to)h(pro)n
-(vide)523 2732 y(enough)c(space)g(to)h(replicate)f(the)h(complete)g
+(vide)523 2348 y(enough)c(space)g(to)h(replicate)f(the)h(complete)g
 (\014le)g(in)g(its)g(en)n(tiret)n(y)-7 b(.)26 b(Also,)h(the)g(tra\016c)
-f(burst)523 2831 y(that)h(a)f(large)g(transfer)g(w)n(ould)g(imp)r(ose)h
+f(burst)523 2447 y(that)h(a)f(large)g(transfer)g(w)n(ould)g(imp)r(ose)h
 (on)f(the)h(net)n(w)n(ork)f(migh)n(t)g(k)n(eep)h(the)g(participating)
-523 2931 y(no)r(des)33 b(busy)g(for)g(to)r(o)f(long.)h(Blo)r(c)n(ks,)f
+523 2547 y(no)r(des)33 b(busy)g(for)g(to)r(o)f(long.)h(Blo)r(c)n(ks,)f
 (on)h(the)g(other)g(hand,)g(can)g(migrate)f(quic)n(kly)g(from)523
-3031 y(host)20 b(to)h(host.)f(Storing)g(a)g(large)f(\014le)i(on)f(a)g
+2646 y(host)20 b(to)h(host.)f(Storing)g(a)g(large)f(\014le)i(on)f(a)g
 (single)g(host)g(also)g(fails)g(to)g(facilitate)h(distribution)523
-3130 y(of)28 b(load)e(for)i(do)n(wnloading)e(purp)r(oses.)523
-3288 y
+2746 y(of)28 b(load)e(for)i(do)n(wnloading)e(purp)r(oses.)523
+2937 y
 SDict begin H.S end
- 523 3288 a 523 3288 a
+ 523 2937 a 523 2937 a
 SDict begin 12 H.A end
- 523 3288 a 523 3288 a
+ 523 2937 a 523 2937 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.5.1) cvn H.B /DEST
 pdfmark end
  523
-3288 a 83 x Fr(5.1)95 b(A)m(ttac)m(ks)523 3530 y FA(ECRS)34
+2937 a 90 x Fq(5.1)95 b(A)m(ttac)m(ks)523 3224 y FA(ECRS)34
 b(is)f(op)r(en)h(to)g(t)n(w)n(o)f(t)n(yp)r(es)h(of)f(attac)n(ks)g(from)
 h(censors.)e(The)i(most)f(ob)n(vious)g(attac)n(k)523
-3629 y(is)40 b(to)g(guess)f(k)n(eyw)n(ords)f(and)i(use)g(those)f(to)h
+3324 y(is)40 b(to)g(guess)f(k)n(eyw)n(ords)f(and)i(use)g(those)f(to)h
 (compute)g(queries)f(for)h(sp)r(eci\014c)g Ft(KBlo)l(ck)p
-FA(s.)523 3729 y(The)28 b(adv)n(ersary)c(can)j(then)h(try)f(to)h
+FA(s.)523 3424 y(The)28 b(adv)n(ersary)c(can)j(then)h(try)f(to)h
 (censor)e(these)h(queries.)g(Since)h(the)f(same)g(con)n(ten)n(t)g(can)
-523 3828 y(b)r(e)36 b(a)n(v)-5 b(ailable)33 b(under)i(man)n(y)g(k)n
+523 3523 y(b)r(e)36 b(a)n(v)-5 b(ailable)33 b(under)i(man)n(y)g(k)n
 (eyw)n(ords,)e(this)j(tec)n(hnique)f(is)g(not)g(necessary)e
-(successful.)523 3928 y(Ho)n(w)n(ev)n(er,)25 b(this)i(guessing)f(attac)
+(successful.)523 3623 y(Ho)n(w)n(ev)n(er,)25 b(this)i(guessing)f(attac)
 n(k)f(do)r(es)i(pro)n(vide)f(the)h(opp)r(ortunit)n(y)f(for)g(limited)i
-(forms)e(of)523 4028 y(censorship.)g(An)h(adv)n(ersary)c(could)k
+(forms)e(of)523 3723 y(censorship.)g(An)h(adv)n(ersary)c(could)k
 (create)e(a)i(\\blac)n(klist")e(of)h(k)n(eyw)n(ords)e(and)j(attempt)g
-(to)523 4127 y(legally)g(force)g(op)r(erators)e(to)j(\014lter)f(matc)n
-(hing)g(queries)g(or)g(replies.)648 4227 y(Instead)e(of)h(predicting)g
+(to)523 3822 y(legally)g(force)g(op)r(erators)e(to)j(\014lter)f(matc)n
+(hing)g(queries)g(or)g(replies.)648 3928 y(Instead)e(of)h(predicting)g
 (k)n(eyw)n(ords,)e(the)i(attac)n(k)n(er)e(can)i(also)f(try)h(to)f
-(obtain)h(the)h(exact)523 4327 y(con)n(ten)n(ts)37 b(of)h(the)g(\014le)
+(obtain)h(the)h(exact)523 4028 y(con)n(ten)n(ts)37 b(of)h(the)g(\014le)
 g(\(or)f(at)h(least)g(the)g(exact)f(con)n(ten)n(ts)g(of)h(an)g
-(incriminating)f(part\).)523 4426 y(This)d(ma)n(yb)r(e)f(ac)n(hiev)n
+(incriminating)f(part\).)523 4127 y(This)d(ma)n(yb)r(e)f(ac)n(hiev)n
 (ed)g(b)n(y)g(searc)n(hing)f(the)i(net)n(w)n(ork)f(for)g(certain)g(k)n
-(eyw)n(ords)f(and)h(then)523 4526 y(do)n(wnloading)i(the)i(resulting)g
+(eyw)n(ords)f(and)h(then)523 4227 y(do)n(wnloading)i(the)i(resulting)g
 (con)n(ten)n(t.)f(This)h(w)n(a)n(y)f(the)h(attac)n(k)n(er)e(can)h
-(again)g(compute)523 4625 y(the)e(query)e(for)h(the)h
+(again)g(compute)523 4327 y(the)e(query)e(for)h(the)h
 Ft(DBlo)l(ck)p FA(s)g(and)f Ft(IBlo)l(ck)p FA(s)h(and)f(also)g(obtain)g
-(the)g(encrypted)g Ft(DBlo)l(ck)p FA(s)523 4725 y(and)d
+(the)g(encrypted)g Ft(DBlo)l(ck)p FA(s)523 4426 y(and)d
 Ft(IBlo)l(ck)p FA(s)h(themselv)n(es.)f(Again,)f(the)i(adv)n(ersary)c
-(can)j(then)g(try)g(to)g(censor)f(this)h(data.)523 4825
+(can)j(then)g(try)g(to)g(censor)f(this)h(data.)523 4526
 y(Note)25 b(that)g(this)h(attac)n(k)e(requires)g(the)h(adv)n(ersary)d
 (to)j(obtain)g(a)g(cop)n(y)f(of)h(the)h(con)n(ten)n(t)e(and)523
-4924 y(then)g(exercise)f(a)g(certain)g(amoun)n(t)g(of)h(con)n(trol)e(o)
-n(v)n(er)g(the)i(p)r(eers)f(in)h(the)g(net)n(w)n(ork.)e(As)i(users)p
-Black Black eop end
-%%Page: 16 16
-TeXDict begin 16 15 bop 0 0 a
+4625 y(then)g(exercise)f(a)g(certain)g(amoun)n(t)g(of)h(con)n(trol)e(o)
+n(v)n(er)g(the)i(p)r(eers)f(in)h(the)g(net)n(w)n(ork.)e(As)i(users)523
+4725 y(m)n(ust)e(ha)n(v)n(e)f(a)h(w)n(a)n(y)f(to)h(decrypt)g(the)g
+(\014le)g(solely)g(b)n(y)f(means)h(of)g(guessing)f(the)h(k)n(eyw)n
+(ord,)f(this)523 4825 y(attac)n(k)j(cannot)g(b)r(e)i(a)n(v)n(oided.)d
+(A)i(fault-toleran)n(t)f(p)r(eer-to-p)r(eer)g(routing)g(proto)r(col)f
+(ma)n(y)i(b)r(e)523 4924 y(able)i(to)h(route)f(the)h(con)n(ten)n(t)f
+(around)g(the)h(censoring)e(p)r(eers.)p Black Black eop
+end
+%%Page: 17 17
+TeXDict begin 17 16 bop 0 0 a
 SDict begin /product where{pop product(Distiller)search{pop pop pop
 version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
 closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
@@ -7672,153 +7848,155 @@
 232 a
 SDict begin H.R end
  523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.16) cvn H.B /DEST pdfmark
+SDict begin [ /View [/XYZ H.V] /Dest (page.17) cvn H.B /DEST pdfmark
 end
- 523 232 a Black Fx(16)199 b(C.)27
-b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
-Black 523 448 a FA(m)n(ust)22 b(ha)n(v)n(e)f(a)h(w)n(a)n(y)f(to)h
-(decrypt)g(the)g(\014le)g(solely)g(b)n(y)f(means)h(of)g(guessing)f(the)
-h(k)n(eyw)n(ord,)f(this)523 548 y(attac)n(k)j(cannot)g(b)r(e)i(a)n(v)n
-(oided.)d(A)i(fault-toleran)n(t)f(p)r(eer-to-p)r(eer)g(routing)g(proto)
-r(col)f(ma)n(y)i(b)r(e)523 648 y(able)i(to)h(route)f(the)h(con)n(ten)n
-(t)f(around)g(the)h(censoring)e(p)r(eers.)648 748 y(If)39
-b(suc)n(h)f(an)g(activ)n(e)g(censorship)f(attac)n(k)h(is)g(kno)n(wn)g
-(to)g(o)r(ccur)g(on)g(a)h(large)e(scale,)g(a)523 848
-y(p)r(ossible)26 b(defense)g(w)n(ould)g(b)r(e)h(to)f(publish)h(the)g
-(con)n(ten)n(t)e(with)i(sligh)n(t)f(alterations)f(for)h(eac)n(h)523
-947 y(k)n(eyw)n(ord.)20 b(A)h(single)g(space)g(inserted)g(at)g(the)h(b)
-r(eginning)f(of)g(a)g(text-do)r(cumen)n(t)h(is)f(su\016cien)n(t)523
-1047 y(to)34 b(c)n(hange)g Ft(al)t(l)h FA(blo)r(c)n(ks)f(of)g(the)h
-(ECRS)f(enco)r(ding.)p 1 0 0 TeXcolorrgb 2148 1047 a
+ 523 232 a Black 1036 w Fx(An)25
+b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)199
+b(17)p Black 648 448 a FA(If)39 b(suc)n(h)f(an)g(activ)n(e)g
+(censorship)f(attac)n(k)h(is)g(kno)n(wn)g(to)g(o)r(ccur)g(on)g(a)h
+(large)e(scale,)g(a)523 548 y(p)r(ossible)26 b(defense)g(w)n(ould)g(b)r
+(e)h(to)f(publish)h(the)g(con)n(ten)n(t)e(with)i(sligh)n(t)f
+(alterations)f(for)h(eac)n(h)523 648 y(k)n(eyw)n(ord.)20
+b(A)h(single)g(space)g(inserted)g(at)g(the)h(b)r(eginning)f(of)g(a)g
+(text-do)r(cumen)n(t)h(is)f(su\016cien)n(t)523 747 y(to)34
+b(c)n(hange)g Ft(al)t(l)h FA(blo)r(c)n(ks)f(of)g(the)h(ECRS)f(enco)r
+(ding.)p 1 0 0 TeXcolorrgb 2148 747 a
 SDict begin H.S end
-
-2148 1047 a -30 x Fz(3)2185 1047 y
+ 2148 747 a -30
+x Fz(3)2185 747 y
 SDict begin 12 H.L end
- 2185 1047 a 2185 1047
-a
+ 2185 747 a 2185 747 a
 SDict begin [ /Subtype /Link /Dest (Hfootnote.3) cvn /H /I /Border
 [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end
- 2185 1047 a Black 34 w FA(While)h(this)g(w)n(ould)f(defeat)g(the)h
-(use)523 1147 y(of)26 b(con)n(v)n(ergen)n(t)e(encryption)i(and)g
-(increase)f(the)h(storage)e(and)i(bandwidth)h(requiremen)n(ts,)523
-1246 y(this)20 b(w)n(ould)f(mak)n(e)f(it)i(infeasible)f(for)g(the)h
-(censor)e(to)i(e\013ectiv)n(ely)f(censor)f(all)h(of)g(the)h(v)-5
-b(arian)n(ts.)523 1346 y(Since)35 b(suc)n(h)f(a)g(p)r(o)n(w)n(erful)f
+ 2185 747 a Black
+34 w FA(While)h(this)g(w)n(ould)f(defeat)g(the)h(use)523
+847 y(of)26 b(con)n(v)n(ergen)n(t)e(encryption)i(and)g(increase)f(the)h
+(storage)e(and)i(bandwidth)h(requiremen)n(ts,)523 946
+y(this)20 b(w)n(ould)f(mak)n(e)f(it)i(infeasible)f(for)g(the)h(censor)e
+(to)i(e\013ectiv)n(ely)f(censor)f(all)h(of)g(the)h(v)-5
+b(arian)n(ts.)523 1046 y(Since)35 b(suc)n(h)f(a)g(p)r(o)n(w)n(erful)f
 (activ)n(e)h(attac)n(k)n(er)e(is)j(lik)n(ely)f(to)g(b)r(e)h(uncommon)f
-(the)g Ft(default)i FA(in)523 1445 y(ECRS)27 b(is)h(to)f(use)h(con)n(v)
-n(ergen)n(t)d(encryption.)648 1546 y(Both)33 b(attac)n(ks)f(fail)i(to)f
+(the)g Ft(default)i FA(in)523 1146 y(ECRS)27 b(is)h(to)f(use)h(con)n(v)
+n(ergen)n(t)d(encryption.)648 1252 y(Both)33 b(attac)n(ks)f(fail)i(to)f
 (enable)h(in)n(termediaries)e(to)h(exercise)g(editorial)g(con)n(trol)f
-(o)n(v)n(er)523 1645 y(con)n(ten)n(t)25 b(in)g(general.)f(While)i(p)r
+(o)n(v)n(er)523 1352 y(con)n(ten)n(t)25 b(in)g(general.)f(While)i(p)r
 (eers)f(can)g(theoretically)f(b)r(e)i(forced)e(to)h(censor)f(w)n
-(ell-kno)n(wn)523 1745 y(k)n(eyw)n(ords)d(and)h(\014les,)h(they)g(are)f
+(ell-kno)n(wn)523 1451 y(k)n(eyw)n(ords)d(and)h(\014les,)h(they)g(are)f
 (unable)h(to)g(censor)e(new)i(k)n(eyw)n(ords)e(or)h(unkno)n(wn)g(con)n
-(ten)n(t.)523 1845 y(As)38 b(small)g(c)n(hanges)f(to)h(the)h(con)n(ten)
+(ten)n(t.)523 1551 y(As)38 b(small)g(c)n(hanges)f(to)h(the)h(con)n(ten)
 n(t)f(or)f(k)n(eyw)n(ord)g(are)g(su\016cien)n(t)h(to)g(mak)n(e)g
-(detection)523 1944 y(imp)r(ossible,)28 b(these)f(t)n(yp)r(es)h(of)f
-(censorship)g(should)g(b)r(e)h(impractical.)648 2045
+(detection)523 1651 y(imp)r(ossible,)28 b(these)f(t)n(yp)r(es)h(of)f
+(censorship)g(should)g(b)r(e)h(impractical.)648 1757
 y(Another)j(serious)f(t)n(yp)r(e)i(of)g(attac)n(k)f(is)g(spamming)g
-(the)h(global)f(k)n(eyw)n(ord)f(space)g(with)523 2144
+(the)h(global)f(k)n(eyw)n(ord)f(space)g(with)523 1857
 y(useless)i(con)n(ten)n(t.)g(P)n(opular)f(k)n(eyw)n(ords)g(are)g(an)i
 (easy)e(target)h(since)h(they)f(are)g(b)n(y)g(nature)523
-2244 y(easily)k(guessed.)h(Namespaces)f(can)g(theoretically)h
-(eliminate)g(this)g(problem,)g(ho)n(w)n(ev)n(er)523 2344
+1956 y(easily)k(guessed.)h(Namespaces)f(can)g(theoretically)h
+(eliminate)g(this)g(problem,)g(ho)n(w)n(ev)n(er)523 2056
 y(they)28 b(create)e(a)h(new)g(di\016cult)n(y)h(in)f(assessing)f(whic)n
 (h)h(pseudon)n(yms)f(represen)n(t)g(users)h(that)523
-2443 y(pro)n(vide)20 b(v)-5 b(aluable)20 b(con)n(ten)n(t.)h(A)g(secure)
+2156 y(pro)n(vide)20 b(v)-5 b(aluable)20 b(con)n(ten)n(t.)h(A)g(secure)
 f(reputation)g(system,)h(lik)n(e)f(Adv)n(ogato)f([)p
-0 1 0 TeXcolorrgb 2996 2443 a
+0 1 0 TeXcolorrgb 2996 2156 a
 SDict begin H.S end
- 2996 2443 a 0 1 0 TeXcolorrgb
-FA(15)p 0 1 0 TeXcolorrgb 3079 2390 a
+ 2996 2156 a 0 1 0 TeXcolorrgb
+FA(17)p 0 1 0 TeXcolorrgb 3079 2102 a
 SDict begin H.R end
- 3079 2390 a 3079
-2443 a
+ 3079 2102 a 3079
+2156 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.levien03advogato) cvn H.B /ANN pdfmark end
- 3079 2443 a Black FA(],)i(ma)n(y)g(b)r(e)523 2543
+ 3079 2156 a Black FA(],)i(ma)n(y)g(b)r(e)523 2255
 y(a)k(step)h(to)n(w)n(ards)e(a)i(tec)n(hnical)f(solution)h(for)f(this)h
 (problem.)g(A)g(p)r(ossibly)f(more)g(imp)r(ortan)n(t)523
-2643 y(c)n(hallenge)i(for)h(future)h(w)n(ork)e(is)h(making)g(suc)n(h)g
+2355 y(c)n(hallenge)i(for)h(future)h(w)n(ork)e(is)h(making)g(suc)n(h)g
 (complex)g(solutions)g(easily)f(accessible)h(for)523
-2742 y(the)g(a)n(v)n(erage)d(user.)523 2911 y
+2455 y(the)g(a)n(v)n(erage)d(user.)523 2648 y
 SDict begin H.S end
- 523 2911
-a 523 2911 a
+ 523 2648
+a 523 2648 a
 SDict begin 12 H.A end
- 523 2911 a 523 2911 a
+ 523 2648 a 523 2648 a
 SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.5.2) cvn H.B /DEST
 pdfmark end
- 523 2911 a 84 x Fr(5.2)95
-b Fi(KBlo)-5 b(cks)32 b Fr(or)g(triple-hash)523 3166
+ 523 2648 a 90 x Fq(5.2)95
+b Fi(KBlo)-5 b(cks)32 b Fq(or)g(triple-hash)523 2939
 y FA(The)c(triple-hash)f(that)h(w)n(as)f(used)g(instead)h(of)g
 Ft(KBlo)l(ck)p FA(s)g(in)g(our)f(earlier)g(w)n(ork)54
-b([)p 0 1 0 TeXcolorrgb 3093 3166 a
+b([)p 0 1 0 TeXcolorrgb 3093 2939 a
 SDict begin H.S end
- 3093 3166 a 0 1 0
-TeXcolorrgb FA(2)p 0 1 0 TeXcolorrgb 3134 3112 a
+ 3093 2939 a 0 1 0
+TeXcolorrgb FA(2)p 0 1 0 TeXcolorrgb 3134 2885 a
 SDict begin H.R end
  3134
-3112 a 3134 3166 a
+2885 a 3134 2939 a
 SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest
 (cite.esed) cvn H.B /ANN pdfmark end
- 3134 3166 a Black FA(])28 b(allo)n(ws)523
-3265 y(for)35 b(an)h(attac)n(k)f(b)n(y)g(an)h(activ)n(e,)f
+ 3134 2939 a Black FA(])28 b(allo)n(ws)523
+3038 y(for)35 b(an)h(attac)n(k)f(b)n(y)g(an)h(activ)n(e,)f
 (participating)g(adv)n(ersary)-7 b(.)33 b(The)j(follo)n(wing)f
-(paragraphs)523 3365 y(\014rst)28 b(brie\015y)f(presen)n(t)g(the)h
+(paragraphs)523 3138 y(\014rst)28 b(brie\015y)f(presen)n(t)g(the)h
 (original)e(sc)n(heme,)i(discuss)f(the)h(attac)n(k)f(and)h(then)g
-(compare)f(it)523 3464 y(with)h(the)g Ft(KBlo)l(ck)h
+(compare)f(it)523 3238 y(with)h(the)g Ft(KBlo)l(ck)h
 FA(approac)n(h)d(tak)n(en)h(in)g(this)h(pap)r(er.)648
-3565 y(Let)35 b(an)g Ft(RBlo)l(ck)h FA(b)r(e)g(a)e(new)i(kind)f(of)g
+3344 y(Let)35 b(an)g Ft(RBlo)l(ck)h FA(b)r(e)g(a)e(new)i(kind)f(of)g
 (blo)r(c)n(k)g(that)g(also)g(con)n(tains)f(the)h(metadata)g(of)523
-3664 y(a)c(\014le)g(\(including)h(the)g(top)f(CHK)g(data\).)g(The)g
+3444 y(a)c(\014le)g(\(including)h(the)g(top)f(CHK)g(data\).)g(The)g
 (only)g(di\013erence)g(b)r(et)n(w)n(een)g Ft(RBlo)l(ck)p
-FA(s)h(and)523 3764 y Ft(KBlo)l(ck)p FA(s)c(is)f(that)h
+FA(s)h(and)523 3543 y Ft(KBlo)l(ck)p FA(s)c(is)f(that)h
 Ft(RBlo)l(ck)p FA(s)f(are)f(encrypted)h(and)g(requested)g(using)g(the)g
-(follo)n(wing)f(triple-)523 3864 y(hash)35 b(sc)n(heme.)f(F)-7
-b(or)35 b(eac)n(h)f(k)n(eyw)n(ord)g Fq(k)s FA(,)h(the)g
-Ft(RBlo)l(ck)h Fq(R)g FA(is)f(encrypted)g(with)h Fq(H)7
-b FA(\()p Fq(k)s FA(\))35 b(and)523 3963 y(stored)f(as)f(the)i(pair)f
-Fb(f)p Fq(H)7 b FA(\()p Fq(H)g FA(\()p Fq(k)s FA(\)\))p
-Fq(;)14 b(E)1682 3978 y Fh(H)t Fz(\()p Fh(k)q Fz(\))1834
-3963 y FA(\()p Fq(R)q FA(\))p Fb(g)p FA(.)34 b(Using)g(the)h(k)n(eyw)n
-(ord)e(as)g(the)i(source)f(for)523 4063 y(the)28 b(k)n(ey)f(allo)n(ws)f
+(follo)n(wing)f(triple-)523 3643 y(hash)35 b(sc)n(heme.)f(F)-7
+b(or)35 b(eac)n(h)f(k)n(eyw)n(ord)g Fs(k)s FA(,)h(the)g
+Ft(RBlo)l(ck)h Fs(R)g FA(is)f(encrypted)g(with)h Fs(H)7
+b FA(\()p Fs(k)s FA(\))35 b(and)523 3743 y(stored)f(as)f(the)i(pair)f
+Fb(f)p Fs(H)7 b FA(\()p Fs(H)g FA(\()p Fs(k)s FA(\)\))p
+Fs(;)14 b(E)1682 3758 y Fh(H)t Fz(\()p Fh(k)q Fz(\))1834
+3743 y FA(\()p Fs(R)q FA(\))p Fb(g)p FA(.)34 b(Using)g(the)h(k)n(eyw)n
+(ord)e(as)g(the)i(source)f(for)523 3842 y(the)28 b(k)n(ey)f(allo)n(ws)f
 (the)i(receiv)n(er)e(of)i(the)g(\014le)f(to)h(obtain)f(the)h(k)n(ey)f
-(b)n(y)g(guessing.)648 4163 y(Querying)39 b(for)h(an)g
-Ft(RBlo)l(ck)h FA(is)f Fr(not)h FA(straigh)n(tforw)n(ard.)c(The)k
-(problem)f(is)g(that)h(the)523 4263 y(in)n(tuitiv)n(e)g(c)n(hoice)e
-(for)h(a)g(query)-7 b(,)40 b Fq(H)7 b FA(\()p Fq(H)g
-FA(\()p Fq(k)s FA(\)\))40 b(do)r(es)g(not)h(giv)n(e)e(in)n
-(termediaries)g(a)h(w)n(a)n(y)f(to)523 4363 y(v)n(erify)32
+(b)n(y)g(guessing.)648 3949 y(Querying)39 b(for)h(an)g
+Ft(RBlo)l(ck)h FA(is)f Fq(not)h FA(straigh)n(tforw)n(ard.)c(The)k
+(problem)f(is)g(that)h(the)523 4048 y(in)n(tuitiv)n(e)g(c)n(hoice)e
+(for)h(a)g(query)-7 b(,)40 b Fs(H)7 b FA(\()p Fs(H)g
+FA(\()p Fs(k)s FA(\)\))40 b(do)r(es)g(not)h(giv)n(e)e(in)n
+(termediaries)g(a)h(w)n(a)n(y)f(to)523 4148 y(v)n(erify)32
 b(that)i(the)f(\(encrypted\))h(resp)r(onse)e(is)h(correct.)f(Instead)h
-(of)g(using)g Fq(H)7 b FA(\()p Fq(H)g FA(\()p Fq(k)s
-FA(\)\),)34 b(the)523 4462 y(initiator)d(sends)g(the)g(so-called)f
-(\\triple-hash")g(query)g Fq(H)7 b FA(\()p Fq(H)g FA(\()p
-Fq(H)g FA(\()p Fq(k)s FA(\)\)\).)32 b(A)g(p)r(eer)f(that)h(has)523
-4562 y(stored)19 b Fq(E)826 4577 y Fh(H)t Fz(\()p Fh(k)q
-Fz(\))978 4562 y FA(\()p Fq(R)q FA(\))h(under)f Fq(H)7
-b FA(\()p Fq(H)g FA(\()p Fq(k)s FA(\)\))21 b(can)e(matc)n(h)g(the)i
-(query)e(with)h(the)g(resp)r(onse)e(and)i(send)523 4662
-y(bac)n(k)27 b(the)h(pair)f Fb(f)p Fq(H)7 b FA(\()p Fq(H)g
-FA(\()p Fq(k)s FA(\)\))p Fq(;)14 b(E)1497 4677 y Fh(H)t
-Fz(\()p Fh(k)q Fz(\))1649 4662 y FA(\()p Fq(R)q FA(\))p
+(of)g(using)g Fs(H)7 b FA(\()p Fs(H)g FA(\()p Fs(k)s
+FA(\)\),)34 b(the)523 4248 y(initiator)d(sends)g(the)g(so-called)f
+(\\triple-hash")g(query)g Fs(H)7 b FA(\()p Fs(H)g FA(\()p
+Fs(H)g FA(\()p Fs(k)s FA(\)\)\).)32 b(A)g(p)r(eer)f(that)h(has)523
+4347 y(stored)19 b Fs(E)826 4362 y Fh(H)t Fz(\()p Fh(k)q
+Fz(\))978 4347 y FA(\()p Fs(R)q FA(\))h(under)f Fs(H)7
+b FA(\()p Fs(H)g FA(\()p Fs(k)s FA(\)\))21 b(can)e(matc)n(h)g(the)i
+(query)e(with)h(the)g(resp)r(onse)e(and)i(send)523 4447
+y(bac)n(k)27 b(the)h(pair)f Fb(f)p Fs(H)7 b FA(\()p Fs(H)g
+FA(\()p Fs(k)s FA(\)\))p Fs(;)14 b(E)1497 4462 y Fh(H)t
+Fz(\()p Fh(k)q Fz(\))1649 4447 y FA(\()p Fs(R)q FA(\))p
 Fb(g)p FA(.)27 b(In)n(termediaries)g(can)g(v)n(erify)g(that)h(the)g
-(pro)r(of)f(of)p Black 523 4748 473 4 v 546 4801 a Fy(3)p
-0 TeXcolorgray 606 4742 a
+(pro)r(of)f(of)523 4546 y(authen)n(ticit)n(y)-7 b(,)21
+b Fs(H)7 b FA(\()p Fs(H)g FA(\()p Fs(k)s FA(\)\),)21
+b(hashes)f(to)g(the)h(query)f Fs(H)7 b FA(\()p Fs(H)g
+FA(\()p Fs(H)g FA(\()p Fs(k)s FA(\)\)\).)22 b(Malicious)d(p)r(eers)h
+(cannot)523 4646 y(construct)26 b(the)g(pro)r(of)g Fs(H)7
+b FA(\()p Fs(H)g FA(\()p Fs(k)s FA(\)\))26 b(without)h(guessing)e
+Fs(k)k FA(or)c(in)n(v)n(erting)g(the)i(hash)e(function.)p
+Black 523 4748 473 4 v 546 4801 a Fy(3)p 0 TeXcolorgray
+606 4742 a
 SDict begin H.S end
- 606 4742 a 0 TeXcolorgray 0
-TeXcolorgray 606 4742 a
+ 606 4742 a 0 TeXcolorgray 0 TeXcolorgray 606
+4742 a
 SDict begin H.R end
  606 4742 a 606 4742 a
 SDict begin [ /View [/XYZ H.V] /Dest (Hfootnote.3) cvn H.B /DEST pdfmark
 end
- 606 4742
-a Black 91 x Fx(Note)g(that)f(only)g(op)r(erations)i(causing)g(global)g
-(shifts)f(in)g(the)f(data)h(ha)n(v)n(e)f(this)h(prop)r(ert)n(y)-6
-b(.)25 b(One)606 4924 y(single-c)n(haracter)d(replacemen)n(t)g(c)n
-(hanges)f(only)g(one)g(ro)r(ot-to-leaf)i(path)d(in)h(the)g(enco)r(ding)
-g(tree.)p Black Black Black eop end
-%%Page: 17 17
-TeXDict begin 17 16 bop 0 0 a
+ 606 4742 a Black 91 x Fx(Note)i(that)f
+(only)g(op)r(erations)i(causing)g(global)g(shifts)f(in)g(the)f(data)h
+(ha)n(v)n(e)f(this)h(prop)r(ert)n(y)-6 b(.)25 b(One)606
+4924 y(single-c)n(haracter)d(replacemen)n(t)g(c)n(hanges)f(only)g(one)g
+(ro)r(ot-to-leaf)i(path)d(in)h(the)g(enco)r(ding)g(tree.)p
+Black Black Black eop end
+%%Page: 18 18
+TeXDict begin 18 17 bop 0 0 a
 SDict begin /product where{pop product(Distiller)search{pop pop pop
 version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
 closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
@@ -7830,107 +8008,101 @@
 232 a
 SDict begin H.R end
  523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.17) cvn H.B /DEST pdfmark
+SDict begin [ /View [/XYZ H.V] /Dest (page.18) cvn H.B /DEST pdfmark
 end
- 523 232 a Black 1036 w Fx(An)25
-b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)199
-b(17)p Black 523 448 a FA(authen)n(ticit)n(y)-7 b(,)21
-b Fq(H)7 b FA(\()p Fq(H)g FA(\()p Fq(k)s FA(\)\),)21
-b(hashes)f(to)g(the)h(query)f Fq(H)7 b FA(\()p Fq(H)g
-FA(\()p Fq(H)g FA(\()p Fq(k)s FA(\)\)\).)22 b(Malicious)d(p)r(eers)h
-(cannot)523 548 y(construct)26 b(the)g(pro)r(of)g Fq(H)7
-b FA(\()p Fq(H)g FA(\()p Fq(k)s FA(\)\))26 b(without)h(guessing)e
-Fq(k)k FA(or)c(in)n(v)n(erting)g(the)i(hash)e(function.)648
-648 y(The)41 b(problem)g(with)h(the)f(triple-hash)g(is)g(that)h(an)f
-(adv)n(ersary)d(that)k(is)f(routing)f(a)523 747 y(resp)r(onse)35
-b(to)h(a)g(triple-hash)f(request)h(can)g(substitute)h(the)f(encrypted)g
-(con)n(ten)n(t)g(in)h(the)523 847 y Fb(f)p Fq(H)7 b FA(\()p
-Fq(H)g FA(\()p Fq(k)s FA(\)\))p Fq(;)14 b(E)989 862 y
-Fh(H)t Fz(\()p Fh(k)q Fz(\))1141 847 y FA(\()p Fq(C)6
-b(H)h(K)q(;)14 b(siz)t(e)p FA(\))p Fb(g)26 b FA(resp)r(onse)h(while)h
-(main)n(taining)g(the)g Fq(H)7 b FA(\()p Fq(H)g FA(\()p
-Fq(k)s FA(\)\))29 b(tok)n(en.)523 946 y(The)g(resulting)f(reply)g
-Fb(f)p Fq(H)7 b FA(\()p Fq(H)g FA(\()p Fq(k)s FA(\)\))p
-Fq(;)14 b(X)7 b Fb(g)27 b FA(still)i(lo)r(oks)e(lik)n(e)i(a)f(v)-5
-b(alid)28 b(resp)r(onse)g(to)g(the)h(triple-)523 1046
-y(hash)h(query)g Fq(H)7 b FA(\()p Fq(H)g FA(\()p Fq(H)g
-FA(\()p Fq(k)s FA(\)\)\).)32 b(The)f(triple-hash)f(th)n(us)g(do)r(es)h
-(not)f(protect)h(against)e(suc)n(h)h(a)523 1146 y(substitution)22
-b(attac)n(k)f(b)n(y)h(an)g(in)n(termediary)-7 b(.)20
-b(The)i(impact)g(of)g(the)g(attac)n(k)f(is)h(suc)n(h)f(that)i(the)523
-1245 y(net)n(w)n(ork)i(w)n(ould)h(propagate)e(and)i(p)r(ossibly)g(cac)n
-(he)f(the)i(in)n(v)-5 b(alid)26 b(replies.)g(The)g(attac)n(k)g(will)523
-1345 y(not)i(prev)n(en)n(t)f(the)h(spread)f(of)h(v)-5
-b(alid)28 b(replies)f(through)h(other)f(routes)g(in)h(the)h(system)e
-(since)523 1445 y(m)n(ultiple)e(results)f(to)g(the)g(same)g(query)f
-(are)h(p)r(ossible.)g(F)-7 b(urthermore,)23 b(an)n(y)g(user)h(searc)n
-(hing)523 1544 y(for)i Fq(K)32 b FA(will)27 b(not)f(see)h(the)f(in)n(v)
--5 b(alid)27 b(results.)f(The)h(reason)e(is)h(that)h(the)g(attempt)g
-(to)f(decrypt)523 1644 y Fq(X)34 b FA(with)29 b Fq(H)7
-b FA(\()p Fq(K)f FA(\))28 b(will)g(\(with)h(high)e(probabilit)n(y\))h
-(result)f(in)h(a)g(malformed)f Ft(RBlo)l(ck)p FA(.)i(Th)n(us,)523
-1743 y(the)21 b(end-user)f(is)h(still)g(protected)f(from)h(this)g(t)n
+ 523 232 a Black Fx(18)199 b(C.)27
+b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
+Black 648 448 a FA(The)41 b(problem)g(with)h(the)f(triple-hash)g(is)g
+(that)h(an)f(adv)n(ersary)d(that)k(is)f(routing)f(a)523
+548 y(resp)r(onse)35 b(to)h(a)g(triple-hash)f(request)h(can)g
+(substitute)h(the)f(encrypted)g(con)n(ten)n(t)g(in)h(the)523
+648 y Fb(f)p Fs(H)7 b FA(\()p Fs(H)g FA(\()p Fs(k)s FA(\)\))p
+Fs(;)14 b(E)989 663 y Fh(H)t Fz(\()p Fh(k)q Fz(\))1141
+648 y FA(\()p Fs(C)6 b(H)h(K)q(;)14 b(siz)t(e)p FA(\))p
+Fb(g)26 b FA(resp)r(onse)h(while)h(main)n(taining)g(the)g
+Fs(H)7 b FA(\()p Fs(H)g FA(\()p Fs(k)s FA(\)\))29 b(tok)n(en.)523
+747 y(The)g(resulting)f(reply)g Fb(f)p Fs(H)7 b FA(\()p
+Fs(H)g FA(\()p Fs(k)s FA(\)\))p Fs(;)14 b(X)7 b Fb(g)27
+b FA(still)i(lo)r(oks)e(lik)n(e)i(a)f(v)-5 b(alid)28
+b(resp)r(onse)g(to)g(the)h(triple-)523 847 y(hash)h(query)g
+Fs(H)7 b FA(\()p Fs(H)g FA(\()p Fs(H)g FA(\()p Fs(k)s
+FA(\)\)\).)32 b(The)f(triple-hash)f(th)n(us)g(do)r(es)h(not)f(protect)h
+(against)e(suc)n(h)h(a)523 946 y(substitution)22 b(attac)n(k)f(b)n(y)h
+(an)g(in)n(termediary)-7 b(.)20 b(The)i(impact)g(of)g(the)g(attac)n(k)f
+(is)h(suc)n(h)f(that)i(the)523 1046 y(net)n(w)n(ork)i(w)n(ould)h
+(propagate)e(and)i(p)r(ossibly)g(cac)n(he)f(the)i(in)n(v)-5
+b(alid)26 b(replies.)g(The)g(attac)n(k)g(will)523 1146
+y(not)i(prev)n(en)n(t)f(the)h(spread)f(of)h(v)-5 b(alid)28
+b(replies)f(through)h(other)f(routes)g(in)h(the)h(system)e(since)523
+1245 y(m)n(ultiple)e(results)f(to)g(the)g(same)g(query)f(are)h(p)r
+(ossible.)g(F)-7 b(urthermore,)23 b(an)n(y)g(user)h(searc)n(hing)523
+1345 y(for)i Fs(K)32 b FA(will)27 b(not)f(see)h(the)f(in)n(v)-5
+b(alid)27 b(results.)f(The)h(reason)e(is)h(that)h(the)g(attempt)g(to)f
+(decrypt)523 1445 y Fs(X)34 b FA(with)29 b Fs(H)7 b FA(\()p
+Fs(K)f FA(\))28 b(will)g(\(with)h(high)e(probabilit)n(y\))h(result)f
+(in)h(a)g(malformed)f Ft(RBlo)l(ck)p FA(.)i(Th)n(us,)523
+1544 y(the)21 b(end-user)f(is)h(still)g(protected)f(from)h(this)g(t)n
 (yp)r(e)g(of)f(spam.)h(Nev)n(ertheless,)f(the)h(adv)n(ersary)523
-1843 y(can)29 b(abuse)g(net)n(w)n(ork)f(resources)f(in)i(the)h(form)f
+1644 y(can)29 b(abuse)g(net)n(w)n(ork)f(resources)f(in)i(the)h(form)f
 (of)g(transmission)f(and)i(cac)n(hing)e(of)h(in)n(v)-5
-b(alid)523 1943 y(data.)648 2042 y(Replacing)26 b(the)h(triple-hash)g
+b(alid)523 1743 y(data.)648 1843 y(Replacing)26 b(the)h(triple-hash)g
 (with)g Ft(KBlo)l(ck)p FA(s)h(for)f(ECRS)f(comes)h(at)g(a)f(relativ)n
-(ely)g(high)523 2142 y(price.)42 b(Where)g(the)g(trip)r(e-hash)g(only)f
-(requires)g(a)h(simple)g(hash)g(op)r(eration)f(to)h(v)n(erify)523
-2242 y(replies,)30 b Ft(KBlo)l(ck)p FA(s)h(need)f(to)g(p)r(erform)g(a)g
-(public)g(k)n(ey)g(op)r(eration.)f(W)-7 b(orse,)30 b(when)g(publish-)
-523 2341 y(ing)d(con)n(ten)n(t)f(or)g(searc)n(hing,)f(the)j
-(triple-hash)e(sc)n(heme)g(again)g(only)g(requires)g(a)g(few)i(quic)n
-(k)523 2441 y(hash)33 b(op)r(erations)e(to)i(compute)h(the)f(query)g
-(or)f(the)h(con)n(ten)n(t.)g(With)h Ft(KBlo)l(ck)p FA(s,)g(the)f(cost)
-523 2540 y(increases)h(to)h(additionally)f(generating)g(a)g
-(public-priv)-5 b(ate)35 b(k)n(ey)g(pair)f(in)h(addition)g(to)g(a)523
-2640 y(public)28 b(k)n(ey)f(op)r(eration)g(and)g(hash)g(op)r(erations.)
-648 2740 y(Both)42 b Ft(KBlo)l(cks)h FA(and)f(the)h(triple-hash)e(are)h
-(vulnerable)f(to)h(the)h(guessing)e(attac)n(k.)523 2839
+(ely)g(high)523 1943 y(price.)40 b(Where)g(the)h(triple-hash)e(only)h
+(requires)f(a)g(simple)i(hash)f(op)r(eration)f(to)h(v)n(erify)523
+2042 y(replies,)22 b Ft(KBlo)l(ck)p FA(s)i(need)e(to)h(p)r(erform)f(a)g
+(public)i(k)n(ey)d(op)r(eration.)h(W)-7 b(orse,)22 b(when)h(publishing)
+523 2142 y(con)n(ten)n(t)f(or)f(searc)n(hing,)g(the)h(triple-hash)g(sc)
+n(heme)g(again)f(only)g(requires)g(a)h(few)h(quic)n(k)e(hash)523
+2242 y(op)r(erations)e(to)h(compute)h(the)g(query)e(or)h(the)g(con)n
+(ten)n(t.)g(With)i Ft(KBlo)l(ck)p FA(s,)f(the)g(cost)f(increases)523
+2341 y(to)30 b(additionally)g(generating)e(a)i(public-priv)-5
+b(ate)30 b(k)n(ey)f(pair)h(in)g(addition)g(to)g(a)g(public)h(k)n(ey)523
+2441 y(op)r(eration)c(and)g(hash)g(op)r(erations.)648
+2540 y(Both)42 b Ft(KBlo)l(cks)h FA(and)f(the)h(triple-hash)e(are)h
+(vulnerable)f(to)h(the)h(guessing)e(attac)n(k.)523 2640
 y(Guessing)d(is)h(sligh)n(tly)f(easier)f(for)h(the)h(triple-hash)f
-(since)g(the)h(computation)g(for)f(eac)n(h)523 2939 y(guess)21
+(since)g(the)h(computation)g(for)f(eac)n(h)523 2740 y(guess)21
 b(is)h(m)n(uc)n(h)f(c)n(heap)r(er.)g(Ov)n(erall,)f Ft(KBlo)l(cks)j
 FA(w)n(ork)e(b)r(etter)h(than)g(the)g(triple-hash)f(against)523
-3039 y(adv)n(ersaries)f(that)j(indiscriminately)g(attempt)h(to)e(abuse)
-h(net)n(w)n(ork)e(resources,)g(but)j(at)f(the)523 3138
+2839 y(adv)n(ersaries)f(that)j(indiscriminately)g(attempt)h(to)e(abuse)
+h(net)n(w)n(ork)e(resources,)g(but)j(at)f(the)523 2939
 y(exp)r(ense)28 b(of)f(higher)g(CPU)h(utilization)f(ev)n(en)g(in)h(the)
 g(absence)f(of)h(an)f(attac)n(k.)g(Th)n(us)g(using)523
-3238 y(the)36 b(triple-hash)e(sc)n(heme)g(ma)n(y)h(still)g(b)r(e)h
+3039 y(the)36 b(triple-hash)e(sc)n(heme)g(ma)n(y)h(still)g(b)r(e)h
 (reasonable)d(in)i(net)n(w)n(orks)f(with)h(limited)h(CPU)523
-3337 y(p)r(o)n(w)n(er)26 b(or)h(less)g(stringen)n(t)g(securit)n(y)g
-(requiremen)n(ts.)523 3503 y
+3138 y(p)r(o)n(w)n(er)26 b(or)h(less)g(stringen)n(t)g(securit)n(y)g
+(requiremen)n(ts.)523 3304 y
 SDict begin H.S end
- 523 3503 a 523 3503 a
+ 523 3304 a 523 3304 a
 SDict begin 12 H.A end
  523
-3503 a 523 3503 a
+3304 a 523 3304 a
 SDict begin [ /View [/XYZ H.V] /Dest (section.1.6) cvn H.B /DEST pdfmark
 end
- 523 3503 a 100 x Fu(6)112 b(Conclusion)523
-3802 y FA(This)26 b(pap)r(er)g(has)f(describ)r(ed)h(an)g(enco)r(ding)g
+ 523 3304 a 100 x Fu(6)112 b(Conclusion)523
+3603 y FA(This)26 b(pap)r(er)g(has)f(describ)r(ed)h(an)g(enco)r(ding)g
 (sc)n(heme)f(whic)n(h)h(hides)g(the)h(shared)e(data)g(from)523
-3902 y(in)n(termediaries.)k(The)h(enco)r(ding)g(uses)g(con)n(v)n(ergen)
+3703 y(in)n(termediaries.)k(The)h(enco)r(ding)g(uses)g(con)n(v)n(ergen)
 n(t)e(encryption,)i(allo)n(ws)f(sw)n(arming)f(and)523
-4002 y(pro)r(duces)34 b(a)g(ciphertext)h(that)g(is)f(not)h
+3802 y(pro)r(duces)34 b(a)g(ciphertext)h(that)g(is)f(not)h
 (signi\014can)n(tly)f(larger)f(than)h(the)h(plain)n(text.)g(Indi-)523
-4101 y(vidual)26 b(blo)r(c)n(ks)e(of)i(the)g(ciphertext)g(can)f(b)r(e)h
+3902 y(vidual)26 b(blo)r(c)n(ks)e(of)i(the)g(ciphertext)g(can)f(b)r(e)h
 (generated)f(from)g(plain)n(text)h(without)g(reading)523
-4201 y(unrelated)38 b(parts)h(of)f(the)h(original.)f(While)h
+4002 y(unrelated)38 b(parts)h(of)f(the)h(original.)f(While)h
 (dictionary)f(attac)n(ks)g(on)g(the)h(k)n(eyw)n(ords)e(or)523
-4301 y(kno)n(wn)24 b(plain)n(text)g(attac)n(ks)g(on)g(the)h(con)n(ten)n
+4101 y(kno)n(wn)24 b(plain)n(text)g(attac)n(ks)g(on)g(the)h(con)n(ten)n
 (t)f(are)g(still)h(p)r(ossible,)f(they)h(are)e(harmless)g(with)523
-4400 y(resp)r(ect)k(to)h(the)g(goal)e(of)i(deniabilit)n(y)g(for)f(in)n
+4201 y(resp)r(ect)k(to)h(the)g(goal)e(of)i(deniabilit)n(y)g(for)f(in)n
 (termediaries.)f(The)i(basic)f(enco)r(ding)g(sc)n(heme)523
-4500 y(can)21 b(b)r(e)h(extended)g(with)g(directories)e(and)i
+4301 y(can)21 b(b)r(e)h(extended)g(with)g(directories)e(and)i
 (namespaces.)e(Namespaces)g(allo)n(w)h(for)g(\014les)g(and)523
-4599 y(directories)28 b(to)i(b)r(e)g(up)r(dated.)g(Using)g
-Fq(k)s FA(-deterministic)f(public-priv)-5 b(ate)30 b(k)n(eys)f(for)g
-(signing)523 4699 y(con)n(ten)n(t)e(it)h(is)g(p)r(ossible)f(to)g(v)n
+4400 y(directories)28 b(to)i(b)r(e)g(up)r(dated.)g(Using)g
+Fs(k)s FA(-deterministic)f(public-priv)-5 b(ate)30 b(k)n(eys)f(for)g
+(signing)523 4500 y(con)n(ten)n(t)e(it)h(is)g(p)r(ossible)f(to)g(v)n
 (erify)g(searc)n(h)f(results)h(in)h(a)f(global)g(k)n(eyw)n(ord)f
 (space.)p Black Black eop end
-%%Page: 18 18
-TeXDict begin 18 17 bop 0 0 a
+%%Page: 19 19
+TeXDict begin 19 18 bop 0 0 a
 SDict begin /product where{pop product(Distiller)search{pop pop pop
 version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
 closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
@@ -7942,15 +8114,15 @@
 232 a
 SDict begin H.R end
  523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.18) cvn H.B /DEST pdfmark
+SDict begin [ /View [/XYZ H.V] /Dest (page.19) cvn H.B /DEST pdfmark
 end
- 523 232 a Black Fx(18)199 b(C.)27
-b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
-Black 648 448 a FA(ECRS)35 b(is)g(implemen)n(ted)h(as)f(a)g(part)g(of)h
-Fa(gnu)p FA(net,)g(a)f(secure)g(platform)g(for)g(p)r(eer-to-)523
-548 y(p)r(eer)i(net)n(w)n(orking.)f(In)i Fa(gnu)p FA(net,)g(ECRS)f(w)n
-(orks)f(to)n(w)n(ards)g(implemen)n(ting)i(anon)n(ymous,)523
-648 y(censorship-resistan)n(t)31 b(\014le-sharing.)h
+ 523 232 a Black 1036 w Fx(An)25
+b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)199
+b(19)p Black 648 448 a FA(ECRS)35 b(is)g(implemen)n(ted)h(as)f(a)g
+(part)g(of)h Fa(gnu)p FA(net,)g(a)f(secure)g(platform)g(for)g(p)r
+(eer-to-)523 548 y(p)r(eer)i(net)n(w)n(orking.)f(In)i
+Fa(gnu)p FA(net,)g(ECRS)f(w)n(orks)f(to)n(w)n(ards)g(implemen)n(ting)i
+(anon)n(ymous,)523 648 y(censorship-resistan)n(t)31 b(\014le-sharing.)h
 Fa(gnu)p FA(net)i(is)g(free)f(soft)n(w)n(are)f(and)i(part)f(of)g(the)h
 (GNU)523 747 y(pro)5 b(ject.)25 b(The)g Fa(gnu)p FA(net)h(co)r(de)f(is)
 h(appro)n(ximately)d(100,000)g(lines)i(of)h(C)f(co)r(de.)g(ECRS)h
@@ -7965,206 +8137,193 @@
  867 946 a 867 946 a
 SDict begin [ /Subtype /Link /Dest (Hfootnote.4) cvn /H /I /Border
 [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end
- 867 946 a Black FA(.)523 1186
-y Fr(Ac)m(kno)m(wledgemen)m(ts)523 1259 y
+ 867 946 a Black FA(.)523 1213
+y Fq(Ac)m(kno)m(wledgemen)m(ts)523 1309 y
 SDict begin H.S end
- 523 1259 a
-523 1259 a
+ 523 1309 a
+523 1309 a
 SDict begin 12 H.A end
- 523 1259 a 523 1259 a
+ 523 1309 a 523 1309 a
 SDict begin [ /View [/XYZ H.V] /Dest (section*.1) cvn H.B /DEST pdfmark
 end
- 523 1259 a 84 x FA(The)k(authors)f
+ 523 1309 a 87 x FA(The)k(authors)f
 (thank)h(Roger)f(Dingledine)h(for)g(helpful)g(commen)n(ts)g(on)g(an)g
-(earlier)e(draft)i(of)523 1442 y(this)j(pap)r(er.)523
-1698 y Fu(References)523 1788 y
+(earlier)e(draft)i(of)523 1496 y(this)j(pap)r(er.)523
+1779 y Fu(References)523 1892 y
 SDict begin H.S end
- 523 1788 a 523 1788 a
+ 523 1892 a 523 1892 a
 SDict begin 11 H.A end
 
-523 1788 a 523 1788 a
+523 1892 a 523 1892 a
 SDict begin [ /View [/XYZ H.V] /Dest (section*.2) cvn H.B /DEST pdfmark
 end
- 523 1788 a 523 1788 a
+ 523 1892 a 523 1892 a
 SDict begin H.S end
- 523 1788
-a 523 1788 a
+ 523 1892
+a 523 1892 a
 SDict begin 11 H.A end
- 523 1788 a 523 1788 a
+ 523 1892 a 523 1892 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.anderson96eternity) cvn
 H.B /DEST pdfmark end
- 523 1788 a Black 561
-1877 a Fx(1.)p Black 43 w(Ross)e(Anderson.)34 b(The)26
+ 523 1892 a Black 561
+1987 a Fx(1.)p Black 43 w(Ross)e(Anderson.)34 b(The)26
 b(Eternit)n(y)f(Service.)34 b(In)25 b Fp(Pr)l(o)l(c)l(e)l(e)l(dings)30
-b(of)d(Pr)l(ago)l(crypt)j(1996)p Fx(,)d(1996.)523 1892
+b(of)d(Pr)l(ago)l(crypt)j(1996)p Fx(,)d(1996.)523 2002
 y
 SDict begin H.S end
- 523 1892 a 523 1892 a
+ 523 2002 a 523 2002 a
 SDict begin 11 H.A end
- 523 1892 a 523 1892 a
+ 523 2002 a 523 2002 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.esed) cvn H.B /DEST pdfmark
 end
- 523 1892
-a Black 561 1966 a Fx(2.)p Black 43 w(Krista)34 b(Bennett,)g(Christian)
+ 523 2002
+a Black 561 2081 a Fx(2.)p Black 43 w(Krista)34 b(Bennett,)g(Christian)
 h(Grotho\013,)g(Tzv)n(etan)f(Horozo)n(v,)g(and)g(Ioana)h(P)n(atrascu.)
-60 b(Ef-)663 2058 y(\014cien)n(t)31 b(Sharing)h(of)h(Encrypted)e(Data.)
+60 b(Ef-)663 2173 y(\014cien)n(t)31 b(Sharing)h(of)h(Encrypted)e(Data.)
 54 b(In)31 b Fp(ASCIP)p Fx(,)h(v)n(olume)g(2384)h(of)g
-Fp(L)l(e)l(ctur)l(e)j(Notes)e(in)663 2149 y(Computer)28
+Fp(L)l(e)l(ctur)l(e)j(Notes)e(in)663 2264 y(Computer)28
 b(Scienc)l(e)p Fx(,)f(pages)g(107{120.)i(Springer-V)-6
-b(erlag)25 b(Inc.,)h(2002.)523 2164 y
+b(erlag)25 b(Inc.,)h(2002.)523 2279 y
 SDict begin H.S end
- 523 2164 a 523
-2164 a
+ 523 2279 a 523
+2279 a
 SDict begin 11 H.A end
- 523 2164 a 523 2164 a
+ 523 2279 a 523 2279 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.bloom) cvn H.B /DEST pdfmark
 end
- 523 2164 a Black 561 2238
+ 523 2279 a Black 561 2359
 a Fx(3.)p Black 43 w(Burton)g(Blo)r(om.)37 b(Space/time)26
 b(trade-o\013s)g(in)g(hash)g(co)r(ding)h(with)f(allo)n(w)n(able)i
-(errors.)37 b Fp(Com-)663 2329 y(munic)l(ations)28 b(of)f(the)i(A)n(CM)
-p Fx(,)c(13\(7\):422{426,)30 b(1970.)523 2348 y
+(errors.)37 b Fp(Com-)663 2450 y(munic)l(ations)28 b(of)f(the)i(A)n(CM)
+p Fx(,)c(13\(7\):422{426,)30 b(1970.)523 2469 y
 SDict begin H.S end
- 523 2348
-a 523 2348 a
+ 523 2469
+a 523 2469 a
 SDict begin 11 H.A end
- 523 2348 a 523 2348 a
+ 523 2469 a 523 2469 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.chen99prototype) cvn H.B
 /DEST pdfmark end
- 523 2348 a Black 561
-2418 a Fx(4.)p Black 43 w(Y)-6 b(uan)19 b(Chen,)i(Jan)h(Edler,)f
+ 523 2469 a Black 561
+2545 a Fx(4.)p Black 43 w(Y)-6 b(uan)19 b(Chen,)i(Jan)h(Edler,)f
 (Andrew)g(Goldb)r(erg,)h(Allan)f(Gottlieb,)h(Sumeet)e(Sobti,)h(and)g(P)
-n(eter)663 2509 y(Yianilos.)39 b(A)26 b(protot)n(yp)r(e)g(implemen)n
+n(eter)663 2636 y(Yianilos.)39 b(A)26 b(protot)n(yp)r(e)g(implemen)n
 (tation)h(of)h(arc)n(hiv)l(al)f(in)n(termemory)-6 b(.)37
-b(In)26 b Fp(Pr)l(o)l(c)l(e)l(e)l(dings)31 b(of)663 2601
+b(In)26 b Fp(Pr)l(o)l(c)l(e)l(e)l(dings)31 b(of)663 2728
 y(the)d(F)-6 b(ourth)29 b(A)n(CM)e(International)i(Confer)l(enc)l(e)g
-(on)f(Digital)f(Libr)l(aries)p Fx(,)g(1999.)523 2616
+(on)f(Digital)f(Libr)l(aries)p Fx(,)g(1999.)523 2743
 y
 SDict begin H.S end
- 523 2616 a 523 2616 a
+ 523 2743 a 523 2743 a
 SDict begin 11 H.A end
- 523 2616 a 523 2616 a
+ 523 2743 a 523 2743 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.clark99distributed) cvn
 H.B /DEST pdfmark end
- 523 2616
-a Black 561 2690 a Fx(5.)p Black 43 w(Ian)h(Clark)n(e,)h(Osk)l(ar)g
+ 523 2743
+a Black 561 2822 a Fx(5.)p Black 43 w(Ian)h(Clark)n(e,)h(Osk)l(ar)g
 (Sandb)r(erg,)f(Brandon)h(Wiley)-6 b(,)28 b(and)g(Theo)r(dorew)i(W.)f
-(Hong.)43 b(F)-6 b(reenet:)663 2781 y(A)35 b(distributed)f(anon)n
+(Hong.)43 b(F)-6 b(reenet:)663 2914 y(A)35 b(distributed)f(anon)n
 (ymous)i(information)g(storage)h(and)e(retriev)l(al)h(system.)63
-b(In)35 b(Hannes)663 2872 y(F)-6 b(ederrath,)28 b(editor,)g
+b(In)35 b(Hannes)663 3005 y(F)-6 b(ederrath,)28 b(editor,)g
 Fp(Designing)i(privacy)h(enhancing)f(te)l(chnolo)l(gies:)h
-(International)g(Work-)663 2964 y(shop)38 b(on)f(Design)g(Issues)h(in)f
+(International)g(Work-)663 3096 y(shop)38 b(on)f(Design)g(Issues)h(in)f
 (A)n(nonymity)g(and)h(Unobservability,)g(Berkeley,)g(CA,)e(USA,)663
-3055 y(July)25 b(25{26,)g(2000:)g(pr)l(o)l(c)l(e)l(e)l(dings)p
+3188 y(July)25 b(25{26,)g(2000:)g(pr)l(o)l(c)l(e)l(e)l(dings)p
 Fx(,)h(v)n(olume)c(2009)j(of)e Fp(L)l(e)l(ctur)l(e)k(Notes)f(in)f
-(Computer)h(Scienc)l(e)p Fx(.)663 3146 y(Springer-V)-6
-b(erlag)25 b(Inc.,)h(2001.)523 3161 y
+(Computer)h(Scienc)l(e)p Fx(.)663 3279 y(Springer-V)-6
+b(erlag)25 b(Inc.,)h(2001.)523 3294 y
 SDict begin H.S end
- 523 3161 a 523
-3161 a
+ 523 3294 a 523
+3294 a
 SDict begin 11 H.A end
- 523 3161 a 523 3161 a
+ 523 3294 a 523 3294 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.cohen02replication) cvn
 H.B /DEST pdfmark end
- 523 3161 a Black 561 3235
+ 523 3294 a Black 561 3374
 a Fx(6.)p Black 43 w(Edith)31 b(Cohen)g(and)g(Scott)g(Shenk)n(er.)50
 b(Replication)31 b(strategies)i(in)e(unstructured)f(p)r(eer-to-)663
-3327 y(p)r(eer)25 b(net)n(w)n(orks.)35 b(In)25 b Fp(The)j(A)n(CM)f
+3465 y(p)r(eer)25 b(net)n(w)n(orks.)35 b(In)25 b Fp(The)j(A)n(CM)f
 (SIGCOMM'02)g(Confer)l(enc)l(e)p Fx(,)g(August)e(2002.)523
-3342 y
+3480 y
 SDict begin H.S end
- 523 3342 a 523 3342 a
+ 523 3480 a 523 3480 a
 SDict begin 11 H.A end
- 523 3342 a 523 3342 a
+ 523 3480 a 523 3480 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.cfs:sosp01) cvn H.B /DEST
 pdfmark end
  523
-3342 a Black 561 3416 a Fx(7.)p Black 43 w(F)-6 b(rank)26
+3480 a Black 561 3560 a Fx(7.)p Black 43 w(F)-6 b(rank)26
 b(Dab)r(ek,)i(M.)g(F)-6 b(rans)27 b(Kaasho)r(ek,)h(Da)n(vid)f(Karger,)h
-(Rob)r(ert)g(Morris,)h(and)e(Ion)g(Stoica.)663 3507 y(Wide-area)j(co)r
+(Rob)r(ert)g(Morris,)h(and)e(Ion)g(Stoica.)663 3651 y(Wide-area)j(co)r
 (op)r(erativ)n(e)h(storage)g(with)e(CFS.)47 b(In)28 b
 Fp(Pr)l(o)l(c)l(e)l(e)l(dings)34 b(of)d(the)h(18th)g(A)n(CM)e(Sym-)663
-3598 y(p)l(osium)25 b(on)g(Op)l(er)l(ating)h(Systems)g(Principles)f
+3743 y(p)l(osium)25 b(on)g(Op)l(er)l(ating)h(Systems)g(Principles)f
 (\(SOSP)g('01\))p Fx(,)f(Chateau)f(Lak)n(e)g(Louise,)g(Ban\013,)663
-3690 y(Canada,)k(Octob)r(er)e(2001.)523 3705 y
+3834 y(Canada,)k(Octob)r(er)e(2001.)523 3849 y
 SDict begin H.S end
- 523 3705
-a 523 3705 a
+ 523 3849
+a 523 3849 a
 SDict begin 11 H.A end
- 523 3705 a 523 3705 a
+ 523 3849 a 523 3849 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.dingledine02mixminion) cvn
 H.B /DEST pdfmark end
- 523 3705 a Black 561
-3779 a Fx(8.)p Black 43 w(George)32 b(Danezis,)g(Roger)g(Dingledine,)g
+ 523 3849 a Black 561
+3929 a Fx(8.)p Black 43 w(George)32 b(Danezis,)g(Roger)g(Dingledine,)g
 (and)f(Nic)n(k)f(Mathewson.)52 b(Mixminion:)32 b(Design)g(of)663
-3870 y(a)d(T)n(yp)r(e)f(I)r(I)r(I)g(Anon)n(ymous)g(Remailer)i(Proto)r
+4020 y(a)d(T)n(yp)r(e)f(I)r(I)r(I)g(Anon)n(ymous)g(Remailer)i(Proto)r
 (col.)45 b(In)28 b Fp(IEEE)i(Symp)l(osium)h(on)g(Se)l(curity)g(and)663
-3961 y(Privacy)p Fx(,)c(2003.)523 3976 y
+4111 y(Privacy)p Fx(,)c(2003.)523 4126 y
 SDict begin H.S end
- 523 3976 a 523
-3976 a
+ 523 4126 a 523
+4126 a
 SDict begin 11 H.A end
- 523 3976 a 523 3976 a
+ 523 4126 a 523 4126 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.freehaven-berk) cvn H.B
 /DEST pdfmark end
- 523 3976 a Black 561 4050
+ 523 4126 a Black 561 4206
 a Fx(9.)p Black 43 w(Roger)18 b(Dingledine,)h(Mic)n(hael)g(J.)g(F)-6
 b(reedman,)18 b(and)g(Da)n(vid)f(Molnar.)23 b(The)c(free)f(ha)n(v)n(en)
-g(pro)t(ject:)663 4141 y(Distributed)37 b(anon)n(ymous)i(storage)g
+g(pro)t(ject:)663 4297 y(Distributed)37 b(anon)n(ymous)i(storage)g
 (service.)73 b(In)38 b(Hannes)g(F)-6 b(ederrath,)38 b(editor,)h
-Fp(Pr)l(o)l(c)l(e)l(e)l(d-)663 4233 y(ings)26 b(of)g(Designing)g
+Fp(Pr)l(o)l(c)l(e)l(e)l(d-)663 4389 y(ings)26 b(of)g(Designing)g
 (Privacy)h(Enhancing)g(T)-6 b(e)l(chnolo)l(gies:)27 b(Workshop)g(on)g
-(Design)f(Issues)h(in)663 4324 y(A)n(nonymity)h(and)g(Unobservability)p
+(Design)f(Issues)h(in)663 4480 y(A)n(nonymity)h(and)g(Unobservability)p
 Fx(.)g(Springer-V)-6 b(erlag,)26 b(LNCS)f(2009,)i(July)f(2000.)523
-4339 y
+4495 y
 SDict begin H.S end
- 523 4339 a 523 4339 a
+ 523 4495 a 523 4495 a
 SDict begin 11 H.A end
- 523 4339 a 523 4339 a
-SDict begin [ /View [/XYZ H.V] /Dest (cite.feamster-infranet) cvn H.B
-/DEST pdfmark end
+ 523 4495 a 523 4495 a
+SDict begin [ /View [/XYZ H.V] /Dest (cite.farsite) cvn H.B /DEST pdfmark
+end
  523
-4339 a Black 74 x Fx(10.)p Black 43 w(Nic)n(k)21 b(F)-6
-b(eamster,)23 b(Magdalena)g(Balazinsk)l(a,)h(Greg)f(Harfst,)g(Hari)f
-(Balakrishnan,)h(and)e(Da)n(vid)663 4504 y(Karger.)k(Infranet:)20
-b(Circum)n(v)n(en)n(ting)g(w)n(eb)g(censorship)g(and)f(surv)n
-(eillance.)26 b(In)19 b Fp(11th)k(USENIX)663 4596 y(Se)l(curity)29
-b(Symp)l(osium)p Fx(,)d(2002.)523 4611 y
+4495 a Black 80 x Fx(10.)p Black 43 w(John)19 b(R.)f(Douceur,)h(A)n
+(tul)f(Ady)n(a,)h(Wiliam)h(J.)g(Bolosky)-6 b(,)19 b(Dan)g(Simon,)g(and)
+g(Marvin)g(Theimer.)663 4666 y(Reclaiming)26 b(space)g(from)g
+(duplicate)f(\014les)g(in)g(a)h(serv)n(erless)g(distributed)f(\014le)g
+(system.)33 b(T)-6 b(ec)n(h-)663 4757 y(nical)26 b(rep)r(ort,)g
+(Microsoft)i(Researc)n(h,)e(2002.)p Black 523 4839 473
+4 v 546 4893 a Fy(4)p 0 TeXcolorgray 606 4833 a
 SDict begin H.S end
- 523 4611 a 523
-4611 a
-SDict begin 11 H.A end
- 523 4611 a 523 4611 a
-SDict begin [ /View [/XYZ H.V] /Dest (cite.ebe2003) cvn H.B /DEST pdfmark
-end
- 523 4611 a Black 74 x Fx(11.)p
-Black 43 w(Christian)h(Grotho\013.)35 b(An)25 b(Excess-Based)i
-(Economic)g(Mo)r(del)g(for)f(Resource)h(Allo)r(cation)g(in)663
-4776 y(P)n(eer-to-P)n(eer)f(Net)n(w)n(orks.)34 b Fp
-(Wirtschaftsinformatik)p Fx(,)27 b(3-2003,)h(June)d(2003.)p
-Black 523 4839 473 4 v 546 4893 a Fy(4)p 0 TeXcolorgray
+ 606 4833
+a 0 TeXcolorgray 0 TeXcolorgray 606 4833 a
+SDict begin H.R end
+ 606 4833 a
 606 4833 a
-SDict begin H.S end
- 606 4833 a 0 TeXcolorgray 0 TeXcolorgray 606
-4833 a
-SDict begin H.R end
- 606 4833 a 606 4833 a
 SDict begin [ /View [/XYZ H.V] /Dest (Hfootnote.4) cvn H.B /DEST pdfmark
 end
- 606 4833 a Black 0 1 0 0
-TeXcolorcmyk 606 4941 a
+ 606 4833 a Black 0 1 0 0 TeXcolorcmyk 606
+4941 a
 SDict begin H.S end
- 606 4941 a 0 1 0 0 TeXcolorcmyk
--17 x Fw(http://gnunet.org/)p 0 1 0 0 TeXcolorcmyk 1312
-4872 a
+ 606 4941 a 0 1 0 0 TeXcolorcmyk -17 x Fw(http://gnunet.org/)p
+0 1 0 0 TeXcolorcmyk 1312 4872 a
 SDict begin H.R end
- 1312 4872 a 1312 4924 a
+ 1312 4872 a 1312 4924
+a
 SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype
 /URI /URI (http://gnunet.org/) >> /Subtype /Link H.B /ANN pdfmark end
- 1312 4924 a Black Black
-Black Black eop end
-%%Page: 19 19
-TeXDict begin 19 18 bop 0 0 a
+ 1312 4924 a Black Black Black Black eop end
+%%Page: 20 20
+TeXDict begin 20 19 bop 0 0 a
 SDict begin /product where{pop product(Distiller)search{pop pop pop
 version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
 closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
@@ -8176,258 +8335,327 @@
 232 a
 SDict begin H.R end
  523 232 a 523 232 a
-SDict begin [ /View [/XYZ H.V] /Dest (page.19) cvn H.B /DEST pdfmark
+SDict begin [ /View [/XYZ H.V] /Dest (page.20) cvn H.B /DEST pdfmark
 end
- 523 232 a Black 1036 w Fx(An)25
-b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)199
-b(19)p Black 523 365 a
+ 523 232 a Black Fx(20)199 b(C.)27
+b(Grotho\013,)f(K.)g(Grotho\013,)g(T.)h(Horozo)n(v,)f(J.T.)h(Lindgren)p
+Black 523 365 a
 SDict begin H.S end
  523 365 a 523 365 a
 SDict begin 11 H.A end
- 523 365 a
-523 365 a
+ 523 365 a 523 365
+a
+SDict begin [ /View [/XYZ H.V] /Dest (cite.feamster-infranet) cvn H.B
+/DEST pdfmark end
+ 523 365 a Black 83 x Fx(11.)p Black 43 w(Nic)n(k)21
+b(F)-6 b(eamster,)23 b(Magdalena)g(Balazinsk)l(a,)h(Greg)f(Harfst,)g
+(Hari)f(Balakrishnan,)h(and)e(Da)n(vid)663 540 y(Karger.)k(Infranet:)20
+b(Circum)n(v)n(en)n(ting)g(w)n(eb)g(censorship)g(and)f(surv)n
+(eillance.)26 b(In)19 b Fp(11th)k(USENIX)663 631 y(Se)l(curity)29
+b(Symp)l(osium)p Fx(,)d(2002.)523 646 y
+SDict begin H.S end
+ 523 646 a 523
+646 a
+SDict begin 11 H.A end
+ 523 646 a 523 646 a
+SDict begin [ /View [/XYZ H.V] /Dest (cite.secure2004goh) cvn H.B /DEST
+pdfmark end
+ 523 646 a Black 81 x Fx(12.)p
+Black 43 w(Eu-Jin)f(Goh.)35 b(Secure)25 b(indexes.)35
+b(In)25 b Fp(Cryptolo)l(gy)k(ePrint)f(A)n(r)l(chive)p
+Fx(,)f(Oct)e(2003.)523 742 y
+SDict begin H.S end
+ 523 742 a 523 742 a
+SDict begin 11 H.A end
+ 523
+742 a 523 742 a
+SDict begin [ /View [/XYZ H.V] /Dest (cite.ebe2003) cvn H.B /DEST pdfmark
+end
+ 523 742 a Black 81 x Fx(13.)p Black 43
+w(Christian)i(Grotho\013.)35 b(An)25 b(Excess-Based)i(Economic)g(Mo)r
+(del)g(for)f(Resource)h(Allo)r(cation)g(in)663 915 y(P)n(eer-to-P)n
+(eer)f(Net)n(w)n(orks.)34 b Fp(Wirtschaftsinformatik)p
+Fx(,)27 b(3-2003,)h(June)d(2003.)523 930 y
+SDict begin H.S end
+ 523 930 a
+523 930 a
+SDict begin 11 H.A end
+ 523 930 a 523 930 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.le2005) cvn H.B /DEST pdfmark
 end
- 523 365 a Black 83 x Fx(12.)p Black 43 w(Christian)33
-b(Grotho\013.)55 b(Reading)32 b(File)i(Metadata)f(with)g(extract)f(and)
-g(lib)r(extractor.)56 b Fp(Lin-)663 540 y(uxJournal)p
-Fx(,)27 b(6-2005,)h(June)d(2005.)523 555 y
+ 523 930 a Black 81 x Fx(14.)p
+Black 43 w(Christian)33 b(Grotho\013.)55 b(Reading)32
+b(File)i(Metadata)f(with)g(extract)f(and)g(lib)r(extractor.)56
+b Fp(Lin-)663 1102 y(uxJournal)p Fx(,)27 b(6-2005,)h(June)d(2005.)523
+1117 y
 SDict begin H.S end
- 523 555 a
-523 555 a
+ 523 1117 a 523 1117 a
 SDict begin 11 H.A end
- 523 555 a 523 555 a
+ 523 1117 a 523 1117 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.hartman99swarm) cvn H.B
 /DEST pdfmark end
- 523 555 a Black 76 x Fx(13.)p
-Black 43 w(John)d(H.)g(Hartman,)h(Ian)f(Murdo)r(c)n(k,)h(and)f(T)-6
-b(ammo)23 b(Spalink.)28 b(The)23 b(sw)n(arm)g(scalable)h(storage)663
-722 y(system.)67 b(In)36 b Fp(International)j(Confer)l(enc)l(e)g(on)f
-(Distribute)l(d)h(Computing)f(Systems)p Fx(,)h(pages)663
-813 y(74{81,)28 b(1999.)523 828 y
+ 523
+1117 a Black 81 x Fx(15.)p Black 43 w(John)d(H.)g(Hartman,)h(Ian)f
+(Murdo)r(c)n(k,)h(and)f(T)-6 b(ammo)23 b(Spalink.)28
+b(The)23 b(sw)n(arm)g(scalable)h(storage)663 1290 y(system.)67
+b(In)36 b Fp(International)j(Confer)l(enc)l(e)g(on)f(Distribute)l(d)h
+(Computing)f(Systems)p Fx(,)h(pages)663 1381 y(74{81,)28
+b(1999.)523 1396 y
 SDict begin H.S end
- 523 828 a 523 828 a
+ 523 1396 a 523 1396 a
 SDict begin 11 H.A end
-
-523 828 a 523 828 a
+ 523 1396 a 523
+1396 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.herlihy87how) cvn H.B /DEST
 pdfmark end
- 523 828 a Black 76 x Fx(14.)p Black
-43 w(Maurice)42 b(Herlih)n(y)e(and)h(J.)h(D.)f(T)n(ygar.)81
-b(Ho)n(w)42 b(to)f(mak)n(e)g(replicated)h(data)g(secure.)81
-b(In)663 996 y Fp(CR)-6 b(YPTO)p Fx(,)25 b(pages)i(379{391,)i(1987.)523
-1011 y
+ 523 1396 a Black 81 x Fx(16.)p Black 43 w(Maurice)42
+b(Herlih)n(y)e(and)h(J.)h(D.)f(T)n(ygar.)81 b(Ho)n(w)42
+b(to)f(mak)n(e)g(replicated)h(data)g(secure.)81 b(In)663
+1569 y Fp(CR)-6 b(YPTO)p Fx(,)25 b(pages)i(379{391,)i(1987.)523
+1584 y
 SDict begin H.S end
- 523 1011 a 523 1011 a
+ 523 1584 a 523 1584 a
 SDict begin 11 H.A end
- 523 1011 a 523 1011 a
+ 523 1584 a 523 1584 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.levien03advogato) cvn H.B
 /DEST pdfmark end
  523
-1011 a Black 76 x Fx(15.)p Black 43 w(Raph)76 b(Levien.)189
+1584 a Black 81 x Fx(17.)p Black 43 w(Raph)76 b(Levien.)189
 b(A)n(ttac)n(k)77 b(resistan)n(t)h(trust)f(metrics.)190
-b(Draft)78 b(a)n(v)l(ailable)h(at)663 1178 y(h)n
+b(Draft)78 b(a)n(v)l(ailable)h(at)663 1756 y(h)n
 (ttp://www.levien.com/thesis/compact.p)r(df,)31 b(2003.)523
-1197 y
+1775 y
 SDict begin H.S end
- 523 1197 a 523 1197 a
+ 523 1775 a 523 1775 a
 SDict begin 11 H.A end
- 523 1197 a 523 1197 a
+ 523 1775 a 523 1775 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.maymounkov02kademlia) cvn
 H.B /DEST pdfmark end
  523
-1197 a Black 72 x Fx(16.)p Black 43 w(P)n(etar)h(Ma)n(ymounk)n(o)n(v)f
+1775 a Black 77 x Fx(18.)p Black 43 w(P)n(etar)h(Ma)n(ymounk)n(o)n(v)f
 (and)h(Da)n(vid)f(Mazi)n(\022)-36 b(eres.)56 b(Kademlia:)33
-b(A)f(p)r(eer-to-p)r(eer)f(information)663 1361 y(system)f(based)g(on)g
+b(A)f(p)r(eer-to-p)r(eer)f(information)663 1944 y(system)f(based)g(on)g
 (the)g(xor)g(metric.)48 b(In)29 b Fp(Pr)l(o)l(c)l(e)l(e)l(dings)34
-b(of)d(IPTPS02,)g(Cambridge)p Fx(,)g(Marc)n(h)663 1452
-y(2002.)523 1452 y
+b(of)d(IPTPS02,)g(Cambridge)p Fx(,)g(Marc)n(h)663 2035
+y(2002.)523 2035 y
 SDict begin H.S end
- 523 1452 a 523 1452 a
+ 523 2035 a 523 2035 a
 SDict begin 11 H.A end
- 523 1452 a 523
-1452 a
+ 523 2035 a 523
+2035 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.mazires00sfs) cvn H.B /DEST
 pdfmark end
- 523 1452 a Black 91 x Fx(17.)p Black 43 w(Da)n(vid)25
+ 523 2035 a Black 96 x Fx(19.)p Black 43 w(Da)n(vid)25
 b(Mazi)n(\022)-36 b(eres.)36 b Fp(Self-c)l(ertifying)28
 b(\014le)g(system)p Fx(.)35 b(PhD)26 b(thesis,)g(MIT,)h(2000.)523
-1558 y
+2146 y
 SDict begin H.S end
- 523 1558 a 523 1558 a
+ 523 2146 a 523 2146 a
 SDict begin 11 H.A end
- 523 1558 a 523 1558 a
+ 523 2146 a 523 2146 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.mazieres02building) cvn
 H.B /DEST pdfmark end
  523
-1558 a Black 76 x Fx(18.)p Black 43 w(Da)n(vid)e(Mazi)n(\022)-36
+2146 a Black 81 x Fx(20.)p Black 43 w(Da)n(vid)e(Mazi)n(\022)-36
 b(eres)28 b(and)e(Dennis)g(Shasha.)36 b(Building)27 b(secure)g(\014le)f
-(systems)h(out)f(of)h(b)n(yzan)n(tine)663 1726 y(storage.)66
+(systems)h(out)f(of)h(b)n(yzan)n(tine)663 2319 y(storage.)66
 b(In)35 b Fp(Pr)l(o)l(c)l(e)l(e)l(dings)k(of)d(the)i(Twenty-First)h(A)n
-(CM)d(Symp)l(osium)h(on)g(Principles)g(of)663 1817 y(Distribute)l(d)29
-b(Computing)f(\(PODC)f(2002\))p Fx(,)g(2002.)523 1836
+(CM)d(Symp)l(osium)h(on)g(Principles)g(of)663 2410 y(Distribute)l(d)29
+b(Computing)f(\(PODC)f(2002\))p Fx(,)g(2002.)523 2429
 y
 SDict begin H.S end
- 523 1836 a 523 1836 a
+ 523 2429 a 523 2429 a
 SDict begin 11 H.A end
- 523 1836 a 523 1836 a
+ 523 2429 a 523 2429 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.mckusick84fast) cvn H.B
 /DEST pdfmark end
- 523 1836
-a Black 72 x Fx(19.)p Black 43 w(Marshall)e(K.)f(McKusic)n(k,)g
+ 523 2429
+a Black 77 x Fx(21.)p Black 43 w(Marshall)e(K.)f(McKusic)n(k,)g
 (William)i(N.)d(Jo)n(y)-6 b(,)24 b(Sam)n(uel)g(J.)h(Le\017er,)f(and)g
-(Rob)r(ert)f(S.)h(F)-6 b(abry)g(.)30 b(A)663 1999 y(fast)c(\014le)g
+(Rob)r(ert)f(S.)h(F)-6 b(abry)g(.)30 b(A)663 2597 y(fast)c(\014le)g
 (system)g(for)g(UNIX.)33 b Fp(Computer)c(Systems)p Fx(,)e
-(2\(3\):181{197,)j(1984.)523 2018 y
+(2\(3\):181{197,)j(1984.)523 2616 y
 SDict begin H.S end
- 523 2018 a 523 2018
+ 523 2616 a 523 2616
 a
 SDict begin 11 H.A end
- 523 2018 a 523 2018 a
+ 523 2616 a 523 2616 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.merkle89tree) cvn H.B /DEST
 pdfmark end
- 523 2018 a Black 72 x Fx(20.)p
+ 523 2616 a Black 78 x Fx(22.)p
 Black 43 w(Ralph)e(C.)i(Merkle.)45 b(A)28 b(certi\014ed)h(digital)h
 (signature.)45 b(In)28 b Fp(G.)j(Br)l(assar)l(d,)h(e)l(ditor,)f(A)l
-(dvanc)l(es)663 2182 y(in)e(Cryptolo)l(gy|CR)-6 b(YPTO)32
+(dvanc)l(es)663 2785 y(in)e(Cryptolo)l(gy|CR)-6 b(YPTO)32
 b('89)p Fx(,)d(pages)g(218{238.)j(Springer-V)-6 b(erlag,)29
-b(1990.)44 b(v)n(olume)29 b(435)663 2273 y(of)d(Lecture)g(Notes)g(in)f
-(Computer)h(Science.)523 2288 y
+b(1990.)44 b(v)n(olume)29 b(435)663 2876 y(of)d(Lecture)g(Notes)g(in)f
+(Computer)h(Science.)523 2891 y
 SDict begin H.S end
- 523 2288 a 523 2288 a
+ 523 2891 a 523 2891 a
 SDict begin 11 H.A end
 
-523 2288 a 523 2288 a
+523 2891 a 523 2891 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.muthitacharoen02ivy) cvn
 H.B /DEST pdfmark end
- 523 2288 a Black 76 x Fx(21.)p
+ 523 2891 a Black 81 x Fx(23.)p
 Black 43 w(A)n(thic)n(ha)21 b(Muthitac)n(haro)r(en,)i(Rob)r(ert)f
 (Morris,)i(Thomer)f(M.)f(Gil,)i(and)d(Benjie)j(Chen.)k(Ivy:)21
-b(A)663 2455 y(read/write)i(p)r(eer-to-p)r(eer)e(\014le)g(system.)28
+b(A)663 3064 y(read/write)i(p)r(eer-to-p)r(eer)e(\014le)g(system.)28
 b(In)21 b Fp(Pr)l(o)l(c)l(e)l(e)l(dings)26 b(of)d(5th)i(Symp)l(osium)f
-(on)g(Op)l(er)l(ating)663 2547 y(Systems)29 b(Design)f(and)g
-(Implementation)p Fx(,)e(2002.)523 2562 y
+(on)g(Op)l(er)l(ating)663 3155 y(Systems)29 b(Design)f(and)g
+(Implementation)p Fx(,)e(2002.)523 3170 y
 SDict begin H.S end
- 523 2562 a
-523 2562 a
+ 523 3170 a
+523 3170 a
 SDict begin 11 H.A end
- 523 2562 a 523 2562 a
+ 523 3170 a 523 3170 a
+SDict begin [ /View [/XYZ H.V] /Dest (cite.perng2005csr) cvn H.B /DEST
+pdfmark end
+ 523 3170 a Black 81
+x Fx(24.)p Black 43 w(Ginger)h(P)n(erng,)h(Mic)n(hael)g(K.)f(Reiter,)h
+(and)f(Chenxi)f(W)-6 b(ang.)39 b(Censorship)28 b(resistance)g(revis-)
+663 3343 y(ited.)c(In)18 b(Jordi)i(Herrera-Joancomarti,)i(editor,)e
+Fp(Pr)l(e-Pr)l(o)l(c)l(e)l(e)l(dings)25 b(of)c(the)h(7th)h
+(International)663 3434 y(Workshop)29 b(on)e(Information)h(Hiding)p
+Fx(,)d(pages)i(279{293,)i(2005.)523 3449 y
+SDict begin H.S end
+ 523 3449 a
+523 3449 a
+SDict begin 11 H.A end
+ 523 3449 a 523 3449 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.rabin89efficient) cvn H.B
 /DEST pdfmark end
- 523 2562 a Black 76
-x Fx(22.)p Black 43 w(Mic)n(hael)k(O.)f(Rabin.)45 b(E\016cien)n(t)29
+ 523 3449 a Black 81
+x Fx(25.)p Black 43 w(Mic)n(hael)h(O.)f(Rabin.)45 b(E\016cien)n(t)29
 b(disp)r(ersal)h(of)g(information)h(for)f(securit)n(y)-6
-b(,)29 b(load)h(balancing,)663 2729 y(and)25 b(fault)h(tolerance.)36
+b(,)29 b(load)h(balancing,)663 3621 y(and)25 b(fault)h(tolerance.)36
 b Fp(Journal)28 b(of)f(the)i(A)n(CM)p Fx(,)c(36\(2\):335{348,)30
-b(1989.)523 2748 y
+b(1989.)523 3640 y
 SDict begin H.S end
- 523 2748 a 523 2748 a
+ 523 3640 a 523 3640 a
 SDict begin 11 H.A end
- 523 2748 a 523
-2748 a
+ 523 3640 a 523
+3640 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.rowstron01storage) cvn H.B
 /DEST pdfmark end
- 523 2748 a Black 72 x Fx(23.)p Black 43 w(An)n(ton)n(y)k(I.)h
+ 523 3640 a Black 78 x Fx(26.)p Black 43 w(An)n(ton)n(y)k(I.)h
 (T.)i(Ro)n(wstron)f(and)f(P)n(eter)h(Drusc)n(hel.)64
-b(Storage)37 b(managemen)n(t)f(and)f(cac)n(hing)663 2912
+b(Storage)37 b(managemen)n(t)f(and)f(cac)n(hing)663 3809
 y(in)c(P)-6 b(AST,)30 b(a)i(large-scale,)h(p)r(ersisten)n(t)f(p)r
 (eer-to-p)r(eer)e(storage)j(utilit)n(y)-6 b(.)50 b(In)30
-b Fp(Symp)l(osium)j(on)663 3003 y(Op)l(er)l(ating)c(Systems)g
-(Principles)p Fx(,)d(pages)g(188{201,)j(2001.)523 3018
+b Fp(Symp)l(osium)j(on)663 3900 y(Op)l(er)l(ating)c(Systems)g
+(Principles)p Fx(,)d(pages)g(188{201,)j(2001.)523 3915
 y
 SDict begin H.S end
- 523 3018 a 523 3018 a
+ 523 3915 a 523 3915 a
 SDict begin 11 H.A end
- 523 3018 a 523 3018 a
+ 523 3915 a 523 3915 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.shamir) cvn H.B /DEST pdfmark
 end
- 523 3018
-a Black 76 x Fx(24.)p Black 43 w(A.)g(Shamir.)48 b(Ho)n(w)30
+ 523 3915
+a Black 82 x Fx(27.)p Black 43 w(A.)g(Shamir.)48 b(Ho)n(w)30
 b(to)g(share)g(a)h(secret.)47 b(In)30 b Fp(Communic)l(ations)i(of)f
-(the)h(A)n(CM)p Fx(,)e(v)n(olume)g(22,)663 3185 y(pages)c(612{613.)j(A)
-n(CM,)d(1979.)523 3200 y
+(the)h(A)n(CM)p Fx(,)e(v)n(olume)g(22,)663 4088 y(pages)c(612{613.)j(A)
+n(CM,)d(1979.)523 4103 y
 SDict begin H.S end
- 523 3200 a 523 3200 a
+ 523 4103 a 523 4103 a
 SDict begin 11 H.A end
- 523 3200
-a 523 3200 a
+ 523 4103
+a 523 4103 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.stoica01chord) cvn H.B /DEST
 pdfmark end
- 523 3200 a Black 76 x Fx(25.)p Black 43
+ 523 4103 a Black 81 x Fx(28.)p Black 43
 w(Ion)k(Stoica,)i(Rob)r(ert)e(Morris,)j(Da)n(vid)d(Karger,)i(M.)f(F)-6
-b(rans)31 b(Kaasho)r(ek,)h(and)e(Hari)h(Balakr-)663 3368
+b(rans)31 b(Kaasho)r(ek,)h(and)e(Hari)h(Balakr-)663 4275
 y(ishnan.)g(Chord:)24 b(A)f(scalable)i(p)r(eer-to-p)r(eer)f(lo)r(okup)f
 (service)h(for)h(in)n(ternet)e(applications.)33 b(In)663
-3459 y Fp(Pr)l(o)l(c)l(e)l(e)l(dings)26 b(of)d(the)i(2001)f(c)l(onfer)l
+4367 y Fp(Pr)l(o)l(c)l(e)l(e)l(dings)26 b(of)d(the)i(2001)f(c)l(onfer)l
 (enc)l(e)i(on)d(applic)l(ations,)i(te)l(chnolo)l(gies,)g(ar)l(chite)l
-(ctur)l(es,)h(and)663 3550 y(pr)l(oto)l(c)l(ols)j(for)f(c)l(omputer)h
+(ctur)l(es,)h(and)663 4458 y(pr)l(oto)l(c)l(ols)j(for)f(c)l(omputer)h
 (c)l(ommunic)l(ations)p Fx(,)e(pages)g(149{160.)h(A)n(CM)e(Press,)h
-(2001.)523 3565 y
+(2001.)523 4473 y
 SDict begin H.S end
- 523 3565 a 523 3565 a
+ 523 4473 a 523 4473 a
 SDict begin 11 H.A end
- 523 3565 a 523
-3565 a
+ 523 4473 a 523
+4473 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.stratton_oakmont) cvn H.B
 /DEST pdfmark end
- 523 3565 a Black 77 x Fx(26.)p Black 43 w(Stratton)19
+ 523 4473 a Black 81 x Fx(29.)p Black 43 w(Stratton)19
 b(Oakmon)n(t)g(vs)h(Pro)r(digy)g(Services)g(Compan)n(y,)g(1995)h(N.Y.)f
-(Misc.)h(Lexis)f(229,)h(\(N.Y.)663 3733 y(Sup.)k(Ct.)h(Nassau)g(Co.,)h
-(1995\).)523 3752 y
+(Misc.)h(Lexis)f(229,)h(\(N.Y.)663 4646 y(Sup.)k(Ct.)h(Nassau)g(Co.,)h
+(1995\).)523 4664 y
 SDict begin H.S end
- 523 3752 a 523 3752 a
+ 523 4664 a 523 4664 a
 SDict begin 11 H.A end
- 523 3752 a
-523 3752 a
+ 523 4664 a
+523 4664 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.syverson97anonymous) cvn
 H.B /DEST pdfmark end
- 523 3752 a Black 72 x Fx(27.)p Black 43 w(P)n(aul)35
+ 523 4664 a Black 78 x Fx(30.)p Black 43 w(P)n(aul)35
 b(Syv)n(erson,)g(Da)n(vid)f(Goldsc)n(hlag,)j(and)e(Mic)n(hael)h(Reed.)
-62 b(Anon)n(ymous)34 b(Connections)663 3915 y(and)29
+62 b(Anon)n(ymous)34 b(Connections)663 4833 y(and)29
 b(Onion)f(Routing.)45 b(In)29 b Fp(IEEE)h(Symp)l(osium)h(on)g(Se)l
-(curity)h(and)f(Privacy)p Fx(,)g(pages)f(44{54,)663 4007
-y(Oakland,)25 b(California,)k(4{7)e(1997.)523 4022 y
+(curity)h(and)f(Privacy)p Fx(,)g(pages)f(44{54,)663 4924
+y(Oakland,)25 b(California,)k(4{7)e(1997.)p Black Black
+eop end
+%%Page: 21 21
+TeXDict begin 21 20 bop 0 0 a
+SDict begin /product where{pop product(Distiller)search{pop pop pop
+version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto
+closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show
+grestore}if}{pop}ifelse}{pop}ifelse}if end
+ 0 0 a Black 0 TeXcolorgray
+523 232 a
 SDict begin H.S end
-
-523 4022 a 523 4022 a
+ 523 232 a 0 TeXcolorgray 0 TeXcolorgray 523
+232 a
+SDict begin H.R end
+ 523 232 a 523 232 a
+SDict begin [ /View [/XYZ H.V] /Dest (page.21) cvn H.B /DEST pdfmark
+end
+ 523 232 a Black 1036 w Fx(An)25
+b(Enco)r(ding)h(for)h(Censorship-Resistan)n(t)f(Sharing)199
+b(21)p Black 523 365 a
+SDict begin H.S end
+ 523 365 a 523 365 a
 SDict begin 11 H.A end
- 523 4022 a 523 4022 a
+ 523 365 a
+523 365 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.waldman2001tangler) cvn
 H.B /DEST pdfmark end
- 523 4022
-a Black 76 x Fx(28.)p Black 43 w(Marc)36 b(W)-6 b(aldman)34
-b(and)h(Da)n(vid)f(Mazi)n(\022)-36 b(eres.)64 b(T)-6
-b(angler:)37 b(A)d(censorhip-resistan)n(t)i(publishing)663
-4189 y(system)25 b(based)f(on)h(do)r(cumen)n(t)g(en)n(tanglemen)n(ts.)
-33 b(In)24 b Fp(A)n(CM)i(Confer)l(enc)l(e)i(on)f(Computer)h(and)663
-4280 y(Communic)l(ations)g(Se)l(curity)p Fx(,)f(pages)g(126{135,)h
-(2001.)523 4295 y
+ 523 365 a Black 83 x Fx(31.)p Black 43 w(Marc)36
+b(W)-6 b(aldman)34 b(and)h(Da)n(vid)f(Mazi)n(\022)-36
+b(eres.)64 b(T)-6 b(angler:)37 b(A)d(censorhip-resistan)n(t)i
+(publishing)663 540 y(system)25 b(based)f(on)h(do)r(cumen)n(t)g(en)n
+(tanglemen)n(ts.)33 b(In)24 b Fp(A)n(CM)i(Confer)l(enc)l(e)i(on)f
+(Computer)h(and)663 631 y(Communic)l(ations)g(Se)l(curity)p
+Fx(,)f(pages)g(126{135,)h(2001.)523 646 y
 SDict begin H.S end
- 523 4295 a 523 4295 a
+ 523 646 a 523
+646 a
 SDict begin 11 H.A end
- 523 4295 a 523
-4295 a
+ 523 646 a 523 646 a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.pub00) cvn H.B /DEST pdfmark
 end
- 523 4295 a Black 77 x Fx(29.)p Black 43 w(Marc)36
-b(W)-6 b(aldman,)36 b(Aviel)g(D.)f(Rubin,)g(and)h(Lorrie)g(F)-6
-b(aith)36 b(Cranor.)65 b(Publius:)36 b(A)g(robust,)663
-4463 y(tamp)r(er-eviden)n(t,)18 b(censorship-resistan)n(t,)i(w)n(eb)g
+ 523 646 a Black 76 x Fx(32.)p
+Black 43 w(Marc)36 b(W)-6 b(aldman,)36 b(Aviel)g(D.)f(Rubin,)g(and)h
+(Lorrie)g(F)-6 b(aith)36 b(Cranor.)65 b(Publius:)36 b(A)g(robust,)663
+814 y(tamp)r(er-eviden)n(t,)18 b(censorship-resistan)n(t,)i(w)n(eb)g
 (publishing)f(system.)24 b(In)18 b Fp(Pr)l(o)l(c.)k(9th)g(USENIX)663
-4554 y(Se)l(curity)29 b(Symp)l(osium)p Fx(,)d(pages)g(59{72,)i(August)d
-(2000.)523 4569 y
+905 y(Se)l(curity)29 b(Symp)l(osium)p Fx(,)d(pages)g(59{72,)i(August)d
+(2000.)523 920 y
 SDict begin H.S end
- 523 4569 a 523 4569 a
+ 523 920 a 523 920 a
 SDict begin 11 H.A end
- 523 4569 a 523
-4569 a
+ 523 920 a 523 920
+a
 SDict begin [ /View [/XYZ H.V] /Dest (cite.mojotech) cvn H.B /DEST
 pdfmark end
- 523 4569 a Black 76 x Fx(30.)p Black 43 w(Bryce)i(Wilco)n
-(x-O'Hearn.)39 b(Exp)r(eriences)27 b(Deplo)n(ying)h(a)f(Large-Scale)h
-(Emergen)n(t)g(Net)n(w)n(ork.)663 4737 y(In)e Fp(Pe)l(er-to-Pe)l(er)32
+ 523 920 a Black 76 x Fx(33.)p Black 43 w(Bryce)i(Wilco)n(x-O'Hearn.)
+39 b(Exp)r(eriences)27 b(Deplo)n(ying)h(a)f(Large-Scale)h(Emergen)n(t)g
+(Net)n(w)n(ork.)663 1088 y(In)e Fp(Pe)l(er-to-Pe)l(er)32
 b(Systems:)e(First)g(International)g(Workshop,)f(ITPTS)f(2002)p
-Fx(,)g(pages)g(104{)663 4828 y(110.)f(Springer-V)-6 b(erlag)25
+Fx(,)g(pages)g(104{)663 1179 y(110.)f(Springer-V)-6 b(erlag)25
 b(Heidelb)r(erg,)i(Jan)n(uary)f(2002.)p Black Black eop
 end
 %%Trailer

Modified: GNUnet-docs/papers/ecrs/main.tex
===================================================================
--- GNUnet-docs/papers/ecrs/main.tex    2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet-docs/papers/ecrs/main.tex    2005-06-13 12:00:59 UTC (rev 904)
@@ -10,7 +10,7 @@
   pdfpagemode=FullScreen,
   pdftitle=An Encoding for Censorship-Resistant Sharing,
   pdfauthor=Christian Grothoff and Krista Grothoff and Tzvetan Horozov and 
Jussi T. Lindgren,
-  pdfkeywords=encoding privacy censorship resistant sharing file peer 
distributed system network,
+  pdfkeywords=encoding privacy censorship resistant sharing file peer 
distributed system network private information retrieval,
   pdfsubject=Privacy Enhancing Technologies,
   colorlinks=true}
 
@@ -22,13 +22,13 @@
 %   scheme'' or ``encoding mechanism'' is better.
 %
 % Todo:
-% - Look into/cite MIT FARSITE system (convergent encryption)
 % - fix xy-pic (dotted arrows, multicols)
 %
 % Notes by JTL (06.jun.05): 
 % - word 'convergent' is used in the end of the doc 'out of the blue'
 %   (we should use it earlier when the idea is introduced)
 %   [CG: yes, that's why I have the MIT FARSITE system in Todo above ]
+%   [DONE]
 % - while I tried to simulate a 'first time reader' the big picture
 %   of ECRS appeared a little muddled. A diagram of the relation of
 %   the encoding and the extensions might be helpful. Now we have 
@@ -134,21 +134,47 @@
 censorship.  Specific details on how peers communicate and route data
 are therefore outside of the scope of this paper.
 
+The definition of censorship resistance used in this work is similar
+to the formal definition given by~\cite{perng2005csr}.  There,
+censorship resistance is defined as the inability of a censor to
+restrict a targeted document while allowing at least one other
+document to be retrieved.  In~\cite{perng2005csr}, the adversary is
+granted extensive capabilities.  In particular, the adversary is
+allowed to inspect every request or response, transcript the
+processing steps of all the peers and then decide whether to filter
+(drop) a given response.  Availability of the service and anonymity of
+the participants are specifically decoupled from censorship
+resistance.  For ECRS, an almost identical adversary model is selected
+-- while anonymity and availability are additional, possibly important
+goals, ECRS is supposed to be an orthogonal mechanism.  The primary
+difference in the adversary model for ECRS is that the attacker is not
+allowed to be able to guess the exact content that is to be censored.
+This is an important restriction in practice since
+otherwise~\cite{perng2005csr} shows that censorship resistance
+requires a form of private information retrieval for which each
+operation has complexity $O(n)$ where $n$ is the size of the
+datastore.  In return for restricting the guessing capabilities of the
+adversary, ECRS can achieve $O(1)$ complexity for its operations.
+Considering that availability is also an important goal, we believe
+that this is good trade-off.
+
 As an encoding scheme, ECRS has to address two important issues.
 First of all, users must be able to find content, preferably by
 searching with simple, natural language keywords.  Metadata related to
 the contents of the file should be made available as part of the
-search result and prior to the download of the actual file.  Secondly,
-the encoding scheme should support swarming, that is the download of a
-file from multiple peers.  Since it is possible that identical data is
-inserted by many independent parties the encoding scheme should always
-result in identical encodings for identical source files.  This
-special form of encryption was probably first described
-in~\cite{freenet} and later termed {\em convergent
+search result and prior to the download of the actual file.  Metadata
+can include anything from user-provided content descriptions to
+thumbnails (for images) and automatically detected mime-types.
+Secondly, the encoding scheme should support swarming, that is the
+download of a file from multiple peers.  Since it is possible that
+identical data is inserted by many independent parties the encoding
+scheme should always result in identical encodings for identical
+source files.  This special form of encryption was probably first
+described in~\cite{clark99distributed} and later termed {\em convergent
 encryption}~\cite{farsite}.  With convergent encryption, the existence
-of multiple copies of the same content can be detected; this
-knowledge can then be used to increase fault-tolerance, performance
-and availability.
+of multiple copies of the same content can be detected; this knowledge
+can then be used to increase fault-tolerance, performance and
+availability.
 
 % why is this hard? open network == adversaries playground
 Unfortunately, it is not enough to just meet requirements related to
@@ -157,18 +183,16 @@
 form of access control.  This opens the network to malicious
 participants.  Thus, the encoding scheme should guarantee the {\em
 integrity} of the content even in the presence of malicious
-participants.
-
-The encoding mechanism must ensure that invalid replies are detected
-and that peers can distinguish valuable content from maliciously
-generated noise.  This is particularly important in three cases.
-First, if large files are assembled using blocks from multiple peers,
-some of these peers may be malicious and try to corrupt the file.
-These corruptions should be detected on a small granularity and
+participants.  The encoding mechanism must ensure that invalid replies
+are detected and that peers can distinguish valuable content from
+maliciously generated noise.  This is particularly important in three
+cases.  First, if large files are assembled using blocks from multiple
+peers, some of these peers may be malicious and try to corrupt the
+file.  These corruptions should be detected on a small granularity and
 repaired with correct data from other peers.  Second, for searches it
 should be difficult for peers to spam the result set.  Otherwise the
-users may drown in useless information.  Finally, intermediaries and
-that are merely routing the content should be able to detect invalid
+users may drown in useless information.  Finally, intermediaries that
+are merely routing the content should be able to detect invalid
 replies.  This enables local economies (like in~\cite{ebe2003}) and
 prevents the retransmission and replication of corrupted data by
 non-malicious peers.
@@ -593,7 +617,16 @@
 obtain the query and the key that are now necessary in order to
 retrieve the encoded content.  While out-of-band communication of
 those CHK keys is certainly feasible, an integrated solution is
-clearly desirable.  
+clearly desirable.  Related work on secure
+indexing~\cite{secure2004goh} allows servers to retrieve documents by
+keyword without learning about the rest of the document.  The scheme
+that will be described in Section~\ref{kblocks} improves on this by
+keeping the keyword itself private, allowing intermediaries to verify
+the correct operation of the server and avoiding the need for the
+publisher to encrypt the document with the public key of a {\em
+specific} receiver, thereby theoretically permitting access to the
+same encrypted content to arbitrary participants (as long as they 
+are able to obtain or guess the necessary keyword).
 
 The key problem for the search is that simply publishing CHK keys in
 plaintext under certain keywords (as done in Freenet with KSK keys)
@@ -610,14 +643,21 @@
 schemes impractical.
 
 But how can a system prevent peers from returning invalid responses to
-a search?  Since the nature of a search is that the initiator does not
-know precisely what content is desired, it is impossible for the query
-to completely determine the reply.  For this reason schemes like CHK
-cannot be applied to the search problem.  Instead, ECRS must trust the
-user who is uploading the content.  That user must specify appropriate
-keywords and metadata that properly describes the content.  Clearly
-this trust may be misplaced.  Namespaces can help solve this problem
-since they enable users to learn which other users are trustworthy.
+a keyword-based search?  Since the nature of such a search is that the
+initiator does not know precisely what content is desired, it is
+impossible for the query to completely determine the reply.  For this
+reason schemes like CHK cannot be applied to the keyword-search
+problem: in CHK, the query completely determines the reply.  As a
+result, a keyword-based search mechanism where a query should possibly
+have multiple valid results cannot be implemented based on CHK.  Since
+for this kind of search there cannot be any completely deterministic
+link between the keyword and the content, ECRS must trust the user who
+is uploading the content to provide a valid link.  That user must
+specify appropriate keywords (and metadata) that properly describes
+the content.  Clearly this trust may be misplaced.  The uploader may
+specify keywords that have no semantic relation with the content.
+Namespaces can help solve this problem since they enable users to
+learn which uploaders are trustworthy.
 
 
 \subsection{Namespaces} \label{sblock}

Modified: GNUnet-docs/papers/ecrs/ref.bib
===================================================================
--- GNUnet-docs/papers/ecrs/ref.bib     2005-06-12 17:55:55 UTC (rev 903)
+++ GNUnet-docs/papers/ecrs/ref.bib     2005-06-13 12:00:59 UTC (rev 904)
@@ -3,6 +3,35 @@
 
 
 
address@hidden perng2005csr,
+  author =      {Ginger Perng and Michael K. Reiter and Chenxi Wang},
+  title =       {Censorship Resistance Revisited},
+  booktitle =   {Pre-Proceedings of the 7th International Workshop on 
Information Hiding},
+  pages =       {279-293},
+  year =        {2005},
+  editor =      {Jordi Herrera-Joancomarti},
+}
+
address@hidden secure2004goh,
+  author =      {Eu-Jin Goh},
+  title =       {Secure Indexes},
+  booktitle =   {Cryptology ePrint Archive},
+  OPTcrossref =  {},
+  OPTkey =      {},
+  OPTpages =    {},
+  year =        {2003},
+  OPTeditor =   {},
+  OPTvolume =   {},
+  OPTnumber =   {},
+  OPTseries =   {},
+  OPTaddress =          {},
+  month =       {Oct},
+  OPTorganization = {},
+  OPTpublisher = {},
+  OPTnote =     {},
+  OPTannote =   {}
+}
+
 @InProceedings{public2004boneh,
   author =      {Dan Boneh and Giovanni Di Crescenzo and Rafail Ostrovsky and 
Guiseppe Persiano},
   title =       {Public Key Encryption with keyword Search},

Modified: gnunet-gtk/src/download.c
===================================================================
--- gnunet-gtk/src/download.c   2005-06-12 17:55:55 UTC (rev 903)
+++ gnunet-gtk/src/download.c   2005-06-13 12:00:59 UTC (rev 904)
@@ -100,6 +100,9 @@
         DIR_SEPARATOR_STR);
   strcat(pfx, 
         name);
+  while ( (strlen(pfx) > 0) &&
+         (pfx[strlen(pfx)-1] == DIR_SEPARATOR) )
+    pfx[strlen(pfx)-1] = '\0';
   if (0 == STAT(pfx,
                &sbuf)) {
     guiMessage(_("File '%s' exists in '%s',\n"





reply via email to

[Prev in Thread] Current Thread [Next in Thread]