/**
 * @ngdoc overview
 * @name index
 * @description
 *
 * ## Getting started
 *
 * To use the SDK, you need to
 *
 * 1. init the SDK; e.g., ({@link init.functions:init all options})
 * <pre>
 * FamilySearch.init({
 *   app_key: 'YOUR_ACCESS_KEY_GOES_HERE',
 *   environment: 'sandbox',
 *   // auth_callback is the URI you registered with FamilySearch;
 *   // the page does not need to exist but it must have the same host and port
 *   // as the server running your script
 *   auth_callback: 'REDIRECT_GOES_HERE',
 *   http_function: jQuery.ajax,
 *   deferred_function: jQuery.Deferred
 * });
 * </pre>
 *
 * 2. get an access token; e.g.,
 * <pre>
 * FamilySearch.getAccessToken().then(function(response) {
 *    // now you have an access token
 * });
 * </pre>
 *
 * 3. make API calls; e.g.,
 * <pre>
 * FamilySearch.getCurrentUser().then(function(response) {
 *    // now you have the response
 * });
 * </pre>
 *
 * ### Example
 *
 * <pre>
 * FamilySearch.init({
 *   app_key: 'MY_ACCESS_KEY',
 *   environment: 'sandbox',
 *   auth_callback: 'http://localhost/auth',
 *   http_function: $.ajax,
 *   deferred_function: $.Deferred,
 * });
 *
 * FamilySearch.getAccessToken().then(function(accessToken) {
 *   FamilySearch.getCurrentUser().then(function(response) {
 *     var user = response.getUser();
 *     console.log('Hello '+user.contactName);
 *   });
 * });
 * </pre>
 *
 * ## Promises
 *
 * Most functions return promises.
 * The promises are generated by the `deferred_function` you passed into the `init` call.
 * If the promise is fulfilled, it will return a single parameter containing the response data.
 * If the response is rejected, it will return whatever the `http_function` passed into the `init` call returns.
 *
 * The following functions are also available on the promise
 *
 * - `getResponseHeader(header)`
 * - `getAllResponseHeaders()`
 * - `getStatusCode()`
 *
 * ### Examples
 *
 * #### jQuery
 *
 * Requires jQuery 1.8 or later.
 *
 * If you pass `jQuery.ajax` and `jQuery.Deferred` into the `FamilySearch.init` call, the returned promises
 * will have the the methods [described here](http://api.jquery.com/Types/#Promise); for example
 *
 * - `then(function(data) {}, function(jqXHR, textStatus, errorThrown) {})`
 * - `done(function(data) {})`
 * - `fail(function(jqXHR, textStatus, errorThrown) {})`
 *
 * #### AngularJS -- not yet implemented
 *
 * If you pass `$http` and `$q.defer` into the `FamilySearch.init` call, the returned promises
 * will have the methods [described here](http://docs.angularjs.org/api/ng.$q#description_the-promise-api); for example
 *
 * - `then(function(data) {}, function({data: data, status: status, headers: headers, config: config}) {})`
 * - `catch(function(data, status, headers, config) {})`
 *
 * #### Node.js -- not yet implemented
 *
 * ## Handling responses
 *
 * API responses are typically json objects. The API calls add *convenience functions* for returning various objects from the response.
 * For example, the `getPerson('ID')` API call adds a `getPerson()` convenience function to return the {@link person.types:type.Person Person} object from the response.
 *
 * Often, the returned objects have custom constructors with additional convenience functions.
 * For example, the {@link person.types:type.Person Person} object has `getGivenName()` and `getSurname()` convenience
 * functions for returning the person's given name and surname respectively.
 * All of the convenience functions and object properties and methods are fully described in the docs.
 *
 * You can add your own convenience functions to the returned objects.
 * For example, suppose you wanted to display someone's name followed by their id. You would write
 * <pre>
 *   FamilySearch.Person.prototype.getNameAndId = function() {
 *     return this.getName() + ' (' + this.id + ')';
 *   }
 * </pre>
 *
 * and from then on you could call `person.getNameAndId()` on any {@link person.types:type.Person Person} object.
 *
 * <pre>
 * FamilySearch.getPerson('ID').then(function(response) {
 *   var person = response.getPerson();
 *   console.log('Hello '+person.getNameAndId());
 * });
 * </pre>
 *
 * ## Plumbing
 *
 * The functions in the "plumbing" module are low-level functions that you would not normally call.
 * The higher-level functions that you normally call are built on top of the plumbing functions.
 * The plumbing functions are exposed in case you want to do something not anticipated by the higher-level functions.
 * The plumbing functions here serve the same purpose as the
 * [plumbing functions in git](https://www.kernel.org/pub/software/scm/git/docs/#_low_level_commands_plumbing).
 *
 * Note that promises returned by plumbing functions return whatever the `http_function` passed into the
 * `init` call returns.
 *
 */

@@ -3072,24 +3072,27 @@
 o return the
+%0A *
  %7B@link pers
@@ -3156,16 +3156,9 @@
 %0A * 
-Often, t
+T
 he r
@@ -3173,16 +3173,84 @@
 objects 
+contain the same properties as the original response json, but they 
 have cus
@@ -3267,19 +3267,39 @@
 uctors w
-ith
+hose%0A * prototypes have
  additio
@@ -3345,16 +3345,31 @@
 le, the 
+prototypes for 
 %7B@link p
@@ -3410,12 +3410,14 @@
 ject
+s
  ha
-s
+ve
  %60ge
@@ -3448,16 +3448,19 @@
 rname()%60
+%0A *
  conveni
@@ -3463,19 +3463,16 @@
 venience
-%0A *
  functio
@@ -3545,44 +3545,11 @@
 %0A * 
-All of the convenience functions and
+The
  obj
@@ -3567,22 +3567,36 @@
 ies and 
-method
+convenience function
 s are fu
@@ -4280,17 +4280,17 @@
 the 
-%22
+*
 plumbing
 %22 mo
@@ -4289,9 +4289,9 @@
 bing
-%22
+*
  mod
@@ -4364,32 +4364,36 @@
 he higher-level 
+API 
 functions that y
@@ -4547,28 +4547,19 @@
  by the 
-higher-level
+API
  functio

update overview